{"version":3,"file":"static/js/main.12ad29d4.js","mappings":"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ACA,MACA,MACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,GACA,GACA,MACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,OACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,WCnKF,ICFIC,GDGEC,GAAqB,CACzB54H,KAAM,CACJuzH,MAAO,SAAC9yP,GAAI,OAAKA,EAAK7lB,KAAK,GAE7B80Q,SAAU,CACR6D,MAAO,SAAC9yP,GAAI,MAAK,IAAMA,EAAKvd,IAAI,GAGlCqsQ,SAAU,CACRgE,MAAO,SAAC9yP,GAAI,OAAKgO,GAAKhO,EAAKqlP,YAAa,OAAO,GAEjD0J,oBAAqB,CACnB+D,MAAK,SAAC9yP,GACJ,IAAMo4P,EAAU/0C,GAAK,IAAKr1M,GAAKhO,EAAKysP,oBAAqB,MAAO,KAC1Dz/N,EAAShf,GACb,CACEhO,EAAK2jC,UACL31B,GAAK,CAAChO,EAAKvd,KAAM21Q,IACjBpqP,GAAKhO,EAAKgrP,WAAY,MAExB,KAIF,OAAmB,UAAXh+N,EAAqB,GAAKA,EAAS,KAAOht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","sources":["../.yarn/__virtual__/prop-types-extra-virtual-1faeb11707/0/cache/prop-types-extra-npm-1.1.1-ebbe8d351d-ebf1c04868.zip/node_modules/prop-types-extra/lib/all.js","../.yarn/__virtual__/prop-types-extra-virtual-1faeb11707/0/cache/prop-types-extra-npm-1.1.1-ebbe8d351d-ebf1c04868.zip/node_modules/prop-types-extra/lib/utils/createChainableTypeChecker.js","../.yarn/__virtual__/react-dom-virtual-b038f33a6d/0/cache/react-dom-npm-17.0.2-f551215af1-1c1eaa3bca.zip/node_modules/react-dom/cjs/react-dom.production.min.js","../.yarn/__virtual__/react-dom-virtual-b038f33a6d/0/cache/react-dom-npm-17.0.2-f551215af1-1c1eaa3bca.zip/node_modules/react-dom/index.js","../.yarn/__virtual__/react-google-autocomplete-virtual-117dcc5f04/0/cache/react-google-autocomplete-npm-2.7.2-23faa82441-2b6d17afc4.zip/node_modules/react-google-autocomplete/index.js","../.yarn/__virtual__/react-google-autocomplete-virtual-117dcc5f04/0/cache/react-google-autocomplete-npm-2.7.2-23faa82441-2b6d17afc4.zip/node_modules/react-google-autocomplete/lib/ReactGoogleAutocomplete.js","../.yarn/__virtual__/react-google-autocomplete-virtual-117dcc5f04/0/cache/react-google-autocomplete-npm-2.7.2-23faa82441-2b6d17afc4.zip/node_modules/react-google-autocomplete/lib/constants.js","../.yarn/__virtual__/react-google-autocomplete-virtual-117dcc5f04/0/cache/react-google-autocomplete-npm-2.7.2-23faa82441-2b6d17afc4.zip/node_modules/react-google-autocomplete/lib/index.js","../.yarn/__virtual__/react-google-autocomplete-virtual-117dcc5f04/0/cache/react-google-autocomplete-npm-2.7.2-23faa82441-2b6d17afc4.zip/node_modules/react-google-autocomplete/lib/usePlacesWidget.js","../.yarn/__virtual__/react-google-autocomplete-virtual-117dcc5f04/0/cache/react-google-autocomplete-npm-2.7.2-23faa82441-2b6d17afc4.zip/node_modules/react-google-autocomplete/lib/utils.js","../.yarn/__virtual__/react-input-mask-virtual-8fc6accd63/0/cache/react-input-mask-npm-2.0.4-7b0b43ceb4-429b46c54c.zip/node_modules/react-input-mask/index.js","../.yarn/__virtual__/react-input-mask-virtual-8fc6accd63/0/cache/react-input-mask-npm-2.0.4-7b0b43ceb4-429b46c54c.zip/node_modules/react-input-mask/lib/react-input-mask.production.min.js","../.yarn/__virtual__/use-sync-external-store-virtual-03559c9227/0/cache/use-sync-external-store-npm-1.2.0-44f75d2564-5c639e0f8d.zip/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim.production.min.js","../.yarn/__virtual__/use-sync-external-store-virtual-03559c9227/0/cache/use-sync-external-store-npm-1.2.0-44f75d2564-5c639e0f8d.zip/node_modules/use-sync-external-store/shim/index.js","../.yarn/cache/@aws-amplify-pubsub-npm-5.0.12-709abfb7a7-b479e691d2.zip/node_modules/@aws-amplify/pubsub/lib-esm/vendor/paho-mqtt.js","../.yarn/cache/@aws-crypto-ie11-detection-npm-1.0.0-f103cf4be4-c6d157a0ca.zip/node_modules/@aws-crypto/ie11-detection/src/MsWindow.ts","../.yarn/cache/@aws-crypto-ie11-detection-npm-1.0.0-f103cf4be4-c6d157a0ca.zip/node_modules/@aws-crypto/ie11-detection/src/index.ts","../.yarn/cache/@aws-crypto-sha256-browser-npm-1.2.2-cffa2ed302-1b67b3d4b3.zip/node_modules/@aws-crypto/sha256-browser/src/constants.ts","../.yarn/cache/@aws-crypto-sha256-browser-npm-1.2.2-cffa2ed302-1b67b3d4b3.zip/node_modules/@aws-crypto/sha256-browser/src/crossPlatformSha256.ts","../.yarn/cache/@aws-crypto-sha256-browser-npm-1.2.2-cffa2ed302-1b67b3d4b3.zip/node_modules/@aws-crypto/sha256-browser/src/ie11Sha256.ts","../.yarn/cache/@aws-crypto-sha256-browser-npm-1.2.2-cffa2ed302-1b67b3d4b3.zip/node_modules/@aws-crypto/sha256-browser/src/index.ts","../.yarn/cache/@aws-crypto-sha256-browser-npm-1.2.2-cffa2ed302-1b67b3d4b3.zip/node_modules/@aws-crypto/sha256-browser/src/isEmptyData.ts","../.yarn/cache/@aws-crypto-sha256-browser-npm-1.2.2-cffa2ed302-1b67b3d4b3.zip/node_modules/@aws-crypto/sha256-browser/src/webCryptoSha256.ts","../.yarn/cache/@aws-crypto-sha256-js-npm-1.2.2-c0bcd912a0-b6aeb71f88.zip/node_modules/@aws-crypto/sha256-js/src/RawSha256.ts","../.yarn/cache/@aws-crypto-sha256-js-npm-1.2.2-c0bcd912a0-b6aeb71f88.zip/node_modules/@aws-crypto/sha256-js/src/constants.ts","../.yarn/cache/@aws-crypto-sha256-js-npm-1.2.2-c0bcd912a0-b6aeb71f88.zip/node_modules/@aws-crypto/sha256-js/src/index.ts","../.yarn/cache/@aws-crypto-sha256-js-npm-1.2.2-c0bcd912a0-b6aeb71f88.zip/node_modules/@aws-crypto/sha256-js/src/jsSha256.ts","../.yarn/cache/@aws-crypto-sha256-js-npm-3.0.0-2ba1013fd6-644ded32ea.zip/node_modules/@aws-crypto/sha256-js/src/RawSha256.ts","../.yarn/cache/@aws-crypto-sha256-js-npm-3.0.0-2ba1013fd6-644ded32ea.zip/node_modules/@aws-crypto/sha256-js/src/constants.ts","../.yarn/cache/@aws-crypto-sha256-js-npm-3.0.0-2ba1013fd6-644ded32ea.zip/node_modules/@aws-crypto/sha256-js/src/index.ts","../.yarn/cache/@aws-crypto-sha256-js-npm-3.0.0-2ba1013fd6-644ded32ea.zip/node_modules/@aws-crypto/sha256-js/src/jsSha256.ts","../.yarn/cache/@aws-crypto-supports-web-crypto-npm-1.0.0-007ef5fde8-2d5878e3d5.zip/node_modules/@aws-crypto/supports-web-crypto/src/index.ts","../.yarn/cache/@aws-crypto-supports-web-crypto-npm-1.0.0-007ef5fde8-2d5878e3d5.zip/node_modules/@aws-crypto/supports-web-crypto/src/supportsWebCrypto.ts","../.yarn/cache/@aws-crypto-util-npm-1.2.2-3de516ca37-54d72ce494.zip/node_modules/@aws-crypto/util/src/convertToBuffer.ts","../.yarn/cache/@aws-crypto-util-npm-1.2.2-3de516ca37-54d72ce494.zip/node_modules/@aws-crypto/util/src/index.ts","../.yarn/cache/@aws-crypto-util-npm-1.2.2-3de516ca37-54d72ce494.zip/node_modules/@aws-crypto/util/src/isEmptyData.ts","../.yarn/cache/@aws-crypto-util-npm-1.2.2-3de516ca37-54d72ce494.zip/node_modules/@aws-crypto/util/src/numToUint8.ts","../.yarn/cache/@aws-crypto-util-npm-1.2.2-3de516ca37-54d72ce494.zip/node_modules/@aws-crypto/util/src/uint32ArrayFrom.ts","../.yarn/cache/@aws-crypto-util-npm-3.0.0-6c4b38c78e-d29d554504.zip/node_modules/@aws-crypto/util/src/convertToBuffer.ts","../.yarn/cache/@aws-crypto-util-npm-3.0.0-6c4b38c78e-d29d554504.zip/node_modules/@aws-crypto/util/src/index.ts","../.yarn/cache/@aws-crypto-util-npm-3.0.0-6c4b38c78e-d29d554504.zip/node_modules/@aws-crypto/util/src/isEmptyData.ts","../.yarn/cache/@aws-crypto-util-npm-3.0.0-6c4b38c78e-d29d554504.zip/node_modules/@aws-crypto/util/src/numToUint8.ts","../.yarn/cache/@aws-crypto-util-npm-3.0.0-6c4b38c78e-d29d554504.zip/node_modules/@aws-crypto/util/src/uint32ArrayFrom.ts","../.yarn/cache/@aws-sdk-util-locate-window-npm-3.208.0-a3531f344f-7518c110c4.zip/node_modules/@aws-sdk/util-locate-window/dist-es/index.js","../.yarn/cache/@aws-sdk-util-utf8-browser-npm-3.259.0-343a1dba08-b6a1e580da.zip/node_modules/@aws-sdk/util-utf8-browser/dist-es/index.js","../.yarn/cache/@aws-sdk-util-utf8-browser-npm-3.259.0-343a1dba08-b6a1e580da.zip/node_modules/@aws-sdk/util-utf8-browser/dist-es/whatwgEncodingApi.js","../.yarn/cache/@aws-sdk-util-utf8-browser-npm-3.259.0-343a1dba08-b6a1e580da.zip/node_modules/@aws-sdk/util-utf8-browser/dist-es/pureJs.js","../.yarn/cache/@sentry-hub-npm-6.19.7-6469362c23-10bb1c5cba.zip/node_modules/@sentry/src/flags.ts","../.yarn/cache/@sentry-hub-npm-6.19.7-6469362c23-10bb1c5cba.zip/node_modules/@sentry/src/session.ts","../.yarn/cache/@sentry-hub-npm-6.19.7-6469362c23-10bb1c5cba.zip/node_modules/@sentry/src/hub.ts","../.yarn/cache/@sentry-hub-npm-6.19.7-6469362c23-10bb1c5cba.zip/node_modules/@sentry/src/scope.ts","../.yarn/cache/@sentry-tracing-npm-6.19.7-afb16e2fe4-26e7bf435f.zip/node_modules/src/constants.ts","../.yarn/cache/@sentry-tracing-npm-6.19.7-afb16e2fe4-26e7bf435f.zip/node_modules/src/flags.ts","../.yarn/cache/@sentry-tracing-npm-6.19.7-afb16e2fe4-26e7bf435f.zip/node_modules/src/errors.ts","../.yarn/cache/@sentry-tracing-npm-6.19.7-afb16e2fe4-26e7bf435f.zip/node_modules/src/hubextensions.ts","../.yarn/cache/@sentry-tracing-npm-6.19.7-afb16e2fe4-26e7bf435f.zip/node_modules/src/idletransaction.ts","../.yarn/cache/@sentry-tracing-npm-6.19.7-afb16e2fe4-26e7bf435f.zip/node_modules/src/span.ts","../.yarn/cache/@sentry-tracing-npm-6.19.7-afb16e2fe4-26e7bf435f.zip/node_modules/src/transaction.ts","../.yarn/cache/@sentry-tracing-npm-6.19.7-afb16e2fe4-26e7bf435f.zip/node_modules/src/utils.ts","../.yarn/cache/@sentry-utils-npm-6.19.7-d61c6c8632-a000223b9c.zip/node_modules/@sentry/src/browser.ts","../.yarn/cache/@sentry-utils-npm-6.19.7-d61c6c8632-a000223b9c.zip/node_modules/@sentry/src/flags.ts","../.yarn/cache/@sentry-utils-npm-6.19.7-d61c6c8632-a000223b9c.zip/node_modules/@sentry/src/global.ts","../.yarn/cache/@sentry-utils-npm-6.19.7-d61c6c8632-a000223b9c.zip/node_modules/@sentry/src/instrument.ts","../.yarn/cache/@sentry-utils-npm-6.19.7-d61c6c8632-a000223b9c.zip/node_modules/@sentry/src/is.ts","../.yarn/cache/@sentry-utils-npm-6.19.7-d61c6c8632-a000223b9c.zip/node_modules/@sentry/src/logger.ts","../.yarn/cache/@sentry-utils-npm-6.19.7-d61c6c8632-a000223b9c.zip/node_modules/@sentry/src/misc.ts","../.yarn/cache/@sentry-utils-npm-6.19.7-d61c6c8632-a000223b9c.zip/node_modules/@sentry/src/node.ts","../.yarn/cache/@sentry-utils-npm-6.19.7-d61c6c8632-a000223b9c.zip/node_modules/@sentry/src/env.ts","../.yarn/cache/@sentry-utils-npm-6.19.7-d61c6c8632-a000223b9c.zip/node_modules/@sentry/src/object.ts","../.yarn/cache/@sentry-utils-npm-6.19.7-d61c6c8632-a000223b9c.zip/node_modules/@sentry/src/stacktrace.ts","../.yarn/cache/@sentry-utils-npm-6.19.7-d61c6c8632-a000223b9c.zip/node_modules/@sentry/src/string.ts","../.yarn/cache/@sentry-utils-npm-6.19.7-d61c6c8632-a000223b9c.zip/node_modules/@sentry/src/supports.ts","../.yarn/cache/@sentry-utils-npm-6.19.7-d61c6c8632-a000223b9c.zip/node_modules/@sentry/src/syncpromise.ts","../.yarn/cache/@sentry-utils-npm-6.19.7-d61c6c8632-a000223b9c.zip/node_modules/@sentry/src/time.ts","../.yarn/cache/base64-js-npm-1.5.1-b2f7275641-669632eb37.zip/node_modules/base64-js/index.js","../.yarn/cache/bowser-npm-2.11.0-33664d9063-29c3f01f22.zip/node_modules/bowser/es5.js","../.yarn/cache/buffer-npm-4.9.2-9e40b5e87a-8801bc1ba0.zip/node_modules/buffer/index.js","../.yarn/cache/buffer-npm-6.0.3-cd90dfedfe-5ad23293d9.zip/node_modules/buffer/index.js","../.yarn/cache/classnames-npm-2.2.6-98e9901cf4-09a4fda780.zip/node_modules/classnames/index.js","../.yarn/cache/classnames-npm-2.3.2-d2fdae468d-2c62199789.zip/node_modules/classnames/index.js","../.yarn/cache/cookie-npm-0.4.2-7761894d5f-a00833c998.zip/node_modules/cookie/index.js","../.yarn/cache/crypto-js-npm-4.1.1-38a3b8c19d-b3747c12ee.zip/node_modules/crypto-js/core.js","../.yarn/cache/crypto-js-npm-4.1.1-38a3b8c19d-b3747c12ee.zip/node_modules/crypto-js/enc-base64.js","../.yarn/cache/crypto-js-npm-4.1.1-38a3b8c19d-b3747c12ee.zip/node_modules/crypto-js/hmac-sha256.js","../.yarn/cache/crypto-js-npm-4.1.1-38a3b8c19d-b3747c12ee.zip/node_modules/crypto-js/hmac.js","../.yarn/cache/crypto-js-npm-4.1.1-38a3b8c19d-b3747c12ee.zip/node_modules/crypto-js/lib-typedarrays.js","../.yarn/cache/crypto-js-npm-4.1.1-38a3b8c19d-b3747c12ee.zip/node_modules/crypto-js/sha256.js","../.yarn/cache/hoist-non-react-statics-npm-3.3.2-e7b709e6c1-b153827042.zip/node_modules/hoist-non-react-statics/dist/hoist-non-react-statics.cjs.js","../.yarn/cache/ieee754-npm-1.2.1-fb63b3caeb-5144c0c981.zip/node_modules/ieee754/index.js","../.yarn/cache/invariant-npm-2.2.4-717fbdb119-cc3182d793.zip/node_modules/invariant/browser.js","../.yarn/cache/isarray-npm-0.0.1-92e37e0a70-49191f1425.zip/node_modules/isarray/index.js","../.yarn/cache/isarray-npm-1.0.0-db4f547720-f032df8e02.zip/node_modules/isarray/index.js","../.yarn/cache/isomorphic-unfetch-npm-3.1.0-001a51c96c-82b92fe4ec.zip/node_modules/isomorphic-unfetch/browser.js","../.yarn/cache/js-cookie-npm-2.2.1-e879cd2148-9b1fb980a1.zip/node_modules/js-cookie/src/js.cookie.js","../.yarn/cache/lodash-npm-4.17.21-6382451519-eb835a2e51.zip/node_modules/lodash/_DataView.js","../.yarn/cache/lodash-npm-4.17.21-6382451519-eb835a2e51.zip/node_modules/lodash/_Hash.js","../.yarn/cache/lodash-npm-4.17.21-6382451519-eb835a2e51.zip/node_modules/lodash/_ListCache.js","../.yarn/cache/lodash-npm-4.17.21-6382451519-eb835a2e51.zip/node_modules/lodash/_Map.js","../.yarn/cache/lodash-npm-4.17.21-6382451519-eb835a2e51.zip/node_modules/lodash/_MapCache.js","../.yarn/cache/lodash-npm-4.17.21-6382451519-eb835a2e51.zip/node_modules/lodash/_Promise.js","../.yarn/cache/lodash-npm-4.17.21-6382451519-eb835a2e51.zip/node_modules/lodash/_Set.js","../.yarn/cache/lodash-npm-4.17.21-6382451519-eb835a2e51.zip/node_modules/lodash/_SetCache.js","../.yarn/cache/lodash-npm-4.17.21-6382451519-eb835a2e51.zip/node_modules/lodash/_Stack.js","../.yarn/cache/lodash-npm-4.17.21-6382451519-eb835a2e51.zip/node_modules/lodash/_Symbol.js","../.yarn/cache/lodash-npm-4.17.21-6382451519-eb835a2e51.zip/node_modules/lodash/_Uint8Array.js","../.yarn/cache/lodash-npm-4.17.21-6382451519-eb835a2e51.zip/node_modules/lodash/_WeakMap.js","../.yarn/cache/lodash-npm-4.17.21-6382451519-eb835a2e51.zip/node_modules/lodash/_arrayFilter.js","../.yarn/cache/lodash-npm-4.17.21-6382451519-eb835a2e51.zip/node_modules/lodash/_arrayLikeKeys.js","../.yarn/cache/lodash-npm-4.17.21-6382451519-eb835a2e51.zip/node_modules/lodash/_arrayMap.js","../.yarn/cache/lodash-npm-4.17.21-6382451519-eb835a2e51.zip/node_modules/lodash/_arrayPush.js","../.yarn/cache/lodash-npm-4.17.21-6382451519-eb835a2e51.zip/node_modules/lodash/_arrayReduce.js","../.yarn/cache/lodash-npm-4.17.21-6382451519-eb835a2e51.zip/node_modules/lodash/_arraySome.js","../.yarn/cache/lodash-npm-4.17.21-6382451519-eb835a2e51.zip/node_modules/lodash/_asciiToArray.js","../.yarn/cache/lodash-npm-4.17.21-6382451519-eb835a2e51.zip/node_modules/lodash/_asciiWords.js","../.yarn/cache/lodash-npm-4.17.21-6382451519-eb835a2e51.zip/node_modules/lodash/_assocIndexOf.js","../.yarn/cache/lodash-npm-4.17.21-6382451519-eb835a2e51.zip/node_modules/lodash/_baseAssignValue.js","../.yarn/cache/lodash-npm-4.17.21-6382451519-eb835a2e51.zip/node_modules/lodash/_baseFor.js","../.yarn/cache/lodash-npm-4.17.21-6382451519-eb835a2e51.zip/node_modules/lodash/_baseForOwn.js","../.yarn/cache/lodash-npm-4.17.21-6382451519-eb835a2e51.zip/node_modules/lodash/_baseGet.js","../.yarn/cache/lodash-npm-4.17.21-6382451519-eb835a2e51.zip/node_modules/lodash/_baseGetAllKeys.js","../.yarn/cache/lodash-npm-4.17.21-6382451519-eb835a2e51.zip/node_modules/lodash/_baseGetTag.js","../.yarn/cache/lodash-npm-4.17.21-6382451519-eb835a2e51.zip/node_modules/lodash/_baseHas.js","../.yarn/cache/lodash-npm-4.17.21-6382451519-eb835a2e51.zip/node_modules/lodash/_baseHasIn.js","../.yarn/cache/lodash-npm-4.17.21-6382451519-eb835a2e51.zip/node_modules/lodash/_baseIsArguments.js","../.yarn/cache/lodash-npm-4.17.21-6382451519-eb835a2e51.zip/node_modules/lodash/_baseIsEqual.js","../.yarn/cache/lodash-npm-4.17.21-6382451519-eb835a2e51.zip/node_modules/lodash/_baseIsEqualDeep.js","../.yarn/cache/lodash-npm-4.17.21-6382451519-eb835a2e51.zip/node_modules/lodash/_baseIsMatch.js","../.yarn/cache/lodash-npm-4.17.21-6382451519-eb835a2e51.zip/node_modules/lodash/_baseIsNative.js","../.yarn/cache/lodash-npm-4.17.21-6382451519-eb835a2e51.zip/node_modules/lodash/_baseIsTypedArray.js","../.yarn/cache/lodash-npm-4.17.21-6382451519-eb835a2e51.zip/node_modules/lodash/_baseIteratee.js","../.yarn/cache/lodash-npm-4.17.21-6382451519-eb835a2e51.zip/node_modules/lodash/_baseKeys.js","../.yarn/cache/lodash-npm-4.17.21-6382451519-eb835a2e51.zip/node_modules/lodash/_baseMatches.js","../.yarn/cache/lodash-npm-4.17.21-6382451519-eb835a2e51.zip/node_modules/lodash/_baseMatchesProperty.js","../.yarn/cache/lodash-npm-4.17.21-6382451519-eb835a2e51.zip/node_modules/lodash/_baseProperty.js","../.yarn/cache/lodash-npm-4.17.21-6382451519-eb835a2e51.zip/node_modules/lodash/_basePropertyDeep.js","../.yarn/cache/lodash-npm-4.17.21-6382451519-eb835a2e51.zip/node_modules/lodash/_basePropertyOf.js","../.yarn/cache/lodash-npm-4.17.21-6382451519-eb835a2e51.zip/node_modules/lodash/_baseSlice.js","../.yarn/cache/lodash-npm-4.17.21-6382451519-eb835a2e51.zip/node_modules/lodash/_baseTimes.js","../.yarn/cache/lodash-npm-4.17.21-6382451519-eb835a2e51.zip/node_modules/lodash/_baseToString.js","../.yarn/cache/lodash-npm-4.17.21-6382451519-eb835a2e51.zip/node_modules/lodash/_baseUnary.js","../.yarn/cache/lodash-npm-4.17.21-6382451519-eb835a2e51.zip/node_modules/lodash/_cacheHas.js","../.yarn/cache/lodash-npm-4.17.21-6382451519-eb835a2e51.zip/node_modules/lodash/_castPath.js","../.yarn/cache/lodash-npm-4.17.21-6382451519-eb835a2e51.zip/node_modules/lodash/_castSlice.js","../.yarn/cache/lodash-npm-4.17.21-6382451519-eb835a2e51.zip/node_modules/lodash/_coreJsData.js","../.yarn/cache/lodash-npm-4.17.21-6382451519-eb835a2e51.zip/node_modules/lodash/_createBaseFor.js","../.yarn/cache/lodash-npm-4.17.21-6382451519-eb835a2e51.zip/node_modules/lodash/_createCaseFirst.js","../.yarn/cache/lodash-npm-4.17.21-6382451519-eb835a2e51.zip/node_modules/lodash/_createCompounder.js","../.yarn/cache/lodash-npm-4.17.21-6382451519-eb835a2e51.zip/node_modules/lodash/_deburrLetter.js","../.yarn/cache/lodash-npm-4.17.21-6382451519-eb835a2e51.zip/node_modules/lodash/_defineProperty.js","../.yarn/cache/lodash-npm-4.17.21-6382451519-eb835a2e51.zip/node_modules/lodash/_equalArrays.js","../.yarn/cache/lodash-npm-4.17.21-6382451519-eb835a2e51.zip/node_modules/lodash/_equalByTag.js","../.yarn/cache/lodash-npm-4.17.21-6382451519-eb835a2e51.zip/node_modules/lodash/_equalObjects.js","../.yarn/cache/lodash-npm-4.17.21-6382451519-eb835a2e51.zip/node_modules/lodash/_freeGlobal.js","../.yarn/cache/lodash-npm-4.17.21-6382451519-eb835a2e51.zip/node_modules/lodash/_getAllKeys.js","../.yarn/cache/lodash-npm-4.17.21-6382451519-eb835a2e51.zip/node_modules/lodash/_getMapData.js","../.yarn/cache/lodash-npm-4.17.21-6382451519-eb835a2e51.zip/node_modules/lodash/_getMatchData.js","../.yarn/cache/lodash-npm-4.17.21-6382451519-eb835a2e51.zip/node_modules/lodash/_getNative.js","../.yarn/cache/lodash-npm-4.17.21-6382451519-eb835a2e51.zip/node_modules/lodash/_getRawTag.js","../.yarn/cache/lodash-npm-4.17.21-6382451519-eb835a2e51.zip/node_modules/lodash/_getSymbols.js","../.yarn/cache/lodash-npm-4.17.21-6382451519-eb835a2e51.zip/node_modules/lodash/_getTag.js","../.yarn/cache/lodash-npm-4.17.21-6382451519-eb835a2e51.zip/node_modules/lodash/_getValue.js","../.yarn/cache/lodash-npm-4.17.21-6382451519-eb835a2e51.zip/node_modules/lodash/_hasPath.js","../.yarn/cache/lodash-npm-4.17.21-6382451519-eb835a2e51.zip/node_modules/lodash/_hasUnicode.js","../.yarn/cache/lodash-npm-4.17.21-6382451519-eb835a2e51.zip/node_modules/lodash/_hasUnicodeWord.js","../.yarn/cache/lodash-npm-4.17.21-6382451519-eb835a2e51.zip/node_modules/lodash/_hashClear.js","../.yarn/cache/lodash-npm-4.17.21-6382451519-eb835a2e51.zip/node_modules/lodash/_hashDelete.js","../.yarn/cache/lodash-npm-4.17.21-6382451519-eb835a2e51.zip/node_modules/lodash/_hashGet.js","../.yarn/cache/lodash-npm-4.17.21-6382451519-eb835a2e51.zip/node_modules/lodash/_hashHas.js","../.yarn/cache/lodash-npm-4.17.21-6382451519-eb835a2e51.zip/node_modules/lodash/_hashSet.js","../.yarn/cache/lodash-npm-4.17.21-6382451519-eb835a2e51.zip/node_modules/lodash/_isIndex.js","../.yarn/cache/lodash-npm-4.17.21-6382451519-eb835a2e51.zip/node_modules/lodash/_isKey.js","../.yarn/cache/lodash-npm-4.17.21-6382451519-eb835a2e51.zip/node_modules/lodash/_isKeyable.js","../.yarn/cache/lodash-npm-4.17.21-6382451519-eb835a2e51.zip/node_modules/lodash/_isMasked.js","../.yarn/cache/lodash-npm-4.17.21-6382451519-eb835a2e51.zip/node_modules/lodash/_isPrototype.js","../.yarn/cache/lodash-npm-4.17.21-6382451519-eb835a2e51.zip/node_modules/lodash/_isStrictComparable.js","../.yarn/cache/lodash-npm-4.17.21-6382451519-eb835a2e51.zip/node_modules/lodash/_listCacheClear.js","../.yarn/cache/lodash-npm-4.17.21-6382451519-eb835a2e51.zip/node_modules/lodash/_listCacheDelete.js","../.yarn/cache/lodash-npm-4.17.21-6382451519-eb835a2e51.zip/node_modules/lodash/_listCacheGet.js","../.yarn/cache/lodash-npm-4.17.21-6382451519-eb835a2e51.zip/node_modules/lodash/_listCacheHas.js","../.yarn/cache/lodash-npm-4.17.21-6382451519-eb835a2e51.zip/node_modules/lodash/_listCacheSet.js","../.yarn/cache/lodash-npm-4.17.21-6382451519-eb835a2e51.zip/node_modules/lodash/_mapCacheClear.js","../.yarn/cache/lodash-npm-4.17.21-6382451519-eb835a2e51.zip/node_modules/lodash/_mapCacheDelete.js","../.yarn/cache/lodash-npm-4.17.21-6382451519-eb835a2e51.zip/node_modules/lodash/_mapCacheGet.js","../.yarn/cache/lodash-npm-4.17.21-6382451519-eb835a2e51.zip/node_modules/lodash/_mapCacheHas.js","../.yarn/cache/lodash-npm-4.17.21-6382451519-eb835a2e51.zip/node_modules/lodash/_mapCacheSet.js","../.yarn/cache/lodash-npm-4.17.21-6382451519-eb835a2e51.zip/node_modules/lodash/_mapToArray.js","../.yarn/cache/lodash-npm-4.17.21-6382451519-eb835a2e51.zip/node_modules/lodash/_matchesStrictComparable.js","../.yarn/cache/lodash-npm-4.17.21-6382451519-eb835a2e51.zip/node_modules/lodash/_memoizeCapped.js","../.yarn/cache/lodash-npm-4.17.21-6382451519-eb835a2e51.zip/node_modules/lodash/_nativeCreate.js","../.yarn/cache/lodash-npm-4.17.21-6382451519-eb835a2e51.zip/node_modules/lodash/_nativeKeys.js","../.yarn/cache/lodash-npm-4.17.21-6382451519-eb835a2e51.zip/node_modules/lodash/_nodeUtil.js","../.yarn/cache/lodash-npm-4.17.21-6382451519-eb835a2e51.zip/node_modules/lodash/_objectToString.js","../.yarn/cache/lodash-npm-4.17.21-6382451519-eb835a2e51.zip/node_modules/lodash/_overArg.js","../.yarn/cache/lodash-npm-4.17.21-6382451519-eb835a2e51.zip/node_modules/lodash/_root.js","../.yarn/cache/lodash-npm-4.17.21-6382451519-eb835a2e51.zip/node_modules/lodash/_setCacheAdd.js","../.yarn/cache/lodash-npm-4.17.21-6382451519-eb835a2e51.zip/node_modules/lodash/_setCacheHas.js","../.yarn/cache/lodash-npm-4.17.21-6382451519-eb835a2e51.zip/node_modules/lodash/_setToArray.js","../.yarn/cache/lodash-npm-4.17.21-6382451519-eb835a2e51.zip/node_modules/lodash/_stackClear.js","../.yarn/cache/lodash-npm-4.17.21-6382451519-eb835a2e51.zip/node_modules/lodash/_stackDelete.js","../.yarn/cache/lodash-npm-4.17.21-6382451519-eb835a2e51.zip/node_modules/lodash/_stackGet.js","../.yarn/cache/lodash-npm-4.17.21-6382451519-eb835a2e51.zip/node_modules/lodash/_stackHas.js","../.yarn/cache/lodash-npm-4.17.21-6382451519-eb835a2e51.zip/node_modules/lodash/_stackSet.js","../.yarn/cache/lodash-npm-4.17.21-6382451519-eb835a2e51.zip/node_modules/lodash/_stringToArray.js","../.yarn/cache/lodash-npm-4.17.21-6382451519-eb835a2e51.zip/node_modules/lodash/_stringToPath.js","../.yarn/cache/lodash-npm-4.17.21-6382451519-eb835a2e51.zip/node_modules/lodash/_toKey.js","../.yarn/cache/lodash-npm-4.17.21-6382451519-eb835a2e51.zip/node_modules/lodash/_toSource.js","../.yarn/cache/lodash-npm-4.17.21-6382451519-eb835a2e51.zip/node_modules/lodash/_unicodeToArray.js","../.yarn/cache/lodash-npm-4.17.21-6382451519-eb835a2e51.zip/node_modules/lodash/_unicodeWords.js","../.yarn/cache/lodash-npm-4.17.21-6382451519-eb835a2e51.zip/node_modules/lodash/camelCase.js","../.yarn/cache/lodash-npm-4.17.21-6382451519-eb835a2e51.zip/node_modules/lodash/capitalize.js","../.yarn/cache/lodash-npm-4.17.21-6382451519-eb835a2e51.zip/node_modules/lodash/deburr.js","../.yarn/cache/lodash-npm-4.17.21-6382451519-eb835a2e51.zip/node_modules/lodash/eq.js","../.yarn/cache/lodash-npm-4.17.21-6382451519-eb835a2e51.zip/node_modules/lodash/get.js","../.yarn/cache/lodash-npm-4.17.21-6382451519-eb835a2e51.zip/node_modules/lodash/has.js","../.yarn/cache/lodash-npm-4.17.21-6382451519-eb835a2e51.zip/node_modules/lodash/hasIn.js","../.yarn/cache/lodash-npm-4.17.21-6382451519-eb835a2e51.zip/node_modules/lodash/identity.js","../.yarn/cache/lodash-npm-4.17.21-6382451519-eb835a2e51.zip/node_modules/lodash/isArguments.js","../.yarn/cache/lodash-npm-4.17.21-6382451519-eb835a2e51.zip/node_modules/lodash/isArray.js","../.yarn/cache/lodash-npm-4.17.21-6382451519-eb835a2e51.zip/node_modules/lodash/isArrayLike.js","../.yarn/cache/lodash-npm-4.17.21-6382451519-eb835a2e51.zip/node_modules/lodash/isBuffer.js","../.yarn/cache/lodash-npm-4.17.21-6382451519-eb835a2e51.zip/node_modules/lodash/isFunction.js","../.yarn/cache/lodash-npm-4.17.21-6382451519-eb835a2e51.zip/node_modules/lodash/isLength.js","../.yarn/cache/lodash-npm-4.17.21-6382451519-eb835a2e51.zip/node_modules/lodash/isObject.js","../.yarn/cache/lodash-npm-4.17.21-6382451519-eb835a2e51.zip/node_modules/lodash/isObjectLike.js","../.yarn/cache/lodash-npm-4.17.21-6382451519-eb835a2e51.zip/node_modules/lodash/isSymbol.js","../.yarn/cache/lodash-npm-4.17.21-6382451519-eb835a2e51.zip/node_modules/lodash/isTypedArray.js","../.yarn/cache/lodash-npm-4.17.21-6382451519-eb835a2e51.zip/node_modules/lodash/keys.js","../.yarn/cache/lodash-npm-4.17.21-6382451519-eb835a2e51.zip/node_modules/lodash/mapKeys.js","../.yarn/cache/lodash-npm-4.17.21-6382451519-eb835a2e51.zip/node_modules/lodash/mapValues.js","../.yarn/cache/lodash-npm-4.17.21-6382451519-eb835a2e51.zip/node_modules/lodash/memoize.js","../.yarn/cache/lodash-npm-4.17.21-6382451519-eb835a2e51.zip/node_modules/lodash/property.js","../.yarn/cache/lodash-npm-4.17.21-6382451519-eb835a2e51.zip/node_modules/lodash/snakeCase.js","../.yarn/cache/lodash-npm-4.17.21-6382451519-eb835a2e51.zip/node_modules/lodash/stubArray.js","../.yarn/cache/lodash-npm-4.17.21-6382451519-eb835a2e51.zip/node_modules/lodash/stubFalse.js","../.yarn/cache/lodash-npm-4.17.21-6382451519-eb835a2e51.zip/node_modules/lodash/toString.js","../.yarn/cache/lodash-npm-4.17.21-6382451519-eb835a2e51.zip/node_modules/lodash/upperFirst.js","../.yarn/cache/lodash-npm-4.17.21-6382451519-eb835a2e51.zip/node_modules/lodash/words.js","../.yarn/cache/moment-npm-2.29.4-902943305d-0ec3f9c2bc.zip/node_modules/moment/moment.js","../.yarn/cache/moment-timezone-npm-0.5.40-873e898229-6f6be5412b.zip/node_modules/moment-timezone/index.js","../.yarn/cache/moment-timezone-npm-0.5.40-873e898229-6f6be5412b.zip/node_modules/moment-timezone/moment-timezone.js","../.yarn/cache/object-assign-npm-4.1.1-1004ad6dec-fcc6e4ea8c.zip/node_modules/object-assign/index.js","../.yarn/cache/papaparse-npm-5.3.0-3ff9a3446a-2fcf050fac.zip/node_modules/papaparse/papaparse.min.js","../.yarn/cache/path-to-regexp-npm-1.8.0-a1904f5c44-709f6f083c.zip/node_modules/path-to-regexp/index.js","../.yarn/cache/process-npm-0.11.10-aeb3b641ae-bfcce49814.zip/node_modules/process/browser.js","../.yarn/cache/prop-types-npm-15.8.1-17c71ee7ee-c056d3f1c0.zip/node_modules/prop-types/factoryWithThrowingShims.js","../.yarn/cache/prop-types-npm-15.8.1-17c71ee7ee-c056d3f1c0.zip/node_modules/prop-types/index.js","../.yarn/cache/prop-types-npm-15.8.1-17c71ee7ee-c056d3f1c0.zip/node_modules/prop-types/lib/ReactPropTypesSecret.js","../.yarn/cache/property-expr-npm-2.0.5-6f6bda4c65-4ebe82ce45.zip/node_modules/property-expr/index.js","../.yarn/cache/punycode-npm-1.3.2-3727a84cea-b8807fd594.zip/node_modules/punycode/punycode.js","../.yarn/cache/querystring-npm-0.2.0-421b870c92-8258d6734f.zip/node_modules/querystring/decode.js","../.yarn/cache/querystring-npm-0.2.0-421b870c92-8258d6734f.zip/node_modules/querystring/encode.js","../.yarn/cache/querystring-npm-0.2.0-421b870c92-8258d6734f.zip/node_modules/querystring/index.js","../.yarn/cache/react-ga4-npm-2.1.0-2d2287b7a6-f7fb411414.zip/node_modules/react-ga4/dist/format.js","../.yarn/cache/react-ga4-npm-2.1.0-2d2287b7a6-f7fb411414.zip/node_modules/react-ga4/dist/ga4.js","../.yarn/cache/react-ga4-npm-2.1.0-2d2287b7a6-f7fb411414.zip/node_modules/react-ga4/dist/gtag.js","../.yarn/cache/react-ga4-npm-2.1.0-2d2287b7a6-f7fb411414.zip/node_modules/react-ga4/dist/index.js","../.yarn/cache/react-is-npm-16.13.1-a9b9382b4f-f7a19ac349.zip/node_modules/react-is/cjs/react-is.production.min.js","../.yarn/cache/react-is-npm-16.13.1-a9b9382b4f-f7a19ac349.zip/node_modules/react-is/index.js","../.yarn/cache/react-is-npm-17.0.2-091bbb8db6-9d6d111d89.zip/node_modules/react-is/cjs/react-is.production.min.js","../.yarn/cache/react-is-npm-17.0.2-091bbb8db6-9d6d111d89.zip/node_modules/react-is/index.js","../.yarn/cache/react-npm-17.0.2-99ba37d931-b254cc17ce.zip/node_modules/react/cjs/react-jsx-runtime.production.min.js","../.yarn/cache/react-npm-17.0.2-99ba37d931-b254cc17ce.zip/node_modules/react/cjs/react.production.min.js","../.yarn/cache/react-npm-17.0.2-99ba37d931-b254cc17ce.zip/node_modules/react/index.js","../.yarn/cache/react-npm-17.0.2-99ba37d931-b254cc17ce.zip/node_modules/react/jsx-runtime.js","../.yarn/cache/scheduler-npm-0.20.2-90beaecfba-c4b35cf967.zip/node_modules/scheduler/cjs/scheduler.production.min.js","../.yarn/cache/scheduler-npm-0.20.2-90beaecfba-c4b35cf967.zip/node_modules/scheduler/index.js","../.yarn/cache/symbol-observable-npm-1.2.0-9e812a0a39-48ffbc22e3.zip/node_modules/symbol-observable/es/index.js","../.yarn/cache/symbol-observable-npm-1.2.0-9e812a0a39-48ffbc22e3.zip/node_modules/symbol-observable/es/ponyfill.js","../.yarn/cache/toposort-npm-2.0.2-d472329c7d-d64c74b570.zip/node_modules/toposort/index.js","../.yarn/cache/tslib-npm-1.14.1-102499115e-dbe628ef87.zip/node_modules/tslib/tslib.es6.js","../.yarn/cache/unfetch-npm-4.2.0-7c13351021-6a4b2557e1.zip/node_modules/unfetch/src/index.mjs","../.yarn/cache/url-npm-0.11.0-32ce15acfb-50d100d3dd.zip/node_modules/url/url.js","../.yarn/cache/url-npm-0.11.0-32ce15acfb-50d100d3dd.zip/node_modules/url/util.js","../.yarn/cache/uuid-npm-3.4.0-4fd8ef88ad-58de2feed6.zip/node_modules/uuid/index.js","../.yarn/cache/uuid-npm-3.4.0-4fd8ef88ad-58de2feed6.zip/node_modules/uuid/lib/bytesToUuid.js","../.yarn/cache/uuid-npm-3.4.0-4fd8ef88ad-58de2feed6.zip/node_modules/uuid/lib/rng-browser.js","../.yarn/cache/uuid-npm-3.4.0-4fd8ef88ad-58de2feed6.zip/node_modules/uuid/v1.js","../.yarn/cache/uuid-npm-3.4.0-4fd8ef88ad-58de2feed6.zip/node_modules/uuid/v4.js","../.yarn/cache/warning-npm-4.0.3-291e921d6d-4f2cb6a957.zip/node_modules/warning/warning.js","../.yarn/cache/zen-observable-npm-0.8.15-3bec99c19c-b7289084bc.zip/node_modules/zen-observable/index.js","../.yarn/cache/zen-observable-npm-0.8.15-3bec99c19c-b7289084bc.zip/node_modules/zen-observable/lib/Observable.js","../.yarn/cache/@babel-runtime-npm-7.20.13-45eeb6d8ad-09b7a97a05.zip/node_modules/@babel/runtime/helpers/assertThisInitialized.js","../.yarn/cache/@babel-runtime-npm-7.20.13-45eeb6d8ad-09b7a97a05.zip/node_modules/@babel/runtime/helpers/classCallCheck.js","../.yarn/cache/@babel-runtime-npm-7.20.13-45eeb6d8ad-09b7a97a05.zip/node_modules/@babel/runtime/helpers/createClass.js","../.yarn/cache/@babel-runtime-npm-7.20.13-45eeb6d8ad-09b7a97a05.zip/node_modules/@babel/runtime/helpers/createSuper.js","../.yarn/cache/@babel-runtime-npm-7.20.13-45eeb6d8ad-09b7a97a05.zip/node_modules/@babel/runtime/helpers/getPrototypeOf.js","../.yarn/cache/@babel-runtime-npm-7.20.13-45eeb6d8ad-09b7a97a05.zip/node_modules/@babel/runtime/helpers/inherits.js","../.yarn/cache/@babel-runtime-npm-7.20.13-45eeb6d8ad-09b7a97a05.zip/node_modules/@babel/runtime/helpers/isNativeReflectConstruct.js","../.yarn/cache/@babel-runtime-npm-7.20.13-45eeb6d8ad-09b7a97a05.zip/node_modules/@babel/runtime/helpers/possibleConstructorReturn.js","../.yarn/cache/@babel-runtime-npm-7.20.13-45eeb6d8ad-09b7a97a05.zip/node_modules/@babel/runtime/helpers/setPrototypeOf.js","../.yarn/cache/@babel-runtime-npm-7.20.13-45eeb6d8ad-09b7a97a05.zip/node_modules/@babel/runtime/helpers/toPrimitive.js","../.yarn/cache/@babel-runtime-npm-7.20.13-45eeb6d8ad-09b7a97a05.zip/node_modules/@babel/runtime/helpers/toPropertyKey.js","../.yarn/cache/@babel-runtime-npm-7.20.13-45eeb6d8ad-09b7a97a05.zip/node_modules/@babel/runtime/helpers/typeof.js","../webpack/bootstrap","../webpack/runtime/compat get default export","../webpack/runtime/create fake namespace object","../webpack/runtime/define property getters","../webpack/runtime/global","../webpack/runtime/harmony module decorator","../webpack/runtime/hasOwnProperty shorthand","../webpack/runtime/make namespace object","../webpack/runtime/node module decorator","../webpack/runtime/publicPath","../.yarn/cache/@babel-runtime-npm-7.20.13-45eeb6d8ad-09b7a97a05.zip/node_modules/@babel/runtime/helpers/esm/arrayLikeToArray.js","../.yarn/cache/@babel-runtime-npm-7.20.13-45eeb6d8ad-09b7a97a05.zip/node_modules/@babel/runtime/helpers/esm/iterableToArray.js","../.yarn/cache/@babel-runtime-npm-7.20.13-45eeb6d8ad-09b7a97a05.zip/node_modules/@babel/runtime/helpers/esm/unsupportedIterableToArray.js","../.yarn/cache/@babel-runtime-npm-7.20.13-45eeb6d8ad-09b7a97a05.zip/node_modules/@babel/runtime/helpers/esm/toConsumableArray.js","../.yarn/cache/@babel-runtime-npm-7.20.13-45eeb6d8ad-09b7a97a05.zip/node_modules/@babel/runtime/helpers/esm/arrayWithoutHoles.js","../.yarn/cache/@babel-runtime-npm-7.20.13-45eeb6d8ad-09b7a97a05.zip/node_modules/@babel/runtime/helpers/esm/nonIterableSpread.js","../.yarn/__virtual__/react-redux-virtual-6c7a556833/0/cache/react-redux-npm-7.2.9-612aa35519-369a2bdcf8.zip/node_modules/react-redux/es/components/Context.js","../.yarn/__virtual__/react-redux-virtual-6c7a556833/0/cache/react-redux-npm-7.2.9-612aa35519-369a2bdcf8.zip/node_modules/react-redux/es/utils/batch.js","../.yarn/__virtual__/react-redux-virtual-6c7a556833/0/cache/react-redux-npm-7.2.9-612aa35519-369a2bdcf8.zip/node_modules/react-redux/es/utils/Subscription.js","../.yarn/__virtual__/react-redux-virtual-6c7a556833/0/cache/react-redux-npm-7.2.9-612aa35519-369a2bdcf8.zip/node_modules/react-redux/es/utils/useIsomorphicLayoutEffect.js","../.yarn/__virtual__/react-redux-virtual-6c7a556833/0/cache/react-redux-npm-7.2.9-612aa35519-369a2bdcf8.zip/node_modules/react-redux/es/components/Provider.js","../.yarn/cache/@babel-runtime-npm-7.20.13-45eeb6d8ad-09b7a97a05.zip/node_modules/@babel/runtime/helpers/esm/extends.js","../.yarn/__virtual__/react-redux-virtual-6c7a556833/0/cache/react-redux-npm-7.2.9-612aa35519-369a2bdcf8.zip/node_modules/react-redux/es/hooks/useReduxContext.js","../.yarn/__virtual__/react-redux-virtual-6c7a556833/0/cache/react-redux-npm-7.2.9-612aa35519-369a2bdcf8.zip/node_modules/react-redux/es/hooks/useStore.js","../.yarn/__virtual__/react-redux-virtual-6c7a556833/0/cache/react-redux-npm-7.2.9-612aa35519-369a2bdcf8.zip/node_modules/react-redux/es/hooks/useDispatch.js","../.yarn/__virtual__/react-redux-virtual-6c7a556833/0/cache/react-redux-npm-7.2.9-612aa35519-369a2bdcf8.zip/node_modules/react-redux/es/hooks/useSelector.js","../.yarn/__virtual__/react-redux-virtual-6c7a556833/0/cache/react-redux-npm-7.2.9-612aa35519-369a2bdcf8.zip/node_modules/react-redux/es/index.js","../.yarn/cache/@aws-amplify-core-npm-5.0.12-03b8764ded-66a6acb081.zip/node_modules/@aws-amplify/core/src/Logger/ConsoleLogger.ts","../.yarn/cache/@aws-amplify-pubsub-npm-5.0.12-709abfb7a7-b479e691d2.zip/node_modules/@aws-amplify/pubsub/src/types/PubSub.ts","../.yarn/cache/@aws-amplify-core-npm-5.0.12-03b8764ded-66a6acb081.zip/node_modules/@aws-amplify/core/src/Util/Constants.ts","../.yarn/cache/@aws-amplify-core-npm-5.0.12-03b8764ded-66a6acb081.zip/node_modules/@aws-amplify/core/src/Amplify.ts","../.yarn/cache/zen-observable-ts-npm-0.8.19-a9a88c28f2-df3267e41a.zip/node_modules/zen-observable-ts/src/zenObservable.ts","../.yarn/cache/@aws-amplify-pubsub-npm-5.0.12-709abfb7a7-b479e691d2.zip/node_modules/@aws-amplify/pubsub/src/Providers/PubSubProvider.ts","../.yarn/cache/@aws-amplify-core-npm-5.0.12-03b8764ded-66a6acb081.zip/node_modules/@aws-amplify/core/src/Hub.ts","../.yarn/cache/@aws-amplify-pubsub-npm-5.0.12-709abfb7a7-b479e691d2.zip/node_modules/@aws-amplify/pubsub/src/Providers/constants.ts","../.yarn/cache/@aws-amplify-core-npm-5.0.12-03b8764ded-66a6acb081.zip/node_modules/@aws-amplify/core/src/JS.ts","../.yarn/cache/@aws-amplify-core-npm-5.0.12-03b8764ded-66a6acb081.zip/node_modules/@aws-amplify/core/src/Util/Reachability.ts","../.yarn/cache/@aws-amplify-pubsub-npm-5.0.12-709abfb7a7-b479e691d2.zip/node_modules/@aws-amplify/pubsub/src/utils/ReachabilityMonitor/index.ts","../.yarn/cache/@aws-amplify-pubsub-npm-5.0.12-709abfb7a7-b479e691d2.zip/node_modules/@aws-amplify/pubsub/src/utils/ConnectionStateMonitor.ts","../.yarn/cache/@aws-amplify-pubsub-npm-5.0.12-709abfb7a7-b479e691d2.zip/node_modules/@aws-amplify/pubsub/src/utils/ReconnectionMonitor.ts","../.yarn/cache/@aws-amplify-pubsub-npm-5.0.12-709abfb7a7-b479e691d2.zip/node_modules/@aws-amplify/pubsub/src/Providers/MqttOverWSProvider.ts","../.yarn/cache/@aws-amplify-core-npm-5.0.12-03b8764ded-66a6acb081.zip/node_modules/@aws-amplify/core/src/StorageHelper/index.ts","../.yarn/cache/@aws-amplify-core-npm-5.0.12-03b8764ded-66a6acb081.zip/node_modules/@aws-amplify/core/src/Util/Retry.ts","../.yarn/cache/@aws-amplify-core-npm-5.0.12-03b8764ded-66a6acb081.zip/node_modules/@aws-amplify/core/src/OAuthHelper/GoogleOAuth.ts","../.yarn/cache/@aws-amplify-core-npm-5.0.12-03b8764ded-66a6acb081.zip/node_modules/@aws-amplify/core/src/OAuthHelper/FacebookOAuth.ts","../.yarn/cache/@aws-amplify-core-npm-5.0.12-03b8764ded-66a6acb081.zip/node_modules/@aws-amplify/core/src/OAuthHelper/index.ts","../.yarn/cache/tslib-npm-2.5.0-bb364efebd-ae3ed5f9ce.zip/node_modules/tslib/tslib.es6.js","../.yarn/cache/@aws-sdk-client-cognito-identity-npm-3.6.1-8413c6861e-d6e970f69f.zip/node_modules/@aws-sdk/client-cognito-identity/models/models_0.ts","../.yarn/cache/@aws-sdk-protocol-http-npm-3.6.1-5cc31ba486-9e6ec7280a.zip/node_modules/@aws-sdk/protocol-http/src/httpResponse.ts","../.yarn/cache/@aws-sdk-protocol-http-npm-3.6.1-5cc31ba486-9e6ec7280a.zip/node_modules/@aws-sdk/protocol-http/src/httpRequest.ts","../.yarn/cache/@aws-sdk-client-cognito-identity-npm-3.6.1-8413c6861e-d6e970f69f.zip/node_modules/@aws-sdk/client-cognito-identity/protocols/Aws_json1_1.ts","../.yarn/cache/@aws-sdk-middleware-serde-npm-3.6.1-e70795de75-84166b0b95.zip/node_modules/@aws-sdk/middleware-serde/src/serdePlugin.ts","../.yarn/cache/@aws-sdk-middleware-serde-npm-3.6.1-e70795de75-84166b0b95.zip/node_modules/@aws-sdk/middleware-serde/src/deserializerMiddleware.ts","../.yarn/cache/@aws-sdk-middleware-serde-npm-3.6.1-e70795de75-84166b0b95.zip/node_modules/@aws-sdk/middleware-serde/src/serializerMiddleware.ts","../.yarn/cache/@aws-sdk-middleware-stack-npm-3.6.1-86eb5c73e6-ec05971336.zip/node_modules/@aws-sdk/middleware-stack/src/MiddlewareStack.ts","../.yarn/cache/@aws-sdk-smithy-client-npm-3.6.1-34f9670a01-423ddd5b4e.zip/node_modules/@aws-sdk/smithy-client/src/client.ts","../.yarn/cache/@aws-sdk-smithy-client-npm-3.6.1-34f9670a01-423ddd5b4e.zip/node_modules/@aws-sdk/smithy-client/src/command.ts","../.yarn/cache/@aws-sdk-smithy-client-npm-3.6.1-34f9670a01-423ddd5b4e.zip/node_modules/@aws-sdk/smithy-client/src/lazy-json.ts","../.yarn/cache/@aws-sdk-client-cognito-identity-npm-3.6.1-8413c6861e-d6e970f69f.zip/node_modules/@aws-sdk/client-cognito-identity/commands/GetCredentialsForIdentityCommand.ts","../.yarn/cache/@aws-sdk-property-provider-npm-3.6.1-1dd9123349-484e5eb5bb.zip/node_modules/@aws-sdk/property-provider/src/ProviderError.ts","../.yarn/cache/@aws-sdk-credential-provider-cognito-identity-npm-3.6.1-08497dc1e6-0a942e1e91.zip/node_modules/@aws-sdk/credential-provider-cognito-identity/src/resolveLogins.ts","../.yarn/cache/@aws-sdk-credential-provider-cognito-identity-npm-3.6.1-08497dc1e6-0a942e1e91.zip/node_modules/@aws-sdk/credential-provider-cognito-identity/src/fromCognitoIdentity.ts","../.yarn/cache/@aws-sdk-client-cognito-identity-npm-3.6.1-8413c6861e-d6e970f69f.zip/node_modules/@aws-sdk/client-cognito-identity/commands/GetIdCommand.ts","../.yarn/cache/@aws-sdk-credential-provider-cognito-identity-npm-3.6.1-08497dc1e6-0a942e1e91.zip/node_modules/@aws-sdk/credential-provider-cognito-identity/src/IndexedDbStorage.ts","../.yarn/cache/@aws-sdk-credential-provider-cognito-identity-npm-3.6.1-08497dc1e6-0a942e1e91.zip/node_modules/@aws-sdk/credential-provider-cognito-identity/src/InMemoryStorage.ts","../.yarn/cache/@aws-sdk-credential-provider-cognito-identity-npm-3.6.1-08497dc1e6-0a942e1e91.zip/node_modules/@aws-sdk/credential-provider-cognito-identity/src/localStorage.ts","../.yarn/cache/@aws-sdk-credential-provider-cognito-identity-npm-3.6.1-08497dc1e6-0a942e1e91.zip/node_modules/@aws-sdk/credential-provider-cognito-identity/src/fromCognitoIdentityPool.ts","../.yarn/cache/@aws-amplify-core-npm-5.0.12-03b8764ded-66a6acb081.zip/node_modules/@aws-amplify/core/src/parseAWSExports.ts","../.yarn/cache/@aws-sdk-util-uri-escape-npm-3.6.1-7b90c5c835-f27aed4c26.zip/node_modules/@aws-sdk/util-uri-escape/src/escape-uri.ts","../.yarn/cache/@aws-sdk-util-base64-browser-npm-3.6.1-7214088645-1957aa9a8e.zip/node_modules/@aws-sdk/util-base64-browser/src/index.ts","../.yarn/cache/@aws-sdk-fetch-http-handler-npm-3.6.1-7d6b6c15eb-46daffc2b5.zip/node_modules/@aws-sdk/fetch-http-handler/src/fetch-http-handler.ts","../.yarn/cache/@aws-sdk-querystring-builder-npm-3.6.1-1ea6227fd4-99dfa0ef1a.zip/node_modules/@aws-sdk/querystring-builder/src/index.ts","../.yarn/cache/@aws-sdk-fetch-http-handler-npm-3.6.1-7d6b6c15eb-46daffc2b5.zip/node_modules/@aws-sdk/fetch-http-handler/src/request-timeout.ts","../.yarn/cache/@aws-sdk-fetch-http-handler-npm-3.6.1-7d6b6c15eb-46daffc2b5.zip/node_modules/@aws-sdk/fetch-http-handler/src/stream-collector.ts","../.yarn/cache/@aws-sdk-invalid-dependency-npm-3.6.1-d61f3263dc-e53a8bda36.zip/node_modules/@aws-sdk/invalid-dependency/src/invalidProvider.ts","../.yarn/cache/@aws-sdk-middleware-retry-npm-3.6.1-b2a315dc68-f5ff4bcbfe.zip/node_modules/@aws-sdk/middleware-retry/src/retryMiddleware.ts","../.yarn/cache/@aws-sdk-service-error-classification-npm-3.6.1-15128d1cd1-5db54767b8.zip/node_modules/@aws-sdk/service-error-classification/src/constants.ts","../.yarn/cache/@aws-sdk-service-error-classification-npm-3.6.1-15128d1cd1-5db54767b8.zip/node_modules/@aws-sdk/service-error-classification/src/index.ts","../.yarn/cache/@aws-sdk-middleware-retry-npm-3.6.1-b2a315dc68-f5ff4bcbfe.zip/node_modules/@aws-sdk/middleware-retry/src/delayDecider.ts","../.yarn/cache/@aws-sdk-middleware-retry-npm-3.6.1-b2a315dc68-f5ff4bcbfe.zip/node_modules/@aws-sdk/middleware-retry/src/constants.ts","../.yarn/cache/@aws-sdk-middleware-retry-npm-3.6.1-b2a315dc68-f5ff4bcbfe.zip/node_modules/@aws-sdk/middleware-retry/src/retryDecider.ts","../.yarn/cache/@aws-sdk-middleware-retry-npm-3.6.1-b2a315dc68-f5ff4bcbfe.zip/node_modules/@aws-sdk/middleware-retry/src/defaultStrategy.ts","../.yarn/cache/@aws-sdk-middleware-retry-npm-3.6.1-b2a315dc68-f5ff4bcbfe.zip/node_modules/@aws-sdk/middleware-retry/src/defaultRetryQuota.ts","../.yarn/cache/@aws-sdk-middleware-retry-npm-3.6.1-b2a315dc68-f5ff4bcbfe.zip/node_modules/@aws-sdk/middleware-retry/src/configurations.ts","../.yarn/cache/@aws-sdk-util-utf8-browser-npm-3.6.1-57d93d9fd7-a06728b6e6.zip/node_modules/@aws-sdk/util-utf8-browser/src/index.ts","../.yarn/cache/@aws-sdk-client-cognito-identity-npm-3.6.1-8413c6861e-d6e970f69f.zip/node_modules/@aws-sdk/client-cognito-identity/endpoints.ts","../.yarn/cache/@aws-sdk-url-parser-npm-3.6.1-77828ca289-358a0a60c8.zip/node_modules/@aws-sdk/url-parser/src/index.ts","../.yarn/cache/@aws-sdk-client-cognito-identity-npm-3.6.1-8413c6861e-d6e970f69f.zip/node_modules/@aws-sdk/client-cognito-identity/runtimeConfig.shared.ts","../.yarn/cache/@aws-sdk-querystring-parser-npm-3.6.1-4fcd348c9d-097da0236d.zip/node_modules/@aws-sdk/querystring-parser/src/index.ts","../.yarn/cache/@aws-sdk-client-cognito-identity-npm-3.6.1-8413c6861e-d6e970f69f.zip/node_modules/@aws-sdk/client-cognito-identity/runtimeConfig.browser.ts","../.yarn/cache/@aws-sdk-util-body-length-browser-npm-3.6.1-aacee4c9bd-21841a65e1.zip/node_modules/@aws-sdk/util-body-length-browser/src/index.ts","../.yarn/cache/@aws-sdk-util-user-agent-browser-npm-3.6.1-85d4b28d6a-54a3c21197.zip/node_modules/@aws-sdk/util-user-agent-browser/src/index.ts","../.yarn/cache/@aws-sdk-util-utf8-browser-npm-3.6.1-57d93d9fd7-a06728b6e6.zip/node_modules/@aws-sdk/util-utf8-browser/src/whatwgEncodingApi.ts","../.yarn/cache/@aws-sdk-util-utf8-browser-npm-3.6.1-57d93d9fd7-a06728b6e6.zip/node_modules/@aws-sdk/util-utf8-browser/src/pureJs.ts","../.yarn/cache/@aws-sdk-config-resolver-npm-3.6.1-b59675c304-3960b2a5e8.zip/node_modules/@aws-sdk/config-resolver/src/EndpointsConfig.ts","../.yarn/cache/@aws-sdk-config-resolver-npm-3.6.1-b59675c304-3960b2a5e8.zip/node_modules/@aws-sdk/config-resolver/src/RegionConfig.ts","../.yarn/cache/@aws-sdk-middleware-content-length-npm-3.6.1-185563483f-c8ebd023d2.zip/node_modules/@aws-sdk/middleware-content-length/src/index.ts","../.yarn/cache/@aws-sdk-util-hex-encoding-npm-3.6.1-b9f71d1f4b-47f67b8477.zip/node_modules/@aws-sdk/util-hex-encoding/src/index.ts","../.yarn/cache/@aws-sdk-middleware-host-header-npm-3.6.1-0f79cd3fe7-e0be63771d.zip/node_modules/@aws-sdk/middleware-host-header/src/index.ts","../.yarn/cache/@aws-sdk-middleware-logger-npm-3.6.1-a26b8331e0-e28d685b65.zip/node_modules/@aws-sdk/middleware-logger/src/loggerMiddleware.ts","../.yarn/cache/@aws-sdk-signature-v4-npm-3.6.1-02488ce8a1-7fc0615f86.zip/node_modules/@aws-sdk/signature-v4/src/constants.ts","../.yarn/cache/@aws-sdk-signature-v4-npm-3.6.1-02488ce8a1-7fc0615f86.zip/node_modules/@aws-sdk/signature-v4/src/credentialDerivation.ts","../.yarn/cache/@aws-sdk-signature-v4-npm-3.6.1-02488ce8a1-7fc0615f86.zip/node_modules/@aws-sdk/signature-v4/src/getCanonicalHeaders.ts","../.yarn/cache/@aws-sdk-signature-v4-npm-3.6.1-02488ce8a1-7fc0615f86.zip/node_modules/@aws-sdk/signature-v4/src/getPayloadHash.ts","../.yarn/cache/@aws-sdk-is-array-buffer-npm-3.6.1-eddd89a4f7-68a6200d98.zip/node_modules/@aws-sdk/is-array-buffer/src/index.ts","../.yarn/cache/@aws-sdk-signature-v4-npm-3.6.1-02488ce8a1-7fc0615f86.zip/node_modules/@aws-sdk/signature-v4/src/cloneRequest.ts","../.yarn/cache/@aws-sdk-signature-v4-npm-3.6.1-02488ce8a1-7fc0615f86.zip/node_modules/@aws-sdk/signature-v4/src/prepareRequest.ts","../.yarn/cache/@aws-sdk-signature-v4-npm-3.6.1-02488ce8a1-7fc0615f86.zip/node_modules/@aws-sdk/signature-v4/src/utilDate.ts","../.yarn/cache/@aws-sdk-signature-v4-npm-3.6.1-02488ce8a1-7fc0615f86.zip/node_modules/@aws-sdk/signature-v4/src/SignatureV4.ts","../.yarn/cache/@aws-sdk-signature-v4-npm-3.6.1-02488ce8a1-7fc0615f86.zip/node_modules/@aws-sdk/signature-v4/src/moveHeadersToQuery.ts","../.yarn/cache/@aws-sdk-signature-v4-npm-3.6.1-02488ce8a1-7fc0615f86.zip/node_modules/@aws-sdk/signature-v4/src/hasHeader.ts","../.yarn/cache/@aws-sdk-signature-v4-npm-3.6.1-02488ce8a1-7fc0615f86.zip/node_modules/@aws-sdk/signature-v4/src/getCanonicalQuery.ts","../.yarn/cache/@aws-sdk-middleware-signing-npm-3.6.1-ddf74a97ae-de9db759d1.zip/node_modules/@aws-sdk/middleware-signing/src/configurations.ts","../.yarn/cache/@aws-sdk-middleware-user-agent-npm-3.6.1-fd7a2ac8c8-b59e78bcee.zip/node_modules/@aws-sdk/middleware-user-agent/src/constants.ts","../.yarn/cache/@aws-sdk-middleware-user-agent-npm-3.6.1-fd7a2ac8c8-b59e78bcee.zip/node_modules/@aws-sdk/middleware-user-agent/src/user-agent-middleware.ts","../.yarn/cache/@aws-sdk-client-cognito-identity-npm-3.6.1-8413c6861e-d6e970f69f.zip/node_modules/@aws-sdk/client-cognito-identity/CognitoIdentityClient.ts","../.yarn/cache/@aws-sdk-middleware-user-agent-npm-3.6.1-fd7a2ac8c8-b59e78bcee.zip/node_modules/@aws-sdk/middleware-user-agent/src/configurations.ts","../.yarn/cache/@aws-amplify-core-npm-5.0.12-03b8764ded-66a6acb081.zip/node_modules/@aws-amplify/core/src/Platform/index.ts","../.yarn/cache/@aws-amplify-core-npm-5.0.12-03b8764ded-66a6acb081.zip/node_modules/@aws-amplify/core/src/Util/CognitoIdentityClient.ts","../.yarn/cache/@aws-amplify-core-npm-5.0.12-03b8764ded-66a6acb081.zip/node_modules/@aws-amplify/core/src/Credentials.ts","../.yarn/cache/@aws-amplify-core-npm-5.0.12-03b8764ded-66a6acb081.zip/node_modules/@aws-amplify/core/src/Util/DateUtils.ts","../.yarn/cache/@aws-amplify-core-npm-5.0.12-03b8764ded-66a6acb081.zip/node_modules/@aws-amplify/core/src/Signer.ts","../.yarn/cache/@aws-amplify-pubsub-npm-5.0.12-709abfb7a7-b479e691d2.zip/node_modules/@aws-amplify/pubsub/src/Providers/AWSIotProvider.ts","../.yarn/cache/mobx-npm-6.10.2-946dc29b68-14d6f1db4e.zip/node_modules/mobx/src/errors.ts","../.yarn/cache/mobx-npm-6.10.2-946dc29b68-14d6f1db4e.zip/node_modules/mobx/src/utils/global.ts","../.yarn/cache/mobx-npm-6.10.2-946dc29b68-14d6f1db4e.zip/node_modules/mobx/src/utils/utils.ts","../.yarn/cache/mobx-npm-6.10.2-946dc29b68-14d6f1db4e.zip/node_modules/mobx/src/api/decorators.ts","../.yarn/cache/mobx-npm-6.10.2-946dc29b68-14d6f1db4e.zip/node_modules/mobx/src/types/overrideannotation.ts","../.yarn/cache/mobx-npm-6.10.2-946dc29b68-14d6f1db4e.zip/node_modules/mobx/src/core/atom.ts","../.yarn/cache/mobx-npm-6.10.2-946dc29b68-14d6f1db4e.zip/node_modules/mobx/src/api/become-observed.ts","../.yarn/cache/mobx-npm-6.10.2-946dc29b68-14d6f1db4e.zip/node_modules/mobx/src/utils/comparer.ts","../.yarn/cache/mobx-npm-6.10.2-946dc29b68-14d6f1db4e.zip/node_modules/mobx/src/types/modifiers.ts","../.yarn/cache/mobx-npm-6.10.2-946dc29b68-14d6f1db4e.zip/node_modules/mobx/src/types/actionannotation.ts","../.yarn/cache/mobx-npm-6.10.2-946dc29b68-14d6f1db4e.zip/node_modules/mobx/src/types/flowannotation.ts","../.yarn/cache/mobx-npm-6.10.2-946dc29b68-14d6f1db4e.zip/node_modules/mobx/src/types/computedannotation.ts","../.yarn/cache/mobx-npm-6.10.2-946dc29b68-14d6f1db4e.zip/node_modules/mobx/src/types/observableannotation.ts","../.yarn/cache/mobx-npm-6.10.2-946dc29b68-14d6f1db4e.zip/node_modules/mobx/src/types/autoannotation.ts","../.yarn/cache/mobx-npm-6.10.2-946dc29b68-14d6f1db4e.zip/node_modules/mobx/src/api/observable.ts","../.yarn/cache/mobx-npm-6.10.2-946dc29b68-14d6f1db4e.zip/node_modules/mobx/src/types/dynamicobject.ts","../.yarn/cache/mobx-npm-6.10.2-946dc29b68-14d6f1db4e.zip/node_modules/mobx/src/api/computed.ts","../.yarn/cache/mobx-npm-6.10.2-946dc29b68-14d6f1db4e.zip/node_modules/mobx/src/core/action.ts","../.yarn/cache/mobx-npm-6.10.2-946dc29b68-14d6f1db4e.zip/node_modules/mobx/src/types/observablevalue.ts","../.yarn/cache/mobx-npm-6.10.2-946dc29b68-14d6f1db4e.zip/node_modules/mobx/src/core/computedvalue.ts","../.yarn/cache/mobx-npm-6.10.2-946dc29b68-14d6f1db4e.zip/node_modules/mobx/src/core/derivation.ts","../.yarn/cache/mobx-npm-6.10.2-946dc29b68-14d6f1db4e.zip/node_modules/mobx/src/core/observable.ts","../.yarn/cache/mobx-npm-6.10.2-946dc29b68-14d6f1db4e.zip/node_modules/mobx/src/core/globalstate.ts","../.yarn/cache/mobx-npm-6.10.2-946dc29b68-14d6f1db4e.zip/node_modules/mobx/src/core/reaction.ts","../.yarn/cache/mobx-npm-6.10.2-946dc29b68-14d6f1db4e.zip/node_modules/mobx/src/api/action.ts","../.yarn/cache/mobx-npm-6.10.2-946dc29b68-14d6f1db4e.zip/node_modules/mobx/src/api/autorun.ts","../.yarn/cache/mobx-npm-6.10.2-946dc29b68-14d6f1db4e.zip/node_modules/mobx/src/api/configure.ts","../.yarn/cache/mobx-npm-6.10.2-946dc29b68-14d6f1db4e.zip/node_modules/mobx/src/api/extendobservable.ts","../.yarn/cache/mobx-npm-6.10.2-946dc29b68-14d6f1db4e.zip/node_modules/mobx/src/api/extras.ts","../.yarn/cache/mobx-npm-6.10.2-946dc29b68-14d6f1db4e.zip/node_modules/mobx/src/api/flow.ts","../.yarn/cache/mobx-npm-6.10.2-946dc29b68-14d6f1db4e.zip/node_modules/mobx/src/api/isobservable.ts","../.yarn/cache/mobx-npm-6.10.2-946dc29b68-14d6f1db4e.zip/node_modules/mobx/src/api/transaction.ts","../.yarn/cache/mobx-npm-6.10.2-946dc29b68-14d6f1db4e.zip/node_modules/mobx/src/types/intercept-utils.ts","../.yarn/cache/mobx-npm-6.10.2-946dc29b68-14d6f1db4e.zip/node_modules/mobx/src/types/listen-utils.ts","../.yarn/cache/mobx-npm-6.10.2-946dc29b68-14d6f1db4e.zip/node_modules/mobx/src/types/observablearray.ts","../.yarn/cache/mobx-npm-6.10.2-946dc29b68-14d6f1db4e.zip/node_modules/mobx/src/core/spy.ts","../.yarn/cache/mobx-npm-6.10.2-946dc29b68-14d6f1db4e.zip/node_modules/mobx/src/types/observablemap.ts","../.yarn/cache/mobx-npm-6.10.2-946dc29b68-14d6f1db4e.zip/node_modules/mobx/src/types/observableset.ts","../.yarn/cache/mobx-npm-6.10.2-946dc29b68-14d6f1db4e.zip/node_modules/mobx/src/types/observableobject.ts","../.yarn/cache/mobx-npm-6.10.2-946dc29b68-14d6f1db4e.zip/node_modules/mobx/src/types/legacyobservablearray.ts","../.yarn/cache/mobx-npm-6.10.2-946dc29b68-14d6f1db4e.zip/node_modules/mobx/src/types/type-utils.ts","../.yarn/cache/mobx-npm-6.10.2-946dc29b68-14d6f1db4e.zip/node_modules/mobx/src/utils/eq.ts","../.yarn/cache/mobx-npm-6.10.2-946dc29b68-14d6f1db4e.zip/node_modules/mobx/src/utils/iterable.ts","../.yarn/cache/mobx-npm-6.10.2-946dc29b68-14d6f1db4e.zip/node_modules/mobx/src/mobx.ts","../.yarn/cache/posthog-js-npm-1.67.1-2b4a8b0d47-17a978f55c.zip/node_modules/posthog-js/src/config.ts","../.yarn/cache/posthog-js-npm-1.67.1-2b4a8b0d47-17a978f55c.zip/node_modules/posthog-js/src/uuidv7.ts","../.yarn/cache/posthog-js-npm-1.67.1-2b4a8b0d47-17a978f55c.zip/node_modules/posthog-js/src/utils.ts","../.yarn/cache/posthog-js-npm-1.67.1-2b4a8b0d47-17a978f55c.zip/node_modules/posthog-js/src/autocapture-utils.ts","../.yarn/cache/posthog-js-npm-1.67.1-2b4a8b0d47-17a978f55c.zip/node_modules/posthog-js/src/extensions/rageclick.ts","../.yarn/cache/posthog-js-npm-1.67.1-2b4a8b0d47-17a978f55c.zip/node_modules/posthog-js/src/storage.ts","../.yarn/cache/posthog-js-npm-1.67.1-2b4a8b0d47-17a978f55c.zip/node_modules/posthog-js/src/posthog-persistence.ts","../.yarn/cache/posthog-js-npm-1.67.1-2b4a8b0d47-17a978f55c.zip/node_modules/posthog-js/src/autocapture.ts","../.yarn/cache/posthog-js-npm-1.67.1-2b4a8b0d47-17a978f55c.zip/node_modules/posthog-js/src/gdpr-utils.ts","../.yarn/cache/posthog-js-npm-1.67.1-2b4a8b0d47-17a978f55c.zip/node_modules/posthog-js/src/posthog-people.ts","../.yarn/cache/posthog-js-npm-1.67.1-2b4a8b0d47-17a978f55c.zip/node_modules/posthog-js/src/extensions/sessionrecording.ts","../.yarn/cache/posthog-js-npm-1.67.1-2b4a8b0d47-17a978f55c.zip/node_modules/posthog-js/src/posthog-featureflags.ts","../.yarn/cache/posthog-js-npm-1.67.1-2b4a8b0d47-17a978f55c.zip/node_modules/posthog-js/src/extensions/sessionrecording-utils.ts","../.yarn/cache/posthog-js-npm-1.67.1-2b4a8b0d47-17a978f55c.zip/node_modules/posthog-js/src/extensions/web-performance.ts","../.yarn/cache/posthog-js-npm-1.67.1-2b4a8b0d47-17a978f55c.zip/node_modules/posthog-js/src/decide.ts","../.yarn/cache/posthog-js-npm-1.67.1-2b4a8b0d47-17a978f55c.zip/node_modules/posthog-js/src/extensions/cloud.ts","../.yarn/cache/posthog-js-npm-1.67.1-2b4a8b0d47-17a978f55c.zip/node_modules/posthog-js/src/extensions/toolbar.ts","../.yarn/cache/posthog-js-npm-1.67.1-2b4a8b0d47-17a978f55c.zip/node_modules/posthog-js/src/base-request-queue.ts","../.yarn/cache/posthog-js-npm-1.67.1-2b4a8b0d47-17a978f55c.zip/node_modules/posthog-js/src/request-queue.ts","../.yarn/cache/posthog-js-npm-1.67.1-2b4a8b0d47-17a978f55c.zip/node_modules/posthog-js/src/capture-metrics.ts","../.yarn/cache/posthog-js-npm-1.67.1-2b4a8b0d47-17a978f55c.zip/node_modules/posthog-js/node_modules/fflate/esm/browser.js","../.yarn/cache/posthog-js-npm-1.67.1-2b4a8b0d47-17a978f55c.zip/node_modules/posthog-js/src/types.ts","../.yarn/cache/posthog-js-npm-1.67.1-2b4a8b0d47-17a978f55c.zip/node_modules/posthog-js/src/send-request.ts","../.yarn/cache/posthog-js-npm-1.67.1-2b4a8b0d47-17a978f55c.zip/node_modules/posthog-js/src/retry-queue.ts","../.yarn/cache/posthog-js-npm-1.67.1-2b4a8b0d47-17a978f55c.zip/node_modules/posthog-js/src/sessionid.ts","../.yarn/cache/posthog-js-npm-1.67.1-2b4a8b0d47-17a978f55c.zip/node_modules/posthog-js/src/extensions/sentry-integration.ts","../.yarn/cache/posthog-js-npm-1.67.1-2b4a8b0d47-17a978f55c.zip/node_modules/posthog-js/src/page-view-id.ts","../.yarn/cache/posthog-js-npm-1.67.1-2b4a8b0d47-17a978f55c.zip/node_modules/posthog-js/src/extensions/exceptions/type-checking.ts","../.yarn/cache/posthog-js-npm-1.67.1-2b4a8b0d47-17a978f55c.zip/node_modules/posthog-js/src/extensions/exceptions/stack-trace.ts","../.yarn/cache/posthog-js-npm-1.67.1-2b4a8b0d47-17a978f55c.zip/node_modules/posthog-js/src/extensions/exceptions/error-conversion.ts","../.yarn/cache/posthog-js-npm-1.67.1-2b4a8b0d47-17a978f55c.zip/node_modules/posthog-js/src/extensions/exceptions/exception-autocapture.ts","../.yarn/cache/posthog-js-npm-1.67.1-2b4a8b0d47-17a978f55c.zip/node_modules/posthog-js/src/posthog-core.ts","../.yarn/cache/posthog-js-npm-1.67.1-2b4a8b0d47-17a978f55c.zip/node_modules/posthog-js/src/posthog-surveys.ts","../.yarn/cache/posthog-js-npm-1.67.1-2b4a8b0d47-17a978f55c.zip/node_modules/posthog-js/src/extensions/segment-integration.ts","../.yarn/cache/posthog-js-npm-1.67.1-2b4a8b0d47-17a978f55c.zip/node_modules/posthog-js/src/compression.ts","../.yarn/cache/posthog-js-npm-1.67.1-2b4a8b0d47-17a978f55c.zip/node_modules/posthog-js/src/loader-module.ts","../.yarn/cache/@sentry-core-npm-6.19.7-4cbb62d040-d212e8ef07.zip/node_modules/@sentry/src/version.ts","../.yarn/cache/@sentry-core-npm-6.19.7-4cbb62d040-d212e8ef07.zip/node_modules/@sentry/src/flags.ts","../.yarn/cache/@sentry-core-npm-6.19.7-4cbb62d040-d212e8ef07.zip/node_modules/@sentry/src/integrations/inboundfilters.ts","../.yarn/cache/@sentry-core-npm-6.19.7-4cbb62d040-d212e8ef07.zip/node_modules/@sentry/src/integrations/functiontostring.ts","../.yarn/cache/@sentry-utils-npm-6.19.7-d61c6c8632-a000223b9c.zip/node_modules/@sentry/src/polyfill.ts","../.yarn/cache/@sentry-utils-npm-6.19.7-d61c6c8632-a000223b9c.zip/node_modules/@sentry/src/error.ts","../.yarn/cache/@sentry-utils-npm-6.19.7-d61c6c8632-a000223b9c.zip/node_modules/@sentry/src/dsn.ts","../.yarn/cache/@sentry-utils-npm-6.19.7-d61c6c8632-a000223b9c.zip/node_modules/@sentry/src/normalize.ts","../.yarn/cache/@sentry-utils-npm-6.19.7-d61c6c8632-a000223b9c.zip/node_modules/@sentry/src/memo.ts","../.yarn/cache/@sentry-core-npm-6.19.7-4cbb62d040-d212e8ef07.zip/node_modules/@sentry/src/integration.ts","../.yarn/cache/@sentry-core-npm-6.19.7-4cbb62d040-d212e8ef07.zip/node_modules/@sentry/src/baseclient.ts","../.yarn/cache/@sentry-core-npm-6.19.7-4cbb62d040-d212e8ef07.zip/node_modules/@sentry/src/api.ts","../.yarn/cache/@sentry-utils-npm-6.19.7-d61c6c8632-a000223b9c.zip/node_modules/@sentry/src/envelope.ts","../.yarn/cache/@sentry-core-npm-6.19.7-4cbb62d040-d212e8ef07.zip/node_modules/@sentry/src/request.ts","../.yarn/cache/@sentry-core-npm-6.19.7-4cbb62d040-d212e8ef07.zip/node_modules/@sentry/src/transports/noop.ts","../.yarn/cache/@sentry-types-npm-6.19.7-f75535a9f4-f46ef74a33.zip/node_modules/@sentry/src/severity.ts","../.yarn/cache/@sentry-core-npm-6.19.7-4cbb62d040-d212e8ef07.zip/node_modules/@sentry/src/basebackend.ts","../.yarn/cache/@sentry-browser-npm-6.19.7-5c2d1aa69c-071d00c76c.zip/node_modules/src/stack-parsers.ts","../.yarn/cache/@sentry-browser-npm-6.19.7-5c2d1aa69c-071d00c76c.zip/node_modules/src/eventbuilder.ts","../.yarn/cache/@sentry-utils-npm-6.19.7-d61c6c8632-a000223b9c.zip/node_modules/@sentry/src/promisebuffer.ts","../.yarn/cache/@sentry-utils-npm-6.19.7-d61c6c8632-a000223b9c.zip/node_modules/@sentry/src/ratelimit.ts","../.yarn/cache/@sentry-utils-npm-6.19.7-d61c6c8632-a000223b9c.zip/node_modules/@sentry/src/status.ts","../.yarn/cache/@sentry-core-npm-6.19.7-4cbb62d040-d212e8ef07.zip/node_modules/@sentry/src/transports/base.ts","../.yarn/cache/@sentry-browser-npm-6.19.7-5c2d1aa69c-071d00c76c.zip/node_modules/src/flags.ts","../.yarn/cache/@sentry-browser-npm-6.19.7-5c2d1aa69c-071d00c76c.zip/node_modules/src/transports/utils.ts","../.yarn/cache/@sentry-utils-npm-6.19.7-d61c6c8632-a000223b9c.zip/node_modules/@sentry/src/async.ts","../.yarn/cache/@sentry-browser-npm-6.19.7-5c2d1aa69c-071d00c76c.zip/node_modules/src/transports/base.ts","../.yarn/cache/@sentry-utils-npm-6.19.7-d61c6c8632-a000223b9c.zip/node_modules/@sentry/src/clientreport.ts","../.yarn/cache/@sentry-browser-npm-6.19.7-5c2d1aa69c-071d00c76c.zip/node_modules/src/transports/fetch.ts","../.yarn/cache/@sentry-browser-npm-6.19.7-5c2d1aa69c-071d00c76c.zip/node_modules/src/transports/xhr.ts","../.yarn/cache/@sentry-browser-npm-6.19.7-5c2d1aa69c-071d00c76c.zip/node_modules/src/backend.ts","../.yarn/cache/@sentry-browser-npm-6.19.7-5c2d1aa69c-071d00c76c.zip/node_modules/src/transports/new-fetch.ts","../.yarn/cache/@sentry-browser-npm-6.19.7-5c2d1aa69c-071d00c76c.zip/node_modules/src/transports/new-xhr.ts","../.yarn/cache/@sentry-minimal-npm-6.19.7-7527a9814c-9153ac426e.zip/node_modules/@sentry/src/index.ts","../.yarn/cache/@sentry-browser-npm-6.19.7-5c2d1aa69c-071d00c76c.zip/node_modules/src/helpers.ts","../.yarn/cache/@sentry-utils-npm-6.19.7-d61c6c8632-a000223b9c.zip/node_modules/@sentry/src/enums.ts","../.yarn/cache/@sentry-utils-npm-6.19.7-d61c6c8632-a000223b9c.zip/node_modules/@sentry/src/severity.ts","../.yarn/cache/@sentry-browser-npm-6.19.7-5c2d1aa69c-071d00c76c.zip/node_modules/src/integrations/breadcrumbs.ts","../.yarn/cache/@sentry-browser-npm-6.19.7-5c2d1aa69c-071d00c76c.zip/node_modules/src/client.ts","../.yarn/cache/@sentry-browser-npm-6.19.7-5c2d1aa69c-071d00c76c.zip/node_modules/src/integrations/trycatch.ts","../.yarn/cache/@sentry-browser-npm-6.19.7-5c2d1aa69c-071d00c76c.zip/node_modules/src/integrations/globalhandlers.ts","../.yarn/cache/@sentry-browser-npm-6.19.7-5c2d1aa69c-071d00c76c.zip/node_modules/src/integrations/linkederrors.ts","../.yarn/cache/@sentry-browser-npm-6.19.7-5c2d1aa69c-071d00c76c.zip/node_modules/src/integrations/dedupe.ts","../.yarn/cache/@sentry-browser-npm-6.19.7-5c2d1aa69c-071d00c76c.zip/node_modules/src/integrations/useragent.ts","../.yarn/cache/@sentry-browser-npm-6.19.7-5c2d1aa69c-071d00c76c.zip/node_modules/src/sdk.ts","../.yarn/cache/@sentry-core-npm-6.19.7-4cbb62d040-d212e8ef07.zip/node_modules/@sentry/src/sdk.ts","../.yarn/cache/@sentry-utils-npm-6.19.7-d61c6c8632-a000223b9c.zip/node_modules/@sentry/src/tracing.ts","../.yarn/cache/@sentry-tracing-npm-6.19.7-afb16e2fe4-26e7bf435f.zip/node_modules/src/browser/backgroundtab.ts","../.yarn/cache/@sentry-tracing-npm-6.19.7-afb16e2fe4-26e7bf435f.zip/node_modules/src/browser/web-vitals/lib/bindReporter.ts","../.yarn/cache/@sentry-tracing-npm-6.19.7-afb16e2fe4-26e7bf435f.zip/node_modules/src/browser/web-vitals/lib/initMetric.ts","../.yarn/cache/@sentry-tracing-npm-6.19.7-afb16e2fe4-26e7bf435f.zip/node_modules/src/browser/web-vitals/lib/generateUniqueID.ts","../.yarn/cache/@sentry-tracing-npm-6.19.7-afb16e2fe4-26e7bf435f.zip/node_modules/src/browser/web-vitals/lib/observe.ts","../.yarn/cache/@sentry-tracing-npm-6.19.7-afb16e2fe4-26e7bf435f.zip/node_modules/src/browser/web-vitals/lib/onHidden.ts","../.yarn/cache/@sentry-tracing-npm-6.19.7-afb16e2fe4-26e7bf435f.zip/node_modules/src/browser/web-vitals/lib/getVisibilityWatcher.ts","../.yarn/cache/@sentry-tracing-npm-6.19.7-afb16e2fe4-26e7bf435f.zip/node_modules/src/browser/web-vitals/getLCP.ts","../.yarn/cache/@sentry-tracing-npm-6.19.7-afb16e2fe4-26e7bf435f.zip/node_modules/src/browser/metrics.ts","../.yarn/cache/@sentry-tracing-npm-6.19.7-afb16e2fe4-26e7bf435f.zip/node_modules/src/browser/web-vitals/getCLS.ts","../.yarn/cache/@sentry-tracing-npm-6.19.7-afb16e2fe4-26e7bf435f.zip/node_modules/src/browser/web-vitals/getFID.ts","../.yarn/cache/@sentry-tracing-npm-6.19.7-afb16e2fe4-26e7bf435f.zip/node_modules/src/browser/request.ts","../.yarn/cache/@sentry-tracing-npm-6.19.7-afb16e2fe4-26e7bf435f.zip/node_modules/src/browser/router.ts","../.yarn/cache/@sentry-tracing-npm-6.19.7-afb16e2fe4-26e7bf435f.zip/node_modules/src/browser/browsertracing.ts","../.yarn/cache/@sentry-tracing-npm-6.19.7-afb16e2fe4-26e7bf435f.zip/node_modules/src/index.ts","../.yarn/cache/@aws-amplify-auth-npm-5.1.6-8c89c3fe0a-973e658ae0.zip/node_modules/@aws-amplify/auth/src/types/Auth.ts","configs/aws-exports.js","../.yarn/cache/@babel-runtime-npm-7.20.13-45eeb6d8ad-09b7a97a05.zip/node_modules/@babel/runtime/helpers/esm/typeof.js","../.yarn/cache/@babel-runtime-npm-7.20.13-45eeb6d8ad-09b7a97a05.zip/node_modules/@babel/runtime/helpers/esm/regeneratorRuntime.js","../.yarn/cache/@babel-runtime-npm-7.20.13-45eeb6d8ad-09b7a97a05.zip/node_modules/@babel/runtime/helpers/esm/asyncToGenerator.js","../.yarn/cache/@babel-runtime-npm-7.20.13-45eeb6d8ad-09b7a97a05.zip/node_modules/@babel/runtime/helpers/esm/classCallCheck.js","../.yarn/cache/@babel-runtime-npm-7.20.13-45eeb6d8ad-09b7a97a05.zip/node_modules/@babel/runtime/helpers/esm/toPropertyKey.js","../.yarn/cache/@babel-runtime-npm-7.20.13-45eeb6d8ad-09b7a97a05.zip/node_modules/@babel/runtime/helpers/esm/toPrimitive.js","../.yarn/cache/@babel-runtime-npm-7.20.13-45eeb6d8ad-09b7a97a05.zip/node_modules/@babel/runtime/helpers/esm/createClass.js","../.yarn/cache/universal-cookie-npm-4.0.4-aa9b4bcfbf-bb2bafa7eb.zip/node_modules/universal-cookie/es6/utils.js","../.yarn/cache/universal-cookie-npm-4.0.4-aa9b4bcfbf-bb2bafa7eb.zip/node_modules/universal-cookie/es6/Cookies.js","../.yarn/cache/universal-cookie-npm-4.0.4-aa9b4bcfbf-bb2bafa7eb.zip/node_modules/universal-cookie/es6/index.js","../.yarn/cache/@aws-amplify-core-npm-5.0.12-03b8764ded-66a6acb081.zip/node_modules/@aws-amplify/core/src/UniversalStorage/index.ts","../.yarn/unplugged/amazon-cognito-identity-js-npm-6.1.2-695cf2c205/node_modules/amazon-cognito-identity-js/es/AuthenticationDetails.js","../.yarn/unplugged/amazon-cognito-identity-js-npm-6.1.2-695cf2c205/node_modules/amazon-cognito-identity-js/es/utils/cryptoSecureRandomInt.web.js","../.yarn/unplugged/amazon-cognito-identity-js-npm-6.1.2-695cf2c205/node_modules/amazon-cognito-identity-js/es/utils/WordArray.js","../.yarn/unplugged/amazon-cognito-identity-js-npm-6.1.2-695cf2c205/node_modules/amazon-cognito-identity-js/es/BigInteger.js","../.yarn/unplugged/amazon-cognito-identity-js-npm-6.1.2-695cf2c205/node_modules/amazon-cognito-identity-js/es/AuthenticationHelper.js","../.yarn/unplugged/amazon-cognito-identity-js-npm-6.1.2-695cf2c205/node_modules/amazon-cognito-identity-js/es/CognitoJwtToken.js","../.yarn/unplugged/amazon-cognito-identity-js-npm-6.1.2-695cf2c205/node_modules/amazon-cognito-identity-js/es/CognitoAccessToken.js","../.yarn/unplugged/amazon-cognito-identity-js-npm-6.1.2-695cf2c205/node_modules/amazon-cognito-identity-js/es/CognitoIdToken.js","../.yarn/unplugged/amazon-cognito-identity-js-npm-6.1.2-695cf2c205/node_modules/amazon-cognito-identity-js/es/CognitoRefreshToken.js","../.yarn/unplugged/amazon-cognito-identity-js-npm-6.1.2-695cf2c205/node_modules/amazon-cognito-identity-js/es/Platform/index.js","../.yarn/unplugged/amazon-cognito-identity-js-npm-6.1.2-695cf2c205/node_modules/amazon-cognito-identity-js/es/CognitoUserSession.js","../.yarn/unplugged/amazon-cognito-identity-js-npm-6.1.2-695cf2c205/node_modules/amazon-cognito-identity-js/es/DateHelper.js","../.yarn/unplugged/amazon-cognito-identity-js-npm-6.1.2-695cf2c205/node_modules/amazon-cognito-identity-js/es/CognitoUserAttribute.js","../.yarn/unplugged/amazon-cognito-identity-js-npm-6.1.2-695cf2c205/node_modules/amazon-cognito-identity-js/es/StorageHelper.js","../.yarn/unplugged/amazon-cognito-identity-js-npm-6.1.2-695cf2c205/node_modules/amazon-cognito-identity-js/es/CognitoUser.js","../.yarn/unplugged/amazon-cognito-identity-js-npm-6.1.2-695cf2c205/node_modules/amazon-cognito-identity-js/es/UserAgent.js","../.yarn/unplugged/amazon-cognito-identity-js-npm-6.1.2-695cf2c205/node_modules/amazon-cognito-identity-js/es/Client.js","../.yarn/unplugged/amazon-cognito-identity-js-npm-6.1.2-695cf2c205/node_modules/amazon-cognito-identity-js/es/CognitoUserPool.js","../.yarn/cache/@aws-amplify-auth-npm-5.1.6-8c89c3fe0a-973e658ae0.zip/node_modules/@aws-amplify/auth/src/common/AuthErrorStrings.ts","../.yarn/unplugged/amazon-cognito-identity-js-npm-6.1.2-695cf2c205/node_modules/amazon-cognito-identity-js/es/CookieStorage.js","../.yarn/cache/@aws-amplify-auth-npm-5.1.6-8c89c3fe0a-973e658ae0.zip/node_modules/@aws-amplify/auth/src/OAuth/urlOpener.ts","../.yarn/cache/@aws-amplify-auth-npm-5.1.6-8c89c3fe0a-973e658ae0.zip/node_modules/@aws-amplify/auth/src/OAuth/OAuth.ts","../.yarn/cache/@aws-amplify-core-npm-5.0.12-03b8764ded-66a6acb081.zip/node_modules/@aws-amplify/core/src/Util/StringUtils.ts","../.yarn/cache/@aws-amplify-auth-npm-5.1.6-8c89c3fe0a-973e658ae0.zip/node_modules/@aws-amplify/auth/src/OAuth/oauthStorage.ts","../.yarn/cache/@aws-amplify-auth-npm-5.1.6-8c89c3fe0a-973e658ae0.zip/node_modules/@aws-amplify/auth/src/Errors.ts","../.yarn/cache/@aws-amplify-auth-npm-5.1.6-8c89c3fe0a-973e658ae0.zip/node_modules/@aws-amplify/auth/src/Auth.ts","../.yarn/cache/@aws-amplify-auth-npm-5.1.6-8c89c3fe0a-973e658ae0.zip/node_modules/@aws-amplify/auth/src/urlListener.ts","redux/constants.js","redux/actions/authActions.js","../.yarn/cache/redux-npm-4.0.1-a6dc6130c3-f3a4e19b04.zip/node_modules/redux/es/redux.js","../.yarn/cache/@babel-runtime-npm-7.20.13-45eeb6d8ad-09b7a97a05.zip/node_modules/@babel/runtime/helpers/esm/defineProperty.js","../.yarn/cache/@babel-runtime-npm-7.20.13-45eeb6d8ad-09b7a97a05.zip/node_modules/@babel/runtime/helpers/esm/objectSpread2.js","redux/reducers/authentication.js","redux/reducers/superAdmin.js","redux/reducers/index.js","redux/store/index.ts","../.yarn/cache/tslib-npm-2.6.2-4fc8c068d9-329ea56123.zip/node_modules/tslib/tslib.es6.mjs","../.yarn/cache/ts-invariant-npm-0.10.3-4657a5b439-bb07d56fe4.zip/node_modules/ts-invariant/src/invariant.ts","../.yarn/__virtual__/@apollo-client-virtual-ff3a82bf2f/0/cache/@apollo-client-npm-3.9.9-15c2e13518-77c12baba0.zip/node_modules/@apollo/src/version.ts","../.yarn/__virtual__/@apollo-client-virtual-ff3a82bf2f/0/cache/@apollo-client-npm-3.9.9-15c2e13518-77c12baba0.zip/node_modules/@apollo/src/utilities/globals/maybe.ts","../.yarn/__virtual__/@apollo-client-virtual-ff3a82bf2f/0/cache/@apollo-client-npm-3.9.9-15c2e13518-77c12baba0.zip/node_modules/@apollo/src/utilities/globals/global.ts","../.yarn/__virtual__/@apollo-client-virtual-ff3a82bf2f/0/cache/@apollo-client-npm-3.9.9-15c2e13518-77c12baba0.zip/node_modules/@apollo/src/utilities/common/makeUniqueId.ts","../.yarn/__virtual__/@apollo-client-virtual-ff3a82bf2f/0/cache/@apollo-client-npm-3.9.9-15c2e13518-77c12baba0.zip/node_modules/@apollo/src/utilities/common/stringifyForDisplay.ts","../.yarn/__virtual__/@apollo-client-virtual-ff3a82bf2f/0/cache/@apollo-client-npm-3.9.9-15c2e13518-77c12baba0.zip/node_modules/@apollo/src/utilities/globals/invariantWrappers.ts","../.yarn/__virtual__/@apollo-client-virtual-ff3a82bf2f/0/cache/@apollo-client-npm-3.9.9-15c2e13518-77c12baba0.zip/node_modules/@apollo/src/utilities/globals/index.ts","../.yarn/cache/zen-observable-ts-npm-1.2.5-4ddaa0e233-3b707b7a02.zip/node_modules/zen-observable-ts/module.js","../.yarn/__virtual__/@apollo-client-virtual-ff3a82bf2f/0/cache/@apollo-client-npm-3.9.9-15c2e13518-77c12baba0.zip/node_modules/@apollo/src/utilities/common/objects.ts","../.yarn/__virtual__/@apollo-client-virtual-ff3a82bf2f/0/cache/@apollo-client-npm-3.9.9-15c2e13518-77c12baba0.zip/node_modules/@apollo/src/utilities/graphql/fragments.ts","../.yarn/cache/@wry-caches-npm-1.0.1-45c77e1362-9e89aa8e9e.zip/node_modules/@wry/caches/src/weak.ts","../.yarn/cache/@wry-caches-npm-1.0.1-45c77e1362-9e89aa8e9e.zip/node_modules/@wry/caches/src/strong.ts","../.yarn/__virtual__/@apollo-client-virtual-ff3a82bf2f/0/cache/@apollo-client-npm-3.9.9-15c2e13518-77c12baba0.zip/node_modules/@apollo/src/utilities/caching/caches.ts","../.yarn/__virtual__/@apollo-client-virtual-ff3a82bf2f/0/cache/@apollo-client-npm-3.9.9-15c2e13518-77c12baba0.zip/node_modules/@apollo/src/utilities/caching/sizes.ts","../.yarn/__virtual__/@apollo-client-virtual-ff3a82bf2f/0/cache/@apollo-client-npm-3.9.9-15c2e13518-77c12baba0.zip/node_modules/@apollo/src/utilities/caching/getMemoryInternals.ts","../.yarn/__virtual__/@apollo-client-virtual-ff3a82bf2f/0/cache/@apollo-client-npm-3.9.9-15c2e13518-77c12baba0.zip/node_modules/@apollo/src/utilities/common/canonicalStringify.ts","../.yarn/__virtual__/@apollo-client-virtual-ff3a82bf2f/0/cache/@apollo-client-npm-3.9.9-15c2e13518-77c12baba0.zip/node_modules/@apollo/src/utilities/graphql/storeUtils.ts","../.yarn/__virtual__/@apollo-client-virtual-ff3a82bf2f/0/cache/@apollo-client-npm-3.9.9-15c2e13518-77c12baba0.zip/node_modules/@apollo/src/utilities/graphql/getFromAST.ts","../.yarn/__virtual__/@apollo-client-virtual-ff3a82bf2f/0/cache/@apollo-client-npm-3.9.9-15c2e13518-77c12baba0.zip/node_modules/@apollo/src/link/core/ApolloLink.ts","../.yarn/__virtual__/@apollo-client-virtual-ff3a82bf2f/0/cache/@apollo-client-npm-3.9.9-15c2e13518-77c12baba0.zip/node_modules/@apollo/src/link/utils/createOperation.ts","../.yarn/__virtual__/@apollo-client-virtual-ff3a82bf2f/0/cache/@apollo-client-npm-3.9.9-15c2e13518-77c12baba0.zip/node_modules/@apollo/src/link/utils/transformOperation.ts","../.yarn/__virtual__/@apollo-client-virtual-ff3a82bf2f/0/cache/@apollo-client-npm-3.9.9-15c2e13518-77c12baba0.zip/node_modules/@apollo/src/link/utils/validateOperation.ts","../.yarn/cache/@babel-runtime-npm-7.20.13-45eeb6d8ad-09b7a97a05.zip/node_modules/@babel/runtime/helpers/esm/arrayWithHoles.js","../.yarn/cache/@babel-runtime-npm-7.20.13-45eeb6d8ad-09b7a97a05.zip/node_modules/@babel/runtime/helpers/esm/nonIterableRest.js","../.yarn/cache/@babel-runtime-npm-7.20.13-45eeb6d8ad-09b7a97a05.zip/node_modules/@babel/runtime/helpers/esm/slicedToArray.js","../.yarn/cache/@babel-runtime-npm-7.20.13-45eeb6d8ad-09b7a97a05.zip/node_modules/@babel/runtime/helpers/esm/iterableToArrayLimit.js","../.yarn/cache/@babel-runtime-npm-7.20.13-45eeb6d8ad-09b7a97a05.zip/node_modules/@babel/runtime/helpers/esm/createForOfIteratorHelper.js","../.yarn/cache/graphql-npm-16.6.0-301c470966-bf1d9e3c19.zip/node_modules/graphql/jsutils/devAssert.mjs","../.yarn/cache/graphql-npm-16.6.0-301c470966-bf1d9e3c19.zip/node_modules/graphql/jsutils/inspect.mjs","../.yarn/cache/graphql-npm-16.6.0-301c470966-bf1d9e3c19.zip/node_modules/graphql/language/ast.mjs","../.yarn/cache/graphql-npm-16.6.0-301c470966-bf1d9e3c19.zip/node_modules/graphql/language/kinds.mjs","../.yarn/cache/graphql-npm-16.6.0-301c470966-bf1d9e3c19.zip/node_modules/graphql/language/visitor.mjs","../.yarn/__virtual__/@apollo-client-virtual-ff3a82bf2f/0/cache/@apollo-client-npm-3.9.9-15c2e13518-77c12baba0.zip/node_modules/@apollo/src/utilities/graphql/directives.ts","../.yarn/__virtual__/@apollo-client-virtual-ff3a82bf2f/0/cache/@apollo-client-npm-3.9.9-15c2e13518-77c12baba0.zip/node_modules/@apollo/src/link/http/serializeFetchParameter.ts","../.yarn/__virtual__/@apollo-client-virtual-ff3a82bf2f/0/cache/@apollo-client-npm-3.9.9-15c2e13518-77c12baba0.zip/node_modules/@apollo/src/utilities/common/canUse.ts","../.yarn/__virtual__/@apollo-client-virtual-ff3a82bf2f/0/cache/@apollo-client-npm-3.9.9-15c2e13518-77c12baba0.zip/node_modules/@apollo/src/link/http/iterators/nodeStream.ts","../.yarn/__virtual__/@apollo-client-virtual-ff3a82bf2f/0/cache/@apollo-client-npm-3.9.9-15c2e13518-77c12baba0.zip/node_modules/@apollo/src/link/http/iterators/reader.ts","../.yarn/__virtual__/@apollo-client-virtual-ff3a82bf2f/0/cache/@apollo-client-npm-3.9.9-15c2e13518-77c12baba0.zip/node_modules/@apollo/src/link/http/responseIterator.ts","../.yarn/__virtual__/@apollo-client-virtual-ff3a82bf2f/0/cache/@apollo-client-npm-3.9.9-15c2e13518-77c12baba0.zip/node_modules/@apollo/src/link/http/iterators/async.ts","../.yarn/__virtual__/@apollo-client-virtual-ff3a82bf2f/0/cache/@apollo-client-npm-3.9.9-15c2e13518-77c12baba0.zip/node_modules/@apollo/src/link/http/iterators/promise.ts","../.yarn/__virtual__/@apollo-client-virtual-ff3a82bf2f/0/cache/@apollo-client-npm-3.9.9-15c2e13518-77c12baba0.zip/node_modules/@apollo/src/link/utils/throwServerError.ts","../.yarn/__virtual__/@apollo-client-virtual-ff3a82bf2f/0/cache/@apollo-client-npm-3.9.9-15c2e13518-77c12baba0.zip/node_modules/@apollo/src/errors/index.ts","../.yarn/__virtual__/@apollo-client-virtual-ff3a82bf2f/0/cache/@apollo-client-npm-3.9.9-15c2e13518-77c12baba0.zip/node_modules/@apollo/src/utilities/common/arrays.ts","../.yarn/__virtual__/@apollo-client-virtual-ff3a82bf2f/0/cache/@apollo-client-npm-3.9.9-15c2e13518-77c12baba0.zip/node_modules/@apollo/src/utilities/common/mergeDeep.ts","../.yarn/__virtual__/@apollo-client-virtual-ff3a82bf2f/0/cache/@apollo-client-npm-3.9.9-15c2e13518-77c12baba0.zip/node_modules/@apollo/src/utilities/common/incrementalResult.ts","../.yarn/__virtual__/@apollo-client-virtual-ff3a82bf2f/0/cache/@apollo-client-npm-3.9.9-15c2e13518-77c12baba0.zip/node_modules/@apollo/src/link/http/parseAndCheckHttpResponse.ts","../.yarn/cache/graphql-npm-16.6.0-301c470966-bf1d9e3c19.zip/node_modules/graphql/language/characterClasses.mjs","../.yarn/cache/graphql-npm-16.6.0-301c470966-bf1d9e3c19.zip/node_modules/graphql/language/blockString.mjs","../.yarn/cache/graphql-npm-16.6.0-301c470966-bf1d9e3c19.zip/node_modules/graphql/language/printString.mjs","../.yarn/cache/graphql-npm-16.6.0-301c470966-bf1d9e3c19.zip/node_modules/graphql/language/printer.mjs","../.yarn/__virtual__/@apollo-client-virtual-ff3a82bf2f/0/cache/@apollo-client-npm-3.9.9-15c2e13518-77c12baba0.zip/node_modules/@apollo/src/utilities/graphql/print.ts","../.yarn/__virtual__/@apollo-client-virtual-ff3a82bf2f/0/cache/@apollo-client-npm-3.9.9-15c2e13518-77c12baba0.zip/node_modules/@apollo/src/link/http/selectHttpOptionsAndBody.ts","../.yarn/__virtual__/@apollo-client-virtual-ff3a82bf2f/0/cache/@apollo-client-npm-3.9.9-15c2e13518-77c12baba0.zip/node_modules/@apollo/src/link/utils/fromError.ts","../.yarn/__virtual__/@apollo-client-virtual-ff3a82bf2f/0/cache/@apollo-client-npm-3.9.9-15c2e13518-77c12baba0.zip/node_modules/@apollo/src/utilities/graphql/transform.ts","../.yarn/__virtual__/@apollo-client-virtual-ff3a82bf2f/0/cache/@apollo-client-npm-3.9.9-15c2e13518-77c12baba0.zip/node_modules/@apollo/src/link/http/createHttpLink.ts","../.yarn/__virtual__/@apollo-client-virtual-ff3a82bf2f/0/cache/@apollo-client-npm-3.9.9-15c2e13518-77c12baba0.zip/node_modules/@apollo/src/link/http/checkFetcher.ts","../.yarn/__virtual__/@apollo-client-virtual-ff3a82bf2f/0/cache/@apollo-client-npm-3.9.9-15c2e13518-77c12baba0.zip/node_modules/@apollo/src/link/http/selectURI.ts","../.yarn/__virtual__/@apollo-client-virtual-ff3a82bf2f/0/cache/@apollo-client-npm-3.9.9-15c2e13518-77c12baba0.zip/node_modules/@apollo/src/link/utils/filterOperationVariables.ts","../.yarn/__virtual__/@apollo-client-virtual-ff3a82bf2f/0/cache/@apollo-client-npm-3.9.9-15c2e13518-77c12baba0.zip/node_modules/@apollo/src/link/http/rewriteURIForGET.ts","../.yarn/__virtual__/@apollo-client-virtual-ff3a82bf2f/0/cache/@apollo-client-npm-3.9.9-15c2e13518-77c12baba0.zip/node_modules/@apollo/src/link/core/execute.ts","../.yarn/__virtual__/@apollo-client-virtual-ff3a82bf2f/0/cache/@apollo-client-npm-3.9.9-15c2e13518-77c12baba0.zip/node_modules/@apollo/src/link/http/HttpLink.ts","../.yarn/cache/@wry-equality-npm-0.5.7-09bfcd77c8-892f262fae.zip/node_modules/@wry/equality/src/index.ts","../.yarn/cache/@wry-trie-npm-0.5.0-fdc79454e2-92aeea3415.zip/node_modules/@wry/trie/src/index.ts","../.yarn/cache/@wry-trie-npm-0.4.3-0b589ed648-106e021125.zip/node_modules/@wry/trie/src/index.ts","../.yarn/cache/@wry-context-npm-0.7.4-0b17b268ac-9bc8c30a31.zip/node_modules/@wry/context/src/slot.ts","../.yarn/cache/@wry-context-npm-0.7.4-0b17b268ac-9bc8c30a31.zip/node_modules/@wry/context/src/index.ts","../.yarn/cache/optimism-npm-0.18.0-9416c5a934-d6ed6a90b0.zip/node_modules/optimism/src/context.ts","../.yarn/cache/optimism-npm-0.18.0-9416c5a934-d6ed6a90b0.zip/node_modules/optimism/src/helpers.ts","../.yarn/cache/optimism-npm-0.18.0-9416c5a934-d6ed6a90b0.zip/node_modules/optimism/src/entry.ts","../.yarn/cache/optimism-npm-0.18.0-9416c5a934-d6ed6a90b0.zip/node_modules/optimism/src/dep.ts","../.yarn/cache/optimism-npm-0.18.0-9416c5a934-d6ed6a90b0.zip/node_modules/optimism/src/index.ts","../.yarn/__virtual__/@apollo-client-virtual-ff3a82bf2f/0/cache/@apollo-client-npm-3.9.9-15c2e13518-77c12baba0.zip/node_modules/@apollo/src/utilities/graphql/DocumentTransform.ts","../.yarn/__virtual__/@apollo-client-virtual-ff3a82bf2f/0/cache/@apollo-client-npm-3.9.9-15c2e13518-77c12baba0.zip/node_modules/@apollo/src/utilities/observables/asyncMap.ts","../.yarn/__virtual__/@apollo-client-virtual-ff3a82bf2f/0/cache/@apollo-client-npm-3.9.9-15c2e13518-77c12baba0.zip/node_modules/@apollo/src/utilities/common/errorHandling.ts","../.yarn/__virtual__/@apollo-client-virtual-ff3a82bf2f/0/cache/@apollo-client-npm-3.9.9-15c2e13518-77c12baba0.zip/node_modules/@apollo/src/utilities/observables/iteration.ts","../.yarn/__virtual__/@apollo-client-virtual-ff3a82bf2f/0/cache/@apollo-client-npm-3.9.9-15c2e13518-77c12baba0.zip/node_modules/@apollo/src/utilities/observables/subclassing.ts","../.yarn/__virtual__/@apollo-client-virtual-ff3a82bf2f/0/cache/@apollo-client-npm-3.9.9-15c2e13518-77c12baba0.zip/node_modules/@apollo/src/utilities/observables/Concast.ts","../.yarn/__virtual__/@apollo-client-virtual-ff3a82bf2f/0/cache/@apollo-client-npm-3.9.9-15c2e13518-77c12baba0.zip/node_modules/@apollo/src/core/networkStatus.ts","../.yarn/__virtual__/@apollo-client-virtual-ff3a82bf2f/0/cache/@apollo-client-npm-3.9.9-15c2e13518-77c12baba0.zip/node_modules/@apollo/src/utilities/common/compact.ts","../.yarn/__virtual__/@apollo-client-virtual-ff3a82bf2f/0/cache/@apollo-client-npm-3.9.9-15c2e13518-77c12baba0.zip/node_modules/@apollo/src/utilities/common/cloneDeep.ts","../.yarn/__virtual__/@apollo-client-virtual-ff3a82bf2f/0/cache/@apollo-client-npm-3.9.9-15c2e13518-77c12baba0.zip/node_modules/@apollo/src/core/equalByQuery.ts","../.yarn/__virtual__/@apollo-client-virtual-ff3a82bf2f/0/cache/@apollo-client-npm-3.9.9-15c2e13518-77c12baba0.zip/node_modules/@apollo/src/core/ObservableQuery.ts","../.yarn/cache/graphql-npm-16.6.0-301c470966-bf1d9e3c19.zip/node_modules/graphql/language/predicates.mjs","../.yarn/__virtual__/@apollo-client-virtual-ff3a82bf2f/0/cache/@apollo-client-npm-3.9.9-15c2e13518-77c12baba0.zip/node_modules/@apollo/src/cache/inmemory/reactiveVars.ts","../.yarn/__virtual__/@apollo-client-virtual-ff3a82bf2f/0/cache/@apollo-client-npm-3.9.9-15c2e13518-77c12baba0.zip/node_modules/@apollo/src/core/LocalState.ts","../.yarn/__virtual__/@apollo-client-virtual-ff3a82bf2f/0/cache/@apollo-client-npm-3.9.9-15c2e13518-77c12baba0.zip/node_modules/@apollo/src/core/QueryInfo.ts","../.yarn/__virtual__/@apollo-client-virtual-ff3a82bf2f/0/cache/@apollo-client-npm-3.9.9-15c2e13518-77c12baba0.zip/node_modules/@apollo/src/core/QueryManager.ts","../.yarn/__virtual__/@apollo-client-virtual-ff3a82bf2f/0/cache/@apollo-client-npm-3.9.9-15c2e13518-77c12baba0.zip/node_modules/@apollo/src/utilities/common/mergeOptions.ts","../.yarn/__virtual__/@apollo-client-virtual-ff3a82bf2f/0/cache/@apollo-client-npm-3.9.9-15c2e13518-77c12baba0.zip/node_modules/@apollo/src/core/ApolloClient.ts","../.yarn/__virtual__/@apollo-client-virtual-ff3a82bf2f/0/cache/@apollo-client-npm-3.9.9-15c2e13518-77c12baba0.zip/node_modules/@apollo/src/cache/core/cache.ts","../.yarn/__virtual__/@apollo-client-virtual-ff3a82bf2f/0/cache/@apollo-client-npm-3.9.9-15c2e13518-77c12baba0.zip/node_modules/@apollo/src/cache/core/types/common.ts","../.yarn/__virtual__/@apollo-client-virtual-ff3a82bf2f/0/cache/@apollo-client-npm-3.9.9-15c2e13518-77c12baba0.zip/node_modules/@apollo/src/utilities/common/maybeDeepFreeze.ts","../.yarn/__virtual__/@apollo-client-virtual-ff3a82bf2f/0/cache/@apollo-client-npm-3.9.9-15c2e13518-77c12baba0.zip/node_modules/@apollo/src/cache/inmemory/helpers.ts","../.yarn/__virtual__/@apollo-client-virtual-ff3a82bf2f/0/cache/@apollo-client-npm-3.9.9-15c2e13518-77c12baba0.zip/node_modules/@apollo/src/cache/inmemory/entityStore.ts","../.yarn/__virtual__/@apollo-client-virtual-ff3a82bf2f/0/cache/@apollo-client-npm-3.9.9-15c2e13518-77c12baba0.zip/node_modules/@apollo/src/cache/inmemory/object-canon.ts","../.yarn/__virtual__/@apollo-client-virtual-ff3a82bf2f/0/cache/@apollo-client-npm-3.9.9-15c2e13518-77c12baba0.zip/node_modules/@apollo/src/cache/inmemory/readFromStore.ts","../.yarn/__virtual__/@apollo-client-virtual-ff3a82bf2f/0/cache/@apollo-client-npm-3.9.9-15c2e13518-77c12baba0.zip/node_modules/@apollo/src/cache/inmemory/key-extractor.ts","../.yarn/__virtual__/@apollo-client-virtual-ff3a82bf2f/0/cache/@apollo-client-npm-3.9.9-15c2e13518-77c12baba0.zip/node_modules/@apollo/src/cache/inmemory/policies.ts","../.yarn/__virtual__/@apollo-client-virtual-ff3a82bf2f/0/cache/@apollo-client-npm-3.9.9-15c2e13518-77c12baba0.zip/node_modules/@apollo/src/cache/inmemory/writeToStore.ts","../.yarn/__virtual__/@apollo-client-virtual-ff3a82bf2f/0/cache/@apollo-client-npm-3.9.9-15c2e13518-77c12baba0.zip/node_modules/@apollo/src/cache/inmemory/inMemoryCache.ts","configs/apollo-client.js","../.yarn/__virtual__/@apollo-client-virtual-ff3a82bf2f/0/cache/@apollo-client-npm-3.9.9-15c2e13518-77c12baba0.zip/node_modules/@apollo/src/link/context/index.ts","../.yarn/cache/@babel-runtime-npm-7.20.13-45eeb6d8ad-09b7a97a05.zip/node_modules/@babel/runtime/helpers/esm/taggedTemplateLiteral.js","../.yarn/cache/@babel-runtime-npm-7.20.13-45eeb6d8ad-09b7a97a05.zip/node_modules/@babel/runtime/helpers/esm/assertThisInitialized.js","../.yarn/cache/@babel-runtime-npm-7.20.13-45eeb6d8ad-09b7a97a05.zip/node_modules/@babel/runtime/helpers/esm/setPrototypeOf.js","../.yarn/cache/@babel-runtime-npm-7.20.13-45eeb6d8ad-09b7a97a05.zip/node_modules/@babel/runtime/helpers/esm/inherits.js","../.yarn/cache/@babel-runtime-npm-7.20.13-45eeb6d8ad-09b7a97a05.zip/node_modules/@babel/runtime/helpers/esm/getPrototypeOf.js","../.yarn/cache/@babel-runtime-npm-7.20.13-45eeb6d8ad-09b7a97a05.zip/node_modules/@babel/runtime/helpers/esm/isNativeReflectConstruct.js","../.yarn/cache/@babel-runtime-npm-7.20.13-45eeb6d8ad-09b7a97a05.zip/node_modules/@babel/runtime/helpers/esm/possibleConstructorReturn.js","../.yarn/cache/@babel-runtime-npm-7.20.13-45eeb6d8ad-09b7a97a05.zip/node_modules/@babel/runtime/helpers/esm/createSuper.js","../.yarn/cache/@babel-runtime-npm-7.20.13-45eeb6d8ad-09b7a97a05.zip/node_modules/@babel/runtime/helpers/esm/construct.js","../.yarn/cache/@babel-runtime-npm-7.20.13-45eeb6d8ad-09b7a97a05.zip/node_modules/@babel/runtime/helpers/esm/wrapNativeSuper.js","../.yarn/cache/@babel-runtime-npm-7.20.13-45eeb6d8ad-09b7a97a05.zip/node_modules/@babel/runtime/helpers/esm/isNativeFunction.js","../.yarn/cache/graphql-npm-16.6.0-301c470966-bf1d9e3c19.zip/node_modules/graphql/jsutils/isObjectLike.mjs","../.yarn/cache/graphql-npm-16.6.0-301c470966-bf1d9e3c19.zip/node_modules/graphql/jsutils/invariant.mjs","../.yarn/cache/graphql-npm-16.6.0-301c470966-bf1d9e3c19.zip/node_modules/graphql/language/location.mjs","../.yarn/cache/graphql-npm-16.6.0-301c470966-bf1d9e3c19.zip/node_modules/graphql/language/printLocation.mjs","../.yarn/cache/graphql-npm-16.6.0-301c470966-bf1d9e3c19.zip/node_modules/graphql/error/GraphQLError.mjs","../.yarn/cache/graphql-npm-16.6.0-301c470966-bf1d9e3c19.zip/node_modules/graphql/language/directiveLocation.mjs","../.yarn/cache/graphql-npm-16.6.0-301c470966-bf1d9e3c19.zip/node_modules/graphql/language/tokenKind.mjs","../.yarn/cache/graphql-npm-16.6.0-301c470966-bf1d9e3c19.zip/node_modules/graphql/error/syntaxError.mjs","../.yarn/cache/graphql-npm-16.6.0-301c470966-bf1d9e3c19.zip/node_modules/graphql/language/lexer.mjs","../.yarn/cache/graphql-npm-16.6.0-301c470966-bf1d9e3c19.zip/node_modules/graphql/jsutils/instanceOf.mjs","../.yarn/cache/graphql-npm-16.6.0-301c470966-bf1d9e3c19.zip/node_modules/graphql/language/source.mjs","../.yarn/cache/graphql-npm-16.6.0-301c470966-bf1d9e3c19.zip/node_modules/graphql/language/parser.mjs","../.yarn/__virtual__/graphql-tag-virtual-ddad1b1f6c/0/cache/graphql-tag-npm-2.12.6-99a5a7f6de-b15162a3d6.zip/node_modules/graphql-tag/src/index.ts","scenes/Settings/Profile/Account/Info/graphql/getCurrentUserInfo.js","services/graphql/attachIOTPolicy.mutation.js","services/AuthService.ts","../.yarn/cache/@babel-runtime-npm-7.20.13-45eeb6d8ad-09b7a97a05.zip/node_modules/@babel/runtime/helpers/esm/objectWithoutPropertiesLoose.js","../.yarn/cache/@babel-runtime-npm-7.20.13-45eeb6d8ad-09b7a97a05.zip/node_modules/@babel/runtime/helpers/esm/objectWithoutProperties.js","../.yarn/cache/clsx-npm-1.2.1-77792dc182-30befca801.zip/node_modules/clsx/dist/clsx.m.js","../.yarn/__virtual__/react-toastify-virtual-5eada859b5/0/cache/react-toastify-npm-9.1.1-114b39ed7d-2039255539.zip/node_modules/react-toastify/src/utils/propValidator.ts","../.yarn/__virtual__/react-toastify-virtual-5eada859b5/0/cache/react-toastify-npm-9.1.1-114b39ed7d-2039255539.zip/node_modules/react-toastify/src/utils/collapseToast.ts","../.yarn/__virtual__/react-toastify-virtual-5eada859b5/0/cache/react-toastify-npm-9.1.1-114b39ed7d-2039255539.zip/node_modules/react-toastify/src/utils/cssTransition.tsx","../.yarn/__virtual__/react-toastify-virtual-5eada859b5/0/cache/react-toastify-npm-9.1.1-114b39ed7d-2039255539.zip/node_modules/react-toastify/src/utils/mapper.ts","../.yarn/__virtual__/react-toastify-virtual-5eada859b5/0/cache/react-toastify-npm-9.1.1-114b39ed7d-2039255539.zip/node_modules/react-toastify/src/core/eventManager.ts","../.yarn/__virtual__/react-toastify-virtual-5eada859b5/0/cache/react-toastify-npm-9.1.1-114b39ed7d-2039255539.zip/node_modules/react-toastify/src/components/Icons.tsx","../.yarn/__virtual__/react-toastify-virtual-5eada859b5/0/cache/react-toastify-npm-9.1.1-114b39ed7d-2039255539.zip/node_modules/react-toastify/src/hooks/useToast.ts","../.yarn/__virtual__/react-toastify-virtual-5eada859b5/0/cache/react-toastify-npm-9.1.1-114b39ed7d-2039255539.zip/node_modules/react-toastify/src/components/CloseButton.tsx","../.yarn/__virtual__/react-toastify-virtual-5eada859b5/0/cache/react-toastify-npm-9.1.1-114b39ed7d-2039255539.zip/node_modules/react-toastify/src/components/ProgressBar.tsx","../.yarn/__virtual__/react-toastify-virtual-5eada859b5/0/cache/react-toastify-npm-9.1.1-114b39ed7d-2039255539.zip/node_modules/react-toastify/src/components/Toast.tsx","../.yarn/__virtual__/react-toastify-virtual-5eada859b5/0/cache/react-toastify-npm-9.1.1-114b39ed7d-2039255539.zip/node_modules/react-toastify/src/components/Transitions.tsx","../.yarn/__virtual__/react-toastify-virtual-5eada859b5/0/cache/react-toastify-npm-9.1.1-114b39ed7d-2039255539.zip/node_modules/react-toastify/src/components/ToastContainer.tsx","../.yarn/__virtual__/react-toastify-virtual-5eada859b5/0/cache/react-toastify-npm-9.1.1-114b39ed7d-2039255539.zip/node_modules/react-toastify/src/hooks/useToastContainer.ts","../.yarn/__virtual__/react-toastify-virtual-5eada859b5/0/cache/react-toastify-npm-9.1.1-114b39ed7d-2039255539.zip/node_modules/react-toastify/src/core/toast.ts","../.yarn/cache/@babel-runtime-npm-7.20.13-45eeb6d8ad-09b7a97a05.zip/node_modules/@babel/runtime/helpers/esm/inheritsLoose.js","../.yarn/__virtual__/react-toastify-virtual-5eada859b5/0/cache/react-toastify-npm-9.1.1-114b39ed7d-2039255539.zip/node_modules/react-toastify/src/utils/constant.ts","../.yarn/cache/resolve-pathname-npm-3.0.0-bab4d7e47c-6147241ba4.zip/node_modules/resolve-pathname/esm/resolve-pathname.js","../.yarn/cache/value-equal-npm-1.0.1-7811e93c9b-bb7ae1facc.zip/node_modules/value-equal/esm/value-equal.js","../.yarn/cache/tiny-invariant-npm-1.3.1-a8ca214e49-872dbd1ff2.zip/node_modules/tiny-invariant/dist/esm/tiny-invariant.js","../.yarn/cache/history-npm-4.10.1-ee217563ae-addd84bc46.zip/node_modules/history/esm/history.js","../.yarn/__virtual__/react-router-virtual-63626dc3bd/0/cache/react-router-npm-5.3.4-cc0757f6df-892d4e274a.zip/node_modules/react-router/modules/miniCreateReactContext.js","../.yarn/__virtual__/react-router-virtual-63626dc3bd/0/cache/react-router-npm-5.3.4-cc0757f6df-892d4e274a.zip/node_modules/react-router/modules/createContext.js","../.yarn/__virtual__/react-router-virtual-63626dc3bd/0/cache/react-router-npm-5.3.4-cc0757f6df-892d4e274a.zip/node_modules/react-router/modules/createNamedContext.js","../.yarn/__virtual__/react-router-virtual-63626dc3bd/0/cache/react-router-npm-5.3.4-cc0757f6df-892d4e274a.zip/node_modules/react-router/modules/HistoryContext.js","../.yarn/__virtual__/react-router-virtual-63626dc3bd/0/cache/react-router-npm-5.3.4-cc0757f6df-892d4e274a.zip/node_modules/react-router/modules/RouterContext.js","../.yarn/__virtual__/react-router-virtual-63626dc3bd/0/cache/react-router-npm-5.3.4-cc0757f6df-892d4e274a.zip/node_modules/react-router/modules/Router.js","../.yarn/__virtual__/react-router-virtual-63626dc3bd/0/cache/react-router-npm-5.3.4-cc0757f6df-892d4e274a.zip/node_modules/react-router/modules/MemoryRouter.js","../.yarn/__virtual__/react-router-virtual-63626dc3bd/0/cache/react-router-npm-5.3.4-cc0757f6df-892d4e274a.zip/node_modules/react-router/modules/Lifecycle.js","../.yarn/__virtual__/react-router-virtual-63626dc3bd/0/cache/react-router-npm-5.3.4-cc0757f6df-892d4e274a.zip/node_modules/react-router/modules/generatePath.js","../.yarn/__virtual__/react-router-virtual-63626dc3bd/0/cache/react-router-npm-5.3.4-cc0757f6df-892d4e274a.zip/node_modules/react-router/modules/Redirect.js","../.yarn/__virtual__/react-router-virtual-63626dc3bd/0/cache/react-router-npm-5.3.4-cc0757f6df-892d4e274a.zip/node_modules/react-router/modules/matchPath.js","../.yarn/__virtual__/react-router-virtual-63626dc3bd/0/cache/react-router-npm-5.3.4-cc0757f6df-892d4e274a.zip/node_modules/react-router/modules/Route.js","../.yarn/__virtual__/react-router-virtual-63626dc3bd/0/cache/react-router-npm-5.3.4-cc0757f6df-892d4e274a.zip/node_modules/react-router/modules/StaticRouter.js","../.yarn/__virtual__/react-router-virtual-63626dc3bd/0/cache/react-router-npm-5.3.4-cc0757f6df-892d4e274a.zip/node_modules/react-router/modules/Switch.js","../.yarn/__virtual__/react-router-virtual-63626dc3bd/0/cache/react-router-npm-5.3.4-cc0757f6df-892d4e274a.zip/node_modules/react-router/modules/hooks.js","../.yarn/__virtual__/react-router-dom-virtual-510170851d/0/cache/react-router-dom-npm-5.3.4-678cc1057f-b86a6f2f52.zip/node_modules/react-router-dom/modules/BrowserRouter.js","../.yarn/__virtual__/react-router-dom-virtual-510170851d/0/cache/react-router-dom-npm-5.3.4-678cc1057f-b86a6f2f52.zip/node_modules/react-router-dom/modules/HashRouter.js","../.yarn/__virtual__/react-router-dom-virtual-510170851d/0/cache/react-router-dom-npm-5.3.4-678cc1057f-b86a6f2f52.zip/node_modules/react-router-dom/modules/utils/locationUtils.js","../.yarn/__virtual__/react-router-dom-virtual-510170851d/0/cache/react-router-dom-npm-5.3.4-678cc1057f-b86a6f2f52.zip/node_modules/react-router-dom/modules/Link.js","../.yarn/__virtual__/react-router-dom-virtual-510170851d/0/cache/react-router-dom-npm-5.3.4-678cc1057f-b86a6f2f52.zip/node_modules/react-router-dom/modules/NavLink.js","../.yarn/__virtual__/react-bootstrap-virtual-90f5534e6d/0/cache/react-bootstrap-npm-2.5.0-beta.1-00b2335a8c-eca5161fb4.zip/node_modules/react-bootstrap/esm/ThemeProvider.js","../.yarn/__virtual__/react-bootstrap-virtual-90f5534e6d/0/cache/react-bootstrap-npm-2.5.0-beta.1-00b2335a8c-eca5161fb4.zip/node_modules/react-bootstrap/esm/Row.js","../.yarn/__virtual__/react-bootstrap-virtual-90f5534e6d/0/cache/react-bootstrap-npm-2.5.0-beta.1-00b2335a8c-eca5161fb4.zip/node_modules/react-bootstrap/esm/Col.js","../.yarn/cache/dom-helpers-npm-5.2.1-b38bb4470b-863ba9e086.zip/node_modules/dom-helpers/esm/camelize.js","../.yarn/__virtual__/react-bootstrap-virtual-90f5534e6d/0/cache/react-bootstrap-npm-2.5.0-beta.1-00b2335a8c-eca5161fb4.zip/node_modules/react-bootstrap/esm/createWithBsPrefix.js","../.yarn/__virtual__/react-bootstrap-virtual-90f5534e6d/0/cache/react-bootstrap-npm-2.5.0-beta.1-00b2335a8c-eca5161fb4.zip/node_modules/react-bootstrap/esm/divWithClassName.js","../.yarn/__virtual__/react-bootstrap-virtual-90f5534e6d/0/cache/react-bootstrap-npm-2.5.0-beta.1-00b2335a8c-eca5161fb4.zip/node_modules/react-bootstrap/esm/CardImg.js","../.yarn/__virtual__/react-bootstrap-virtual-90f5534e6d/0/cache/react-bootstrap-npm-2.5.0-beta.1-00b2335a8c-eca5161fb4.zip/node_modules/react-bootstrap/esm/CardHeaderContext.js","../.yarn/__virtual__/react-bootstrap-virtual-90f5534e6d/0/cache/react-bootstrap-npm-2.5.0-beta.1-00b2335a8c-eca5161fb4.zip/node_modules/react-bootstrap/esm/CardHeader.js","../.yarn/__virtual__/react-bootstrap-virtual-90f5534e6d/0/cache/react-bootstrap-npm-2.5.0-beta.1-00b2335a8c-eca5161fb4.zip/node_modules/react-bootstrap/esm/Card.js","lib/errors.js","../.yarn/__virtual__/react-bootstrap-virtual-90f5534e6d/0/cache/react-bootstrap-npm-2.5.0-beta.1-00b2335a8c-eca5161fb4.zip/node_modules/react-bootstrap/esm/Feedback.js","../.yarn/__virtual__/react-bootstrap-virtual-90f5534e6d/0/cache/react-bootstrap-npm-2.5.0-beta.1-00b2335a8c-eca5161fb4.zip/node_modules/react-bootstrap/esm/FormContext.js","../.yarn/__virtual__/react-bootstrap-virtual-90f5534e6d/0/cache/react-bootstrap-npm-2.5.0-beta.1-00b2335a8c-eca5161fb4.zip/node_modules/react-bootstrap/esm/FormCheckInput.js","../.yarn/__virtual__/react-bootstrap-virtual-90f5534e6d/0/cache/react-bootstrap-npm-2.5.0-beta.1-00b2335a8c-eca5161fb4.zip/node_modules/react-bootstrap/esm/FormCheckLabel.js","../.yarn/__virtual__/react-bootstrap-virtual-90f5534e6d/0/cache/react-bootstrap-npm-2.5.0-beta.1-00b2335a8c-eca5161fb4.zip/node_modules/react-bootstrap/esm/ElementChildren.js","../.yarn/__virtual__/react-bootstrap-virtual-90f5534e6d/0/cache/react-bootstrap-npm-2.5.0-beta.1-00b2335a8c-eca5161fb4.zip/node_modules/react-bootstrap/esm/FormCheck.js","../.yarn/__virtual__/react-bootstrap-virtual-90f5534e6d/0/cache/react-bootstrap-npm-2.5.0-beta.1-00b2335a8c-eca5161fb4.zip/node_modules/react-bootstrap/esm/FormControl.js","../.yarn/__virtual__/react-bootstrap-virtual-90f5534e6d/0/cache/react-bootstrap-npm-2.5.0-beta.1-00b2335a8c-eca5161fb4.zip/node_modules/react-bootstrap/esm/FormFloating.js","../.yarn/__virtual__/react-bootstrap-virtual-90f5534e6d/0/cache/react-bootstrap-npm-2.5.0-beta.1-00b2335a8c-eca5161fb4.zip/node_modules/react-bootstrap/esm/FormGroup.js","../.yarn/__virtual__/react-bootstrap-virtual-90f5534e6d/0/cache/react-bootstrap-npm-2.5.0-beta.1-00b2335a8c-eca5161fb4.zip/node_modules/react-bootstrap/esm/FormLabel.js","../.yarn/__virtual__/react-bootstrap-virtual-90f5534e6d/0/cache/react-bootstrap-npm-2.5.0-beta.1-00b2335a8c-eca5161fb4.zip/node_modules/react-bootstrap/esm/FormRange.js","../.yarn/__virtual__/react-bootstrap-virtual-90f5534e6d/0/cache/react-bootstrap-npm-2.5.0-beta.1-00b2335a8c-eca5161fb4.zip/node_modules/react-bootstrap/esm/FormSelect.js","../.yarn/__virtual__/react-bootstrap-virtual-90f5534e6d/0/cache/react-bootstrap-npm-2.5.0-beta.1-00b2335a8c-eca5161fb4.zip/node_modules/react-bootstrap/esm/FormText.js","../.yarn/__virtual__/react-bootstrap-virtual-90f5534e6d/0/cache/react-bootstrap-npm-2.5.0-beta.1-00b2335a8c-eca5161fb4.zip/node_modules/react-bootstrap/esm/Switch.js","../.yarn/__virtual__/react-bootstrap-virtual-90f5534e6d/0/cache/react-bootstrap-npm-2.5.0-beta.1-00b2335a8c-eca5161fb4.zip/node_modules/react-bootstrap/esm/FloatingLabel.js","../.yarn/__virtual__/react-bootstrap-virtual-90f5534e6d/0/cache/react-bootstrap-npm-2.5.0-beta.1-00b2335a8c-eca5161fb4.zip/node_modules/react-bootstrap/esm/Form.js","../.yarn/__virtual__/@restart-ui-virtual-8adc8352d3/0/cache/@restart-ui-npm-1.5.4-96c468aa03-98deefa779.zip/node_modules/@restart/ui/esm/Button.js","../.yarn/__virtual__/react-bootstrap-virtual-90f5534e6d/0/cache/react-bootstrap-npm-2.5.0-beta.1-00b2335a8c-eca5161fb4.zip/node_modules/react-bootstrap/esm/Button.js","../.yarn/__virtual__/react-bootstrap-virtual-90f5534e6d/0/cache/react-bootstrap-npm-2.5.0-beta.1-00b2335a8c-eca5161fb4.zip/node_modules/react-bootstrap/esm/Spinner.js","../.yarn/__virtual__/react-hook-form-virtual-e015714d2b/0/cache/react-hook-form-npm-7.43.0-dba9519b33-f86ef57b4e.zip/node_modules/react-hook-form/src/utils/isCheckBoxInput.ts","../.yarn/__virtual__/react-hook-form-virtual-e015714d2b/0/cache/react-hook-form-npm-7.43.0-dba9519b33-f86ef57b4e.zip/node_modules/react-hook-form/src/utils/isDateObject.ts","../.yarn/__virtual__/react-hook-form-virtual-e015714d2b/0/cache/react-hook-form-npm-7.43.0-dba9519b33-f86ef57b4e.zip/node_modules/react-hook-form/src/utils/isNullOrUndefined.ts","../.yarn/__virtual__/react-hook-form-virtual-e015714d2b/0/cache/react-hook-form-npm-7.43.0-dba9519b33-f86ef57b4e.zip/node_modules/react-hook-form/src/utils/isObject.ts","../.yarn/__virtual__/react-hook-form-virtual-e015714d2b/0/cache/react-hook-form-npm-7.43.0-dba9519b33-f86ef57b4e.zip/node_modules/react-hook-form/src/logic/getEventValue.ts","../.yarn/__virtual__/react-hook-form-virtual-e015714d2b/0/cache/react-hook-form-npm-7.43.0-dba9519b33-f86ef57b4e.zip/node_modules/react-hook-form/src/logic/isNameInFieldArray.ts","../.yarn/__virtual__/react-hook-form-virtual-e015714d2b/0/cache/react-hook-form-npm-7.43.0-dba9519b33-f86ef57b4e.zip/node_modules/react-hook-form/src/logic/getNodeParentName.ts","../.yarn/__virtual__/react-hook-form-virtual-e015714d2b/0/cache/react-hook-form-npm-7.43.0-dba9519b33-f86ef57b4e.zip/node_modules/react-hook-form/src/utils/compact.ts","../.yarn/__virtual__/react-hook-form-virtual-e015714d2b/0/cache/react-hook-form-npm-7.43.0-dba9519b33-f86ef57b4e.zip/node_modules/react-hook-form/src/utils/isUndefined.ts","../.yarn/__virtual__/react-hook-form-virtual-e015714d2b/0/cache/react-hook-form-npm-7.43.0-dba9519b33-f86ef57b4e.zip/node_modules/react-hook-form/src/utils/get.ts","../.yarn/__virtual__/react-hook-form-virtual-e015714d2b/0/cache/react-hook-form-npm-7.43.0-dba9519b33-f86ef57b4e.zip/node_modules/react-hook-form/src/constants.ts","../.yarn/__virtual__/react-hook-form-virtual-e015714d2b/0/cache/react-hook-form-npm-7.43.0-dba9519b33-f86ef57b4e.zip/node_modules/react-hook-form/src/useFormContext.tsx","../.yarn/__virtual__/react-hook-form-virtual-e015714d2b/0/cache/react-hook-form-npm-7.43.0-dba9519b33-f86ef57b4e.zip/node_modules/react-hook-form/src/logic/getProxyFormState.ts","../.yarn/__virtual__/react-hook-form-virtual-e015714d2b/0/cache/react-hook-form-npm-7.43.0-dba9519b33-f86ef57b4e.zip/node_modules/react-hook-form/src/utils/isEmptyObject.ts","../.yarn/__virtual__/react-hook-form-virtual-e015714d2b/0/cache/react-hook-form-npm-7.43.0-dba9519b33-f86ef57b4e.zip/node_modules/react-hook-form/src/logic/shouldRenderFormState.ts","../.yarn/__virtual__/react-hook-form-virtual-e015714d2b/0/cache/react-hook-form-npm-7.43.0-dba9519b33-f86ef57b4e.zip/node_modules/react-hook-form/src/utils/convertToArrayPayload.ts","../.yarn/__virtual__/react-hook-form-virtual-e015714d2b/0/cache/react-hook-form-npm-7.43.0-dba9519b33-f86ef57b4e.zip/node_modules/react-hook-form/src/logic/shouldSubscribeByName.ts","../.yarn/__virtual__/react-hook-form-virtual-e015714d2b/0/cache/react-hook-form-npm-7.43.0-dba9519b33-f86ef57b4e.zip/node_modules/react-hook-form/src/useSubscribe.ts","../.yarn/__virtual__/react-hook-form-virtual-e015714d2b/0/cache/react-hook-form-npm-7.43.0-dba9519b33-f86ef57b4e.zip/node_modules/react-hook-form/src/utils/isString.ts","../.yarn/__virtual__/react-hook-form-virtual-e015714d2b/0/cache/react-hook-form-npm-7.43.0-dba9519b33-f86ef57b4e.zip/node_modules/react-hook-form/src/logic/generateWatchOutput.ts","../.yarn/__virtual__/react-hook-form-virtual-e015714d2b/0/cache/react-hook-form-npm-7.43.0-dba9519b33-f86ef57b4e.zip/node_modules/react-hook-form/src/utils/isWeb.ts","../.yarn/__virtual__/react-hook-form-virtual-e015714d2b/0/cache/react-hook-form-npm-7.43.0-dba9519b33-f86ef57b4e.zip/node_modules/react-hook-form/src/utils/cloneObject.ts","../.yarn/__virtual__/react-hook-form-virtual-e015714d2b/0/cache/react-hook-form-npm-7.43.0-dba9519b33-f86ef57b4e.zip/node_modules/react-hook-form/src/utils/isPlainObject.ts","../.yarn/__virtual__/react-hook-form-virtual-e015714d2b/0/cache/react-hook-form-npm-7.43.0-dba9519b33-f86ef57b4e.zip/node_modules/react-hook-form/src/useController.ts","../.yarn/__virtual__/react-hook-form-virtual-e015714d2b/0/cache/react-hook-form-npm-7.43.0-dba9519b33-f86ef57b4e.zip/node_modules/react-hook-form/src/useWatch.ts","../.yarn/__virtual__/react-hook-form-virtual-e015714d2b/0/cache/react-hook-form-npm-7.43.0-dba9519b33-f86ef57b4e.zip/node_modules/react-hook-form/src/useFormState.ts","../.yarn/__virtual__/react-hook-form-virtual-e015714d2b/0/cache/react-hook-form-npm-7.43.0-dba9519b33-f86ef57b4e.zip/node_modules/react-hook-form/src/controller.tsx","../.yarn/__virtual__/react-hook-form-virtual-e015714d2b/0/cache/react-hook-form-npm-7.43.0-dba9519b33-f86ef57b4e.zip/node_modules/react-hook-form/src/logic/appendErrors.ts","../.yarn/__virtual__/react-hook-form-virtual-e015714d2b/0/cache/react-hook-form-npm-7.43.0-dba9519b33-f86ef57b4e.zip/node_modules/react-hook-form/src/utils/isKey.ts","../.yarn/__virtual__/react-hook-form-virtual-e015714d2b/0/cache/react-hook-form-npm-7.43.0-dba9519b33-f86ef57b4e.zip/node_modules/react-hook-form/src/utils/stringToPath.ts","../.yarn/__virtual__/react-hook-form-virtual-e015714d2b/0/cache/react-hook-form-npm-7.43.0-dba9519b33-f86ef57b4e.zip/node_modules/react-hook-form/src/utils/set.ts","../.yarn/__virtual__/react-hook-form-virtual-e015714d2b/0/cache/react-hook-form-npm-7.43.0-dba9519b33-f86ef57b4e.zip/node_modules/react-hook-form/src/logic/focusFieldBy.ts","../.yarn/__virtual__/react-hook-form-virtual-e015714d2b/0/cache/react-hook-form-npm-7.43.0-dba9519b33-f86ef57b4e.zip/node_modules/react-hook-form/src/logic/generateId.ts","../.yarn/__virtual__/react-hook-form-virtual-e015714d2b/0/cache/react-hook-form-npm-7.43.0-dba9519b33-f86ef57b4e.zip/node_modules/react-hook-form/src/logic/getFocusFieldName.ts","../.yarn/__virtual__/react-hook-form-virtual-e015714d2b/0/cache/react-hook-form-npm-7.43.0-dba9519b33-f86ef57b4e.zip/node_modules/react-hook-form/src/logic/getValidationModes.ts","../.yarn/__virtual__/react-hook-form-virtual-e015714d2b/0/cache/react-hook-form-npm-7.43.0-dba9519b33-f86ef57b4e.zip/node_modules/react-hook-form/src/logic/isWatched.ts","../.yarn/__virtual__/react-hook-form-virtual-e015714d2b/0/cache/react-hook-form-npm-7.43.0-dba9519b33-f86ef57b4e.zip/node_modules/react-hook-form/src/logic/updateFieldArrayRootError.ts","../.yarn/__virtual__/react-hook-form-virtual-e015714d2b/0/cache/react-hook-form-npm-7.43.0-dba9519b33-f86ef57b4e.zip/node_modules/react-hook-form/src/utils/isBoolean.ts","../.yarn/__virtual__/react-hook-form-virtual-e015714d2b/0/cache/react-hook-form-npm-7.43.0-dba9519b33-f86ef57b4e.zip/node_modules/react-hook-form/src/utils/isFileInput.ts","../.yarn/__virtual__/react-hook-form-virtual-e015714d2b/0/cache/react-hook-form-npm-7.43.0-dba9519b33-f86ef57b4e.zip/node_modules/react-hook-form/src/utils/isFunction.ts","../.yarn/__virtual__/react-hook-form-virtual-e015714d2b/0/cache/react-hook-form-npm-7.43.0-dba9519b33-f86ef57b4e.zip/node_modules/react-hook-form/src/utils/isHTMLElement.ts","../.yarn/__virtual__/react-hook-form-virtual-e015714d2b/0/cache/react-hook-form-npm-7.43.0-dba9519b33-f86ef57b4e.zip/node_modules/react-hook-form/src/utils/isMessage.ts","../.yarn/__virtual__/react-hook-form-virtual-e015714d2b/0/cache/react-hook-form-npm-7.43.0-dba9519b33-f86ef57b4e.zip/node_modules/react-hook-form/src/utils/isRadioInput.ts","../.yarn/__virtual__/react-hook-form-virtual-e015714d2b/0/cache/react-hook-form-npm-7.43.0-dba9519b33-f86ef57b4e.zip/node_modules/react-hook-form/src/utils/isRegex.ts","../.yarn/__virtual__/react-hook-form-virtual-e015714d2b/0/cache/react-hook-form-npm-7.43.0-dba9519b33-f86ef57b4e.zip/node_modules/react-hook-form/src/logic/getCheckboxValue.ts","../.yarn/__virtual__/react-hook-form-virtual-e015714d2b/0/cache/react-hook-form-npm-7.43.0-dba9519b33-f86ef57b4e.zip/node_modules/react-hook-form/src/logic/getRadioValue.ts","../.yarn/__virtual__/react-hook-form-virtual-e015714d2b/0/cache/react-hook-form-npm-7.43.0-dba9519b33-f86ef57b4e.zip/node_modules/react-hook-form/src/logic/getValidateError.ts","../.yarn/__virtual__/react-hook-form-virtual-e015714d2b/0/cache/react-hook-form-npm-7.43.0-dba9519b33-f86ef57b4e.zip/node_modules/react-hook-form/src/logic/getValueAndMessage.ts","../.yarn/__virtual__/react-hook-form-virtual-e015714d2b/0/cache/react-hook-form-npm-7.43.0-dba9519b33-f86ef57b4e.zip/node_modules/react-hook-form/src/logic/validateField.ts","../.yarn/__virtual__/react-hook-form-virtual-e015714d2b/0/cache/react-hook-form-npm-7.43.0-dba9519b33-f86ef57b4e.zip/node_modules/react-hook-form/src/utils/append.ts","../.yarn/__virtual__/react-hook-form-virtual-e015714d2b/0/cache/react-hook-form-npm-7.43.0-dba9519b33-f86ef57b4e.zip/node_modules/react-hook-form/src/utils/fillEmptyArray.ts","../.yarn/__virtual__/react-hook-form-virtual-e015714d2b/0/cache/react-hook-form-npm-7.43.0-dba9519b33-f86ef57b4e.zip/node_modules/react-hook-form/src/utils/insert.ts","../.yarn/__virtual__/react-hook-form-virtual-e015714d2b/0/cache/react-hook-form-npm-7.43.0-dba9519b33-f86ef57b4e.zip/node_modules/react-hook-form/src/utils/move.ts","../.yarn/__virtual__/react-hook-form-virtual-e015714d2b/0/cache/react-hook-form-npm-7.43.0-dba9519b33-f86ef57b4e.zip/node_modules/react-hook-form/src/utils/prepend.ts","../.yarn/__virtual__/react-hook-form-virtual-e015714d2b/0/cache/react-hook-form-npm-7.43.0-dba9519b33-f86ef57b4e.zip/node_modules/react-hook-form/src/utils/remove.ts","../.yarn/__virtual__/react-hook-form-virtual-e015714d2b/0/cache/react-hook-form-npm-7.43.0-dba9519b33-f86ef57b4e.zip/node_modules/react-hook-form/src/utils/swap.ts","../.yarn/__virtual__/react-hook-form-virtual-e015714d2b/0/cache/react-hook-form-npm-7.43.0-dba9519b33-f86ef57b4e.zip/node_modules/react-hook-form/src/utils/unset.ts","../.yarn/__virtual__/react-hook-form-virtual-e015714d2b/0/cache/react-hook-form-npm-7.43.0-dba9519b33-f86ef57b4e.zip/node_modules/react-hook-form/src/utils/update.ts","../.yarn/__virtual__/react-hook-form-virtual-e015714d2b/0/cache/react-hook-form-npm-7.43.0-dba9519b33-f86ef57b4e.zip/node_modules/react-hook-form/src/utils/createSubject.ts","../.yarn/__virtual__/react-hook-form-virtual-e015714d2b/0/cache/react-hook-form-npm-7.43.0-dba9519b33-f86ef57b4e.zip/node_modules/react-hook-form/src/utils/isPrimitive.ts","../.yarn/__virtual__/react-hook-form-virtual-e015714d2b/0/cache/react-hook-form-npm-7.43.0-dba9519b33-f86ef57b4e.zip/node_modules/react-hook-form/src/utils/deepEqual.ts","../.yarn/__virtual__/react-hook-form-virtual-e015714d2b/0/cache/react-hook-form-npm-7.43.0-dba9519b33-f86ef57b4e.zip/node_modules/react-hook-form/src/utils/isMultipleSelect.ts","../.yarn/__virtual__/react-hook-form-virtual-e015714d2b/0/cache/react-hook-form-npm-7.43.0-dba9519b33-f86ef57b4e.zip/node_modules/react-hook-form/src/utils/isRadioOrCheckbox.ts","../.yarn/__virtual__/react-hook-form-virtual-e015714d2b/0/cache/react-hook-form-npm-7.43.0-dba9519b33-f86ef57b4e.zip/node_modules/react-hook-form/src/utils/live.ts","../.yarn/__virtual__/react-hook-form-virtual-e015714d2b/0/cache/react-hook-form-npm-7.43.0-dba9519b33-f86ef57b4e.zip/node_modules/react-hook-form/src/utils/objectHasFunction.ts","../.yarn/__virtual__/react-hook-form-virtual-e015714d2b/0/cache/react-hook-form-npm-7.43.0-dba9519b33-f86ef57b4e.zip/node_modules/react-hook-form/src/logic/getDirtyFields.ts","../.yarn/__virtual__/react-hook-form-virtual-e015714d2b/0/cache/react-hook-form-npm-7.43.0-dba9519b33-f86ef57b4e.zip/node_modules/react-hook-form/src/logic/getFieldValueAs.ts","../.yarn/__virtual__/react-hook-form-virtual-e015714d2b/0/cache/react-hook-form-npm-7.43.0-dba9519b33-f86ef57b4e.zip/node_modules/react-hook-form/src/logic/getFieldValue.ts","../.yarn/__virtual__/react-hook-form-virtual-e015714d2b/0/cache/react-hook-form-npm-7.43.0-dba9519b33-f86ef57b4e.zip/node_modules/react-hook-form/src/logic/getResolverOptions.ts","../.yarn/__virtual__/react-hook-form-virtual-e015714d2b/0/cache/react-hook-form-npm-7.43.0-dba9519b33-f86ef57b4e.zip/node_modules/react-hook-form/src/logic/getRuleValue.ts","../.yarn/__virtual__/react-hook-form-virtual-e015714d2b/0/cache/react-hook-form-npm-7.43.0-dba9519b33-f86ef57b4e.zip/node_modules/react-hook-form/src/logic/hasValidation.ts","../.yarn/__virtual__/react-hook-form-virtual-e015714d2b/0/cache/react-hook-form-npm-7.43.0-dba9519b33-f86ef57b4e.zip/node_modules/react-hook-form/src/logic/schemaErrorLookup.ts","../.yarn/__virtual__/react-hook-form-virtual-e015714d2b/0/cache/react-hook-form-npm-7.43.0-dba9519b33-f86ef57b4e.zip/node_modules/react-hook-form/src/logic/skipValidation.ts","../.yarn/__virtual__/react-hook-form-virtual-e015714d2b/0/cache/react-hook-form-npm-7.43.0-dba9519b33-f86ef57b4e.zip/node_modules/react-hook-form/src/logic/unsetEmptyArray.ts","../.yarn/__virtual__/react-hook-form-virtual-e015714d2b/0/cache/react-hook-form-npm-7.43.0-dba9519b33-f86ef57b4e.zip/node_modules/react-hook-form/src/logic/createFormControl.ts","../.yarn/__virtual__/react-hook-form-virtual-e015714d2b/0/cache/react-hook-form-npm-7.43.0-dba9519b33-f86ef57b4e.zip/node_modules/react-hook-form/src/useForm.ts","../.yarn/__virtual__/@hookform-resolvers-virtual-b3d761d189/0/cache/@hookform-resolvers-npm-2.9.10-940efb71c1-ae3395372d.zip/node_modules/@hookform/resolvers/src/validateFieldsNatively.ts","../.yarn/cache/nanoclone-npm-0.2.1-972ee958a0-96b2954e22.zip/node_modules/nanoclone/src/index.js","../.yarn/__virtual__/@hookform-resolvers-virtual-b3d761d189/0/cache/@hookform-resolvers-npm-2.9.10-940efb71c1-ae3395372d.zip/node_modules/@hookform/resolvers/src/toNestError.ts","../.yarn/__virtual__/@hookform-resolvers-virtual-b3d761d189/0/cache/@hookform-resolvers-npm-2.9.10-940efb71c1-ae3395372d.zip/node_modules/@hookform/resolvers/yup/src/yup.ts","../.yarn/cache/yup-npm-0.32.11-dbaff8ca9c-43a16786b4.zip/node_modules/yup/es/util/printValue.js","../.yarn/cache/yup-npm-0.32.11-dbaff8ca9c-43a16786b4.zip/node_modules/yup/es/locale.js","../.yarn/cache/yup-npm-0.32.11-dbaff8ca9c-43a16786b4.zip/node_modules/yup/es/util/isSchema.js","../.yarn/cache/yup-npm-0.32.11-dbaff8ca9c-43a16786b4.zip/node_modules/yup/es/Condition.js","../.yarn/cache/yup-npm-0.32.11-dbaff8ca9c-43a16786b4.zip/node_modules/yup/es/util/toArray.js","../.yarn/cache/yup-npm-0.32.11-dbaff8ca9c-43a16786b4.zip/node_modules/yup/es/ValidationError.js","../.yarn/cache/yup-npm-0.32.11-dbaff8ca9c-43a16786b4.zip/node_modules/yup/es/util/runTests.js","../.yarn/cache/yup-npm-0.32.11-dbaff8ca9c-43a16786b4.zip/node_modules/yup/es/Reference.js","../.yarn/cache/yup-npm-0.32.11-dbaff8ca9c-43a16786b4.zip/node_modules/yup/es/util/createValidation.js","../.yarn/cache/yup-npm-0.32.11-dbaff8ca9c-43a16786b4.zip/node_modules/yup/es/util/reach.js","../.yarn/cache/yup-npm-0.32.11-dbaff8ca9c-43a16786b4.zip/node_modules/yup/es/util/ReferenceSet.js","../.yarn/cache/yup-npm-0.32.11-dbaff8ca9c-43a16786b4.zip/node_modules/yup/es/schema.js","../.yarn/cache/yup-npm-0.32.11-dbaff8ca9c-43a16786b4.zip/node_modules/yup/es/mixed.js","../.yarn/cache/yup-npm-0.32.11-dbaff8ca9c-43a16786b4.zip/node_modules/yup/es/util/isAbsent.js","../.yarn/cache/yup-npm-0.32.11-dbaff8ca9c-43a16786b4.zip/node_modules/yup/es/boolean.js","../.yarn/cache/@babel-runtime-npm-7.20.13-45eeb6d8ad-09b7a97a05.zip/node_modules/@babel/runtime/helpers/esm/superPropBase.js","../.yarn/cache/@babel-runtime-npm-7.20.13-45eeb6d8ad-09b7a97a05.zip/node_modules/@babel/runtime/helpers/esm/get.js","../.yarn/cache/yup-npm-0.32.11-dbaff8ca9c-43a16786b4.zip/node_modules/yup/es/string.js","../.yarn/cache/yup-npm-0.32.11-dbaff8ca9c-43a16786b4.zip/node_modules/yup/es/number.js","../.yarn/cache/yup-npm-0.32.11-dbaff8ca9c-43a16786b4.zip/node_modules/yup/es/util/isodate.js","../.yarn/cache/yup-npm-0.32.11-dbaff8ca9c-43a16786b4.zip/node_modules/yup/es/date.js","../.yarn/cache/yup-npm-0.32.11-dbaff8ca9c-43a16786b4.zip/node_modules/yup/es/util/sortFields.js","../.yarn/cache/yup-npm-0.32.11-dbaff8ca9c-43a16786b4.zip/node_modules/yup/es/util/sortByKeyOrder.js","../.yarn/cache/yup-npm-0.32.11-dbaff8ca9c-43a16786b4.zip/node_modules/yup/es/object.js","../.yarn/cache/yup-npm-0.32.11-dbaff8ca9c-43a16786b4.zip/node_modules/yup/es/array.js","scenes/Auth/Login/LoginForm.js","../.yarn/__virtual__/react-feather-virtual-43b4f2714d/0/cache/react-feather-npm-2.0.10-b035d9c822-75acb29ee4.zip/node_modules/react-feather/dist/icons/check.js","../.yarn/__virtual__/react-feather-virtual-43b4f2714d/0/cache/react-feather-npm-2.0.10-b035d9c822-75acb29ee4.zip/node_modules/react-feather/dist/icons/x.js","scenes/Auth/PasswordStrengthInfo/inspectPasswordStrength.js","scenes/Auth/PasswordStrengthInfo/index.js","scenes/Auth/PasswordStrengthInfo/isGoodPassword.js","scenes/Auth/Login/NewPasswordRequiredForm.js","scenes/Auth/Login/index.js","../.yarn/__virtual__/react-feather-virtual-43b4f2714d/0/cache/react-feather-npm-2.0.10-b035d9c822-75acb29ee4.zip/node_modules/react-feather/dist/icons/corner-up-left.js","scenes/Auth/Register.js","scenes/Auth/ResetPassword/Email.js","scenes/Auth/ResetPassword/CodeAndPassword.js","scenes/Auth/ResetPassword/index.js","../.yarn/__virtual__/react-router-virtual-63626dc3bd/0/cache/react-router-npm-5.3.4-cc0757f6df-892d4e274a.zip/node_modules/react-router/modules/withRouter.js","../.yarn/__virtual__/react-bootstrap-virtual-90f5534e6d/0/cache/react-bootstrap-npm-2.5.0-beta.1-00b2335a8c-eca5161fb4.zip/node_modules/react-bootstrap/esm/Container.js","components/atoms/Logo.js","scenes/Auth/SignupChoosePassword/index.js","../.yarn/__virtual__/@restart-ui-virtual-8adc8352d3/0/cache/@restart-ui-npm-1.5.4-96c468aa03-98deefa779.zip/node_modules/@restart/ui/esm/SelectableContext.js","../.yarn/__virtual__/uncontrollable-virtual-b2ab0d6270/0/cache/uncontrollable-npm-7.2.1-85b30af5c9-3345c0c191.zip/node_modules/uncontrollable/lib/esm/utils.js","../.yarn/__virtual__/uncontrollable-virtual-b2ab0d6270/0/cache/uncontrollable-npm-7.2.1-85b30af5c9-3345c0c191.zip/node_modules/uncontrollable/lib/esm/hook.js","../.yarn/cache/react-lifecycles-compat-npm-3.0.4-d5e285a39e-a904b0fc0a.zip/node_modules/react-lifecycles-compat/react-lifecycles-compat.es.js","../.yarn/__virtual__/react-bootstrap-virtual-90f5534e6d/0/cache/react-bootstrap-npm-2.5.0-beta.1-00b2335a8c-eca5161fb4.zip/node_modules/react-bootstrap/esm/NavbarBrand.js","../.yarn/cache/dom-helpers-npm-5.2.1-b38bb4470b-863ba9e086.zip/node_modules/dom-helpers/esm/ownerDocument.js","../.yarn/cache/dom-helpers-npm-5.2.1-b38bb4470b-863ba9e086.zip/node_modules/dom-helpers/esm/getComputedStyle.js","../.yarn/cache/dom-helpers-npm-5.2.1-b38bb4470b-863ba9e086.zip/node_modules/dom-helpers/esm/ownerWindow.js","../.yarn/cache/dom-helpers-npm-5.2.1-b38bb4470b-863ba9e086.zip/node_modules/dom-helpers/esm/hyphenate.js","../.yarn/cache/dom-helpers-npm-5.2.1-b38bb4470b-863ba9e086.zip/node_modules/dom-helpers/esm/hyphenateStyle.js","../.yarn/cache/dom-helpers-npm-5.2.1-b38bb4470b-863ba9e086.zip/node_modules/dom-helpers/esm/isTransform.js","../.yarn/cache/dom-helpers-npm-5.2.1-b38bb4470b-863ba9e086.zip/node_modules/dom-helpers/esm/css.js","../.yarn/__virtual__/react-transition-group-virtual-15e2538384/0/cache/react-transition-group-npm-4.4.5-98ea4ef96e-7560284010.zip/node_modules/react-transition-group/esm/config.js","../.yarn/__virtual__/react-transition-group-virtual-15e2538384/0/cache/react-transition-group-npm-4.4.5-98ea4ef96e-7560284010.zip/node_modules/react-transition-group/esm/TransitionGroupContext.js","../.yarn/__virtual__/react-transition-group-virtual-15e2538384/0/cache/react-transition-group-npm-4.4.5-98ea4ef96e-7560284010.zip/node_modules/react-transition-group/esm/Transition.js","../.yarn/__virtual__/react-transition-group-virtual-15e2538384/0/cache/react-transition-group-npm-4.4.5-98ea4ef96e-7560284010.zip/node_modules/react-transition-group/esm/utils/reflow.js","../.yarn/cache/dom-helpers-npm-5.2.1-b38bb4470b-863ba9e086.zip/node_modules/dom-helpers/esm/canUseDOM.js","../.yarn/cache/dom-helpers-npm-5.2.1-b38bb4470b-863ba9e086.zip/node_modules/dom-helpers/esm/addEventListener.js","../.yarn/cache/dom-helpers-npm-5.2.1-b38bb4470b-863ba9e086.zip/node_modules/dom-helpers/esm/removeEventListener.js","../.yarn/cache/dom-helpers-npm-5.2.1-b38bb4470b-863ba9e086.zip/node_modules/dom-helpers/esm/listen.js","../.yarn/cache/dom-helpers-npm-5.2.1-b38bb4470b-863ba9e086.zip/node_modules/dom-helpers/esm/transitionEnd.js","../.yarn/cache/dom-helpers-npm-5.2.1-b38bb4470b-863ba9e086.zip/node_modules/dom-helpers/esm/triggerEvent.js","../.yarn/__virtual__/react-bootstrap-virtual-90f5534e6d/0/cache/react-bootstrap-npm-2.5.0-beta.1-00b2335a8c-eca5161fb4.zip/node_modules/react-bootstrap/esm/transitionEndListener.js","../.yarn/__virtual__/react-bootstrap-virtual-90f5534e6d/0/cache/react-bootstrap-npm-2.5.0-beta.1-00b2335a8c-eca5161fb4.zip/node_modules/react-bootstrap/esm/createChainedFunction.js","../.yarn/__virtual__/react-bootstrap-virtual-90f5534e6d/0/cache/react-bootstrap-npm-2.5.0-beta.1-00b2335a8c-eca5161fb4.zip/node_modules/react-bootstrap/esm/triggerBrowserReflow.js","../.yarn/__virtual__/@restart-hooks-virtual-82f0edbd7f/0/cache/@restart-hooks-npm-0.4.8-9cba42535b-570b268330.zip/node_modules/@restart/hooks/esm/useMergedRefs.js","../.yarn/__virtual__/react-bootstrap-virtual-90f5534e6d/0/cache/react-bootstrap-npm-2.5.0-beta.1-00b2335a8c-eca5161fb4.zip/node_modules/react-bootstrap/esm/safeFindDOMNode.js","../.yarn/__virtual__/react-bootstrap-virtual-90f5534e6d/0/cache/react-bootstrap-npm-2.5.0-beta.1-00b2335a8c-eca5161fb4.zip/node_modules/react-bootstrap/esm/TransitionWrapper.js","../.yarn/__virtual__/react-bootstrap-virtual-90f5534e6d/0/cache/react-bootstrap-npm-2.5.0-beta.1-00b2335a8c-eca5161fb4.zip/node_modules/react-bootstrap/esm/Collapse.js","../.yarn/__virtual__/react-bootstrap-virtual-90f5534e6d/0/cache/react-bootstrap-npm-2.5.0-beta.1-00b2335a8c-eca5161fb4.zip/node_modules/react-bootstrap/esm/NavbarContext.js","../.yarn/__virtual__/react-bootstrap-virtual-90f5534e6d/0/cache/react-bootstrap-npm-2.5.0-beta.1-00b2335a8c-eca5161fb4.zip/node_modules/react-bootstrap/esm/NavbarCollapse.js","../.yarn/__virtual__/@restart-hooks-virtual-82f0edbd7f/0/cache/@restart-hooks-npm-0.4.8-9cba42535b-570b268330.zip/node_modules/@restart/hooks/esm/useCommittedRef.js","../.yarn/__virtual__/@restart-hooks-virtual-82f0edbd7f/0/cache/@restart-hooks-npm-0.4.8-9cba42535b-570b268330.zip/node_modules/@restart/hooks/esm/useEventCallback.js","../.yarn/__virtual__/react-bootstrap-virtual-90f5534e6d/0/cache/react-bootstrap-npm-2.5.0-beta.1-00b2335a8c-eca5161fb4.zip/node_modules/react-bootstrap/esm/NavbarToggle.js","../.yarn/__virtual__/@restart-hooks-virtual-82f0edbd7f/0/cache/@restart-hooks-npm-0.4.8-9cba42535b-570b268330.zip/node_modules/@restart/hooks/esm/useIsomorphicEffect.js","../.yarn/__virtual__/@restart-hooks-virtual-82f0edbd7f/0/cache/@restart-hooks-npm-0.4.8-9cba42535b-570b268330.zip/node_modules/@restart/hooks/esm/useMediaQuery.js","../.yarn/__virtual__/@restart-hooks-virtual-82f0edbd7f/0/cache/@restart-hooks-npm-0.4.8-9cba42535b-570b268330.zip/node_modules/@restart/hooks/esm/useBreakpoint.js","../.yarn/cache/dom-helpers-npm-5.2.1-b38bb4470b-863ba9e086.zip/node_modules/dom-helpers/esm/activeElement.js","../.yarn/cache/dom-helpers-npm-5.2.1-b38bb4470b-863ba9e086.zip/node_modules/dom-helpers/esm/contains.js","../.yarn/__virtual__/@restart-hooks-virtual-82f0edbd7f/0/cache/@restart-hooks-npm-0.4.8-9cba42535b-570b268330.zip/node_modules/@restart/hooks/esm/useMounted.js","../.yarn/__virtual__/@restart-hooks-virtual-82f0edbd7f/0/cache/@restart-hooks-npm-0.4.8-9cba42535b-570b268330.zip/node_modules/@restart/hooks/esm/useWillUnmount.js","../.yarn/__virtual__/@restart-hooks-virtual-82f0edbd7f/0/cache/@restart-hooks-npm-0.4.8-9cba42535b-570b268330.zip/node_modules/@restart/hooks/esm/useUpdatedRef.js","../.yarn/__virtual__/@restart-hooks-virtual-82f0edbd7f/0/cache/@restart-hooks-npm-0.4.8-9cba42535b-570b268330.zip/node_modules/@restart/hooks/esm/usePrevious.js","../.yarn/__virtual__/@restart-ui-virtual-8adc8352d3/0/cache/@restart-ui-npm-1.5.4-96c468aa03-98deefa779.zip/node_modules/@restart/ui/esm/DataKey.js","../.yarn/__virtual__/@restart-ui-virtual-8adc8352d3/0/cache/@restart-ui-npm-1.5.4-96c468aa03-98deefa779.zip/node_modules/@restart/ui/esm/ModalManager.js","../.yarn/__virtual__/@restart-ui-virtual-8adc8352d3/0/cache/@restart-ui-npm-1.5.4-96c468aa03-98deefa779.zip/node_modules/@restart/ui/esm/getScrollbarWidth.js","../.yarn/__virtual__/@restart-ui-virtual-8adc8352d3/0/cache/@restart-ui-npm-1.5.4-96c468aa03-98deefa779.zip/node_modules/@restart/ui/esm/useWindow.js","../.yarn/__virtual__/@restart-ui-virtual-8adc8352d3/0/cache/@restart-ui-npm-1.5.4-96c468aa03-98deefa779.zip/node_modules/@restart/ui/esm/useWaitForDOMRef.js","../.yarn/__virtual__/@restart-ui-virtual-8adc8352d3/0/cache/@restart-ui-npm-1.5.4-96c468aa03-98deefa779.zip/node_modules/@restart/ui/esm/NoopTransition.js","../.yarn/__virtual__/@restart-ui-virtual-8adc8352d3/0/cache/@restart-ui-npm-1.5.4-96c468aa03-98deefa779.zip/node_modules/@restart/ui/esm/ImperativeTransition.js","../.yarn/__virtual__/@restart-ui-virtual-8adc8352d3/0/cache/@restart-ui-npm-1.5.4-96c468aa03-98deefa779.zip/node_modules/@restart/ui/esm/Modal.js","../.yarn/__virtual__/react-bootstrap-virtual-90f5534e6d/0/cache/react-bootstrap-npm-2.5.0-beta.1-00b2335a8c-eca5161fb4.zip/node_modules/react-bootstrap/esm/Fade.js","../.yarn/__virtual__/react-bootstrap-virtual-90f5534e6d/0/cache/react-bootstrap-npm-2.5.0-beta.1-00b2335a8c-eca5161fb4.zip/node_modules/react-bootstrap/esm/OffcanvasBody.js","../.yarn/__virtual__/react-bootstrap-virtual-90f5534e6d/0/cache/react-bootstrap-npm-2.5.0-beta.1-00b2335a8c-eca5161fb4.zip/node_modules/react-bootstrap/esm/OffcanvasToggling.js","../.yarn/__virtual__/react-bootstrap-virtual-90f5534e6d/0/cache/react-bootstrap-npm-2.5.0-beta.1-00b2335a8c-eca5161fb4.zip/node_modules/react-bootstrap/esm/ModalContext.js","../.yarn/__virtual__/react-bootstrap-virtual-90f5534e6d/0/cache/react-bootstrap-npm-2.5.0-beta.1-00b2335a8c-eca5161fb4.zip/node_modules/react-bootstrap/esm/CloseButton.js","../.yarn/__virtual__/react-bootstrap-virtual-90f5534e6d/0/cache/react-bootstrap-npm-2.5.0-beta.1-00b2335a8c-eca5161fb4.zip/node_modules/react-bootstrap/esm/AbstractModalHeader.js","../.yarn/__virtual__/react-bootstrap-virtual-90f5534e6d/0/cache/react-bootstrap-npm-2.5.0-beta.1-00b2335a8c-eca5161fb4.zip/node_modules/react-bootstrap/esm/OffcanvasHeader.js","../.yarn/__virtual__/react-bootstrap-virtual-90f5534e6d/0/cache/react-bootstrap-npm-2.5.0-beta.1-00b2335a8c-eca5161fb4.zip/node_modules/react-bootstrap/esm/OffcanvasTitle.js","../.yarn/cache/dom-helpers-npm-5.2.1-b38bb4470b-863ba9e086.zip/node_modules/dom-helpers/esm/hasClass.js","../.yarn/cache/dom-helpers-npm-5.2.1-b38bb4470b-863ba9e086.zip/node_modules/dom-helpers/esm/querySelectorAll.js","../.yarn/cache/dom-helpers-npm-5.2.1-b38bb4470b-863ba9e086.zip/node_modules/dom-helpers/esm/removeClass.js","../.yarn/__virtual__/react-bootstrap-virtual-90f5534e6d/0/cache/react-bootstrap-npm-2.5.0-beta.1-00b2335a8c-eca5161fb4.zip/node_modules/react-bootstrap/esm/BootstrapModalManager.js","../.yarn/cache/dom-helpers-npm-5.2.1-b38bb4470b-863ba9e086.zip/node_modules/dom-helpers/esm/addClass.js","../.yarn/__virtual__/react-bootstrap-virtual-90f5534e6d/0/cache/react-bootstrap-npm-2.5.0-beta.1-00b2335a8c-eca5161fb4.zip/node_modules/react-bootstrap/esm/Offcanvas.js","../.yarn/__virtual__/react-bootstrap-virtual-90f5534e6d/0/cache/react-bootstrap-npm-2.5.0-beta.1-00b2335a8c-eca5161fb4.zip/node_modules/react-bootstrap/esm/NavbarOffcanvas.js","../.yarn/__virtual__/react-bootstrap-virtual-90f5534e6d/0/cache/react-bootstrap-npm-2.5.0-beta.1-00b2335a8c-eca5161fb4.zip/node_modules/react-bootstrap/esm/Navbar.js","../.yarn/__virtual__/@restart-hooks-virtual-82f0edbd7f/0/cache/@restart-hooks-npm-0.4.8-9cba42535b-570b268330.zip/node_modules/@restart/hooks/esm/useForceUpdate.js","../.yarn/__virtual__/@restart-ui-virtual-8adc8352d3/0/cache/@restart-ui-npm-1.5.4-96c468aa03-98deefa779.zip/node_modules/@restart/ui/esm/NavContext.js","../.yarn/__virtual__/@restart-ui-virtual-8adc8352d3/0/cache/@restart-ui-npm-1.5.4-96c468aa03-98deefa779.zip/node_modules/@restart/ui/esm/TabContext.js","../.yarn/__virtual__/@restart-ui-virtual-8adc8352d3/0/cache/@restart-ui-npm-1.5.4-96c468aa03-98deefa779.zip/node_modules/@restart/ui/esm/NavItem.js","../.yarn/__virtual__/@restart-ui-virtual-8adc8352d3/0/cache/@restart-ui-npm-1.5.4-96c468aa03-98deefa779.zip/node_modules/@restart/ui/esm/Nav.js","../.yarn/__virtual__/react-bootstrap-virtual-90f5534e6d/0/cache/react-bootstrap-npm-2.5.0-beta.1-00b2335a8c-eca5161fb4.zip/node_modules/react-bootstrap/esm/NavItem.js","../.yarn/__virtual__/@restart-hooks-virtual-82f0edbd7f/0/cache/@restart-hooks-npm-0.4.8-9cba42535b-570b268330.zip/node_modules/@restart/hooks/esm/useCallbackRef.js","../.yarn/__virtual__/@restart-hooks-virtual-82f0edbd7f/0/cache/@restart-hooks-npm-0.4.8-9cba42535b-570b268330.zip/node_modules/@restart/hooks/esm/useResizeObserver.js","../.yarn/__virtual__/@restart-ui-virtual-8adc8352d3/0/cache/@restart-ui-npm-1.5.4-96c468aa03-98deefa779.zip/node_modules/@restart/ui/esm/Anchor.js","../.yarn/__virtual__/react-bootstrap-virtual-90f5534e6d/0/cache/react-bootstrap-npm-2.5.0-beta.1-00b2335a8c-eca5161fb4.zip/node_modules/react-bootstrap/esm/NavLink.js","../.yarn/__virtual__/react-bootstrap-virtual-90f5534e6d/0/cache/react-bootstrap-npm-2.5.0-beta.1-00b2335a8c-eca5161fb4.zip/node_modules/react-bootstrap/esm/Nav.js","components/layouts/components/Footer.js","components/layouts/Auth.js","components/Routing/components/UserContext.js","utils/constants/roles.ts","components/Routing/components/PublicRoute.js","../.yarn/__virtual__/react-bootstrap-virtual-90f5534e6d/0/cache/react-bootstrap-npm-2.5.0-beta.1-00b2335a8c-eca5161fb4.zip/node_modules/react-bootstrap/esm/InputGroupContext.js","../.yarn/__virtual__/react-bootstrap-virtual-90f5534e6d/0/cache/react-bootstrap-npm-2.5.0-beta.1-00b2335a8c-eca5161fb4.zip/node_modules/react-bootstrap/esm/InputGroup.js","../.yarn/__virtual__/@restart-ui-virtual-8adc8352d3/0/cache/@restart-ui-npm-1.5.4-96c468aa03-98deefa779.zip/node_modules/@restart/ui/esm/DropdownContext.js","../.yarn/cache/dequal-npm-2.0.3-53a630c60e-8679b850e1.zip/node_modules/dequal/dist/index.mjs","../.yarn/__virtual__/@restart-hooks-virtual-82f0edbd7f/0/cache/@restart-hooks-npm-0.4.8-9cba42535b-570b268330.zip/node_modules/@restart/hooks/esm/useSafeState.js","../.yarn/cache/@popperjs-core-npm-2.11.6-5bcdc104bd-47fb328cec.zip/node_modules/@popperjs/core/lib/utils/getBasePlacement.js","../.yarn/cache/@popperjs-core-npm-2.11.6-5bcdc104bd-47fb328cec.zip/node_modules/@popperjs/core/lib/dom-utils/getWindow.js","../.yarn/cache/@popperjs-core-npm-2.11.6-5bcdc104bd-47fb328cec.zip/node_modules/@popperjs/core/lib/dom-utils/instanceOf.js","../.yarn/cache/@popperjs-core-npm-2.11.6-5bcdc104bd-47fb328cec.zip/node_modules/@popperjs/core/lib/utils/math.js","../.yarn/cache/@popperjs-core-npm-2.11.6-5bcdc104bd-47fb328cec.zip/node_modules/@popperjs/core/lib/utils/userAgent.js","../.yarn/cache/@popperjs-core-npm-2.11.6-5bcdc104bd-47fb328cec.zip/node_modules/@popperjs/core/lib/dom-utils/isLayoutViewport.js","../.yarn/cache/@popperjs-core-npm-2.11.6-5bcdc104bd-47fb328cec.zip/node_modules/@popperjs/core/lib/dom-utils/getBoundingClientRect.js","../.yarn/cache/@popperjs-core-npm-2.11.6-5bcdc104bd-47fb328cec.zip/node_modules/@popperjs/core/lib/dom-utils/getLayoutRect.js","../.yarn/cache/@popperjs-core-npm-2.11.6-5bcdc104bd-47fb328cec.zip/node_modules/@popperjs/core/lib/dom-utils/contains.js","../.yarn/cache/@popperjs-core-npm-2.11.6-5bcdc104bd-47fb328cec.zip/node_modules/@popperjs/core/lib/dom-utils/getNodeName.js","../.yarn/cache/@popperjs-core-npm-2.11.6-5bcdc104bd-47fb328cec.zip/node_modules/@popperjs/core/lib/dom-utils/getComputedStyle.js","../.yarn/cache/@popperjs-core-npm-2.11.6-5bcdc104bd-47fb328cec.zip/node_modules/@popperjs/core/lib/dom-utils/isTableElement.js","../.yarn/cache/@popperjs-core-npm-2.11.6-5bcdc104bd-47fb328cec.zip/node_modules/@popperjs/core/lib/dom-utils/getDocumentElement.js","../.yarn/cache/@popperjs-core-npm-2.11.6-5bcdc104bd-47fb328cec.zip/node_modules/@popperjs/core/lib/dom-utils/getParentNode.js","../.yarn/cache/@popperjs-core-npm-2.11.6-5bcdc104bd-47fb328cec.zip/node_modules/@popperjs/core/lib/dom-utils/getOffsetParent.js","../.yarn/cache/@popperjs-core-npm-2.11.6-5bcdc104bd-47fb328cec.zip/node_modules/@popperjs/core/lib/utils/getMainAxisFromPlacement.js","../.yarn/cache/@popperjs-core-npm-2.11.6-5bcdc104bd-47fb328cec.zip/node_modules/@popperjs/core/lib/utils/within.js","../.yarn/cache/@popperjs-core-npm-2.11.6-5bcdc104bd-47fb328cec.zip/node_modules/@popperjs/core/lib/utils/mergePaddingObject.js","../.yarn/cache/@popperjs-core-npm-2.11.6-5bcdc104bd-47fb328cec.zip/node_modules/@popperjs/core/lib/utils/getFreshSideObject.js","../.yarn/cache/@popperjs-core-npm-2.11.6-5bcdc104bd-47fb328cec.zip/node_modules/@popperjs/core/lib/utils/expandToHashMap.js","../.yarn/cache/@popperjs-core-npm-2.11.6-5bcdc104bd-47fb328cec.zip/node_modules/@popperjs/core/lib/enums.js","../.yarn/cache/@popperjs-core-npm-2.11.6-5bcdc104bd-47fb328cec.zip/node_modules/@popperjs/core/lib/modifiers/arrow.js","../.yarn/cache/@popperjs-core-npm-2.11.6-5bcdc104bd-47fb328cec.zip/node_modules/@popperjs/core/lib/utils/getVariation.js","../.yarn/cache/@popperjs-core-npm-2.11.6-5bcdc104bd-47fb328cec.zip/node_modules/@popperjs/core/lib/modifiers/computeStyles.js","../.yarn/cache/@popperjs-core-npm-2.11.6-5bcdc104bd-47fb328cec.zip/node_modules/@popperjs/core/lib/modifiers/eventListeners.js","../.yarn/cache/@popperjs-core-npm-2.11.6-5bcdc104bd-47fb328cec.zip/node_modules/@popperjs/core/lib/utils/getOppositePlacement.js","../.yarn/cache/@popperjs-core-npm-2.11.6-5bcdc104bd-47fb328cec.zip/node_modules/@popperjs/core/lib/utils/getOppositeVariationPlacement.js","../.yarn/cache/@popperjs-core-npm-2.11.6-5bcdc104bd-47fb328cec.zip/node_modules/@popperjs/core/lib/dom-utils/getWindowScroll.js","../.yarn/cache/@popperjs-core-npm-2.11.6-5bcdc104bd-47fb328cec.zip/node_modules/@popperjs/core/lib/dom-utils/getWindowScrollBarX.js","../.yarn/cache/@popperjs-core-npm-2.11.6-5bcdc104bd-47fb328cec.zip/node_modules/@popperjs/core/lib/dom-utils/isScrollParent.js","../.yarn/cache/@popperjs-core-npm-2.11.6-5bcdc104bd-47fb328cec.zip/node_modules/@popperjs/core/lib/dom-utils/getScrollParent.js","../.yarn/cache/@popperjs-core-npm-2.11.6-5bcdc104bd-47fb328cec.zip/node_modules/@popperjs/core/lib/dom-utils/listScrollParents.js","../.yarn/cache/@popperjs-core-npm-2.11.6-5bcdc104bd-47fb328cec.zip/node_modules/@popperjs/core/lib/utils/rectToClientRect.js","../.yarn/cache/@popperjs-core-npm-2.11.6-5bcdc104bd-47fb328cec.zip/node_modules/@popperjs/core/lib/dom-utils/getClippingRect.js","../.yarn/cache/@popperjs-core-npm-2.11.6-5bcdc104bd-47fb328cec.zip/node_modules/@popperjs/core/lib/dom-utils/getViewportRect.js","../.yarn/cache/@popperjs-core-npm-2.11.6-5bcdc104bd-47fb328cec.zip/node_modules/@popperjs/core/lib/dom-utils/getDocumentRect.js","../.yarn/cache/@popperjs-core-npm-2.11.6-5bcdc104bd-47fb328cec.zip/node_modules/@popperjs/core/lib/utils/computeOffsets.js","../.yarn/cache/@popperjs-core-npm-2.11.6-5bcdc104bd-47fb328cec.zip/node_modules/@popperjs/core/lib/utils/detectOverflow.js","../.yarn/cache/@popperjs-core-npm-2.11.6-5bcdc104bd-47fb328cec.zip/node_modules/@popperjs/core/lib/modifiers/flip.js","../.yarn/cache/@popperjs-core-npm-2.11.6-5bcdc104bd-47fb328cec.zip/node_modules/@popperjs/core/lib/utils/computeAutoPlacement.js","../.yarn/cache/@popperjs-core-npm-2.11.6-5bcdc104bd-47fb328cec.zip/node_modules/@popperjs/core/lib/modifiers/hide.js","../.yarn/cache/@popperjs-core-npm-2.11.6-5bcdc104bd-47fb328cec.zip/node_modules/@popperjs/core/lib/modifiers/offset.js","../.yarn/cache/@popperjs-core-npm-2.11.6-5bcdc104bd-47fb328cec.zip/node_modules/@popperjs/core/lib/modifiers/popperOffsets.js","../.yarn/cache/@popperjs-core-npm-2.11.6-5bcdc104bd-47fb328cec.zip/node_modules/@popperjs/core/lib/modifiers/preventOverflow.js","../.yarn/cache/@popperjs-core-npm-2.11.6-5bcdc104bd-47fb328cec.zip/node_modules/@popperjs/core/lib/utils/getAltAxis.js","../.yarn/cache/@popperjs-core-npm-2.11.6-5bcdc104bd-47fb328cec.zip/node_modules/@popperjs/core/lib/dom-utils/getCompositeRect.js","../.yarn/cache/@popperjs-core-npm-2.11.6-5bcdc104bd-47fb328cec.zip/node_modules/@popperjs/core/lib/dom-utils/getNodeScroll.js","../.yarn/cache/@popperjs-core-npm-2.11.6-5bcdc104bd-47fb328cec.zip/node_modules/@popperjs/core/lib/dom-utils/getHTMLElementScroll.js","../.yarn/cache/@popperjs-core-npm-2.11.6-5bcdc104bd-47fb328cec.zip/node_modules/@popperjs/core/lib/utils/orderModifiers.js","../.yarn/cache/@popperjs-core-npm-2.11.6-5bcdc104bd-47fb328cec.zip/node_modules/@popperjs/core/lib/utils/debounce.js","../.yarn/cache/@popperjs-core-npm-2.11.6-5bcdc104bd-47fb328cec.zip/node_modules/@popperjs/core/lib/createPopper.js","../.yarn/cache/@popperjs-core-npm-2.11.6-5bcdc104bd-47fb328cec.zip/node_modules/@popperjs/core/lib/utils/mergeByName.js","../.yarn/__virtual__/@restart-ui-virtual-8adc8352d3/0/cache/@restart-ui-npm-1.5.4-96c468aa03-98deefa779.zip/node_modules/@restart/ui/esm/popper.js","../.yarn/__virtual__/@restart-ui-virtual-8adc8352d3/0/cache/@restart-ui-npm-1.5.4-96c468aa03-98deefa779.zip/node_modules/@restart/ui/esm/usePopper.js","../.yarn/__virtual__/@restart-ui-virtual-8adc8352d3/0/cache/@restart-ui-npm-1.5.4-96c468aa03-98deefa779.zip/node_modules/@restart/ui/esm/useClickOutside.js","../.yarn/__virtual__/@restart-ui-virtual-8adc8352d3/0/cache/@restart-ui-npm-1.5.4-96c468aa03-98deefa779.zip/node_modules/@restart/ui/esm/mergeOptionsWithPopperConfig.js","../.yarn/__virtual__/@restart-ui-virtual-8adc8352d3/0/cache/@restart-ui-npm-1.5.4-96c468aa03-98deefa779.zip/node_modules/@restart/ui/esm/DropdownMenu.js","../.yarn/__virtual__/@react-aria-ssr-virtual-3d3d7b294c/0/cache/@react-aria-ssr-npm-3.4.1-a2293267ca-3421951446.zip/node_modules/@react-aria/ssr/dist/packages/@react-aria/ssr/src/SSRProvider.tsx","../.yarn/__virtual__/@restart-ui-virtual-8adc8352d3/0/cache/@restart-ui-npm-1.5.4-96c468aa03-98deefa779.zip/node_modules/@restart/ui/esm/DropdownToggle.js","../.yarn/__virtual__/@restart-ui-virtual-8adc8352d3/0/cache/@restart-ui-npm-1.5.4-96c468aa03-98deefa779.zip/node_modules/@restart/ui/esm/DropdownItem.js","../.yarn/__virtual__/@restart-ui-virtual-8adc8352d3/0/cache/@restart-ui-npm-1.5.4-96c468aa03-98deefa779.zip/node_modules/@restart/ui/esm/Dropdown.js","../.yarn/__virtual__/@restart-hooks-virtual-82f0edbd7f/0/cache/@restart-hooks-npm-0.4.8-9cba42535b-570b268330.zip/node_modules/@restart/hooks/esm/useEventListener.js","../.yarn/__virtual__/react-bootstrap-virtual-90f5534e6d/0/cache/react-bootstrap-npm-2.5.0-beta.1-00b2335a8c-eca5161fb4.zip/node_modules/react-bootstrap/esm/DropdownContext.js","../.yarn/__virtual__/react-bootstrap-virtual-90f5534e6d/0/cache/react-bootstrap-npm-2.5.0-beta.1-00b2335a8c-eca5161fb4.zip/node_modules/react-bootstrap/esm/DropdownItem.js","../.yarn/__virtual__/react-bootstrap-virtual-90f5534e6d/0/cache/react-bootstrap-npm-2.5.0-beta.1-00b2335a8c-eca5161fb4.zip/node_modules/react-bootstrap/esm/useWrappedRefWithWarning.js","../.yarn/__virtual__/react-bootstrap-virtual-90f5534e6d/0/cache/react-bootstrap-npm-2.5.0-beta.1-00b2335a8c-eca5161fb4.zip/node_modules/react-bootstrap/esm/DropdownMenu.js","../.yarn/__virtual__/react-bootstrap-virtual-90f5534e6d/0/cache/react-bootstrap-npm-2.5.0-beta.1-00b2335a8c-eca5161fb4.zip/node_modules/react-bootstrap/esm/DropdownToggle.js","../.yarn/__virtual__/react-bootstrap-virtual-90f5534e6d/0/cache/react-bootstrap-npm-2.5.0-beta.1-00b2335a8c-eca5161fb4.zip/node_modules/react-bootstrap/esm/Dropdown.js","../.yarn/__virtual__/react-bootstrap-icons-virtual-5b477522f0/0/cache/react-bootstrap-icons-npm-1.10.2-6996fc584c-eead5ae023.zip/node_modules/react-bootstrap-icons/dist/icons/search.js","../.yarn/__virtual__/react-bootstrap-icons-virtual-5b477522f0/0/cache/react-bootstrap-icons-npm-1.10.2-6996fc584c-eead5ae023.zip/node_modules/react-bootstrap-icons/dist/icons/box-arrow-up-right.js","../.yarn/__virtual__/react-bootstrap-icons-virtual-5b477522f0/0/cache/react-bootstrap-icons-npm-1.10.2-6996fc584c-eead5ae023.zip/node_modules/react-bootstrap-icons/dist/icons/person.js","../.yarn/__virtual__/react-bootstrap-icons-virtual-5b477522f0/0/cache/react-bootstrap-icons-npm-1.10.2-6996fc584c-eead5ae023.zip/node_modules/react-bootstrap-icons/dist/icons/house.js","../.yarn/__virtual__/react-bootstrap-icons-virtual-5b477522f0/0/cache/react-bootstrap-icons-npm-1.10.2-6996fc584c-eead5ae023.zip/node_modules/react-bootstrap-icons/dist/icons/upload.js","../.yarn/__virtual__/react-bootstrap-icons-virtual-5b477522f0/0/cache/react-bootstrap-icons-npm-1.10.2-6996fc584c-eead5ae023.zip/node_modules/react-bootstrap-icons/dist/icons/people-fill.js","../.yarn/__virtual__/react-bootstrap-icons-virtual-5b477522f0/0/cache/react-bootstrap-icons-npm-1.10.2-6996fc584c-eead5ae023.zip/node_modules/react-bootstrap-icons/dist/icons/activity.js","../.yarn/__virtual__/react-bootstrap-icons-virtual-5b477522f0/0/cache/react-bootstrap-icons-npm-1.10.2-6996fc584c-eead5ae023.zip/node_modules/react-bootstrap-icons/dist/icons/archive.js","../.yarn/__virtual__/react-bootstrap-icons-virtual-5b477522f0/0/cache/react-bootstrap-icons-npm-1.10.2-6996fc584c-eead5ae023.zip/node_modules/react-bootstrap-icons/dist/icons/file-earmark-plus.js","../.yarn/__virtual__/react-bootstrap-icons-virtual-5b477522f0/0/cache/react-bootstrap-icons-npm-1.10.2-6996fc584c-eead5ae023.zip/node_modules/react-bootstrap-icons/dist/icons/files.js","../.yarn/__virtual__/react-bootstrap-icons-virtual-5b477522f0/0/cache/react-bootstrap-icons-npm-1.10.2-6996fc584c-eead5ae023.zip/node_modules/react-bootstrap-icons/dist/icons/folder2-open.js","../.yarn/__virtual__/react-bootstrap-icons-virtual-5b477522f0/0/cache/react-bootstrap-icons-npm-1.10.2-6996fc584c-eead5ae023.zip/node_modules/react-bootstrap-icons/dist/icons/journal-text.js","../.yarn/__virtual__/react-bootstrap-icons-virtual-5b477522f0/0/cache/react-bootstrap-icons-npm-1.10.2-6996fc584c-eead5ae023.zip/node_modules/react-bootstrap-icons/dist/icons/credit-card.js","../.yarn/__virtual__/react-bootstrap-icons-virtual-5b477522f0/0/cache/react-bootstrap-icons-npm-1.10.2-6996fc584c-eead5ae023.zip/node_modules/react-bootstrap-icons/dist/icons/window-stack.js","../.yarn/__virtual__/react-bootstrap-icons-virtual-5b477522f0/0/cache/react-bootstrap-icons-npm-1.10.2-6996fc584c-eead5ae023.zip/node_modules/react-bootstrap-icons/dist/icons/controller.js","../.yarn/__virtual__/react-bootstrap-virtual-90f5534e6d/0/cache/react-bootstrap-npm-2.5.0-beta.1-00b2335a8c-eca5161fb4.zip/node_modules/react-bootstrap/esm/Table.js","../.yarn/__virtual__/react-bootstrap-icons-virtual-5b477522f0/0/cache/react-bootstrap-icons-npm-1.10.2-6996fc584c-eead5ae023.zip/node_modules/react-bootstrap-icons/dist/icons/arrow-right-short.js","scenes/Dashboard/graphql/getDashboard.ts","scenes/Dashboard/index.tsx","../.yarn/__virtual__/react-bootstrap-virtual-90f5534e6d/0/cache/react-bootstrap-npm-2.5.0-beta.1-00b2335a8c-eca5161fb4.zip/node_modules/react-bootstrap/esm/Alert.js","scenes/Import/Faqs.tsx","../.yarn/__virtual__/react-bootstrap-icons-virtual-5b477522f0/0/cache/react-bootstrap-icons-npm-1.10.2-6996fc584c-eead5ae023.zip/node_modules/react-bootstrap-icons/dist/icons/download.js","../.yarn/__virtual__/react-bootstrap-icons-virtual-5b477522f0/0/cache/react-bootstrap-icons-npm-1.10.2-6996fc584c-eead5ae023.zip/node_modules/react-bootstrap-icons/dist/icons/file-earmark-check.js","../.yarn/__virtual__/react-bootstrap-icons-virtual-5b477522f0/0/cache/react-bootstrap-icons-npm-1.10.2-6996fc584c-eead5ae023.zip/node_modules/react-bootstrap-icons/dist/icons/x.js","components/FileDropArea/FileDropArea.tsx","scenes/Import/UploadCSV/index.tsx","scenes/Import/createCsv.ts","scenes/Import/csvHeader.js","../.yarn/__virtual__/react-bootstrap-icons-virtual-5b477522f0/0/cache/react-bootstrap-icons-npm-1.10.2-6996fc584c-eead5ae023.zip/node_modules/react-bootstrap-icons/dist/icons/info-circle-fill.js","scenes/Import/ImportHelp.tsx","scenes/Import/lib.ts","scenes/Import/PasteCSV/PasteCSVTextarea.tsx","scenes/Import/PasteCSV/index.tsx","../.yarn/cache/nanoid-npm-3.3.4-3d250377d6-2fddd6dee9.zip/node_modules/nanoid/index.browser.js","scenes/Import/ManualImport/InputRow.tsx","scenes/Import/ManualImport/index.tsx","scenes/Import/index.tsx","../.yarn/__virtual__/react-bootstrap-icons-virtual-5b477522f0/0/cache/react-bootstrap-icons-npm-1.10.2-6996fc584c-eead5ae023.zip/node_modules/react-bootstrap-icons/dist/icons/filetype-csv.js","../.yarn/__virtual__/react-bootstrap-icons-virtual-5b477522f0/0/cache/react-bootstrap-icons-npm-1.10.2-6996fc584c-eead5ae023.zip/node_modules/react-bootstrap-icons/dist/icons/check-lg.js","scenes/TrackedDebtors/graphql/getJobStatus.ts","scenes/TrackedDebtors/ImportProgress.tsx","../.yarn/__virtual__/@restart-hooks-virtual-82f0edbd7f/0/cache/@restart-hooks-npm-0.4.8-9cba42535b-570b268330.zip/node_modules/@restart/hooks/esm/useTimeout.js","../.yarn/__virtual__/@restart-ui-virtual-8adc8352d3/0/cache/@restart-ui-npm-1.5.4-96c468aa03-98deefa779.zip/node_modules/@restart/ui/esm/useRootClose.js","../.yarn/__virtual__/@restart-ui-virtual-8adc8352d3/0/cache/@restart-ui-npm-1.5.4-96c468aa03-98deefa779.zip/node_modules/@restart/ui/esm/Overlay.js","../.yarn/__virtual__/react-bootstrap-virtual-90f5534e6d/0/cache/react-bootstrap-npm-2.5.0-beta.1-00b2335a8c-eca5161fb4.zip/node_modules/react-bootstrap/esm/PopoverHeader.js","../.yarn/__virtual__/react-bootstrap-virtual-90f5534e6d/0/cache/react-bootstrap-npm-2.5.0-beta.1-00b2335a8c-eca5161fb4.zip/node_modules/react-bootstrap/esm/PopoverBody.js","../.yarn/__virtual__/react-bootstrap-virtual-90f5534e6d/0/cache/react-bootstrap-npm-2.5.0-beta.1-00b2335a8c-eca5161fb4.zip/node_modules/react-bootstrap/esm/helpers.js","../.yarn/__virtual__/react-bootstrap-virtual-90f5534e6d/0/cache/react-bootstrap-npm-2.5.0-beta.1-00b2335a8c-eca5161fb4.zip/node_modules/react-bootstrap/esm/Popover.js","../.yarn/__virtual__/react-bootstrap-virtual-90f5534e6d/0/cache/react-bootstrap-npm-2.5.0-beta.1-00b2335a8c-eca5161fb4.zip/node_modules/react-bootstrap/esm/Overlay.js","../.yarn/__virtual__/react-bootstrap-virtual-90f5534e6d/0/cache/react-bootstrap-npm-2.5.0-beta.1-00b2335a8c-eca5161fb4.zip/node_modules/react-bootstrap/esm/useOverlayOffset.js","../.yarn/__virtual__/react-bootstrap-virtual-90f5534e6d/0/cache/react-bootstrap-npm-2.5.0-beta.1-00b2335a8c-eca5161fb4.zip/node_modules/react-bootstrap/esm/OverlayTrigger.js","../.yarn/__virtual__/react-bootstrap-virtual-90f5534e6d/0/cache/react-bootstrap-npm-2.5.0-beta.1-00b2335a8c-eca5161fb4.zip/node_modules/react-bootstrap/esm/Tooltip.js","../.yarn/__virtual__/react-bootstrap-virtual-90f5534e6d/0/cache/react-bootstrap-npm-2.5.0-beta.1-00b2335a8c-eca5161fb4.zip/node_modules/react-bootstrap/esm/ButtonGroup.js","../.yarn/__virtual__/react-bootstrap-icons-virtual-5b477522f0/0/cache/react-bootstrap-icons-npm-1.10.2-6996fc584c-eead5ae023.zip/node_modules/react-bootstrap-icons/dist/icons/arrow-clockwise.js","../.yarn/__virtual__/react-bootstrap-icons-virtual-5b477522f0/0/cache/react-bootstrap-icons-npm-1.10.2-6996fc584c-eead5ae023.zip/node_modules/react-bootstrap-icons/dist/icons/pencil-square.js","../.yarn/__virtual__/react-bootstrap-icons-virtual-5b477522f0/0/cache/react-bootstrap-icons-npm-1.10.2-6996fc584c-eead5ae023.zip/node_modules/react-bootstrap-icons/dist/icons/trash.js","../.yarn/__virtual__/react-bootstrap-icons-virtual-5b477522f0/0/cache/react-bootstrap-icons-npm-1.10.2-6996fc584c-eead5ae023.zip/node_modules/react-bootstrap-icons/dist/icons/caret-down-fill.js","../.yarn/__virtual__/react-bootstrap-icons-virtual-5b477522f0/0/cache/react-bootstrap-icons-npm-1.10.2-6996fc584c-eead5ae023.zip/node_modules/react-bootstrap-icons/dist/icons/caret-up-fill.js","../.yarn/__virtual__/react-bootstrap-icons-virtual-5b477522f0/0/cache/react-bootstrap-icons-npm-1.10.2-6996fc584c-eead5ae023.zip/node_modules/react-bootstrap-icons/dist/icons/arrow-up-circle-fill.js","../.yarn/__virtual__/react-bootstrap-virtual-90f5534e6d/0/cache/react-bootstrap-npm-2.5.0-beta.1-00b2335a8c-eca5161fb4.zip/node_modules/react-bootstrap/esm/PageItem.js","../.yarn/__virtual__/react-bootstrap-virtual-90f5534e6d/0/cache/react-bootstrap-npm-2.5.0-beta.1-00b2335a8c-eca5161fb4.zip/node_modules/react-bootstrap/esm/Pagination.js","../.yarn/cache/dom-helpers-npm-5.2.1-b38bb4470b-863ba9e086.zip/node_modules/dom-helpers/esm/scrollbarSize.js","components/atoms/Pagination/Pagination.js","components/PageSize.tsx","../.yarn/__virtual__/react-bootstrap-virtual-90f5534e6d/0/cache/react-bootstrap-npm-2.5.0-beta.1-00b2335a8c-eca5161fb4.zip/node_modules/react-bootstrap/esm/ModalBody.js","../.yarn/__virtual__/react-bootstrap-virtual-90f5534e6d/0/cache/react-bootstrap-npm-2.5.0-beta.1-00b2335a8c-eca5161fb4.zip/node_modules/react-bootstrap/esm/ModalDialog.js","../.yarn/__virtual__/react-bootstrap-virtual-90f5534e6d/0/cache/react-bootstrap-npm-2.5.0-beta.1-00b2335a8c-eca5161fb4.zip/node_modules/react-bootstrap/esm/ModalFooter.js","../.yarn/__virtual__/react-bootstrap-virtual-90f5534e6d/0/cache/react-bootstrap-npm-2.5.0-beta.1-00b2335a8c-eca5161fb4.zip/node_modules/react-bootstrap/esm/ModalHeader.js","../.yarn/__virtual__/react-bootstrap-virtual-90f5534e6d/0/cache/react-bootstrap-npm-2.5.0-beta.1-00b2335a8c-eca5161fb4.zip/node_modules/react-bootstrap/esm/ModalTitle.js","../.yarn/__virtual__/react-bootstrap-virtual-90f5534e6d/0/cache/react-bootstrap-npm-2.5.0-beta.1-00b2335a8c-eca5161fb4.zip/node_modules/react-bootstrap/esm/Modal.js","components/ConfirmModal/index.js","components/IndeterminateCheckbox.tsx","components/SearchInput/SearchInput.tsx","components/CustomCheckbox/CustomCheckbox.tsx","scenes/TrackedDebtors/graphql/editTrackedDebtor.ts","scenes/TrackedDebtors/ModifyRecordModal.tsx","scenes/TrackedDebtors/graphql/listTrackedDebtors.ts","scenes/TrackedDebtors/graphql/deleteTrackedDebtors.ts","scenes/TrackedDebtors/graphql/deleteAllTrackedDebtors.ts","scenes/TrackedDebtors/TrackedDebtors.tsx","../.yarn/__virtual__/react-bootstrap-virtual-90f5534e6d/0/cache/react-bootstrap-npm-2.5.0-beta.1-00b2335a8c-eca5161fb4.zip/node_modules/react-bootstrap/esm/Badge.js","scenes/TrackedDebtors/graphql/listImportJobs.ts","scenes/TrackedDebtors/ImportJobs.tsx","scenes/TrackedDebtors/graphql/listPendingJobs.ts","../.yarn/__virtual__/react-bootstrap-icons-virtual-5b477522f0/0/cache/react-bootstrap-icons-npm-1.10.2-6996fc584c-eead5ae023.zip/node_modules/react-bootstrap-icons/dist/icons/x-lg.js","webpack://app.bkalerts/./src/scenes/Matches/HarveyBall.module.css?5257","scenes/Matches/HarveyBall.tsx","scenes/Matches/graphql/listTrackedDebtorsMatches.ts","scenes/Matches/index.tsx","../.yarn/__virtual__/react-bootstrap-icons-virtual-5b477522f0/0/cache/react-bootstrap-icons-npm-1.10.2-6996fc584c-eead5ae023.zip/node_modules/react-bootstrap-icons/dist/icons/arrow-left.js","../.yarn/__virtual__/react-bootstrap-icons-virtual-5b477522f0/0/cache/react-bootstrap-icons-npm-1.10.2-6996fc584c-eead5ae023.zip/node_modules/react-bootstrap-icons/dist/icons/cloud-arrow-up.js","../.yarn/__virtual__/react-bootstrap-icons-virtual-5b477522f0/0/cache/react-bootstrap-icons-npm-1.10.2-6996fc584c-eead5ae023.zip/node_modules/react-bootstrap-icons/dist/icons/filetype-pdf.js","../.yarn/__virtual__/react-bootstrap-icons-virtual-5b477522f0/0/cache/react-bootstrap-icons-npm-1.10.2-6996fc584c-eead5ae023.zip/node_modules/react-bootstrap-icons/dist/icons/cloud-check.js","../.yarn/__virtual__/react-bootstrap-icons-virtual-5b477522f0/0/cache/react-bootstrap-icons-npm-1.10.2-6996fc584c-eead5ae023.zip/node_modules/react-bootstrap-icons/dist/icons/check.js","../.yarn/__virtual__/react-select-virtual-392434f047/0/cache/react-select-npm-5.7.0-1bd3ca6f36-3d29f7bb6d.zip/node_modules/react-select/dist/useStateManager-7e1e8489.esm.js","../.yarn/cache/@emotion-sheet-npm-1.2.1-ede8a680b2-ce78763588.zip/node_modules/@emotion/sheet/dist/emotion-sheet.browser.esm.js","../.yarn/cache/stylis-npm-4.1.3-c3e2662f97-d04dbffcb9.zip/node_modules/stylis/src/Utility.js","../.yarn/cache/stylis-npm-4.1.3-c3e2662f97-d04dbffcb9.zip/node_modules/stylis/src/Tokenizer.js","../.yarn/cache/stylis-npm-4.1.3-c3e2662f97-d04dbffcb9.zip/node_modules/stylis/src/Enum.js","../.yarn/cache/stylis-npm-4.1.3-c3e2662f97-d04dbffcb9.zip/node_modules/stylis/src/Serializer.js","../.yarn/cache/stylis-npm-4.1.3-c3e2662f97-d04dbffcb9.zip/node_modules/stylis/src/Parser.js","../.yarn/cache/@emotion-cache-npm-11.10.5-e5bc83f178-1dd2d9af2d.zip/node_modules/@emotion/cache/dist/emotion-cache.browser.esm.js","../.yarn/cache/stylis-npm-4.1.3-c3e2662f97-d04dbffcb9.zip/node_modules/stylis/src/Middleware.js","../.yarn/cache/@emotion-utils-npm-1.2.0-337992f692-55457a49dd.zip/node_modules/@emotion/utils/dist/emotion-utils.browser.esm.js","../.yarn/cache/@emotion-hash-npm-0.9.0-efbc0b3f3f-b63428f7c8.zip/node_modules/@emotion/hash/dist/emotion-hash.esm.js","../.yarn/cache/@emotion-unitless-npm-0.8.0-aa125284fa-176141117e.zip/node_modules/@emotion/unitless/dist/emotion-unitless.esm.js","../.yarn/cache/@emotion-memoize-npm-0.8.0-c5dd451828-c87bb110b8.zip/node_modules/@emotion/memoize/dist/emotion-memoize.esm.js","../.yarn/cache/@emotion-serialize-npm-1.1.1-b082a29d71-24cfd5b16e.zip/node_modules/@emotion/serialize/dist/emotion-serialize.browser.esm.js","../.yarn/__virtual__/@emotion-use-insertion-effect-with-fallbacks-virtual-6e212c5e01/0/cache/@emotion-use-insertion-effect-with-fallbacks-npm-1.0.0-d02a7659c4-4f06a3b482.zip/node_modules/@emotion/use-insertion-effect-with-fallbacks/dist/emotion-use-insertion-effect-with-fallbacks.browser.esm.js","../.yarn/__virtual__/@emotion-react-virtual-cfc8adfcfb/0/cache/@emotion-react-npm-11.10.5-98e2cdb553-32b67b28e9.zip/node_modules/@emotion/react/dist/emotion-element-6a883da9.browser.esm.js","../.yarn/__virtual__/@emotion-react-virtual-cfc8adfcfb/0/cache/@emotion-react-npm-11.10.5-98e2cdb553-32b67b28e9.zip/node_modules/@emotion/react/dist/emotion-react.browser.esm.js","../.yarn/cache/@floating-ui-core-npm-1.1.1-a67bbe2ed6-a8497bf981.zip/node_modules/@floating-ui/core/dist/floating-ui.core.browser.min.mjs","../.yarn/cache/@floating-ui-dom-npm-1.1.1-b97ea530c5-8b7f3b98ed.zip/node_modules/@floating-ui/dom/dist/floating-ui.dom.browser.min.mjs","../.yarn/__virtual__/use-isomorphic-layout-effect-virtual-b664fbd981/0/cache/use-isomorphic-layout-effect-npm-1.1.2-65facd0a4b-a6532f7fc9.zip/node_modules/use-isomorphic-layout-effect/dist/use-isomorphic-layout-effect.browser.esm.js","../.yarn/cache/memoize-one-npm-6.0.0-8b2a2cd020-f185ea69f7.zip/node_modules/memoize-one/dist/memoize-one.esm.js","../.yarn/__virtual__/react-select-virtual-392434f047/0/cache/react-select-npm-5.7.0-1bd3ca6f36-3d29f7bb6d.zip/node_modules/react-select/dist/react-select.esm.js","scenes/Dashboard/Epoc/New/steps/SelectCase/interfaces.ts","scenes/Dashboard/Epoc/New/steps/SelectCase/graphql/getCaseCreditorsAndCourtInfos.ts","scenes/Dashboard/Epoc/New/steps/SelectCase/SelectCase.tsx","../.yarn/cache/fuse.js-npm-7.0.0-8a5f379683-d15750efec.zip/node_modules/fuse.js/dist/fuse.mjs","scenes/Dashboard/Epoc/New/steps/SelectCreditor/SelectCreditor.tsx","scenes/Dashboard/Epoc/New/steps/SelectCreditor/NewCreditor.tsx","../.yarn/cache/@popperjs-core-npm-2.11.6-5bcdc104bd-47fb328cec.zip/node_modules/@popperjs/core/lib/modifiers/applyStyles.js","../.yarn/cache/@popperjs-core-npm-2.11.6-5bcdc104bd-47fb328cec.zip/node_modules/@popperjs/core/lib/popper.js","../.yarn/cache/@popperjs-core-npm-2.11.6-5bcdc104bd-47fb328cec.zip/node_modules/@popperjs/core/lib/popper-lite.js","../.yarn/__virtual__/bootstrap-virtual-6c741bf73e/0/cache/bootstrap-npm-5.2.3-7458283a23-0211805dec.zip/node_modules/bootstrap/js/src/util/index.js","../.yarn/__virtual__/bootstrap-virtual-6c741bf73e/0/cache/bootstrap-npm-5.2.3-7458283a23-0211805dec.zip/node_modules/bootstrap/js/src/dom/event-handler.js","../.yarn/__virtual__/bootstrap-virtual-6c741bf73e/0/cache/bootstrap-npm-5.2.3-7458283a23-0211805dec.zip/node_modules/bootstrap/js/src/dom/data.js","../.yarn/__virtual__/bootstrap-virtual-6c741bf73e/0/cache/bootstrap-npm-5.2.3-7458283a23-0211805dec.zip/node_modules/bootstrap/js/src/dom/manipulator.js","../.yarn/__virtual__/bootstrap-virtual-6c741bf73e/0/cache/bootstrap-npm-5.2.3-7458283a23-0211805dec.zip/node_modules/bootstrap/js/src/util/config.js","../.yarn/__virtual__/bootstrap-virtual-6c741bf73e/0/cache/bootstrap-npm-5.2.3-7458283a23-0211805dec.zip/node_modules/bootstrap/js/src/base-component.js","../.yarn/__virtual__/bootstrap-virtual-6c741bf73e/0/cache/bootstrap-npm-5.2.3-7458283a23-0211805dec.zip/node_modules/bootstrap/js/src/util/component-functions.js","../.yarn/__virtual__/bootstrap-virtual-6c741bf73e/0/cache/bootstrap-npm-5.2.3-7458283a23-0211805dec.zip/node_modules/bootstrap/js/src/alert.js","../.yarn/__virtual__/bootstrap-virtual-6c741bf73e/0/cache/bootstrap-npm-5.2.3-7458283a23-0211805dec.zip/node_modules/bootstrap/js/src/button.js","../.yarn/__virtual__/bootstrap-virtual-6c741bf73e/0/cache/bootstrap-npm-5.2.3-7458283a23-0211805dec.zip/node_modules/bootstrap/js/src/dom/selector-engine.js","../.yarn/__virtual__/bootstrap-virtual-6c741bf73e/0/cache/bootstrap-npm-5.2.3-7458283a23-0211805dec.zip/node_modules/bootstrap/js/src/util/swipe.js","../.yarn/__virtual__/bootstrap-virtual-6c741bf73e/0/cache/bootstrap-npm-5.2.3-7458283a23-0211805dec.zip/node_modules/bootstrap/js/src/carousel.js","../.yarn/__virtual__/bootstrap-virtual-6c741bf73e/0/cache/bootstrap-npm-5.2.3-7458283a23-0211805dec.zip/node_modules/bootstrap/js/src/collapse.js","../.yarn/__virtual__/bootstrap-virtual-6c741bf73e/0/cache/bootstrap-npm-5.2.3-7458283a23-0211805dec.zip/node_modules/bootstrap/js/src/dropdown.js","../.yarn/__virtual__/bootstrap-virtual-6c741bf73e/0/cache/bootstrap-npm-5.2.3-7458283a23-0211805dec.zip/node_modules/bootstrap/js/src/util/scrollbar.js","../.yarn/__virtual__/bootstrap-virtual-6c741bf73e/0/cache/bootstrap-npm-5.2.3-7458283a23-0211805dec.zip/node_modules/bootstrap/js/src/util/backdrop.js","../.yarn/__virtual__/bootstrap-virtual-6c741bf73e/0/cache/bootstrap-npm-5.2.3-7458283a23-0211805dec.zip/node_modules/bootstrap/js/src/util/focustrap.js","../.yarn/__virtual__/bootstrap-virtual-6c741bf73e/0/cache/bootstrap-npm-5.2.3-7458283a23-0211805dec.zip/node_modules/bootstrap/js/src/modal.js","../.yarn/__virtual__/bootstrap-virtual-6c741bf73e/0/cache/bootstrap-npm-5.2.3-7458283a23-0211805dec.zip/node_modules/bootstrap/js/src/offcanvas.js","../.yarn/__virtual__/bootstrap-virtual-6c741bf73e/0/cache/bootstrap-npm-5.2.3-7458283a23-0211805dec.zip/node_modules/bootstrap/js/src/util/sanitizer.js","../.yarn/__virtual__/bootstrap-virtual-6c741bf73e/0/cache/bootstrap-npm-5.2.3-7458283a23-0211805dec.zip/node_modules/bootstrap/js/src/util/template-factory.js","../.yarn/__virtual__/bootstrap-virtual-6c741bf73e/0/cache/bootstrap-npm-5.2.3-7458283a23-0211805dec.zip/node_modules/bootstrap/js/src/tooltip.js","../.yarn/__virtual__/bootstrap-virtual-6c741bf73e/0/cache/bootstrap-npm-5.2.3-7458283a23-0211805dec.zip/node_modules/bootstrap/js/src/popover.js","../.yarn/__virtual__/bootstrap-virtual-6c741bf73e/0/cache/bootstrap-npm-5.2.3-7458283a23-0211805dec.zip/node_modules/bootstrap/js/src/scrollspy.js","../.yarn/__virtual__/bootstrap-virtual-6c741bf73e/0/cache/bootstrap-npm-5.2.3-7458283a23-0211805dec.zip/node_modules/bootstrap/js/src/tab.js","../.yarn/__virtual__/bootstrap-virtual-6c741bf73e/0/cache/bootstrap-npm-5.2.3-7458283a23-0211805dec.zip/node_modules/bootstrap/js/src/toast.js","../.yarn/__virtual__/react-bootstrap-icons-virtual-5b477522f0/0/cache/react-bootstrap-icons-npm-1.10.2-6996fc584c-eead5ae023.zip/node_modules/react-bootstrap-icons/dist/icons/exclamation-triangle.js","../.yarn/__virtual__/react-bootstrap-icons-virtual-5b477522f0/0/cache/react-bootstrap-icons-npm-1.10.2-6996fc584c-eead5ae023.zip/node_modules/react-bootstrap-icons/dist/icons/chevron-up.js","../.yarn/__virtual__/react-bootstrap-icons-virtual-5b477522f0/0/cache/react-bootstrap-icons-npm-1.10.2-6996fc584c-eead5ae023.zip/node_modules/react-bootstrap-icons/dist/icons/chevron-down.js","scenes/Dashboard/Epoc/New/steps/Documentation/interfaces.ts","scenes/Dashboard/Epoc/New/steps/Documentation/CreditorsAttorney/CreditorsAttorney.tsx","scenes/Dashboard/Epoc/New/steps/Documentation/graphql/getPreviousFiledClaims.ts","scenes/Dashboard/Epoc/New/steps/Documentation/AmendClaim.tsx","scenes/Dashboard/Epoc/New/steps/Documentation/PaymentAddress/PaymentAddress.tsx","scenes/Dashboard/Epoc/New/steps/Documentation/AmountInput.tsx","scenes/Dashboard/Epoc/New/steps/Documentation/Securities.tsx","scenes/Dashboard/Epoc/New/steps/Documentation/Priorities.tsx","../.yarn/__virtual__/react-bootstrap-icons-virtual-5b477522f0/0/cache/react-bootstrap-icons-npm-1.10.2-6996fc584c-eead5ae023.zip/node_modules/react-bootstrap-icons/dist/icons/file-earmark-pdf.js","scenes/Dashboard/Epoc/New/steps/Documentation/graphql/getEPOCAttachmentUploadUrl.ts","scenes/Dashboard/Epoc/New/steps/Documentation/Upload.tsx","../.yarn/cache/@babel-runtime-npm-7.20.13-45eeb6d8ad-09b7a97a05.zip/node_modules/@babel/runtime/helpers/esm/toArray.js","scenes/Dashboard/Epoc/New/steps/Documentation/ConfirmModal.tsx","scenes/Dashboard/Epoc/New/steps/Documentation/AutoHeightTextarea.tsx","scenes/Dashboard/Epoc/New/steps/Documentation/Documentation.tsx","scenes/Dashboard/Epoc/New/steps/interfaces.ts","../.yarn/__virtual__/react-hook-form-virtual-e015714d2b/0/cache/react-hook-form-npm-7.43.0-dba9519b33-f86ef57b4e.zip/node_modules/react-hook-form/src/useFieldArray.ts","scenes/Dashboard/Epoc/New/steps/Sign/ConfirmModal.tsx","scenes/Dashboard/Epoc/New/steps/Sign/Sign.tsx","scenes/Dashboard/Epoc/New/graphql/saveClaim.ts","scenes/Dashboard/Epoc/New/steps/Submit/index.tsx","scenes/Dashboard/Epoc/New/interfaces.ts","scenes/Dashboard/Epoc/New/StartOverModal.tsx","scenes/Dashboard/Epoc/New/PreviewModal.tsx","scenes/Dashboard/Epoc/New/graphql/saveClaimDraft.ts","scenes/Dashboard/Epoc/New/index.tsx","scenes/Dashboard/Epoc/New/graphql/discardClaimDraft.ts","scenes/Dashboard/Epoc/New/graphql/getClaimAndFilingProfiles.ts","scenes/Dashboard/Epoc/New/graphql/getFilingProfiles.ts","scenes/Dashboard/Epoc/Bulk/graphql/listClaimBatches.ts","scenes/Dashboard/Epoc/Bulk/graphql/createClaimBatch.ts","scenes/Dashboard/Epoc/Bulk/graphql/deleteClaimBatch.ts","../.yarn/__virtual__/react-bootstrap-icons-virtual-5b477522f0/0/cache/react-bootstrap-icons-npm-1.10.2-6996fc584c-eead5ae023.zip/node_modules/react-bootstrap-icons/dist/icons/check-circle-fill.js","../.yarn/__virtual__/react-bootstrap-icons-virtual-5b477522f0/0/cache/react-bootstrap-icons-npm-1.10.2-6996fc584c-eead5ae023.zip/node_modules/react-bootstrap-icons/dist/icons/send.js","../.yarn/__virtual__/react-bootstrap-icons-virtual-5b477522f0/0/cache/react-bootstrap-icons-npm-1.10.2-6996fc584c-eead5ae023.zip/node_modules/react-bootstrap-icons/dist/icons/x-circle-fill.js","../.yarn/__virtual__/mobx-react-lite-virtual-b96160c3ad/0/cache/mobx-react-lite-npm-4.0.5-b71d77db44-b0a3e4345c.zip/node_modules/mobx-react-lite/src/utils/assertEnvironment.ts","../.yarn/cache/mobx-npm-6.10.2-946dc29b68-14d6f1db4e.zip/node_modules/mobx/src/api/makeObservable.ts","../.yarn/__virtual__/mobx-react-lite-virtual-b96160c3ad/0/cache/mobx-react-lite-npm-4.0.5-b71d77db44-b0a3e4345c.zip/node_modules/mobx-react-lite/src/utils/observerBatching.ts","../.yarn/__virtual__/mobx-react-lite-virtual-b96160c3ad/0/cache/mobx-react-lite-npm-4.0.5-b71d77db44-b0a3e4345c.zip/node_modules/mobx-react-lite/src/utils/printDebugValue.ts","../.yarn/__virtual__/mobx-react-lite-virtual-b96160c3ad/0/cache/mobx-react-lite-npm-4.0.5-b71d77db44-b0a3e4345c.zip/node_modules/mobx-react-lite/src/staticRendering.ts","../.yarn/__virtual__/mobx-react-lite-virtual-b96160c3ad/0/cache/mobx-react-lite-npm-4.0.5-b71d77db44-b0a3e4345c.zip/node_modules/mobx-react-lite/src/utils/UniversalFinalizationRegistry.ts","../.yarn/__virtual__/mobx-react-lite-virtual-b96160c3ad/0/cache/mobx-react-lite-npm-4.0.5-b71d77db44-b0a3e4345c.zip/node_modules/mobx-react-lite/src/utils/observerFinalizationRegistry.ts","../.yarn/__virtual__/mobx-react-lite-virtual-b96160c3ad/0/cache/mobx-react-lite-npm-4.0.5-b71d77db44-b0a3e4345c.zip/node_modules/mobx-react-lite/src/useObserver.ts","../.yarn/__virtual__/mobx-react-lite-virtual-b96160c3ad/0/cache/mobx-react-lite-npm-4.0.5-b71d77db44-b0a3e4345c.zip/node_modules/mobx-react-lite/src/observer.ts","../.yarn/__virtual__/mobx-react-lite-virtual-b96160c3ad/0/cache/mobx-react-lite-npm-4.0.5-b71d77db44-b0a3e4345c.zip/node_modules/mobx-react-lite/src/ObserverComponent.ts","../.yarn/__virtual__/mobx-react-lite-virtual-b96160c3ad/0/cache/mobx-react-lite-npm-4.0.5-b71d77db44-b0a3e4345c.zip/node_modules/mobx-react-lite/src/useLocalObservable.ts","../.yarn/__virtual__/mobx-react-lite-virtual-b96160c3ad/0/cache/mobx-react-lite-npm-4.0.5-b71d77db44-b0a3e4345c.zip/node_modules/mobx-react-lite/src/index.ts","scenes/Dashboard/Epoc/Bulk/graphql/getClaimBatch.ts","scenes/Dashboard/Epoc/Bulk/graphql/updateBatchClaim.ts","scenes/Dashboard/Epoc/Bulk/Edit/graphql/updateClaimBatchName.ts","scenes/Dashboard/Epoc/Bulk/Edit/graphql/getClaimFormPreviewLink.ts","scenes/Dashboard/Epoc/Bulk/Edit/graphql/deleteBatchClaims.ts","scenes/Dashboard/Epoc/Bulk/Edit/graphql/getImportJobProgress.ts","scenes/Dashboard/Epoc/Bulk/Edit/ImportClaimsModal.tsx","../.yarn/__virtual__/react-bootstrap-virtual-90f5534e6d/0/cache/react-bootstrap-npm-2.5.0-beta.1-00b2335a8c-eca5161fb4.zip/node_modules/react-bootstrap/esm/BreadcrumbItem.js","../.yarn/__virtual__/react-bootstrap-virtual-90f5534e6d/0/cache/react-bootstrap-npm-2.5.0-beta.1-00b2335a8c-eca5161fb4.zip/node_modules/react-bootstrap/esm/Breadcrumb.js","scenes/Dashboard/Epoc/Bulk/Edit/graphql/getClaimAttachmentUploadUrl.ts","scenes/Dashboard/Epoc/Bulk/Edit/ClaimAttachmentsModal.tsx","../.yarn/cache/@babel-runtime-npm-7.20.13-45eeb6d8ad-09b7a97a05.zip/node_modules/@babel/runtime/helpers/esm/objectDestructuringEmpty.js","../.yarn/__virtual__/react-bootstrap-icons-virtual-5b477522f0/0/cache/react-bootstrap-icons-npm-1.10.2-6996fc584c-eead5ae023.zip/node_modules/react-bootstrap-icons/dist/icons/question-circle-fill.js","scenes/Dashboard/Epoc/Bulk/Edit/districts.ts","../.yarn/cache/@babel-runtime-npm-7.20.13-45eeb6d8ad-09b7a97a05.zip/node_modules/@babel/runtime/helpers/esm/wrapRegExp.js","scenes/Dashboard/Epoc/Bulk/Edit/ClaimsGrid/validations.tsx","scenes/Dashboard/Epoc/Bulk/Edit/ClaimsGrid/EditTextField.tsx","scenes/Dashboard/Epoc/Bulk/Edit/ClaimsGrid/EditOptions.tsx","scenes/Dashboard/Epoc/Bulk/Edit/ClaimsGrid/EditAddress.tsx","scenes/Dashboard/Epoc/Bulk/Edit/ClaimsGrid/ClaimsGrid.tsx","scenes/Dashboard/Epoc/Bulk/graphql/resolveClaimCaseNumber.ts","scenes/Dashboard/Epoc/Bulk/graphql/getClaimSearchCaseProgress.ts","scenes/Dashboard/Epoc/Bulk/Edit/ClaimCaseNumberResolverModal.tsx","scenes/Dashboard/Epoc/Bulk/graphql/resolveClaimCreditor.ts","scenes/Dashboard/Epoc/Bulk/graphql/getClaimSearchCreditorProgress.ts","scenes/Dashboard/Epoc/Bulk/Edit/ClaimCreditorResolverModal.tsx","scenes/Dashboard/Epoc/Bulk/Edit/ClaimFormPreviewModal.tsx","scenes/Dashboard/Epoc/Bulk/Edit/Edit.tsx","../.yarn/__virtual__/react-bootstrap-virtual-90f5534e6d/0/cache/react-bootstrap-npm-2.5.0-beta.1-00b2335a8c-eca5161fb4.zip/node_modules/react-bootstrap/esm/AccordionContext.js","../.yarn/__virtual__/react-bootstrap-virtual-90f5534e6d/0/cache/react-bootstrap-npm-2.5.0-beta.1-00b2335a8c-eca5161fb4.zip/node_modules/react-bootstrap/esm/AccordionCollapse.js","../.yarn/__virtual__/react-bootstrap-virtual-90f5534e6d/0/cache/react-bootstrap-npm-2.5.0-beta.1-00b2335a8c-eca5161fb4.zip/node_modules/react-bootstrap/esm/AccordionItemContext.js","../.yarn/__virtual__/react-bootstrap-virtual-90f5534e6d/0/cache/react-bootstrap-npm-2.5.0-beta.1-00b2335a8c-eca5161fb4.zip/node_modules/react-bootstrap/esm/AccordionBody.js","../.yarn/__virtual__/react-bootstrap-virtual-90f5534e6d/0/cache/react-bootstrap-npm-2.5.0-beta.1-00b2335a8c-eca5161fb4.zip/node_modules/react-bootstrap/esm/AccordionButton.js","../.yarn/__virtual__/react-bootstrap-virtual-90f5534e6d/0/cache/react-bootstrap-npm-2.5.0-beta.1-00b2335a8c-eca5161fb4.zip/node_modules/react-bootstrap/esm/AccordionHeader.js","../.yarn/__virtual__/react-bootstrap-virtual-90f5534e6d/0/cache/react-bootstrap-npm-2.5.0-beta.1-00b2335a8c-eca5161fb4.zip/node_modules/react-bootstrap/esm/AccordionItem.js","../.yarn/__virtual__/react-bootstrap-virtual-90f5534e6d/0/cache/react-bootstrap-npm-2.5.0-beta.1-00b2335a8c-eca5161fb4.zip/node_modules/react-bootstrap/esm/Accordion.js","scenes/Dashboard/Epoc/Bulk/graphql/generateClaimForm410.ts","scenes/Dashboard/Epoc/Bulk/graphql/getClaimForm410.ts","scenes/Dashboard/Epoc/Bulk/graphql/createBatchPackages.ts","scenes/Dashboard/Epoc/Bulk/Submit/Submit.tsx","../.yarn/__virtual__/react-bootstrap-icons-virtual-5b477522f0/0/cache/react-bootstrap-icons-npm-1.10.2-6996fc584c-eead5ae023.zip/node_modules/react-bootstrap-icons/dist/icons/cloud-download.js","scenes/Dashboard/Epoc/Claim/index.tsx","scenes/Dashboard/Epoc/Claim/graphql/getClaim.ts","scenes/Dashboard/Epoc/Claim/graphql/submitClaim.ts","scenes/Dashboard/Epoc/Claim/graphql/getClaimSubmissionProgress.ts","scenes/Dashboard/Epoc/Claim/Payment/graphql/getAvailablePaymentMethod.ts","scenes/Dashboard/Epoc/Claim/Payment/graphql/checkoutClaim.ts","scenes/Dashboard/Epoc/Claim/Payment/graphql/purchaseClaim.ts","scenes/Dashboard/Epoc/Claim/Payment/index.tsx","scenes/Dashboard/Epoc/Claim/SubmitProgress/POCIcon.js","scenes/Dashboard/Epoc/Claim/SubmitProgress/BKalertsIcon.js","scenes/Dashboard/Epoc/Claim/SubmitProgress/CourtIcon.js","scenes/Dashboard/Epoc/Claim/SubmitProgress/index.tsx","../.yarn/__virtual__/react-bootstrap-icons-virtual-5b477522f0/0/cache/react-bootstrap-icons-npm-1.10.2-6996fc584c-eead5ae023.zip/node_modules/react-bootstrap-icons/dist/icons/eye.js","scenes/Dashboard/Epoc/FilingProfiles/graphql/getFilingProfiles.ts","scenes/Dashboard/Epoc/FilingProfiles/graphql/discardFilingProfile.ts","../.yarn/__virtual__/react-bootstrap-icons-virtual-5b477522f0/0/cache/react-bootstrap-icons-npm-1.10.2-6996fc584c-eead5ae023.zip/node_modules/react-bootstrap-icons/dist/icons/image.js","../.yarn/__virtual__/react-bootstrap-icons-virtual-5b477522f0/0/cache/react-bootstrap-icons-npm-1.10.2-6996fc584c-eead5ae023.zip/node_modules/react-bootstrap-icons/dist/icons/three-dots-vertical.js","scenes/Dashboard/Epoc/Claims/graphql/listClaims.ts","scenes/Dashboard/Epoc/Claims/graphql/getCourtSubmissionScreenshot.ts","scenes/Dashboard/Epoc/Claims/graphql/getClaimsRegisterScreenshot.ts","scenes/Dashboard/Epoc/Claims/graphql/discardClaimDraft.ts","scenes/Dashboard/Epoc/Claims/Claims.tsx","../.yarn/__virtual__/react-bootstrap-virtual-90f5534e6d/0/cache/react-bootstrap-npm-2.5.0-beta.1-00b2335a8c-eca5161fb4.zip/node_modules/react-bootstrap/esm/ProgressBar.js","../.yarn/__virtual__/react-bootstrap-icons-virtual-5b477522f0/0/cache/react-bootstrap-icons-npm-1.10.2-6996fc584c-eead5ae023.zip/node_modules/react-bootstrap-icons/dist/icons/question-circle.js","../.yarn/__virtual__/react-bootstrap-icons-virtual-5b477522f0/0/cache/react-bootstrap-icons-npm-1.10.2-6996fc584c-eead5ae023.zip/node_modules/react-bootstrap-icons/dist/icons/key.js","../.yarn/__virtual__/react-bootstrap-icons-virtual-5b477522f0/0/cache/react-bootstrap-icons-npm-1.10.2-6996fc584c-eead5ae023.zip/node_modules/react-bootstrap-icons/dist/icons/menu-button.js","../.yarn/unplugged/amazon-cognito-identity-js-npm-5.0.3-abbfebea5f/node_modules/amazon-cognito-identity-js/es/utils/cryptoSecureRandomInt.web.js","redux/actions/superAdminActions.js","../.yarn/unplugged/amazon-cognito-identity-js-npm-5.0.3-abbfebea5f/node_modules/amazon-cognito-identity-js/es/utils/WordArray.js","../.yarn/unplugged/amazon-cognito-identity-js-npm-5.0.3-abbfebea5f/node_modules/amazon-cognito-identity-js/es/BigInteger.js","../.yarn/unplugged/amazon-cognito-identity-js-npm-5.0.3-abbfebea5f/node_modules/amazon-cognito-identity-js/es/AuthenticationHelper.js","../.yarn/unplugged/amazon-cognito-identity-js-npm-5.0.3-abbfebea5f/node_modules/amazon-cognito-identity-js/es/CognitoJwtToken.js","../.yarn/unplugged/amazon-cognito-identity-js-npm-5.0.3-abbfebea5f/node_modules/amazon-cognito-identity-js/es/CognitoAccessToken.js","../.yarn/unplugged/amazon-cognito-identity-js-npm-5.0.3-abbfebea5f/node_modules/amazon-cognito-identity-js/es/CognitoIdToken.js","../.yarn/unplugged/amazon-cognito-identity-js-npm-5.0.3-abbfebea5f/node_modules/amazon-cognito-identity-js/es/CognitoRefreshToken.js","../.yarn/unplugged/amazon-cognito-identity-js-npm-5.0.3-abbfebea5f/node_modules/amazon-cognito-identity-js/es/CognitoUserSession.js","../.yarn/unplugged/amazon-cognito-identity-js-npm-5.0.3-abbfebea5f/node_modules/amazon-cognito-identity-js/es/DateHelper.js","../.yarn/unplugged/amazon-cognito-identity-js-npm-5.0.3-abbfebea5f/node_modules/amazon-cognito-identity-js/es/CognitoUserAttribute.js","../.yarn/unplugged/amazon-cognito-identity-js-npm-5.0.3-abbfebea5f/node_modules/amazon-cognito-identity-js/es/StorageHelper.js","../.yarn/unplugged/amazon-cognito-identity-js-npm-5.0.3-abbfebea5f/node_modules/amazon-cognito-identity-js/es/CognitoUser.js","../.yarn/unplugged/amazon-cognito-identity-js-npm-5.0.3-abbfebea5f/node_modules/amazon-cognito-identity-js/es/UserAgent.js","../.yarn/unplugged/amazon-cognito-identity-js-npm-5.0.3-abbfebea5f/node_modules/amazon-cognito-identity-js/es/Client.js","../.yarn/unplugged/amazon-cognito-identity-js-npm-5.0.3-abbfebea5f/node_modules/amazon-cognito-identity-js/es/CognitoUserPool.js","configs/functions/refreshSession.js","scenes/SuperAdmin/graphql/resetUserPassword.js","scenes/SuperAdmin/ModalResetPassword.js","scenes/SuperAdmin/graphql/listUserFeatures.ts","scenes/SuperAdmin/graphql/addUserFeature.ts","scenes/SuperAdmin/graphql/removeUserFeature.ts","scenes/SuperAdmin/UserFeaturesModal.tsx","scenes/SuperAdmin/graphql/adminListUsers.js","scenes/SuperAdmin/graphql/getImpersonateAuthToken.js","scenes/SuperAdmin/SuperAdmin.tsx","scenes/Settings/Profile/Account/Info/graphql/updateUserName.js","scenes/Settings/Profile/Account/Info/index.js","scenes/Settings/Profile/Account/ChangePassword/index.js","../.yarn/__virtual__/react-bootstrap-icons-virtual-5b477522f0/0/cache/react-bootstrap-icons-npm-1.10.2-6996fc584c-eead5ae023.zip/node_modules/react-bootstrap-icons/dist/icons/eye-slash.js","scenes/Settings/Profile/Account/PACERCredentials/getPACERCredentials.ts","scenes/Settings/Profile/Account/PACERCredentials/savePACERCredentials.ts","scenes/Settings/Profile/Account/PACERCredentials/PACERCredentials.tsx","../.yarn/__virtual__/react-bootstrap-icons-virtual-5b477522f0/0/cache/react-bootstrap-icons-npm-1.10.2-6996fc584c-eead5ae023.zip/node_modules/react-bootstrap-icons/dist/icons/clock.js","../.yarn/__virtual__/react-bootstrap-icons-virtual-5b477522f0/0/cache/react-bootstrap-icons-npm-1.10.2-6996fc584c-eead5ae023.zip/node_modules/react-bootstrap-icons/dist/icons/calendar-event.js","../.yarn/__virtual__/react-bootstrap-icons-virtual-5b477522f0/0/cache/react-bootstrap-icons-npm-1.10.2-6996fc584c-eead5ae023.zip/node_modules/react-bootstrap-icons/dist/icons/file-text.js","../.yarn/__virtual__/react-bootstrap-icons-virtual-5b477522f0/0/cache/react-bootstrap-icons-npm-1.10.2-6996fc584c-eead5ae023.zip/node_modules/react-bootstrap-icons/dist/icons/receipt.js","scenes/Settings/Profile/Subscriptions/graphql/listOrganizationSubscriptions.ts","scenes/Settings/Profile/Subscriptions/graphql/cancelOrganizationSubscription.ts","scenes/Settings/Profile/Subscriptions/graphql/listOrganizationPurchases.ts","scenes/Settings/Profile/Subscriptions/graphql/getOrganizationPurchaseInvoice.ts","scenes/Settings/Profile/Subscriptions/index.tsx","lib/getPurchaseDetails.js","scenes/Dashboard/Cases/graphql/listUserTrackedCases.ts","scenes/Dashboard/Cases/graphql/deleteTrackedCases.ts","../.yarn/cache/@babel-runtime-npm-7.23.8-c8503a23a8-0bd5543c26.zip/node_modules/@babel/runtime/helpers/esm/extends.js","../.yarn/cache/final-form-npm-4.20.10-4aa40793c3-92491998d7.zip/node_modules/final-form/dist/final-form.es.js","../.yarn/cache/@babel-runtime-npm-7.23.8-c8503a23a8-0bd5543c26.zip/node_modules/@babel/runtime/helpers/esm/objectWithoutPropertiesLoose.js","../.yarn/__virtual__/react-final-form-virtual-611bb4499d/0/cache/react-final-form-npm-6.5.9-9c08f1bca4-2ab79b1b02.zip/node_modules/react-final-form/dist/react-final-form.es.js","scenes/Dashboard/Cases/graphql/searchByCaseNumber.ts","scenes/Dashboard/Cases/AddCaseModal.tsx","scenes/Dashboard/Cases/index.tsx","../.yarn/__virtual__/react-feather-virtual-43b4f2714d/0/cache/react-feather-npm-2.0.10-b035d9c822-75acb29ee4.zip/node_modules/react-feather/dist/icons/chevron-up.js","../.yarn/__virtual__/react-feather-virtual-43b4f2714d/0/cache/react-feather-npm-2.0.10-b035d9c822-75acb29ee4.zip/node_modules/react-feather/dist/icons/chevron-down.js","components/atoms/SortIcon.jsx","components/atoms/TableContentLoader/index.js","components/DataGridTable/index.js","scenes/Dashboard/SearchCases/graphql/searchCasesOnPacer.js","scenes/Dashboard/SearchCases/graphql/addCaseFromPacer.js","scenes/Dashboard/SearchCases/headerColumns.js","../.yarn/__virtual__/@restart-ui-virtual-8adc8352d3/0/cache/@restart-ui-npm-1.5.4-96c468aa03-98deefa779.zip/node_modules/@restart/ui/esm/TabPanel.js","../.yarn/__virtual__/@restart-ui-virtual-8adc8352d3/0/cache/@restart-ui-npm-1.5.4-96c468aa03-98deefa779.zip/node_modules/@restart/ui/esm/Tabs.js","../.yarn/__virtual__/react-bootstrap-virtual-90f5534e6d/0/cache/react-bootstrap-npm-2.5.0-beta.1-00b2335a8c-eca5161fb4.zip/node_modules/react-bootstrap/esm/TabContent.js","../.yarn/__virtual__/react-bootstrap-virtual-90f5534e6d/0/cache/react-bootstrap-npm-2.5.0-beta.1-00b2335a8c-eca5161fb4.zip/node_modules/react-bootstrap/esm/getTabTransitionComponent.js","../.yarn/__virtual__/react-bootstrap-virtual-90f5534e6d/0/cache/react-bootstrap-npm-2.5.0-beta.1-00b2335a8c-eca5161fb4.zip/node_modules/react-bootstrap/esm/TabPane.js","../.yarn/__virtual__/react-bootstrap-virtual-90f5534e6d/0/cache/react-bootstrap-npm-2.5.0-beta.1-00b2335a8c-eca5161fb4.zip/node_modules/react-bootstrap/esm/Tabs.js","../.yarn/__virtual__/react-bootstrap-virtual-90f5534e6d/0/cache/react-bootstrap-npm-2.5.0-beta.1-00b2335a8c-eca5161fb4.zip/node_modules/react-bootstrap/esm/TabContainer.js","../.yarn/__virtual__/react-bootstrap-virtual-90f5534e6d/0/cache/react-bootstrap-npm-2.5.0-beta.1-00b2335a8c-eca5161fb4.zip/node_modules/react-bootstrap/esm/Tab.js","scenes/Dashboard/Case/graphql/getUserTrackedCase.js","scenes/Dashboard/Case/graphql/getDocketHeader.js","scenes/Dashboard/Case/DocketHeader/index.js","components/atoms/PageSize/index.js","scenes/Dashboard/Case/graphql/listDockets.js","scenes/Dashboard/Case/graphql/purchaseDocketDocument.js","scenes/Dashboard/Case/graphql/getPacerUpdateProgress.js","../.yarn/__virtual__/react-feather-virtual-43b4f2714d/0/cache/react-feather-npm-2.0.10-b035d9c822-75acb29ee4.zip/node_modules/react-feather/dist/icons/search.js","scenes/Dashboard/Case/Docket/Filters.js","../.yarn/__virtual__/react-feather-virtual-43b4f2714d/0/cache/react-feather-npm-2.0.10-b035d9c822-75acb29ee4.zip/node_modules/react-feather/dist/icons/folder-minus.js","../.yarn/__virtual__/react-feather-virtual-43b4f2714d/0/cache/react-feather-npm-2.0.10-b035d9c822-75acb29ee4.zip/node_modules/react-feather/dist/icons/folder-plus.js","../.yarn/__virtual__/react-feather-virtual-43b4f2714d/0/cache/react-feather-npm-2.0.10-b035d9c822-75acb29ee4.zip/node_modules/react-feather/dist/icons/download.js","../.yarn/__virtual__/react-feather-virtual-43b4f2714d/0/cache/react-feather-npm-2.0.10-b035d9c822-75acb29ee4.zip/node_modules/react-feather/dist/icons/eye.js","scenes/Dashboard/Case/graphql/listDocketDocuments.js","scenes/Dashboard/Case/graphql/downloadDocketDocument.js","scenes/Dashboard/Case/graphql/previewDocketDocument.js","scenes/Dashboard/Case/Docket/DocketRow.js","scenes/Dashboard/Case/Docket/headerColumns.js","scenes/Dashboard/Case/graphql/getAvailablePaymentMethod.js","scenes/Dashboard/Case/Docket/BuyDocketDocumentModal.js","scenes/Dashboard/Case/Docket/index.js","scenes/Dashboard/Case/graphql/purchaseCase.js","scenes/Dashboard/Case/ModalPaywall/index.js","scenes/Settings/Profile/AppStore/graphql/listUserApps.ts","scenes/Settings/Profile/AppStore/graphql/connectApp.ts","scenes/Settings/Profile/AppStore/availableApps.js","../.yarn/__virtual__/react-bootstrap-icons-virtual-5b477522f0/0/cache/react-bootstrap-icons-npm-1.10.2-6996fc584c-eead5ae023.zip/node_modules/react-bootstrap-icons/dist/icons/chevron-left.js","scenes/Settings/Profile/AppStore/graphql/disconnectApp.ts","components/Routing/privateRoutes.ts","scenes/TrackedDebtors/index.tsx","scenes/Dashboard/SearchCases/index.js","scenes/Dashboard/Case/index.js","scenes/Dashboard/Epoc/Bulk/index.tsx","scenes/Dashboard/Epoc/FilingProfiles/FilingProfiles.tsx","scenes/Settings/Profile/Account/index.js","scenes/Settings/Profile/AppStore/index.tsx","scenes/Settings/Profile/AppStore/Connection.tsx","../.yarn/__virtual__/react-bootstrap-icons-virtual-5b477522f0/0/cache/react-bootstrap-icons-npm-1.10.2-6996fc584c-eead5ae023.zip/node_modules/react-bootstrap-icons/dist/icons/list.js","components/layouts/components/SidebarToggle.tsx","../.yarn/__virtual__/react-bootstrap-icons-virtual-5b477522f0/0/cache/react-bootstrap-icons-npm-1.10.2-6996fc584c-eead5ae023.zip/node_modules/react-bootstrap-icons/dist/icons/check2-all.js","../.yarn/__virtual__/react-bootstrap-icons-virtual-5b477522f0/0/cache/react-bootstrap-icons-npm-1.10.2-6996fc584c-eead5ae023.zip/node_modules/react-bootstrap-icons/dist/icons/bell.js","../.yarn/cache/@aws-amplify-core-npm-5.0.12-03b8764ded-66a6acb081.zip/node_modules/@aws-amplify/core/src/constants.ts","../.yarn/cache/graphql-npm-15.8.0-0156c66b65-423325271d.zip/node_modules/graphql/jsutils/isObjectLike.mjs","../.yarn/cache/graphql-npm-15.8.0-0156c66b65-423325271d.zip/node_modules/graphql/polyfills/symbols.mjs","../.yarn/cache/graphql-npm-15.8.0-0156c66b65-423325271d.zip/node_modules/graphql/language/location.mjs","../.yarn/cache/graphql-npm-15.8.0-0156c66b65-423325271d.zip/node_modules/graphql/language/printLocation.mjs","../.yarn/cache/graphql-npm-15.8.0-0156c66b65-423325271d.zip/node_modules/graphql/error/GraphQLError.mjs","../.yarn/cache/@aws-amplify-core-npm-5.0.12-03b8764ded-66a6acb081.zip/node_modules/@aws-amplify/core/src/I18n/I18n.ts","../.yarn/cache/@aws-amplify-core-npm-5.0.12-03b8764ded-66a6acb081.zip/node_modules/@aws-amplify/core/src/I18n/index.ts","../.yarn/cache/@aws-amplify-core-npm-5.0.12-03b8764ded-66a6acb081.zip/node_modules/@aws-amplify/core/src/index.ts","../.yarn/cache/@aws-amplify-cache-npm-5.0.12-bd3756faeb-6954ba8e4f.zip/node_modules/@aws-amplify/cache/src/Utils/CacheUtils.ts","../.yarn/cache/@aws-amplify-cache-npm-5.0.12-bd3756faeb-6954ba8e4f.zip/node_modules/@aws-amplify/cache/src/StorageCache.ts","../.yarn/cache/@aws-amplify-cache-npm-5.0.12-bd3756faeb-6954ba8e4f.zip/node_modules/@aws-amplify/cache/src/BrowserStorageCache.ts","../.yarn/cache/@aws-amplify-pubsub-npm-5.0.12-709abfb7a7-b479e691d2.zip/node_modules/@aws-amplify/pubsub/src/Providers/AWSAppSyncRealTimeProvider/index.ts","../.yarn/cache/@aws-amplify-pubsub-npm-5.0.12-709abfb7a7-b479e691d2.zip/node_modules/@aws-amplify/pubsub/src/PubSub.ts","components/layouts/components/graphql/getUserNotifications.ts","components/layouts/components/graphql/markNotificationAsRead.ts","components/layouts/components/graphql/markAllNotificationsAsRead.ts","components/layouts/components/Notifications.tsx","lib/useTopicSubscription.ts","components/layouts/components/Navbar.tsx","components/layouts/components/Sidebar.tsx","components/layouts/components/OffcanvasSidebar.js","components/layouts/Private/index.js","components/Routing/components/PrivateRoutes.tsx","components/Routing/Routes.js","App.js","index.js","../.yarn/__virtual__/@sentry-react-virtual-b9e2c1edc7/0/cache/@sentry-react-npm-6.19.7-4d512d897c-f49b74c617.zip/node_modules/@sentry/src/sdk.ts"],"sourcesContent":["'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = all;\n\nvar _createChainableTypeChecker = require('./utils/createChainableTypeChecker');\n\nvar _createChainableTypeChecker2 = _interopRequireDefault(_createChainableTypeChecker);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction all() {\n for (var _len = arguments.length, validators = Array(_len), _key = 0; _key < _len; _key++) {\n validators[_key] = arguments[_key];\n }\n\n function allPropTypes() {\n for (var _len2 = arguments.length, args = Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n args[_key2] = arguments[_key2];\n }\n\n var error = null;\n\n validators.forEach(function (validator) {\n if (error != null) {\n return;\n }\n\n var result = validator.apply(undefined, args);\n if (result != null) {\n error = result;\n }\n });\n\n return error;\n }\n\n return (0, _createChainableTypeChecker2.default)(allPropTypes);\n}\nmodule.exports = exports['default'];","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = createChainableTypeChecker;\n/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n */\n\n// Mostly taken from ReactPropTypes.\n\nfunction createChainableTypeChecker(validate) {\n function checkType(isRequired, props, propName, componentName, location, propFullName) {\n var componentNameSafe = componentName || '<>';\n var propFullNameSafe = propFullName || propName;\n\n if (props[propName] == null) {\n if (isRequired) {\n return new Error('Required ' + location + ' `' + propFullNameSafe + '` was not specified ' + ('in `' + componentNameSafe + '`.'));\n }\n\n return null;\n }\n\n for (var _len = arguments.length, args = Array(_len > 6 ? _len - 6 : 0), _key = 6; _key < _len; _key++) {\n args[_key - 6] = arguments[_key];\n }\n\n return validate.apply(undefined, [props, propName, componentNameSafe, location, propFullNameSafe].concat(args));\n }\n\n var chainedCheckType = checkType.bind(null, false);\n chainedCheckType.isRequired = checkType.bind(null, true);\n\n return chainedCheckType;\n}\nmodule.exports = exports['default'];","/** @license React v17.0.2\n * react-dom.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/*\n Modernizr 3.0.0pre (Custom Build) | MIT\n*/\n'use strict';var aa=require(\"react\"),m=require(\"object-assign\"),r=require(\"scheduler\");function y(a){for(var b=\"https://reactjs.org/docs/error-decoder.html?invariant=\"+a,c=1;cb}return!1}function B(a,b,c,d,e,f,g){this.acceptsBooleans=2===b||3===b||4===b;this.attributeName=d;this.attributeNamespace=e;this.mustUseProperty=c;this.propertyName=a;this.type=b;this.sanitizeURL=f;this.removeEmptyString=g}var D={};\n\"children dangerouslySetInnerHTML defaultValue defaultChecked innerHTML suppressContentEditableWarning suppressHydrationWarning style\".split(\" \").forEach(function(a){D[a]=new B(a,0,!1,a,null,!1,!1)});[[\"acceptCharset\",\"accept-charset\"],[\"className\",\"class\"],[\"htmlFor\",\"for\"],[\"httpEquiv\",\"http-equiv\"]].forEach(function(a){var b=a[0];D[b]=new B(b,1,!1,a[1],null,!1,!1)});[\"contentEditable\",\"draggable\",\"spellCheck\",\"value\"].forEach(function(a){D[a]=new B(a,2,!1,a.toLowerCase(),null,!1,!1)});\n[\"autoReverse\",\"externalResourcesRequired\",\"focusable\",\"preserveAlpha\"].forEach(function(a){D[a]=new B(a,2,!1,a,null,!1,!1)});\"allowFullScreen async autoFocus autoPlay controls default defer disabled disablePictureInPicture disableRemotePlayback formNoValidate hidden loop noModule noValidate open playsInline readOnly required reversed scoped seamless itemScope\".split(\" \").forEach(function(a){D[a]=new B(a,3,!1,a.toLowerCase(),null,!1,!1)});\n[\"checked\",\"multiple\",\"muted\",\"selected\"].forEach(function(a){D[a]=new B(a,3,!0,a,null,!1,!1)});[\"capture\",\"download\"].forEach(function(a){D[a]=new B(a,4,!1,a,null,!1,!1)});[\"cols\",\"rows\",\"size\",\"span\"].forEach(function(a){D[a]=new B(a,6,!1,a,null,!1,!1)});[\"rowSpan\",\"start\"].forEach(function(a){D[a]=new B(a,5,!1,a.toLowerCase(),null,!1,!1)});var oa=/[\\-:]([a-z])/g;function pa(a){return a[1].toUpperCase()}\n\"accent-height alignment-baseline arabic-form baseline-shift cap-height clip-path clip-rule color-interpolation color-interpolation-filters color-profile color-rendering dominant-baseline enable-background fill-opacity fill-rule flood-color flood-opacity font-family font-size font-size-adjust font-stretch font-style font-variant font-weight glyph-name glyph-orientation-horizontal glyph-orientation-vertical horiz-adv-x horiz-origin-x image-rendering letter-spacing lighting-color marker-end marker-mid marker-start overline-position overline-thickness paint-order panose-1 pointer-events rendering-intent shape-rendering stop-color stop-opacity strikethrough-position strikethrough-thickness stroke-dasharray stroke-dashoffset stroke-linecap stroke-linejoin stroke-miterlimit stroke-opacity stroke-width text-anchor text-decoration text-rendering underline-position underline-thickness unicode-bidi unicode-range units-per-em v-alphabetic v-hanging v-ideographic v-mathematical vector-effect vert-adv-y vert-origin-x vert-origin-y word-spacing writing-mode xmlns:xlink x-height\".split(\" \").forEach(function(a){var b=a.replace(oa,\npa);D[b]=new B(b,1,!1,a,null,!1,!1)});\"xlink:actuate xlink:arcrole xlink:role xlink:show xlink:title xlink:type\".split(\" \").forEach(function(a){var b=a.replace(oa,pa);D[b]=new B(b,1,!1,a,\"http://www.w3.org/1999/xlink\",!1,!1)});[\"xml:base\",\"xml:lang\",\"xml:space\"].forEach(function(a){var b=a.replace(oa,pa);D[b]=new B(b,1,!1,a,\"http://www.w3.org/XML/1998/namespace\",!1,!1)});[\"tabIndex\",\"crossOrigin\"].forEach(function(a){D[a]=new B(a,1,!1,a.toLowerCase(),null,!1,!1)});\nD.xlinkHref=new B(\"xlinkHref\",1,!1,\"xlink:href\",\"http://www.w3.org/1999/xlink\",!0,!1);[\"src\",\"href\",\"action\",\"formAction\"].forEach(function(a){D[a]=new B(a,1,!1,a.toLowerCase(),null,!0,!0)});\nfunction qa(a,b,c,d){var e=D.hasOwnProperty(b)?D[b]:null;var f=null!==e?0===e.type:d?!1:!(2h||e[g]!==f[h])return\"\\n\"+e[g].replace(\" at new \",\" at \");while(1<=g&&0<=h)}break}}}finally{Oa=!1,Error.prepareStackTrace=c}return(a=a?a.displayName||a.name:\"\")?Na(a):\"\"}\nfunction Qa(a){switch(a.tag){case 5:return Na(a.type);case 16:return Na(\"Lazy\");case 13:return Na(\"Suspense\");case 19:return Na(\"SuspenseList\");case 0:case 2:case 15:return a=Pa(a.type,!1),a;case 11:return a=Pa(a.type.render,!1),a;case 22:return a=Pa(a.type._render,!1),a;case 1:return a=Pa(a.type,!0),a;default:return\"\"}}\nfunction Ra(a){if(null==a)return null;if(\"function\"===typeof a)return a.displayName||a.name||null;if(\"string\"===typeof a)return a;switch(a){case ua:return\"Fragment\";case ta:return\"Portal\";case xa:return\"Profiler\";case wa:return\"StrictMode\";case Ba:return\"Suspense\";case Ca:return\"SuspenseList\"}if(\"object\"===typeof a)switch(a.$$typeof){case za:return(a.displayName||\"Context\")+\".Consumer\";case ya:return(a._context.displayName||\"Context\")+\".Provider\";case Aa:var b=a.render;b=b.displayName||b.name||\"\";\nreturn a.displayName||(\"\"!==b?\"ForwardRef(\"+b+\")\":\"ForwardRef\");case Da:return Ra(a.type);case Fa:return Ra(a._render);case Ea:b=a._payload;a=a._init;try{return Ra(a(b))}catch(c){}}return null}function Sa(a){switch(typeof a){case \"boolean\":case \"number\":case \"object\":case \"string\":case \"undefined\":return a;default:return\"\"}}function Ta(a){var b=a.type;return(a=a.nodeName)&&\"input\"===a.toLowerCase()&&(\"checkbox\"===b||\"radio\"===b)}\nfunction Ua(a){var b=Ta(a)?\"checked\":\"value\",c=Object.getOwnPropertyDescriptor(a.constructor.prototype,b),d=\"\"+a[b];if(!a.hasOwnProperty(b)&&\"undefined\"!==typeof c&&\"function\"===typeof c.get&&\"function\"===typeof c.set){var e=c.get,f=c.set;Object.defineProperty(a,b,{configurable:!0,get:function(){return e.call(this)},set:function(a){d=\"\"+a;f.call(this,a)}});Object.defineProperty(a,b,{enumerable:c.enumerable});return{getValue:function(){return d},setValue:function(a){d=\"\"+a},stopTracking:function(){a._valueTracker=\nnull;delete a[b]}}}}function Va(a){a._valueTracker||(a._valueTracker=Ua(a))}function Wa(a){if(!a)return!1;var b=a._valueTracker;if(!b)return!0;var c=b.getValue();var d=\"\";a&&(d=Ta(a)?a.checked?\"true\":\"false\":a.value);a=d;return a!==c?(b.setValue(a),!0):!1}function Xa(a){a=a||(\"undefined\"!==typeof document?document:void 0);if(\"undefined\"===typeof a)return null;try{return a.activeElement||a.body}catch(b){return a.body}}\nfunction Ya(a,b){var c=b.checked;return m({},b,{defaultChecked:void 0,defaultValue:void 0,value:void 0,checked:null!=c?c:a._wrapperState.initialChecked})}function Za(a,b){var c=null==b.defaultValue?\"\":b.defaultValue,d=null!=b.checked?b.checked:b.defaultChecked;c=Sa(null!=b.value?b.value:c);a._wrapperState={initialChecked:d,initialValue:c,controlled:\"checkbox\"===b.type||\"radio\"===b.type?null!=b.checked:null!=b.value}}function $a(a,b){b=b.checked;null!=b&&qa(a,\"checked\",b,!1)}\nfunction ab(a,b){$a(a,b);var c=Sa(b.value),d=b.type;if(null!=c)if(\"number\"===d){if(0===c&&\"\"===a.value||a.value!=c)a.value=\"\"+c}else a.value!==\"\"+c&&(a.value=\"\"+c);else if(\"submit\"===d||\"reset\"===d){a.removeAttribute(\"value\");return}b.hasOwnProperty(\"value\")?bb(a,b.type,c):b.hasOwnProperty(\"defaultValue\")&&bb(a,b.type,Sa(b.defaultValue));null==b.checked&&null!=b.defaultChecked&&(a.defaultChecked=!!b.defaultChecked)}\nfunction cb(a,b,c){if(b.hasOwnProperty(\"value\")||b.hasOwnProperty(\"defaultValue\")){var d=b.type;if(!(\"submit\"!==d&&\"reset\"!==d||void 0!==b.value&&null!==b.value))return;b=\"\"+a._wrapperState.initialValue;c||b===a.value||(a.value=b);a.defaultValue=b}c=a.name;\"\"!==c&&(a.name=\"\");a.defaultChecked=!!a._wrapperState.initialChecked;\"\"!==c&&(a.name=c)}\nfunction bb(a,b,c){if(\"number\"!==b||Xa(a.ownerDocument)!==a)null==c?a.defaultValue=\"\"+a._wrapperState.initialValue:a.defaultValue!==\"\"+c&&(a.defaultValue=\"\"+c)}function db(a){var b=\"\";aa.Children.forEach(a,function(a){null!=a&&(b+=a)});return b}function eb(a,b){a=m({children:void 0},b);if(b=db(b.children))a.children=b;return a}\nfunction fb(a,b,c,d){a=a.options;if(b){b={};for(var e=0;e=c.length))throw Error(y(93));c=c[0]}b=c}null==b&&(b=\"\");c=b}a._wrapperState={initialValue:Sa(c)}}\nfunction ib(a,b){var c=Sa(b.value),d=Sa(b.defaultValue);null!=c&&(c=\"\"+c,c!==a.value&&(a.value=c),null==b.defaultValue&&a.defaultValue!==c&&(a.defaultValue=c));null!=d&&(a.defaultValue=\"\"+d)}function jb(a){var b=a.textContent;b===a._wrapperState.initialValue&&\"\"!==b&&null!==b&&(a.value=b)}var kb={html:\"http://www.w3.org/1999/xhtml\",mathml:\"http://www.w3.org/1998/Math/MathML\",svg:\"http://www.w3.org/2000/svg\"};\nfunction lb(a){switch(a){case \"svg\":return\"http://www.w3.org/2000/svg\";case \"math\":return\"http://www.w3.org/1998/Math/MathML\";default:return\"http://www.w3.org/1999/xhtml\"}}function mb(a,b){return null==a||\"http://www.w3.org/1999/xhtml\"===a?lb(b):\"http://www.w3.org/2000/svg\"===a&&\"foreignObject\"===b?\"http://www.w3.org/1999/xhtml\":a}\nvar nb,ob=function(a){return\"undefined\"!==typeof MSApp&&MSApp.execUnsafeLocalFunction?function(b,c,d,e){MSApp.execUnsafeLocalFunction(function(){return a(b,c,d,e)})}:a}(function(a,b){if(a.namespaceURI!==kb.svg||\"innerHTML\"in a)a.innerHTML=b;else{nb=nb||document.createElement(\"div\");nb.innerHTML=\"\"+b.valueOf().toString()+\"\";for(b=nb.firstChild;a.firstChild;)a.removeChild(a.firstChild);for(;b.firstChild;)a.appendChild(b.firstChild)}});\nfunction pb(a,b){if(b){var c=a.firstChild;if(c&&c===a.lastChild&&3===c.nodeType){c.nodeValue=b;return}}a.textContent=b}\nvar qb={animationIterationCount:!0,borderImageOutset:!0,borderImageSlice:!0,borderImageWidth:!0,boxFlex:!0,boxFlexGroup:!0,boxOrdinalGroup:!0,columnCount:!0,columns:!0,flex:!0,flexGrow:!0,flexPositive:!0,flexShrink:!0,flexNegative:!0,flexOrder:!0,gridArea:!0,gridRow:!0,gridRowEnd:!0,gridRowSpan:!0,gridRowStart:!0,gridColumn:!0,gridColumnEnd:!0,gridColumnSpan:!0,gridColumnStart:!0,fontWeight:!0,lineClamp:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,tabSize:!0,widows:!0,zIndex:!0,zoom:!0,fillOpacity:!0,\nfloodOpacity:!0,stopOpacity:!0,strokeDasharray:!0,strokeDashoffset:!0,strokeMiterlimit:!0,strokeOpacity:!0,strokeWidth:!0},rb=[\"Webkit\",\"ms\",\"Moz\",\"O\"];Object.keys(qb).forEach(function(a){rb.forEach(function(b){b=b+a.charAt(0).toUpperCase()+a.substring(1);qb[b]=qb[a]})});function sb(a,b,c){return null==b||\"boolean\"===typeof b||\"\"===b?\"\":c||\"number\"!==typeof b||0===b||qb.hasOwnProperty(a)&&qb[a]?(\"\"+b).trim():b+\"px\"}\nfunction tb(a,b){a=a.style;for(var c in b)if(b.hasOwnProperty(c)){var d=0===c.indexOf(\"--\"),e=sb(c,b[c],d);\"float\"===c&&(c=\"cssFloat\");d?a.setProperty(c,e):a[c]=e}}var ub=m({menuitem:!0},{area:!0,base:!0,br:!0,col:!0,embed:!0,hr:!0,img:!0,input:!0,keygen:!0,link:!0,meta:!0,param:!0,source:!0,track:!0,wbr:!0});\nfunction vb(a,b){if(b){if(ub[a]&&(null!=b.children||null!=b.dangerouslySetInnerHTML))throw Error(y(137,a));if(null!=b.dangerouslySetInnerHTML){if(null!=b.children)throw Error(y(60));if(!(\"object\"===typeof b.dangerouslySetInnerHTML&&\"__html\"in b.dangerouslySetInnerHTML))throw Error(y(61));}if(null!=b.style&&\"object\"!==typeof b.style)throw Error(y(62));}}\nfunction wb(a,b){if(-1===a.indexOf(\"-\"))return\"string\"===typeof b.is;switch(a){case \"annotation-xml\":case \"color-profile\":case \"font-face\":case \"font-face-src\":case \"font-face-uri\":case \"font-face-format\":case \"font-face-name\":case \"missing-glyph\":return!1;default:return!0}}function xb(a){a=a.target||a.srcElement||window;a.correspondingUseElement&&(a=a.correspondingUseElement);return 3===a.nodeType?a.parentNode:a}var yb=null,zb=null,Ab=null;\nfunction Bb(a){if(a=Cb(a)){if(\"function\"!==typeof yb)throw Error(y(280));var b=a.stateNode;b&&(b=Db(b),yb(a.stateNode,a.type,b))}}function Eb(a){zb?Ab?Ab.push(a):Ab=[a]:zb=a}function Fb(){if(zb){var a=zb,b=Ab;Ab=zb=null;Bb(a);if(b)for(a=0;ad?0:1<c;c++)b.push(a);return b}\nfunction $c(a,b,c){a.pendingLanes|=b;var d=b-1;a.suspendedLanes&=d;a.pingedLanes&=d;a=a.eventTimes;b=31-Vc(b);a[b]=c}var Vc=Math.clz32?Math.clz32:ad,bd=Math.log,cd=Math.LN2;function ad(a){return 0===a?32:31-(bd(a)/cd|0)|0}var dd=r.unstable_UserBlockingPriority,ed=r.unstable_runWithPriority,fd=!0;function gd(a,b,c,d){Kb||Ib();var e=hd,f=Kb;Kb=!0;try{Hb(e,a,b,c,d)}finally{(Kb=f)||Mb()}}function id(a,b,c,d){ed(dd,hd.bind(null,a,b,c,d))}\nfunction hd(a,b,c,d){if(fd){var e;if((e=0===(b&4))&&0=be),ee=String.fromCharCode(32),fe=!1;\nfunction ge(a,b){switch(a){case \"keyup\":return-1!==$d.indexOf(b.keyCode);case \"keydown\":return 229!==b.keyCode;case \"keypress\":case \"mousedown\":case \"focusout\":return!0;default:return!1}}function he(a){a=a.detail;return\"object\"===typeof a&&\"data\"in a?a.data:null}var ie=!1;function je(a,b){switch(a){case \"compositionend\":return he(b);case \"keypress\":if(32!==b.which)return null;fe=!0;return ee;case \"textInput\":return a=b.data,a===ee&&fe?null:a;default:return null}}\nfunction ke(a,b){if(ie)return\"compositionend\"===a||!ae&&ge(a,b)?(a=nd(),md=ld=kd=null,ie=!1,a):null;switch(a){case \"paste\":return null;case \"keypress\":if(!(b.ctrlKey||b.altKey||b.metaKey)||b.ctrlKey&&b.altKey){if(b.char&&1=b)return{node:c,offset:b-a};a=d}a:{for(;c;){if(c.nextSibling){c=c.nextSibling;break a}c=c.parentNode}c=void 0}c=Ke(c)}}function Me(a,b){return a&&b?a===b?!0:a&&3===a.nodeType?!1:b&&3===b.nodeType?Me(a,b.parentNode):\"contains\"in a?a.contains(b):a.compareDocumentPosition?!!(a.compareDocumentPosition(b)&16):!1:!1}\nfunction Ne(){for(var a=window,b=Xa();b instanceof a.HTMLIFrameElement;){try{var c=\"string\"===typeof b.contentWindow.location.href}catch(d){c=!1}if(c)a=b.contentWindow;else break;b=Xa(a.document)}return b}function Oe(a){var b=a&&a.nodeName&&a.nodeName.toLowerCase();return b&&(\"input\"===b&&(\"text\"===a.type||\"search\"===a.type||\"tel\"===a.type||\"url\"===a.type||\"password\"===a.type)||\"textarea\"===b||\"true\"===a.contentEditable)}\nvar Pe=fa&&\"documentMode\"in document&&11>=document.documentMode,Qe=null,Re=null,Se=null,Te=!1;\nfunction Ue(a,b,c){var d=c.window===c?c.document:9===c.nodeType?c:c.ownerDocument;Te||null==Qe||Qe!==Xa(d)||(d=Qe,\"selectionStart\"in d&&Oe(d)?d={start:d.selectionStart,end:d.selectionEnd}:(d=(d.ownerDocument&&d.ownerDocument.defaultView||window).getSelection(),d={anchorNode:d.anchorNode,anchorOffset:d.anchorOffset,focusNode:d.focusNode,focusOffset:d.focusOffset}),Se&&Je(Se,d)||(Se=d,d=oe(Re,\"onSelect\"),0Af||(a.current=zf[Af],zf[Af]=null,Af--)}function I(a,b){Af++;zf[Af]=a.current;a.current=b}var Cf={},M=Bf(Cf),N=Bf(!1),Df=Cf;\nfunction Ef(a,b){var c=a.type.contextTypes;if(!c)return Cf;var d=a.stateNode;if(d&&d.__reactInternalMemoizedUnmaskedChildContext===b)return d.__reactInternalMemoizedMaskedChildContext;var e={},f;for(f in c)e[f]=b[f];d&&(a=a.stateNode,a.__reactInternalMemoizedUnmaskedChildContext=b,a.__reactInternalMemoizedMaskedChildContext=e);return e}function Ff(a){a=a.childContextTypes;return null!==a&&void 0!==a}function Gf(){H(N);H(M)}function Hf(a,b,c){if(M.current!==Cf)throw Error(y(168));I(M,b);I(N,c)}\nfunction If(a,b,c){var d=a.stateNode;a=b.childContextTypes;if(\"function\"!==typeof d.getChildContext)return c;d=d.getChildContext();for(var e in d)if(!(e in a))throw Error(y(108,Ra(b)||\"Unknown\",e));return m({},c,d)}function Jf(a){a=(a=a.stateNode)&&a.__reactInternalMemoizedMergedChildContext||Cf;Df=M.current;I(M,a);I(N,N.current);return!0}function Kf(a,b,c){var d=a.stateNode;if(!d)throw Error(y(169));c?(a=If(a,b,Df),d.__reactInternalMemoizedMergedChildContext=a,H(N),H(M),I(M,a)):H(N);I(N,c)}\nvar Lf=null,Mf=null,Nf=r.unstable_runWithPriority,Of=r.unstable_scheduleCallback,Pf=r.unstable_cancelCallback,Qf=r.unstable_shouldYield,Rf=r.unstable_requestPaint,Sf=r.unstable_now,Tf=r.unstable_getCurrentPriorityLevel,Uf=r.unstable_ImmediatePriority,Vf=r.unstable_UserBlockingPriority,Wf=r.unstable_NormalPriority,Xf=r.unstable_LowPriority,Yf=r.unstable_IdlePriority,Zf={},$f=void 0!==Rf?Rf:function(){},ag=null,bg=null,cg=!1,dg=Sf(),O=1E4>dg?Sf:function(){return Sf()-dg};\nfunction eg(){switch(Tf()){case Uf:return 99;case Vf:return 98;case Wf:return 97;case Xf:return 96;case Yf:return 95;default:throw Error(y(332));}}function fg(a){switch(a){case 99:return Uf;case 98:return Vf;case 97:return Wf;case 96:return Xf;case 95:return Yf;default:throw Error(y(332));}}function gg(a,b){a=fg(a);return Nf(a,b)}function hg(a,b,c){a=fg(a);return Of(a,b,c)}function ig(){if(null!==bg){var a=bg;bg=null;Pf(a)}jg()}\nfunction jg(){if(!cg&&null!==ag){cg=!0;var a=0;try{var b=ag;gg(99,function(){for(;az?(q=u,u=null):q=u.sibling;var n=p(e,u,h[z],k);if(null===n){null===u&&(u=q);break}a&&u&&null===\nn.alternate&&b(e,u);g=f(n,g,z);null===t?l=n:t.sibling=n;t=n;u=q}if(z===h.length)return c(e,u),l;if(null===u){for(;zz?(q=u,u=null):q=u.sibling;var w=p(e,u,n.value,k);if(null===w){null===u&&(u=q);break}a&&u&&null===w.alternate&&b(e,u);g=f(w,g,z);null===t?l=w:t.sibling=w;t=w;u=q}if(n.done)return c(e,u),l;if(null===u){for(;!n.done;z++,n=h.next())n=A(e,n.value,k),null!==n&&(g=f(n,g,z),null===t?l=n:t.sibling=n,t=n);return l}for(u=d(e,u);!n.done;z++,n=h.next())n=C(u,e,z,n.value,k),null!==n&&(a&&null!==n.alternate&&\nu.delete(null===n.key?z:n.key),g=f(n,g,z),null===t?l=n:t.sibling=n,t=n);a&&u.forEach(function(a){return b(e,a)});return l}return function(a,d,f,h){var k=\"object\"===typeof f&&null!==f&&f.type===ua&&null===f.key;k&&(f=f.props.children);var l=\"object\"===typeof f&&null!==f;if(l)switch(f.$$typeof){case sa:a:{l=f.key;for(k=d;null!==k;){if(k.key===l){switch(k.tag){case 7:if(f.type===ua){c(a,k.sibling);d=e(k,f.props.children);d.return=a;a=d;break a}break;default:if(k.elementType===f.type){c(a,k.sibling);\nd=e(k,f.props);d.ref=Qg(a,k,f);d.return=a;a=d;break a}}c(a,k);break}else b(a,k);k=k.sibling}f.type===ua?(d=Xg(f.props.children,a.mode,h,f.key),d.return=a,a=d):(h=Vg(f.type,f.key,f.props,null,a.mode,h),h.ref=Qg(a,d,f),h.return=a,a=h)}return g(a);case ta:a:{for(k=f.key;null!==d;){if(d.key===k)if(4===d.tag&&d.stateNode.containerInfo===f.containerInfo&&d.stateNode.implementation===f.implementation){c(a,d.sibling);d=e(d,f.children||[]);d.return=a;a=d;break a}else{c(a,d);break}else b(a,d);d=d.sibling}d=\nWg(f,a.mode,h);d.return=a;a=d}return g(a)}if(\"string\"===typeof f||\"number\"===typeof f)return f=\"\"+f,null!==d&&6===d.tag?(c(a,d.sibling),d=e(d,f),d.return=a,a=d):(c(a,d),d=Ug(f,a.mode,h),d.return=a,a=d),g(a);if(Pg(f))return x(a,d,f,h);if(La(f))return w(a,d,f,h);l&&Rg(a,f);if(\"undefined\"===typeof f&&!k)switch(a.tag){case 1:case 22:case 0:case 11:case 15:throw Error(y(152,Ra(a.type)||\"Component\"));}return c(a,d)}}var Yg=Sg(!0),Zg=Sg(!1),$g={},ah=Bf($g),bh=Bf($g),ch=Bf($g);\nfunction dh(a){if(a===$g)throw Error(y(174));return a}function eh(a,b){I(ch,b);I(bh,a);I(ah,$g);a=b.nodeType;switch(a){case 9:case 11:b=(b=b.documentElement)?b.namespaceURI:mb(null,\"\");break;default:a=8===a?b.parentNode:b,b=a.namespaceURI||null,a=a.tagName,b=mb(b,a)}H(ah);I(ah,b)}function fh(){H(ah);H(bh);H(ch)}function gh(a){dh(ch.current);var b=dh(ah.current);var c=mb(b,a.type);b!==c&&(I(bh,a),I(ah,c))}function hh(a){bh.current===a&&(H(ah),H(bh))}var P=Bf(0);\nfunction ih(a){for(var b=a;null!==b;){if(13===b.tag){var c=b.memoizedState;if(null!==c&&(c=c.dehydrated,null===c||\"$?\"===c.data||\"$!\"===c.data))return b}else if(19===b.tag&&void 0!==b.memoizedProps.revealOrder){if(0!==(b.flags&64))return b}else if(null!==b.child){b.child.return=b;b=b.child;continue}if(b===a)break;for(;null===b.sibling;){if(null===b.return||b.return===a)return null;b=b.return}b.sibling.return=b.return;b=b.sibling}return null}var jh=null,kh=null,lh=!1;\nfunction mh(a,b){var c=nh(5,null,null,0);c.elementType=\"DELETED\";c.type=\"DELETED\";c.stateNode=b;c.return=a;c.flags=8;null!==a.lastEffect?(a.lastEffect.nextEffect=c,a.lastEffect=c):a.firstEffect=a.lastEffect=c}function oh(a,b){switch(a.tag){case 5:var c=a.type;b=1!==b.nodeType||c.toLowerCase()!==b.nodeName.toLowerCase()?null:b;return null!==b?(a.stateNode=b,!0):!1;case 6:return b=\"\"===a.pendingProps||3!==b.nodeType?null:b,null!==b?(a.stateNode=b,!0):!1;case 13:return!1;default:return!1}}\nfunction ph(a){if(lh){var b=kh;if(b){var c=b;if(!oh(a,b)){b=rf(c.nextSibling);if(!b||!oh(a,b)){a.flags=a.flags&-1025|2;lh=!1;jh=a;return}mh(jh,c)}jh=a;kh=rf(b.firstChild)}else a.flags=a.flags&-1025|2,lh=!1,jh=a}}function qh(a){for(a=a.return;null!==a&&5!==a.tag&&3!==a.tag&&13!==a.tag;)a=a.return;jh=a}\nfunction rh(a){if(a!==jh)return!1;if(!lh)return qh(a),lh=!0,!1;var b=a.type;if(5!==a.tag||\"head\"!==b&&\"body\"!==b&&!nf(b,a.memoizedProps))for(b=kh;b;)mh(a,b),b=rf(b.nextSibling);qh(a);if(13===a.tag){a=a.memoizedState;a=null!==a?a.dehydrated:null;if(!a)throw Error(y(317));a:{a=a.nextSibling;for(b=0;a;){if(8===a.nodeType){var c=a.data;if(\"/$\"===c){if(0===b){kh=rf(a.nextSibling);break a}b--}else\"$\"!==c&&\"$!\"!==c&&\"$?\"!==c||b++}a=a.nextSibling}kh=null}}else kh=jh?rf(a.stateNode.nextSibling):null;return!0}\nfunction sh(){kh=jh=null;lh=!1}var th=[];function uh(){for(var a=0;af))throw Error(y(301));f+=1;T=S=null;b.updateQueue=null;vh.current=Fh;a=c(d,e)}while(zh)}vh.current=Gh;b=null!==S&&null!==S.next;xh=0;T=S=R=null;yh=!1;if(b)throw Error(y(300));return a}function Hh(){var a={memoizedState:null,baseState:null,baseQueue:null,queue:null,next:null};null===T?R.memoizedState=T=a:T=T.next=a;return T}\nfunction Ih(){if(null===S){var a=R.alternate;a=null!==a?a.memoizedState:null}else a=S.next;var b=null===T?R.memoizedState:T.next;if(null!==b)T=b,S=a;else{if(null===a)throw Error(y(310));S=a;a={memoizedState:S.memoizedState,baseState:S.baseState,baseQueue:S.baseQueue,queue:S.queue,next:null};null===T?R.memoizedState=T=a:T=T.next=a}return T}function Jh(a,b){return\"function\"===typeof b?b(a):b}\nfunction Kh(a){var b=Ih(),c=b.queue;if(null===c)throw Error(y(311));c.lastRenderedReducer=a;var d=S,e=d.baseQueue,f=c.pending;if(null!==f){if(null!==e){var g=e.next;e.next=f.next;f.next=g}d.baseQueue=e=f;c.pending=null}if(null!==e){e=e.next;d=d.baseState;var h=g=f=null,k=e;do{var l=k.lane;if((xh&l)===l)null!==h&&(h=h.next={lane:0,action:k.action,eagerReducer:k.eagerReducer,eagerState:k.eagerState,next:null}),d=k.eagerReducer===a?k.eagerState:a(d,k.action);else{var n={lane:l,action:k.action,eagerReducer:k.eagerReducer,\neagerState:k.eagerState,next:null};null===h?(g=h=n,f=d):h=h.next=n;R.lanes|=l;Dg|=l}k=k.next}while(null!==k&&k!==e);null===h?f=d:h.next=g;He(d,b.memoizedState)||(ug=!0);b.memoizedState=d;b.baseState=f;b.baseQueue=h;c.lastRenderedState=d}return[b.memoizedState,c.dispatch]}\nfunction Lh(a){var b=Ih(),c=b.queue;if(null===c)throw Error(y(311));c.lastRenderedReducer=a;var d=c.dispatch,e=c.pending,f=b.memoizedState;if(null!==e){c.pending=null;var g=e=e.next;do f=a(f,g.action),g=g.next;while(g!==e);He(f,b.memoizedState)||(ug=!0);b.memoizedState=f;null===b.baseQueue&&(b.baseState=f);c.lastRenderedState=f}return[f,d]}\nfunction Mh(a,b,c){var d=b._getVersion;d=d(b._source);var e=b._workInProgressVersionPrimary;if(null!==e)a=e===d;else if(a=a.mutableReadLanes,a=(xh&a)===a)b._workInProgressVersionPrimary=d,th.push(b);if(a)return c(b._source);th.push(b);throw Error(y(350));}\nfunction Nh(a,b,c,d){var e=U;if(null===e)throw Error(y(349));var f=b._getVersion,g=f(b._source),h=vh.current,k=h.useState(function(){return Mh(e,b,c)}),l=k[1],n=k[0];k=T;var A=a.memoizedState,p=A.refs,C=p.getSnapshot,x=A.source;A=A.subscribe;var w=R;a.memoizedState={refs:p,source:b,subscribe:d};h.useEffect(function(){p.getSnapshot=c;p.setSnapshot=l;var a=f(b._source);if(!He(g,a)){a=c(b._source);He(n,a)||(l(a),a=Ig(w),e.mutableReadLanes|=a&e.pendingLanes);a=e.mutableReadLanes;e.entangledLanes|=a;for(var d=\ne.entanglements,h=a;0c?98:c,function(){a(!0)});gg(97\\x3c/script>\",a=a.removeChild(a.firstChild)):\"string\"===typeof d.is?a=g.createElement(c,{is:d.is}):(a=g.createElement(c),\"select\"===c&&(g=a,d.multiple?g.multiple=!0:d.size&&(g.size=d.size))):a=g.createElementNS(a,c);a[wf]=b;a[xf]=d;Bi(a,b,!1,!1);b.stateNode=a;g=wb(c,d);switch(c){case \"dialog\":G(\"cancel\",a);G(\"close\",a);\ne=d;break;case \"iframe\":case \"object\":case \"embed\":G(\"load\",a);e=d;break;case \"video\":case \"audio\":for(e=0;eJi&&(b.flags|=64,f=!0,Fi(d,!1),b.lanes=33554432)}else{if(!f)if(a=ih(g),null!==a){if(b.flags|=64,f=!0,c=a.updateQueue,null!==c&&(b.updateQueue=c,b.flags|=4),Fi(d,!0),null===d.tail&&\"hidden\"===d.tailMode&&!g.alternate&&!lh)return b=b.lastEffect=d.lastEffect,null!==b&&(b.nextEffect=null),null}else 2*O()-d.renderingStartTime>Ji&&1073741824!==c&&(b.flags|=\n64,f=!0,Fi(d,!1),b.lanes=33554432);d.isBackwards?(g.sibling=b.child,b.child=g):(c=d.last,null!==c?c.sibling=g:b.child=g,d.last=g)}return null!==d.tail?(c=d.tail,d.rendering=c,d.tail=c.sibling,d.lastEffect=b.lastEffect,d.renderingStartTime=O(),c.sibling=null,b=P.current,I(P,f?b&1|2:b&1),c):null;case 23:case 24:return Ki(),null!==a&&null!==a.memoizedState!==(null!==b.memoizedState)&&\"unstable-defer-without-hiding\"!==d.mode&&(b.flags|=4),null}throw Error(y(156,b.tag));}\nfunction Li(a){switch(a.tag){case 1:Ff(a.type)&&Gf();var b=a.flags;return b&4096?(a.flags=b&-4097|64,a):null;case 3:fh();H(N);H(M);uh();b=a.flags;if(0!==(b&64))throw Error(y(285));a.flags=b&-4097|64;return a;case 5:return hh(a),null;case 13:return H(P),b=a.flags,b&4096?(a.flags=b&-4097|64,a):null;case 19:return H(P),null;case 4:return fh(),null;case 10:return rg(a),null;case 23:case 24:return Ki(),null;default:return null}}\nfunction Mi(a,b){try{var c=\"\",d=b;do c+=Qa(d),d=d.return;while(d);var e=c}catch(f){e=\"\\nError generating stack: \"+f.message+\"\\n\"+f.stack}return{value:a,source:b,stack:e}}function Ni(a,b){try{console.error(b.value)}catch(c){setTimeout(function(){throw c;})}}var Oi=\"function\"===typeof WeakMap?WeakMap:Map;function Pi(a,b,c){c=zg(-1,c);c.tag=3;c.payload={element:null};var d=b.value;c.callback=function(){Qi||(Qi=!0,Ri=d);Ni(a,b)};return c}\nfunction Si(a,b,c){c=zg(-1,c);c.tag=3;var d=a.type.getDerivedStateFromError;if(\"function\"===typeof d){var e=b.value;c.payload=function(){Ni(a,b);return d(e)}}var f=a.stateNode;null!==f&&\"function\"===typeof f.componentDidCatch&&(c.callback=function(){\"function\"!==typeof d&&(null===Ti?Ti=new Set([this]):Ti.add(this),Ni(a,b));var c=b.stack;this.componentDidCatch(b.value,{componentStack:null!==c?c:\"\"})});return c}var Ui=\"function\"===typeof WeakSet?WeakSet:Set;\nfunction Vi(a){var b=a.ref;if(null!==b)if(\"function\"===typeof b)try{b(null)}catch(c){Wi(a,c)}else b.current=null}function Xi(a,b){switch(b.tag){case 0:case 11:case 15:case 22:return;case 1:if(b.flags&256&&null!==a){var c=a.memoizedProps,d=a.memoizedState;a=b.stateNode;b=a.getSnapshotBeforeUpdate(b.elementType===b.type?c:lg(b.type,c),d);a.__reactInternalSnapshotBeforeUpdate=b}return;case 3:b.flags&256&&qf(b.stateNode.containerInfo);return;case 5:case 6:case 4:case 17:return}throw Error(y(163));}\nfunction Yi(a,b,c){switch(c.tag){case 0:case 11:case 15:case 22:b=c.updateQueue;b=null!==b?b.lastEffect:null;if(null!==b){a=b=b.next;do{if(3===(a.tag&3)){var d=a.create;a.destroy=d()}a=a.next}while(a!==b)}b=c.updateQueue;b=null!==b?b.lastEffect:null;if(null!==b){a=b=b.next;do{var e=a;d=e.next;e=e.tag;0!==(e&4)&&0!==(e&1)&&(Zi(c,a),$i(c,a));a=d}while(a!==b)}return;case 1:a=c.stateNode;c.flags&4&&(null===b?a.componentDidMount():(d=c.elementType===c.type?b.memoizedProps:lg(c.type,b.memoizedProps),a.componentDidUpdate(d,\nb.memoizedState,a.__reactInternalSnapshotBeforeUpdate)));b=c.updateQueue;null!==b&&Eg(c,b,a);return;case 3:b=c.updateQueue;if(null!==b){a=null;if(null!==c.child)switch(c.child.tag){case 5:a=c.child.stateNode;break;case 1:a=c.child.stateNode}Eg(c,b,a)}return;case 5:a=c.stateNode;null===b&&c.flags&4&&mf(c.type,c.memoizedProps)&&a.focus();return;case 6:return;case 4:return;case 12:return;case 13:null===c.memoizedState&&(c=c.alternate,null!==c&&(c=c.memoizedState,null!==c&&(c=c.dehydrated,null!==c&&Cc(c))));\nreturn;case 19:case 17:case 20:case 21:case 23:case 24:return}throw Error(y(163));}\nfunction aj(a,b){for(var c=a;;){if(5===c.tag){var d=c.stateNode;if(b)d=d.style,\"function\"===typeof d.setProperty?d.setProperty(\"display\",\"none\",\"important\"):d.display=\"none\";else{d=c.stateNode;var e=c.memoizedProps.style;e=void 0!==e&&null!==e&&e.hasOwnProperty(\"display\")?e.display:null;d.style.display=sb(\"display\",e)}}else if(6===c.tag)c.stateNode.nodeValue=b?\"\":c.memoizedProps;else if((23!==c.tag&&24!==c.tag||null===c.memoizedState||c===a)&&null!==c.child){c.child.return=c;c=c.child;continue}if(c===\na)break;for(;null===c.sibling;){if(null===c.return||c.return===a)return;c=c.return}c.sibling.return=c.return;c=c.sibling}}\nfunction bj(a,b){if(Mf&&\"function\"===typeof Mf.onCommitFiberUnmount)try{Mf.onCommitFiberUnmount(Lf,b)}catch(f){}switch(b.tag){case 0:case 11:case 14:case 15:case 22:a=b.updateQueue;if(null!==a&&(a=a.lastEffect,null!==a)){var c=a=a.next;do{var d=c,e=d.destroy;d=d.tag;if(void 0!==e)if(0!==(d&4))Zi(b,c);else{d=b;try{e()}catch(f){Wi(d,f)}}c=c.next}while(c!==a)}break;case 1:Vi(b);a=b.stateNode;if(\"function\"===typeof a.componentWillUnmount)try{a.props=b.memoizedProps,a.state=b.memoizedState,a.componentWillUnmount()}catch(f){Wi(b,\nf)}break;case 5:Vi(b);break;case 4:cj(a,b)}}function dj(a){a.alternate=null;a.child=null;a.dependencies=null;a.firstEffect=null;a.lastEffect=null;a.memoizedProps=null;a.memoizedState=null;a.pendingProps=null;a.return=null;a.updateQueue=null}function ej(a){return 5===a.tag||3===a.tag||4===a.tag}\nfunction fj(a){a:{for(var b=a.return;null!==b;){if(ej(b))break a;b=b.return}throw Error(y(160));}var c=b;b=c.stateNode;switch(c.tag){case 5:var d=!1;break;case 3:b=b.containerInfo;d=!0;break;case 4:b=b.containerInfo;d=!0;break;default:throw Error(y(161));}c.flags&16&&(pb(b,\"\"),c.flags&=-17);a:b:for(c=a;;){for(;null===c.sibling;){if(null===c.return||ej(c.return)){c=null;break a}c=c.return}c.sibling.return=c.return;for(c=c.sibling;5!==c.tag&&6!==c.tag&&18!==c.tag;){if(c.flags&2)continue b;if(null===\nc.child||4===c.tag)continue b;else c.child.return=c,c=c.child}if(!(c.flags&2)){c=c.stateNode;break a}}d?gj(a,c,b):hj(a,c,b)}\nfunction gj(a,b,c){var d=a.tag,e=5===d||6===d;if(e)a=e?a.stateNode:a.stateNode.instance,b?8===c.nodeType?c.parentNode.insertBefore(a,b):c.insertBefore(a,b):(8===c.nodeType?(b=c.parentNode,b.insertBefore(a,c)):(b=c,b.appendChild(a)),c=c._reactRootContainer,null!==c&&void 0!==c||null!==b.onclick||(b.onclick=jf));else if(4!==d&&(a=a.child,null!==a))for(gj(a,b,c),a=a.sibling;null!==a;)gj(a,b,c),a=a.sibling}\nfunction hj(a,b,c){var d=a.tag,e=5===d||6===d;if(e)a=e?a.stateNode:a.stateNode.instance,b?c.insertBefore(a,b):c.appendChild(a);else if(4!==d&&(a=a.child,null!==a))for(hj(a,b,c),a=a.sibling;null!==a;)hj(a,b,c),a=a.sibling}\nfunction cj(a,b){for(var c=b,d=!1,e,f;;){if(!d){d=c.return;a:for(;;){if(null===d)throw Error(y(160));e=d.stateNode;switch(d.tag){case 5:f=!1;break a;case 3:e=e.containerInfo;f=!0;break a;case 4:e=e.containerInfo;f=!0;break a}d=d.return}d=!0}if(5===c.tag||6===c.tag){a:for(var g=a,h=c,k=h;;)if(bj(g,k),null!==k.child&&4!==k.tag)k.child.return=k,k=k.child;else{if(k===h)break a;for(;null===k.sibling;){if(null===k.return||k.return===h)break a;k=k.return}k.sibling.return=k.return;k=k.sibling}f?(g=e,h=c.stateNode,\n8===g.nodeType?g.parentNode.removeChild(h):g.removeChild(h)):e.removeChild(c.stateNode)}else if(4===c.tag){if(null!==c.child){e=c.stateNode.containerInfo;f=!0;c.child.return=c;c=c.child;continue}}else if(bj(a,c),null!==c.child){c.child.return=c;c=c.child;continue}if(c===b)break;for(;null===c.sibling;){if(null===c.return||c.return===b)return;c=c.return;4===c.tag&&(d=!1)}c.sibling.return=c.return;c=c.sibling}}\nfunction ij(a,b){switch(b.tag){case 0:case 11:case 14:case 15:case 22:var c=b.updateQueue;c=null!==c?c.lastEffect:null;if(null!==c){var d=c=c.next;do 3===(d.tag&3)&&(a=d.destroy,d.destroy=void 0,void 0!==a&&a()),d=d.next;while(d!==c)}return;case 1:return;case 5:c=b.stateNode;if(null!=c){d=b.memoizedProps;var e=null!==a?a.memoizedProps:d;a=b.type;var f=b.updateQueue;b.updateQueue=null;if(null!==f){c[xf]=d;\"input\"===a&&\"radio\"===d.type&&null!=d.name&&$a(c,d);wb(a,e);b=wb(a,d);for(e=0;ee&&(e=g);c&=~f}c=e;c=O()-c;c=(120>c?120:480>c?480:1080>c?1080:1920>c?1920:3E3>c?3E3:4320>\nc?4320:1960*nj(c/1960))-c;if(10 component higher in the tree to provide a loading indicator or placeholder to display.\")}5!==V&&(V=2);k=Mi(k,h);p=\ng;do{switch(p.tag){case 3:f=k;p.flags|=4096;b&=-b;p.lanes|=b;var J=Pi(p,f,b);Bg(p,J);break a;case 1:f=k;var K=p.type,Q=p.stateNode;if(0===(p.flags&64)&&(\"function\"===typeof K.getDerivedStateFromError||null!==Q&&\"function\"===typeof Q.componentDidCatch&&(null===Ti||!Ti.has(Q)))){p.flags|=4096;b&=-b;p.lanes|=b;var L=Si(p,f,b);Bg(p,L);break a}}p=p.return}while(null!==p)}Zj(c)}catch(va){b=va;Y===c&&null!==c&&(Y=c=c.return);continue}break}while(1)}\nfunction Pj(){var a=oj.current;oj.current=Gh;return null===a?Gh:a}function Tj(a,b){var c=X;X|=16;var d=Pj();U===a&&W===b||Qj(a,b);do try{ak();break}catch(e){Sj(a,e)}while(1);qg();X=c;oj.current=d;if(null!==Y)throw Error(y(261));U=null;W=0;return V}function ak(){for(;null!==Y;)bk(Y)}function Rj(){for(;null!==Y&&!Qf();)bk(Y)}function bk(a){var b=ck(a.alternate,a,qj);a.memoizedProps=a.pendingProps;null===b?Zj(a):Y=b;pj.current=null}\nfunction Zj(a){var b=a;do{var c=b.alternate;a=b.return;if(0===(b.flags&2048)){c=Gi(c,b,qj);if(null!==c){Y=c;return}c=b;if(24!==c.tag&&23!==c.tag||null===c.memoizedState||0!==(qj&1073741824)||0===(c.mode&4)){for(var d=0,e=c.child;null!==e;)d|=e.lanes|e.childLanes,e=e.sibling;c.childLanes=d}null!==a&&0===(a.flags&2048)&&(null===a.firstEffect&&(a.firstEffect=b.firstEffect),null!==b.lastEffect&&(null!==a.lastEffect&&(a.lastEffect.nextEffect=b.firstEffect),a.lastEffect=b.lastEffect),1g&&(h=g,g=J,J=h),h=Le(t,J),f=Le(t,g),h&&f&&(1!==v.rangeCount||v.anchorNode!==h.node||v.anchorOffset!==h.offset||v.focusNode!==f.node||v.focusOffset!==f.offset)&&(q=q.createRange(),q.setStart(h.node,h.offset),v.removeAllRanges(),J>g?(v.addRange(q),v.extend(f.node,f.offset)):(q.setEnd(f.node,f.offset),v.addRange(q))))));q=[];for(v=t;v=v.parentNode;)1===v.nodeType&&q.push({element:v,left:v.scrollLeft,top:v.scrollTop});\"function\"===typeof t.focus&&t.focus();for(t=\n0;tO()-jj?Qj(a,0):uj|=c);Mj(a,b)}function lj(a,b){var c=a.stateNode;null!==c&&c.delete(b);b=0;0===b&&(b=a.mode,0===(b&2)?b=1:0===(b&4)?b=99===eg()?1:2:(0===Gj&&(Gj=tj),b=Yc(62914560&~Gj),0===b&&(b=4194304)));c=Hg();a=Kj(a,b);null!==a&&($c(a,b,c),Mj(a,c))}var ck;\nck=function(a,b,c){var d=b.lanes;if(null!==a)if(a.memoizedProps!==b.pendingProps||N.current)ug=!0;else if(0!==(c&d))ug=0!==(a.flags&16384)?!0:!1;else{ug=!1;switch(b.tag){case 3:ri(b);sh();break;case 5:gh(b);break;case 1:Ff(b.type)&&Jf(b);break;case 4:eh(b,b.stateNode.containerInfo);break;case 10:d=b.memoizedProps.value;var e=b.type._context;I(mg,e._currentValue);e._currentValue=d;break;case 13:if(null!==b.memoizedState){if(0!==(c&b.child.childLanes))return ti(a,b,c);I(P,P.current&1);b=hi(a,b,c);return null!==\nb?b.sibling:null}I(P,P.current&1);break;case 19:d=0!==(c&b.childLanes);if(0!==(a.flags&64)){if(d)return Ai(a,b,c);b.flags|=64}e=b.memoizedState;null!==e&&(e.rendering=null,e.tail=null,e.lastEffect=null);I(P,P.current);if(d)break;else return null;case 23:case 24:return b.lanes=0,mi(a,b,c)}return hi(a,b,c)}else ug=!1;b.lanes=0;switch(b.tag){case 2:d=b.type;null!==a&&(a.alternate=null,b.alternate=null,b.flags|=2);a=b.pendingProps;e=Ef(b,M.current);tg(b,c);e=Ch(null,b,d,a,e,c);b.flags|=1;if(\"object\"===\ntypeof e&&null!==e&&\"function\"===typeof e.render&&void 0===e.$$typeof){b.tag=1;b.memoizedState=null;b.updateQueue=null;if(Ff(d)){var f=!0;Jf(b)}else f=!1;b.memoizedState=null!==e.state&&void 0!==e.state?e.state:null;xg(b);var g=d.getDerivedStateFromProps;\"function\"===typeof g&&Gg(b,d,g,a);e.updater=Kg;b.stateNode=e;e._reactInternals=b;Og(b,d,a,c);b=qi(null,b,d,!0,f,c)}else b.tag=0,fi(null,b,e,c),b=b.child;return b;case 16:e=b.elementType;a:{null!==a&&(a.alternate=null,b.alternate=null,b.flags|=2);\na=b.pendingProps;f=e._init;e=f(e._payload);b.type=e;f=b.tag=hk(e);a=lg(e,a);switch(f){case 0:b=li(null,b,e,a,c);break a;case 1:b=pi(null,b,e,a,c);break a;case 11:b=gi(null,b,e,a,c);break a;case 14:b=ii(null,b,e,lg(e.type,a),d,c);break a}throw Error(y(306,e,\"\"));}return b;case 0:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:lg(d,e),li(a,b,d,e,c);case 1:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:lg(d,e),pi(a,b,d,e,c);case 3:ri(b);d=b.updateQueue;if(null===a||null===d)throw Error(y(282));\nd=b.pendingProps;e=b.memoizedState;e=null!==e?e.element:null;yg(a,b);Cg(b,d,null,c);d=b.memoizedState.element;if(d===e)sh(),b=hi(a,b,c);else{e=b.stateNode;if(f=e.hydrate)kh=rf(b.stateNode.containerInfo.firstChild),jh=b,f=lh=!0;if(f){a=e.mutableSourceEagerHydrationData;if(null!=a)for(e=0;e= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nfunction ReactGoogleAutocomplete(props) {\n var onPlaceSelected = props.onPlaceSelected,\n apiKey = props.apiKey,\n libraries = props.libraries,\n inputAutocompleteValue = props.inputAutocompleteValue,\n options = props.options,\n googleMapsScriptBaseUrl = props.googleMapsScriptBaseUrl,\n refProp = props.refProp,\n language = props.language,\n rest = _objectWithoutProperties(props, [\"onPlaceSelected\", \"apiKey\", \"libraries\", \"inputAutocompleteValue\", \"options\", \"googleMapsScriptBaseUrl\", \"refProp\", \"language\"]);\n\n var _usePlacesWidget = (0, _usePlacesWidget2.default)({\n ref: refProp,\n googleMapsScriptBaseUrl: googleMapsScriptBaseUrl,\n onPlaceSelected: onPlaceSelected,\n apiKey: apiKey,\n libraries: libraries,\n inputAutocompleteValue: inputAutocompleteValue,\n options: options,\n language: language\n }),\n ref = _usePlacesWidget.ref;\n\n return /*#__PURE__*/_react.default.createElement(\"input\", _extends({\n ref: ref\n }, rest));\n}\n\nReactGoogleAutocomplete.propTypes = {\n apiKey: _propTypes.default.string,\n libraries: _propTypes.default.arrayOf(_propTypes.default.string),\n ref: _propTypes.default.oneOfType([// Either a function\n _propTypes.default.func, // Or anything shaped { current: any }\n _propTypes.default.shape({\n current: _propTypes.default.any\n })]),\n googleMapsScriptBaseUrl: _propTypes.default.string,\n onPlaceSelected: _propTypes.default.func,\n inputAutocompleteValue: _propTypes.default.string,\n options: _propTypes.default.shape({\n componentRestrictions: _propTypes.default.object,\n bounds: _propTypes.default.object,\n location: _propTypes.default.object,\n offset: _propTypes.default.number,\n origin: _propTypes.default.object,\n radius: _propTypes.default.number,\n sessionToken: _propTypes.default.object,\n types: _propTypes.default.arrayOf(_propTypes.default.string)\n }),\n language: _propTypes.default.string\n};\n\nvar _default = /*#__PURE__*/(0, _react.forwardRef)(function (props, ref) {\n return /*#__PURE__*/_react.default.createElement(ReactGoogleAutocomplete, _extends({}, props, {\n refProp: ref\n }));\n});\n\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.GOOGLE_MAP_SCRIPT_BASE_URL = void 0;\nvar GOOGLE_MAP_SCRIPT_BASE_URL = \"https://maps.googleapis.com/maps/api/js\";\nexports.GOOGLE_MAP_SCRIPT_BASE_URL = GOOGLE_MAP_SCRIPT_BASE_URL;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nObject.defineProperty(exports, \"default\", {\n enumerable: true,\n get: function get() {\n return _ReactGoogleAutocomplete.default;\n }\n});\nObject.defineProperty(exports, \"usePlacesWidget\", {\n enumerable: true,\n get: function get() {\n return _usePlacesWidget.default;\n }\n});\n\nvar _ReactGoogleAutocomplete = _interopRequireDefault(require(\"./ReactGoogleAutocomplete\"));\n\nvar _usePlacesWidget = _interopRequireDefault(require(\"./usePlacesWidget\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }","\"use strict\";\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = usePlacesWidget;\n\nvar _react = _interopRequireWildcard(require(\"react\"));\n\nvar _utils = require(\"./utils\");\n\nvar _constants = require(\"./constants\");\n\nfunction _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== \"function\") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }\n\nfunction _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== \"object\" && typeof obj !== \"function\") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== \"default\" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nfunction usePlacesWidget(props) {\n var ref = props.ref,\n onPlaceSelected = props.onPlaceSelected,\n apiKey = props.apiKey,\n _props$libraries = props.libraries,\n libraries = _props$libraries === void 0 ? \"places\" : _props$libraries,\n _props$inputAutocompl = props.inputAutocompleteValue,\n inputAutocompleteValue = _props$inputAutocompl === void 0 ? \"new-password\" : _props$inputAutocompl,\n _props$options = props.options;\n _props$options = _props$options === void 0 ? {} : _props$options;\n\n var _props$options$types = _props$options.types,\n types = _props$options$types === void 0 ? [\"(cities)\"] : _props$options$types,\n componentRestrictions = _props$options.componentRestrictions,\n _props$options$fields = _props$options.fields,\n fields = _props$options$fields === void 0 ? [\"address_components\", \"geometry.location\", \"place_id\", \"formatted_address\"] : _props$options$fields,\n bounds = _props$options.bounds,\n options = _objectWithoutProperties(_props$options, [\"types\", \"componentRestrictions\", \"fields\", \"bounds\"]),\n _props$googleMapsScri = props.googleMapsScriptBaseUrl,\n googleMapsScriptBaseUrl = _props$googleMapsScri === void 0 ? _constants.GOOGLE_MAP_SCRIPT_BASE_URL : _props$googleMapsScri,\n language = props.language;\n\n var inputRef = (0, _react.useRef)(null);\n var event = (0, _react.useRef)(null);\n var autocompleteRef = (0, _react.useRef)(null);\n var observerHack = (0, _react.useRef)(null);\n var languageQueryParam = language ? \"&language=\".concat(language) : \"\";\n var googleMapsScriptUrl = \"\".concat(googleMapsScriptBaseUrl, \"?libraries=\").concat(libraries, \"&key=\").concat(apiKey).concat(languageQueryParam);\n var handleLoadScript = (0, _react.useCallback)(function () {\n return (0, _utils.loadGoogleMapScript)(googleMapsScriptBaseUrl, googleMapsScriptUrl);\n }, [googleMapsScriptBaseUrl, googleMapsScriptUrl]);\n (0, _react.useEffect)(function () {\n var config = _objectSpread(_objectSpread({}, options), {}, {\n fields: fields,\n types: types,\n bounds: bounds\n });\n\n if (componentRestrictions) {\n config.componentRestrictions = componentRestrictions;\n }\n\n if (autocompleteRef.current || !inputRef.current || !_utils.isBrowser) return;\n if (ref && !ref.current) ref.current = inputRef.current;\n\n var handleAutoComplete = function handleAutoComplete() {\n var _google$maps;\n\n if (typeof google === \"undefined\") return console.error(\"Google has not been found. Make sure your provide apiKey prop.\");\n if (!((_google$maps = google.maps) !== null && _google$maps !== void 0 && _google$maps.places)) return console.error(\"Google maps places API must be loaded.\");\n if (!inputRef.current instanceof HTMLInputElement) return console.error(\"Input ref must be HTMLInputElement.\");\n autocompleteRef.current = new google.maps.places.Autocomplete(inputRef.current, config);\n\n if (autocompleteRef.current) {\n event.current = autocompleteRef.current.addListener(\"place_changed\", function () {\n if (onPlaceSelected && autocompleteRef && autocompleteRef.current) {\n onPlaceSelected(autocompleteRef.current.getPlace(), inputRef.current, autocompleteRef.current);\n }\n });\n }\n };\n\n if (apiKey) {\n handleLoadScript().then(function () {\n return handleAutoComplete();\n });\n } else {\n handleAutoComplete();\n }\n\n return function () {\n return event.current ? event.current.remove() : undefined;\n };\n }, []); // Autofill workaround adapted from https://stackoverflow.com/questions/29931712/chrome-autofill-covers-autocomplete-for-google-maps-api-v3/49161445#49161445\n\n (0, _react.useEffect)(function () {\n var _React$version;\n\n // TODO find out why react 18(strict mode) hangs the page loading\n if (!(_react.default !== null && _react.default !== void 0 && (_React$version = _react.default.version) !== null && _React$version !== void 0 && _React$version.startsWith(\"18\")) && _utils.isBrowser && window.MutationObserver && inputRef.current && inputRef.current instanceof HTMLInputElement) {\n observerHack.current = new MutationObserver(function () {\n observerHack.current.disconnect();\n\n if (inputRef.current) {\n inputRef.current.autocomplete = inputAutocompleteValue;\n }\n });\n observerHack.current.observe(inputRef.current, {\n attributes: true,\n attributeFilter: [\"autocomplete\"]\n });\n }\n }, [inputAutocompleteValue]);\n (0, _react.useEffect)(function () {\n if (autocompleteRef.current) {\n autocompleteRef.current.setFields(fields);\n }\n }, [fields]);\n (0, _react.useEffect)(function () {\n if (autocompleteRef.current) {\n autocompleteRef.current.setBounds(bounds);\n }\n }, [bounds]);\n (0, _react.useEffect)(function () {\n if (autocompleteRef.current) {\n autocompleteRef.current.setComponentRestrictions(componentRestrictions);\n }\n }, [componentRestrictions]);\n (0, _react.useEffect)(function () {\n if (autocompleteRef.current) {\n autocompleteRef.current.setOptions(options);\n }\n }, [options]);\n return {\n ref: inputRef,\n autocompleteRef: autocompleteRef\n };\n}","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.loadGoogleMapScript = exports.isBrowser = void 0;\nvar isBrowser = typeof window !== \"undefined\" && window.document;\nexports.isBrowser = isBrowser;\n\nvar loadGoogleMapScript = function loadGoogleMapScript(googleMapsScriptBaseUrl, googleMapsScriptUrl) {\n if (!isBrowser) return Promise.resolve();\n\n if (typeof google !== \"undefined\") {\n if (google.maps && google.maps.api) return Promise.resolve();\n }\n\n var scriptElements = document.querySelectorAll(\"script[src*=\\\"\".concat(googleMapsScriptBaseUrl, \"\\\"]\"));\n\n if (scriptElements && scriptElements.length) {\n return new Promise(function (resolve) {\n // in case we already have a script on the page and it's loaded we resolve\n if (typeof google !== \"undefined\") return resolve(); // otherwise we wait until it's loaded and resolve\n\n scriptElements[0].addEventListener(\"load\", function () {\n return resolve();\n });\n });\n }\n\n var el = document.createElement(\"script\");\n el.src = googleMapsScriptUrl;\n document.body.appendChild(el);\n return new Promise(function (resolve) {\n el.addEventListener(\"load\", function () {\n return resolve();\n });\n });\n};\n\nexports.loadGoogleMapScript = loadGoogleMapScript;","if (process.env.NODE_ENV === 'production') {\n module.exports = require('./lib/react-input-mask.production.min.js');\n} else {\n module.exports = require('./lib/react-input-mask.development.js');\n}\n","\"use strict\";function _interopDefault(e){return e&&\"object\"==typeof e&&\"default\"in e?e[\"default\"]:e}var React=_interopDefault(require(\"react\")),reactDom=require(\"react-dom\");function _defaults2(e,t){for(var n=Object.getOwnPropertyNames(t),a=0;aa.length&&isPermanentCharacter(e,t.length-1);)t=t.slice(0,t.length-1);return t.length}for(var i=a.length,r=t.length;r>=a.length;r--){var o=t[r];if(!isPermanentCharacter(e,r)&&isAllowedCharacter(e,r,o)){i=r+1;break}}return i}function isFilled(e,t){return getFilledLength(e,t)===e.mask.length}function formatValue(e,t){var n=e.maskChar,a=e.mask,i=e.prefix;if(!n){for((t=insertString(e,\"\",t,0)).lengtho.length&&(o+=l.slice(o.length,s)),t.every(function(e){for(;i=e,isPermanentCharacter(r,a=s)&&i!==l[a];){if(s>=o.length&&(o+=l[s]),t=e,n=s,u&&isPermanentCharacter(r,n)&&t===u)return!0;if(++s>=l.length)return!1}var t,n,a,i;return!isAllowedCharacter(r,s,e)&&e!==u||(s=r.length)return!1;var t,n;return(isAllowedCharacter(a,i,e)||e===o)&&i++,ii.start?h=(c=getInsertStringLength(e,a,u=l.slice(i.start,n.end),f))?i.length:0:l.length=r.length?f=r.length:f=o.length&&f\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 *

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

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

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

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

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

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

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

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

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

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

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

\n\t\t * @property {Boolean} duplicate read only If true, this message might be a duplicate of one which has already been received.\n\t\t * This is only set on messages received from the server.\n\t\t *\n\t\t */\n\t\tvar Message = function (newPayload) {\n\t\t\tvar payload;\n\t\t\tif (\n\t\t\t\ttypeof newPayload === 'string' ||\n\t\t\t\tnewPayload instanceof ArrayBuffer ||\n\t\t\t\t(ArrayBuffer.isView(newPayload) && !(newPayload instanceof DataView))\n\t\t\t) {\n\t\t\t\tpayload = newPayload;\n\t\t\t} else {\n\t\t\t\tthrow format(ERROR.INVALID_ARGUMENT, [newPayload, 'newPayload']);\n\t\t\t}\n\n\t\t\tvar destinationName;\n\t\t\tvar qos = 0;\n\t\t\tvar retained = false;\n\t\t\tvar duplicate = false;\n\n\t\t\tObject.defineProperties(this, {\n\t\t\t\tpayloadString: {\n\t\t\t\t\tenumerable: true,\n\t\t\t\t\tget: function () {\n\t\t\t\t\t\tif (typeof payload === 'string') return payload;\n\t\t\t\t\t\telse return parseUTF8(payload, 0, payload.length);\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\tpayloadBytes: {\n\t\t\t\t\tenumerable: true,\n\t\t\t\t\tget: function () {\n\t\t\t\t\t\tif (typeof payload === 'string') {\n\t\t\t\t\t\t\tvar buffer = new ArrayBuffer(UTF8Length(payload));\n\t\t\t\t\t\t\tvar byteStream = new Uint8Array(buffer);\n\t\t\t\t\t\t\tstringToUTF8(payload, byteStream, 0);\n\n\t\t\t\t\t\t\treturn byteStream;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\treturn payload;\n\t\t\t\t\t\t}\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\tdestinationName: {\n\t\t\t\t\tenumerable: true,\n\t\t\t\t\tget: function () {\n\t\t\t\t\t\treturn destinationName;\n\t\t\t\t\t},\n\t\t\t\t\tset: function (newDestinationName) {\n\t\t\t\t\t\tif (typeof newDestinationName === 'string')\n\t\t\t\t\t\t\tdestinationName = newDestinationName;\n\t\t\t\t\t\telse\n\t\t\t\t\t\t\tthrow new Error(\n\t\t\t\t\t\t\t\tformat(ERROR.INVALID_ARGUMENT, [\n\t\t\t\t\t\t\t\t\tnewDestinationName,\n\t\t\t\t\t\t\t\t\t'newDestinationName',\n\t\t\t\t\t\t\t\t])\n\t\t\t\t\t\t\t);\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\tqos: {\n\t\t\t\t\tenumerable: true,\n\t\t\t\t\tget: function () {\n\t\t\t\t\t\treturn qos;\n\t\t\t\t\t},\n\t\t\t\t\tset: function (newQos) {\n\t\t\t\t\t\tif (newQos === 0 || newQos === 1 || newQos === 2) qos = newQos;\n\t\t\t\t\t\telse throw new Error('Invalid argument:' + newQos);\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\tretained: {\n\t\t\t\t\tenumerable: true,\n\t\t\t\t\tget: function () {\n\t\t\t\t\t\treturn retained;\n\t\t\t\t\t},\n\t\t\t\t\tset: function (newRetained) {\n\t\t\t\t\t\tif (typeof newRetained === 'boolean') retained = newRetained;\n\t\t\t\t\t\telse\n\t\t\t\t\t\t\tthrow new Error(\n\t\t\t\t\t\t\t\tformat(ERROR.INVALID_ARGUMENT, [newRetained, 'newRetained'])\n\t\t\t\t\t\t\t);\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\ttopic: {\n\t\t\t\t\tenumerable: true,\n\t\t\t\t\tget: function () {\n\t\t\t\t\t\treturn destinationName;\n\t\t\t\t\t},\n\t\t\t\t\tset: function (newTopic) {\n\t\t\t\t\t\tdestinationName = newTopic;\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\tduplicate: {\n\t\t\t\t\tenumerable: true,\n\t\t\t\t\tget: function () {\n\t\t\t\t\t\treturn duplicate;\n\t\t\t\t\t},\n\t\t\t\t\tset: function (newDuplicate) {\n\t\t\t\t\t\tduplicate = newDuplicate;\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t});\n\t\t};\n\n\t\t// Module contents.\n\t\treturn {\n\t\t\tClient: Client,\n\t\t\tMessage: Message,\n\t\t};\n\t\t// eslint-disable-next-line no-nested-ternary\n\t})(\n\t\ttypeof global !== 'undefined'\n\t\t\t? global\n\t\t\t: typeof self !== 'undefined'\n\t\t\t? self\n\t\t\t: typeof window !== 'undefined'\n\t\t\t? window\n\t\t\t: {}\n\t);\n\treturn PahoMQTT;\n});\n","import { MsSubtleCrypto } from \"./MsSubtleCrypto\";\n\ntype SubtleCryptoMethod =\n | \"decrypt\"\n | \"digest\"\n | \"encrypt\"\n | \"exportKey\"\n | \"generateKey\"\n | \"importKey\"\n | \"sign\"\n | \"verify\";\n\nconst msSubtleCryptoMethods: Array = [\n \"decrypt\",\n \"digest\",\n \"encrypt\",\n \"exportKey\",\n \"generateKey\",\n \"importKey\",\n \"sign\",\n \"verify\"\n];\n\n/**\n * The value accessible as `window.msCrypto` in Internet Explorer 11.\n */\nexport interface MsCrypto {\n getRandomValues: (toFill: Uint8Array) => void;\n subtle: MsSubtleCrypto;\n}\n\n/**\n * The `window` object in Internet Explorer 11. This interface does not\n * exhaustively document the prefixed features of `window` in IE11.\n */\nexport interface MsWindow extends Window {\n MSInputMethodContext: any;\n msCrypto: MsCrypto;\n}\n\nfunction quacksLikeAnMsWindow(window: Window): window is MsWindow {\n return \"MSInputMethodContext\" in window && \"msCrypto\" in window;\n}\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 */\nexport function isMsWindow(window: Window): window is MsWindow {\n if (quacksLikeAnMsWindow(window) && window.msCrypto.subtle !== undefined) {\n const { getRandomValues, subtle } = window.msCrypto;\n return msSubtleCryptoMethods\n .map(methodName => subtle[methodName])\n .concat(getRandomValues)\n .every(method => typeof method === \"function\");\n }\n\n return false;\n}\n","export * from \"./CryptoOperation\";\nexport * from \"./Key\";\nexport * from \"./KeyOperation\";\nexport * from \"./MsSubtleCrypto\";\nexport * from \"./MsWindow\";\n","export const SHA_256_HASH: { name: \"SHA-256\" } = { name: \"SHA-256\" };\n\nexport const SHA_256_HMAC_ALGO: { name: \"HMAC\"; hash: { name: \"SHA-256\" } } = {\n name: \"HMAC\",\n hash: SHA_256_HASH\n};\n\nexport const EMPTY_DATA_SHA_256 = new Uint8Array([\n 227,\n 176,\n 196,\n 66,\n 152,\n 252,\n 28,\n 20,\n 154,\n 251,\n 244,\n 200,\n 153,\n 111,\n 185,\n 36,\n 39,\n 174,\n 65,\n 228,\n 100,\n 155,\n 147,\n 76,\n 164,\n 149,\n 153,\n 27,\n 120,\n 82,\n 184,\n 85\n]);\n","import { Sha256 as Ie11Sha256 } from \"./ie11Sha256\";\nimport { Sha256 as WebCryptoSha256 } from \"./webCryptoSha256\";\nimport { Sha256 as JsSha256 } from \"@aws-crypto/sha256-js\";\nimport { Hash, SourceData } from \"@aws-sdk/types\";\nimport { supportsWebCrypto } from \"@aws-crypto/supports-web-crypto\";\nimport { isMsWindow } from \"@aws-crypto/ie11-detection\";\nimport { locateWindow } from \"@aws-sdk/util-locate-window\";\n\nexport class Sha256 implements Hash {\n private readonly hash: Hash;\n\n constructor(secret?: SourceData) {\n if (supportsWebCrypto(locateWindow())) {\n this.hash = new WebCryptoSha256(secret);\n } else if (isMsWindow(locateWindow())) {\n this.hash = new Ie11Sha256(secret);\n } else {\n this.hash = new JsSha256(secret);\n }\n }\n\n update(data: SourceData, encoding?: \"utf8\" | \"ascii\" | \"latin1\"): void {\n this.hash.update(data, encoding);\n }\n\n digest(): Promise {\n return this.hash.digest();\n }\n}\n","import { isEmptyData } from \"./isEmptyData\";\nimport { SHA_256_HMAC_ALGO } from \"./constants\";\nimport { Hash, SourceData } from \"@aws-sdk/types\";\nimport { fromUtf8 } from \"@aws-sdk/util-utf8-browser\";\nimport { CryptoOperation, Key, MsWindow } from \"@aws-crypto/ie11-detection\";\nimport { locateWindow } from \"@aws-sdk/util-locate-window\";\n\nexport class Sha256 implements Hash {\n private operation: Promise;\n\n constructor(secret?: SourceData) {\n if (secret) {\n this.operation = getKeyPromise(secret).then(keyData =>\n (locateWindow() as MsWindow).msCrypto.subtle.sign(\n SHA_256_HMAC_ALGO,\n keyData\n )\n );\n this.operation.catch(() => {});\n } else {\n this.operation = Promise.resolve(\n (locateWindow() as MsWindow).msCrypto.subtle.digest(\"SHA-256\")\n );\n }\n }\n\n update(toHash: SourceData): void {\n if (isEmptyData(toHash)) {\n return;\n }\n\n this.operation = this.operation.then(operation => {\n operation.onerror = () => {\n this.operation = Promise.reject(\n new Error(\"Error encountered updating hash\")\n );\n };\n operation.process(toArrayBufferView(toHash));\n\n return operation;\n });\n this.operation.catch(() => {});\n }\n\n digest(): Promise {\n return this.operation.then(\n operation =>\n new Promise((resolve, reject) => {\n operation.onerror = () => {\n reject(new Error(\"Error encountered finalizing hash\"));\n };\n operation.oncomplete = () => {\n if (operation.result) {\n resolve(new Uint8Array(operation.result));\n }\n reject(new Error(\"Error encountered finalizing hash\"));\n };\n\n operation.finish();\n })\n );\n }\n}\n\nfunction getKeyPromise(secret: SourceData): Promise {\n return new Promise((resolve, reject) => {\n const keyOperation = (locateWindow() as MsWindow).msCrypto.subtle.importKey(\n \"raw\",\n toArrayBufferView(secret),\n SHA_256_HMAC_ALGO,\n false,\n [\"sign\"]\n );\n\n keyOperation.oncomplete = () => {\n if (keyOperation.result) {\n resolve(keyOperation.result);\n }\n\n reject(new Error(\"ImportKey completed without importing key.\"));\n };\n keyOperation.onerror = () => {\n reject(new Error(\"ImportKey failed to import key.\"));\n };\n });\n}\n\nfunction toArrayBufferView(data: SourceData): Uint8Array {\n if (typeof data === \"string\") {\n return fromUtf8(data);\n }\n\n if (ArrayBuffer.isView(data)) {\n return new Uint8Array(\n data.buffer,\n data.byteOffset,\n data.byteLength / Uint8Array.BYTES_PER_ELEMENT\n );\n }\n\n return new Uint8Array(data);\n}\n","export * from \"./crossPlatformSha256\";\nexport { Sha256 as Ie11Sha256 } from \"./ie11Sha256\";\nexport { Sha256 as WebCryptoSha256 } from \"./webCryptoSha256\";\n","import { SourceData } from \"@aws-sdk/types\";\n\nexport function isEmptyData(data: SourceData): boolean {\n if (typeof data === \"string\") {\n return data.length === 0;\n }\n\n return data.byteLength === 0;\n}\n","import { Hash, SourceData } from \"@aws-sdk/types\";\nimport { isEmptyData, convertToBuffer } from \"@aws-crypto/util\";\nimport {\n EMPTY_DATA_SHA_256,\n SHA_256_HASH,\n SHA_256_HMAC_ALGO,\n} from \"./constants\";\nimport { locateWindow } from \"@aws-sdk/util-locate-window\";\n\nexport class Sha256 implements Hash {\n private readonly key: Promise | undefined;\n private toHash: Uint8Array = new Uint8Array(0);\n\n constructor(secret?: SourceData) {\n if (secret !== void 0) {\n this.key = new Promise((resolve, reject) => {\n locateWindow()\n .crypto.subtle.importKey(\n \"raw\",\n convertToBuffer(secret),\n SHA_256_HMAC_ALGO,\n false,\n [\"sign\"]\n )\n .then(resolve, reject);\n });\n this.key.catch(() => {});\n }\n }\n\n update(data: SourceData): void {\n if (isEmptyData(data)) {\n return;\n }\n\n const update = convertToBuffer(data);\n const typedArray = new Uint8Array(\n this.toHash.byteLength + update.byteLength\n );\n typedArray.set(this.toHash, 0);\n typedArray.set(update, this.toHash.byteLength);\n this.toHash = typedArray;\n }\n\n digest(): Promise {\n if (this.key) {\n return this.key.then((key) =>\n locateWindow()\n .crypto.subtle.sign(SHA_256_HMAC_ALGO, key, this.toHash)\n .then((data) => new Uint8Array(data))\n );\n }\n\n if (isEmptyData(this.toHash)) {\n return Promise.resolve(EMPTY_DATA_SHA_256);\n }\n\n return Promise.resolve()\n .then(() =>\n locateWindow().crypto.subtle.digest(SHA_256_HASH, this.toHash)\n )\n .then((data) => Promise.resolve(new Uint8Array(data)));\n }\n}\n","import {\n BLOCK_SIZE,\n DIGEST_LENGTH,\n INIT,\n KEY,\n MAX_HASHABLE_LENGTH\n} from \"./constants\";\n\n/**\n * @internal\n */\nexport class RawSha256 {\n private state: Int32Array = Int32Array.from(INIT);\n private temp: Int32Array = new Int32Array(64);\n private buffer: Uint8Array = new Uint8Array(64);\n private bufferLength: number = 0;\n private bytesHashed: number = 0;\n\n /**\n * @internal\n */\n finished: boolean = false;\n\n update(data: Uint8Array): void {\n if (this.finished) {\n throw new Error(\"Attempted to update an already finished hash.\");\n }\n\n let position = 0;\n let { byteLength } = data;\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\n digest(): Uint8Array {\n if (!this.finished) {\n const bitsHashed = this.bytesHashed * 8;\n const bufferView = new DataView(\n this.buffer.buffer,\n this.buffer.byteOffset,\n this.buffer.byteLength\n );\n\n const undecoratedLength = this.bufferLength;\n bufferView.setUint8(this.bufferLength++, 0x80);\n\n // Ensure the final block has enough room for the hashed length\n if (undecoratedLength % BLOCK_SIZE >= BLOCK_SIZE - 8) {\n for (let i = this.bufferLength; i < BLOCK_SIZE; i++) {\n bufferView.setUint8(i, 0);\n }\n this.hashBuffer();\n this.bufferLength = 0;\n }\n\n for (let i = this.bufferLength; i < BLOCK_SIZE - 8; i++) {\n bufferView.setUint8(i, 0);\n }\n bufferView.setUint32(\n BLOCK_SIZE - 8,\n Math.floor(bitsHashed / 0x100000000),\n true\n );\n bufferView.setUint32(BLOCK_SIZE - 4, bitsHashed);\n\n this.hashBuffer();\n\n this.finished = true;\n }\n\n // The value in state is little-endian rather than big-endian, so flip\n // each word into a new Uint8Array\n const out = new Uint8Array(DIGEST_LENGTH);\n for (let 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 private hashBuffer(): void {\n const { buffer, state } = this;\n\n let 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 (let i = 0; i < BLOCK_SIZE; i++) {\n if (i < 16) {\n this.temp[i] =\n ((buffer[i * 4] & 0xff) << 24) |\n ((buffer[i * 4 + 1] & 0xff) << 16) |\n ((buffer[i * 4 + 2] & 0xff) << 8) |\n (buffer[i * 4 + 3] & 0xff);\n } else {\n let u = this.temp[i - 2];\n const t1 =\n ((u >>> 17) | (u << 15)) ^ ((u >>> 19) | (u << 13)) ^ (u >>> 10);\n\n u = this.temp[i - 15];\n const t2 =\n ((u >>> 7) | (u << 25)) ^ ((u >>> 18) | (u << 14)) ^ (u >>> 3);\n\n this.temp[i] =\n ((t1 + this.temp[i - 7]) | 0) + ((t2 + this.temp[i - 16]) | 0);\n }\n\n const t1 =\n ((((((state4 >>> 6) | (state4 << 26)) ^\n ((state4 >>> 11) | (state4 << 21)) ^\n ((state4 >>> 25) | (state4 << 7))) +\n ((state4 & state5) ^ (~state4 & state6))) |\n 0) +\n ((state7 + ((KEY[i] + this.temp[i]) | 0)) | 0)) |\n 0;\n\n const t2 =\n ((((state0 >>> 2) | (state0 << 30)) ^\n ((state0 >>> 13) | (state0 << 19)) ^\n ((state0 >>> 22) | (state0 << 10))) +\n ((state0 & state1) ^ (state0 & state2) ^ (state1 & state2))) |\n 0;\n\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","/**\n * @internal\n */\nexport const BLOCK_SIZE: number = 64;\n\n/**\n * @internal\n */\nexport const DIGEST_LENGTH: number = 32;\n\n/**\n * @internal\n */\nexport const KEY = new Uint32Array([\n 0x428a2f98,\n 0x71374491,\n 0xb5c0fbcf,\n 0xe9b5dba5,\n 0x3956c25b,\n 0x59f111f1,\n 0x923f82a4,\n 0xab1c5ed5,\n 0xd807aa98,\n 0x12835b01,\n 0x243185be,\n 0x550c7dc3,\n 0x72be5d74,\n 0x80deb1fe,\n 0x9bdc06a7,\n 0xc19bf174,\n 0xe49b69c1,\n 0xefbe4786,\n 0x0fc19dc6,\n 0x240ca1cc,\n 0x2de92c6f,\n 0x4a7484aa,\n 0x5cb0a9dc,\n 0x76f988da,\n 0x983e5152,\n 0xa831c66d,\n 0xb00327c8,\n 0xbf597fc7,\n 0xc6e00bf3,\n 0xd5a79147,\n 0x06ca6351,\n 0x14292967,\n 0x27b70a85,\n 0x2e1b2138,\n 0x4d2c6dfc,\n 0x53380d13,\n 0x650a7354,\n 0x766a0abb,\n 0x81c2c92e,\n 0x92722c85,\n 0xa2bfe8a1,\n 0xa81a664b,\n 0xc24b8b70,\n 0xc76c51a3,\n 0xd192e819,\n 0xd6990624,\n 0xf40e3585,\n 0x106aa070,\n 0x19a4c116,\n 0x1e376c08,\n 0x2748774c,\n 0x34b0bcb5,\n 0x391c0cb3,\n 0x4ed8aa4a,\n 0x5b9cca4f,\n 0x682e6ff3,\n 0x748f82ee,\n 0x78a5636f,\n 0x84c87814,\n 0x8cc70208,\n 0x90befffa,\n 0xa4506ceb,\n 0xbef9a3f7,\n 0xc67178f2\n]);\n\n/**\n * @internal\n */\nexport const INIT = [\n 0x6a09e667,\n 0xbb67ae85,\n 0x3c6ef372,\n 0xa54ff53a,\n 0x510e527f,\n 0x9b05688c,\n 0x1f83d9ab,\n 0x5be0cd19\n];\n\n/**\n * @internal\n */\nexport const MAX_HASHABLE_LENGTH = 2 ** 53 - 1;\n","export * from \"./jsSha256\";\n","import { BLOCK_SIZE } from \"./constants\";\nimport { RawSha256 } from \"./RawSha256\";\nimport { Hash, SourceData } from \"@aws-sdk/types\";\nimport { isEmptyData, convertToBuffer } from \"@aws-crypto/util\";\n\nexport class Sha256 implements Hash {\n private readonly hash = new RawSha256();\n private readonly outer?: RawSha256;\n private error: any;\n\n constructor(secret?: SourceData) {\n if (secret) {\n this.outer = new RawSha256();\n const inner = bufferFromSecret(secret);\n const outer = new Uint8Array(BLOCK_SIZE);\n outer.set(inner);\n\n for (let i = 0; i < BLOCK_SIZE; i++) {\n inner[i] ^= 0x36;\n outer[i] ^= 0x5c;\n }\n\n this.hash.update(inner);\n this.outer.update(outer);\n\n // overwrite the copied key in memory\n for (let i = 0; i < inner.byteLength; i++) {\n inner[i] = 0;\n }\n }\n }\n\n update(toHash: SourceData): void {\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\n /* This synchronous method keeps compatibility\n * with the v2 aws-sdk.\n */\n digestSync(): Uint8Array {\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\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 async digest(): Promise {\n return this.digestSync();\n }\n}\n\nfunction bufferFromSecret(secret: SourceData): Uint8Array {\n let input = convertToBuffer(secret);\n\n if (input.byteLength > BLOCK_SIZE) {\n const bufferHash = new RawSha256();\n bufferHash.update(input);\n input = bufferHash.digest();\n }\n\n const buffer = new Uint8Array(BLOCK_SIZE);\n buffer.set(input);\n return buffer;\n}\n","import {\n BLOCK_SIZE,\n DIGEST_LENGTH,\n INIT,\n KEY,\n MAX_HASHABLE_LENGTH\n} from \"./constants\";\n\n/**\n * @internal\n */\nexport class RawSha256 {\n private state: Int32Array = Int32Array.from(INIT);\n private temp: Int32Array = new Int32Array(64);\n private buffer: Uint8Array = new Uint8Array(64);\n private bufferLength: number = 0;\n private bytesHashed: number = 0;\n\n /**\n * @internal\n */\n finished: boolean = false;\n\n update(data: Uint8Array): void {\n if (this.finished) {\n throw new Error(\"Attempted to update an already finished hash.\");\n }\n\n let position = 0;\n let { byteLength } = data;\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\n digest(): Uint8Array {\n if (!this.finished) {\n const bitsHashed = this.bytesHashed * 8;\n const bufferView = new DataView(\n this.buffer.buffer,\n this.buffer.byteOffset,\n this.buffer.byteLength\n );\n\n const undecoratedLength = this.bufferLength;\n bufferView.setUint8(this.bufferLength++, 0x80);\n\n // Ensure the final block has enough room for the hashed length\n if (undecoratedLength % BLOCK_SIZE >= BLOCK_SIZE - 8) {\n for (let i = this.bufferLength; i < BLOCK_SIZE; i++) {\n bufferView.setUint8(i, 0);\n }\n this.hashBuffer();\n this.bufferLength = 0;\n }\n\n for (let i = this.bufferLength; i < BLOCK_SIZE - 8; i++) {\n bufferView.setUint8(i, 0);\n }\n bufferView.setUint32(\n BLOCK_SIZE - 8,\n Math.floor(bitsHashed / 0x100000000),\n true\n );\n bufferView.setUint32(BLOCK_SIZE - 4, bitsHashed);\n\n this.hashBuffer();\n\n this.finished = true;\n }\n\n // The value in state is little-endian rather than big-endian, so flip\n // each word into a new Uint8Array\n const out = new Uint8Array(DIGEST_LENGTH);\n for (let 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 private hashBuffer(): void {\n const { buffer, state } = this;\n\n let 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 (let i = 0; i < BLOCK_SIZE; i++) {\n if (i < 16) {\n this.temp[i] =\n ((buffer[i * 4] & 0xff) << 24) |\n ((buffer[i * 4 + 1] & 0xff) << 16) |\n ((buffer[i * 4 + 2] & 0xff) << 8) |\n (buffer[i * 4 + 3] & 0xff);\n } else {\n let u = this.temp[i - 2];\n const t1 =\n ((u >>> 17) | (u << 15)) ^ ((u >>> 19) | (u << 13)) ^ (u >>> 10);\n\n u = this.temp[i - 15];\n const t2 =\n ((u >>> 7) | (u << 25)) ^ ((u >>> 18) | (u << 14)) ^ (u >>> 3);\n\n this.temp[i] =\n ((t1 + this.temp[i - 7]) | 0) + ((t2 + this.temp[i - 16]) | 0);\n }\n\n const t1 =\n ((((((state4 >>> 6) | (state4 << 26)) ^\n ((state4 >>> 11) | (state4 << 21)) ^\n ((state4 >>> 25) | (state4 << 7))) +\n ((state4 & state5) ^ (~state4 & state6))) |\n 0) +\n ((state7 + ((KEY[i] + this.temp[i]) | 0)) | 0)) |\n 0;\n\n const t2 =\n ((((state0 >>> 2) | (state0 << 30)) ^\n ((state0 >>> 13) | (state0 << 19)) ^\n ((state0 >>> 22) | (state0 << 10))) +\n ((state0 & state1) ^ (state0 & state2) ^ (state1 & state2))) |\n 0;\n\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","/**\n * @internal\n */\nexport const BLOCK_SIZE: number = 64;\n\n/**\n * @internal\n */\nexport const DIGEST_LENGTH: number = 32;\n\n/**\n * @internal\n */\nexport const KEY = new Uint32Array([\n 0x428a2f98,\n 0x71374491,\n 0xb5c0fbcf,\n 0xe9b5dba5,\n 0x3956c25b,\n 0x59f111f1,\n 0x923f82a4,\n 0xab1c5ed5,\n 0xd807aa98,\n 0x12835b01,\n 0x243185be,\n 0x550c7dc3,\n 0x72be5d74,\n 0x80deb1fe,\n 0x9bdc06a7,\n 0xc19bf174,\n 0xe49b69c1,\n 0xefbe4786,\n 0x0fc19dc6,\n 0x240ca1cc,\n 0x2de92c6f,\n 0x4a7484aa,\n 0x5cb0a9dc,\n 0x76f988da,\n 0x983e5152,\n 0xa831c66d,\n 0xb00327c8,\n 0xbf597fc7,\n 0xc6e00bf3,\n 0xd5a79147,\n 0x06ca6351,\n 0x14292967,\n 0x27b70a85,\n 0x2e1b2138,\n 0x4d2c6dfc,\n 0x53380d13,\n 0x650a7354,\n 0x766a0abb,\n 0x81c2c92e,\n 0x92722c85,\n 0xa2bfe8a1,\n 0xa81a664b,\n 0xc24b8b70,\n 0xc76c51a3,\n 0xd192e819,\n 0xd6990624,\n 0xf40e3585,\n 0x106aa070,\n 0x19a4c116,\n 0x1e376c08,\n 0x2748774c,\n 0x34b0bcb5,\n 0x391c0cb3,\n 0x4ed8aa4a,\n 0x5b9cca4f,\n 0x682e6ff3,\n 0x748f82ee,\n 0x78a5636f,\n 0x84c87814,\n 0x8cc70208,\n 0x90befffa,\n 0xa4506ceb,\n 0xbef9a3f7,\n 0xc67178f2\n]);\n\n/**\n * @internal\n */\nexport const INIT = [\n 0x6a09e667,\n 0xbb67ae85,\n 0x3c6ef372,\n 0xa54ff53a,\n 0x510e527f,\n 0x9b05688c,\n 0x1f83d9ab,\n 0x5be0cd19\n];\n\n/**\n * @internal\n */\nexport const MAX_HASHABLE_LENGTH = 2 ** 53 - 1;\n","export * from \"./jsSha256\";\n","import { BLOCK_SIZE } from \"./constants\";\nimport { RawSha256 } from \"./RawSha256\";\nimport { Checksum, SourceData } from \"@aws-sdk/types\";\nimport { isEmptyData, convertToBuffer } from \"@aws-crypto/util\";\n\nexport class Sha256 implements Checksum {\n private readonly secret?: SourceData;\n private hash: RawSha256;\n private outer?: RawSha256;\n private error: any;\n\n constructor(secret?: SourceData) {\n this.secret = secret;\n this.hash = new RawSha256();\n this.reset();\n }\n\n update(toHash: SourceData): void {\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\n /* This synchronous method keeps compatibility\n * with the v2 aws-sdk.\n */\n digestSync(): Uint8Array {\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\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 async digest(): Promise {\n return this.digestSync();\n }\n\n reset(): void {\n this.hash = new RawSha256();\n if (this.secret) {\n this.outer = new RawSha256();\n const inner = bufferFromSecret(this.secret);\n const outer = new Uint8Array(BLOCK_SIZE);\n outer.set(inner);\n\n for (let i = 0; i < BLOCK_SIZE; i++) {\n inner[i] ^= 0x36;\n outer[i] ^= 0x5c;\n }\n\n this.hash.update(inner);\n this.outer.update(outer);\n\n // overwrite the copied key in memory\n for (let i = 0; i < inner.byteLength; i++) {\n inner[i] = 0;\n }\n }\n }\n}\n\nfunction bufferFromSecret(secret: SourceData): Uint8Array {\n let input = convertToBuffer(secret);\n\n if (input.byteLength > BLOCK_SIZE) {\n const bufferHash = new RawSha256();\n bufferHash.update(input);\n input = bufferHash.digest();\n }\n\n const buffer = new Uint8Array(BLOCK_SIZE);\n buffer.set(input);\n return buffer;\n}\n","export * from \"./supportsWebCrypto\";\n","type SubtleCryptoMethod =\n | \"decrypt\"\n | \"digest\"\n | \"encrypt\"\n | \"exportKey\"\n | \"generateKey\"\n | \"importKey\"\n | \"sign\"\n | \"verify\";\n\nconst subtleCryptoMethods: Array = [\n \"decrypt\",\n \"digest\",\n \"encrypt\",\n \"exportKey\",\n \"generateKey\",\n \"importKey\",\n \"sign\",\n \"verify\"\n];\n\nexport function supportsWebCrypto(window: Window): boolean {\n if (\n supportsSecureRandom(window) &&\n typeof window.crypto.subtle === \"object\"\n ) {\n const { subtle } = window.crypto;\n\n return supportsSubtleCrypto(subtle);\n }\n\n return false;\n}\n\nexport function supportsSecureRandom(window: Window): boolean {\n if (typeof window === \"object\" && typeof window.crypto === \"object\") {\n const { getRandomValues } = window.crypto;\n\n return typeof getRandomValues === \"function\";\n }\n\n return false;\n}\n\nexport function supportsSubtleCrypto(subtle: SubtleCrypto) {\n return (\n subtle &&\n subtleCryptoMethods.every(\n methodName => typeof subtle[methodName] === \"function\"\n )\n );\n}\n\nexport async function supportsZeroByteGCM(subtle: SubtleCrypto) {\n if (!supportsSubtleCrypto(subtle)) return false;\n try {\n const key = await subtle.generateKey(\n { name: \"AES-GCM\", length: 128 },\n false,\n [\"encrypt\"]\n );\n const zeroByteAuthTag = await subtle.encrypt(\n {\n name: \"AES-GCM\",\n iv: new Uint8Array(Array(12)),\n additionalData: new Uint8Array(Array(16)),\n tagLength: 128\n },\n key,\n new Uint8Array(0)\n );\n return zeroByteAuthTag.byteLength === 16;\n } catch {\n return false;\n }\n}\n","// Copyright Amazon.com Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\n\nimport { SourceData } from \"@aws-sdk/types\";\nimport { fromUtf8 as fromUtf8Browser } from \"@aws-sdk/util-utf8-browser\";\n\n// Quick polyfill\nconst fromUtf8 =\n typeof Buffer !== \"undefined\" && Buffer.from\n ? (input: string) => Buffer.from(input, \"utf8\")\n : fromUtf8Browser;\n\nexport function convertToBuffer(data: SourceData): Uint8Array {\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(\n data.buffer,\n data.byteOffset,\n data.byteLength / Uint8Array.BYTES_PER_ELEMENT\n );\n }\n\n return new Uint8Array(data);\n}\n","// Copyright Amazon.com Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\n\nexport { convertToBuffer } from \"./convertToBuffer\";\nexport { isEmptyData } from \"./isEmptyData\";\nexport { numToUint8 } from \"./numToUint8\";\nexport {uint32ArrayFrom} from './uint32ArrayFrom';\n","// Copyright Amazon.com Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\n\nimport { SourceData } from \"@aws-sdk/types\";\n\nexport function isEmptyData(data: SourceData): boolean {\n if (typeof data === \"string\") {\n return data.length === 0;\n }\n\n return data.byteLength === 0;\n}\n","// Copyright Amazon.com Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\n\nexport function numToUint8(num: number) {\n return new Uint8Array([\n (num & 0xff000000) >> 24,\n (num & 0x00ff0000) >> 16,\n (num & 0x0000ff00) >> 8,\n num & 0x000000ff,\n ]);\n}\n","// Copyright Amazon.com Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\n\n// IE 11 does not support Array.from, so we do it manually\nexport function uint32ArrayFrom(a_lookUpTable: Array): Uint32Array {\n if (!Array.from) {\n const return_array = new Uint32Array(a_lookUpTable.length)\n let a_index = 0\n while (a_index < a_lookUpTable.length) {\n return_array[a_index] = a_lookUpTable[a_index]\n }\n return return_array\n }\n return Uint32Array.from(a_lookUpTable)\n}\n","// Copyright Amazon.com Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\n\nimport { SourceData } from \"@aws-sdk/types\";\nimport { fromUtf8 as fromUtf8Browser } from \"@aws-sdk/util-utf8-browser\";\n\n// Quick polyfill\nconst fromUtf8 =\n typeof Buffer !== \"undefined\" && Buffer.from\n ? (input: string) => Buffer.from(input, \"utf8\")\n : fromUtf8Browser;\n\nexport function convertToBuffer(data: SourceData): Uint8Array {\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(\n data.buffer,\n data.byteOffset,\n data.byteLength / Uint8Array.BYTES_PER_ELEMENT\n );\n }\n\n return new Uint8Array(data);\n}\n","// Copyright Amazon.com Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\n\nexport { convertToBuffer } from \"./convertToBuffer\";\nexport { isEmptyData } from \"./isEmptyData\";\nexport { numToUint8 } from \"./numToUint8\";\nexport {uint32ArrayFrom} from './uint32ArrayFrom';\n","// Copyright Amazon.com Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\n\nimport { SourceData } from \"@aws-sdk/types\";\n\nexport function isEmptyData(data: SourceData): boolean {\n if (typeof data === \"string\") {\n return data.length === 0;\n }\n\n return data.byteLength === 0;\n}\n","// Copyright Amazon.com Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\n\nexport function numToUint8(num: number) {\n return new Uint8Array([\n (num & 0xff000000) >> 24,\n (num & 0x00ff0000) >> 16,\n (num & 0x0000ff00) >> 8,\n num & 0x000000ff,\n ]);\n}\n","// Copyright Amazon.com Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\n\n// IE 11 does not support Array.from, so we do it manually\nexport function uint32ArrayFrom(a_lookUpTable: Array): Uint32Array {\n if (!Uint32Array.from) {\n const return_array = new Uint32Array(a_lookUpTable.length)\n let a_index = 0\n while (a_index < a_lookUpTable.length) {\n return_array[a_index] = a_lookUpTable[a_index]\n a_index += 1\n }\n return return_array\n }\n return Uint32Array.from(a_lookUpTable)\n}\n","const fallbackWindow = {};\nexport function locateWindow() {\n if (typeof window !== \"undefined\") {\n return window;\n }\n else if (typeof self !== \"undefined\") {\n return self;\n }\n return fallbackWindow;\n}\n","import { fromUtf8 as jsFromUtf8, toUtf8 as jsToUtf8 } from \"./pureJs\";\nimport { fromUtf8 as textEncoderFromUtf8, toUtf8 as textEncoderToUtf8 } from \"./whatwgEncodingApi\";\nexport const fromUtf8 = (input) => typeof TextEncoder === \"function\" ? textEncoderFromUtf8(input) : jsFromUtf8(input);\nexport const toUtf8 = (input) => typeof TextDecoder === \"function\" ? textEncoderToUtf8(input) : jsToUtf8(input);\n","export function fromUtf8(input) {\n return new TextEncoder().encode(input);\n}\nexport function toUtf8(input) {\n return new TextDecoder(\"utf-8\").decode(input);\n}\n","export const fromUtf8 = (input) => {\n const bytes = [];\n for (let i = 0, len = input.length; i < len; i++) {\n const value = input.charCodeAt(i);\n if (value < 0x80) {\n bytes.push(value);\n }\n else if (value < 0x800) {\n bytes.push((value >> 6) | 0b11000000, (value & 0b111111) | 0b10000000);\n }\n else if (i + 1 < input.length && (value & 0xfc00) === 0xd800 && (input.charCodeAt(i + 1) & 0xfc00) === 0xdc00) {\n const surrogatePair = 0x10000 + ((value & 0b1111111111) << 10) + (input.charCodeAt(++i) & 0b1111111111);\n bytes.push((surrogatePair >> 18) | 0b11110000, ((surrogatePair >> 12) & 0b111111) | 0b10000000, ((surrogatePair >> 6) & 0b111111) | 0b10000000, (surrogatePair & 0b111111) | 0b10000000);\n }\n else {\n bytes.push((value >> 12) | 0b11100000, ((value >> 6) & 0b111111) | 0b10000000, (value & 0b111111) | 0b10000000);\n }\n }\n return Uint8Array.from(bytes);\n};\nexport const toUtf8 = (input) => {\n let decoded = \"\";\n for (let i = 0, len = input.length; i < len; i++) {\n const byte = input[i];\n if (byte < 0x80) {\n decoded += String.fromCharCode(byte);\n }\n else if (0b11000000 <= byte && byte < 0b11100000) {\n const nextByte = input[++i];\n decoded += String.fromCharCode(((byte & 0b11111) << 6) | (nextByte & 0b111111));\n }\n else if (0b11110000 <= byte && byte < 0b101101101) {\n const surrogatePair = [byte, input[++i], input[++i], input[++i]];\n const encoded = \"%\" + surrogatePair.map((byteValue) => byteValue.toString(16)).join(\"%\");\n decoded += decodeURIComponent(encoded);\n }\n else {\n decoded += String.fromCharCode(((byte & 0b1111) << 12) | ((input[++i] & 0b111111) << 6) | (input[++i] & 0b111111));\n }\n }\n return decoded;\n};\n","/*\n * This file defines flags and constants that can be modified during compile time in order to facilitate tree shaking\n * for users.\n *\n * Debug flags need to be declared in each package individually and must not be imported across package boundaries,\n * because some build tools have trouble tree-shaking imported guards.\n *\n * As a convention, we define debug flags in a `flags.ts` file in the root of a package's `src` folder.\n *\n * Debug flag files will contain \"magic strings\" like `__SENTRY_DEBUG__` that may get replaced with actual values during\n * our, or the user's build process. Take care when introducing new flags - they must not throw if they are not\n * replaced.\n */\n\ndeclare const __SENTRY_DEBUG__: boolean;\n\n/** Flag that is true for debug builds, false otherwise. */\nexport const IS_DEBUG_BUILD = typeof __SENTRY_DEBUG__ === 'undefined' ? true : __SENTRY_DEBUG__;\n","import { Session as SessionInterface, SessionContext, SessionStatus } from '@sentry/types';\nimport { dropUndefinedKeys, timestampInSeconds, uuid4 } from '@sentry/utils';\n\n/**\n * @inheritdoc\n */\nexport class Session implements SessionInterface {\n public userAgent?: string;\n public errors: number = 0;\n public release?: string;\n public sid: string = uuid4();\n public did?: string;\n public timestamp: number;\n public started: number;\n public duration?: number = 0;\n public status: SessionStatus = 'ok';\n public environment?: string;\n public ipAddress?: string;\n public init: boolean = true;\n public ignoreDuration: boolean = false;\n\n public constructor(context?: Omit) {\n // Both timestamp and started are in seconds since the UNIX epoch.\n const startingTime = timestampInSeconds();\n this.timestamp = startingTime;\n this.started = startingTime;\n if (context) {\n this.update(context);\n }\n }\n\n /** JSDoc */\n // eslint-disable-next-line complexity\n public update(context: SessionContext = {}): void {\n if (context.user) {\n if (!this.ipAddress && context.user.ip_address) {\n this.ipAddress = context.user.ip_address;\n }\n\n if (!this.did && !context.did) {\n this.did = context.user.id || context.user.email || context.user.username;\n }\n }\n\n this.timestamp = context.timestamp || timestampInSeconds();\n if (context.ignoreDuration) {\n this.ignoreDuration = context.ignoreDuration;\n }\n if (context.sid) {\n // Good enough uuid validation. — Kamil\n this.sid = context.sid.length === 32 ? context.sid : uuid4();\n }\n if (context.init !== undefined) {\n this.init = context.init;\n }\n if (!this.did && context.did) {\n this.did = `${context.did}`;\n }\n if (typeof context.started === 'number') {\n this.started = context.started;\n }\n if (this.ignoreDuration) {\n this.duration = undefined;\n } else if (typeof context.duration === 'number') {\n this.duration = context.duration;\n } else {\n const duration = this.timestamp - this.started;\n this.duration = duration >= 0 ? duration : 0;\n }\n if (context.release) {\n this.release = context.release;\n }\n if (context.environment) {\n this.environment = context.environment;\n }\n if (!this.ipAddress && context.ipAddress) {\n this.ipAddress = context.ipAddress;\n }\n if (!this.userAgent && context.userAgent) {\n this.userAgent = context.userAgent;\n }\n if (typeof context.errors === 'number') {\n this.errors = context.errors;\n }\n if (context.status) {\n this.status = context.status;\n }\n }\n\n /** JSDoc */\n public close(status?: Exclude): void {\n if (status) {\n this.update({ status });\n } else if (this.status === 'ok') {\n this.update({ status: 'exited' });\n } else {\n this.update();\n }\n }\n\n /** JSDoc */\n public toJSON(): {\n init: boolean;\n sid: string;\n did?: string;\n timestamp: string;\n started: string;\n duration?: number;\n status: SessionStatus;\n errors: number;\n attrs?: {\n release?: string;\n environment?: string;\n user_agent?: string;\n ip_address?: string;\n };\n } {\n return dropUndefinedKeys({\n sid: `${this.sid}`,\n init: this.init,\n // Make sure that sec is converted to ms for date constructor\n started: new Date(this.started * 1000).toISOString(),\n timestamp: new Date(this.timestamp * 1000).toISOString(),\n status: this.status,\n errors: this.errors,\n did: typeof this.did === 'number' || typeof this.did === 'string' ? `${this.did}` : undefined,\n duration: this.duration,\n attrs: {\n release: this.release,\n environment: this.environment,\n ip_address: this.ipAddress,\n user_agent: this.userAgent,\n },\n });\n }\n}\n","/* eslint-disable max-lines */\nimport {\n Breadcrumb,\n BreadcrumbHint,\n Client,\n CustomSamplingContext,\n Event,\n EventHint,\n Extra,\n Extras,\n Hub as HubInterface,\n Integration,\n IntegrationClass,\n Primitive,\n SessionContext,\n Severity,\n Span,\n SpanContext,\n Transaction,\n TransactionContext,\n User,\n} from '@sentry/types';\nimport {\n consoleSandbox,\n dateTimestampInSeconds,\n getGlobalObject,\n getGlobalSingleton,\n isNodeEnv,\n logger,\n uuid4,\n} from '@sentry/utils';\n\nimport { IS_DEBUG_BUILD } from './flags';\nimport { Scope } from './scope';\nimport { Session } from './session';\n\n/**\n * API compatibility version of this hub.\n *\n * WARNING: This number should only be increased when the global interface\n * changes and new methods are introduced.\n *\n * @hidden\n */\nexport const API_VERSION = 4;\n\n/**\n * Default maximum number of breadcrumbs added to an event. Can be overwritten\n * with {@link Options.maxBreadcrumbs}.\n */\nconst DEFAULT_BREADCRUMBS = 100;\n\n/**\n * A layer in the process stack.\n * @hidden\n */\nexport interface Layer {\n client?: Client;\n scope?: Scope;\n}\n\n/**\n * An object that contains a hub and maintains a scope stack.\n * @hidden\n */\nexport interface Carrier {\n __SENTRY__?: {\n hub?: Hub;\n /**\n * Extra Hub properties injected by various SDKs\n */\n integrations?: Integration[];\n extensions?: {\n /** Hack to prevent bundlers from breaking our usage of the domain package in the cross-platform Hub package */\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n domain?: { [key: string]: any };\n } & {\n /** Extension methods for the hub, which are bound to the current Hub instance */\n // eslint-disable-next-line @typescript-eslint/ban-types\n [key: string]: Function;\n };\n };\n}\n\n/**\n * @hidden\n * @deprecated Can be removed once `Hub.getActiveDomain` is removed.\n */\nexport interface DomainAsCarrier extends Carrier {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n members: { [key: string]: any }[];\n}\n\n/**\n * @inheritDoc\n */\nexport class Hub implements HubInterface {\n /** Is a {@link Layer}[] containing the client and scope */\n private readonly _stack: Layer[] = [{}];\n\n /** Contains the last event id of a captured event. */\n private _lastEventId?: string;\n\n /**\n * Creates a new instance of the hub, will push one {@link Layer} into the\n * internal stack on creation.\n *\n * @param client bound to the hub.\n * @param scope bound to the hub.\n * @param version number, higher number means higher priority.\n */\n public constructor(client?: Client, scope: Scope = new Scope(), private readonly _version: number = API_VERSION) {\n this.getStackTop().scope = scope;\n if (client) {\n this.bindClient(client);\n }\n }\n\n /**\n * @inheritDoc\n */\n public isOlderThan(version: number): boolean {\n return this._version < version;\n }\n\n /**\n * @inheritDoc\n */\n public bindClient(client?: Client): void {\n const top = this.getStackTop();\n top.client = client;\n if (client && client.setupIntegrations) {\n client.setupIntegrations();\n }\n }\n\n /**\n * @inheritDoc\n */\n public pushScope(): Scope {\n // We want to clone the content of prev scope\n const scope = Scope.clone(this.getScope());\n this.getStack().push({\n client: this.getClient(),\n scope,\n });\n return scope;\n }\n\n /**\n * @inheritDoc\n */\n public popScope(): boolean {\n if (this.getStack().length <= 1) return false;\n return !!this.getStack().pop();\n }\n\n /**\n * @inheritDoc\n */\n public withScope(callback: (scope: Scope) => void): void {\n const scope = this.pushScope();\n try {\n callback(scope);\n } finally {\n this.popScope();\n }\n }\n\n /**\n * @inheritDoc\n */\n public getClient(): C | undefined {\n return this.getStackTop().client as C;\n }\n\n /** Returns the scope of the top stack. */\n public getScope(): Scope | undefined {\n return this.getStackTop().scope;\n }\n\n /** Returns the scope stack for domains or the process. */\n public getStack(): Layer[] {\n return this._stack;\n }\n\n /** Returns the topmost scope layer in the order domain > local > process. */\n public getStackTop(): Layer {\n return this._stack[this._stack.length - 1];\n }\n\n /**\n * @inheritDoc\n */\n // eslint-disable-next-line @typescript-eslint/no-explicit-any, @typescript-eslint/explicit-module-boundary-types\n public captureException(exception: any, hint?: EventHint): string {\n const eventId = (this._lastEventId = hint && hint.event_id ? hint.event_id : uuid4());\n let finalHint = hint;\n\n // If there's no explicit hint provided, mimic the same thing that would happen\n // in the minimal itself to create a consistent behavior.\n // We don't do this in the client, as it's the lowest level API, and doing this,\n // would prevent user from having full control over direct calls.\n if (!hint) {\n let syntheticException: Error;\n try {\n throw new Error('Sentry syntheticException');\n } catch (exception) {\n syntheticException = exception as Error;\n }\n finalHint = {\n originalException: exception,\n syntheticException,\n };\n }\n\n this._invokeClient('captureException', exception, {\n ...finalHint,\n event_id: eventId,\n });\n return eventId;\n }\n\n /**\n * @inheritDoc\n */\n public captureMessage(message: string, level?: Severity, hint?: EventHint): string {\n const eventId = (this._lastEventId = hint && hint.event_id ? hint.event_id : uuid4());\n let finalHint = hint;\n\n // If there's no explicit hint provided, mimic the same thing that would happen\n // in the minimal itself to create a consistent behavior.\n // We don't do this in the client, as it's the lowest level API, and doing this,\n // would prevent user from having full control over direct calls.\n if (!hint) {\n let syntheticException: Error;\n try {\n throw new Error(message);\n } catch (exception) {\n syntheticException = exception as Error;\n }\n finalHint = {\n originalException: message,\n syntheticException,\n };\n }\n\n this._invokeClient('captureMessage', message, level, {\n ...finalHint,\n event_id: eventId,\n });\n return eventId;\n }\n\n /**\n * @inheritDoc\n */\n public captureEvent(event: Event, hint?: EventHint): string {\n const eventId = hint && hint.event_id ? hint.event_id : uuid4();\n if (event.type !== 'transaction') {\n this._lastEventId = eventId;\n }\n\n this._invokeClient('captureEvent', event, {\n ...hint,\n event_id: eventId,\n });\n return eventId;\n }\n\n /**\n * @inheritDoc\n */\n public lastEventId(): string | undefined {\n return this._lastEventId;\n }\n\n /**\n * @inheritDoc\n */\n public addBreadcrumb(breadcrumb: Breadcrumb, hint?: BreadcrumbHint): void {\n const { scope, client } = this.getStackTop();\n\n if (!scope || !client) return;\n\n // eslint-disable-next-line @typescript-eslint/unbound-method\n const { beforeBreadcrumb = null, maxBreadcrumbs = DEFAULT_BREADCRUMBS } =\n (client.getOptions && client.getOptions()) || {};\n\n if (maxBreadcrumbs <= 0) return;\n\n const timestamp = dateTimestampInSeconds();\n const mergedBreadcrumb = { timestamp, ...breadcrumb };\n const finalBreadcrumb = beforeBreadcrumb\n ? (consoleSandbox(() => beforeBreadcrumb(mergedBreadcrumb, hint)) as Breadcrumb | null)\n : mergedBreadcrumb;\n\n if (finalBreadcrumb === null) return;\n\n scope.addBreadcrumb(finalBreadcrumb, maxBreadcrumbs);\n }\n\n /**\n * @inheritDoc\n */\n public setUser(user: User | null): void {\n const scope = this.getScope();\n if (scope) scope.setUser(user);\n }\n\n /**\n * @inheritDoc\n */\n public setTags(tags: { [key: string]: Primitive }): void {\n const scope = this.getScope();\n if (scope) scope.setTags(tags);\n }\n\n /**\n * @inheritDoc\n */\n public setExtras(extras: Extras): void {\n const scope = this.getScope();\n if (scope) scope.setExtras(extras);\n }\n\n /**\n * @inheritDoc\n */\n public setTag(key: string, value: Primitive): void {\n const scope = this.getScope();\n if (scope) scope.setTag(key, value);\n }\n\n /**\n * @inheritDoc\n */\n public setExtra(key: string, extra: Extra): void {\n const scope = this.getScope();\n if (scope) scope.setExtra(key, extra);\n }\n\n /**\n * @inheritDoc\n */\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n public setContext(name: string, context: { [key: string]: any } | null): void {\n const scope = this.getScope();\n if (scope) scope.setContext(name, context);\n }\n\n /**\n * @inheritDoc\n */\n public configureScope(callback: (scope: Scope) => void): void {\n const { scope, client } = this.getStackTop();\n if (scope && client) {\n callback(scope);\n }\n }\n\n /**\n * @inheritDoc\n */\n public run(callback: (hub: Hub) => void): void {\n const oldHub = makeMain(this);\n try {\n callback(this);\n } finally {\n makeMain(oldHub);\n }\n }\n\n /**\n * @inheritDoc\n */\n public getIntegration(integration: IntegrationClass): T | null {\n const client = this.getClient();\n if (!client) return null;\n try {\n return client.getIntegration(integration);\n } catch (_oO) {\n IS_DEBUG_BUILD && logger.warn(`Cannot retrieve integration ${integration.id} from the current Hub`);\n return null;\n }\n }\n\n /**\n * @inheritDoc\n */\n public startSpan(context: SpanContext): Span {\n return this._callExtensionMethod('startSpan', context);\n }\n\n /**\n * @inheritDoc\n */\n public startTransaction(context: TransactionContext, customSamplingContext?: CustomSamplingContext): Transaction {\n return this._callExtensionMethod('startTransaction', context, customSamplingContext);\n }\n\n /**\n * @inheritDoc\n */\n public traceHeaders(): { [key: string]: string } {\n return this._callExtensionMethod<{ [key: string]: string }>('traceHeaders');\n }\n\n /**\n * @inheritDoc\n */\n public captureSession(endSession: boolean = false): void {\n // both send the update and pull the session from the scope\n if (endSession) {\n return this.endSession();\n }\n\n // only send the update\n this._sendSessionUpdate();\n }\n\n /**\n * @inheritDoc\n */\n public endSession(): void {\n const layer = this.getStackTop();\n const scope = layer && layer.scope;\n const session = scope && scope.getSession();\n if (session) {\n session.close();\n }\n this._sendSessionUpdate();\n\n // the session is over; take it off of the scope\n if (scope) {\n scope.setSession();\n }\n }\n\n /**\n * @inheritDoc\n */\n public startSession(context?: SessionContext): Session {\n const { scope, client } = this.getStackTop();\n const { release, environment } = (client && client.getOptions()) || {};\n\n // Will fetch userAgent if called from browser sdk\n const global = getGlobalObject<{ navigator?: { userAgent?: string } }>();\n const { userAgent } = global.navigator || {};\n\n const session = new Session({\n release,\n environment,\n ...(scope && { user: scope.getUser() }),\n ...(userAgent && { userAgent }),\n ...context,\n });\n\n if (scope) {\n // End existing session if there's one\n const currentSession = scope.getSession && scope.getSession();\n if (currentSession && currentSession.status === 'ok') {\n currentSession.update({ status: 'exited' });\n }\n this.endSession();\n\n // Afterwards we set the new session on the scope\n scope.setSession(session);\n }\n\n return session;\n }\n\n /**\n * Sends the current Session on the scope\n */\n private _sendSessionUpdate(): void {\n const { scope, client } = this.getStackTop();\n if (!scope) return;\n\n const session = scope.getSession && scope.getSession();\n if (session) {\n if (client && client.captureSession) {\n client.captureSession(session);\n }\n }\n }\n\n /**\n * Internal helper function to call a method on the top client if it exists.\n *\n * @param method The method to call on the client.\n * @param args Arguments to pass to the client function.\n */\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n private _invokeClient(method: M, ...args: any[]): void {\n const { scope, client } = this.getStackTop();\n if (client && client[method]) {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access, @typescript-eslint/no-explicit-any\n (client as any)[method](...args, scope);\n }\n }\n\n /**\n * Calls global extension method and binding current instance to the function call\n */\n // @ts-ignore Function lacks ending return statement and return type does not include 'undefined'. ts(2366)\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n private _callExtensionMethod(method: string, ...args: any[]): T {\n const carrier = getMainCarrier();\n const sentry = carrier.__SENTRY__;\n if (sentry && sentry.extensions && typeof sentry.extensions[method] === 'function') {\n return sentry.extensions[method].apply(this, args);\n }\n IS_DEBUG_BUILD && logger.warn(`Extension method ${method} couldn't be found, doing nothing.`);\n }\n}\n\n/**\n * Returns the global shim registry.\n *\n * FIXME: This function is problematic, because despite always returning a valid Carrier,\n * it has an optional `__SENTRY__` property, which then in turn requires us to always perform an unnecessary check\n * at the call-site. We always access the carrier through this function, so we can guarantee that `__SENTRY__` is there.\n **/\nexport function getMainCarrier(): Carrier {\n const carrier = getGlobalObject();\n carrier.__SENTRY__ = carrier.__SENTRY__ || {\n extensions: {},\n hub: undefined,\n };\n return carrier;\n}\n\n/**\n * Replaces the current main hub with the passed one on the global object\n *\n * @returns The old replaced hub\n */\nexport function makeMain(hub: Hub): Hub {\n const registry = getMainCarrier();\n const oldHub = getHubFromCarrier(registry);\n setHubOnCarrier(registry, hub);\n return oldHub;\n}\n\n/**\n * Returns the default hub instance.\n *\n * If a hub is already registered in the global carrier but this module\n * contains a more recent version, it replaces the registered version.\n * Otherwise, the currently registered hub will be returned.\n */\nexport function getCurrentHub(): Hub {\n // Get main carrier (global for every environment)\n const registry = getMainCarrier();\n\n // If there's no hub, or its an old API, assign a new one\n if (!hasHubOnCarrier(registry) || getHubFromCarrier(registry).isOlderThan(API_VERSION)) {\n setHubOnCarrier(registry, new Hub());\n }\n\n // Prefer domains over global if they are there (applicable only to Node environment)\n if (isNodeEnv()) {\n return getHubFromActiveDomain(registry);\n }\n // Return hub that lives on a global object\n return getHubFromCarrier(registry);\n}\n\n/**\n * Returns the active domain, if one exists\n * @deprecated No longer used; remove in v7\n * @returns The domain, or undefined if there is no active domain\n */\n// eslint-disable-next-line deprecation/deprecation\nexport function getActiveDomain(): DomainAsCarrier | undefined {\n IS_DEBUG_BUILD && logger.warn('Function `getActiveDomain` is deprecated and will be removed in a future version.');\n\n const sentry = getMainCarrier().__SENTRY__;\n\n return sentry && sentry.extensions && sentry.extensions.domain && sentry.extensions.domain.active;\n}\n\n/**\n * Try to read the hub from an active domain, and fallback to the registry if one doesn't exist\n * @returns discovered hub\n */\nfunction getHubFromActiveDomain(registry: Carrier): Hub {\n try {\n const sentry = getMainCarrier().__SENTRY__;\n const activeDomain = sentry && sentry.extensions && sentry.extensions.domain && sentry.extensions.domain.active;\n\n // If there's no active domain, just return global hub\n if (!activeDomain) {\n return getHubFromCarrier(registry);\n }\n\n // If there's no hub on current domain, or it's an old API, assign a new one\n if (!hasHubOnCarrier(activeDomain) || getHubFromCarrier(activeDomain).isOlderThan(API_VERSION)) {\n const registryHubTopStack = getHubFromCarrier(registry).getStackTop();\n setHubOnCarrier(activeDomain, new Hub(registryHubTopStack.client, Scope.clone(registryHubTopStack.scope)));\n }\n\n // Return hub that lives on a domain\n return getHubFromCarrier(activeDomain);\n } catch (_Oo) {\n // Return hub that lives on a global object\n return getHubFromCarrier(registry);\n }\n}\n\n/**\n * This will tell whether a carrier has a hub on it or not\n * @param carrier object\n */\nfunction hasHubOnCarrier(carrier: Carrier): boolean {\n return !!(carrier && carrier.__SENTRY__ && carrier.__SENTRY__.hub);\n}\n\n/**\n * This will create a new {@link Hub} and add to the passed object on\n * __SENTRY__.hub.\n * @param carrier object\n * @hidden\n */\nexport function getHubFromCarrier(carrier: Carrier): Hub {\n return getGlobalSingleton('hub', () => new Hub(), carrier);\n}\n\n/**\n * This will set passed {@link Hub} on the passed object's __SENTRY__.hub attribute\n * @param carrier object\n * @param hub Hub\n * @returns A boolean indicating success or failure\n */\nexport function setHubOnCarrier(carrier: Carrier, hub: Hub): boolean {\n if (!carrier) return false;\n const __SENTRY__ = (carrier.__SENTRY__ = carrier.__SENTRY__ || {});\n __SENTRY__.hub = hub;\n return true;\n}\n","/* eslint-disable max-lines */\nimport {\n Breadcrumb,\n CaptureContext,\n Context,\n Contexts,\n Event,\n EventHint,\n EventProcessor,\n Extra,\n Extras,\n Primitive,\n RequestSession,\n Scope as ScopeInterface,\n ScopeContext,\n Severity,\n Span,\n Transaction,\n User,\n} from '@sentry/types';\nimport { dateTimestampInSeconds, getGlobalSingleton, isPlainObject, isThenable, SyncPromise } from '@sentry/utils';\n\nimport { Session } from './session';\n\n/**\n * Absolute maximum number of breadcrumbs added to an event.\n * The `maxBreadcrumbs` option cannot be higher than this value.\n */\nconst MAX_BREADCRUMBS = 100;\n\n/**\n * Holds additional event information. {@link Scope.applyToEvent} will be\n * called by the client before an event will be sent.\n */\nexport class Scope implements ScopeInterface {\n /** Flag if notifying is happening. */\n protected _notifyingListeners: boolean = false;\n\n /** Callback for client to receive scope changes. */\n protected _scopeListeners: Array<(scope: Scope) => void> = [];\n\n /** Callback list that will be called after {@link applyToEvent}. */\n protected _eventProcessors: EventProcessor[] = [];\n\n /** Array of breadcrumbs. */\n protected _breadcrumbs: Breadcrumb[] = [];\n\n /** User */\n protected _user: User = {};\n\n /** Tags */\n protected _tags: { [key: string]: Primitive } = {};\n\n /** Extra */\n protected _extra: Extras = {};\n\n /** Contexts */\n protected _contexts: Contexts = {};\n\n /** Fingerprint */\n protected _fingerprint?: string[];\n\n /** Severity */\n protected _level?: Severity;\n\n /** Transaction Name */\n protected _transactionName?: string;\n\n /** Span */\n protected _span?: Span;\n\n /** Session */\n protected _session?: Session;\n\n /** Request Mode Session Status */\n protected _requestSession?: RequestSession;\n\n /**\n * A place to stash data which is needed at some point in the SDK's event processing pipeline but which shouldn't get\n * sent to Sentry\n */\n protected _sdkProcessingMetadata?: { [key: string]: unknown } = {};\n\n /**\n * Inherit values from the parent scope.\n * @param scope to clone.\n */\n public static clone(scope?: Scope): Scope {\n const newScope = new Scope();\n if (scope) {\n newScope._breadcrumbs = [...scope._breadcrumbs];\n newScope._tags = { ...scope._tags };\n newScope._extra = { ...scope._extra };\n newScope._contexts = { ...scope._contexts };\n newScope._user = scope._user;\n newScope._level = scope._level;\n newScope._span = scope._span;\n newScope._session = scope._session;\n newScope._transactionName = scope._transactionName;\n newScope._fingerprint = scope._fingerprint;\n newScope._eventProcessors = [...scope._eventProcessors];\n newScope._requestSession = scope._requestSession;\n }\n return newScope;\n }\n\n /**\n * Add internal on change listener. Used for sub SDKs that need to store the scope.\n * @hidden\n */\n public addScopeListener(callback: (scope: Scope) => void): void {\n this._scopeListeners.push(callback);\n }\n\n /**\n * @inheritDoc\n */\n public addEventProcessor(callback: EventProcessor): this {\n this._eventProcessors.push(callback);\n return this;\n }\n\n /**\n * @inheritDoc\n */\n public setUser(user: User | null): this {\n this._user = user || {};\n if (this._session) {\n this._session.update({ user });\n }\n this._notifyScopeListeners();\n return this;\n }\n\n /**\n * @inheritDoc\n */\n public getUser(): User | undefined {\n return this._user;\n }\n\n /**\n * @inheritDoc\n */\n public getRequestSession(): RequestSession | undefined {\n return this._requestSession;\n }\n\n /**\n * @inheritDoc\n */\n public setRequestSession(requestSession?: RequestSession): this {\n this._requestSession = requestSession;\n return this;\n }\n\n /**\n * @inheritDoc\n */\n public setTags(tags: { [key: string]: Primitive }): this {\n this._tags = {\n ...this._tags,\n ...tags,\n };\n this._notifyScopeListeners();\n return this;\n }\n\n /**\n * @inheritDoc\n */\n public setTag(key: string, value: Primitive): this {\n this._tags = { ...this._tags, [key]: value };\n this._notifyScopeListeners();\n return this;\n }\n\n /**\n * @inheritDoc\n */\n public setExtras(extras: Extras): this {\n this._extra = {\n ...this._extra,\n ...extras,\n };\n this._notifyScopeListeners();\n return this;\n }\n\n /**\n * @inheritDoc\n */\n public setExtra(key: string, extra: Extra): this {\n this._extra = { ...this._extra, [key]: extra };\n this._notifyScopeListeners();\n return this;\n }\n\n /**\n * @inheritDoc\n */\n public setFingerprint(fingerprint: string[]): this {\n this._fingerprint = fingerprint;\n this._notifyScopeListeners();\n return this;\n }\n\n /**\n * @inheritDoc\n */\n public setLevel(level: Severity): this {\n this._level = level;\n this._notifyScopeListeners();\n return this;\n }\n\n /**\n * @inheritDoc\n */\n public setTransactionName(name?: string): this {\n this._transactionName = name;\n this._notifyScopeListeners();\n return this;\n }\n\n /**\n * Can be removed in major version.\n * @deprecated in favor of {@link this.setTransactionName}\n */\n public setTransaction(name?: string): this {\n return this.setTransactionName(name);\n }\n\n /**\n * @inheritDoc\n */\n public setContext(key: string, context: Context | null): this {\n if (context === null) {\n // eslint-disable-next-line @typescript-eslint/no-dynamic-delete\n delete this._contexts[key];\n } else {\n this._contexts = { ...this._contexts, [key]: context };\n }\n\n this._notifyScopeListeners();\n return this;\n }\n\n /**\n * @inheritDoc\n */\n public setSpan(span?: Span): this {\n this._span = span;\n this._notifyScopeListeners();\n return this;\n }\n\n /**\n * @inheritDoc\n */\n public getSpan(): Span | undefined {\n return this._span;\n }\n\n /**\n * @inheritDoc\n */\n public getTransaction(): Transaction | undefined {\n // Often, this span (if it exists at all) will be a transaction, but it's not guaranteed to be. Regardless, it will\n // have a pointer to the currently-active transaction.\n const span = this.getSpan();\n return span && span.transaction;\n }\n\n /**\n * @inheritDoc\n */\n public setSession(session?: Session): this {\n if (!session) {\n delete this._session;\n } else {\n this._session = session;\n }\n this._notifyScopeListeners();\n return this;\n }\n\n /**\n * @inheritDoc\n */\n public getSession(): Session | undefined {\n return this._session;\n }\n\n /**\n * @inheritDoc\n */\n public update(captureContext?: CaptureContext): this {\n if (!captureContext) {\n return this;\n }\n\n if (typeof captureContext === 'function') {\n const updatedScope = (captureContext as (scope: T) => T)(this);\n return updatedScope instanceof Scope ? updatedScope : this;\n }\n\n if (captureContext instanceof Scope) {\n this._tags = { ...this._tags, ...captureContext._tags };\n this._extra = { ...this._extra, ...captureContext._extra };\n this._contexts = { ...this._contexts, ...captureContext._contexts };\n if (captureContext._user && Object.keys(captureContext._user).length) {\n this._user = captureContext._user;\n }\n if (captureContext._level) {\n this._level = captureContext._level;\n }\n if (captureContext._fingerprint) {\n this._fingerprint = captureContext._fingerprint;\n }\n if (captureContext._requestSession) {\n this._requestSession = captureContext._requestSession;\n }\n } else if (isPlainObject(captureContext)) {\n // eslint-disable-next-line no-param-reassign\n captureContext = captureContext as ScopeContext;\n this._tags = { ...this._tags, ...captureContext.tags };\n this._extra = { ...this._extra, ...captureContext.extra };\n this._contexts = { ...this._contexts, ...captureContext.contexts };\n if (captureContext.user) {\n this._user = captureContext.user;\n }\n if (captureContext.level) {\n this._level = captureContext.level;\n }\n if (captureContext.fingerprint) {\n this._fingerprint = captureContext.fingerprint;\n }\n if (captureContext.requestSession) {\n this._requestSession = captureContext.requestSession;\n }\n }\n\n return this;\n }\n\n /**\n * @inheritDoc\n */\n public clear(): this {\n this._breadcrumbs = [];\n this._tags = {};\n this._extra = {};\n this._user = {};\n this._contexts = {};\n this._level = undefined;\n this._transactionName = undefined;\n this._fingerprint = undefined;\n this._requestSession = undefined;\n this._span = undefined;\n this._session = undefined;\n this._notifyScopeListeners();\n return this;\n }\n\n /**\n * @inheritDoc\n */\n public addBreadcrumb(breadcrumb: Breadcrumb, maxBreadcrumbs?: number): this {\n const maxCrumbs = typeof maxBreadcrumbs === 'number' ? Math.min(maxBreadcrumbs, MAX_BREADCRUMBS) : MAX_BREADCRUMBS;\n\n // No data has been changed, so don't notify scope listeners\n if (maxCrumbs <= 0) {\n return this;\n }\n\n const mergedBreadcrumb = {\n timestamp: dateTimestampInSeconds(),\n ...breadcrumb,\n };\n this._breadcrumbs = [...this._breadcrumbs, mergedBreadcrumb].slice(-maxCrumbs);\n this._notifyScopeListeners();\n\n return this;\n }\n\n /**\n * @inheritDoc\n */\n public clearBreadcrumbs(): this {\n this._breadcrumbs = [];\n this._notifyScopeListeners();\n return this;\n }\n\n /**\n * Applies the current context and fingerprint to the event.\n * Note that breadcrumbs will be added by the client.\n * Also if the event has already breadcrumbs on it, we do not merge them.\n * @param event Event\n * @param hint May contain additional information about the original exception.\n * @hidden\n */\n public applyToEvent(event: Event, hint?: EventHint): PromiseLike {\n if (this._extra && Object.keys(this._extra).length) {\n event.extra = { ...this._extra, ...event.extra };\n }\n if (this._tags && Object.keys(this._tags).length) {\n event.tags = { ...this._tags, ...event.tags };\n }\n if (this._user && Object.keys(this._user).length) {\n event.user = { ...this._user, ...event.user };\n }\n if (this._contexts && Object.keys(this._contexts).length) {\n event.contexts = { ...this._contexts, ...event.contexts };\n }\n if (this._level) {\n event.level = this._level;\n }\n if (this._transactionName) {\n event.transaction = this._transactionName;\n }\n // We want to set the trace context for normal events only if there isn't already\n // a trace context on the event. There is a product feature in place where we link\n // errors with transaction and it relies on that.\n if (this._span) {\n event.contexts = { trace: this._span.getTraceContext(), ...event.contexts };\n const transactionName = this._span.transaction && this._span.transaction.name;\n if (transactionName) {\n event.tags = { transaction: transactionName, ...event.tags };\n }\n }\n\n this._applyFingerprint(event);\n\n event.breadcrumbs = [...(event.breadcrumbs || []), ...this._breadcrumbs];\n event.breadcrumbs = event.breadcrumbs.length > 0 ? event.breadcrumbs : undefined;\n\n event.sdkProcessingMetadata = this._sdkProcessingMetadata;\n\n return this._notifyEventProcessors([...getGlobalEventProcessors(), ...this._eventProcessors], event, hint);\n }\n\n /**\n * Add data which will be accessible during event processing but won't get sent to Sentry\n */\n public setSDKProcessingMetadata(newData: { [key: string]: unknown }): this {\n this._sdkProcessingMetadata = { ...this._sdkProcessingMetadata, ...newData };\n\n return this;\n }\n\n /**\n * This will be called after {@link applyToEvent} is finished.\n */\n protected _notifyEventProcessors(\n processors: EventProcessor[],\n event: Event | null,\n hint?: EventHint,\n index: number = 0,\n ): PromiseLike {\n return new SyncPromise((resolve, reject) => {\n const processor = processors[index];\n if (event === null || typeof processor !== 'function') {\n resolve(event);\n } else {\n const result = processor({ ...event }, hint) as Event | null;\n if (isThenable(result)) {\n void result\n .then(final => this._notifyEventProcessors(processors, final, hint, index + 1).then(resolve))\n .then(null, reject);\n } else {\n void this._notifyEventProcessors(processors, result, hint, index + 1)\n .then(resolve)\n .then(null, reject);\n }\n }\n });\n }\n\n /**\n * This will be called on every set call.\n */\n protected _notifyScopeListeners(): void {\n // We need this check for this._notifyingListeners to be able to work on scope during updates\n // If this check is not here we'll produce endless recursion when something is done with the scope\n // during the callback.\n if (!this._notifyingListeners) {\n this._notifyingListeners = true;\n this._scopeListeners.forEach(callback => {\n callback(this);\n });\n this._notifyingListeners = false;\n }\n }\n\n /**\n * Applies fingerprint from the scope to the event if there's one,\n * uses message if there's one instead or get rid of empty fingerprint\n */\n private _applyFingerprint(event: Event): void {\n // Make sure it's an array first and we actually have something in place\n event.fingerprint = event.fingerprint\n ? Array.isArray(event.fingerprint)\n ? event.fingerprint\n : [event.fingerprint]\n : [];\n\n // If we have something on the scope, then merge it with event\n if (this._fingerprint) {\n event.fingerprint = event.fingerprint.concat(this._fingerprint);\n }\n\n // If we have no data at all, remove empty array default\n if (event.fingerprint && !event.fingerprint.length) {\n delete event.fingerprint;\n }\n }\n}\n\n/**\n * Returns the global event processors.\n */\nfunction getGlobalEventProcessors(): EventProcessor[] {\n return getGlobalSingleton('globalEventProcessors', () => []);\n}\n\n/**\n * Add a EventProcessor to be kept globally.\n * @param callback EventProcessor to add\n */\nexport function addGlobalEventProcessor(callback: EventProcessor): void {\n getGlobalEventProcessors().push(callback);\n}\n","// Store finish reasons in tuple to save on bundle size\n// Readonly type should enforce that this is not mutated.\nexport const FINISH_REASON_TAG = 'finishReason';\n\nexport const IDLE_TRANSACTION_FINISH_REASONS = ['heartbeatFailed', 'idleTimeout', 'documentHidden'] as const;\n","/*\n * This file defines flags and constants that can be modified during compile time in order to facilitate tree shaking\n * for users.\n *\n * Debug flags need to be declared in each package individually and must not be imported across package boundaries,\n * because some build tools have trouble tree-shaking imported guards.\n *\n * As a convention, we define debug flags in a `flags.ts` file in the root of a package's `src` folder.\n *\n * Debug flag files will contain \"magic strings\" like `__SENTRY_DEBUG__` that may get replaced with actual values during\n * our, or the user's build process. Take care when introducing new flags - they must not throw if they are not\n * replaced.\n */\n\ndeclare const __SENTRY_DEBUG__: boolean;\n\n/** Flag that is true for debug builds, false otherwise. */\nexport const IS_DEBUG_BUILD = typeof __SENTRY_DEBUG__ === 'undefined' ? true : __SENTRY_DEBUG__;\n","import { addInstrumentationHandler, logger } from '@sentry/utils';\n\nimport { IS_DEBUG_BUILD } from './flags';\nimport { SpanStatusType } from './span';\nimport { getActiveTransaction } from './utils';\n\n/**\n * Configures global error listeners\n */\nexport function registerErrorInstrumentation(): void {\n addInstrumentationHandler('error', errorCallback);\n addInstrumentationHandler('unhandledrejection', errorCallback);\n}\n\n/**\n * If an error or unhandled promise occurs, we mark the active transaction as failed\n */\nfunction errorCallback(): void {\n const activeTransaction = getActiveTransaction();\n if (activeTransaction) {\n const status: SpanStatusType = 'internal_error';\n IS_DEBUG_BUILD && logger.log(`[Tracing] Transaction: ${status} -> Global error occured`);\n activeTransaction.setStatus(status);\n }\n}\n","import { getMainCarrier, Hub } from '@sentry/hub';\nimport {\n CustomSamplingContext,\n Integration,\n IntegrationClass,\n Options,\n SamplingContext,\n TransactionContext,\n} from '@sentry/types';\nimport { dynamicRequire, isNaN, isNodeEnv, loadModule, logger } from '@sentry/utils';\n\nimport { registerErrorInstrumentation } from './errors';\nimport { IS_DEBUG_BUILD } from './flags';\nimport { IdleTransaction } from './idletransaction';\nimport { Transaction } from './transaction';\nimport { hasTracingEnabled } from './utils';\n\n/** Returns all trace headers that are currently on the top scope. */\nfunction traceHeaders(this: Hub): { [key: string]: string } {\n const scope = this.getScope();\n if (scope) {\n const span = scope.getSpan();\n if (span) {\n return {\n 'sentry-trace': span.toTraceparent(),\n };\n }\n }\n return {};\n}\n\n/**\n * Makes a sampling decision for the given transaction and stores it on the transaction.\n *\n * Called every time a transaction is created. Only transactions which emerge with a `sampled` value of `true` will be\n * sent to Sentry.\n *\n * @param transaction: The transaction needing a sampling decision\n * @param options: The current client's options, so we can access `tracesSampleRate` and/or `tracesSampler`\n * @param samplingContext: Default and user-provided data which may be used to help make the decision\n *\n * @returns The given transaction with its `sampled` value set\n */\nfunction sample(transaction: T, options: Options, samplingContext: SamplingContext): T {\n // nothing to do if tracing is not enabled\n if (!hasTracingEnabled(options)) {\n transaction.sampled = false;\n return transaction;\n }\n\n // if the user has forced a sampling decision by passing a `sampled` value in their transaction context, go with that\n if (transaction.sampled !== undefined) {\n transaction.setMetadata({\n transactionSampling: { method: 'explicitly_set' },\n });\n return transaction;\n }\n\n // we would have bailed already if neither `tracesSampler` nor `tracesSampleRate` were defined, so one of these should\n // work; prefer the hook if so\n let sampleRate;\n if (typeof options.tracesSampler === 'function') {\n sampleRate = options.tracesSampler(samplingContext);\n transaction.setMetadata({\n transactionSampling: {\n method: 'client_sampler',\n // cast to number in case it's a boolean\n rate: Number(sampleRate),\n },\n });\n } else if (samplingContext.parentSampled !== undefined) {\n sampleRate = samplingContext.parentSampled;\n transaction.setMetadata({\n transactionSampling: { method: 'inheritance' },\n });\n } else {\n sampleRate = options.tracesSampleRate;\n transaction.setMetadata({\n transactionSampling: {\n method: 'client_rate',\n // cast to number in case it's a boolean\n rate: Number(sampleRate),\n },\n });\n }\n\n // Since this is coming from the user (or from a function provided by the user), who knows what we might get. (The\n // only valid values are booleans or numbers between 0 and 1.)\n if (!isValidSampleRate(sampleRate)) {\n IS_DEBUG_BUILD && logger.warn('[Tracing] Discarding transaction because of invalid sample rate.');\n transaction.sampled = false;\n return transaction;\n }\n\n // if the function returned 0 (or false), or if `tracesSampleRate` is 0, it's a sign the transaction should be dropped\n if (!sampleRate) {\n IS_DEBUG_BUILD &&\n logger.log(\n `[Tracing] Discarding transaction because ${\n typeof options.tracesSampler === 'function'\n ? 'tracesSampler returned 0 or false'\n : 'a negative sampling decision was inherited or tracesSampleRate is set to 0'\n }`,\n );\n transaction.sampled = false;\n return transaction;\n }\n\n // Now we roll the dice. Math.random is inclusive of 0, but not of 1, so strict < is safe here. In case sampleRate is\n // a boolean, the < comparison will cause it to be automatically cast to 1 if it's true and 0 if it's false.\n transaction.sampled = Math.random() < (sampleRate as number | boolean);\n\n // if we're not going to keep it, we're done\n if (!transaction.sampled) {\n IS_DEBUG_BUILD &&\n logger.log(\n `[Tracing] Discarding transaction because it's not included in the random sample (sampling rate = ${Number(\n sampleRate,\n )})`,\n );\n return transaction;\n }\n\n IS_DEBUG_BUILD && logger.log(`[Tracing] starting ${transaction.op} transaction - ${transaction.name}`);\n return transaction;\n}\n\n/**\n * Checks the given sample rate to make sure it is valid type and value (a boolean, or a number between 0 and 1).\n */\nfunction isValidSampleRate(rate: unknown): boolean {\n // we need to check NaN explicitly because it's of type 'number' and therefore wouldn't get caught by this typecheck\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n if (isNaN(rate) || !(typeof rate === 'number' || typeof rate === 'boolean')) {\n IS_DEBUG_BUILD &&\n logger.warn(\n `[Tracing] Given sample rate is invalid. Sample rate must be a boolean or a number between 0 and 1. Got ${JSON.stringify(\n rate,\n )} of type ${JSON.stringify(typeof rate)}.`,\n );\n return false;\n }\n\n // in case sampleRate is a boolean, it will get automatically cast to 1 if it's true and 0 if it's false\n if (rate < 0 || rate > 1) {\n IS_DEBUG_BUILD &&\n logger.warn(`[Tracing] Given sample rate is invalid. Sample rate must be between 0 and 1. Got ${rate}.`);\n return false;\n }\n return true;\n}\n\n/**\n * Creates a new transaction and adds a sampling decision if it doesn't yet have one.\n *\n * The Hub.startTransaction method delegates to this method to do its work, passing the Hub instance in as `this`, as if\n * it had been called on the hub directly. Exists as a separate function so that it can be injected into the class as an\n * \"extension method.\"\n *\n * @param this: The Hub starting the transaction\n * @param transactionContext: Data used to configure the transaction\n * @param CustomSamplingContext: Optional data to be provided to the `tracesSampler` function (if any)\n *\n * @returns The new transaction\n *\n * @see {@link Hub.startTransaction}\n */\nfunction _startTransaction(\n this: Hub,\n transactionContext: TransactionContext,\n customSamplingContext?: CustomSamplingContext,\n): Transaction {\n const client = this.getClient();\n const options = (client && client.getOptions()) || {};\n\n let transaction = new Transaction(transactionContext, this);\n transaction = sample(transaction, options, {\n parentSampled: transactionContext.parentSampled,\n transactionContext,\n ...customSamplingContext,\n });\n if (transaction.sampled) {\n transaction.initSpanRecorder(options._experiments && (options._experiments.maxSpans as number));\n }\n return transaction;\n}\n\n/**\n * Create new idle transaction.\n */\nexport function startIdleTransaction(\n hub: Hub,\n transactionContext: TransactionContext,\n idleTimeout?: number,\n onScope?: boolean,\n customSamplingContext?: CustomSamplingContext,\n): IdleTransaction {\n const client = hub.getClient();\n const options = (client && client.getOptions()) || {};\n\n let transaction = new IdleTransaction(transactionContext, hub, idleTimeout, onScope);\n transaction = sample(transaction, options, {\n parentSampled: transactionContext.parentSampled,\n transactionContext,\n ...customSamplingContext,\n });\n if (transaction.sampled) {\n transaction.initSpanRecorder(options._experiments && (options._experiments.maxSpans as number));\n }\n return transaction;\n}\n\n/**\n * @private\n */\nexport function _addTracingExtensions(): void {\n const carrier = getMainCarrier();\n if (!carrier.__SENTRY__) {\n return;\n }\n carrier.__SENTRY__.extensions = carrier.__SENTRY__.extensions || {};\n if (!carrier.__SENTRY__.extensions.startTransaction) {\n carrier.__SENTRY__.extensions.startTransaction = _startTransaction;\n }\n if (!carrier.__SENTRY__.extensions.traceHeaders) {\n carrier.__SENTRY__.extensions.traceHeaders = traceHeaders;\n }\n}\n\n/**\n * @private\n */\nfunction _autoloadDatabaseIntegrations(): void {\n const carrier = getMainCarrier();\n if (!carrier.__SENTRY__) {\n return;\n }\n\n const packageToIntegrationMapping: Record Integration> = {\n mongodb() {\n const integration = dynamicRequire(module, './integrations/node/mongo') as {\n Mongo: IntegrationClass;\n };\n return new integration.Mongo();\n },\n mongoose() {\n const integration = dynamicRequire(module, './integrations/node/mongo') as {\n Mongo: IntegrationClass;\n };\n return new integration.Mongo({ mongoose: true });\n },\n mysql() {\n const integration = dynamicRequire(module, './integrations/node/mysql') as {\n Mysql: IntegrationClass;\n };\n return new integration.Mysql();\n },\n pg() {\n const integration = dynamicRequire(module, './integrations/node/postgres') as {\n Postgres: IntegrationClass;\n };\n return new integration.Postgres();\n },\n };\n\n const mappedPackages = Object.keys(packageToIntegrationMapping)\n .filter(moduleName => !!loadModule(moduleName))\n .map(pkg => {\n try {\n return packageToIntegrationMapping[pkg]();\n } catch (e) {\n return undefined;\n }\n })\n .filter(p => p) as Integration[];\n\n if (mappedPackages.length > 0) {\n carrier.__SENTRY__.integrations = [...(carrier.__SENTRY__.integrations || []), ...mappedPackages];\n }\n}\n\n/**\n * This patches the global object and injects the Tracing extensions methods\n */\nexport function addExtensionMethods(): void {\n _addTracingExtensions();\n\n // Detect and automatically load specified integrations.\n if (isNodeEnv()) {\n _autoloadDatabaseIntegrations();\n }\n\n // If an error happens globally, we should make sure transaction status is set to error.\n registerErrorInstrumentation();\n}\n","import { Hub } from '@sentry/hub';\nimport { TransactionContext } from '@sentry/types';\nimport { logger, timestampWithMs } from '@sentry/utils';\n\nimport { FINISH_REASON_TAG, IDLE_TRANSACTION_FINISH_REASONS } from './constants';\nimport { IS_DEBUG_BUILD } from './flags';\nimport { Span, SpanRecorder } from './span';\nimport { Transaction } from './transaction';\n\nexport const DEFAULT_IDLE_TIMEOUT = 1000;\nexport const HEARTBEAT_INTERVAL = 5000;\n\n/**\n * @inheritDoc\n */\nexport class IdleTransactionSpanRecorder extends SpanRecorder {\n public constructor(\n private readonly _pushActivity: (id: string) => void,\n private readonly _popActivity: (id: string) => void,\n public transactionSpanId: string = '',\n maxlen?: number,\n ) {\n super(maxlen);\n }\n\n /**\n * @inheritDoc\n */\n public add(span: Span): void {\n // We should make sure we do not push and pop activities for\n // the transaction that this span recorder belongs to.\n if (span.spanId !== this.transactionSpanId) {\n // We patch span.finish() to pop an activity after setting an endTimestamp.\n span.finish = (endTimestamp?: number) => {\n span.endTimestamp = typeof endTimestamp === 'number' ? endTimestamp : timestampWithMs();\n this._popActivity(span.spanId);\n };\n\n // We should only push new activities if the span does not have an end timestamp.\n if (span.endTimestamp === undefined) {\n this._pushActivity(span.spanId);\n }\n }\n\n super.add(span);\n }\n}\n\nexport type BeforeFinishCallback = (transactionSpan: IdleTransaction, endTimestamp: number) => void;\n\n/**\n * An IdleTransaction is a transaction that automatically finishes. It does this by tracking child spans as activities.\n * You can have multiple IdleTransactions active, but if the `onScope` option is specified, the idle transaction will\n * put itself on the scope on creation.\n */\nexport class IdleTransaction extends Transaction {\n // Activities store a list of active spans\n public activities: Record = {};\n\n // Track state of activities in previous heartbeat\n private _prevHeartbeatString: string | undefined;\n\n // Amount of times heartbeat has counted. Will cause transaction to finish after 3 beats.\n private _heartbeatCounter: number = 0;\n\n // We should not use heartbeat if we finished a transaction\n private _finished: boolean = false;\n\n private readonly _beforeFinishCallbacks: BeforeFinishCallback[] = [];\n\n /**\n * If a transaction is created and no activities are added, we want to make sure that\n * it times out properly. This is cleared and not used when activities are added.\n */\n private _initTimeout: ReturnType | undefined;\n\n public constructor(\n transactionContext: TransactionContext,\n private readonly _idleHub?: Hub,\n /**\n * The time to wait in ms until the idle transaction will be finished.\n * @default 1000\n */\n private readonly _idleTimeout: number = DEFAULT_IDLE_TIMEOUT,\n // Whether or not the transaction should put itself on the scope when it starts and pop itself off when it ends\n private readonly _onScope: boolean = false,\n ) {\n super(transactionContext, _idleHub);\n\n if (_idleHub && _onScope) {\n // There should only be one active transaction on the scope\n clearActiveTransaction(_idleHub);\n\n // We set the transaction here on the scope so error events pick up the trace\n // context and attach it to the error.\n IS_DEBUG_BUILD && logger.log(`Setting idle transaction on scope. Span ID: ${this.spanId}`);\n _idleHub.configureScope(scope => scope.setSpan(this));\n }\n\n this._initTimeout = setTimeout(() => {\n if (!this._finished) {\n this.finish();\n }\n }, this._idleTimeout);\n }\n\n /** {@inheritDoc} */\n public finish(endTimestamp: number = timestampWithMs()): string | undefined {\n this._finished = true;\n this.activities = {};\n\n if (this.spanRecorder) {\n IS_DEBUG_BUILD &&\n logger.log('[Tracing] finishing IdleTransaction', new Date(endTimestamp * 1000).toISOString(), this.op);\n\n for (const callback of this._beforeFinishCallbacks) {\n callback(this, endTimestamp);\n }\n\n this.spanRecorder.spans = this.spanRecorder.spans.filter((span: Span) => {\n // If we are dealing with the transaction itself, we just return it\n if (span.spanId === this.spanId) {\n return true;\n }\n\n // We cancel all pending spans with status \"cancelled\" to indicate the idle transaction was finished early\n if (!span.endTimestamp) {\n span.endTimestamp = endTimestamp;\n span.setStatus('cancelled');\n IS_DEBUG_BUILD &&\n logger.log('[Tracing] cancelling span since transaction ended early', JSON.stringify(span, undefined, 2));\n }\n\n const keepSpan = span.startTimestamp < endTimestamp;\n if (!keepSpan) {\n IS_DEBUG_BUILD &&\n logger.log(\n '[Tracing] discarding Span since it happened after Transaction was finished',\n JSON.stringify(span, undefined, 2),\n );\n }\n return keepSpan;\n });\n\n IS_DEBUG_BUILD && logger.log('[Tracing] flushing IdleTransaction');\n } else {\n IS_DEBUG_BUILD && logger.log('[Tracing] No active IdleTransaction');\n }\n\n // if `this._onScope` is `true`, the transaction put itself on the scope when it started\n if (this._onScope) {\n clearActiveTransaction(this._idleHub);\n }\n\n return super.finish(endTimestamp);\n }\n\n /**\n * Register a callback function that gets excecuted before the transaction finishes.\n * Useful for cleanup or if you want to add any additional spans based on current context.\n *\n * This is exposed because users have no other way of running something before an idle transaction\n * finishes.\n */\n public registerBeforeFinishCallback(callback: BeforeFinishCallback): void {\n this._beforeFinishCallbacks.push(callback);\n }\n\n /**\n * @inheritDoc\n */\n public initSpanRecorder(maxlen?: number): void {\n if (!this.spanRecorder) {\n const pushActivity = (id: string): void => {\n if (this._finished) {\n return;\n }\n this._pushActivity(id);\n };\n const popActivity = (id: string): void => {\n if (this._finished) {\n return;\n }\n this._popActivity(id);\n };\n\n this.spanRecorder = new IdleTransactionSpanRecorder(pushActivity, popActivity, this.spanId, maxlen);\n\n // Start heartbeat so that transactions do not run forever.\n IS_DEBUG_BUILD && logger.log('Starting heartbeat');\n this._pingHeartbeat();\n }\n this.spanRecorder.add(this);\n }\n\n /**\n * Start tracking a specific activity.\n * @param spanId The span id that represents the activity\n */\n private _pushActivity(spanId: string): void {\n if (this._initTimeout) {\n clearTimeout(this._initTimeout);\n this._initTimeout = undefined;\n }\n IS_DEBUG_BUILD && logger.log(`[Tracing] pushActivity: ${spanId}`);\n this.activities[spanId] = true;\n IS_DEBUG_BUILD && logger.log('[Tracing] new activities count', Object.keys(this.activities).length);\n }\n\n /**\n * Remove an activity from usage\n * @param spanId The span id that represents the activity\n */\n private _popActivity(spanId: string): void {\n if (this.activities[spanId]) {\n IS_DEBUG_BUILD && logger.log(`[Tracing] popActivity ${spanId}`);\n // eslint-disable-next-line @typescript-eslint/no-dynamic-delete\n delete this.activities[spanId];\n IS_DEBUG_BUILD && logger.log('[Tracing] new activities count', Object.keys(this.activities).length);\n }\n\n if (Object.keys(this.activities).length === 0) {\n const timeout = this._idleTimeout;\n // We need to add the timeout here to have the real endtimestamp of the transaction\n // Remember timestampWithMs is in seconds, timeout is in ms\n const end = timestampWithMs() + timeout / 1000;\n\n setTimeout(() => {\n if (!this._finished) {\n this.setTag(FINISH_REASON_TAG, IDLE_TRANSACTION_FINISH_REASONS[1]);\n this.finish(end);\n }\n }, timeout);\n }\n }\n\n /**\n * Checks when entries of this.activities are not changing for 3 beats.\n * If this occurs we finish the transaction.\n */\n private _beat(): void {\n // We should not be running heartbeat if the idle transaction is finished.\n if (this._finished) {\n return;\n }\n\n const heartbeatString = Object.keys(this.activities).join('');\n\n if (heartbeatString === this._prevHeartbeatString) {\n this._heartbeatCounter += 1;\n } else {\n this._heartbeatCounter = 1;\n }\n\n this._prevHeartbeatString = heartbeatString;\n\n if (this._heartbeatCounter >= 3) {\n IS_DEBUG_BUILD && logger.log('[Tracing] Transaction finished because of no change for 3 heart beats');\n this.setStatus('deadline_exceeded');\n this.setTag(FINISH_REASON_TAG, IDLE_TRANSACTION_FINISH_REASONS[0]);\n this.finish();\n } else {\n this._pingHeartbeat();\n }\n }\n\n /**\n * Pings the heartbeat\n */\n private _pingHeartbeat(): void {\n IS_DEBUG_BUILD && logger.log(`pinging Heartbeat -> current counter: ${this._heartbeatCounter}`);\n setTimeout(() => {\n this._beat();\n }, HEARTBEAT_INTERVAL);\n }\n}\n\n/**\n * Reset transaction on scope to `undefined`\n */\nfunction clearActiveTransaction(hub?: Hub): void {\n if (hub) {\n const scope = hub.getScope();\n if (scope) {\n const transaction = scope.getTransaction();\n if (transaction) {\n scope.setSpan(undefined);\n }\n }\n }\n}\n","/* eslint-disable max-lines */\nimport { Primitive, Span as SpanInterface, SpanContext, Transaction } from '@sentry/types';\nimport { dropUndefinedKeys, timestampWithMs, uuid4 } from '@sentry/utils';\n\n/**\n * Keeps track of finished spans for a given transaction\n * @internal\n * @hideconstructor\n * @hidden\n */\nexport class SpanRecorder {\n public spans: Span[] = [];\n\n private readonly _maxlen: number;\n\n public constructor(maxlen: number = 1000) {\n this._maxlen = maxlen;\n }\n\n /**\n * This is just so that we don't run out of memory while recording a lot\n * of spans. At some point we just stop and flush out the start of the\n * trace tree (i.e.the first n spans with the smallest\n * start_timestamp).\n */\n public add(span: Span): void {\n if (this.spans.length > this._maxlen) {\n span.spanRecorder = undefined;\n } else {\n this.spans.push(span);\n }\n }\n}\n\n/**\n * Span contains all data about a span\n */\nexport class Span implements SpanInterface {\n /**\n * @inheritDoc\n */\n public traceId: string = uuid4();\n\n /**\n * @inheritDoc\n */\n public spanId: string = uuid4().substring(16);\n\n /**\n * @inheritDoc\n */\n public parentSpanId?: string;\n\n /**\n * Internal keeper of the status\n */\n public status?: SpanStatusType | string;\n\n /**\n * @inheritDoc\n */\n public sampled?: boolean;\n\n /**\n * Timestamp in seconds when the span was created.\n */\n public startTimestamp: number = timestampWithMs();\n\n /**\n * Timestamp in seconds when the span ended.\n */\n public endTimestamp?: number;\n\n /**\n * @inheritDoc\n */\n public op?: string;\n\n /**\n * @inheritDoc\n */\n public description?: string;\n\n /**\n * @inheritDoc\n */\n public tags: { [key: string]: Primitive } = {};\n\n /**\n * @inheritDoc\n */\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n public data: { [key: string]: any } = {};\n\n /**\n * List of spans that were finalized\n */\n public spanRecorder?: SpanRecorder;\n\n /**\n * @inheritDoc\n */\n public transaction?: Transaction;\n\n /**\n * You should never call the constructor manually, always use `Sentry.startTransaction()`\n * or call `startChild()` on an existing span.\n * @internal\n * @hideconstructor\n * @hidden\n */\n public constructor(spanContext?: SpanContext) {\n if (!spanContext) {\n return this;\n }\n if (spanContext.traceId) {\n this.traceId = spanContext.traceId;\n }\n if (spanContext.spanId) {\n this.spanId = spanContext.spanId;\n }\n if (spanContext.parentSpanId) {\n this.parentSpanId = spanContext.parentSpanId;\n }\n // We want to include booleans as well here\n if ('sampled' in spanContext) {\n this.sampled = spanContext.sampled;\n }\n if (spanContext.op) {\n this.op = spanContext.op;\n }\n if (spanContext.description) {\n this.description = spanContext.description;\n }\n if (spanContext.data) {\n this.data = spanContext.data;\n }\n if (spanContext.tags) {\n this.tags = spanContext.tags;\n }\n if (spanContext.status) {\n this.status = spanContext.status;\n }\n if (spanContext.startTimestamp) {\n this.startTimestamp = spanContext.startTimestamp;\n }\n if (spanContext.endTimestamp) {\n this.endTimestamp = spanContext.endTimestamp;\n }\n }\n\n /**\n * @inheritDoc\n * @deprecated\n */\n public child(\n spanContext?: Pick>,\n ): Span {\n return this.startChild(spanContext);\n }\n\n /**\n * @inheritDoc\n */\n public startChild(\n spanContext?: Pick>,\n ): Span {\n const childSpan = new Span({\n ...spanContext,\n parentSpanId: this.spanId,\n sampled: this.sampled,\n traceId: this.traceId,\n });\n\n childSpan.spanRecorder = this.spanRecorder;\n if (childSpan.spanRecorder) {\n childSpan.spanRecorder.add(childSpan);\n }\n\n childSpan.transaction = this.transaction;\n\n return childSpan;\n }\n\n /**\n * @inheritDoc\n */\n public setTag(key: string, value: Primitive): this {\n this.tags = { ...this.tags, [key]: value };\n return this;\n }\n\n /**\n * @inheritDoc\n */\n // eslint-disable-next-line @typescript-eslint/no-explicit-any, @typescript-eslint/explicit-module-boundary-types\n public setData(key: string, value: any): this {\n this.data = { ...this.data, [key]: value };\n return this;\n }\n\n /**\n * @inheritDoc\n */\n public setStatus(value: SpanStatusType): this {\n this.status = value;\n return this;\n }\n\n /**\n * @inheritDoc\n */\n public setHttpStatus(httpStatus: number): this {\n this.setTag('http.status_code', String(httpStatus));\n const spanStatus = spanStatusfromHttpCode(httpStatus);\n if (spanStatus !== 'unknown_error') {\n this.setStatus(spanStatus);\n }\n return this;\n }\n\n /**\n * @inheritDoc\n */\n public isSuccess(): boolean {\n return this.status === 'ok';\n }\n\n /**\n * @inheritDoc\n */\n public finish(endTimestamp?: number): void {\n this.endTimestamp = typeof endTimestamp === 'number' ? endTimestamp : timestampWithMs();\n }\n\n /**\n * @inheritDoc\n */\n public toTraceparent(): string {\n let sampledString = '';\n if (this.sampled !== undefined) {\n sampledString = this.sampled ? '-1' : '-0';\n }\n return `${this.traceId}-${this.spanId}${sampledString}`;\n }\n\n /**\n * @inheritDoc\n */\n public toContext(): SpanContext {\n return dropUndefinedKeys({\n data: this.data,\n description: this.description,\n endTimestamp: this.endTimestamp,\n op: this.op,\n parentSpanId: this.parentSpanId,\n sampled: this.sampled,\n spanId: this.spanId,\n startTimestamp: this.startTimestamp,\n status: this.status,\n tags: this.tags,\n traceId: this.traceId,\n });\n }\n\n /**\n * @inheritDoc\n */\n public updateWithContext(spanContext: SpanContext): this {\n this.data = spanContext.data ?? {};\n this.description = spanContext.description;\n this.endTimestamp = spanContext.endTimestamp;\n this.op = spanContext.op;\n this.parentSpanId = spanContext.parentSpanId;\n this.sampled = spanContext.sampled;\n this.spanId = spanContext.spanId ?? this.spanId;\n this.startTimestamp = spanContext.startTimestamp ?? this.startTimestamp;\n this.status = spanContext.status;\n this.tags = spanContext.tags ?? {};\n this.traceId = spanContext.traceId ?? this.traceId;\n\n return this;\n }\n\n /**\n * @inheritDoc\n */\n public getTraceContext(): {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n data?: { [key: string]: any };\n description?: string;\n op?: string;\n parent_span_id?: string;\n span_id: string;\n status?: string;\n tags?: { [key: string]: Primitive };\n trace_id: string;\n } {\n return dropUndefinedKeys({\n data: Object.keys(this.data).length > 0 ? this.data : undefined,\n description: this.description,\n op: this.op,\n parent_span_id: this.parentSpanId,\n span_id: this.spanId,\n status: this.status,\n tags: Object.keys(this.tags).length > 0 ? this.tags : undefined,\n trace_id: this.traceId,\n });\n }\n\n /**\n * @inheritDoc\n */\n public toJSON(): {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n data?: { [key: string]: any };\n description?: string;\n op?: string;\n parent_span_id?: string;\n span_id: string;\n start_timestamp: number;\n status?: string;\n tags?: { [key: string]: Primitive };\n timestamp?: number;\n trace_id: string;\n } {\n return dropUndefinedKeys({\n data: Object.keys(this.data).length > 0 ? this.data : undefined,\n description: this.description,\n op: this.op,\n parent_span_id: this.parentSpanId,\n span_id: this.spanId,\n start_timestamp: this.startTimestamp,\n status: this.status,\n tags: Object.keys(this.tags).length > 0 ? this.tags : undefined,\n timestamp: this.endTimestamp,\n trace_id: this.traceId,\n });\n }\n}\n\nexport type SpanStatusType =\n /** The operation completed successfully. */\n | 'ok'\n /** Deadline expired before operation could complete. */\n | 'deadline_exceeded'\n /** 401 Unauthorized (actually does mean unauthenticated according to RFC 7235) */\n | 'unauthenticated'\n /** 403 Forbidden */\n | 'permission_denied'\n /** 404 Not Found. Some requested entity (file or directory) was not found. */\n | 'not_found'\n /** 429 Too Many Requests */\n | 'resource_exhausted'\n /** Client specified an invalid argument. 4xx. */\n | 'invalid_argument'\n /** 501 Not Implemented */\n | 'unimplemented'\n /** 503 Service Unavailable */\n | 'unavailable'\n /** Other/generic 5xx. */\n | 'internal_error'\n /** Unknown. Any non-standard HTTP status code. */\n | 'unknown_error'\n /** The operation was cancelled (typically by the user). */\n | 'cancelled'\n /** Already exists (409) */\n | 'already_exists'\n /** Operation was rejected because the system is not in a state required for the operation's */\n | 'failed_precondition'\n /** The operation was aborted, typically due to a concurrency issue. */\n | 'aborted'\n /** Operation was attempted past the valid range. */\n | 'out_of_range'\n /** Unrecoverable data loss or corruption */\n | 'data_loss';\n\n/**\n * Converts a HTTP status code into a {@link SpanStatusType}.\n *\n * @param httpStatus The HTTP response status code.\n * @returns The span status or unknown_error.\n */\nexport function spanStatusfromHttpCode(httpStatus: number): SpanStatusType {\n if (httpStatus < 400 && httpStatus >= 100) {\n return 'ok';\n }\n\n if (httpStatus >= 400 && httpStatus < 500) {\n switch (httpStatus) {\n case 401:\n return 'unauthenticated';\n case 403:\n return 'permission_denied';\n case 404:\n return 'not_found';\n case 409:\n return 'already_exists';\n case 413:\n return 'failed_precondition';\n case 429:\n return 'resource_exhausted';\n default:\n return 'invalid_argument';\n }\n }\n\n if (httpStatus >= 500 && httpStatus < 600) {\n switch (httpStatus) {\n case 501:\n return 'unimplemented';\n case 503:\n return 'unavailable';\n case 504:\n return 'deadline_exceeded';\n default:\n return 'internal_error';\n }\n }\n\n return 'unknown_error';\n}\n","import { getCurrentHub, Hub } from '@sentry/hub';\nimport {\n Event,\n Measurements,\n Transaction as TransactionInterface,\n TransactionContext,\n TransactionMetadata,\n} from '@sentry/types';\nimport { dropUndefinedKeys, isInstanceOf, logger } from '@sentry/utils';\n\nimport { IS_DEBUG_BUILD } from './flags';\nimport { Span as SpanClass, SpanRecorder } from './span';\n\n/** JSDoc */\nexport class Transaction extends SpanClass implements TransactionInterface {\n public name: string;\n\n public metadata: TransactionMetadata;\n\n private _measurements: Measurements = {};\n\n /**\n * The reference to the current hub.\n */\n private readonly _hub: Hub = getCurrentHub() as unknown as Hub;\n\n private _trimEnd?: boolean;\n\n /**\n * This constructor should never be called manually. Those instrumenting tracing should use\n * `Sentry.startTransaction()`, and internal methods should use `hub.startTransaction()`.\n * @internal\n * @hideconstructor\n * @hidden\n */\n public constructor(transactionContext: TransactionContext, hub?: Hub) {\n super(transactionContext);\n\n if (isInstanceOf(hub, Hub)) {\n this._hub = hub as Hub;\n }\n\n this.name = transactionContext.name || '';\n\n this.metadata = transactionContext.metadata || {};\n this._trimEnd = transactionContext.trimEnd;\n\n // this is because transactions are also spans, and spans have a transaction pointer\n this.transaction = this;\n }\n\n /**\n * JSDoc\n */\n public setName(name: string): void {\n this.name = name;\n }\n\n /**\n * Attaches SpanRecorder to the span itself\n * @param maxlen maximum number of spans that can be recorded\n */\n public initSpanRecorder(maxlen: number = 1000): void {\n if (!this.spanRecorder) {\n this.spanRecorder = new SpanRecorder(maxlen);\n }\n this.spanRecorder.add(this);\n }\n\n /**\n * Set observed measurements for this transaction.\n * @hidden\n */\n public setMeasurements(measurements: Measurements): void {\n this._measurements = { ...measurements };\n }\n\n /**\n * Set metadata for this transaction.\n * @hidden\n */\n public setMetadata(newMetadata: TransactionMetadata): void {\n this.metadata = { ...this.metadata, ...newMetadata };\n }\n\n /**\n * @inheritDoc\n */\n public finish(endTimestamp?: number): string | undefined {\n // This transaction is already finished, so we should not flush it again.\n if (this.endTimestamp !== undefined) {\n return undefined;\n }\n\n if (!this.name) {\n IS_DEBUG_BUILD && logger.warn('Transaction has no name, falling back to ``.');\n this.name = '';\n }\n\n // just sets the end timestamp\n super.finish(endTimestamp);\n\n if (this.sampled !== true) {\n // At this point if `sampled !== true` we want to discard the transaction.\n IS_DEBUG_BUILD && logger.log('[Tracing] Discarding transaction because its trace was not chosen to be sampled.');\n\n const client = this._hub.getClient();\n const transport = client && client.getTransport && client.getTransport();\n if (transport && transport.recordLostEvent) {\n transport.recordLostEvent('sample_rate', 'transaction');\n }\n return undefined;\n }\n\n const finishedSpans = this.spanRecorder ? this.spanRecorder.spans.filter(s => s !== this && s.endTimestamp) : [];\n\n if (this._trimEnd && finishedSpans.length > 0) {\n this.endTimestamp = finishedSpans.reduce((prev: SpanClass, current: SpanClass) => {\n if (prev.endTimestamp && current.endTimestamp) {\n return prev.endTimestamp > current.endTimestamp ? prev : current;\n }\n return prev;\n }).endTimestamp;\n }\n\n const transaction: Event = {\n contexts: {\n trace: this.getTraceContext(),\n },\n spans: finishedSpans,\n start_timestamp: this.startTimestamp,\n tags: this.tags,\n timestamp: this.endTimestamp,\n transaction: this.name,\n type: 'transaction',\n sdkProcessingMetadata: this.metadata,\n };\n\n const hasMeasurements = Object.keys(this._measurements).length > 0;\n\n if (hasMeasurements) {\n IS_DEBUG_BUILD &&\n logger.log(\n '[Measurements] Adding measurements to transaction',\n JSON.stringify(this._measurements, undefined, 2),\n );\n transaction.measurements = this._measurements;\n }\n\n IS_DEBUG_BUILD && logger.log(`[Tracing] Finishing ${this.op} transaction: ${this.name}.`);\n\n return this._hub.captureEvent(transaction);\n }\n\n /**\n * @inheritDoc\n */\n public toContext(): TransactionContext {\n const spanContext = super.toContext();\n\n return dropUndefinedKeys({\n ...spanContext,\n name: this.name,\n trimEnd: this._trimEnd,\n });\n }\n\n /**\n * @inheritDoc\n */\n public updateWithContext(transactionContext: TransactionContext): this {\n super.updateWithContext(transactionContext);\n\n this.name = transactionContext.name ?? '';\n\n this._trimEnd = transactionContext.trimEnd;\n\n return this;\n }\n}\n","import { getCurrentHub, Hub } from '@sentry/hub';\nimport { Options, Transaction } from '@sentry/types';\n\n/**\n * The `extractTraceparentData` function and `TRACEPARENT_REGEXP` constant used\n * to be declared in this file. It was later moved into `@sentry/utils` as part of a\n * move to remove `@sentry/tracing` dependencies from `@sentry/node` (`extractTraceparentData`\n * is the only tracing function used by `@sentry/node`).\n *\n * These exports are kept here for backwards compatability's sake.\n *\n * TODO(v7): Reorganize these exports\n *\n * See https://github.com/getsentry/sentry-javascript/issues/4642 for more details.\n */\nexport { TRACEPARENT_REGEXP, extractTraceparentData } from '@sentry/utils';\n\n/**\n * Determines if tracing is currently enabled.\n *\n * Tracing is enabled when at least one of `tracesSampleRate` and `tracesSampler` is defined in the SDK config.\n */\nexport function hasTracingEnabled(maybeOptions?: Options | undefined): boolean {\n const client = getCurrentHub().getClient();\n const options = maybeOptions || (client && client.getOptions());\n return !!options && ('tracesSampleRate' in options || 'tracesSampler' in options);\n}\n\n/** Grabs active transaction off scope, if any */\nexport function getActiveTransaction(maybeHub?: Hub): T | undefined {\n const hub = maybeHub || getCurrentHub();\n const scope = hub.getScope();\n return scope && (scope.getTransaction() as T | undefined);\n}\n\n/**\n * Converts from milliseconds to seconds\n * @param time time in ms\n */\nexport function msToSec(time: number): number {\n return time / 1000;\n}\n\n/**\n * Converts from seconds to milliseconds\n * @param time time in seconds\n */\nexport function secToMs(time: number): number {\n return time * 1000;\n}\n\n// so it can be used in manual instrumentation without necessitating a hard dependency on @sentry/utils\nexport { stripUrlQueryAndFragment } from '@sentry/utils';\n","import { getGlobalObject } from './global';\nimport { isString } from './is';\n\n/**\n * Given a child DOM element, returns a query-selector statement describing that\n * and its ancestors\n * e.g. [HTMLElement] => body > div > input#foo.btn[name=baz]\n * @returns generated DOM path\n */\nexport function htmlTreeAsString(elem: unknown, keyAttrs?: string[]): string {\n type SimpleNode = {\n parentNode: SimpleNode;\n } | null;\n\n // try/catch both:\n // - accessing event.target (see getsentry/raven-js#838, #768)\n // - `htmlTreeAsString` because it's complex, and just accessing the DOM incorrectly\n // - can throw an exception in some circumstances.\n try {\n let currentElem = elem as SimpleNode;\n const MAX_TRAVERSE_HEIGHT = 5;\n const MAX_OUTPUT_LEN = 80;\n const out = [];\n let height = 0;\n let len = 0;\n const separator = ' > ';\n const sepLength = separator.length;\n let nextStr;\n\n // eslint-disable-next-line no-plusplus\n while (currentElem && height++ < MAX_TRAVERSE_HEIGHT) {\n nextStr = _htmlElementAsString(currentElem, keyAttrs);\n // bail out if\n // - nextStr is the 'html' element\n // - the length of the string that would be created exceeds MAX_OUTPUT_LEN\n // (ignore this limit if we are on the first iteration)\n if (nextStr === 'html' || (height > 1 && len + out.length * sepLength + nextStr.length >= MAX_OUTPUT_LEN)) {\n break;\n }\n\n out.push(nextStr);\n\n len += nextStr.length;\n currentElem = currentElem.parentNode;\n }\n\n return out.reverse().join(separator);\n } catch (_oO) {\n return '';\n }\n}\n\n/**\n * Returns a simple, query-selector representation of a DOM element\n * e.g. [HTMLElement] => input#foo.btn[name=baz]\n * @returns generated DOM path\n */\nfunction _htmlElementAsString(el: unknown, keyAttrs?: string[]): string {\n const elem = el as {\n tagName?: string;\n id?: string;\n className?: string;\n getAttribute(key: string): string;\n };\n\n const out = [];\n let className;\n let classes;\n let key;\n let attr;\n let i;\n\n if (!elem || !elem.tagName) {\n return '';\n }\n\n out.push(elem.tagName.toLowerCase());\n\n // Pairs of attribute keys defined in `serializeAttribute` and their values on element.\n const keyAttrPairs =\n keyAttrs && keyAttrs.length\n ? keyAttrs.filter(keyAttr => elem.getAttribute(keyAttr)).map(keyAttr => [keyAttr, elem.getAttribute(keyAttr)])\n : null;\n\n if (keyAttrPairs && keyAttrPairs.length) {\n keyAttrPairs.forEach(keyAttrPair => {\n out.push(`[${keyAttrPair[0]}=\"${keyAttrPair[1]}\"]`);\n });\n } else {\n if (elem.id) {\n out.push(`#${elem.id}`);\n }\n\n // eslint-disable-next-line prefer-const\n className = elem.className;\n if (className && isString(className)) {\n classes = className.split(/\\s+/);\n for (i = 0; i < classes.length; i++) {\n out.push(`.${classes[i]}`);\n }\n }\n }\n const allowedAttrs = ['type', 'name', 'title', 'alt'];\n for (i = 0; i < allowedAttrs.length; i++) {\n key = allowedAttrs[i];\n attr = elem.getAttribute(key);\n if (attr) {\n out.push(`[${key}=\"${attr}\"]`);\n }\n }\n return out.join('');\n}\n\n/**\n * A safe form of location.href\n */\nexport function getLocationHref(): string {\n const global = getGlobalObject();\n try {\n return global.document.location.href;\n } catch (oO) {\n return '';\n }\n}\n","/*\n * This file defines flags and constants that can be modified during compile time in order to facilitate tree shaking\n * for users.\n *\n * Debug flags need to be declared in each package individually and must not be imported across package boundaries,\n * because some build tools have trouble tree-shaking imported guards.\n *\n * As a convention, we define debug flags in a `flags.ts` file in the root of a package's `src` folder.\n *\n * Debug flag files will contain \"magic strings\" like `__SENTRY_DEBUG__` that may get replaced with actual values during\n * our, or the user's build process. Take care when introducing new flags - they must not throw if they are not\n * replaced.\n */\n\ndeclare const __SENTRY_DEBUG__: boolean;\n\n/** Flag that is true for debug builds, false otherwise. */\nexport const IS_DEBUG_BUILD = typeof __SENTRY_DEBUG__ === 'undefined' ? true : __SENTRY_DEBUG__;\n","/**\n * NOTE: In order to avoid circular dependencies, if you add a function to this module and it needs to print something,\n * you must either a) use `console.log` rather than the logger, or b) put your function elsewhere.\n */\n\n/* eslint-disable @typescript-eslint/no-explicit-any */\n\nimport { Integration } from '@sentry/types';\n\nimport { isNodeEnv } from './node';\n\n/** Internal */\ninterface SentryGlobal {\n Sentry?: {\n Integrations?: Integration[];\n };\n SENTRY_ENVIRONMENT?: string;\n SENTRY_DSN?: string;\n SENTRY_RELEASE?: {\n id?: string;\n };\n __SENTRY__: {\n globalEventProcessors: any;\n hub: any;\n logger: any;\n };\n}\n\nconst fallbackGlobalObject = {};\n\n/**\n * Safely get global scope object\n *\n * @returns Global scope object\n */\nexport function getGlobalObject(): T & SentryGlobal {\n return (\n isNodeEnv()\n ? global\n : typeof window !== 'undefined' // eslint-disable-line no-restricted-globals\n ? window // eslint-disable-line no-restricted-globals\n : typeof self !== 'undefined'\n ? self\n : fallbackGlobalObject\n ) as T & SentryGlobal;\n}\n\n/**\n * Returns a global singleton contained in the global `__SENTRY__` object.\n *\n * If the singleton doesn't already exist in `__SENTRY__`, it will be created using the given factory\n * function and added to the `__SENTRY__` object.\n *\n * @param name name of the global singleton on __SENTRY__\n * @param creator creator Factory function to create the singleton if it doesn't already exist on `__SENTRY__`\n * @param obj (Optional) The global object on which to look for `__SENTRY__`, if not `getGlobalObject`'s return value\n * @returns the singleton\n */\nexport function getGlobalSingleton(name: keyof SentryGlobal['__SENTRY__'], creator: () => T, obj?: unknown): T {\n const global = (obj || getGlobalObject()) as SentryGlobal;\n const __SENTRY__ = (global.__SENTRY__ = global.__SENTRY__ || {});\n const singleton = __SENTRY__[name] || (__SENTRY__[name] = creator());\n return singleton;\n}\n","/* eslint-disable max-lines */\n/* eslint-disable @typescript-eslint/no-explicit-any */\n/* eslint-disable @typescript-eslint/ban-types */\nimport { WrappedFunction } from '@sentry/types';\n\nimport { IS_DEBUG_BUILD } from './flags';\nimport { getGlobalObject } from './global';\nimport { isInstanceOf, isString } from './is';\nimport { CONSOLE_LEVELS, logger } from './logger';\nimport { fill } from './object';\nimport { getFunctionName } from './stacktrace';\nimport { supportsHistory, supportsNativeFetch } from './supports';\n\nconst global = getGlobalObject();\n\ntype InstrumentHandlerType =\n | 'console'\n | 'dom'\n | 'fetch'\n | 'history'\n | 'sentry'\n | 'xhr'\n | 'error'\n | 'unhandledrejection';\ntype InstrumentHandlerCallback = (data: any) => void;\n\n/**\n * Instrument native APIs to call handlers that can be used to create breadcrumbs, APM spans etc.\n * - Console API\n * - Fetch API\n * - XHR API\n * - History API\n * - DOM API (click/typing)\n * - Error API\n * - UnhandledRejection API\n */\n\nconst handlers: { [key in InstrumentHandlerType]?: InstrumentHandlerCallback[] } = {};\nconst instrumented: { [key in InstrumentHandlerType]?: boolean } = {};\n\n/** Instruments given API */\nfunction instrument(type: InstrumentHandlerType): void {\n if (instrumented[type]) {\n return;\n }\n\n instrumented[type] = true;\n\n switch (type) {\n case 'console':\n instrumentConsole();\n break;\n case 'dom':\n instrumentDOM();\n break;\n case 'xhr':\n instrumentXHR();\n break;\n case 'fetch':\n instrumentFetch();\n break;\n case 'history':\n instrumentHistory();\n break;\n case 'error':\n instrumentError();\n break;\n case 'unhandledrejection':\n instrumentUnhandledRejection();\n break;\n default:\n IS_DEBUG_BUILD && logger.warn('unknown instrumentation type:', type);\n return;\n }\n}\n\n/**\n * Add handler that will be called when given type of instrumentation triggers.\n * Use at your own risk, this might break without changelog notice, only used internally.\n * @hidden\n */\nexport function addInstrumentationHandler(type: InstrumentHandlerType, callback: InstrumentHandlerCallback): void {\n handlers[type] = handlers[type] || [];\n (handlers[type] as InstrumentHandlerCallback[]).push(callback);\n instrument(type);\n}\n\n/** JSDoc */\nfunction triggerHandlers(type: InstrumentHandlerType, data: any): void {\n if (!type || !handlers[type]) {\n return;\n }\n\n for (const handler of handlers[type] || []) {\n try {\n handler(data);\n } catch (e) {\n IS_DEBUG_BUILD &&\n logger.error(\n `Error while triggering instrumentation handler.\\nType: ${type}\\nName: ${getFunctionName(handler)}\\nError:`,\n e,\n );\n }\n }\n}\n\n/** JSDoc */\nfunction instrumentConsole(): void {\n if (!('console' in global)) {\n return;\n }\n\n CONSOLE_LEVELS.forEach(function (level: string): void {\n if (!(level in global.console)) {\n return;\n }\n\n fill(global.console, level, function (originalConsoleMethod: () => any): Function {\n return function (...args: any[]): void {\n triggerHandlers('console', { args, level });\n\n // this fails for some browsers. :(\n if (originalConsoleMethod) {\n originalConsoleMethod.apply(global.console, args);\n }\n };\n });\n });\n}\n\n/** JSDoc */\nfunction instrumentFetch(): void {\n if (!supportsNativeFetch()) {\n return;\n }\n\n fill(global, 'fetch', function (originalFetch: () => void): () => void {\n return function (...args: any[]): void {\n const handlerData = {\n args,\n fetchData: {\n method: getFetchMethod(args),\n url: getFetchUrl(args),\n },\n startTimestamp: Date.now(),\n };\n\n triggerHandlers('fetch', {\n ...handlerData,\n });\n\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n return originalFetch.apply(global, args).then(\n (response: Response) => {\n triggerHandlers('fetch', {\n ...handlerData,\n endTimestamp: Date.now(),\n response,\n });\n return response;\n },\n (error: Error) => {\n triggerHandlers('fetch', {\n ...handlerData,\n endTimestamp: Date.now(),\n error,\n });\n // NOTE: If you are a Sentry user, and you are seeing this stack frame,\n // it means the sentry.javascript SDK caught an error invoking your application code.\n // This is expected behavior and NOT indicative of a bug with sentry.javascript.\n throw error;\n },\n );\n };\n });\n}\n\ntype XHRSendInput = null | Blob | BufferSource | FormData | URLSearchParams | string;\n\n/** JSDoc */\ninterface SentryWrappedXMLHttpRequest extends XMLHttpRequest {\n [key: string]: any;\n __sentry_xhr__?: {\n method?: string;\n url?: string;\n status_code?: number;\n body?: XHRSendInput;\n };\n}\n\n/* eslint-disable @typescript-eslint/no-unsafe-member-access */\n/** Extract `method` from fetch call arguments */\nfunction getFetchMethod(fetchArgs: any[] = []): string {\n if ('Request' in global && isInstanceOf(fetchArgs[0], Request) && fetchArgs[0].method) {\n return String(fetchArgs[0].method).toUpperCase();\n }\n if (fetchArgs[1] && fetchArgs[1].method) {\n return String(fetchArgs[1].method).toUpperCase();\n }\n return 'GET';\n}\n\n/** Extract `url` from fetch call arguments */\nfunction getFetchUrl(fetchArgs: any[] = []): string {\n if (typeof fetchArgs[0] === 'string') {\n return fetchArgs[0];\n }\n if ('Request' in global && isInstanceOf(fetchArgs[0], Request)) {\n return fetchArgs[0].url;\n }\n return String(fetchArgs[0]);\n}\n/* eslint-enable @typescript-eslint/no-unsafe-member-access */\n\n/** JSDoc */\nfunction instrumentXHR(): void {\n if (!('XMLHttpRequest' in global)) {\n return;\n }\n\n const xhrproto = XMLHttpRequest.prototype;\n\n fill(xhrproto, 'open', function (originalOpen: () => void): () => void {\n return function (this: SentryWrappedXMLHttpRequest, ...args: any[]): void {\n // eslint-disable-next-line @typescript-eslint/no-this-alias\n const xhr = this;\n const url = args[1];\n const xhrInfo: SentryWrappedXMLHttpRequest['__sentry_xhr__'] = (xhr.__sentry_xhr__ = {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n method: isString(args[0]) ? args[0].toUpperCase() : args[0],\n url: args[1],\n });\n\n // if Sentry key appears in URL, don't capture it as a request\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n if (isString(url) && xhrInfo.method === 'POST' && url.match(/sentry_key/)) {\n xhr.__sentry_own_request__ = true;\n }\n\n const onreadystatechangeHandler = function (): void {\n if (xhr.readyState === 4) {\n try {\n // touching statusCode in some platforms throws\n // an exception\n xhrInfo.status_code = xhr.status;\n } catch (e) {\n /* do nothing */\n }\n\n triggerHandlers('xhr', {\n args,\n endTimestamp: Date.now(),\n startTimestamp: Date.now(),\n xhr,\n });\n }\n };\n\n if ('onreadystatechange' in xhr && typeof xhr.onreadystatechange === 'function') {\n fill(xhr, 'onreadystatechange', function (original: WrappedFunction): Function {\n return function (...readyStateArgs: any[]): void {\n onreadystatechangeHandler();\n return original.apply(xhr, readyStateArgs);\n };\n });\n } else {\n xhr.addEventListener('readystatechange', onreadystatechangeHandler);\n }\n\n return originalOpen.apply(xhr, args);\n };\n });\n\n fill(xhrproto, 'send', function (originalSend: () => void): () => void {\n return function (this: SentryWrappedXMLHttpRequest, ...args: any[]): void {\n if (this.__sentry_xhr__ && args[0] !== undefined) {\n this.__sentry_xhr__.body = args[0];\n }\n\n triggerHandlers('xhr', {\n args,\n startTimestamp: Date.now(),\n xhr: this,\n });\n\n return originalSend.apply(this, args);\n };\n });\n}\n\nlet lastHref: string;\n\n/** JSDoc */\nfunction instrumentHistory(): void {\n if (!supportsHistory()) {\n return;\n }\n\n const oldOnPopState = global.onpopstate;\n global.onpopstate = function (this: WindowEventHandlers, ...args: any[]): any {\n const to = global.location.href;\n // keep track of the current URL state, as we always receive only the updated state\n const from = lastHref;\n lastHref = to;\n triggerHandlers('history', {\n from,\n to,\n });\n if (oldOnPopState) {\n // Apparently this can throw in Firefox when incorrectly implemented plugin is installed.\n // https://github.com/getsentry/sentry-javascript/issues/3344\n // https://github.com/bugsnag/bugsnag-js/issues/469\n try {\n return oldOnPopState.apply(this, args);\n } catch (_oO) {\n // no-empty\n }\n }\n };\n\n /** @hidden */\n function historyReplacementFunction(originalHistoryFunction: () => void): () => void {\n return function (this: History, ...args: any[]): void {\n const url = args.length > 2 ? args[2] : undefined;\n if (url) {\n // coerce to string (this is what pushState does)\n const from = lastHref;\n const to = String(url);\n // keep track of the current URL state, as we always receive only the updated state\n lastHref = to;\n triggerHandlers('history', {\n from,\n to,\n });\n }\n return originalHistoryFunction.apply(this, args);\n };\n }\n\n fill(global.history, 'pushState', historyReplacementFunction);\n fill(global.history, 'replaceState', historyReplacementFunction);\n}\n\nconst debounceDuration = 1000;\nlet debounceTimerID: number | undefined;\nlet lastCapturedEvent: Event | undefined;\n\n/**\n * Decide whether the current event should finish the debounce of previously captured one.\n * @param previous previously captured event\n * @param current event to be captured\n */\nfunction shouldShortcircuitPreviousDebounce(previous: Event | undefined, current: Event): boolean {\n // If there was no previous event, it should always be swapped for the new one.\n if (!previous) {\n return true;\n }\n\n // If both events have different type, then user definitely performed two separate actions. e.g. click + keypress.\n if (previous.type !== current.type) {\n return true;\n }\n\n try {\n // If both events have the same type, it's still possible that actions were performed on different targets.\n // e.g. 2 clicks on different buttons.\n if (previous.target !== current.target) {\n return true;\n }\n } catch (e) {\n // just accessing `target` property can throw an exception in some rare circumstances\n // see: https://github.com/getsentry/sentry-javascript/issues/838\n }\n\n // If both events have the same type _and_ same `target` (an element which triggered an event, _not necessarily_\n // to which an event listener was attached), we treat them as the same action, as we want to capture\n // only one breadcrumb. e.g. multiple clicks on the same button, or typing inside a user input box.\n return false;\n}\n\n/**\n * Decide whether an event should be captured.\n * @param event event to be captured\n */\nfunction shouldSkipDOMEvent(event: Event): boolean {\n // We are only interested in filtering `keypress` events for now.\n if (event.type !== 'keypress') {\n return false;\n }\n\n try {\n const target = event.target as HTMLElement;\n\n if (!target || !target.tagName) {\n return true;\n }\n\n // Only consider keypress events on actual input elements. This will disregard keypresses targeting body\n // e.g.tabbing through elements, hotkeys, etc.\n if (target.tagName === 'INPUT' || target.tagName === 'TEXTAREA' || target.isContentEditable) {\n return false;\n }\n } catch (e) {\n // just accessing `target` property can throw an exception in some rare circumstances\n // see: https://github.com/getsentry/sentry-javascript/issues/838\n }\n\n return true;\n}\n\n/**\n * Wraps addEventListener to capture UI breadcrumbs\n * @param handler function that will be triggered\n * @param globalListener indicates whether event was captured by the global event listener\n * @returns wrapped breadcrumb events handler\n * @hidden\n */\nfunction makeDOMEventHandler(handler: Function, globalListener: boolean = false): (event: Event) => void {\n return (event: Event): void => {\n // It's possible this handler might trigger multiple times for the same\n // event (e.g. event propagation through node ancestors).\n // Ignore if we've already captured that event.\n if (!event || lastCapturedEvent === event) {\n return;\n }\n\n // We always want to skip _some_ events.\n if (shouldSkipDOMEvent(event)) {\n return;\n }\n\n const name = event.type === 'keypress' ? 'input' : event.type;\n\n // If there is no debounce timer, it means that we can safely capture the new event and store it for future comparisons.\n if (debounceTimerID === undefined) {\n handler({\n event: event,\n name,\n global: globalListener,\n });\n lastCapturedEvent = event;\n }\n // If there is a debounce awaiting, see if the new event is different enough to treat it as a unique one.\n // If that's the case, emit the previous event and store locally the newly-captured DOM event.\n else if (shouldShortcircuitPreviousDebounce(lastCapturedEvent, event)) {\n handler({\n event: event,\n name,\n global: globalListener,\n });\n lastCapturedEvent = event;\n }\n\n // Start a new debounce timer that will prevent us from capturing multiple events that should be grouped together.\n clearTimeout(debounceTimerID);\n debounceTimerID = global.setTimeout(() => {\n debounceTimerID = undefined;\n }, debounceDuration);\n };\n}\n\ntype AddEventListener = (\n type: string,\n listener: EventListenerOrEventListenerObject,\n options?: boolean | AddEventListenerOptions,\n) => void;\ntype RemoveEventListener = (\n type: string,\n listener: EventListenerOrEventListenerObject,\n options?: boolean | EventListenerOptions,\n) => void;\n\ntype InstrumentedElement = Element & {\n __sentry_instrumentation_handlers__?: {\n [key in 'click' | 'keypress']?: {\n handler?: Function;\n /** The number of custom listeners attached to this element */\n refCount: number;\n };\n };\n};\n\n/** JSDoc */\nfunction instrumentDOM(): void {\n if (!('document' in global)) {\n return;\n }\n\n // Make it so that any click or keypress that is unhandled / bubbled up all the way to the document triggers our dom\n // handlers. (Normally we have only one, which captures a breadcrumb for each click or keypress.) Do this before\n // we instrument `addEventListener` so that we don't end up attaching this handler twice.\n const triggerDOMHandler = triggerHandlers.bind(null, 'dom');\n const globalDOMEventHandler = makeDOMEventHandler(triggerDOMHandler, true);\n global.document.addEventListener('click', globalDOMEventHandler, false);\n global.document.addEventListener('keypress', globalDOMEventHandler, false);\n\n // After hooking into click and keypress events bubbled up to `document`, we also hook into user-handled\n // clicks & keypresses, by adding an event listener of our own to any element to which they add a listener. That\n // way, whenever one of their handlers is triggered, ours will be, too. (This is needed because their handler\n // could potentially prevent the event from bubbling up to our global listeners. This way, our handler are still\n // guaranteed to fire at least once.)\n ['EventTarget', 'Node'].forEach((target: string) => {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n const proto = (global as any)[target] && (global as any)[target].prototype;\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access, no-prototype-builtins\n if (!proto || !proto.hasOwnProperty || !proto.hasOwnProperty('addEventListener')) {\n return;\n }\n\n fill(proto, 'addEventListener', function (originalAddEventListener: AddEventListener): AddEventListener {\n return function (\n this: Element,\n type: string,\n listener: EventListenerOrEventListenerObject,\n options?: boolean | AddEventListenerOptions,\n ): AddEventListener {\n if (type === 'click' || type == 'keypress') {\n try {\n const el = this as InstrumentedElement;\n const handlers = (el.__sentry_instrumentation_handlers__ = el.__sentry_instrumentation_handlers__ || {});\n const handlerForType = (handlers[type] = handlers[type] || { refCount: 0 });\n\n if (!handlerForType.handler) {\n const handler = makeDOMEventHandler(triggerDOMHandler);\n handlerForType.handler = handler;\n originalAddEventListener.call(this, type, handler, options);\n }\n\n handlerForType.refCount += 1;\n } catch (e) {\n // Accessing dom properties is always fragile.\n // Also allows us to skip `addEventListenrs` calls with no proper `this` context.\n }\n }\n\n return originalAddEventListener.call(this, type, listener, options);\n };\n });\n\n fill(\n proto,\n 'removeEventListener',\n function (originalRemoveEventListener: RemoveEventListener): RemoveEventListener {\n return function (\n this: Element,\n type: string,\n listener: EventListenerOrEventListenerObject,\n options?: boolean | EventListenerOptions,\n ): () => void {\n if (type === 'click' || type == 'keypress') {\n try {\n const el = this as InstrumentedElement;\n const handlers = el.__sentry_instrumentation_handlers__ || {};\n const handlerForType = handlers[type];\n\n if (handlerForType) {\n handlerForType.refCount -= 1;\n // If there are no longer any custom handlers of the current type on this element, we can remove ours, too.\n if (handlerForType.refCount <= 0) {\n originalRemoveEventListener.call(this, type, handlerForType.handler, options);\n handlerForType.handler = undefined;\n delete handlers[type]; // eslint-disable-line @typescript-eslint/no-dynamic-delete\n }\n\n // If there are no longer any custom handlers of any type on this element, cleanup everything.\n if (Object.keys(handlers).length === 0) {\n delete el.__sentry_instrumentation_handlers__;\n }\n }\n } catch (e) {\n // Accessing dom properties is always fragile.\n // Also allows us to skip `addEventListenrs` calls with no proper `this` context.\n }\n }\n\n return originalRemoveEventListener.call(this, type, listener, options);\n };\n },\n );\n });\n}\n\nlet _oldOnErrorHandler: OnErrorEventHandler = null;\n/** JSDoc */\nfunction instrumentError(): void {\n _oldOnErrorHandler = global.onerror;\n\n global.onerror = function (msg: any, url: any, line: any, column: any, error: any): boolean {\n triggerHandlers('error', {\n column,\n error,\n line,\n msg,\n url,\n });\n\n if (_oldOnErrorHandler) {\n // eslint-disable-next-line prefer-rest-params\n return _oldOnErrorHandler.apply(this, arguments);\n }\n\n return false;\n };\n}\n\nlet _oldOnUnhandledRejectionHandler: ((e: any) => void) | null = null;\n/** JSDoc */\nfunction instrumentUnhandledRejection(): void {\n _oldOnUnhandledRejectionHandler = global.onunhandledrejection;\n\n global.onunhandledrejection = function (e: any): boolean {\n triggerHandlers('unhandledrejection', e);\n\n if (_oldOnUnhandledRejectionHandler) {\n // eslint-disable-next-line prefer-rest-params\n return _oldOnUnhandledRejectionHandler.apply(this, arguments);\n }\n\n return true;\n };\n}\n","/* eslint-disable @typescript-eslint/no-explicit-any */\n/* eslint-disable @typescript-eslint/explicit-module-boundary-types */\n\nimport { Primitive } from '@sentry/types';\n\n// eslint-disable-next-line @typescript-eslint/unbound-method\nconst objectToString = Object.prototype.toString;\n\n/**\n * Checks whether given value's type is one of a few Error or Error-like\n * {@link isError}.\n *\n * @param wat A value to be checked.\n * @returns A boolean representing the result.\n */\nexport function isError(wat: unknown): wat is Error {\n switch (objectToString.call(wat)) {\n case '[object Error]':\n case '[object Exception]':\n case '[object DOMException]':\n return true;\n default:\n return isInstanceOf(wat, Error);\n }\n}\n\nfunction isBuiltin(wat: unknown, ty: string): boolean {\n return objectToString.call(wat) === `[object ${ty}]`;\n}\n\n/**\n * Checks whether given value's type is ErrorEvent\n * {@link isErrorEvent}.\n *\n * @param wat A value to be checked.\n * @returns A boolean representing the result.\n */\nexport function isErrorEvent(wat: unknown): boolean {\n return isBuiltin(wat, 'ErrorEvent');\n}\n\n/**\n * Checks whether given value's type is DOMError\n * {@link isDOMError}.\n *\n * @param wat A value to be checked.\n * @returns A boolean representing the result.\n */\nexport function isDOMError(wat: unknown): boolean {\n return isBuiltin(wat, 'DOMError');\n}\n\n/**\n * Checks whether given value's type is DOMException\n * {@link isDOMException}.\n *\n * @param wat A value to be checked.\n * @returns A boolean representing the result.\n */\nexport function isDOMException(wat: unknown): boolean {\n return isBuiltin(wat, 'DOMException');\n}\n\n/**\n * Checks whether given value's type is a string\n * {@link isString}.\n *\n * @param wat A value to be checked.\n * @returns A boolean representing the result.\n */\nexport function isString(wat: unknown): wat is string {\n return isBuiltin(wat, 'String');\n}\n\n/**\n * Checks whether given value is a primitive (undefined, null, number, boolean, string, bigint, symbol)\n * {@link isPrimitive}.\n *\n * @param wat A value to be checked.\n * @returns A boolean representing the result.\n */\nexport function isPrimitive(wat: unknown): wat is Primitive {\n return wat === null || (typeof wat !== 'object' && typeof wat !== 'function');\n}\n\n/**\n * Checks whether given value's type is an object literal\n * {@link isPlainObject}.\n *\n * @param wat A value to be checked.\n * @returns A boolean representing the result.\n */\nexport function isPlainObject(wat: unknown): wat is Record {\n return isBuiltin(wat, 'Object');\n}\n\n/**\n * Checks whether given value's type is an Event instance\n * {@link isEvent}.\n *\n * @param wat A value to be checked.\n * @returns A boolean representing the result.\n */\nexport function isEvent(wat: unknown): boolean {\n return typeof Event !== 'undefined' && isInstanceOf(wat, Event);\n}\n\n/**\n * Checks whether given value's type is an Element instance\n * {@link isElement}.\n *\n * @param wat A value to be checked.\n * @returns A boolean representing the result.\n */\nexport function isElement(wat: unknown): boolean {\n return typeof Element !== 'undefined' && isInstanceOf(wat, Element);\n}\n\n/**\n * Checks whether given value's type is an regexp\n * {@link isRegExp}.\n *\n * @param wat A value to be checked.\n * @returns A boolean representing the result.\n */\nexport function isRegExp(wat: unknown): wat is RegExp {\n return isBuiltin(wat, 'RegExp');\n}\n\n/**\n * Checks whether given value has a then function.\n * @param wat A value to be checked.\n */\nexport function isThenable(wat: any): wat is PromiseLike {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n return Boolean(wat && wat.then && typeof wat.then === 'function');\n}\n\n/**\n * Checks whether given value's type is a SyntheticEvent\n * {@link isSyntheticEvent}.\n *\n * @param wat A value to be checked.\n * @returns A boolean representing the result.\n */\nexport function isSyntheticEvent(wat: unknown): boolean {\n return isPlainObject(wat) && 'nativeEvent' in wat && 'preventDefault' in wat && 'stopPropagation' in wat;\n}\n\n/**\n * Checks whether given value is NaN\n * {@link isNaN}.\n *\n * @param wat A value to be checked.\n * @returns A boolean representing the result.\n */\nexport function isNaN(wat: unknown): boolean {\n return typeof wat === 'number' && wat !== wat;\n}\n\n/**\n * Checks whether given value's type is an instance of provided constructor.\n * {@link isInstanceOf}.\n *\n * @param wat A value to be checked.\n * @param base A constructor to be used in a check.\n * @returns A boolean representing the result.\n */\nexport function isInstanceOf(wat: any, base: any): boolean {\n try {\n return wat instanceof base;\n } catch (_e) {\n return false;\n }\n}\n","import { WrappedFunction } from '@sentry/types';\n\nimport { IS_DEBUG_BUILD } from './flags';\nimport { getGlobalObject, getGlobalSingleton } from './global';\n\n// TODO: Implement different loggers for different environments\nconst global = getGlobalObject();\n\n/** Prefix for logging strings */\nconst PREFIX = 'Sentry Logger ';\n\nexport const CONSOLE_LEVELS = ['debug', 'info', 'warn', 'error', 'log', 'assert'] as const;\n\ntype LoggerMethod = (...args: unknown[]) => void;\ntype LoggerConsoleMethods = Record;\n\n/** JSDoc */\ninterface Logger extends LoggerConsoleMethods {\n disable(): void;\n enable(): void;\n}\n\n/**\n * Temporarily disable sentry console instrumentations.\n *\n * @param callback The function to run against the original `console` messages\n * @returns The results of the callback\n */\nexport function consoleSandbox(callback: () => T): T {\n const global = getGlobalObject();\n\n if (!('console' in global)) {\n return callback();\n }\n\n const originalConsole = global.console as Console & Record;\n const wrappedLevels: Partial = {};\n\n // Restore all wrapped console methods\n CONSOLE_LEVELS.forEach(level => {\n // TODO(v7): Remove this check as it's only needed for Node 6\n const originalWrappedFunc =\n originalConsole[level] && (originalConsole[level] as WrappedFunction).__sentry_original__;\n if (level in global.console && originalWrappedFunc) {\n wrappedLevels[level] = originalConsole[level] as LoggerConsoleMethods[typeof level];\n originalConsole[level] = originalWrappedFunc as Console[typeof level];\n }\n });\n\n try {\n return callback();\n } finally {\n // Revert restoration to wrapped state\n Object.keys(wrappedLevels).forEach(level => {\n originalConsole[level] = wrappedLevels[level as typeof CONSOLE_LEVELS[number]];\n });\n }\n}\n\nfunction makeLogger(): Logger {\n let enabled = false;\n const logger: Partial = {\n enable: () => {\n enabled = true;\n },\n disable: () => {\n enabled = false;\n },\n };\n\n if (IS_DEBUG_BUILD) {\n CONSOLE_LEVELS.forEach(name => {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n logger[name] = (...args: any[]) => {\n if (enabled) {\n consoleSandbox(() => {\n global.console[name](`${PREFIX}[${name}]:`, ...args);\n });\n }\n };\n });\n } else {\n CONSOLE_LEVELS.forEach(name => {\n logger[name] = () => undefined;\n });\n }\n\n return logger as Logger;\n}\n\n// Ensure we only have a single logger instance, even if multiple versions of @sentry/utils are being used\nlet logger: Logger;\nif (IS_DEBUG_BUILD) {\n logger = getGlobalSingleton('logger', makeLogger);\n} else {\n logger = makeLogger();\n}\n\nexport { logger };\n","/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { Event, Exception, Mechanism, StackFrame } from '@sentry/types';\n\nimport { getGlobalObject } from './global';\nimport { addNonEnumerableProperty } from './object';\nimport { snipLine } from './string';\n\n/**\n * Extended Window interface that allows for Crypto API usage in IE browsers\n */\ninterface MsCryptoWindow extends Window {\n msCrypto?: Crypto;\n}\n\n/**\n * UUID4 generator\n *\n * @returns string Generated UUID4.\n */\nexport function uuid4(): string {\n const global = getGlobalObject() as MsCryptoWindow;\n const crypto = global.crypto || global.msCrypto;\n\n if (!(crypto === void 0) && crypto.getRandomValues) {\n // Use window.crypto API if available\n const arr = new Uint16Array(8);\n crypto.getRandomValues(arr);\n\n // set 4 in byte 7\n // eslint-disable-next-line no-bitwise\n arr[3] = (arr[3] & 0xfff) | 0x4000;\n // set 2 most significant bits of byte 9 to '10'\n // eslint-disable-next-line no-bitwise\n arr[4] = (arr[4] & 0x3fff) | 0x8000;\n\n const pad = (num: number): string => {\n let v = num.toString(16);\n while (v.length < 4) {\n v = `0${v}`;\n }\n return v;\n };\n\n return (\n pad(arr[0]) + pad(arr[1]) + pad(arr[2]) + pad(arr[3]) + pad(arr[4]) + pad(arr[5]) + pad(arr[6]) + pad(arr[7])\n );\n }\n // http://stackoverflow.com/questions/105034/how-to-create-a-guid-uuid-in-javascript/2117523#2117523\n return 'xxxxxxxxxxxx4xxxyxxxxxxxxxxxxxxx'.replace(/[xy]/g, c => {\n // eslint-disable-next-line no-bitwise\n const r = (Math.random() * 16) | 0;\n // eslint-disable-next-line no-bitwise\n const v = c === 'x' ? r : (r & 0x3) | 0x8;\n return v.toString(16);\n });\n}\n\n/**\n * Parses string form of URL into an object\n * // borrowed from https://tools.ietf.org/html/rfc3986#appendix-B\n * // intentionally using regex and not href parsing trick because React Native and other\n * // environments where DOM might not be available\n * @returns parsed URL object\n */\nexport function parseUrl(url: string): {\n host?: string;\n path?: string;\n protocol?: string;\n relative?: string;\n} {\n if (!url) {\n return {};\n }\n\n const match = url.match(/^(([^:/?#]+):)?(\\/\\/([^/?#]*))?([^?#]*)(\\?([^#]*))?(#(.*))?$/);\n\n if (!match) {\n return {};\n }\n\n // coerce to undefined values to empty string so we don't get 'undefined'\n const query = match[6] || '';\n const fragment = match[8] || '';\n return {\n host: match[4],\n path: match[5],\n protocol: match[2],\n relative: match[5] + query + fragment, // everything minus origin\n };\n}\n\nfunction getFirstException(event: Event): Exception | undefined {\n return event.exception && event.exception.values ? event.exception.values[0] : undefined;\n}\n\n/**\n * Extracts either message or type+value from an event that can be used for user-facing logs\n * @returns event's description\n */\nexport function getEventDescription(event: Event): string {\n const { message, event_id: eventId } = event;\n if (message) {\n return message;\n }\n\n const firstException = getFirstException(event);\n if (firstException) {\n if (firstException.type && firstException.value) {\n return `${firstException.type}: ${firstException.value}`;\n }\n return firstException.type || firstException.value || eventId || '';\n }\n return eventId || '';\n}\n\n/**\n * Adds exception values, type and value to an synthetic Exception.\n * @param event The event to modify.\n * @param value Value of the exception.\n * @param type Type of the exception.\n * @hidden\n */\nexport function addExceptionTypeValue(event: Event, value?: string, type?: string): void {\n const exception = (event.exception = event.exception || {});\n const values = (exception.values = exception.values || []);\n const firstException = (values[0] = values[0] || {});\n if (!firstException.value) {\n firstException.value = value || '';\n }\n if (!firstException.type) {\n firstException.type = type || 'Error';\n }\n}\n\n/**\n * Adds exception mechanism data to a given event. Uses defaults if the second parameter is not passed.\n *\n * @param event The event to modify.\n * @param newMechanism Mechanism data to add to the event.\n * @hidden\n */\nexport function addExceptionMechanism(event: Event, newMechanism?: Partial): void {\n const firstException = getFirstException(event);\n if (!firstException) {\n return;\n }\n\n const defaultMechanism = { type: 'generic', handled: true };\n const currentMechanism = firstException.mechanism;\n firstException.mechanism = { ...defaultMechanism, ...currentMechanism, ...newMechanism };\n\n if (newMechanism && 'data' in newMechanism) {\n const mergedData = { ...(currentMechanism && currentMechanism.data), ...newMechanism.data };\n firstException.mechanism.data = mergedData;\n }\n}\n\n// https://semver.org/#is-there-a-suggested-regular-expression-regex-to-check-a-semver-string\nconst SEMVER_REGEXP =\n /^(0|[1-9]\\d*)\\.(0|[1-9]\\d*)\\.(0|[1-9]\\d*)(?:-((?:0|[1-9]\\d*|\\d*[a-zA-Z-][0-9a-zA-Z-]*)(?:\\.(?:0|[1-9]\\d*|\\d*[a-zA-Z-][0-9a-zA-Z-]*))*))?(?:\\+([0-9a-zA-Z-]+(?:\\.[0-9a-zA-Z-]+)*))?$/;\n\n/**\n * Represents Semantic Versioning object\n */\ninterface SemVer {\n major?: number;\n minor?: number;\n patch?: number;\n prerelease?: string;\n buildmetadata?: string;\n}\n\n/**\n * Parses input into a SemVer interface\n * @param input string representation of a semver version\n */\nexport function parseSemver(input: string): SemVer {\n const match = input.match(SEMVER_REGEXP) || [];\n const major = parseInt(match[1], 10);\n const minor = parseInt(match[2], 10);\n const patch = parseInt(match[3], 10);\n return {\n buildmetadata: match[5],\n major: isNaN(major) ? undefined : major,\n minor: isNaN(minor) ? undefined : minor,\n patch: isNaN(patch) ? undefined : patch,\n prerelease: match[4],\n };\n}\n\n/**\n * This function adds context (pre/post/line) lines to the provided frame\n *\n * @param lines string[] containing all lines\n * @param frame StackFrame that will be mutated\n * @param linesOfContext number of context lines we want to add pre/post\n */\nexport function addContextToFrame(lines: string[], frame: StackFrame, linesOfContext: number = 5): void {\n const lineno = frame.lineno || 0;\n const maxLines = lines.length;\n const sourceLine = Math.max(Math.min(maxLines, lineno - 1), 0);\n\n frame.pre_context = lines\n .slice(Math.max(0, sourceLine - linesOfContext), sourceLine)\n .map((line: string) => snipLine(line, 0));\n\n frame.context_line = snipLine(lines[Math.min(maxLines - 1, sourceLine)], frame.colno || 0);\n\n frame.post_context = lines\n .slice(Math.min(sourceLine + 1, maxLines), sourceLine + 1 + linesOfContext)\n .map((line: string) => snipLine(line, 0));\n}\n\n/**\n * Strip the query string and fragment off of a given URL or path (if present)\n *\n * @param urlPath Full URL or path, including possible query string and/or fragment\n * @returns URL or path without query string or fragment\n */\nexport function stripUrlQueryAndFragment(urlPath: string): string {\n // eslint-disable-next-line no-useless-escape\n return urlPath.split(/[\\?#]/, 1)[0];\n}\n\n/**\n * Checks whether or not we've already captured the given exception (note: not an identical exception - the very object\n * in question), and marks it captured if not.\n *\n * This is useful because it's possible for an error to get captured by more than one mechanism. After we intercept and\n * record an error, we rethrow it (assuming we've intercepted it before it's reached the top-level global handlers), so\n * that we don't interfere with whatever effects the error might have had were the SDK not there. At that point, because\n * the error has been rethrown, it's possible for it to bubble up to some other code we've instrumented. If it's not\n * caught after that, it will bubble all the way up to the global handlers (which of course we also instrument). This\n * function helps us ensure that even if we encounter the same error more than once, we only record it the first time we\n * see it.\n *\n * Note: It will ignore primitives (always return `false` and not mark them as seen), as properties can't be set on\n * them. {@link: Object.objectify} can be used on exceptions to convert any that are primitives into their equivalent\n * object wrapper forms so that this check will always work. However, because we need to flag the exact object which\n * will get rethrown, and because that rethrowing happens outside of the event processing pipeline, the objectification\n * must be done before the exception captured.\n *\n * @param A thrown exception to check or flag as having been seen\n * @returns `true` if the exception has already been captured, `false` if not (with the side effect of marking it seen)\n */\nexport function checkOrSetAlreadyCaught(exception: unknown): boolean {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n if (exception && (exception as any).__sentry_captured__) {\n return true;\n }\n\n try {\n // set it this way rather than by assignment so that it's not ennumerable and therefore isn't recorded by the\n // `ExtraErrorData` integration\n addNonEnumerableProperty(exception as { [key: string]: unknown }, '__sentry_captured__', true);\n } catch (err) {\n // `exception` is a primitive, so we can't mark it seen\n }\n\n return false;\n}\n","/**\n * NOTE: In order to avoid circular dependencies, if you add a function to this module and it needs to print something,\n * you must either a) use `console.log` rather than the logger, or b) put your function elsewhere.\n */\n\nimport { isBrowserBundle } from './env';\n\n/**\n * Checks whether we're in the Node.js or Browser environment\n *\n * @returns Answer to given question\n */\nexport function isNodeEnv(): boolean {\n // explicitly check for browser bundles as those can be optimized statically\n // by terser/rollup.\n return (\n !isBrowserBundle() &&\n Object.prototype.toString.call(typeof process !== 'undefined' ? process : 0) === '[object process]'\n );\n}\n\n/**\n * Requires a module which is protected against bundler minification.\n *\n * @param request The module path to resolve\n */\n// eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types, @typescript-eslint/no-explicit-any\nexport function dynamicRequire(mod: any, request: string): any {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n return mod.require(request);\n}\n\n/**\n * Helper for dynamically loading module that should work with linked dependencies.\n * The problem is that we _should_ be using `require(require.resolve(moduleName, { paths: [cwd()] }))`\n * However it's _not possible_ to do that with Webpack, as it has to know all the dependencies during\n * build time. `require.resolve` is also not available in any other way, so we cannot create,\n * a fake helper like we do with `dynamicRequire`.\n *\n * We always prefer to use local package, thus the value is not returned early from each `try/catch` block.\n * That is to mimic the behavior of `require.resolve` exactly.\n *\n * @param moduleName module name to require\n * @returns possibly required module\n */\nexport function loadModule(moduleName: string): T | undefined {\n let mod: T | undefined;\n\n try {\n mod = dynamicRequire(module, moduleName);\n } catch (e) {\n // no-empty\n }\n\n try {\n const { cwd } = dynamicRequire(module, 'process');\n mod = dynamicRequire(module, `${cwd()}/node_modules/${moduleName}`) as T;\n } catch (e) {\n // no-empty\n }\n\n return mod;\n}\n","/*\n * This module exists for optimizations in the build process through rollup and terser. We define some global\n * constants, which can be overridden during build. By guarding certain pieces of code with functions that return these\n * constants, we can control whether or not they appear in the final bundle. (Any code guarded by a false condition will\n * never run, and will hence be dropped during treeshaking.) The two primary uses for this are stripping out calls to\n * `logger` and preventing node-related code from appearing in browser bundles.\n *\n * Attention:\n * This file should not be used to define constants/flags that are intended to be used for tree-shaking conducted by\n * users. These fags should live in their respective packages, as we identified user tooling (specifically webpack)\n * having issues tree-shaking these constants across package boundaries.\n * An example for this is the __SENTRY_DEBUG__ constant. It is declared in each package individually because we want\n * users to be able to shake away expressions that it guards.\n */\n\ndeclare const __SENTRY_BROWSER_BUNDLE__: boolean | undefined;\n\n/**\n * Figures out if we're building a browser bundle.\n *\n * @returns true if this is a browser bundle build.\n */\nexport function isBrowserBundle(): boolean {\n return typeof __SENTRY_BROWSER_BUNDLE__ !== 'undefined' && !!__SENTRY_BROWSER_BUNDLE__;\n}\n","/* eslint-disable max-lines */\n/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { ExtendedError, WrappedFunction } from '@sentry/types';\n\nimport { htmlTreeAsString } from './browser';\nimport { isElement, isError, isEvent, isInstanceOf, isPlainObject, isPrimitive } from './is';\nimport { truncate } from './string';\n\n/**\n * Replace a method in an object with a wrapped version of itself.\n *\n * @param source An object that contains a method to be wrapped.\n * @param name The name of the method to be wrapped.\n * @param replacementFactory A higher-order function that takes the original version of the given method and returns a\n * wrapped version. Note: The function returned by `replacementFactory` needs to be a non-arrow function, in order to\n * preserve the correct value of `this`, and the original method must be called using `origMethod.call(this, )` or `origMethod.apply(this, [])` (rather than being called directly), again to preserve `this`.\n * @returns void\n */\nexport function fill(source: { [key: string]: any }, name: string, replacementFactory: (...args: any[]) => any): void {\n if (!(name in source)) {\n return;\n }\n\n const original = source[name] as () => any;\n const wrapped = replacementFactory(original) as WrappedFunction;\n\n // Make sure it's a function first, as we need to attach an empty prototype for `defineProperties` to work\n // otherwise it'll throw \"TypeError: Object.defineProperties called on non-object\"\n if (typeof wrapped === 'function') {\n try {\n markFunctionWrapped(wrapped, original);\n } catch (_Oo) {\n // This can throw if multiple fill happens on a global object like XMLHttpRequest\n // Fixes https://github.com/getsentry/sentry-javascript/issues/2043\n }\n }\n\n source[name] = wrapped;\n}\n\n/**\n * Defines a non-enumerable property on the given object.\n *\n * @param obj The object on which to set the property\n * @param name The name of the property to be set\n * @param value The value to which to set the property\n */\nexport function addNonEnumerableProperty(obj: { [key: string]: unknown }, name: string, value: unknown): void {\n Object.defineProperty(obj, name, {\n // enumerable: false, // the default, so we can save on bundle size by not explicitly setting it\n value: value,\n writable: true,\n configurable: true,\n });\n}\n\n/**\n * Remembers the original function on the wrapped function and\n * patches up the prototype.\n *\n * @param wrapped the wrapper function\n * @param original the original function that gets wrapped\n */\nexport function markFunctionWrapped(wrapped: WrappedFunction, original: WrappedFunction): void {\n const proto = original.prototype || {};\n wrapped.prototype = original.prototype = proto;\n addNonEnumerableProperty(wrapped, '__sentry_original__', original);\n}\n\n/**\n * This extracts the original function if available. See\n * `markFunctionWrapped` for more information.\n *\n * @param func the function to unwrap\n * @returns the unwrapped version of the function if available.\n */\nexport function getOriginalFunction(func: WrappedFunction): WrappedFunction | undefined {\n return func.__sentry_original__;\n}\n\n/**\n * Encodes given object into url-friendly format\n *\n * @param object An object that contains serializable values\n * @returns string Encoded\n */\nexport function urlEncode(object: { [key: string]: any }): string {\n return Object.keys(object)\n .map(key => `${encodeURIComponent(key)}=${encodeURIComponent(object[key])}`)\n .join('&');\n}\n\n/**\n * Transforms any object into an object literal with all its attributes\n * attached to it.\n *\n * @param value Initial source that we have to transform in order for it to be usable by the serializer\n */\nexport function convertToPlainObject(value: unknown): {\n [key: string]: unknown;\n} {\n let newObj = value as {\n [key: string]: unknown;\n };\n\n if (isError(value)) {\n newObj = {\n message: value.message,\n name: value.name,\n stack: value.stack,\n ...getOwnProperties(value as ExtendedError),\n };\n } else if (isEvent(value)) {\n /**\n * Event-like interface that's usable in browser and node\n */\n interface SimpleEvent {\n [key: string]: unknown;\n type: string;\n target?: unknown;\n currentTarget?: unknown;\n }\n\n const event = value as SimpleEvent;\n\n newObj = {\n type: event.type,\n target: serializeEventTarget(event.target),\n currentTarget: serializeEventTarget(event.currentTarget),\n ...getOwnProperties(event),\n };\n\n if (typeof CustomEvent !== 'undefined' && isInstanceOf(value, CustomEvent)) {\n newObj.detail = event.detail;\n }\n }\n return newObj;\n}\n\n/** Creates a string representation of the target of an `Event` object */\nfunction serializeEventTarget(target: unknown): string {\n try {\n return isElement(target) ? htmlTreeAsString(target) : Object.prototype.toString.call(target);\n } catch (_oO) {\n return '';\n }\n}\n\n/** Filters out all but an object's own properties */\nfunction getOwnProperties(obj: { [key: string]: unknown }): { [key: string]: unknown } {\n const extractedProps: { [key: string]: unknown } = {};\n for (const property in obj) {\n if (Object.prototype.hasOwnProperty.call(obj, property)) {\n extractedProps[property] = obj[property];\n }\n }\n return extractedProps;\n}\n\n/**\n * Given any captured exception, extract its keys and create a sorted\n * and truncated list that will be used inside the event message.\n * eg. `Non-error exception captured with keys: foo, bar, baz`\n */\n// eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types\nexport function extractExceptionKeysForMessage(exception: any, maxLength: number = 40): string {\n const keys = Object.keys(convertToPlainObject(exception));\n keys.sort();\n\n if (!keys.length) {\n return '[object has no keys]';\n }\n\n if (keys[0].length >= maxLength) {\n return truncate(keys[0], maxLength);\n }\n\n for (let includedKeys = keys.length; includedKeys > 0; includedKeys--) {\n const serialized = keys.slice(0, includedKeys).join(', ');\n if (serialized.length > maxLength) {\n continue;\n }\n if (includedKeys === keys.length) {\n return serialized;\n }\n return truncate(serialized, maxLength);\n }\n\n return '';\n}\n\n/**\n * Given any object, return the new object with removed keys that value was `undefined`.\n * Works recursively on objects and arrays.\n */\nexport function dropUndefinedKeys(val: T): T {\n if (isPlainObject(val)) {\n const rv: { [key: string]: any } = {};\n for (const key of Object.keys(val)) {\n if (typeof val[key] !== 'undefined') {\n rv[key] = dropUndefinedKeys(val[key]);\n }\n }\n return rv as T;\n }\n\n if (Array.isArray(val)) {\n return (val as any[]).map(dropUndefinedKeys) as any;\n }\n\n return val;\n}\n\n/**\n * Ensure that something is an object.\n *\n * Turns `undefined` and `null` into `String`s and all other primitives into instances of their respective wrapper\n * classes (String, Boolean, Number, etc.). Acts as the identity function on non-primitives.\n *\n * @param wat The subject of the objectification\n * @returns A version of `wat` which can safely be used with `Object` class methods\n */\nexport function objectify(wat: unknown): typeof Object {\n let objectified;\n switch (true) {\n case wat === undefined || wat === null:\n objectified = new String(wat);\n break;\n\n // Though symbols and bigints do have wrapper classes (`Symbol` and `BigInt`, respectively), for whatever reason\n // those classes don't have constructors which can be used with the `new` keyword. We therefore need to cast each as\n // an object in order to wrap it.\n case typeof wat === 'symbol' || typeof wat === 'bigint':\n objectified = Object(wat);\n break;\n\n // this will catch the remaining primitives: `String`, `Number`, and `Boolean`\n case isPrimitive(wat):\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n objectified = new (wat as any).constructor(wat);\n break;\n\n // by process of elimination, at this point we know that `wat` must already be an object\n default:\n objectified = wat;\n break;\n }\n return objectified;\n}\n","import { StackFrame } from '@sentry/types';\n\nconst STACKTRACE_LIMIT = 50;\n\nexport type StackParser = (stack: string, skipFirst?: number) => StackFrame[];\nexport type StackLineParserFn = (line: string) => StackFrame | undefined;\nexport type StackLineParser = [number, StackLineParserFn];\n\n/**\n * Creates a stack parser with the supplied line parsers\n *\n * StackFrames are returned in the correct order for Sentry Exception\n * frames and with Sentry SDK internal frames removed from the top and bottom\n *\n */\nexport function createStackParser(...parsers: StackLineParser[]): StackParser {\n const sortedParsers = parsers.sort((a, b) => a[0] - b[0]).map(p => p[1]);\n\n return (stack: string, skipFirst: number = 0): StackFrame[] => {\n const frames: StackFrame[] = [];\n\n for (const line of stack.split('\\n').slice(skipFirst)) {\n for (const parser of sortedParsers) {\n const frame = parser(line);\n\n if (frame) {\n frames.push(frame);\n break;\n }\n }\n }\n\n return stripSentryFramesAndReverse(frames);\n };\n}\n\n/**\n * @hidden\n */\nexport function stripSentryFramesAndReverse(stack: StackFrame[]): StackFrame[] {\n if (!stack.length) {\n return [];\n }\n\n let localStack = stack;\n\n const firstFrameFunction = localStack[0].function || '';\n const lastFrameFunction = localStack[localStack.length - 1].function || '';\n\n // If stack starts with one of our API calls, remove it (starts, meaning it's the top of the stack - aka last call)\n if (firstFrameFunction.indexOf('captureMessage') !== -1 || firstFrameFunction.indexOf('captureException') !== -1) {\n localStack = localStack.slice(1);\n }\n\n // If stack ends with one of our internal API calls, remove it (ends, meaning it's the bottom of the stack - aka top-most call)\n if (lastFrameFunction.indexOf('sentryWrapped') !== -1) {\n localStack = localStack.slice(0, -1);\n }\n\n // The frame where the crash happened, should be the last entry in the array\n return localStack\n .slice(0, STACKTRACE_LIMIT)\n .map(frame => ({\n ...frame,\n filename: frame.filename || localStack[0].filename,\n function: frame.function || '?',\n }))\n .reverse();\n}\n\nconst defaultFunctionName = '';\n\n/**\n * Safely extract function name from itself\n */\nexport function getFunctionName(fn: unknown): string {\n try {\n if (!fn || typeof fn !== 'function') {\n return defaultFunctionName;\n }\n return fn.name || defaultFunctionName;\n } catch (e) {\n // Just accessing custom props in some Selenium environments\n // can cause a \"Permission denied\" exception (see raven-js#495).\n return defaultFunctionName;\n }\n}\n","import { isRegExp, isString } from './is';\n\n/**\n * Truncates given string to the maximum characters count\n *\n * @param str An object that contains serializable values\n * @param max Maximum number of characters in truncated string (0 = unlimited)\n * @returns string Encoded\n */\nexport function truncate(str: string, max: number = 0): string {\n if (typeof str !== 'string' || max === 0) {\n return str;\n }\n return str.length <= max ? str : `${str.substr(0, max)}...`;\n}\n\n/**\n * This is basically just `trim_line` from\n * https://github.com/getsentry/sentry/blob/master/src/sentry/lang/javascript/processor.py#L67\n *\n * @param str An object that contains serializable values\n * @param max Maximum number of characters in truncated string\n * @returns string Encoded\n */\nexport function snipLine(line: string, colno: number): string {\n let newLine = line;\n const lineLength = newLine.length;\n if (lineLength <= 150) {\n return newLine;\n }\n if (colno > lineLength) {\n // eslint-disable-next-line no-param-reassign\n colno = lineLength;\n }\n\n let start = Math.max(colno - 60, 0);\n if (start < 5) {\n start = 0;\n }\n\n let end = Math.min(start + 140, lineLength);\n if (end > lineLength - 5) {\n end = lineLength;\n }\n if (end === lineLength) {\n start = Math.max(end - 140, 0);\n }\n\n newLine = newLine.slice(start, end);\n if (start > 0) {\n newLine = `'{snip} ${newLine}`;\n }\n if (end < lineLength) {\n newLine += ' {snip}';\n }\n\n return newLine;\n}\n\n/**\n * Join values in array\n * @param input array of values to be joined together\n * @param delimiter string to be placed in-between values\n * @returns Joined values\n */\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport function safeJoin(input: any[], delimiter?: string): string {\n if (!Array.isArray(input)) {\n return '';\n }\n\n const output = [];\n // eslint-disable-next-line @typescript-eslint/prefer-for-of\n for (let i = 0; i < input.length; i++) {\n const value = input[i];\n try {\n output.push(String(value));\n } catch (e) {\n output.push('[value cannot be serialized]');\n }\n }\n\n return output.join(delimiter);\n}\n\n/**\n * Checks if the value matches a regex or includes the string\n * @param value The string value to be checked against\n * @param pattern Either a regex or a string that must be contained in value\n */\nexport function isMatchingPattern(value: string, pattern: RegExp | string): boolean {\n if (!isString(value)) {\n return false;\n }\n\n if (isRegExp(pattern)) {\n return pattern.test(value);\n }\n if (typeof pattern === 'string') {\n return value.indexOf(pattern) !== -1;\n }\n return false;\n}\n\n/**\n * Given a string, escape characters which have meaning in the regex grammar, such that the result is safe to feed to\n * `new RegExp()`.\n *\n * Based on https://github.com/sindresorhus/escape-string-regexp. Vendored to a) reduce the size by skipping the runtime\n * type-checking, and b) ensure it gets down-compiled for old versions of Node (the published package only supports Node\n * 12+).\n *\n * @param regexString The string to escape\n * @returns An version of the string with all special regex characters escaped\n */\nexport function escapeStringForRegex(regexString: string): string {\n // escape the hyphen separately so we can also replace it with a unicode literal hyphen, to avoid the problems\n // discussed in https://github.com/sindresorhus/escape-string-regexp/issues/20.\n return regexString.replace(/[|\\\\{}()[\\]^$+*?.]/g, '\\\\$&').replace(/-/g, '\\\\x2d');\n}\n","import { IS_DEBUG_BUILD } from './flags';\nimport { getGlobalObject } from './global';\nimport { logger } from './logger';\n\n/**\n * Tells whether current environment supports ErrorEvent objects\n * {@link supportsErrorEvent}.\n *\n * @returns Answer to the given question.\n */\nexport function supportsErrorEvent(): boolean {\n try {\n new ErrorEvent('');\n return true;\n } catch (e) {\n return false;\n }\n}\n\n/**\n * Tells whether current environment supports DOMError objects\n * {@link supportsDOMError}.\n *\n * @returns Answer to the given question.\n */\nexport function supportsDOMError(): boolean {\n try {\n // Chrome: VM89:1 Uncaught TypeError: Failed to construct 'DOMError':\n // 1 argument required, but only 0 present.\n // @ts-ignore It really needs 1 argument, not 0.\n new DOMError('');\n return true;\n } catch (e) {\n return false;\n }\n}\n\n/**\n * Tells whether current environment supports DOMException objects\n * {@link supportsDOMException}.\n *\n * @returns Answer to the given question.\n */\nexport function supportsDOMException(): boolean {\n try {\n new DOMException('');\n return true;\n } catch (e) {\n return false;\n }\n}\n\n/**\n * Tells whether current environment supports Fetch API\n * {@link supportsFetch}.\n *\n * @returns Answer to the given question.\n */\nexport function supportsFetch(): boolean {\n if (!('fetch' in getGlobalObject())) {\n return false;\n }\n\n try {\n new Headers();\n new Request('');\n new Response();\n return true;\n } catch (e) {\n return false;\n }\n}\n/**\n * isNativeFetch checks if the given function is a native implementation of fetch()\n */\n// eslint-disable-next-line @typescript-eslint/ban-types\nexport function isNativeFetch(func: Function): boolean {\n return func && /^function fetch\\(\\)\\s+\\{\\s+\\[native code\\]\\s+\\}$/.test(func.toString());\n}\n\n/**\n * Tells whether current environment supports Fetch API natively\n * {@link supportsNativeFetch}.\n *\n * @returns true if `window.fetch` is natively implemented, false otherwise\n */\nexport function supportsNativeFetch(): boolean {\n if (!supportsFetch()) {\n return false;\n }\n\n const global = getGlobalObject();\n\n // Fast path to avoid DOM I/O\n // eslint-disable-next-line @typescript-eslint/unbound-method\n if (isNativeFetch(global.fetch)) {\n return true;\n }\n\n // window.fetch is implemented, but is polyfilled or already wrapped (e.g: by a chrome extension)\n // so create a \"pure\" iframe to see if that has native fetch\n let result = false;\n const doc = global.document;\n // eslint-disable-next-line deprecation/deprecation\n if (doc && typeof (doc.createElement as unknown) === 'function') {\n try {\n const sandbox = doc.createElement('iframe');\n sandbox.hidden = true;\n doc.head.appendChild(sandbox);\n if (sandbox.contentWindow && sandbox.contentWindow.fetch) {\n // eslint-disable-next-line @typescript-eslint/unbound-method\n result = isNativeFetch(sandbox.contentWindow.fetch);\n }\n doc.head.removeChild(sandbox);\n } catch (err) {\n IS_DEBUG_BUILD &&\n logger.warn('Could not create sandbox iframe for pure fetch check, bailing to window.fetch: ', err);\n }\n }\n\n return result;\n}\n\n/**\n * Tells whether current environment supports ReportingObserver API\n * {@link supportsReportingObserver}.\n *\n * @returns Answer to the given question.\n */\nexport function supportsReportingObserver(): boolean {\n return 'ReportingObserver' in getGlobalObject();\n}\n\n/**\n * Tells whether current environment supports Referrer Policy API\n * {@link supportsReferrerPolicy}.\n *\n * @returns Answer to the given question.\n */\nexport function supportsReferrerPolicy(): boolean {\n // Despite all stars in the sky saying that Edge supports old draft syntax, aka 'never', 'always', 'origin' and 'default'\n // (see https://caniuse.com/#feat=referrer-policy),\n // it doesn't. And it throws an exception instead of ignoring this parameter...\n // REF: https://github.com/getsentry/raven-js/issues/1233\n\n if (!supportsFetch()) {\n return false;\n }\n\n try {\n new Request('_', {\n referrerPolicy: 'origin' as ReferrerPolicy,\n });\n return true;\n } catch (e) {\n return false;\n }\n}\n\n/**\n * Tells whether current environment supports History API\n * {@link supportsHistory}.\n *\n * @returns Answer to the given question.\n */\nexport function supportsHistory(): boolean {\n // NOTE: in Chrome App environment, touching history.pushState, *even inside\n // a try/catch block*, will cause Chrome to output an error to console.error\n // borrowed from: https://github.com/angular/angular.js/pull/13945/files\n const global = getGlobalObject();\n /* eslint-disable @typescript-eslint/no-unsafe-member-access */\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const chrome = (global as any).chrome;\n const isChromePackagedApp = chrome && chrome.app && chrome.app.runtime;\n /* eslint-enable @typescript-eslint/no-unsafe-member-access */\n const hasHistoryApi = 'history' in global && !!global.history.pushState && !!global.history.replaceState;\n\n return !isChromePackagedApp && hasHistoryApi;\n}\n","/* eslint-disable @typescript-eslint/explicit-function-return-type */\n/* eslint-disable @typescript-eslint/typedef */\n/* eslint-disable @typescript-eslint/explicit-module-boundary-types */\n/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { isThenable } from './is';\n\n/** SyncPromise internal states */\nconst enum States {\n /** Pending */\n PENDING = 0,\n /** Resolved / OK */\n RESOLVED = 1,\n /** Rejected / Error */\n REJECTED = 2,\n}\n\n/**\n * Creates a resolved sync promise.\n *\n * @param value the value to resolve the promise with\n * @returns the resolved sync promise\n */\nexport function resolvedSyncPromise(value: T | PromiseLike): PromiseLike {\n return new SyncPromise(resolve => {\n resolve(value);\n });\n}\n\n/**\n * Creates a rejected sync promise.\n *\n * @param value the value to reject the promise with\n * @returns the rejected sync promise\n */\nexport function rejectedSyncPromise(reason?: any): PromiseLike {\n return new SyncPromise((_, reject) => {\n reject(reason);\n });\n}\n\n/**\n * Thenable class that behaves like a Promise and follows it's interface\n * but is not async internally\n */\nclass SyncPromise implements PromiseLike {\n private _state: States = States.PENDING;\n private _handlers: Array<[boolean, (value: T) => void, (reason: any) => any]> = [];\n private _value: any;\n\n public constructor(\n executor: (resolve: (value?: T | PromiseLike | null) => void, reject: (reason?: any) => void) => void,\n ) {\n try {\n executor(this._resolve, this._reject);\n } catch (e) {\n this._reject(e);\n }\n }\n\n /** JSDoc */\n public then(\n onfulfilled?: ((value: T) => TResult1 | PromiseLike) | null,\n onrejected?: ((reason: any) => TResult2 | PromiseLike) | null,\n ): PromiseLike {\n return new SyncPromise((resolve, reject) => {\n this._handlers.push([\n false,\n result => {\n if (!onfulfilled) {\n // TODO: ¯\\_(ツ)_/¯\n // TODO: FIXME\n resolve(result as any);\n } else {\n try {\n resolve(onfulfilled(result));\n } catch (e) {\n reject(e);\n }\n }\n },\n reason => {\n if (!onrejected) {\n reject(reason);\n } else {\n try {\n resolve(onrejected(reason));\n } catch (e) {\n reject(e);\n }\n }\n },\n ]);\n this._executeHandlers();\n });\n }\n\n /** JSDoc */\n public catch(\n onrejected?: ((reason: any) => TResult | PromiseLike) | null,\n ): PromiseLike {\n return this.then(val => val, onrejected);\n }\n\n /** JSDoc */\n public finally(onfinally?: (() => void) | null): PromiseLike {\n return new SyncPromise((resolve, reject) => {\n let val: TResult | any;\n let isRejected: boolean;\n\n return this.then(\n value => {\n isRejected = false;\n val = value;\n if (onfinally) {\n onfinally();\n }\n },\n reason => {\n isRejected = true;\n val = reason;\n if (onfinally) {\n onfinally();\n }\n },\n ).then(() => {\n if (isRejected) {\n reject(val);\n return;\n }\n\n resolve(val as unknown as any);\n });\n });\n }\n\n /** JSDoc */\n private readonly _resolve = (value?: T | PromiseLike | null) => {\n this._setResult(States.RESOLVED, value);\n };\n\n /** JSDoc */\n private readonly _reject = (reason?: any) => {\n this._setResult(States.REJECTED, reason);\n };\n\n /** JSDoc */\n private readonly _setResult = (state: States, value?: T | PromiseLike | any) => {\n if (this._state !== States.PENDING) {\n return;\n }\n\n if (isThenable(value)) {\n void (value as PromiseLike).then(this._resolve, this._reject);\n return;\n }\n\n this._state = state;\n this._value = value;\n\n this._executeHandlers();\n };\n\n /** JSDoc */\n private readonly _executeHandlers = () => {\n if (this._state === States.PENDING) {\n return;\n }\n\n const cachedHandlers = this._handlers.slice();\n this._handlers = [];\n\n cachedHandlers.forEach(handler => {\n if (handler[0]) {\n return;\n }\n\n if (this._state === States.RESOLVED) {\n // eslint-disable-next-line @typescript-eslint/no-floating-promises\n handler[1](this._value as unknown as any);\n }\n\n if (this._state === States.REJECTED) {\n handler[2](this._value);\n }\n\n handler[0] = true;\n });\n };\n}\n\nexport { SyncPromise };\n","import { getGlobalObject } from './global';\nimport { dynamicRequire, isNodeEnv } from './node';\n\n/**\n * An object that can return the current timestamp in seconds since the UNIX epoch.\n */\ninterface TimestampSource {\n nowSeconds(): number;\n}\n\n/**\n * A TimestampSource implementation for environments that do not support the Performance Web API natively.\n *\n * Note that this TimestampSource does not use a monotonic clock. A call to `nowSeconds` may return a timestamp earlier\n * than a previously returned value. We do not try to emulate a monotonic behavior in order to facilitate debugging. It\n * is more obvious to explain \"why does my span have negative duration\" than \"why my spans have zero duration\".\n */\nconst dateTimestampSource: TimestampSource = {\n nowSeconds: () => Date.now() / 1000,\n};\n\n/**\n * A partial definition of the [Performance Web API]{@link https://developer.mozilla.org/en-US/docs/Web/API/Performance}\n * for accessing a high-resolution monotonic clock.\n */\ninterface Performance {\n /**\n * The millisecond timestamp at which measurement began, measured in Unix time.\n */\n timeOrigin: number;\n /**\n * Returns the current millisecond timestamp, where 0 represents the start of measurement.\n */\n now(): number;\n}\n\n/**\n * Returns a wrapper around the native Performance API browser implementation, or undefined for browsers that do not\n * support the API.\n *\n * Wrapping the native API works around differences in behavior from different browsers.\n */\nfunction getBrowserPerformance(): Performance | undefined {\n const { performance } = getGlobalObject();\n if (!performance || !performance.now) {\n return undefined;\n }\n\n // Replace performance.timeOrigin with our own timeOrigin based on Date.now().\n //\n // This is a partial workaround for browsers reporting performance.timeOrigin such that performance.timeOrigin +\n // performance.now() gives a date arbitrarily in the past.\n //\n // Additionally, computing timeOrigin in this way fills the gap for browsers where performance.timeOrigin is\n // undefined.\n //\n // The assumption that performance.timeOrigin + performance.now() ~= Date.now() is flawed, but we depend on it to\n // interact with data coming out of performance entries.\n //\n // Note that despite recommendations against it in the spec, browsers implement the Performance API with a clock that\n // might stop when the computer is asleep (and perhaps under other circumstances). Such behavior causes\n // performance.timeOrigin + performance.now() to have an arbitrary skew over Date.now(). In laptop computers, we have\n // observed skews that can be as long as days, weeks or months.\n //\n // See https://github.com/getsentry/sentry-javascript/issues/2590.\n //\n // BUG: despite our best intentions, this workaround has its limitations. It mostly addresses timings of pageload\n // transactions, but ignores the skew built up over time that can aversely affect timestamps of navigation\n // transactions of long-lived web pages.\n const timeOrigin = Date.now() - performance.now();\n\n return {\n now: () => performance.now(),\n timeOrigin,\n };\n}\n\n/**\n * Returns the native Performance API implementation from Node.js. Returns undefined in old Node.js versions that don't\n * implement the API.\n */\nfunction getNodePerformance(): Performance | undefined {\n try {\n const perfHooks = dynamicRequire(module, 'perf_hooks') as { performance: Performance };\n return perfHooks.performance;\n } catch (_) {\n return undefined;\n }\n}\n\n/**\n * The Performance API implementation for the current platform, if available.\n */\nconst platformPerformance: Performance | undefined = isNodeEnv() ? getNodePerformance() : getBrowserPerformance();\n\nconst timestampSource: TimestampSource =\n platformPerformance === undefined\n ? dateTimestampSource\n : {\n nowSeconds: () => (platformPerformance.timeOrigin + platformPerformance.now()) / 1000,\n };\n\n/**\n * Returns a timestamp in seconds since the UNIX epoch using the Date API.\n */\nexport const dateTimestampInSeconds: () => number = dateTimestampSource.nowSeconds.bind(dateTimestampSource);\n\n/**\n * Returns a timestamp in seconds since the UNIX epoch using either the Performance or Date APIs, depending on the\n * availability of the Performance API.\n *\n * See `usingPerformanceAPI` to test whether the Performance API is used.\n *\n * BUG: Note that because of how browsers implement the Performance API, the clock might stop when the computer is\n * asleep. This creates a skew between `dateTimestampInSeconds` and `timestampInSeconds`. The\n * skew can grow to arbitrary amounts like days, weeks or months.\n * See https://github.com/getsentry/sentry-javascript/issues/2590.\n */\nexport const timestampInSeconds: () => number = timestampSource.nowSeconds.bind(timestampSource);\n\n// Re-exported with an old name for backwards-compatibility.\nexport const timestampWithMs = timestampInSeconds;\n\n/**\n * A boolean that is true when timestampInSeconds uses the Performance API to produce monotonic timestamps.\n */\nexport const usingPerformanceAPI = platformPerformance !== undefined;\n\n/**\n * Internal helper to store what is the source of browserPerformanceTimeOrigin below. For debugging only.\n */\nexport let _browserPerformanceTimeOriginMode: string;\n\n/**\n * The number of milliseconds since the UNIX epoch. This value is only usable in a browser, and only when the\n * performance API is available.\n */\nexport const browserPerformanceTimeOrigin = ((): number | undefined => {\n // Unfortunately browsers may report an inaccurate time origin data, through either performance.timeOrigin or\n // performance.timing.navigationStart, which results in poor results in performance data. We only treat time origin\n // data as reliable if they are within a reasonable threshold of the current time.\n\n const { performance } = getGlobalObject();\n if (!performance || !performance.now) {\n _browserPerformanceTimeOriginMode = 'none';\n return undefined;\n }\n\n const threshold = 3600 * 1000;\n const performanceNow = performance.now();\n const dateNow = Date.now();\n\n // if timeOrigin isn't available set delta to threshold so it isn't used\n const timeOriginDelta = performance.timeOrigin\n ? Math.abs(performance.timeOrigin + performanceNow - dateNow)\n : threshold;\n const timeOriginIsReliable = timeOriginDelta < threshold;\n\n // While performance.timing.navigationStart is deprecated in favor of performance.timeOrigin, performance.timeOrigin\n // is not as widely supported. Namely, performance.timeOrigin is undefined in Safari as of writing.\n // Also as of writing, performance.timing is not available in Web Workers in mainstream browsers, so it is not always\n // a valid fallback. In the absence of an initial time provided by the browser, fallback to the current time from the\n // Date API.\n // eslint-disable-next-line deprecation/deprecation\n const navigationStart = performance.timing && performance.timing.navigationStart;\n const hasNavigationStart = typeof navigationStart === 'number';\n // if navigationStart isn't available set delta to threshold so it isn't used\n const navigationStartDelta = hasNavigationStart ? Math.abs(navigationStart + performanceNow - dateNow) : threshold;\n const navigationStartIsReliable = navigationStartDelta < threshold;\n\n if (timeOriginIsReliable || navigationStartIsReliable) {\n // Use the more reliable time origin\n if (timeOriginDelta <= navigationStartDelta) {\n _browserPerformanceTimeOriginMode = 'timeOrigin';\n return performance.timeOrigin;\n } else {\n _browserPerformanceTimeOriginMode = 'navigationStart';\n return navigationStart;\n }\n }\n\n // Either both timeOrigin and navigationStart are skewed or neither is available, fallback to Date.\n _browserPerformanceTimeOriginMode = 'dateNow';\n return dateNow;\n})();\n","'use strict'\n\nexports.byteLength = byteLength\nexports.toByteArray = toByteArray\nexports.fromByteArray = fromByteArray\n\nvar lookup = []\nvar revLookup = []\nvar Arr = typeof Uint8Array !== 'undefined' ? Uint8Array : Array\n\nvar code = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/'\nfor (var i = 0, len = code.length; i < len; ++i) {\n lookup[i] = code[i]\n revLookup[code.charCodeAt(i)] = i\n}\n\n// Support decoding URL-safe base64 strings, as Node.js does.\n// See: https://en.wikipedia.org/wiki/Base64#URL_applications\nrevLookup['-'.charCodeAt(0)] = 62\nrevLookup['_'.charCodeAt(0)] = 63\n\nfunction getLens (b64) {\n var len = b64.length\n\n if (len % 4 > 0) {\n throw new Error('Invalid string. Length must be a multiple of 4')\n }\n\n // Trim off extra bytes after placeholder bytes are found\n // See: https://github.com/beatgammit/base64-js/issues/42\n var validLen = b64.indexOf('=')\n if (validLen === -1) validLen = len\n\n var placeHoldersLen = validLen === len\n ? 0\n : 4 - (validLen % 4)\n\n return [validLen, placeHoldersLen]\n}\n\n// base64 is 4/3 + up to two characters of the original data\nfunction byteLength (b64) {\n var lens = getLens(b64)\n var validLen = lens[0]\n var placeHoldersLen = lens[1]\n return ((validLen + placeHoldersLen) * 3 / 4) - placeHoldersLen\n}\n\nfunction _byteLength (b64, validLen, placeHoldersLen) {\n return ((validLen + placeHoldersLen) * 3 / 4) - placeHoldersLen\n}\n\nfunction toByteArray (b64) {\n var tmp\n var lens = getLens(b64)\n var validLen = lens[0]\n var placeHoldersLen = lens[1]\n\n var arr = new Arr(_byteLength(b64, validLen, placeHoldersLen))\n\n var curByte = 0\n\n // if there are placeholders, only get up to the last complete 4 chars\n var len = placeHoldersLen > 0\n ? validLen - 4\n : validLen\n\n var i\n for (i = 0; i < len; i += 4) {\n tmp =\n (revLookup[b64.charCodeAt(i)] << 18) |\n (revLookup[b64.charCodeAt(i + 1)] << 12) |\n (revLookup[b64.charCodeAt(i + 2)] << 6) |\n revLookup[b64.charCodeAt(i + 3)]\n arr[curByte++] = (tmp >> 16) & 0xFF\n arr[curByte++] = (tmp >> 8) & 0xFF\n arr[curByte++] = tmp & 0xFF\n }\n\n if (placeHoldersLen === 2) {\n tmp =\n (revLookup[b64.charCodeAt(i)] << 2) |\n (revLookup[b64.charCodeAt(i + 1)] >> 4)\n arr[curByte++] = tmp & 0xFF\n }\n\n if (placeHoldersLen === 1) {\n tmp =\n (revLookup[b64.charCodeAt(i)] << 10) |\n (revLookup[b64.charCodeAt(i + 1)] << 4) |\n (revLookup[b64.charCodeAt(i + 2)] >> 2)\n arr[curByte++] = (tmp >> 8) & 0xFF\n arr[curByte++] = tmp & 0xFF\n }\n\n return arr\n}\n\nfunction tripletToBase64 (num) {\n return lookup[num >> 18 & 0x3F] +\n lookup[num >> 12 & 0x3F] +\n lookup[num >> 6 & 0x3F] +\n lookup[num & 0x3F]\n}\n\nfunction encodeChunk (uint8, start, end) {\n var tmp\n var output = []\n for (var i = start; i < end; i += 3) {\n tmp =\n ((uint8[i] << 16) & 0xFF0000) +\n ((uint8[i + 1] << 8) & 0xFF00) +\n (uint8[i + 2] & 0xFF)\n output.push(tripletToBase64(tmp))\n }\n return output.join('')\n}\n\nfunction fromByteArray (uint8) {\n var tmp\n var len = uint8.length\n var extraBytes = len % 3 // if we have 1 byte left, pad 2 bytes\n var parts = []\n var maxChunkLength = 16383 // must be multiple of 3\n\n // go through the array every three bytes, we'll deal with trailing stuff later\n for (var i = 0, len2 = len - extraBytes; i < len2; i += maxChunkLength) {\n parts.push(encodeChunk(uint8, i, (i + maxChunkLength) > len2 ? len2 : (i + maxChunkLength)))\n }\n\n // pad the end with zeros, but make sure to not forget the extra bytes\n if (extraBytes === 1) {\n tmp = uint8[len - 1]\n parts.push(\n lookup[tmp >> 2] +\n lookup[(tmp << 4) & 0x3F] +\n '=='\n )\n } else if (extraBytes === 2) {\n tmp = (uint8[len - 2] << 8) + uint8[len - 1]\n parts.push(\n lookup[tmp >> 10] +\n lookup[(tmp >> 4) & 0x3F] +\n lookup[(tmp << 2) & 0x3F] +\n '='\n )\n }\n\n return parts.join('')\n}\n","!function(e,t){\"object\"==typeof exports&&\"object\"==typeof module?module.exports=t():\"function\"==typeof define&&define.amd?define([],t):\"object\"==typeof exports?exports.bowser=t():e.bowser=t()}(this,(function(){return function(e){var t={};function r(n){if(t[n])return t[n].exports;var i=t[n]={i:n,l:!1,exports:{}};return e[n].call(i.exports,i,i.exports,r),i.l=!0,i.exports}return r.m=e,r.c=t,r.d=function(e,t,n){r.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:n})},r.r=function(e){\"undefined\"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:\"Module\"}),Object.defineProperty(e,\"__esModule\",{value:!0})},r.t=function(e,t){if(1&t&&(e=r(e)),8&t)return e;if(4&t&&\"object\"==typeof e&&e&&e.__esModule)return e;var n=Object.create(null);if(r.r(n),Object.defineProperty(n,\"default\",{enumerable:!0,value:e}),2&t&&\"string\"!=typeof e)for(var i in e)r.d(n,i,function(t){return e[t]}.bind(null,i));return n},r.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return r.d(t,\"a\",t),t},r.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},r.p=\"\",r(r.s=90)}({17:function(e,t,r){\"use strict\";t.__esModule=!0,t.default=void 0;var n=r(18),i=function(){function e(){}return e.getFirstMatch=function(e,t){var r=t.match(e);return r&&r.length>0&&r[1]||\"\"},e.getSecondMatch=function(e,t){var r=t.match(e);return r&&r.length>1&&r[2]||\"\"},e.matchAndReturnConst=function(e,t,r){if(e.test(t))return r},e.getWindowsVersionName=function(e){switch(e){case\"NT\":return\"NT\";case\"XP\":return\"XP\";case\"NT 5.0\":return\"2000\";case\"NT 5.1\":return\"XP\";case\"NT 5.2\":return\"2003\";case\"NT 6.0\":return\"Vista\";case\"NT 6.1\":return\"7\";case\"NT 6.2\":return\"8\";case\"NT 6.3\":return\"8.1\";case\"NT 10.0\":return\"10\";default:return}},e.getMacOSVersionName=function(e){var t=e.split(\".\").splice(0,2).map((function(e){return parseInt(e,10)||0}));if(t.push(0),10===t[0])switch(t[1]){case 5:return\"Leopard\";case 6:return\"Snow Leopard\";case 7:return\"Lion\";case 8:return\"Mountain Lion\";case 9:return\"Mavericks\";case 10:return\"Yosemite\";case 11:return\"El Capitan\";case 12:return\"Sierra\";case 13:return\"High Sierra\";case 14:return\"Mojave\";case 15:return\"Catalina\";default:return}},e.getAndroidVersionName=function(e){var t=e.split(\".\").splice(0,2).map((function(e){return parseInt(e,10)||0}));if(t.push(0),!(1===t[0]&&t[1]<5))return 1===t[0]&&t[1]<6?\"Cupcake\":1===t[0]&&t[1]>=6?\"Donut\":2===t[0]&&t[1]<2?\"Eclair\":2===t[0]&&2===t[1]?\"Froyo\":2===t[0]&&t[1]>2?\"Gingerbread\":3===t[0]?\"Honeycomb\":4===t[0]&&t[1]<1?\"Ice Cream Sandwich\":4===t[0]&&t[1]<4?\"Jelly Bean\":4===t[0]&&t[1]>=4?\"KitKat\":5===t[0]?\"Lollipop\":6===t[0]?\"Marshmallow\":7===t[0]?\"Nougat\":8===t[0]?\"Oreo\":9===t[0]?\"Pie\":void 0},e.getVersionPrecision=function(e){return e.split(\".\").length},e.compareVersions=function(t,r,n){void 0===n&&(n=!1);var i=e.getVersionPrecision(t),s=e.getVersionPrecision(r),a=Math.max(i,s),o=0,u=e.map([t,r],(function(t){var r=a-e.getVersionPrecision(t),n=t+new Array(r+1).join(\".0\");return e.map(n.split(\".\"),(function(e){return new Array(20-e.length).join(\"0\")+e})).reverse()}));for(n&&(o=a-Math.min(i,s)),a-=1;a>=o;){if(u[0][a]>u[1][a])return 1;if(u[0][a]===u[1][a]){if(a===o)return 0;a-=1}else if(u[0][a]1?i-1:0),a=1;a0){var a=Object.keys(r),u=o.default.find(a,(function(e){return t.isOS(e)}));if(u){var d=this.satisfies(r[u]);if(void 0!==d)return d}var c=o.default.find(a,(function(e){return t.isPlatform(e)}));if(c){var f=this.satisfies(r[c]);if(void 0!==f)return f}}if(s>0){var l=Object.keys(i),h=o.default.find(l,(function(e){return t.isBrowser(e,!0)}));if(void 0!==h)return this.compareVersion(i[h])}},t.isBrowser=function(e,t){void 0===t&&(t=!1);var r=this.getBrowserName().toLowerCase(),n=e.toLowerCase(),i=o.default.getBrowserTypeByAlias(n);return t&&i&&(n=i.toLowerCase()),n===r},t.compareVersion=function(e){var t=[0],r=e,n=!1,i=this.getBrowserVersion();if(\"string\"==typeof i)return\">\"===e[0]||\"<\"===e[0]?(r=e.substr(1),\"=\"===e[1]?(n=!0,r=e.substr(2)):t=[],\">\"===e[0]?t.push(1):t.push(-1)):\"=\"===e[0]?r=e.substr(1):\"~\"===e[0]&&(n=!0,r=e.substr(1)),t.indexOf(o.default.compareVersions(i,r,n))>-1},t.isOS=function(e){return this.getOSName(!0)===String(e).toLowerCase()},t.isPlatform=function(e){return this.getPlatformType(!0)===String(e).toLowerCase()},t.isEngine=function(e){return this.getEngineName(!0)===String(e).toLowerCase()},t.is=function(e,t){return void 0===t&&(t=!1),this.isBrowser(e,t)||this.isOS(e)||this.isPlatform(e)},t.some=function(e){var t=this;return void 0===e&&(e=[]),e.some((function(e){return t.is(e)}))},e}();t.default=d,e.exports=t.default},92:function(e,t,r){\"use strict\";t.__esModule=!0,t.default=void 0;var n,i=(n=r(17))&&n.__esModule?n:{default:n};var s=/version\\/(\\d+(\\.?_?\\d+)+)/i,a=[{test:[/googlebot/i],describe:function(e){var t={name:\"Googlebot\"},r=i.default.getFirstMatch(/googlebot\\/(\\d+(\\.\\d+))/i,e)||i.default.getFirstMatch(s,e);return r&&(t.version=r),t}},{test:[/opera/i],describe:function(e){var t={name:\"Opera\"},r=i.default.getFirstMatch(s,e)||i.default.getFirstMatch(/(?:opera)[\\s/](\\d+(\\.?_?\\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/opr\\/|opios/i],describe:function(e){var t={name:\"Opera\"},r=i.default.getFirstMatch(/(?:opr|opios)[\\s/](\\S+)/i,e)||i.default.getFirstMatch(s,e);return r&&(t.version=r),t}},{test:[/SamsungBrowser/i],describe:function(e){var t={name:\"Samsung Internet for Android\"},r=i.default.getFirstMatch(s,e)||i.default.getFirstMatch(/(?:SamsungBrowser)[\\s/](\\d+(\\.?_?\\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/Whale/i],describe:function(e){var t={name:\"NAVER Whale Browser\"},r=i.default.getFirstMatch(s,e)||i.default.getFirstMatch(/(?:whale)[\\s/](\\d+(?:\\.\\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/MZBrowser/i],describe:function(e){var t={name:\"MZ Browser\"},r=i.default.getFirstMatch(/(?:MZBrowser)[\\s/](\\d+(?:\\.\\d+)+)/i,e)||i.default.getFirstMatch(s,e);return r&&(t.version=r),t}},{test:[/focus/i],describe:function(e){var t={name:\"Focus\"},r=i.default.getFirstMatch(/(?:focus)[\\s/](\\d+(?:\\.\\d+)+)/i,e)||i.default.getFirstMatch(s,e);return r&&(t.version=r),t}},{test:[/swing/i],describe:function(e){var t={name:\"Swing\"},r=i.default.getFirstMatch(/(?:swing)[\\s/](\\d+(?:\\.\\d+)+)/i,e)||i.default.getFirstMatch(s,e);return r&&(t.version=r),t}},{test:[/coast/i],describe:function(e){var t={name:\"Opera Coast\"},r=i.default.getFirstMatch(s,e)||i.default.getFirstMatch(/(?:coast)[\\s/](\\d+(\\.?_?\\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/opt\\/\\d+(?:.?_?\\d+)+/i],describe:function(e){var t={name:\"Opera Touch\"},r=i.default.getFirstMatch(/(?:opt)[\\s/](\\d+(\\.?_?\\d+)+)/i,e)||i.default.getFirstMatch(s,e);return r&&(t.version=r),t}},{test:[/yabrowser/i],describe:function(e){var t={name:\"Yandex Browser\"},r=i.default.getFirstMatch(/(?:yabrowser)[\\s/](\\d+(\\.?_?\\d+)+)/i,e)||i.default.getFirstMatch(s,e);return r&&(t.version=r),t}},{test:[/ucbrowser/i],describe:function(e){var t={name:\"UC Browser\"},r=i.default.getFirstMatch(s,e)||i.default.getFirstMatch(/(?:ucbrowser)[\\s/](\\d+(\\.?_?\\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/Maxthon|mxios/i],describe:function(e){var t={name:\"Maxthon\"},r=i.default.getFirstMatch(s,e)||i.default.getFirstMatch(/(?:Maxthon|mxios)[\\s/](\\d+(\\.?_?\\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/epiphany/i],describe:function(e){var t={name:\"Epiphany\"},r=i.default.getFirstMatch(s,e)||i.default.getFirstMatch(/(?:epiphany)[\\s/](\\d+(\\.?_?\\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/puffin/i],describe:function(e){var t={name:\"Puffin\"},r=i.default.getFirstMatch(s,e)||i.default.getFirstMatch(/(?:puffin)[\\s/](\\d+(\\.?_?\\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/sleipnir/i],describe:function(e){var t={name:\"Sleipnir\"},r=i.default.getFirstMatch(s,e)||i.default.getFirstMatch(/(?:sleipnir)[\\s/](\\d+(\\.?_?\\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/k-meleon/i],describe:function(e){var t={name:\"K-Meleon\"},r=i.default.getFirstMatch(s,e)||i.default.getFirstMatch(/(?:k-meleon)[\\s/](\\d+(\\.?_?\\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/micromessenger/i],describe:function(e){var t={name:\"WeChat\"},r=i.default.getFirstMatch(/(?:micromessenger)[\\s/](\\d+(\\.?_?\\d+)+)/i,e)||i.default.getFirstMatch(s,e);return r&&(t.version=r),t}},{test:[/qqbrowser/i],describe:function(e){var t={name:/qqbrowserlite/i.test(e)?\"QQ Browser Lite\":\"QQ Browser\"},r=i.default.getFirstMatch(/(?:qqbrowserlite|qqbrowser)[/](\\d+(\\.?_?\\d+)+)/i,e)||i.default.getFirstMatch(s,e);return r&&(t.version=r),t}},{test:[/msie|trident/i],describe:function(e){var t={name:\"Internet Explorer\"},r=i.default.getFirstMatch(/(?:msie |rv:)(\\d+(\\.?_?\\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/\\sedg\\//i],describe:function(e){var t={name:\"Microsoft Edge\"},r=i.default.getFirstMatch(/\\sedg\\/(\\d+(\\.?_?\\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/edg([ea]|ios)/i],describe:function(e){var t={name:\"Microsoft Edge\"},r=i.default.getSecondMatch(/edg([ea]|ios)\\/(\\d+(\\.?_?\\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/vivaldi/i],describe:function(e){var t={name:\"Vivaldi\"},r=i.default.getFirstMatch(/vivaldi\\/(\\d+(\\.?_?\\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/seamonkey/i],describe:function(e){var t={name:\"SeaMonkey\"},r=i.default.getFirstMatch(/seamonkey\\/(\\d+(\\.?_?\\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/sailfish/i],describe:function(e){var t={name:\"Sailfish\"},r=i.default.getFirstMatch(/sailfish\\s?browser\\/(\\d+(\\.\\d+)?)/i,e);return r&&(t.version=r),t}},{test:[/silk/i],describe:function(e){var t={name:\"Amazon Silk\"},r=i.default.getFirstMatch(/silk\\/(\\d+(\\.?_?\\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/phantom/i],describe:function(e){var t={name:\"PhantomJS\"},r=i.default.getFirstMatch(/phantomjs\\/(\\d+(\\.?_?\\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/slimerjs/i],describe:function(e){var t={name:\"SlimerJS\"},r=i.default.getFirstMatch(/slimerjs\\/(\\d+(\\.?_?\\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/blackberry|\\bbb\\d+/i,/rim\\stablet/i],describe:function(e){var t={name:\"BlackBerry\"},r=i.default.getFirstMatch(s,e)||i.default.getFirstMatch(/blackberry[\\d]+\\/(\\d+(\\.?_?\\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/(web|hpw)[o0]s/i],describe:function(e){var t={name:\"WebOS Browser\"},r=i.default.getFirstMatch(s,e)||i.default.getFirstMatch(/w(?:eb)?[o0]sbrowser\\/(\\d+(\\.?_?\\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/bada/i],describe:function(e){var t={name:\"Bada\"},r=i.default.getFirstMatch(/dolfin\\/(\\d+(\\.?_?\\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/tizen/i],describe:function(e){var t={name:\"Tizen\"},r=i.default.getFirstMatch(/(?:tizen\\s?)?browser\\/(\\d+(\\.?_?\\d+)+)/i,e)||i.default.getFirstMatch(s,e);return r&&(t.version=r),t}},{test:[/qupzilla/i],describe:function(e){var t={name:\"QupZilla\"},r=i.default.getFirstMatch(/(?:qupzilla)[\\s/](\\d+(\\.?_?\\d+)+)/i,e)||i.default.getFirstMatch(s,e);return r&&(t.version=r),t}},{test:[/firefox|iceweasel|fxios/i],describe:function(e){var t={name:\"Firefox\"},r=i.default.getFirstMatch(/(?:firefox|iceweasel|fxios)[\\s/](\\d+(\\.?_?\\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/electron/i],describe:function(e){var t={name:\"Electron\"},r=i.default.getFirstMatch(/(?:electron)\\/(\\d+(\\.?_?\\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/MiuiBrowser/i],describe:function(e){var t={name:\"Miui\"},r=i.default.getFirstMatch(/(?:MiuiBrowser)[\\s/](\\d+(\\.?_?\\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/chromium/i],describe:function(e){var t={name:\"Chromium\"},r=i.default.getFirstMatch(/(?:chromium)[\\s/](\\d+(\\.?_?\\d+)+)/i,e)||i.default.getFirstMatch(s,e);return r&&(t.version=r),t}},{test:[/chrome|crios|crmo/i],describe:function(e){var t={name:\"Chrome\"},r=i.default.getFirstMatch(/(?:chrome|crios|crmo)\\/(\\d+(\\.?_?\\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/GSA/i],describe:function(e){var t={name:\"Google Search\"},r=i.default.getFirstMatch(/(?:GSA)\\/(\\d+(\\.?_?\\d+)+)/i,e);return r&&(t.version=r),t}},{test:function(e){var t=!e.test(/like android/i),r=e.test(/android/i);return t&&r},describe:function(e){var t={name:\"Android Browser\"},r=i.default.getFirstMatch(s,e);return r&&(t.version=r),t}},{test:[/playstation 4/i],describe:function(e){var t={name:\"PlayStation 4\"},r=i.default.getFirstMatch(s,e);return r&&(t.version=r),t}},{test:[/safari|applewebkit/i],describe:function(e){var t={name:\"Safari\"},r=i.default.getFirstMatch(s,e);return r&&(t.version=r),t}},{test:[/.*/i],describe:function(e){var t=-1!==e.search(\"\\\\(\")?/^(.*)\\/(.*)[ \\t]\\((.*)/:/^(.*)\\/(.*) /;return{name:i.default.getFirstMatch(t,e),version:i.default.getSecondMatch(t,e)}}}];t.default=a,e.exports=t.default},93:function(e,t,r){\"use strict\";t.__esModule=!0,t.default=void 0;var n,i=(n=r(17))&&n.__esModule?n:{default:n},s=r(18);var a=[{test:[/Roku\\/DVP/],describe:function(e){var t=i.default.getFirstMatch(/Roku\\/DVP-(\\d+\\.\\d+)/i,e);return{name:s.OS_MAP.Roku,version:t}}},{test:[/windows phone/i],describe:function(e){var t=i.default.getFirstMatch(/windows phone (?:os)?\\s?(\\d+(\\.\\d+)*)/i,e);return{name:s.OS_MAP.WindowsPhone,version:t}}},{test:[/windows /i],describe:function(e){var t=i.default.getFirstMatch(/Windows ((NT|XP)( \\d\\d?.\\d)?)/i,e),r=i.default.getWindowsVersionName(t);return{name:s.OS_MAP.Windows,version:t,versionName:r}}},{test:[/Macintosh(.*?) FxiOS(.*?)\\//],describe:function(e){var t={name:s.OS_MAP.iOS},r=i.default.getSecondMatch(/(Version\\/)(\\d[\\d.]+)/,e);return r&&(t.version=r),t}},{test:[/macintosh/i],describe:function(e){var t=i.default.getFirstMatch(/mac os x (\\d+(\\.?_?\\d+)+)/i,e).replace(/[_\\s]/g,\".\"),r=i.default.getMacOSVersionName(t),n={name:s.OS_MAP.MacOS,version:t};return r&&(n.versionName=r),n}},{test:[/(ipod|iphone|ipad)/i],describe:function(e){var t=i.default.getFirstMatch(/os (\\d+([_\\s]\\d+)*) like mac os x/i,e).replace(/[_\\s]/g,\".\");return{name:s.OS_MAP.iOS,version:t}}},{test:function(e){var t=!e.test(/like android/i),r=e.test(/android/i);return t&&r},describe:function(e){var t=i.default.getFirstMatch(/android[\\s/-](\\d+(\\.\\d+)*)/i,e),r=i.default.getAndroidVersionName(t),n={name:s.OS_MAP.Android,version:t};return r&&(n.versionName=r),n}},{test:[/(web|hpw)[o0]s/i],describe:function(e){var t=i.default.getFirstMatch(/(?:web|hpw)[o0]s\\/(\\d+(\\.\\d+)*)/i,e),r={name:s.OS_MAP.WebOS};return t&&t.length&&(r.version=t),r}},{test:[/blackberry|\\bbb\\d+/i,/rim\\stablet/i],describe:function(e){var t=i.default.getFirstMatch(/rim\\stablet\\sos\\s(\\d+(\\.\\d+)*)/i,e)||i.default.getFirstMatch(/blackberry\\d+\\/(\\d+([_\\s]\\d+)*)/i,e)||i.default.getFirstMatch(/\\bbb(\\d+)/i,e);return{name:s.OS_MAP.BlackBerry,version:t}}},{test:[/bada/i],describe:function(e){var t=i.default.getFirstMatch(/bada\\/(\\d+(\\.\\d+)*)/i,e);return{name:s.OS_MAP.Bada,version:t}}},{test:[/tizen/i],describe:function(e){var t=i.default.getFirstMatch(/tizen[/\\s](\\d+(\\.\\d+)*)/i,e);return{name:s.OS_MAP.Tizen,version:t}}},{test:[/linux/i],describe:function(){return{name:s.OS_MAP.Linux}}},{test:[/CrOS/],describe:function(){return{name:s.OS_MAP.ChromeOS}}},{test:[/PlayStation 4/],describe:function(e){var t=i.default.getFirstMatch(/PlayStation 4[/\\s](\\d+(\\.\\d+)*)/i,e);return{name:s.OS_MAP.PlayStation4,version:t}}}];t.default=a,e.exports=t.default},94:function(e,t,r){\"use strict\";t.__esModule=!0,t.default=void 0;var n,i=(n=r(17))&&n.__esModule?n:{default:n},s=r(18);var a=[{test:[/googlebot/i],describe:function(){return{type:\"bot\",vendor:\"Google\"}}},{test:[/huawei/i],describe:function(e){var t=i.default.getFirstMatch(/(can-l01)/i,e)&&\"Nova\",r={type:s.PLATFORMS_MAP.mobile,vendor:\"Huawei\"};return t&&(r.model=t),r}},{test:[/nexus\\s*(?:7|8|9|10).*/i],describe:function(){return{type:s.PLATFORMS_MAP.tablet,vendor:\"Nexus\"}}},{test:[/ipad/i],describe:function(){return{type:s.PLATFORMS_MAP.tablet,vendor:\"Apple\",model:\"iPad\"}}},{test:[/Macintosh(.*?) FxiOS(.*?)\\//],describe:function(){return{type:s.PLATFORMS_MAP.tablet,vendor:\"Apple\",model:\"iPad\"}}},{test:[/kftt build/i],describe:function(){return{type:s.PLATFORMS_MAP.tablet,vendor:\"Amazon\",model:\"Kindle Fire HD 7\"}}},{test:[/silk/i],describe:function(){return{type:s.PLATFORMS_MAP.tablet,vendor:\"Amazon\"}}},{test:[/tablet(?! pc)/i],describe:function(){return{type:s.PLATFORMS_MAP.tablet}}},{test:function(e){var t=e.test(/ipod|iphone/i),r=e.test(/like (ipod|iphone)/i);return t&&!r},describe:function(e){var t=i.default.getFirstMatch(/(ipod|iphone)/i,e);return{type:s.PLATFORMS_MAP.mobile,vendor:\"Apple\",model:t}}},{test:[/nexus\\s*[0-6].*/i,/galaxy nexus/i],describe:function(){return{type:s.PLATFORMS_MAP.mobile,vendor:\"Nexus\"}}},{test:[/[^-]mobi/i],describe:function(){return{type:s.PLATFORMS_MAP.mobile}}},{test:function(e){return\"blackberry\"===e.getBrowserName(!0)},describe:function(){return{type:s.PLATFORMS_MAP.mobile,vendor:\"BlackBerry\"}}},{test:function(e){return\"bada\"===e.getBrowserName(!0)},describe:function(){return{type:s.PLATFORMS_MAP.mobile}}},{test:function(e){return\"windows phone\"===e.getBrowserName()},describe:function(){return{type:s.PLATFORMS_MAP.mobile,vendor:\"Microsoft\"}}},{test:function(e){var t=Number(String(e.getOSVersion()).split(\".\")[0]);return\"android\"===e.getOSName(!0)&&t>=3},describe:function(){return{type:s.PLATFORMS_MAP.tablet}}},{test:function(e){return\"android\"===e.getOSName(!0)},describe:function(){return{type:s.PLATFORMS_MAP.mobile}}},{test:function(e){return\"macos\"===e.getOSName(!0)},describe:function(){return{type:s.PLATFORMS_MAP.desktop,vendor:\"Apple\"}}},{test:function(e){return\"windows\"===e.getOSName(!0)},describe:function(){return{type:s.PLATFORMS_MAP.desktop}}},{test:function(e){return\"linux\"===e.getOSName(!0)},describe:function(){return{type:s.PLATFORMS_MAP.desktop}}},{test:function(e){return\"playstation 4\"===e.getOSName(!0)},describe:function(){return{type:s.PLATFORMS_MAP.tv}}},{test:function(e){return\"roku\"===e.getOSName(!0)},describe:function(){return{type:s.PLATFORMS_MAP.tv}}}];t.default=a,e.exports=t.default},95:function(e,t,r){\"use strict\";t.__esModule=!0,t.default=void 0;var n,i=(n=r(17))&&n.__esModule?n:{default:n},s=r(18);var a=[{test:function(e){return\"microsoft edge\"===e.getBrowserName(!0)},describe:function(e){if(/\\sedg\\//i.test(e))return{name:s.ENGINE_MAP.Blink};var t=i.default.getFirstMatch(/edge\\/(\\d+(\\.?_?\\d+)+)/i,e);return{name:s.ENGINE_MAP.EdgeHTML,version:t}}},{test:[/trident/i],describe:function(e){var t={name:s.ENGINE_MAP.Trident},r=i.default.getFirstMatch(/trident\\/(\\d+(\\.?_?\\d+)+)/i,e);return r&&(t.version=r),t}},{test:function(e){return e.test(/presto/i)},describe:function(e){var t={name:s.ENGINE_MAP.Presto},r=i.default.getFirstMatch(/presto\\/(\\d+(\\.?_?\\d+)+)/i,e);return r&&(t.version=r),t}},{test:function(e){var t=e.test(/gecko/i),r=e.test(/like gecko/i);return t&&!r},describe:function(e){var t={name:s.ENGINE_MAP.Gecko},r=i.default.getFirstMatch(/gecko\\/(\\d+(\\.?_?\\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/(apple)?webkit\\/537\\.36/i],describe:function(){return{name:s.ENGINE_MAP.Blink}}},{test:[/(apple)?webkit/i],describe:function(e){var t={name:s.ENGINE_MAP.WebKit},r=i.default.getFirstMatch(/webkit\\/(\\d+(\\.?_?\\d+)+)/i,e);return r&&(t.version=r),t}}];t.default=a,e.exports=t.default}})}));","/*!\n * The buffer module from node.js, for the browser.\n *\n * @author Feross Aboukhadijeh \n * @license MIT\n */\n/* eslint-disable no-proto */\n\n'use strict'\n\nvar base64 = require('base64-js')\nvar ieee754 = require('ieee754')\nvar isArray = require('isarray')\n\nexports.Buffer = Buffer\nexports.SlowBuffer = SlowBuffer\nexports.INSPECT_MAX_BYTES = 50\n\n/**\n * If `Buffer.TYPED_ARRAY_SUPPORT`:\n * === true Use Uint8Array implementation (fastest)\n * === false Use Object implementation (most compatible, even IE6)\n *\n * Browsers that support typed arrays are IE 10+, Firefox 4+, Chrome 7+, Safari 5.1+,\n * Opera 11.6+, iOS 4.2+.\n *\n * Due to various browser bugs, sometimes the Object implementation will be used even\n * when the browser supports typed arrays.\n *\n * Note:\n *\n * - Firefox 4-29 lacks support for adding new properties to `Uint8Array` instances,\n * See: https://bugzilla.mozilla.org/show_bug.cgi?id=695438.\n *\n * - Chrome 9-10 is missing the `TypedArray.prototype.subarray` function.\n *\n * - IE10 has a broken `TypedArray.prototype.subarray` function which returns arrays of\n * incorrect length in some situations.\n\n * We detect these buggy browsers and set `Buffer.TYPED_ARRAY_SUPPORT` to `false` so they\n * get the Object implementation, which is slower but behaves correctly.\n */\nBuffer.TYPED_ARRAY_SUPPORT = global.TYPED_ARRAY_SUPPORT !== undefined\n ? global.TYPED_ARRAY_SUPPORT\n : typedArraySupport()\n\n/*\n * Export kMaxLength after typed array support is determined.\n */\nexports.kMaxLength = kMaxLength()\n\nfunction typedArraySupport () {\n try {\n var arr = new Uint8Array(1)\n arr.__proto__ = {__proto__: Uint8Array.prototype, foo: function () { return 42 }}\n return arr.foo() === 42 && // typed array instances can be augmented\n typeof arr.subarray === 'function' && // chrome 9-10 lack `subarray`\n arr.subarray(1, 1).byteLength === 0 // ie10 has broken `subarray`\n } catch (e) {\n return false\n }\n}\n\nfunction kMaxLength () {\n return Buffer.TYPED_ARRAY_SUPPORT\n ? 0x7fffffff\n : 0x3fffffff\n}\n\nfunction createBuffer (that, length) {\n if (kMaxLength() < length) {\n throw new RangeError('Invalid typed array length')\n }\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n // Return an augmented `Uint8Array` instance, for best performance\n that = new Uint8Array(length)\n that.__proto__ = Buffer.prototype\n } else {\n // Fallback: Return an object instance of the Buffer class\n if (that === null) {\n that = new Buffer(length)\n }\n that.length = length\n }\n\n return that\n}\n\n/**\n * The Buffer constructor returns instances of `Uint8Array` that have their\n * prototype changed to `Buffer.prototype`. Furthermore, `Buffer` is a subclass of\n * `Uint8Array`, so the returned instances will have all the node `Buffer` methods\n * and the `Uint8Array` methods. Square bracket notation works as expected -- it\n * returns a single octet.\n *\n * The `Uint8Array` prototype remains unmodified.\n */\n\nfunction Buffer (arg, encodingOrOffset, length) {\n if (!Buffer.TYPED_ARRAY_SUPPORT && !(this instanceof Buffer)) {\n return new Buffer(arg, encodingOrOffset, length)\n }\n\n // Common case.\n if (typeof arg === 'number') {\n if (typeof encodingOrOffset === 'string') {\n throw new Error(\n 'If encoding is specified then the first argument must be a string'\n )\n }\n return allocUnsafe(this, arg)\n }\n return from(this, arg, encodingOrOffset, length)\n}\n\nBuffer.poolSize = 8192 // not used by this implementation\n\n// TODO: Legacy, not needed anymore. Remove in next major version.\nBuffer._augment = function (arr) {\n arr.__proto__ = Buffer.prototype\n return arr\n}\n\nfunction from (that, value, encodingOrOffset, length) {\n if (typeof value === 'number') {\n throw new TypeError('\"value\" argument must not be a number')\n }\n\n if (typeof ArrayBuffer !== 'undefined' && value instanceof ArrayBuffer) {\n return fromArrayBuffer(that, value, encodingOrOffset, length)\n }\n\n if (typeof value === 'string') {\n return fromString(that, value, encodingOrOffset)\n }\n\n return fromObject(that, value)\n}\n\n/**\n * Functionally equivalent to Buffer(arg, encoding) but throws a TypeError\n * if value is a number.\n * Buffer.from(str[, encoding])\n * Buffer.from(array)\n * Buffer.from(buffer)\n * Buffer.from(arrayBuffer[, byteOffset[, length]])\n **/\nBuffer.from = function (value, encodingOrOffset, length) {\n return from(null, value, encodingOrOffset, length)\n}\n\nif (Buffer.TYPED_ARRAY_SUPPORT) {\n Buffer.prototype.__proto__ = Uint8Array.prototype\n Buffer.__proto__ = Uint8Array\n if (typeof Symbol !== 'undefined' && Symbol.species &&\n Buffer[Symbol.species] === Buffer) {\n // Fix subarray() in ES2016. See: https://github.com/feross/buffer/pull/97\n Object.defineProperty(Buffer, Symbol.species, {\n value: null,\n configurable: true\n })\n }\n}\n\nfunction assertSize (size) {\n if (typeof size !== 'number') {\n throw new TypeError('\"size\" argument must be a number')\n } else if (size < 0) {\n throw new RangeError('\"size\" argument must not be negative')\n }\n}\n\nfunction alloc (that, size, fill, encoding) {\n assertSize(size)\n if (size <= 0) {\n return createBuffer(that, size)\n }\n if (fill !== undefined) {\n // Only pay attention to encoding if it's a string. This\n // prevents accidentally sending in a number that would\n // be interpretted as a start offset.\n return typeof encoding === 'string'\n ? createBuffer(that, size).fill(fill, encoding)\n : createBuffer(that, size).fill(fill)\n }\n return createBuffer(that, size)\n}\n\n/**\n * Creates a new filled Buffer instance.\n * alloc(size[, fill[, encoding]])\n **/\nBuffer.alloc = function (size, fill, encoding) {\n return alloc(null, size, fill, encoding)\n}\n\nfunction allocUnsafe (that, size) {\n assertSize(size)\n that = createBuffer(that, size < 0 ? 0 : checked(size) | 0)\n if (!Buffer.TYPED_ARRAY_SUPPORT) {\n for (var i = 0; i < size; ++i) {\n that[i] = 0\n }\n }\n return that\n}\n\n/**\n * Equivalent to Buffer(num), by default creates a non-zero-filled Buffer instance.\n * */\nBuffer.allocUnsafe = function (size) {\n return allocUnsafe(null, size)\n}\n/**\n * Equivalent to SlowBuffer(num), by default creates a non-zero-filled Buffer instance.\n */\nBuffer.allocUnsafeSlow = function (size) {\n return allocUnsafe(null, size)\n}\n\nfunction fromString (that, string, encoding) {\n if (typeof encoding !== 'string' || encoding === '') {\n encoding = 'utf8'\n }\n\n if (!Buffer.isEncoding(encoding)) {\n throw new TypeError('\"encoding\" must be a valid string encoding')\n }\n\n var length = byteLength(string, encoding) | 0\n that = createBuffer(that, length)\n\n var actual = that.write(string, encoding)\n\n if (actual !== length) {\n // Writing a hex string, for example, that contains invalid characters will\n // cause everything after the first invalid character to be ignored. (e.g.\n // 'abxxcd' will be treated as 'ab')\n that = that.slice(0, actual)\n }\n\n return that\n}\n\nfunction fromArrayLike (that, array) {\n var length = array.length < 0 ? 0 : checked(array.length) | 0\n that = createBuffer(that, length)\n for (var i = 0; i < length; i += 1) {\n that[i] = array[i] & 255\n }\n return that\n}\n\nfunction fromArrayBuffer (that, array, byteOffset, length) {\n array.byteLength // this throws if `array` is not a valid ArrayBuffer\n\n if (byteOffset < 0 || array.byteLength < byteOffset) {\n throw new RangeError('\\'offset\\' is out of bounds')\n }\n\n if (array.byteLength < byteOffset + (length || 0)) {\n throw new RangeError('\\'length\\' is out of bounds')\n }\n\n if (byteOffset === undefined && length === undefined) {\n array = new Uint8Array(array)\n } else if (length === undefined) {\n array = new Uint8Array(array, byteOffset)\n } else {\n array = new Uint8Array(array, byteOffset, length)\n }\n\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n // Return an augmented `Uint8Array` instance, for best performance\n that = array\n that.__proto__ = Buffer.prototype\n } else {\n // Fallback: Return an object instance of the Buffer class\n that = fromArrayLike(that, array)\n }\n return that\n}\n\nfunction fromObject (that, obj) {\n if (Buffer.isBuffer(obj)) {\n var len = checked(obj.length) | 0\n that = createBuffer(that, len)\n\n if (that.length === 0) {\n return that\n }\n\n obj.copy(that, 0, 0, len)\n return that\n }\n\n if (obj) {\n if ((typeof ArrayBuffer !== 'undefined' &&\n obj.buffer instanceof ArrayBuffer) || 'length' in obj) {\n if (typeof obj.length !== 'number' || isnan(obj.length)) {\n return createBuffer(that, 0)\n }\n return fromArrayLike(that, obj)\n }\n\n if (obj.type === 'Buffer' && isArray(obj.data)) {\n return fromArrayLike(that, obj.data)\n }\n }\n\n throw new TypeError('First argument must be a string, Buffer, ArrayBuffer, Array, or array-like object.')\n}\n\nfunction checked (length) {\n // Note: cannot use `length < kMaxLength()` here because that fails when\n // length is NaN (which is otherwise coerced to zero.)\n if (length >= kMaxLength()) {\n throw new RangeError('Attempt to allocate Buffer larger than maximum ' +\n 'size: 0x' + kMaxLength().toString(16) + ' bytes')\n }\n return length | 0\n}\n\nfunction SlowBuffer (length) {\n if (+length != length) { // eslint-disable-line eqeqeq\n length = 0\n }\n return Buffer.alloc(+length)\n}\n\nBuffer.isBuffer = function isBuffer (b) {\n return !!(b != null && b._isBuffer)\n}\n\nBuffer.compare = function compare (a, b) {\n if (!Buffer.isBuffer(a) || !Buffer.isBuffer(b)) {\n throw new TypeError('Arguments must be Buffers')\n }\n\n if (a === b) return 0\n\n var x = a.length\n var y = b.length\n\n for (var i = 0, len = Math.min(x, y); i < len; ++i) {\n if (a[i] !== b[i]) {\n x = a[i]\n y = b[i]\n break\n }\n }\n\n if (x < y) return -1\n if (y < x) return 1\n return 0\n}\n\nBuffer.isEncoding = function isEncoding (encoding) {\n switch (String(encoding).toLowerCase()) {\n case 'hex':\n case 'utf8':\n case 'utf-8':\n case 'ascii':\n case 'latin1':\n case 'binary':\n case 'base64':\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return true\n default:\n return false\n }\n}\n\nBuffer.concat = function concat (list, length) {\n if (!isArray(list)) {\n throw new TypeError('\"list\" argument must be an Array of Buffers')\n }\n\n if (list.length === 0) {\n return Buffer.alloc(0)\n }\n\n var i\n if (length === undefined) {\n length = 0\n for (i = 0; i < list.length; ++i) {\n length += list[i].length\n }\n }\n\n var buffer = Buffer.allocUnsafe(length)\n var pos = 0\n for (i = 0; i < list.length; ++i) {\n var buf = list[i]\n if (!Buffer.isBuffer(buf)) {\n throw new TypeError('\"list\" argument must be an Array of Buffers')\n }\n buf.copy(buffer, pos)\n pos += buf.length\n }\n return buffer\n}\n\nfunction byteLength (string, encoding) {\n if (Buffer.isBuffer(string)) {\n return string.length\n }\n if (typeof ArrayBuffer !== 'undefined' && typeof ArrayBuffer.isView === 'function' &&\n (ArrayBuffer.isView(string) || string instanceof ArrayBuffer)) {\n return string.byteLength\n }\n if (typeof string !== 'string') {\n string = '' + string\n }\n\n var len = string.length\n if (len === 0) return 0\n\n // Use a for loop to avoid recursion\n var loweredCase = false\n for (;;) {\n switch (encoding) {\n case 'ascii':\n case 'latin1':\n case 'binary':\n return len\n case 'utf8':\n case 'utf-8':\n case undefined:\n return utf8ToBytes(string).length\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return len * 2\n case 'hex':\n return len >>> 1\n case 'base64':\n return base64ToBytes(string).length\n default:\n if (loweredCase) return utf8ToBytes(string).length // assume utf8\n encoding = ('' + encoding).toLowerCase()\n loweredCase = true\n }\n }\n}\nBuffer.byteLength = byteLength\n\nfunction slowToString (encoding, start, end) {\n var loweredCase = false\n\n // No need to verify that \"this.length <= MAX_UINT32\" since it's a read-only\n // property of a typed array.\n\n // This behaves neither like String nor Uint8Array in that we set start/end\n // to their upper/lower bounds if the value passed is out of range.\n // undefined is handled specially as per ECMA-262 6th Edition,\n // Section 13.3.3.7 Runtime Semantics: KeyedBindingInitialization.\n if (start === undefined || start < 0) {\n start = 0\n }\n // Return early if start > this.length. Done here to prevent potential uint32\n // coercion fail below.\n if (start > this.length) {\n return ''\n }\n\n if (end === undefined || end > this.length) {\n end = this.length\n }\n\n if (end <= 0) {\n return ''\n }\n\n // Force coersion to uint32. This will also coerce falsey/NaN values to 0.\n end >>>= 0\n start >>>= 0\n\n if (end <= start) {\n return ''\n }\n\n if (!encoding) encoding = 'utf8'\n\n while (true) {\n switch (encoding) {\n case 'hex':\n return hexSlice(this, start, end)\n\n case 'utf8':\n case 'utf-8':\n return utf8Slice(this, start, end)\n\n case 'ascii':\n return asciiSlice(this, start, end)\n\n case 'latin1':\n case 'binary':\n return latin1Slice(this, start, end)\n\n case 'base64':\n return base64Slice(this, start, end)\n\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return utf16leSlice(this, start, end)\n\n default:\n if (loweredCase) throw new TypeError('Unknown encoding: ' + encoding)\n encoding = (encoding + '').toLowerCase()\n loweredCase = true\n }\n }\n}\n\n// The property is used by `Buffer.isBuffer` and `is-buffer` (in Safari 5-7) to detect\n// Buffer instances.\nBuffer.prototype._isBuffer = true\n\nfunction swap (b, n, m) {\n var i = b[n]\n b[n] = b[m]\n b[m] = i\n}\n\nBuffer.prototype.swap16 = function swap16 () {\n var len = this.length\n if (len % 2 !== 0) {\n throw new RangeError('Buffer size must be a multiple of 16-bits')\n }\n for (var i = 0; i < len; i += 2) {\n swap(this, i, i + 1)\n }\n return this\n}\n\nBuffer.prototype.swap32 = function swap32 () {\n var len = this.length\n if (len % 4 !== 0) {\n throw new RangeError('Buffer size must be a multiple of 32-bits')\n }\n for (var i = 0; i < len; i += 4) {\n swap(this, i, i + 3)\n swap(this, i + 1, i + 2)\n }\n return this\n}\n\nBuffer.prototype.swap64 = function swap64 () {\n var len = this.length\n if (len % 8 !== 0) {\n throw new RangeError('Buffer size must be a multiple of 64-bits')\n }\n for (var i = 0; i < len; i += 8) {\n swap(this, i, i + 7)\n swap(this, i + 1, i + 6)\n swap(this, i + 2, i + 5)\n swap(this, i + 3, i + 4)\n }\n return this\n}\n\nBuffer.prototype.toString = function toString () {\n var length = this.length | 0\n if (length === 0) return ''\n if (arguments.length === 0) return utf8Slice(this, 0, length)\n return slowToString.apply(this, arguments)\n}\n\nBuffer.prototype.equals = function equals (b) {\n if (!Buffer.isBuffer(b)) throw new TypeError('Argument must be a Buffer')\n if (this === b) return true\n return Buffer.compare(this, b) === 0\n}\n\nBuffer.prototype.inspect = function inspect () {\n var str = ''\n var max = exports.INSPECT_MAX_BYTES\n if (this.length > 0) {\n str = this.toString('hex', 0, max).match(/.{2}/g).join(' ')\n if (this.length > max) str += ' ... '\n }\n return ''\n}\n\nBuffer.prototype.compare = function compare (target, start, end, thisStart, thisEnd) {\n if (!Buffer.isBuffer(target)) {\n throw new TypeError('Argument must be a Buffer')\n }\n\n if (start === undefined) {\n start = 0\n }\n if (end === undefined) {\n end = target ? target.length : 0\n }\n if (thisStart === undefined) {\n thisStart = 0\n }\n if (thisEnd === undefined) {\n thisEnd = this.length\n }\n\n if (start < 0 || end > target.length || thisStart < 0 || thisEnd > this.length) {\n throw new RangeError('out of range index')\n }\n\n if (thisStart >= thisEnd && start >= end) {\n return 0\n }\n if (thisStart >= thisEnd) {\n return -1\n }\n if (start >= end) {\n return 1\n }\n\n start >>>= 0\n end >>>= 0\n thisStart >>>= 0\n thisEnd >>>= 0\n\n if (this === target) return 0\n\n var x = thisEnd - thisStart\n var y = end - start\n var len = Math.min(x, y)\n\n var thisCopy = this.slice(thisStart, thisEnd)\n var targetCopy = target.slice(start, end)\n\n for (var i = 0; i < len; ++i) {\n if (thisCopy[i] !== targetCopy[i]) {\n x = thisCopy[i]\n y = targetCopy[i]\n break\n }\n }\n\n if (x < y) return -1\n if (y < x) return 1\n return 0\n}\n\n// Finds either the first index of `val` in `buffer` at offset >= `byteOffset`,\n// OR the last index of `val` in `buffer` at offset <= `byteOffset`.\n//\n// Arguments:\n// - buffer - a Buffer to search\n// - val - a string, Buffer, or number\n// - byteOffset - an index into `buffer`; will be clamped to an int32\n// - encoding - an optional encoding, relevant is val is a string\n// - dir - true for indexOf, false for lastIndexOf\nfunction bidirectionalIndexOf (buffer, val, byteOffset, encoding, dir) {\n // Empty buffer means no match\n if (buffer.length === 0) return -1\n\n // Normalize byteOffset\n if (typeof byteOffset === 'string') {\n encoding = byteOffset\n byteOffset = 0\n } else if (byteOffset > 0x7fffffff) {\n byteOffset = 0x7fffffff\n } else if (byteOffset < -0x80000000) {\n byteOffset = -0x80000000\n }\n byteOffset = +byteOffset // Coerce to Number.\n if (isNaN(byteOffset)) {\n // byteOffset: it it's undefined, null, NaN, \"foo\", etc, search whole buffer\n byteOffset = dir ? 0 : (buffer.length - 1)\n }\n\n // Normalize byteOffset: negative offsets start from the end of the buffer\n if (byteOffset < 0) byteOffset = buffer.length + byteOffset\n if (byteOffset >= buffer.length) {\n if (dir) return -1\n else byteOffset = buffer.length - 1\n } else if (byteOffset < 0) {\n if (dir) byteOffset = 0\n else return -1\n }\n\n // Normalize val\n if (typeof val === 'string') {\n val = Buffer.from(val, encoding)\n }\n\n // Finally, search either indexOf (if dir is true) or lastIndexOf\n if (Buffer.isBuffer(val)) {\n // Special case: looking for empty string/buffer always fails\n if (val.length === 0) {\n return -1\n }\n return arrayIndexOf(buffer, val, byteOffset, encoding, dir)\n } else if (typeof val === 'number') {\n val = val & 0xFF // Search for a byte value [0-255]\n if (Buffer.TYPED_ARRAY_SUPPORT &&\n typeof Uint8Array.prototype.indexOf === 'function') {\n if (dir) {\n return Uint8Array.prototype.indexOf.call(buffer, val, byteOffset)\n } else {\n return Uint8Array.prototype.lastIndexOf.call(buffer, val, byteOffset)\n }\n }\n return arrayIndexOf(buffer, [ val ], byteOffset, encoding, dir)\n }\n\n throw new TypeError('val must be string, number or Buffer')\n}\n\nfunction arrayIndexOf (arr, val, byteOffset, encoding, dir) {\n var indexSize = 1\n var arrLength = arr.length\n var valLength = val.length\n\n if (encoding !== undefined) {\n encoding = String(encoding).toLowerCase()\n if (encoding === 'ucs2' || encoding === 'ucs-2' ||\n encoding === 'utf16le' || encoding === 'utf-16le') {\n if (arr.length < 2 || val.length < 2) {\n return -1\n }\n indexSize = 2\n arrLength /= 2\n valLength /= 2\n byteOffset /= 2\n }\n }\n\n function read (buf, i) {\n if (indexSize === 1) {\n return buf[i]\n } else {\n return buf.readUInt16BE(i * indexSize)\n }\n }\n\n var i\n if (dir) {\n var foundIndex = -1\n for (i = byteOffset; i < arrLength; i++) {\n if (read(arr, i) === read(val, foundIndex === -1 ? 0 : i - foundIndex)) {\n if (foundIndex === -1) foundIndex = i\n if (i - foundIndex + 1 === valLength) return foundIndex * indexSize\n } else {\n if (foundIndex !== -1) i -= i - foundIndex\n foundIndex = -1\n }\n }\n } else {\n if (byteOffset + valLength > arrLength) byteOffset = arrLength - valLength\n for (i = byteOffset; i >= 0; i--) {\n var found = true\n for (var j = 0; j < valLength; j++) {\n if (read(arr, i + j) !== read(val, j)) {\n found = false\n break\n }\n }\n if (found) return i\n }\n }\n\n return -1\n}\n\nBuffer.prototype.includes = function includes (val, byteOffset, encoding) {\n return this.indexOf(val, byteOffset, encoding) !== -1\n}\n\nBuffer.prototype.indexOf = function indexOf (val, byteOffset, encoding) {\n return bidirectionalIndexOf(this, val, byteOffset, encoding, true)\n}\n\nBuffer.prototype.lastIndexOf = function lastIndexOf (val, byteOffset, encoding) {\n return bidirectionalIndexOf(this, val, byteOffset, encoding, false)\n}\n\nfunction hexWrite (buf, string, offset, length) {\n offset = Number(offset) || 0\n var remaining = buf.length - offset\n if (!length) {\n length = remaining\n } else {\n length = Number(length)\n if (length > remaining) {\n length = remaining\n }\n }\n\n // must be an even number of digits\n var strLen = string.length\n if (strLen % 2 !== 0) throw new TypeError('Invalid hex string')\n\n if (length > strLen / 2) {\n length = strLen / 2\n }\n for (var i = 0; i < length; ++i) {\n var parsed = parseInt(string.substr(i * 2, 2), 16)\n if (isNaN(parsed)) return i\n buf[offset + i] = parsed\n }\n return i\n}\n\nfunction utf8Write (buf, string, offset, length) {\n return blitBuffer(utf8ToBytes(string, buf.length - offset), buf, offset, length)\n}\n\nfunction asciiWrite (buf, string, offset, length) {\n return blitBuffer(asciiToBytes(string), buf, offset, length)\n}\n\nfunction latin1Write (buf, string, offset, length) {\n return asciiWrite(buf, string, offset, length)\n}\n\nfunction base64Write (buf, string, offset, length) {\n return blitBuffer(base64ToBytes(string), buf, offset, length)\n}\n\nfunction ucs2Write (buf, string, offset, length) {\n return blitBuffer(utf16leToBytes(string, buf.length - offset), buf, offset, length)\n}\n\nBuffer.prototype.write = function write (string, offset, length, encoding) {\n // Buffer#write(string)\n if (offset === undefined) {\n encoding = 'utf8'\n length = this.length\n offset = 0\n // Buffer#write(string, encoding)\n } else if (length === undefined && typeof offset === 'string') {\n encoding = offset\n length = this.length\n offset = 0\n // Buffer#write(string, offset[, length][, encoding])\n } else if (isFinite(offset)) {\n offset = offset | 0\n if (isFinite(length)) {\n length = length | 0\n if (encoding === undefined) encoding = 'utf8'\n } else {\n encoding = length\n length = undefined\n }\n // legacy write(string, encoding, offset, length) - remove in v0.13\n } else {\n throw new Error(\n 'Buffer.write(string, encoding, offset[, length]) is no longer supported'\n )\n }\n\n var remaining = this.length - offset\n if (length === undefined || length > remaining) length = remaining\n\n if ((string.length > 0 && (length < 0 || offset < 0)) || offset > this.length) {\n throw new RangeError('Attempt to write outside buffer bounds')\n }\n\n if (!encoding) encoding = 'utf8'\n\n var loweredCase = false\n for (;;) {\n switch (encoding) {\n case 'hex':\n return hexWrite(this, string, offset, length)\n\n case 'utf8':\n case 'utf-8':\n return utf8Write(this, string, offset, length)\n\n case 'ascii':\n return asciiWrite(this, string, offset, length)\n\n case 'latin1':\n case 'binary':\n return latin1Write(this, string, offset, length)\n\n case 'base64':\n // Warning: maxLength not taken into account in base64Write\n return base64Write(this, string, offset, length)\n\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return ucs2Write(this, string, offset, length)\n\n default:\n if (loweredCase) throw new TypeError('Unknown encoding: ' + encoding)\n encoding = ('' + encoding).toLowerCase()\n loweredCase = true\n }\n }\n}\n\nBuffer.prototype.toJSON = function toJSON () {\n return {\n type: 'Buffer',\n data: Array.prototype.slice.call(this._arr || this, 0)\n }\n}\n\nfunction base64Slice (buf, start, end) {\n if (start === 0 && end === buf.length) {\n return base64.fromByteArray(buf)\n } else {\n return base64.fromByteArray(buf.slice(start, end))\n }\n}\n\nfunction utf8Slice (buf, start, end) {\n end = Math.min(buf.length, end)\n var res = []\n\n var i = start\n while (i < end) {\n var firstByte = buf[i]\n var codePoint = null\n var bytesPerSequence = (firstByte > 0xEF) ? 4\n : (firstByte > 0xDF) ? 3\n : (firstByte > 0xBF) ? 2\n : 1\n\n if (i + bytesPerSequence <= end) {\n var secondByte, thirdByte, fourthByte, tempCodePoint\n\n switch (bytesPerSequence) {\n case 1:\n if (firstByte < 0x80) {\n codePoint = firstByte\n }\n break\n case 2:\n secondByte = buf[i + 1]\n if ((secondByte & 0xC0) === 0x80) {\n tempCodePoint = (firstByte & 0x1F) << 0x6 | (secondByte & 0x3F)\n if (tempCodePoint > 0x7F) {\n codePoint = tempCodePoint\n }\n }\n break\n case 3:\n secondByte = buf[i + 1]\n thirdByte = buf[i + 2]\n if ((secondByte & 0xC0) === 0x80 && (thirdByte & 0xC0) === 0x80) {\n tempCodePoint = (firstByte & 0xF) << 0xC | (secondByte & 0x3F) << 0x6 | (thirdByte & 0x3F)\n if (tempCodePoint > 0x7FF && (tempCodePoint < 0xD800 || tempCodePoint > 0xDFFF)) {\n codePoint = tempCodePoint\n }\n }\n break\n case 4:\n secondByte = buf[i + 1]\n thirdByte = buf[i + 2]\n fourthByte = buf[i + 3]\n if ((secondByte & 0xC0) === 0x80 && (thirdByte & 0xC0) === 0x80 && (fourthByte & 0xC0) === 0x80) {\n tempCodePoint = (firstByte & 0xF) << 0x12 | (secondByte & 0x3F) << 0xC | (thirdByte & 0x3F) << 0x6 | (fourthByte & 0x3F)\n if (tempCodePoint > 0xFFFF && tempCodePoint < 0x110000) {\n codePoint = tempCodePoint\n }\n }\n }\n }\n\n if (codePoint === null) {\n // we did not generate a valid codePoint so insert a\n // replacement char (U+FFFD) and advance only 1 byte\n codePoint = 0xFFFD\n bytesPerSequence = 1\n } else if (codePoint > 0xFFFF) {\n // encode to utf16 (surrogate pair dance)\n codePoint -= 0x10000\n res.push(codePoint >>> 10 & 0x3FF | 0xD800)\n codePoint = 0xDC00 | codePoint & 0x3FF\n }\n\n res.push(codePoint)\n i += bytesPerSequence\n }\n\n return decodeCodePointsArray(res)\n}\n\n// Based on http://stackoverflow.com/a/22747272/680742, the browser with\n// the lowest limit is Chrome, with 0x10000 args.\n// We go 1 magnitude less, for safety\nvar MAX_ARGUMENTS_LENGTH = 0x1000\n\nfunction decodeCodePointsArray (codePoints) {\n var len = codePoints.length\n if (len <= MAX_ARGUMENTS_LENGTH) {\n return String.fromCharCode.apply(String, codePoints) // avoid extra slice()\n }\n\n // Decode in chunks to avoid \"call stack size exceeded\".\n var res = ''\n var i = 0\n while (i < len) {\n res += String.fromCharCode.apply(\n String,\n codePoints.slice(i, i += MAX_ARGUMENTS_LENGTH)\n )\n }\n return res\n}\n\nfunction asciiSlice (buf, start, end) {\n var ret = ''\n end = Math.min(buf.length, end)\n\n for (var i = start; i < end; ++i) {\n ret += String.fromCharCode(buf[i] & 0x7F)\n }\n return ret\n}\n\nfunction latin1Slice (buf, start, end) {\n var ret = ''\n end = Math.min(buf.length, end)\n\n for (var i = start; i < end; ++i) {\n ret += String.fromCharCode(buf[i])\n }\n return ret\n}\n\nfunction hexSlice (buf, start, end) {\n var len = buf.length\n\n if (!start || start < 0) start = 0\n if (!end || end < 0 || end > len) end = len\n\n var out = ''\n for (var i = start; i < end; ++i) {\n out += toHex(buf[i])\n }\n return out\n}\n\nfunction utf16leSlice (buf, start, end) {\n var bytes = buf.slice(start, end)\n var res = ''\n for (var i = 0; i < bytes.length; i += 2) {\n res += String.fromCharCode(bytes[i] + bytes[i + 1] * 256)\n }\n return res\n}\n\nBuffer.prototype.slice = function slice (start, end) {\n var len = this.length\n start = ~~start\n end = end === undefined ? len : ~~end\n\n if (start < 0) {\n start += len\n if (start < 0) start = 0\n } else if (start > len) {\n start = len\n }\n\n if (end < 0) {\n end += len\n if (end < 0) end = 0\n } else if (end > len) {\n end = len\n }\n\n if (end < start) end = start\n\n var newBuf\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n newBuf = this.subarray(start, end)\n newBuf.__proto__ = Buffer.prototype\n } else {\n var sliceLen = end - start\n newBuf = new Buffer(sliceLen, undefined)\n for (var i = 0; i < sliceLen; ++i) {\n newBuf[i] = this[i + start]\n }\n }\n\n return newBuf\n}\n\n/*\n * Need to make sure that buffer isn't trying to write out of bounds.\n */\nfunction checkOffset (offset, ext, length) {\n if ((offset % 1) !== 0 || offset < 0) throw new RangeError('offset is not uint')\n if (offset + ext > length) throw new RangeError('Trying to access beyond buffer length')\n}\n\nBuffer.prototype.readUIntLE = function readUIntLE (offset, byteLength, noAssert) {\n offset = offset | 0\n byteLength = byteLength | 0\n if (!noAssert) checkOffset(offset, byteLength, this.length)\n\n var val = this[offset]\n var mul = 1\n var i = 0\n while (++i < byteLength && (mul *= 0x100)) {\n val += this[offset + i] * mul\n }\n\n return val\n}\n\nBuffer.prototype.readUIntBE = function readUIntBE (offset, byteLength, noAssert) {\n offset = offset | 0\n byteLength = byteLength | 0\n if (!noAssert) {\n checkOffset(offset, byteLength, this.length)\n }\n\n var val = this[offset + --byteLength]\n var mul = 1\n while (byteLength > 0 && (mul *= 0x100)) {\n val += this[offset + --byteLength] * mul\n }\n\n return val\n}\n\nBuffer.prototype.readUInt8 = function readUInt8 (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 1, this.length)\n return this[offset]\n}\n\nBuffer.prototype.readUInt16LE = function readUInt16LE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 2, this.length)\n return this[offset] | (this[offset + 1] << 8)\n}\n\nBuffer.prototype.readUInt16BE = function readUInt16BE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 2, this.length)\n return (this[offset] << 8) | this[offset + 1]\n}\n\nBuffer.prototype.readUInt32LE = function readUInt32LE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length)\n\n return ((this[offset]) |\n (this[offset + 1] << 8) |\n (this[offset + 2] << 16)) +\n (this[offset + 3] * 0x1000000)\n}\n\nBuffer.prototype.readUInt32BE = function readUInt32BE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length)\n\n return (this[offset] * 0x1000000) +\n ((this[offset + 1] << 16) |\n (this[offset + 2] << 8) |\n this[offset + 3])\n}\n\nBuffer.prototype.readIntLE = function readIntLE (offset, byteLength, noAssert) {\n offset = offset | 0\n byteLength = byteLength | 0\n if (!noAssert) checkOffset(offset, byteLength, this.length)\n\n var val = this[offset]\n var mul = 1\n var i = 0\n while (++i < byteLength && (mul *= 0x100)) {\n val += this[offset + i] * mul\n }\n mul *= 0x80\n\n if (val >= mul) val -= Math.pow(2, 8 * byteLength)\n\n return val\n}\n\nBuffer.prototype.readIntBE = function readIntBE (offset, byteLength, noAssert) {\n offset = offset | 0\n byteLength = byteLength | 0\n if (!noAssert) checkOffset(offset, byteLength, this.length)\n\n var i = byteLength\n var mul = 1\n var val = this[offset + --i]\n while (i > 0 && (mul *= 0x100)) {\n val += this[offset + --i] * mul\n }\n mul *= 0x80\n\n if (val >= mul) val -= Math.pow(2, 8 * byteLength)\n\n return val\n}\n\nBuffer.prototype.readInt8 = function readInt8 (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 1, this.length)\n if (!(this[offset] & 0x80)) return (this[offset])\n return ((0xff - this[offset] + 1) * -1)\n}\n\nBuffer.prototype.readInt16LE = function readInt16LE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 2, this.length)\n var val = this[offset] | (this[offset + 1] << 8)\n return (val & 0x8000) ? val | 0xFFFF0000 : val\n}\n\nBuffer.prototype.readInt16BE = function readInt16BE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 2, this.length)\n var val = this[offset + 1] | (this[offset] << 8)\n return (val & 0x8000) ? val | 0xFFFF0000 : val\n}\n\nBuffer.prototype.readInt32LE = function readInt32LE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length)\n\n return (this[offset]) |\n (this[offset + 1] << 8) |\n (this[offset + 2] << 16) |\n (this[offset + 3] << 24)\n}\n\nBuffer.prototype.readInt32BE = function readInt32BE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length)\n\n return (this[offset] << 24) |\n (this[offset + 1] << 16) |\n (this[offset + 2] << 8) |\n (this[offset + 3])\n}\n\nBuffer.prototype.readFloatLE = function readFloatLE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length)\n return ieee754.read(this, offset, true, 23, 4)\n}\n\nBuffer.prototype.readFloatBE = function readFloatBE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length)\n return ieee754.read(this, offset, false, 23, 4)\n}\n\nBuffer.prototype.readDoubleLE = function readDoubleLE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 8, this.length)\n return ieee754.read(this, offset, true, 52, 8)\n}\n\nBuffer.prototype.readDoubleBE = function readDoubleBE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 8, this.length)\n return ieee754.read(this, offset, false, 52, 8)\n}\n\nfunction checkInt (buf, value, offset, ext, max, min) {\n if (!Buffer.isBuffer(buf)) throw new TypeError('\"buffer\" argument must be a Buffer instance')\n if (value > max || value < min) throw new RangeError('\"value\" argument is out of bounds')\n if (offset + ext > buf.length) throw new RangeError('Index out of range')\n}\n\nBuffer.prototype.writeUIntLE = function writeUIntLE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset | 0\n byteLength = byteLength | 0\n if (!noAssert) {\n var maxBytes = Math.pow(2, 8 * byteLength) - 1\n checkInt(this, value, offset, byteLength, maxBytes, 0)\n }\n\n var mul = 1\n var i = 0\n this[offset] = value & 0xFF\n while (++i < byteLength && (mul *= 0x100)) {\n this[offset + i] = (value / mul) & 0xFF\n }\n\n return offset + byteLength\n}\n\nBuffer.prototype.writeUIntBE = function writeUIntBE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset | 0\n byteLength = byteLength | 0\n if (!noAssert) {\n var maxBytes = Math.pow(2, 8 * byteLength) - 1\n checkInt(this, value, offset, byteLength, maxBytes, 0)\n }\n\n var i = byteLength - 1\n var mul = 1\n this[offset + i] = value & 0xFF\n while (--i >= 0 && (mul *= 0x100)) {\n this[offset + i] = (value / mul) & 0xFF\n }\n\n return offset + byteLength\n}\n\nBuffer.prototype.writeUInt8 = function writeUInt8 (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 1, 0xff, 0)\n if (!Buffer.TYPED_ARRAY_SUPPORT) value = Math.floor(value)\n this[offset] = (value & 0xff)\n return offset + 1\n}\n\nfunction objectWriteUInt16 (buf, value, offset, littleEndian) {\n if (value < 0) value = 0xffff + value + 1\n for (var i = 0, j = Math.min(buf.length - offset, 2); i < j; ++i) {\n buf[offset + i] = (value & (0xff << (8 * (littleEndian ? i : 1 - i)))) >>>\n (littleEndian ? i : 1 - i) * 8\n }\n}\n\nBuffer.prototype.writeUInt16LE = function writeUInt16LE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 2, 0xffff, 0)\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value & 0xff)\n this[offset + 1] = (value >>> 8)\n } else {\n objectWriteUInt16(this, value, offset, true)\n }\n return offset + 2\n}\n\nBuffer.prototype.writeUInt16BE = function writeUInt16BE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 2, 0xffff, 0)\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value >>> 8)\n this[offset + 1] = (value & 0xff)\n } else {\n objectWriteUInt16(this, value, offset, false)\n }\n return offset + 2\n}\n\nfunction objectWriteUInt32 (buf, value, offset, littleEndian) {\n if (value < 0) value = 0xffffffff + value + 1\n for (var i = 0, j = Math.min(buf.length - offset, 4); i < j; ++i) {\n buf[offset + i] = (value >>> (littleEndian ? i : 3 - i) * 8) & 0xff\n }\n}\n\nBuffer.prototype.writeUInt32LE = function writeUInt32LE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 4, 0xffffffff, 0)\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset + 3] = (value >>> 24)\n this[offset + 2] = (value >>> 16)\n this[offset + 1] = (value >>> 8)\n this[offset] = (value & 0xff)\n } else {\n objectWriteUInt32(this, value, offset, true)\n }\n return offset + 4\n}\n\nBuffer.prototype.writeUInt32BE = function writeUInt32BE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 4, 0xffffffff, 0)\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value >>> 24)\n this[offset + 1] = (value >>> 16)\n this[offset + 2] = (value >>> 8)\n this[offset + 3] = (value & 0xff)\n } else {\n objectWriteUInt32(this, value, offset, false)\n }\n return offset + 4\n}\n\nBuffer.prototype.writeIntLE = function writeIntLE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) {\n var limit = Math.pow(2, 8 * byteLength - 1)\n\n checkInt(this, value, offset, byteLength, limit - 1, -limit)\n }\n\n var i = 0\n var mul = 1\n var sub = 0\n this[offset] = value & 0xFF\n while (++i < byteLength && (mul *= 0x100)) {\n if (value < 0 && sub === 0 && this[offset + i - 1] !== 0) {\n sub = 1\n }\n this[offset + i] = ((value / mul) >> 0) - sub & 0xFF\n }\n\n return offset + byteLength\n}\n\nBuffer.prototype.writeIntBE = function writeIntBE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) {\n var limit = Math.pow(2, 8 * byteLength - 1)\n\n checkInt(this, value, offset, byteLength, limit - 1, -limit)\n }\n\n var i = byteLength - 1\n var mul = 1\n var sub = 0\n this[offset + i] = value & 0xFF\n while (--i >= 0 && (mul *= 0x100)) {\n if (value < 0 && sub === 0 && this[offset + i + 1] !== 0) {\n sub = 1\n }\n this[offset + i] = ((value / mul) >> 0) - sub & 0xFF\n }\n\n return offset + byteLength\n}\n\nBuffer.prototype.writeInt8 = function writeInt8 (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 1, 0x7f, -0x80)\n if (!Buffer.TYPED_ARRAY_SUPPORT) value = Math.floor(value)\n if (value < 0) value = 0xff + value + 1\n this[offset] = (value & 0xff)\n return offset + 1\n}\n\nBuffer.prototype.writeInt16LE = function writeInt16LE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 2, 0x7fff, -0x8000)\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value & 0xff)\n this[offset + 1] = (value >>> 8)\n } else {\n objectWriteUInt16(this, value, offset, true)\n }\n return offset + 2\n}\n\nBuffer.prototype.writeInt16BE = function writeInt16BE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 2, 0x7fff, -0x8000)\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value >>> 8)\n this[offset + 1] = (value & 0xff)\n } else {\n objectWriteUInt16(this, value, offset, false)\n }\n return offset + 2\n}\n\nBuffer.prototype.writeInt32LE = function writeInt32LE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 4, 0x7fffffff, -0x80000000)\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value & 0xff)\n this[offset + 1] = (value >>> 8)\n this[offset + 2] = (value >>> 16)\n this[offset + 3] = (value >>> 24)\n } else {\n objectWriteUInt32(this, value, offset, true)\n }\n return offset + 4\n}\n\nBuffer.prototype.writeInt32BE = function writeInt32BE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 4, 0x7fffffff, -0x80000000)\n if (value < 0) value = 0xffffffff + value + 1\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value >>> 24)\n this[offset + 1] = (value >>> 16)\n this[offset + 2] = (value >>> 8)\n this[offset + 3] = (value & 0xff)\n } else {\n objectWriteUInt32(this, value, offset, false)\n }\n return offset + 4\n}\n\nfunction checkIEEE754 (buf, value, offset, ext, max, min) {\n if (offset + ext > buf.length) throw new RangeError('Index out of range')\n if (offset < 0) throw new RangeError('Index out of range')\n}\n\nfunction writeFloat (buf, value, offset, littleEndian, noAssert) {\n if (!noAssert) {\n checkIEEE754(buf, value, offset, 4, 3.4028234663852886e+38, -3.4028234663852886e+38)\n }\n ieee754.write(buf, value, offset, littleEndian, 23, 4)\n return offset + 4\n}\n\nBuffer.prototype.writeFloatLE = function writeFloatLE (value, offset, noAssert) {\n return writeFloat(this, value, offset, true, noAssert)\n}\n\nBuffer.prototype.writeFloatBE = function writeFloatBE (value, offset, noAssert) {\n return writeFloat(this, value, offset, false, noAssert)\n}\n\nfunction writeDouble (buf, value, offset, littleEndian, noAssert) {\n if (!noAssert) {\n checkIEEE754(buf, value, offset, 8, 1.7976931348623157E+308, -1.7976931348623157E+308)\n }\n ieee754.write(buf, value, offset, littleEndian, 52, 8)\n return offset + 8\n}\n\nBuffer.prototype.writeDoubleLE = function writeDoubleLE (value, offset, noAssert) {\n return writeDouble(this, value, offset, true, noAssert)\n}\n\nBuffer.prototype.writeDoubleBE = function writeDoubleBE (value, offset, noAssert) {\n return writeDouble(this, value, offset, false, noAssert)\n}\n\n// copy(targetBuffer, targetStart=0, sourceStart=0, sourceEnd=buffer.length)\nBuffer.prototype.copy = function copy (target, targetStart, start, end) {\n if (!start) start = 0\n if (!end && end !== 0) end = this.length\n if (targetStart >= target.length) targetStart = target.length\n if (!targetStart) targetStart = 0\n if (end > 0 && end < start) end = start\n\n // Copy 0 bytes; we're done\n if (end === start) return 0\n if (target.length === 0 || this.length === 0) return 0\n\n // Fatal error conditions\n if (targetStart < 0) {\n throw new RangeError('targetStart out of bounds')\n }\n if (start < 0 || start >= this.length) throw new RangeError('sourceStart out of bounds')\n if (end < 0) throw new RangeError('sourceEnd out of bounds')\n\n // Are we oob?\n if (end > this.length) end = this.length\n if (target.length - targetStart < end - start) {\n end = target.length - targetStart + start\n }\n\n var len = end - start\n var i\n\n if (this === target && start < targetStart && targetStart < end) {\n // descending copy from end\n for (i = len - 1; i >= 0; --i) {\n target[i + targetStart] = this[i + start]\n }\n } else if (len < 1000 || !Buffer.TYPED_ARRAY_SUPPORT) {\n // ascending copy from start\n for (i = 0; i < len; ++i) {\n target[i + targetStart] = this[i + start]\n }\n } else {\n Uint8Array.prototype.set.call(\n target,\n this.subarray(start, start + len),\n targetStart\n )\n }\n\n return len\n}\n\n// Usage:\n// buffer.fill(number[, offset[, end]])\n// buffer.fill(buffer[, offset[, end]])\n// buffer.fill(string[, offset[, end]][, encoding])\nBuffer.prototype.fill = function fill (val, start, end, encoding) {\n // Handle string cases:\n if (typeof val === 'string') {\n if (typeof start === 'string') {\n encoding = start\n start = 0\n end = this.length\n } else if (typeof end === 'string') {\n encoding = end\n end = this.length\n }\n if (val.length === 1) {\n var code = val.charCodeAt(0)\n if (code < 256) {\n val = code\n }\n }\n if (encoding !== undefined && typeof encoding !== 'string') {\n throw new TypeError('encoding must be a string')\n }\n if (typeof encoding === 'string' && !Buffer.isEncoding(encoding)) {\n throw new TypeError('Unknown encoding: ' + encoding)\n }\n } else if (typeof val === 'number') {\n val = val & 255\n }\n\n // Invalid ranges are not set to a default, so can range check early.\n if (start < 0 || this.length < start || this.length < end) {\n throw new RangeError('Out of range index')\n }\n\n if (end <= start) {\n return this\n }\n\n start = start >>> 0\n end = end === undefined ? this.length : end >>> 0\n\n if (!val) val = 0\n\n var i\n if (typeof val === 'number') {\n for (i = start; i < end; ++i) {\n this[i] = val\n }\n } else {\n var bytes = Buffer.isBuffer(val)\n ? val\n : utf8ToBytes(new Buffer(val, encoding).toString())\n var len = bytes.length\n for (i = 0; i < end - start; ++i) {\n this[i + start] = bytes[i % len]\n }\n }\n\n return this\n}\n\n// HELPER FUNCTIONS\n// ================\n\nvar INVALID_BASE64_RE = /[^+\\/0-9A-Za-z-_]/g\n\nfunction base64clean (str) {\n // Node strips out invalid characters like \\n and \\t from the string, base64-js does not\n str = stringtrim(str).replace(INVALID_BASE64_RE, '')\n // Node converts strings with length < 2 to ''\n if (str.length < 2) return ''\n // Node allows for non-padded base64 strings (missing trailing ===), base64-js does not\n while (str.length % 4 !== 0) {\n str = str + '='\n }\n return str\n}\n\nfunction stringtrim (str) {\n if (str.trim) return str.trim()\n return str.replace(/^\\s+|\\s+$/g, '')\n}\n\nfunction toHex (n) {\n if (n < 16) return '0' + n.toString(16)\n return n.toString(16)\n}\n\nfunction utf8ToBytes (string, units) {\n units = units || Infinity\n var codePoint\n var length = string.length\n var leadSurrogate = null\n var bytes = []\n\n for (var i = 0; i < length; ++i) {\n codePoint = string.charCodeAt(i)\n\n // is surrogate component\n if (codePoint > 0xD7FF && codePoint < 0xE000) {\n // last char was a lead\n if (!leadSurrogate) {\n // no lead yet\n if (codePoint > 0xDBFF) {\n // unexpected trail\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n continue\n } else if (i + 1 === length) {\n // unpaired lead\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n continue\n }\n\n // valid lead\n leadSurrogate = codePoint\n\n continue\n }\n\n // 2 leads in a row\n if (codePoint < 0xDC00) {\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n leadSurrogate = codePoint\n continue\n }\n\n // valid surrogate pair\n codePoint = (leadSurrogate - 0xD800 << 10 | codePoint - 0xDC00) + 0x10000\n } else if (leadSurrogate) {\n // valid bmp char, but last char was a lead\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n }\n\n leadSurrogate = null\n\n // encode utf8\n if (codePoint < 0x80) {\n if ((units -= 1) < 0) break\n bytes.push(codePoint)\n } else if (codePoint < 0x800) {\n if ((units -= 2) < 0) break\n bytes.push(\n codePoint >> 0x6 | 0xC0,\n codePoint & 0x3F | 0x80\n )\n } else if (codePoint < 0x10000) {\n if ((units -= 3) < 0) break\n bytes.push(\n codePoint >> 0xC | 0xE0,\n codePoint >> 0x6 & 0x3F | 0x80,\n codePoint & 0x3F | 0x80\n )\n } else if (codePoint < 0x110000) {\n if ((units -= 4) < 0) break\n bytes.push(\n codePoint >> 0x12 | 0xF0,\n codePoint >> 0xC & 0x3F | 0x80,\n codePoint >> 0x6 & 0x3F | 0x80,\n codePoint & 0x3F | 0x80\n )\n } else {\n throw new Error('Invalid code point')\n }\n }\n\n return bytes\n}\n\nfunction asciiToBytes (str) {\n var byteArray = []\n for (var i = 0; i < str.length; ++i) {\n // Node's code seems to be doing this and not & 0x7F..\n byteArray.push(str.charCodeAt(i) & 0xFF)\n }\n return byteArray\n}\n\nfunction utf16leToBytes (str, units) {\n var c, hi, lo\n var byteArray = []\n for (var i = 0; i < str.length; ++i) {\n if ((units -= 2) < 0) break\n\n c = str.charCodeAt(i)\n hi = c >> 8\n lo = c % 256\n byteArray.push(lo)\n byteArray.push(hi)\n }\n\n return byteArray\n}\n\nfunction base64ToBytes (str) {\n return base64.toByteArray(base64clean(str))\n}\n\nfunction blitBuffer (src, dst, offset, length) {\n for (var i = 0; i < length; ++i) {\n if ((i + offset >= dst.length) || (i >= src.length)) break\n dst[i + offset] = src[i]\n }\n return i\n}\n\nfunction isnan (val) {\n return val !== val // eslint-disable-line no-self-compare\n}\n","/*!\n * The buffer module from node.js, for the browser.\n *\n * @author Feross Aboukhadijeh \n * @license MIT\n */\n/* eslint-disable no-proto */\n\n'use strict'\n\nconst base64 = require('base64-js')\nconst ieee754 = require('ieee754')\nconst customInspectSymbol =\n (typeof Symbol === 'function' && typeof Symbol['for'] === 'function') // eslint-disable-line dot-notation\n ? Symbol['for']('nodejs.util.inspect.custom') // eslint-disable-line dot-notation\n : null\n\nexports.Buffer = Buffer\nexports.SlowBuffer = SlowBuffer\nexports.INSPECT_MAX_BYTES = 50\n\nconst K_MAX_LENGTH = 0x7fffffff\nexports.kMaxLength = K_MAX_LENGTH\n\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 */\nBuffer.TYPED_ARRAY_SUPPORT = typedArraySupport()\n\nif (!Buffer.TYPED_ARRAY_SUPPORT && typeof console !== 'undefined' &&\n typeof console.error === 'function') {\n console.error(\n 'This browser lacks typed array (Uint8Array) support which is required by ' +\n '`buffer` v5.x. Use `buffer` v4.x if you require old browser support.'\n )\n}\n\nfunction typedArraySupport () {\n // Can typed array instances can be augmented?\n try {\n const arr = new Uint8Array(1)\n const proto = { foo: function () { return 42 } }\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 () {\n if (!Buffer.isBuffer(this)) return undefined\n return this.buffer\n }\n})\n\nObject.defineProperty(Buffer.prototype, 'offset', {\n enumerable: true,\n get: function () {\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 }\n // Return an augmented `Uint8Array` instance\n const buf = new Uint8Array(length)\n Object.setPrototypeOf(buf, Buffer.prototype)\n return buf\n}\n\n/**\n * The Buffer constructor returns instances of `Uint8Array` that have their\n * prototype changed to `Buffer.prototype`. Furthermore, `Buffer` is a subclass of\n * `Uint8Array`, so the returned instances will have all the node `Buffer` methods\n * and the `Uint8Array` methods. Square bracket notation works as expected -- it\n * returns a single octet.\n *\n * The `Uint8Array` prototype remains unmodified.\n */\n\nfunction Buffer (arg, encodingOrOffset, length) {\n // Common case.\n if (typeof arg === 'number') {\n if (typeof encodingOrOffset === 'string') {\n throw new TypeError(\n 'The \"string\" argument must be of type string. Received type number'\n )\n }\n return allocUnsafe(arg)\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(\n 'The first argument must be one of type string, Buffer, ArrayBuffer, Array, ' +\n 'or Array-like Object. Received type ' + (typeof value)\n )\n }\n\n if (isInstance(value, ArrayBuffer) ||\n (value && isInstance(value.buffer, ArrayBuffer))) {\n return fromArrayBuffer(value, encodingOrOffset, length)\n }\n\n if (typeof SharedArrayBuffer !== 'undefined' &&\n (isInstance(value, SharedArrayBuffer) ||\n (value && isInstance(value.buffer, SharedArrayBuffer)))) {\n return fromArrayBuffer(value, encodingOrOffset, length)\n }\n\n if (typeof value === 'number') {\n throw new TypeError(\n 'The \"value\" argument must not be of type number. Received type number'\n )\n }\n\n const valueOf = value.valueOf && value.valueOf()\n if (valueOf != null && valueOf !== value) {\n return Buffer.from(valueOf, encodingOrOffset, length)\n }\n\n const b = fromObject(value)\n if (b) return b\n\n if (typeof Symbol !== 'undefined' && Symbol.toPrimitive != null &&\n typeof value[Symbol.toPrimitive] === 'function') {\n return Buffer.from(value[Symbol.toPrimitive]('string'), encodingOrOffset, length)\n }\n\n throw new TypeError(\n 'The first argument must be one of type string, Buffer, ArrayBuffer, Array, ' +\n 'or Array-like Object. Received type ' + (typeof value)\n )\n}\n\n/**\n * Functionally equivalent to Buffer(arg, encoding) but throws a TypeError\n * if value is a number.\n * Buffer.from(str[, encoding])\n * Buffer.from(array)\n * Buffer.from(buffer)\n * Buffer.from(arrayBuffer[, byteOffset[, length]])\n **/\nBuffer.from = function (value, encodingOrOffset, length) {\n return from(value, encodingOrOffset, length)\n}\n\n// Note: Change prototype *after* Buffer.from is defined to workaround Chrome bug:\n// https://github.com/feross/buffer/pull/148\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 if (size <= 0) {\n return createBuffer(size)\n }\n if (fill !== undefined) {\n // Only pay attention to encoding if it's a string. This\n // prevents accidentally sending in a number that would\n // be interpreted as a start offset.\n return typeof encoding === 'string'\n ? createBuffer(size).fill(fill, encoding)\n : createBuffer(size).fill(fill)\n }\n return createBuffer(size)\n}\n\n/**\n * Creates a new filled Buffer instance.\n * alloc(size[, fill[, encoding]])\n **/\nBuffer.alloc = function (size, fill, encoding) {\n return alloc(size, fill, encoding)\n}\n\nfunction allocUnsafe (size) {\n assertSize(size)\n return createBuffer(size < 0 ? 0 : checked(size) | 0)\n}\n\n/**\n * Equivalent to Buffer(num), by default creates a non-zero-filled Buffer instance.\n * */\nBuffer.allocUnsafe = function (size) {\n return allocUnsafe(size)\n}\n/**\n * Equivalent to SlowBuffer(num), by default creates a non-zero-filled Buffer instance.\n */\nBuffer.allocUnsafeSlow = function (size) {\n return allocUnsafe(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 const length = byteLength(string, encoding) | 0\n let buf = createBuffer(length)\n\n const 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 const length = array.length < 0 ? 0 : checked(array.length) | 0\n const buf = createBuffer(length)\n for (let i = 0; i < length; i += 1) {\n buf[i] = array[i] & 255\n }\n return buf\n}\n\nfunction fromArrayView (arrayView) {\n if (isInstance(arrayView, Uint8Array)) {\n const copy = new Uint8Array(arrayView)\n return fromArrayBuffer(copy.buffer, copy.byteOffset, copy.byteLength)\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 let buf\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 }\n\n // Return an augmented `Uint8Array` instance\n Object.setPrototypeOf(buf, Buffer.prototype)\n\n return buf\n}\n\nfunction fromObject (obj) {\n if (Buffer.isBuffer(obj)) {\n const len = checked(obj.length) | 0\n const 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 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 ' +\n 'size: 0x' + K_MAX_LENGTH.toString(16) + ' bytes')\n }\n return length | 0\n}\n\nfunction SlowBuffer (length) {\n if (+length != length) { // eslint-disable-line eqeqeq\n length = 0\n }\n return Buffer.alloc(+length)\n}\n\nBuffer.isBuffer = function isBuffer (b) {\n return b != null && b._isBuffer === true &&\n 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 if (!Buffer.isBuffer(a) || !Buffer.isBuffer(b)) {\n throw new TypeError(\n 'The \"buf1\", \"buf2\" arguments must be one of type Buffer or Uint8Array'\n )\n }\n\n if (a === b) return 0\n\n let x = a.length\n let y = b.length\n\n for (let i = 0, len = Math.min(x, y); i < len; ++i) {\n if (a[i] !== b[i]) {\n x = a[i]\n y = b[i]\n break\n }\n }\n\n if (x < y) return -1\n if (y < x) return 1\n return 0\n}\n\nBuffer.isEncoding = function isEncoding (encoding) {\n switch (String(encoding).toLowerCase()) {\n case 'hex':\n case 'utf8':\n case 'utf-8':\n case 'ascii':\n case 'latin1':\n case 'binary':\n case 'base64':\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return true\n default:\n return false\n }\n}\n\nBuffer.concat = function concat (list, length) {\n if (!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 let i\n if (length === undefined) {\n length = 0\n for (i = 0; i < list.length; ++i) {\n length += list[i].length\n }\n }\n\n const buffer = Buffer.allocUnsafe(length)\n let pos = 0\n for (i = 0; i < list.length; ++i) {\n let buf = list[i]\n if (isInstance(buf, Uint8Array)) {\n if (pos + buf.length > buffer.length) {\n if (!Buffer.isBuffer(buf)) buf = Buffer.from(buf)\n buf.copy(buffer, pos)\n } else {\n Uint8Array.prototype.set.call(\n buffer,\n buf,\n pos\n )\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 pos += buf.length\n }\n return buffer\n}\n\nfunction byteLength (string, encoding) {\n if (Buffer.isBuffer(string)) {\n return string.length\n }\n if (ArrayBuffer.isView(string) || isInstance(string, ArrayBuffer)) {\n return string.byteLength\n }\n if (typeof string !== 'string') {\n throw new TypeError(\n 'The \"string\" argument must be one of type string, Buffer, or ArrayBuffer. ' +\n 'Received type ' + typeof string\n )\n }\n\n const len = string.length\n const mustMatch = (arguments.length > 2 && arguments[2] === true)\n if (!mustMatch && len === 0) return 0\n\n // Use a for loop to avoid recursion\n let loweredCase = false\n for (;;) {\n switch (encoding) {\n case 'ascii':\n case 'latin1':\n case 'binary':\n return len\n case 'utf8':\n case 'utf-8':\n return utf8ToBytes(string).length\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return len * 2\n case 'hex':\n return len >>> 1\n case 'base64':\n return base64ToBytes(string).length\n default:\n if (loweredCase) {\n return mustMatch ? -1 : utf8ToBytes(string).length // assume utf8\n }\n encoding = ('' + encoding).toLowerCase()\n loweredCase = true\n }\n }\n}\nBuffer.byteLength = byteLength\n\nfunction slowToString (encoding, start, end) {\n let loweredCase = false\n\n // No need to verify that \"this.length <= MAX_UINT32\" since it's a read-only\n // property of a typed array.\n\n // This behaves neither like String nor Uint8Array in that we set start/end\n // to their upper/lower bounds if the value passed is out of range.\n // undefined is handled specially as per ECMA-262 6th Edition,\n // Section 13.3.3.7 Runtime Semantics: KeyedBindingInitialization.\n if (start === undefined || start < 0) {\n start = 0\n }\n // Return early if start > this.length. Done here to prevent potential uint32\n // coercion fail below.\n if (start > this.length) {\n return ''\n }\n\n if (end === undefined || end > this.length) {\n end = this.length\n }\n\n if (end <= 0) {\n return ''\n }\n\n // Force coercion to uint32. This will also coerce falsey/NaN values to 0.\n end >>>= 0\n start >>>= 0\n\n if (end <= start) {\n return ''\n }\n\n if (!encoding) encoding = 'utf8'\n\n while (true) {\n switch (encoding) {\n case 'hex':\n return hexSlice(this, start, end)\n\n case 'utf8':\n case 'utf-8':\n return utf8Slice(this, start, end)\n\n case 'ascii':\n return asciiSlice(this, start, end)\n\n case 'latin1':\n case 'binary':\n return latin1Slice(this, start, end)\n\n case 'base64':\n return base64Slice(this, start, end)\n\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return utf16leSlice(this, start, end)\n\n default:\n if (loweredCase) throw new TypeError('Unknown encoding: ' + encoding)\n encoding = (encoding + '').toLowerCase()\n loweredCase = true\n }\n }\n}\n\n// 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\nBuffer.prototype._isBuffer = true\n\nfunction swap (b, n, m) {\n const i = b[n]\n b[n] = b[m]\n b[m] = i\n}\n\nBuffer.prototype.swap16 = function swap16 () {\n const len = this.length\n if (len % 2 !== 0) {\n throw new RangeError('Buffer size must be a multiple of 16-bits')\n }\n for (let i = 0; i < len; i += 2) {\n swap(this, i, i + 1)\n }\n return this\n}\n\nBuffer.prototype.swap32 = function swap32 () {\n const len = this.length\n if (len % 4 !== 0) {\n throw new RangeError('Buffer size must be a multiple of 32-bits')\n }\n for (let i = 0; i < len; i += 4) {\n swap(this, i, i + 3)\n swap(this, i + 1, i + 2)\n }\n return this\n}\n\nBuffer.prototype.swap64 = function swap64 () {\n const len = this.length\n if (len % 8 !== 0) {\n throw new RangeError('Buffer size must be a multiple of 64-bits')\n }\n for (let i = 0; i < len; i += 8) {\n swap(this, i, i + 7)\n swap(this, i + 1, i + 6)\n swap(this, i + 2, i + 5)\n swap(this, i + 3, i + 4)\n }\n return this\n}\n\nBuffer.prototype.toString = function toString () {\n const 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 let str = ''\n const 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}\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 if (!Buffer.isBuffer(target)) {\n throw new TypeError(\n 'The \"target\" argument must be one of type Buffer or Uint8Array. ' +\n 'Received type ' + (typeof target)\n )\n }\n\n if (start === undefined) {\n start = 0\n }\n if (end === undefined) {\n end = target ? target.length : 0\n }\n if (thisStart === undefined) {\n thisStart = 0\n }\n if (thisEnd === undefined) {\n thisEnd = this.length\n }\n\n if (start < 0 || end > target.length || thisStart < 0 || thisEnd > this.length) {\n throw new RangeError('out of range index')\n }\n\n if (thisStart >= thisEnd && start >= end) {\n return 0\n }\n if (thisStart >= thisEnd) {\n return -1\n }\n if (start >= end) {\n return 1\n }\n\n start >>>= 0\n end >>>= 0\n thisStart >>>= 0\n thisEnd >>>= 0\n\n if (this === target) return 0\n\n let x = thisEnd - thisStart\n let y = end - start\n const len = Math.min(x, y)\n\n const thisCopy = this.slice(thisStart, thisEnd)\n const targetCopy = target.slice(start, end)\n\n for (let i = 0; i < len; ++i) {\n if (thisCopy[i] !== targetCopy[i]) {\n x = thisCopy[i]\n y = targetCopy[i]\n break\n }\n }\n\n if (x < y) return -1\n if (y < x) return 1\n return 0\n}\n\n// Finds either the first index of `val` in `buffer` at offset >= `byteOffset`,\n// OR the last index of `val` in `buffer` at offset <= `byteOffset`.\n//\n// Arguments:\n// - buffer - a Buffer to search\n// - val - a string, Buffer, or number\n// - byteOffset - an index into `buffer`; will be clamped to an int32\n// - encoding - an optional encoding, relevant is val is a string\n// - dir - true for indexOf, false for lastIndexOf\nfunction bidirectionalIndexOf (buffer, val, byteOffset, encoding, dir) {\n // Empty buffer means no match\n if (buffer.length === 0) return -1\n\n // Normalize byteOffset\n if (typeof byteOffset === 'string') {\n encoding = byteOffset\n byteOffset = 0\n } else if (byteOffset > 0x7fffffff) {\n byteOffset = 0x7fffffff\n } else if (byteOffset < -0x80000000) {\n byteOffset = -0x80000000\n }\n byteOffset = +byteOffset // Coerce to Number.\n if (numberIsNaN(byteOffset)) {\n // byteOffset: it it's undefined, null, NaN, \"foo\", etc, search whole buffer\n byteOffset = dir ? 0 : (buffer.length - 1)\n }\n\n // Normalize byteOffset: negative offsets start from the end of the buffer\n if (byteOffset < 0) byteOffset = buffer.length + byteOffset\n if (byteOffset >= buffer.length) {\n if (dir) return -1\n else byteOffset = buffer.length - 1\n } else if (byteOffset < 0) {\n if (dir) byteOffset = 0\n else return -1\n }\n\n // Normalize val\n if (typeof val === 'string') {\n val = Buffer.from(val, encoding)\n }\n\n // Finally, search either indexOf (if dir is true) or lastIndexOf\n if (Buffer.isBuffer(val)) {\n // Special case: looking for empty string/buffer always fails\n if (val.length === 0) {\n return -1\n }\n return arrayIndexOf(buffer, val, byteOffset, encoding, dir)\n } else if (typeof val === 'number') {\n val = val & 0xFF // Search for a byte value [0-255]\n if (typeof Uint8Array.prototype.indexOf === 'function') {\n if (dir) {\n return Uint8Array.prototype.indexOf.call(buffer, val, byteOffset)\n } else {\n return Uint8Array.prototype.lastIndexOf.call(buffer, val, byteOffset)\n }\n }\n return arrayIndexOf(buffer, [val], byteOffset, encoding, dir)\n }\n\n throw new TypeError('val must be string, number or Buffer')\n}\n\nfunction arrayIndexOf (arr, val, byteOffset, encoding, dir) {\n let indexSize = 1\n let arrLength = arr.length\n let valLength = val.length\n\n if (encoding !== undefined) {\n encoding = String(encoding).toLowerCase()\n if (encoding === 'ucs2' || encoding === 'ucs-2' ||\n encoding === 'utf16le' || encoding === 'utf-16le') {\n if (arr.length < 2 || val.length < 2) {\n return -1\n }\n indexSize = 2\n arrLength /= 2\n valLength /= 2\n byteOffset /= 2\n }\n }\n\n function read (buf, i) {\n if (indexSize === 1) {\n return buf[i]\n } else {\n return buf.readUInt16BE(i * indexSize)\n }\n }\n\n let i\n if (dir) {\n let foundIndex = -1\n for (i = byteOffset; i < arrLength; i++) {\n if (read(arr, i) === read(val, foundIndex === -1 ? 0 : i - foundIndex)) {\n if (foundIndex === -1) foundIndex = i\n if (i - foundIndex + 1 === valLength) return foundIndex * indexSize\n } else {\n if (foundIndex !== -1) i -= i - foundIndex\n foundIndex = -1\n }\n }\n } else {\n if (byteOffset + valLength > arrLength) byteOffset = arrLength - valLength\n for (i = byteOffset; i >= 0; i--) {\n let found = true\n for (let j = 0; j < valLength; j++) {\n if (read(arr, i + j) !== read(val, j)) {\n found = false\n break\n }\n }\n if (found) return i\n }\n }\n\n return -1\n}\n\nBuffer.prototype.includes = function includes (val, byteOffset, encoding) {\n return this.indexOf(val, byteOffset, encoding) !== -1\n}\n\nBuffer.prototype.indexOf = function indexOf (val, byteOffset, encoding) {\n return bidirectionalIndexOf(this, val, byteOffset, encoding, true)\n}\n\nBuffer.prototype.lastIndexOf = function lastIndexOf (val, byteOffset, encoding) {\n return bidirectionalIndexOf(this, val, byteOffset, encoding, false)\n}\n\nfunction hexWrite (buf, string, offset, length) {\n offset = Number(offset) || 0\n const remaining = buf.length - offset\n if (!length) {\n length = remaining\n } else {\n length = Number(length)\n if (length > remaining) {\n length = remaining\n }\n }\n\n const strLen = string.length\n\n if (length > strLen / 2) {\n length = strLen / 2\n }\n let i\n for (i = 0; i < length; ++i) {\n const parsed = parseInt(string.substr(i * 2, 2), 16)\n if (numberIsNaN(parsed)) return i\n buf[offset + i] = parsed\n }\n return i\n}\n\nfunction utf8Write (buf, string, offset, length) {\n return blitBuffer(utf8ToBytes(string, buf.length - offset), buf, offset, length)\n}\n\nfunction asciiWrite (buf, string, offset, length) {\n return blitBuffer(asciiToBytes(string), buf, offset, length)\n}\n\nfunction base64Write (buf, string, offset, length) {\n return blitBuffer(base64ToBytes(string), buf, offset, length)\n}\n\nfunction ucs2Write (buf, string, offset, length) {\n return blitBuffer(utf16leToBytes(string, buf.length - offset), buf, offset, length)\n}\n\nBuffer.prototype.write = function write (string, offset, length, encoding) {\n // Buffer#write(string)\n if (offset === undefined) {\n encoding = 'utf8'\n length = this.length\n offset = 0\n // Buffer#write(string, encoding)\n } else if (length === undefined && typeof offset === 'string') {\n encoding = offset\n length = this.length\n offset = 0\n // Buffer#write(string, offset[, length][, encoding])\n } else if (isFinite(offset)) {\n offset = offset >>> 0\n if (isFinite(length)) {\n length = length >>> 0\n if (encoding === undefined) encoding = 'utf8'\n } else {\n encoding = length\n length = undefined\n }\n } else {\n throw new Error(\n 'Buffer.write(string, encoding, offset[, length]) is no longer supported'\n )\n }\n\n const remaining = this.length - offset\n if (length === undefined || length > remaining) length = remaining\n\n if ((string.length > 0 && (length < 0 || offset < 0)) || offset > this.length) {\n throw new RangeError('Attempt to write outside buffer bounds')\n }\n\n if (!encoding) encoding = 'utf8'\n\n let loweredCase = false\n for (;;) {\n switch (encoding) {\n case 'hex':\n return hexWrite(this, string, offset, length)\n\n case 'utf8':\n case 'utf-8':\n return utf8Write(this, string, offset, length)\n\n case 'ascii':\n 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 const res = []\n\n let i = start\n while (i < end) {\n const firstByte = buf[i]\n let codePoint = null\n let bytesPerSequence = (firstByte > 0xEF)\n ? 4\n : (firstByte > 0xDF)\n ? 3\n : (firstByte > 0xBF)\n ? 2\n : 1\n\n if (i + bytesPerSequence <= end) {\n let secondByte, thirdByte, fourthByte, tempCodePoint\n\n switch (bytesPerSequence) {\n case 1:\n if (firstByte < 0x80) {\n codePoint = firstByte\n }\n break\n case 2:\n secondByte = buf[i + 1]\n if ((secondByte & 0xC0) === 0x80) {\n tempCodePoint = (firstByte & 0x1F) << 0x6 | (secondByte & 0x3F)\n if (tempCodePoint > 0x7F) {\n codePoint = tempCodePoint\n }\n }\n break\n case 3:\n secondByte = buf[i + 1]\n thirdByte = buf[i + 2]\n if ((secondByte & 0xC0) === 0x80 && (thirdByte & 0xC0) === 0x80) {\n tempCodePoint = (firstByte & 0xF) << 0xC | (secondByte & 0x3F) << 0x6 | (thirdByte & 0x3F)\n if (tempCodePoint > 0x7FF && (tempCodePoint < 0xD800 || tempCodePoint > 0xDFFF)) {\n codePoint = tempCodePoint\n }\n }\n break\n case 4:\n secondByte = buf[i + 1]\n thirdByte = buf[i + 2]\n fourthByte = buf[i + 3]\n if ((secondByte & 0xC0) === 0x80 && (thirdByte & 0xC0) === 0x80 && (fourthByte & 0xC0) === 0x80) {\n tempCodePoint = (firstByte & 0xF) << 0x12 | (secondByte & 0x3F) << 0xC | (thirdByte & 0x3F) << 0x6 | (fourthByte & 0x3F)\n if (tempCodePoint > 0xFFFF && tempCodePoint < 0x110000) {\n codePoint = tempCodePoint\n }\n }\n }\n }\n\n if (codePoint === null) {\n // we did not generate a valid codePoint so insert a\n // replacement char (U+FFFD) and advance only 1 byte\n codePoint = 0xFFFD\n bytesPerSequence = 1\n } else if (codePoint > 0xFFFF) {\n // encode to utf16 (surrogate pair dance)\n codePoint -= 0x10000\n res.push(codePoint >>> 10 & 0x3FF | 0xD800)\n codePoint = 0xDC00 | codePoint & 0x3FF\n }\n\n res.push(codePoint)\n i += bytesPerSequence\n }\n\n return decodeCodePointsArray(res)\n}\n\n// Based on http://stackoverflow.com/a/22747272/680742, the browser with\n// the lowest limit is Chrome, with 0x10000 args.\n// We go 1 magnitude less, for safety\nconst MAX_ARGUMENTS_LENGTH = 0x1000\n\nfunction decodeCodePointsArray (codePoints) {\n const len = codePoints.length\n if (len <= MAX_ARGUMENTS_LENGTH) {\n return String.fromCharCode.apply(String, codePoints) // avoid extra slice()\n }\n\n // Decode in chunks to avoid \"call stack size exceeded\".\n let res = ''\n let i = 0\n while (i < len) {\n res += String.fromCharCode.apply(\n String,\n codePoints.slice(i, i += MAX_ARGUMENTS_LENGTH)\n )\n }\n return res\n}\n\nfunction asciiSlice (buf, start, end) {\n let ret = ''\n end = Math.min(buf.length, end)\n\n for (let i = start; i < end; ++i) {\n ret += String.fromCharCode(buf[i] & 0x7F)\n }\n return ret\n}\n\nfunction latin1Slice (buf, start, end) {\n let ret = ''\n end = Math.min(buf.length, end)\n\n for (let i = start; i < end; ++i) {\n ret += String.fromCharCode(buf[i])\n }\n return ret\n}\n\nfunction hexSlice (buf, start, end) {\n const len = buf.length\n\n if (!start || start < 0) start = 0\n if (!end || end < 0 || end > len) end = len\n\n let out = ''\n for (let i = start; i < end; ++i) {\n out += hexSliceLookupTable[buf[i]]\n }\n return out\n}\n\nfunction utf16leSlice (buf, start, end) {\n const bytes = buf.slice(start, end)\n let res = ''\n // If bytes.length is odd, the last 8 bits must be ignored (same as node.js)\n for (let i = 0; i < bytes.length - 1; i += 2) {\n res += String.fromCharCode(bytes[i] + (bytes[i + 1] * 256))\n }\n return res\n}\n\nBuffer.prototype.slice = function slice (start, end) {\n const len = this.length\n start = ~~start\n end = end === undefined ? len : ~~end\n\n if (start < 0) {\n start += len\n if (start < 0) start = 0\n } else if (start > len) {\n start = len\n }\n\n if (end < 0) {\n end += len\n if (end < 0) end = 0\n } else if (end > len) {\n end = len\n }\n\n if (end < start) end = start\n\n const newBuf = this.subarray(start, end)\n // Return an augmented `Uint8Array` instance\n Object.setPrototypeOf(newBuf, Buffer.prototype)\n\n return newBuf\n}\n\n/*\n * Need to make sure that buffer isn't trying to write out of bounds.\n */\nfunction checkOffset (offset, ext, length) {\n if ((offset % 1) !== 0 || offset < 0) throw new RangeError('offset is not uint')\n if (offset + ext > length) throw new RangeError('Trying to access beyond buffer length')\n}\n\nBuffer.prototype.readUintLE =\nBuffer.prototype.readUIntLE = function readUIntLE (offset, byteLength, noAssert) {\n offset = offset >>> 0\n byteLength = byteLength >>> 0\n if (!noAssert) checkOffset(offset, byteLength, this.length)\n\n let val = this[offset]\n let mul = 1\n let i = 0\n while (++i < byteLength && (mul *= 0x100)) {\n val += this[offset + i] * mul\n }\n\n return val\n}\n\nBuffer.prototype.readUintBE =\nBuffer.prototype.readUIntBE = function readUIntBE (offset, byteLength, noAssert) {\n offset = offset >>> 0\n byteLength = byteLength >>> 0\n if (!noAssert) {\n checkOffset(offset, byteLength, this.length)\n }\n\n let val = this[offset + --byteLength]\n let mul = 1\n while (byteLength > 0 && (mul *= 0x100)) {\n val += this[offset + --byteLength] * mul\n }\n\n return val\n}\n\nBuffer.prototype.readUint8 =\nBuffer.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 =\nBuffer.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 =\nBuffer.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 =\nBuffer.prototype.readUInt32LE = function readUInt32LE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 4, this.length)\n\n return ((this[offset]) |\n (this[offset + 1] << 8) |\n (this[offset + 2] << 16)) +\n (this[offset + 3] * 0x1000000)\n}\n\nBuffer.prototype.readUint32BE =\nBuffer.prototype.readUInt32BE = function readUInt32BE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 4, this.length)\n\n return (this[offset] * 0x1000000) +\n ((this[offset + 1] << 16) |\n (this[offset + 2] << 8) |\n this[offset + 3])\n}\n\nBuffer.prototype.readBigUInt64LE = defineBigIntMethod(function readBigUInt64LE (offset) {\n offset = offset >>> 0\n validateNumber(offset, 'offset')\n const first = this[offset]\n const last = this[offset + 7]\n if (first === undefined || last === undefined) {\n boundsError(offset, this.length - 8)\n }\n\n const lo = first +\n this[++offset] * 2 ** 8 +\n this[++offset] * 2 ** 16 +\n this[++offset] * 2 ** 24\n\n const hi = this[++offset] +\n this[++offset] * 2 ** 8 +\n this[++offset] * 2 ** 16 +\n last * 2 ** 24\n\n return BigInt(lo) + (BigInt(hi) << BigInt(32))\n})\n\nBuffer.prototype.readBigUInt64BE = defineBigIntMethod(function readBigUInt64BE (offset) {\n offset = offset >>> 0\n validateNumber(offset, 'offset')\n const first = this[offset]\n const last = this[offset + 7]\n if (first === undefined || last === undefined) {\n boundsError(offset, this.length - 8)\n }\n\n const hi = first * 2 ** 24 +\n this[++offset] * 2 ** 16 +\n this[++offset] * 2 ** 8 +\n this[++offset]\n\n const lo = this[++offset] * 2 ** 24 +\n this[++offset] * 2 ** 16 +\n this[++offset] * 2 ** 8 +\n last\n\n return (BigInt(hi) << BigInt(32)) + BigInt(lo)\n})\n\nBuffer.prototype.readIntLE = function readIntLE (offset, byteLength, noAssert) {\n offset = offset >>> 0\n byteLength = byteLength >>> 0\n if (!noAssert) checkOffset(offset, byteLength, this.length)\n\n let val = this[offset]\n let mul = 1\n let i = 0\n while (++i < byteLength && (mul *= 0x100)) {\n val += this[offset + i] * mul\n }\n mul *= 0x80\n\n if (val >= mul) val -= Math.pow(2, 8 * byteLength)\n\n return val\n}\n\nBuffer.prototype.readIntBE = function readIntBE (offset, byteLength, noAssert) {\n offset = offset >>> 0\n byteLength = byteLength >>> 0\n if (!noAssert) checkOffset(offset, byteLength, this.length)\n\n let i = byteLength\n let mul = 1\n let val = this[offset + --i]\n while (i > 0 && (mul *= 0x100)) {\n val += this[offset + --i] * mul\n }\n mul *= 0x80\n\n if (val >= mul) val -= Math.pow(2, 8 * byteLength)\n\n return val\n}\n\nBuffer.prototype.readInt8 = function readInt8 (offset, noAssert) {\n 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 const 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 const 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\n return (this[offset]) |\n (this[offset + 1] << 8) |\n (this[offset + 2] << 16) |\n (this[offset + 3] << 24)\n}\n\nBuffer.prototype.readInt32BE = function readInt32BE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 4, this.length)\n\n return (this[offset] << 24) |\n (this[offset + 1] << 16) |\n (this[offset + 2] << 8) |\n (this[offset + 3])\n}\n\nBuffer.prototype.readBigInt64LE = defineBigIntMethod(function readBigInt64LE (offset) {\n offset = offset >>> 0\n validateNumber(offset, 'offset')\n const first = this[offset]\n const last = this[offset + 7]\n if (first === undefined || last === undefined) {\n boundsError(offset, this.length - 8)\n }\n\n const val = this[offset + 4] +\n this[offset + 5] * 2 ** 8 +\n this[offset + 6] * 2 ** 16 +\n (last << 24) // Overflow\n\n return (BigInt(val) << BigInt(32)) +\n BigInt(first +\n this[++offset] * 2 ** 8 +\n this[++offset] * 2 ** 16 +\n this[++offset] * 2 ** 24)\n})\n\nBuffer.prototype.readBigInt64BE = defineBigIntMethod(function readBigInt64BE (offset) {\n offset = offset >>> 0\n validateNumber(offset, 'offset')\n const first = this[offset]\n const last = this[offset + 7]\n if (first === undefined || last === undefined) {\n boundsError(offset, this.length - 8)\n }\n\n const val = (first << 24) + // Overflow\n this[++offset] * 2 ** 16 +\n this[++offset] * 2 ** 8 +\n this[++offset]\n\n return (BigInt(val) << BigInt(32)) +\n BigInt(this[++offset] * 2 ** 24 +\n this[++offset] * 2 ** 16 +\n this[++offset] * 2 ** 8 +\n last)\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 =\nBuffer.prototype.writeUIntLE = function writeUIntLE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset >>> 0\n byteLength = byteLength >>> 0\n if (!noAssert) {\n const maxBytes = Math.pow(2, 8 * byteLength) - 1\n checkInt(this, value, offset, byteLength, maxBytes, 0)\n }\n\n let mul = 1\n let i = 0\n this[offset] = value & 0xFF\n while (++i < byteLength && (mul *= 0x100)) {\n this[offset + i] = (value / mul) & 0xFF\n }\n\n return offset + byteLength\n}\n\nBuffer.prototype.writeUintBE =\nBuffer.prototype.writeUIntBE = function writeUIntBE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset >>> 0\n byteLength = byteLength >>> 0\n if (!noAssert) {\n const maxBytes = Math.pow(2, 8 * byteLength) - 1\n checkInt(this, value, offset, byteLength, maxBytes, 0)\n }\n\n let i = byteLength - 1\n let mul = 1\n this[offset + i] = value & 0xFF\n while (--i >= 0 && (mul *= 0x100)) {\n this[offset + i] = (value / mul) & 0xFF\n }\n\n return offset + byteLength\n}\n\nBuffer.prototype.writeUint8 =\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 this[offset] = (value & 0xff)\n return offset + 1\n}\n\nBuffer.prototype.writeUint16LE =\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 this[offset] = (value & 0xff)\n this[offset + 1] = (value >>> 8)\n return offset + 2\n}\n\nBuffer.prototype.writeUint16BE =\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 this[offset] = (value >>> 8)\n this[offset + 1] = (value & 0xff)\n return offset + 2\n}\n\nBuffer.prototype.writeUint32LE =\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 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 =\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 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 wrtBigUInt64LE (buf, value, offset, min, max) {\n checkIntBI(value, min, max, buf, offset, 7)\n\n let lo = Number(value & BigInt(0xffffffff))\n buf[offset++] = lo\n lo = lo >> 8\n buf[offset++] = lo\n lo = lo >> 8\n buf[offset++] = lo\n lo = lo >> 8\n buf[offset++] = lo\n let hi = Number(value >> BigInt(32) & BigInt(0xffffffff))\n buf[offset++] = hi\n hi = hi >> 8\n buf[offset++] = hi\n hi = hi >> 8\n buf[offset++] = hi\n hi = hi >> 8\n buf[offset++] = hi\n return offset\n}\n\nfunction wrtBigUInt64BE (buf, value, offset, min, max) {\n checkIntBI(value, min, max, buf, offset, 7)\n\n let lo = Number(value & BigInt(0xffffffff))\n buf[offset + 7] = lo\n lo = lo >> 8\n buf[offset + 6] = lo\n lo = lo >> 8\n buf[offset + 5] = lo\n lo = lo >> 8\n buf[offset + 4] = lo\n let hi = Number(value >> BigInt(32) & BigInt(0xffffffff))\n buf[offset + 3] = hi\n hi = hi >> 8\n buf[offset + 2] = hi\n hi = hi >> 8\n buf[offset + 1] = hi\n hi = hi >> 8\n buf[offset] = hi\n return offset + 8\n}\n\nBuffer.prototype.writeBigUInt64LE = defineBigIntMethod(function writeBigUInt64LE (value, offset = 0) {\n return wrtBigUInt64LE(this, value, offset, BigInt(0), BigInt('0xffffffffffffffff'))\n})\n\nBuffer.prototype.writeBigUInt64BE = defineBigIntMethod(function writeBigUInt64BE (value, offset = 0) {\n return wrtBigUInt64BE(this, value, offset, BigInt(0), BigInt('0xffffffffffffffff'))\n})\n\nBuffer.prototype.writeIntLE = function writeIntLE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) {\n const limit = Math.pow(2, (8 * byteLength) - 1)\n\n checkInt(this, value, offset, byteLength, limit - 1, -limit)\n }\n\n let i = 0\n let mul = 1\n let sub = 0\n this[offset] = value & 0xFF\n while (++i < byteLength && (mul *= 0x100)) {\n if (value < 0 && sub === 0 && this[offset + i - 1] !== 0) {\n sub = 1\n }\n this[offset + i] = ((value / mul) >> 0) - sub & 0xFF\n }\n\n return offset + byteLength\n}\n\nBuffer.prototype.writeIntBE = function writeIntBE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) {\n const limit = Math.pow(2, (8 * byteLength) - 1)\n\n checkInt(this, value, offset, byteLength, limit - 1, -limit)\n }\n\n let i = byteLength - 1\n let mul = 1\n let sub = 0\n this[offset + i] = value & 0xFF\n while (--i >= 0 && (mul *= 0x100)) {\n if (value < 0 && sub === 0 && this[offset + i + 1] !== 0) {\n sub = 1\n }\n this[offset + i] = ((value / mul) >> 0) - sub & 0xFF\n }\n\n return offset + byteLength\n}\n\nBuffer.prototype.writeInt8 = function writeInt8 (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 1, 0x7f, -0x80)\n if (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\nBuffer.prototype.writeBigInt64LE = defineBigIntMethod(function writeBigInt64LE (value, offset = 0) {\n return wrtBigUInt64LE(this, value, offset, -BigInt('0x8000000000000000'), BigInt('0x7fffffffffffffff'))\n})\n\nBuffer.prototype.writeBigInt64BE = defineBigIntMethod(function writeBigInt64BE (value, offset = 0) {\n return wrtBigUInt64BE(this, value, offset, -BigInt('0x8000000000000000'), BigInt('0x7fffffffffffffff'))\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 if (!noAssert) {\n checkIEEE754(buf, value, offset, 4, 3.4028234663852886e+38, -3.4028234663852886e+38)\n }\n ieee754.write(buf, value, offset, littleEndian, 23, 4)\n return offset + 4\n}\n\nBuffer.prototype.writeFloatLE = function writeFloatLE (value, offset, noAssert) {\n return writeFloat(this, value, offset, true, noAssert)\n}\n\nBuffer.prototype.writeFloatBE = function writeFloatBE (value, offset, noAssert) {\n return writeFloat(this, value, offset, false, noAssert)\n}\n\nfunction writeDouble (buf, value, offset, littleEndian, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) {\n checkIEEE754(buf, value, offset, 8, 1.7976931348623157E+308, -1.7976931348623157E+308)\n }\n ieee754.write(buf, value, offset, littleEndian, 52, 8)\n return offset + 8\n}\n\nBuffer.prototype.writeDoubleLE = function writeDoubleLE (value, offset, noAssert) {\n return writeDouble(this, value, offset, true, noAssert)\n}\n\nBuffer.prototype.writeDoubleBE = function writeDoubleBE (value, offset, noAssert) {\n return writeDouble(this, value, offset, false, noAssert)\n}\n\n// copy(targetBuffer, targetStart=0, sourceStart=0, sourceEnd=buffer.length)\nBuffer.prototype.copy = function copy (target, targetStart, start, end) {\n if (!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\n\n // Copy 0 bytes; we're done\n if (end === start) return 0\n if (target.length === 0 || this.length === 0) return 0\n\n // Fatal error conditions\n if (targetStart < 0) {\n throw new RangeError('targetStart out of bounds')\n }\n if (start < 0 || start >= this.length) throw new RangeError('Index out of range')\n if (end < 0) throw new RangeError('sourceEnd out of bounds')\n\n // Are we oob?\n if (end > this.length) end = this.length\n if (target.length - targetStart < end - start) {\n end = target.length - targetStart + start\n }\n\n const 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(\n target,\n this.subarray(start, end),\n targetStart\n )\n }\n\n return len\n}\n\n// Usage:\n// buffer.fill(number[, offset[, end]])\n// buffer.fill(buffer[, offset[, end]])\n// buffer.fill(string[, offset[, end]][, encoding])\nBuffer.prototype.fill = function fill (val, start, end, encoding) {\n // Handle string cases:\n if (typeof val === 'string') {\n if (typeof start === 'string') {\n encoding = start\n start = 0\n end = this.length\n } else if (typeof end === 'string') {\n encoding = end\n end = this.length\n }\n if (encoding !== undefined && typeof encoding !== 'string') {\n throw new TypeError('encoding must be a string')\n }\n if (typeof encoding === 'string' && !Buffer.isEncoding(encoding)) {\n throw new TypeError('Unknown encoding: ' + encoding)\n }\n if (val.length === 1) {\n const code = val.charCodeAt(0)\n if ((encoding === 'utf8' && code < 128) ||\n 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 }\n\n // Invalid ranges are not set to a default, so can range check early.\n if (start < 0 || this.length < start || this.length < end) {\n throw new RangeError('Out of range index')\n }\n\n if (end <= start) {\n return this\n }\n\n start = start >>> 0\n end = end === undefined ? this.length : end >>> 0\n\n if (!val) val = 0\n\n let i\n if (typeof val === 'number') {\n for (i = start; i < end; ++i) {\n this[i] = val\n }\n } else {\n const bytes = Buffer.isBuffer(val)\n ? val\n : Buffer.from(val, encoding)\n const len = bytes.length\n if (len === 0) {\n throw new TypeError('The value \"' + val +\n '\" is invalid for argument \"value\"')\n }\n for (i = 0; i < end - start; ++i) {\n this[i + start] = bytes[i % len]\n }\n }\n\n return this\n}\n\n// CUSTOM ERRORS\n// =============\n\n// Simplified versions from Node, changed for Buffer-only usage\nconst errors = {}\nfunction E (sym, getMessage, Base) {\n errors[sym] = class NodeError extends Base {\n constructor () {\n super()\n\n Object.defineProperty(this, 'message', {\n value: getMessage.apply(this, arguments),\n writable: true,\n configurable: true\n })\n\n // Add the error code to the name to include it in the stack trace.\n this.name = `${this.name} [${sym}]`\n // Access the stack to generate the error message including the error code\n // from the name.\n this.stack // eslint-disable-line no-unused-expressions\n // Reset the name to the actual name.\n delete this.name\n }\n\n get code () {\n return sym\n }\n\n set code (value) {\n Object.defineProperty(this, 'code', {\n configurable: true,\n enumerable: true,\n value,\n writable: true\n })\n }\n\n toString () {\n return `${this.name} [${sym}]: ${this.message}`\n }\n }\n}\n\nE('ERR_BUFFER_OUT_OF_BOUNDS',\n function (name) {\n if (name) {\n return `${name} is outside of buffer bounds`\n }\n\n return 'Attempt to access memory outside buffer bounds'\n }, RangeError)\nE('ERR_INVALID_ARG_TYPE',\n function (name, actual) {\n return `The \"${name}\" argument must be of type number. Received type ${typeof actual}`\n }, TypeError)\nE('ERR_OUT_OF_RANGE',\n function (str, range, input) {\n let msg = `The value of \"${str}\" is out of range.`\n let received = input\n if (Number.isInteger(input) && Math.abs(input) > 2 ** 32) {\n received = addNumericalSeparator(String(input))\n } else if (typeof input === 'bigint') {\n received = String(input)\n if (input > BigInt(2) ** BigInt(32) || input < -(BigInt(2) ** BigInt(32))) {\n received = addNumericalSeparator(received)\n }\n received += 'n'\n }\n msg += ` It must be ${range}. Received ${received}`\n return msg\n }, RangeError)\n\nfunction addNumericalSeparator (val) {\n let res = ''\n let i = val.length\n const start = val[0] === '-' ? 1 : 0\n for (; i >= start + 4; i -= 3) {\n res = `_${val.slice(i - 3, i)}${res}`\n }\n return `${val.slice(0, i)}${res}`\n}\n\n// CHECK FUNCTIONS\n// ===============\n\nfunction checkBounds (buf, offset, byteLength) {\n validateNumber(offset, 'offset')\n if (buf[offset] === undefined || buf[offset + byteLength] === undefined) {\n boundsError(offset, buf.length - (byteLength + 1))\n }\n}\n\nfunction checkIntBI (value, min, max, buf, offset, byteLength) {\n if (value > max || value < min) {\n const n = typeof min === 'bigint' ? 'n' : ''\n let range\n if (byteLength > 3) {\n if (min === 0 || min === BigInt(0)) {\n range = `>= 0${n} and < 2${n} ** ${(byteLength + 1) * 8}${n}`\n } else {\n range = `>= -(2${n} ** ${(byteLength + 1) * 8 - 1}${n}) and < 2 ** ` +\n `${(byteLength + 1) * 8 - 1}${n}`\n }\n } else {\n range = `>= ${min}${n} and <= ${max}${n}`\n }\n throw new errors.ERR_OUT_OF_RANGE('value', range, value)\n }\n checkBounds(buf, offset, byteLength)\n}\n\nfunction validateNumber (value, name) {\n if (typeof value !== 'number') {\n throw new errors.ERR_INVALID_ARG_TYPE(name, 'number', value)\n }\n}\n\nfunction boundsError (value, length, type) {\n if (Math.floor(value) !== value) {\n validateNumber(value, type)\n throw new errors.ERR_OUT_OF_RANGE(type || 'offset', 'an integer', value)\n }\n\n if (length < 0) {\n throw new errors.ERR_BUFFER_OUT_OF_BOUNDS()\n }\n\n throw new errors.ERR_OUT_OF_RANGE(type || 'offset',\n `>= ${type ? 1 : 0} and <= ${length}`,\n value)\n}\n\n// HELPER FUNCTIONS\n// ================\n\nconst 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]\n // Node strips out invalid characters like \\n and \\t from the string, base64-js does not\n str = str.trim().replace(INVALID_BASE64_RE, '')\n // Node converts strings with length < 2 to ''\n if (str.length < 2) return ''\n // Node allows for non-padded base64 strings (missing trailing ===), base64-js does not\n while (str.length % 4 !== 0) {\n str = str + '='\n }\n return str\n}\n\nfunction utf8ToBytes (string, units) {\n units = units || Infinity\n let codePoint\n const length = string.length\n let leadSurrogate = null\n const bytes = []\n\n for (let i = 0; i < length; ++i) {\n codePoint = string.charCodeAt(i)\n\n // is surrogate component\n if (codePoint > 0xD7FF && codePoint < 0xE000) {\n // last char was a lead\n if (!leadSurrogate) {\n // no lead yet\n if (codePoint > 0xDBFF) {\n // unexpected trail\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n continue\n } else if (i + 1 === length) {\n // unpaired lead\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n continue\n }\n\n // valid lead\n leadSurrogate = codePoint\n\n continue\n }\n\n // 2 leads in a row\n if (codePoint < 0xDC00) {\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n leadSurrogate = codePoint\n continue\n }\n\n // valid surrogate pair\n codePoint = (leadSurrogate - 0xD800 << 10 | codePoint - 0xDC00) + 0x10000\n } else if (leadSurrogate) {\n // valid bmp char, but last char was a lead\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n }\n\n leadSurrogate = null\n\n // encode utf8\n if (codePoint < 0x80) {\n if ((units -= 1) < 0) break\n bytes.push(codePoint)\n } else if (codePoint < 0x800) {\n if ((units -= 2) < 0) break\n bytes.push(\n codePoint >> 0x6 | 0xC0,\n codePoint & 0x3F | 0x80\n )\n } else if (codePoint < 0x10000) {\n if ((units -= 3) < 0) break\n bytes.push(\n codePoint >> 0xC | 0xE0,\n codePoint >> 0x6 & 0x3F | 0x80,\n codePoint & 0x3F | 0x80\n )\n } else if (codePoint < 0x110000) {\n if ((units -= 4) < 0) break\n bytes.push(\n codePoint >> 0x12 | 0xF0,\n codePoint >> 0xC & 0x3F | 0x80,\n codePoint >> 0x6 & 0x3F | 0x80,\n codePoint & 0x3F | 0x80\n )\n } else {\n throw new Error('Invalid code point')\n }\n }\n\n return bytes\n}\n\nfunction asciiToBytes (str) {\n const byteArray = []\n for (let i = 0; i < str.length; ++i) {\n // Node's code seems to be doing this and not & 0x7F..\n byteArray.push(str.charCodeAt(i) & 0xFF)\n }\n return byteArray\n}\n\nfunction utf16leToBytes (str, units) {\n let c, hi, lo\n const byteArray = []\n for (let i = 0; i < str.length; ++i) {\n if ((units -= 2) < 0) break\n\n c = str.charCodeAt(i)\n hi = c >> 8\n lo = c % 256\n byteArray.push(lo)\n byteArray.push(hi)\n }\n\n return byteArray\n}\n\nfunction base64ToBytes (str) {\n return base64.toByteArray(base64clean(str))\n}\n\nfunction blitBuffer (src, dst, offset, length) {\n let i\n for (i = 0; i < length; ++i) {\n if ((i + offset >= dst.length) || (i >= src.length)) break\n dst[i + offset] = src[i]\n }\n return i\n}\n\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\nfunction isInstance (obj, type) {\n return obj instanceof type ||\n (obj != null && obj.constructor != null && obj.constructor.name != null &&\n obj.constructor.name === type.name)\n}\nfunction numberIsNaN (obj) {\n // For IE11 support\n return obj !== obj // eslint-disable-line no-self-compare\n}\n\n// Create lookup table for `toString('hex')`\n// See: https://github.com/feross/buffer/issues/219\nconst hexSliceLookupTable = (function () {\n const alphabet = '0123456789abcdef'\n const table = new Array(256)\n for (let i = 0; i < 16; ++i) {\n const i16 = i * 16\n for (let j = 0; j < 16; ++j) {\n table[i16 + j] = alphabet[i] + alphabet[j]\n }\n }\n return table\n})()\n\n// Return not function with Error if BigInt not supported\nfunction defineBigIntMethod (fn) {\n return typeof BigInt === 'undefined' ? BufferBigIntNotDefined : fn\n}\n\nfunction BufferBigIntNotDefined () {\n throw new Error('BigInt not supported')\n}\n","/*!\n Copyright (c) 2017 Jed Watson.\n Licensed under the MIT License (MIT), see\n http://jedwatson.github.io/classnames\n*/\n/* global define */\n\n(function () {\n\t'use strict';\n\n\tvar hasOwn = {}.hasOwnProperty;\n\n\tfunction classNames () {\n\t\tvar classes = [];\n\n\t\tfor (var i = 0; i < arguments.length; i++) {\n\t\t\tvar arg = arguments[i];\n\t\t\tif (!arg) continue;\n\n\t\t\tvar argType = typeof arg;\n\n\t\t\tif (argType === 'string' || argType === 'number') {\n\t\t\t\tclasses.push(arg);\n\t\t\t} else if (Array.isArray(arg) && arg.length) {\n\t\t\t\tvar inner = classNames.apply(null, arg);\n\t\t\t\tif (inner) {\n\t\t\t\t\tclasses.push(inner);\n\t\t\t\t}\n\t\t\t} else if (argType === 'object') {\n\t\t\t\tfor (var key in arg) {\n\t\t\t\t\tif (hasOwn.call(arg, key) && arg[key]) {\n\t\t\t\t\t\tclasses.push(key);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn classes.join(' ');\n\t}\n\n\tif (typeof module !== 'undefined' && module.exports) {\n\t\tclassNames.default = classNames;\n\t\tmodule.exports = classNames;\n\t} else if (typeof define === 'function' && typeof define.amd === 'object' && define.amd) {\n\t\t// register as 'classnames', consistent with npm package name\n\t\tdefine('classnames', [], function () {\n\t\t\treturn classNames;\n\t\t});\n\t} else {\n\t\twindow.classNames = classNames;\n\t}\n}());\n","/*!\n\tCopyright (c) 2018 Jed Watson.\n\tLicensed under the MIT License (MIT), see\n\thttp://jedwatson.github.io/classnames\n*/\n/* global define */\n\n(function () {\n\t'use strict';\n\n\tvar hasOwn = {}.hasOwnProperty;\n\tvar nativeCodeString = '[native code]';\n\n\tfunction classNames() {\n\t\tvar classes = [];\n\n\t\tfor (var i = 0; i < arguments.length; i++) {\n\t\t\tvar arg = arguments[i];\n\t\t\tif (!arg) continue;\n\n\t\t\tvar argType = typeof arg;\n\n\t\t\tif (argType === 'string' || argType === 'number') {\n\t\t\t\tclasses.push(arg);\n\t\t\t} else if (Array.isArray(arg)) {\n\t\t\t\tif (arg.length) {\n\t\t\t\t\tvar inner = classNames.apply(null, arg);\n\t\t\t\t\tif (inner) {\n\t\t\t\t\t\tclasses.push(inner);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} else if (argType === 'object') {\n\t\t\t\tif (arg.toString !== Object.prototype.toString && !arg.toString.toString().includes('[native code]')) {\n\t\t\t\t\tclasses.push(arg.toString());\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\n\t\t\t\tfor (var key in arg) {\n\t\t\t\t\tif (hasOwn.call(arg, key) && arg[key]) {\n\t\t\t\t\t\tclasses.push(key);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn classes.join(' ');\n\t}\n\n\tif (typeof module !== 'undefined' && module.exports) {\n\t\tclassNames.default = classNames;\n\t\tmodule.exports = classNames;\n\t} else if (typeof define === 'function' && typeof define.amd === 'object' && define.amd) {\n\t\t// register as 'classnames', consistent with npm package name\n\t\tdefine('classnames', [], function () {\n\t\t\treturn classNames;\n\t\t});\n\t} else {\n\t\twindow.classNames = classNames;\n\t}\n}());\n","/*!\n * cookie\n * Copyright(c) 2012-2014 Roman Shtylman\n * Copyright(c) 2015 Douglas Christopher Wilson\n * MIT Licensed\n */\n\n'use strict';\n\n/**\n * Module exports.\n * @public\n */\n\nexports.parse = parse;\nexports.serialize = serialize;\n\n/**\n * Module variables.\n * @private\n */\n\nvar decode = decodeURIComponent;\nvar encode = encodeURIComponent;\n\n/**\n * RegExp to match field-content in RFC 7230 sec 3.2\n *\n * field-content = field-vchar [ 1*( SP / HTAB ) field-vchar ]\n * field-vchar = VCHAR / obs-text\n * obs-text = %x80-FF\n */\n\nvar fieldContentRegExp = /^[\\u0009\\u0020-\\u007e\\u0080-\\u00ff]+$/;\n\n/**\n * Parse a cookie header.\n *\n * Parse the given cookie header string into an object\n * The object has the various cookies as keys(names) => values\n *\n * @param {string} str\n * @param {object} [options]\n * @return {object}\n * @public\n */\n\nfunction parse(str, options) {\n if (typeof str !== 'string') {\n throw new TypeError('argument str must be a string');\n }\n\n var obj = {}\n var opt = options || {};\n var pairs = str.split(';')\n var dec = opt.decode || decode;\n\n for (var i = 0; i < pairs.length; i++) {\n var pair = pairs[i];\n var index = pair.indexOf('=')\n\n // skip things that don't look like key=value\n if (index < 0) {\n continue;\n }\n\n var key = pair.substring(0, index).trim()\n\n // only assign once\n if (undefined == obj[key]) {\n var val = pair.substring(index + 1, pair.length).trim()\n\n // quoted values\n if (val[0] === '\"') {\n val = val.slice(1, -1)\n }\n\n obj[key] = tryDecode(val, dec);\n }\n }\n\n return obj;\n}\n\n/**\n * Serialize data into a cookie header.\n *\n * Serialize the a name value pair into a cookie string suitable for\n * http headers. An optional options object specified cookie parameters.\n *\n * serialize('foo', 'bar', { httpOnly: true })\n * => \"foo=bar; httpOnly\"\n *\n * @param {string} name\n * @param {string} val\n * @param {object} [options]\n * @return {string}\n * @public\n */\n\nfunction serialize(name, val, options) {\n var opt = options || {};\n var enc = opt.encode || encode;\n\n if (typeof enc !== 'function') {\n throw new TypeError('option encode is invalid');\n }\n\n if (!fieldContentRegExp.test(name)) {\n throw new TypeError('argument name is invalid');\n }\n\n var value = enc(val);\n\n if (value && !fieldContentRegExp.test(value)) {\n throw new TypeError('argument val is invalid');\n }\n\n var str = name + '=' + value;\n\n if (null != opt.maxAge) {\n var maxAge = opt.maxAge - 0;\n\n if (isNaN(maxAge) || !isFinite(maxAge)) {\n throw new TypeError('option maxAge is invalid')\n }\n\n str += '; Max-Age=' + Math.floor(maxAge);\n }\n\n if (opt.domain) {\n if (!fieldContentRegExp.test(opt.domain)) {\n throw new TypeError('option domain is invalid');\n }\n\n str += '; Domain=' + opt.domain;\n }\n\n if (opt.path) {\n if (!fieldContentRegExp.test(opt.path)) {\n throw new TypeError('option path is invalid');\n }\n\n str += '; Path=' + opt.path;\n }\n\n if (opt.expires) {\n if (typeof opt.expires.toUTCString !== 'function') {\n throw new TypeError('option expires is invalid');\n }\n\n str += '; Expires=' + opt.expires.toUTCString();\n }\n\n if (opt.httpOnly) {\n str += '; HttpOnly';\n }\n\n if (opt.secure) {\n str += '; Secure';\n }\n\n if (opt.sameSite) {\n var sameSite = typeof opt.sameSite === 'string'\n ? opt.sameSite.toLowerCase() : opt.sameSite;\n\n switch (sameSite) {\n case true:\n str += '; SameSite=Strict';\n break;\n case 'lax':\n str += '; SameSite=Lax';\n break;\n case 'strict':\n str += '; SameSite=Strict';\n break;\n case 'none':\n str += '; SameSite=None';\n break;\n default:\n throw new TypeError('option sameSite is invalid');\n }\n }\n\n return str;\n}\n\n/**\n * Try decoding a string using a decoding function.\n *\n * @param {string} str\n * @param {function} decode\n * @private\n */\n\nfunction tryDecode(str, decode) {\n try {\n return decode(str);\n } catch (e) {\n return str;\n }\n}\n",";(function (root, factory) {\n\tif (typeof exports === \"object\") {\n\t\t// CommonJS\n\t\tmodule.exports = exports = factory();\n\t}\n\telse if (typeof define === \"function\" && define.amd) {\n\t\t// AMD\n\t\tdefine([], factory);\n\t}\n\telse {\n\t\t// Global (browser)\n\t\troot.CryptoJS = factory();\n\t}\n}(this, function () {\n\n\t/*globals window, global, require*/\n\n\t/**\n\t * CryptoJS core components.\n\t */\n\tvar CryptoJS = CryptoJS || (function (Math, undefined) {\n\n\t var crypto;\n\n\t // Native crypto from window (Browser)\n\t if (typeof window !== 'undefined' && window.crypto) {\n\t crypto = window.crypto;\n\t }\n\n\t // Native crypto in web worker (Browser)\n\t if (typeof self !== 'undefined' && self.crypto) {\n\t crypto = self.crypto;\n\t }\n\n\t // Native crypto from worker\n\t if (typeof globalThis !== 'undefined' && globalThis.crypto) {\n\t crypto = globalThis.crypto;\n\t }\n\n\t // Native (experimental IE 11) crypto from window (Browser)\n\t if (!crypto && typeof window !== 'undefined' && window.msCrypto) {\n\t crypto = window.msCrypto;\n\t }\n\n\t // Native crypto from global (NodeJS)\n\t if (!crypto && typeof global !== 'undefined' && global.crypto) {\n\t crypto = global.crypto;\n\t }\n\n\t // Native crypto import via require (NodeJS)\n\t if (!crypto && typeof require === 'function') {\n\t try {\n\t crypto = require('crypto');\n\t } catch (err) {}\n\t }\n\n\t /*\n\t * Cryptographically secure pseudorandom number generator\n\t *\n\t * As Math.random() is cryptographically not safe to use\n\t */\n\t var cryptoSecureRandomInt = function () {\n\t if (crypto) {\n\t // Use getRandomValues method (Browser)\n\t if (typeof crypto.getRandomValues === 'function') {\n\t try {\n\t return crypto.getRandomValues(new Uint32Array(1))[0];\n\t } catch (err) {}\n\t }\n\n\t // Use randomBytes method (NodeJS)\n\t if (typeof crypto.randomBytes === 'function') {\n\t try {\n\t return crypto.randomBytes(4).readInt32LE();\n\t } catch (err) {}\n\t }\n\t }\n\n\t throw new Error('Native crypto module could not be used to get secure random number.');\n\t };\n\n\t /*\n\t * Local polyfill of Object.create\n\n\t */\n\t var create = Object.create || (function () {\n\t function F() {}\n\n\t return function (obj) {\n\t var subtype;\n\n\t F.prototype = obj;\n\n\t subtype = new F();\n\n\t F.prototype = null;\n\n\t return subtype;\n\t };\n\t }());\n\n\t /**\n\t * CryptoJS namespace.\n\t */\n\t var C = {};\n\n\t /**\n\t * Library namespace.\n\t */\n\t var C_lib = C.lib = {};\n\n\t /**\n\t * Base object for prototypal inheritance.\n\t */\n\t var Base = C_lib.Base = (function () {\n\n\n\t return {\n\t /**\n\t * Creates a new object that inherits from this object.\n\t *\n\t * @param {Object} overrides Properties to copy into the new object.\n\t *\n\t * @return {Object} The new object.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var MyType = CryptoJS.lib.Base.extend({\n\t * field: 'value',\n\t *\n\t * method: function () {\n\t * }\n\t * });\n\t */\n\t extend: function (overrides) {\n\t // Spawn\n\t var subtype = create(this);\n\n\t // Augment\n\t if (overrides) {\n\t subtype.mixIn(overrides);\n\t }\n\n\t // Create default initializer\n\t if (!subtype.hasOwnProperty('init') || this.init === subtype.init) {\n\t subtype.init = function () {\n\t subtype.$super.init.apply(this, arguments);\n\t };\n\t }\n\n\t // Initializer's prototype is the subtype object\n\t subtype.init.prototype = subtype;\n\n\t // Reference supertype\n\t subtype.$super = this;\n\n\t return subtype;\n\t },\n\n\t /**\n\t * Extends this object and runs the init method.\n\t * Arguments to create() will be passed to init().\n\t *\n\t * @return {Object} The new object.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var instance = MyType.create();\n\t */\n\t create: function () {\n\t var instance = this.extend();\n\t instance.init.apply(instance, arguments);\n\n\t return instance;\n\t },\n\n\t /**\n\t * Initializes a newly created object.\n\t * Override this method to add some logic when your objects are created.\n\t *\n\t * @example\n\t *\n\t * var MyType = CryptoJS.lib.Base.extend({\n\t * init: function () {\n\t * // ...\n\t * }\n\t * });\n\t */\n\t init: function () {\n\t },\n\n\t /**\n\t * Copies properties into this object.\n\t *\n\t * @param {Object} properties The properties to mix in.\n\t *\n\t * @example\n\t *\n\t * MyType.mixIn({\n\t * field: 'value'\n\t * });\n\t */\n\t mixIn: function (properties) {\n\t for (var propertyName in properties) {\n\t if (properties.hasOwnProperty(propertyName)) {\n\t this[propertyName] = properties[propertyName];\n\t }\n\t }\n\n\t // IE won't copy toString using the loop above\n\t if (properties.hasOwnProperty('toString')) {\n\t this.toString = properties.toString;\n\t }\n\t },\n\n\t /**\n\t * Creates a copy of this object.\n\t *\n\t * @return {Object} The clone.\n\t *\n\t * @example\n\t *\n\t * var clone = instance.clone();\n\t */\n\t clone: function () {\n\t return this.init.prototype.extend(this);\n\t }\n\t };\n\t }());\n\n\t /**\n\t * An array of 32-bit words.\n\t *\n\t * @property {Array} words The array of 32-bit words.\n\t * @property {number} sigBytes The number of significant bytes in this word array.\n\t */\n\t var WordArray = C_lib.WordArray = Base.extend({\n\t /**\n\t * Initializes a newly created word array.\n\t *\n\t * @param {Array} words (Optional) An array of 32-bit words.\n\t * @param {number} sigBytes (Optional) The number of significant bytes in the words.\n\t *\n\t * @example\n\t *\n\t * var wordArray = CryptoJS.lib.WordArray.create();\n\t * var wordArray = CryptoJS.lib.WordArray.create([0x00010203, 0x04050607]);\n\t * var wordArray = CryptoJS.lib.WordArray.create([0x00010203, 0x04050607], 6);\n\t */\n\t init: function (words, sigBytes) {\n\t words = this.words = words || [];\n\n\t if (sigBytes != undefined) {\n\t this.sigBytes = sigBytes;\n\t } else {\n\t this.sigBytes = words.length * 4;\n\t }\n\t },\n\n\t /**\n\t * Converts this word array to a string.\n\t *\n\t * @param {Encoder} encoder (Optional) The encoding strategy to use. Default: CryptoJS.enc.Hex\n\t *\n\t * @return {string} The stringified word array.\n\t *\n\t * @example\n\t *\n\t * var string = wordArray + '';\n\t * var string = wordArray.toString();\n\t * var string = wordArray.toString(CryptoJS.enc.Utf8);\n\t */\n\t toString: function (encoder) {\n\t return (encoder || Hex).stringify(this);\n\t },\n\n\t /**\n\t * Concatenates a word array to this word array.\n\t *\n\t * @param {WordArray} wordArray The word array to append.\n\t *\n\t * @return {WordArray} This word array.\n\t *\n\t * @example\n\t *\n\t * wordArray1.concat(wordArray2);\n\t */\n\t concat: function (wordArray) {\n\t // Shortcuts\n\t var thisWords = this.words;\n\t var thatWords = wordArray.words;\n\t var thisSigBytes = this.sigBytes;\n\t var thatSigBytes = wordArray.sigBytes;\n\n\t // Clamp excess bits\n\t this.clamp();\n\n\t // Concat\n\t if (thisSigBytes % 4) {\n\t // Copy one byte at a time\n\t for (var i = 0; i < thatSigBytes; i++) {\n\t var thatByte = (thatWords[i >>> 2] >>> (24 - (i % 4) * 8)) & 0xff;\n\t thisWords[(thisSigBytes + i) >>> 2] |= thatByte << (24 - ((thisSigBytes + i) % 4) * 8);\n\t }\n\t } else {\n\t // Copy one word at a time\n\t for (var j = 0; j < thatSigBytes; j += 4) {\n\t thisWords[(thisSigBytes + j) >>> 2] = thatWords[j >>> 2];\n\t }\n\t }\n\t this.sigBytes += thatSigBytes;\n\n\t // Chainable\n\t return this;\n\t },\n\n\t /**\n\t * Removes insignificant bits.\n\t *\n\t * @example\n\t *\n\t * wordArray.clamp();\n\t */\n\t clamp: function () {\n\t // Shortcuts\n\t var words = this.words;\n\t var sigBytes = this.sigBytes;\n\n\t // Clamp\n\t words[sigBytes >>> 2] &= 0xffffffff << (32 - (sigBytes % 4) * 8);\n\t words.length = Math.ceil(sigBytes / 4);\n\t },\n\n\t /**\n\t * Creates a copy of this word array.\n\t *\n\t * @return {WordArray} The clone.\n\t *\n\t * @example\n\t *\n\t * var clone = wordArray.clone();\n\t */\n\t clone: function () {\n\t var clone = Base.clone.call(this);\n\t clone.words = this.words.slice(0);\n\n\t return clone;\n\t },\n\n\t /**\n\t * Creates a word array filled with random bytes.\n\t *\n\t * @param {number} nBytes The number of random bytes to generate.\n\t *\n\t * @return {WordArray} The random word array.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var wordArray = CryptoJS.lib.WordArray.random(16);\n\t */\n\t random: function (nBytes) {\n\t var words = [];\n\n\t for (var i = 0; i < nBytes; i += 4) {\n\t words.push(cryptoSecureRandomInt());\n\t }\n\n\t return new WordArray.init(words, nBytes);\n\t }\n\t });\n\n\t /**\n\t * Encoder namespace.\n\t */\n\t var C_enc = C.enc = {};\n\n\t /**\n\t * Hex encoding strategy.\n\t */\n\t var Hex = C_enc.Hex = {\n\t /**\n\t * Converts a word array to a hex string.\n\t *\n\t * @param {WordArray} wordArray The word array.\n\t *\n\t * @return {string} The hex string.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var hexString = CryptoJS.enc.Hex.stringify(wordArray);\n\t */\n\t stringify: function (wordArray) {\n\t // Shortcuts\n\t var words = wordArray.words;\n\t var sigBytes = wordArray.sigBytes;\n\n\t // Convert\n\t var hexChars = [];\n\t for (var i = 0; i < sigBytes; i++) {\n\t var bite = (words[i >>> 2] >>> (24 - (i % 4) * 8)) & 0xff;\n\t hexChars.push((bite >>> 4).toString(16));\n\t hexChars.push((bite & 0x0f).toString(16));\n\t }\n\n\t return hexChars.join('');\n\t },\n\n\t /**\n\t * Converts a hex string to a word array.\n\t *\n\t * @param {string} hexStr The hex string.\n\t *\n\t * @return {WordArray} The word array.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var wordArray = CryptoJS.enc.Hex.parse(hexString);\n\t */\n\t parse: function (hexStr) {\n\t // Shortcut\n\t var hexStrLength = hexStr.length;\n\n\t // Convert\n\t var words = [];\n\t for (var i = 0; i < hexStrLength; i += 2) {\n\t words[i >>> 3] |= parseInt(hexStr.substr(i, 2), 16) << (24 - (i % 8) * 4);\n\t }\n\n\t return new WordArray.init(words, hexStrLength / 2);\n\t }\n\t };\n\n\t /**\n\t * Latin1 encoding strategy.\n\t */\n\t var Latin1 = C_enc.Latin1 = {\n\t /**\n\t * Converts a word array to a Latin1 string.\n\t *\n\t * @param {WordArray} wordArray The word array.\n\t *\n\t * @return {string} The Latin1 string.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var latin1String = CryptoJS.enc.Latin1.stringify(wordArray);\n\t */\n\t stringify: function (wordArray) {\n\t // Shortcuts\n\t var words = wordArray.words;\n\t var sigBytes = wordArray.sigBytes;\n\n\t // Convert\n\t var latin1Chars = [];\n\t for (var i = 0; i < sigBytes; i++) {\n\t var bite = (words[i >>> 2] >>> (24 - (i % 4) * 8)) & 0xff;\n\t latin1Chars.push(String.fromCharCode(bite));\n\t }\n\n\t return latin1Chars.join('');\n\t },\n\n\t /**\n\t * Converts a Latin1 string to a word array.\n\t *\n\t * @param {string} latin1Str The Latin1 string.\n\t *\n\t * @return {WordArray} The word array.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var wordArray = CryptoJS.enc.Latin1.parse(latin1String);\n\t */\n\t parse: function (latin1Str) {\n\t // Shortcut\n\t var latin1StrLength = latin1Str.length;\n\n\t // Convert\n\t var words = [];\n\t for (var i = 0; i < latin1StrLength; i++) {\n\t words[i >>> 2] |= (latin1Str.charCodeAt(i) & 0xff) << (24 - (i % 4) * 8);\n\t }\n\n\t return new WordArray.init(words, latin1StrLength);\n\t }\n\t };\n\n\t /**\n\t * UTF-8 encoding strategy.\n\t */\n\t var Utf8 = C_enc.Utf8 = {\n\t /**\n\t * Converts a word array to a UTF-8 string.\n\t *\n\t * @param {WordArray} wordArray The word array.\n\t *\n\t * @return {string} The UTF-8 string.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var utf8String = CryptoJS.enc.Utf8.stringify(wordArray);\n\t */\n\t stringify: function (wordArray) {\n\t try {\n\t return decodeURIComponent(escape(Latin1.stringify(wordArray)));\n\t } catch (e) {\n\t throw new Error('Malformed UTF-8 data');\n\t }\n\t },\n\n\t /**\n\t * Converts a UTF-8 string to a word array.\n\t *\n\t * @param {string} utf8Str The UTF-8 string.\n\t *\n\t * @return {WordArray} The word array.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var wordArray = CryptoJS.enc.Utf8.parse(utf8String);\n\t */\n\t parse: function (utf8Str) {\n\t return Latin1.parse(unescape(encodeURIComponent(utf8Str)));\n\t }\n\t };\n\n\t /**\n\t * Abstract buffered block algorithm template.\n\t *\n\t * The property blockSize must be implemented in a concrete subtype.\n\t *\n\t * @property {number} _minBufferSize The number of blocks that should be kept unprocessed in the buffer. Default: 0\n\t */\n\t var BufferedBlockAlgorithm = C_lib.BufferedBlockAlgorithm = Base.extend({\n\t /**\n\t * Resets this block algorithm's data buffer to its initial state.\n\t *\n\t * @example\n\t *\n\t * bufferedBlockAlgorithm.reset();\n\t */\n\t reset: function () {\n\t // Initial values\n\t this._data = new WordArray.init();\n\t this._nDataBytes = 0;\n\t },\n\n\t /**\n\t * Adds new data to this block algorithm's buffer.\n\t *\n\t * @param {WordArray|string} data The data to append. Strings are converted to a WordArray using UTF-8.\n\t *\n\t * @example\n\t *\n\t * bufferedBlockAlgorithm._append('data');\n\t * bufferedBlockAlgorithm._append(wordArray);\n\t */\n\t _append: function (data) {\n\t // Convert string to WordArray, else assume WordArray already\n\t if (typeof data == 'string') {\n\t data = Utf8.parse(data);\n\t }\n\n\t // Append\n\t this._data.concat(data);\n\t this._nDataBytes += data.sigBytes;\n\t },\n\n\t /**\n\t * Processes available data blocks.\n\t *\n\t * This method invokes _doProcessBlock(offset), which must be implemented by a concrete subtype.\n\t *\n\t * @param {boolean} doFlush Whether all blocks and partial blocks should be processed.\n\t *\n\t * @return {WordArray} The processed data.\n\t *\n\t * @example\n\t *\n\t * var processedData = bufferedBlockAlgorithm._process();\n\t * var processedData = bufferedBlockAlgorithm._process(!!'flush');\n\t */\n\t _process: function (doFlush) {\n\t var processedWords;\n\n\t // Shortcuts\n\t var data = this._data;\n\t var dataWords = data.words;\n\t var dataSigBytes = data.sigBytes;\n\t var blockSize = this.blockSize;\n\t var blockSizeBytes = blockSize * 4;\n\n\t // Count blocks ready\n\t var nBlocksReady = dataSigBytes / blockSizeBytes;\n\t if (doFlush) {\n\t // Round up to include partial blocks\n\t nBlocksReady = Math.ceil(nBlocksReady);\n\t } else {\n\t // Round down to include only full blocks,\n\t // less the number of blocks that must remain in the buffer\n\t nBlocksReady = Math.max((nBlocksReady | 0) - this._minBufferSize, 0);\n\t }\n\n\t // Count words ready\n\t var nWordsReady = nBlocksReady * blockSize;\n\n\t // Count bytes ready\n\t var nBytesReady = Math.min(nWordsReady * 4, dataSigBytes);\n\n\t // Process blocks\n\t if (nWordsReady) {\n\t for (var offset = 0; offset < nWordsReady; offset += blockSize) {\n\t // Perform concrete-algorithm logic\n\t this._doProcessBlock(dataWords, offset);\n\t }\n\n\t // Remove processed words\n\t processedWords = dataWords.splice(0, nWordsReady);\n\t data.sigBytes -= nBytesReady;\n\t }\n\n\t // Return processed words\n\t return new WordArray.init(processedWords, nBytesReady);\n\t },\n\n\t /**\n\t * Creates a copy of this object.\n\t *\n\t * @return {Object} The clone.\n\t *\n\t * @example\n\t *\n\t * var clone = bufferedBlockAlgorithm.clone();\n\t */\n\t clone: function () {\n\t var clone = Base.clone.call(this);\n\t clone._data = this._data.clone();\n\n\t return clone;\n\t },\n\n\t _minBufferSize: 0\n\t });\n\n\t /**\n\t * Abstract hasher template.\n\t *\n\t * @property {number} blockSize The number of 32-bit words this hasher operates on. Default: 16 (512 bits)\n\t */\n\t var Hasher = C_lib.Hasher = BufferedBlockAlgorithm.extend({\n\t /**\n\t * Configuration options.\n\t */\n\t cfg: Base.extend(),\n\n\t /**\n\t * Initializes a newly created hasher.\n\t *\n\t * @param {Object} cfg (Optional) The configuration options to use for this hash computation.\n\t *\n\t * @example\n\t *\n\t * var hasher = CryptoJS.algo.SHA256.create();\n\t */\n\t init: function (cfg) {\n\t // Apply config defaults\n\t this.cfg = this.cfg.extend(cfg);\n\n\t // Set initial values\n\t this.reset();\n\t },\n\n\t /**\n\t * Resets this hasher to its initial state.\n\t *\n\t * @example\n\t *\n\t * hasher.reset();\n\t */\n\t reset: function () {\n\t // Reset data buffer\n\t BufferedBlockAlgorithm.reset.call(this);\n\n\t // Perform concrete-hasher logic\n\t this._doReset();\n\t },\n\n\t /**\n\t * Updates this hasher with a message.\n\t *\n\t * @param {WordArray|string} messageUpdate The message to append.\n\t *\n\t * @return {Hasher} This hasher.\n\t *\n\t * @example\n\t *\n\t * hasher.update('message');\n\t * hasher.update(wordArray);\n\t */\n\t update: function (messageUpdate) {\n\t // Append\n\t this._append(messageUpdate);\n\n\t // Update the hash\n\t this._process();\n\n\t // Chainable\n\t return this;\n\t },\n\n\t /**\n\t * Finalizes the hash computation.\n\t * Note that the finalize operation is effectively a destructive, read-once operation.\n\t *\n\t * @param {WordArray|string} messageUpdate (Optional) A final message update.\n\t *\n\t * @return {WordArray} The hash.\n\t *\n\t * @example\n\t *\n\t * var hash = hasher.finalize();\n\t * var hash = hasher.finalize('message');\n\t * var hash = hasher.finalize(wordArray);\n\t */\n\t finalize: function (messageUpdate) {\n\t // Final message update\n\t if (messageUpdate) {\n\t this._append(messageUpdate);\n\t }\n\n\t // Perform concrete-hasher logic\n\t var hash = this._doFinalize();\n\n\t return hash;\n\t },\n\n\t blockSize: 512/32,\n\n\t /**\n\t * Creates a shortcut function to a hasher's object interface.\n\t *\n\t * @param {Hasher} hasher The hasher to create a helper for.\n\t *\n\t * @return {Function} The shortcut function.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var SHA256 = CryptoJS.lib.Hasher._createHelper(CryptoJS.algo.SHA256);\n\t */\n\t _createHelper: function (hasher) {\n\t return function (message, cfg) {\n\t return new hasher.init(cfg).finalize(message);\n\t };\n\t },\n\n\t /**\n\t * Creates a shortcut function to the HMAC's object interface.\n\t *\n\t * @param {Hasher} hasher The hasher to use in this HMAC helper.\n\t *\n\t * @return {Function} The shortcut function.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var HmacSHA256 = CryptoJS.lib.Hasher._createHmacHelper(CryptoJS.algo.SHA256);\n\t */\n\t _createHmacHelper: function (hasher) {\n\t return function (message, key) {\n\t return new C_algo.HMAC.init(hasher, key).finalize(message);\n\t };\n\t }\n\t });\n\n\t /**\n\t * Algorithm namespace.\n\t */\n\t var C_algo = C.algo = {};\n\n\t return C;\n\t}(Math));\n\n\n\treturn CryptoJS;\n\n}));",";(function (root, factory) {\n\tif (typeof exports === \"object\") {\n\t\t// CommonJS\n\t\tmodule.exports = exports = factory(require(\"./core\"));\n\t}\n\telse if (typeof define === \"function\" && define.amd) {\n\t\t// AMD\n\t\tdefine([\"./core\"], factory);\n\t}\n\telse {\n\t\t// Global (browser)\n\t\tfactory(root.CryptoJS);\n\t}\n}(this, function (CryptoJS) {\n\n\t(function () {\n\t // Shortcuts\n\t var C = CryptoJS;\n\t var C_lib = C.lib;\n\t var WordArray = C_lib.WordArray;\n\t var C_enc = C.enc;\n\n\t /**\n\t * Base64 encoding strategy.\n\t */\n\t var Base64 = C_enc.Base64 = {\n\t /**\n\t * Converts a word array to a Base64 string.\n\t *\n\t * @param {WordArray} wordArray The word array.\n\t *\n\t * @return {string} The Base64 string.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var base64String = CryptoJS.enc.Base64.stringify(wordArray);\n\t */\n\t stringify: function (wordArray) {\n\t // Shortcuts\n\t var words = wordArray.words;\n\t var sigBytes = wordArray.sigBytes;\n\t var map = this._map;\n\n\t // Clamp excess bits\n\t wordArray.clamp();\n\n\t // Convert\n\t var base64Chars = [];\n\t for (var i = 0; i < sigBytes; i += 3) {\n\t var byte1 = (words[i >>> 2] >>> (24 - (i % 4) * 8)) & 0xff;\n\t var byte2 = (words[(i + 1) >>> 2] >>> (24 - ((i + 1) % 4) * 8)) & 0xff;\n\t var byte3 = (words[(i + 2) >>> 2] >>> (24 - ((i + 2) % 4) * 8)) & 0xff;\n\n\t var triplet = (byte1 << 16) | (byte2 << 8) | byte3;\n\n\t for (var j = 0; (j < 4) && (i + j * 0.75 < sigBytes); j++) {\n\t base64Chars.push(map.charAt((triplet >>> (6 * (3 - j))) & 0x3f));\n\t }\n\t }\n\n\t // Add padding\n\t var paddingChar = map.charAt(64);\n\t if (paddingChar) {\n\t while (base64Chars.length % 4) {\n\t base64Chars.push(paddingChar);\n\t }\n\t }\n\n\t return base64Chars.join('');\n\t },\n\n\t /**\n\t * Converts a Base64 string to a word array.\n\t *\n\t * @param {string} base64Str The Base64 string.\n\t *\n\t * @return {WordArray} The word array.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var wordArray = CryptoJS.enc.Base64.parse(base64String);\n\t */\n\t parse: function (base64Str) {\n\t // Shortcuts\n\t var base64StrLength = base64Str.length;\n\t var map = this._map;\n\t var reverseMap = this._reverseMap;\n\n\t if (!reverseMap) {\n\t reverseMap = this._reverseMap = [];\n\t for (var j = 0; j < map.length; j++) {\n\t reverseMap[map.charCodeAt(j)] = j;\n\t }\n\t }\n\n\t // Ignore padding\n\t var paddingChar = map.charAt(64);\n\t if (paddingChar) {\n\t var paddingIndex = base64Str.indexOf(paddingChar);\n\t if (paddingIndex !== -1) {\n\t base64StrLength = paddingIndex;\n\t }\n\t }\n\n\t // Convert\n\t return parseLoop(base64Str, base64StrLength, reverseMap);\n\n\t },\n\n\t _map: 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/='\n\t };\n\n\t function parseLoop(base64Str, base64StrLength, reverseMap) {\n\t var words = [];\n\t var nBytes = 0;\n\t for (var i = 0; i < base64StrLength; i++) {\n\t if (i % 4) {\n\t var bits1 = reverseMap[base64Str.charCodeAt(i - 1)] << ((i % 4) * 2);\n\t var bits2 = reverseMap[base64Str.charCodeAt(i)] >>> (6 - (i % 4) * 2);\n\t var bitsCombined = bits1 | bits2;\n\t words[nBytes >>> 2] |= bitsCombined << (24 - (nBytes % 4) * 8);\n\t nBytes++;\n\t }\n\t }\n\t return WordArray.create(words, nBytes);\n\t }\n\t}());\n\n\n\treturn CryptoJS.enc.Base64;\n\n}));",";(function (root, factory, undef) {\n\tif (typeof exports === \"object\") {\n\t\t// CommonJS\n\t\tmodule.exports = exports = factory(require(\"./core\"), require(\"./sha256\"), require(\"./hmac\"));\n\t}\n\telse if (typeof define === \"function\" && define.amd) {\n\t\t// AMD\n\t\tdefine([\"./core\", \"./sha256\", \"./hmac\"], factory);\n\t}\n\telse {\n\t\t// Global (browser)\n\t\tfactory(root.CryptoJS);\n\t}\n}(this, function (CryptoJS) {\n\n\treturn CryptoJS.HmacSHA256;\n\n}));",";(function (root, factory) {\n\tif (typeof exports === \"object\") {\n\t\t// CommonJS\n\t\tmodule.exports = exports = factory(require(\"./core\"));\n\t}\n\telse if (typeof define === \"function\" && define.amd) {\n\t\t// AMD\n\t\tdefine([\"./core\"], factory);\n\t}\n\telse {\n\t\t// Global (browser)\n\t\tfactory(root.CryptoJS);\n\t}\n}(this, function (CryptoJS) {\n\n\t(function () {\n\t // Shortcuts\n\t var C = CryptoJS;\n\t var C_lib = C.lib;\n\t var Base = C_lib.Base;\n\t var C_enc = C.enc;\n\t var Utf8 = C_enc.Utf8;\n\t var C_algo = C.algo;\n\n\t /**\n\t * HMAC algorithm.\n\t */\n\t var HMAC = C_algo.HMAC = Base.extend({\n\t /**\n\t * Initializes a newly created HMAC.\n\t *\n\t * @param {Hasher} hasher The hash algorithm to use.\n\t * @param {WordArray|string} key The secret key.\n\t *\n\t * @example\n\t *\n\t * var hmacHasher = CryptoJS.algo.HMAC.create(CryptoJS.algo.SHA256, key);\n\t */\n\t init: function (hasher, key) {\n\t // Init hasher\n\t hasher = this._hasher = new hasher.init();\n\n\t // Convert string to WordArray, else assume WordArray already\n\t if (typeof key == 'string') {\n\t key = Utf8.parse(key);\n\t }\n\n\t // Shortcuts\n\t var hasherBlockSize = hasher.blockSize;\n\t var hasherBlockSizeBytes = hasherBlockSize * 4;\n\n\t // Allow arbitrary length keys\n\t if (key.sigBytes > hasherBlockSizeBytes) {\n\t key = hasher.finalize(key);\n\t }\n\n\t // Clamp excess bits\n\t key.clamp();\n\n\t // Clone key for inner and outer pads\n\t var oKey = this._oKey = key.clone();\n\t var iKey = this._iKey = key.clone();\n\n\t // Shortcuts\n\t var oKeyWords = oKey.words;\n\t var iKeyWords = iKey.words;\n\n\t // XOR keys with pad constants\n\t for (var i = 0; i < hasherBlockSize; i++) {\n\t oKeyWords[i] ^= 0x5c5c5c5c;\n\t iKeyWords[i] ^= 0x36363636;\n\t }\n\t oKey.sigBytes = iKey.sigBytes = hasherBlockSizeBytes;\n\n\t // Set initial values\n\t this.reset();\n\t },\n\n\t /**\n\t * Resets this HMAC to its initial state.\n\t *\n\t * @example\n\t *\n\t * hmacHasher.reset();\n\t */\n\t reset: function () {\n\t // Shortcut\n\t var hasher = this._hasher;\n\n\t // Reset\n\t hasher.reset();\n\t hasher.update(this._iKey);\n\t },\n\n\t /**\n\t * Updates this HMAC with a message.\n\t *\n\t * @param {WordArray|string} messageUpdate The message to append.\n\t *\n\t * @return {HMAC} This HMAC instance.\n\t *\n\t * @example\n\t *\n\t * hmacHasher.update('message');\n\t * hmacHasher.update(wordArray);\n\t */\n\t update: function (messageUpdate) {\n\t this._hasher.update(messageUpdate);\n\n\t // Chainable\n\t return this;\n\t },\n\n\t /**\n\t * Finalizes the HMAC computation.\n\t * Note that the finalize operation is effectively a destructive, read-once operation.\n\t *\n\t * @param {WordArray|string} messageUpdate (Optional) A final message update.\n\t *\n\t * @return {WordArray} The HMAC.\n\t *\n\t * @example\n\t *\n\t * var hmac = hmacHasher.finalize();\n\t * var hmac = hmacHasher.finalize('message');\n\t * var hmac = hmacHasher.finalize(wordArray);\n\t */\n\t finalize: function (messageUpdate) {\n\t // Shortcut\n\t var hasher = this._hasher;\n\n\t // Compute HMAC\n\t var innerHash = hasher.finalize(messageUpdate);\n\t hasher.reset();\n\t var hmac = hasher.finalize(this._oKey.clone().concat(innerHash));\n\n\t return hmac;\n\t }\n\t });\n\t}());\n\n\n}));",";(function (root, factory) {\n\tif (typeof exports === \"object\") {\n\t\t// CommonJS\n\t\tmodule.exports = exports = factory(require(\"./core\"));\n\t}\n\telse if (typeof define === \"function\" && define.amd) {\n\t\t// AMD\n\t\tdefine([\"./core\"], factory);\n\t}\n\telse {\n\t\t// Global (browser)\n\t\tfactory(root.CryptoJS);\n\t}\n}(this, function (CryptoJS) {\n\n\t(function () {\n\t // Check if typed arrays are supported\n\t if (typeof ArrayBuffer != 'function') {\n\t return;\n\t }\n\n\t // Shortcuts\n\t var C = CryptoJS;\n\t var C_lib = C.lib;\n\t var WordArray = C_lib.WordArray;\n\n\t // Reference original init\n\t var superInit = WordArray.init;\n\n\t // Augment WordArray.init to handle typed arrays\n\t var subInit = WordArray.init = function (typedArray) {\n\t // Convert buffers to uint8\n\t if (typedArray instanceof ArrayBuffer) {\n\t typedArray = new Uint8Array(typedArray);\n\t }\n\n\t // Convert other array views to uint8\n\t if (\n\t typedArray instanceof Int8Array ||\n\t (typeof Uint8ClampedArray !== \"undefined\" && typedArray instanceof Uint8ClampedArray) ||\n\t typedArray instanceof Int16Array ||\n\t typedArray instanceof Uint16Array ||\n\t typedArray instanceof Int32Array ||\n\t typedArray instanceof Uint32Array ||\n\t typedArray instanceof Float32Array ||\n\t typedArray instanceof Float64Array\n\t ) {\n\t typedArray = new Uint8Array(typedArray.buffer, typedArray.byteOffset, typedArray.byteLength);\n\t }\n\n\t // Handle Uint8Array\n\t if (typedArray instanceof Uint8Array) {\n\t // Shortcut\n\t var typedArrayByteLength = typedArray.byteLength;\n\n\t // Extract bytes\n\t var words = [];\n\t for (var i = 0; i < typedArrayByteLength; i++) {\n\t words[i >>> 2] |= typedArray[i] << (24 - (i % 4) * 8);\n\t }\n\n\t // Initialize this word array\n\t superInit.call(this, words, typedArrayByteLength);\n\t } else {\n\t // Else call normal init\n\t superInit.apply(this, arguments);\n\t }\n\t };\n\n\t subInit.prototype = WordArray;\n\t}());\n\n\n\treturn CryptoJS.lib.WordArray;\n\n}));",";(function (root, factory) {\n\tif (typeof exports === \"object\") {\n\t\t// CommonJS\n\t\tmodule.exports = exports = factory(require(\"./core\"));\n\t}\n\telse if (typeof define === \"function\" && define.amd) {\n\t\t// AMD\n\t\tdefine([\"./core\"], factory);\n\t}\n\telse {\n\t\t// Global (browser)\n\t\tfactory(root.CryptoJS);\n\t}\n}(this, function (CryptoJS) {\n\n\t(function (Math) {\n\t // Shortcuts\n\t var C = CryptoJS;\n\t var C_lib = C.lib;\n\t var WordArray = C_lib.WordArray;\n\t var Hasher = C_lib.Hasher;\n\t var C_algo = C.algo;\n\n\t // Initialization and round constants tables\n\t var H = [];\n\t var K = [];\n\n\t // Compute constants\n\t (function () {\n\t function isPrime(n) {\n\t var sqrtN = Math.sqrt(n);\n\t for (var factor = 2; factor <= sqrtN; factor++) {\n\t if (!(n % factor)) {\n\t return false;\n\t }\n\t }\n\n\t return true;\n\t }\n\n\t function getFractionalBits(n) {\n\t return ((n - (n | 0)) * 0x100000000) | 0;\n\t }\n\n\t var n = 2;\n\t var nPrime = 0;\n\t while (nPrime < 64) {\n\t if (isPrime(n)) {\n\t if (nPrime < 8) {\n\t H[nPrime] = getFractionalBits(Math.pow(n, 1 / 2));\n\t }\n\t K[nPrime] = getFractionalBits(Math.pow(n, 1 / 3));\n\n\t nPrime++;\n\t }\n\n\t n++;\n\t }\n\t }());\n\n\t // Reusable object\n\t var W = [];\n\n\t /**\n\t * SHA-256 hash algorithm.\n\t */\n\t var SHA256 = C_algo.SHA256 = Hasher.extend({\n\t _doReset: function () {\n\t this._hash = new WordArray.init(H.slice(0));\n\t },\n\n\t _doProcessBlock: function (M, offset) {\n\t // Shortcut\n\t var H = this._hash.words;\n\n\t // Working variables\n\t var a = H[0];\n\t var b = H[1];\n\t var c = H[2];\n\t var d = H[3];\n\t var e = H[4];\n\t var f = H[5];\n\t var g = H[6];\n\t var h = H[7];\n\n\t // Computation\n\t for (var i = 0; i < 64; i++) {\n\t if (i < 16) {\n\t W[i] = M[offset + i] | 0;\n\t } else {\n\t var gamma0x = W[i - 15];\n\t var gamma0 = ((gamma0x << 25) | (gamma0x >>> 7)) ^\n\t ((gamma0x << 14) | (gamma0x >>> 18)) ^\n\t (gamma0x >>> 3);\n\n\t var gamma1x = W[i - 2];\n\t var gamma1 = ((gamma1x << 15) | (gamma1x >>> 17)) ^\n\t ((gamma1x << 13) | (gamma1x >>> 19)) ^\n\t (gamma1x >>> 10);\n\n\t W[i] = gamma0 + W[i - 7] + gamma1 + W[i - 16];\n\t }\n\n\t var ch = (e & f) ^ (~e & g);\n\t var maj = (a & b) ^ (a & c) ^ (b & c);\n\n\t var sigma0 = ((a << 30) | (a >>> 2)) ^ ((a << 19) | (a >>> 13)) ^ ((a << 10) | (a >>> 22));\n\t var sigma1 = ((e << 26) | (e >>> 6)) ^ ((e << 21) | (e >>> 11)) ^ ((e << 7) | (e >>> 25));\n\n\t var t1 = h + sigma1 + ch + K[i] + W[i];\n\t var t2 = sigma0 + maj;\n\n\t h = g;\n\t g = f;\n\t f = e;\n\t e = (d + t1) | 0;\n\t d = c;\n\t c = b;\n\t b = a;\n\t a = (t1 + t2) | 0;\n\t }\n\n\t // Intermediate hash value\n\t H[0] = (H[0] + a) | 0;\n\t H[1] = (H[1] + b) | 0;\n\t H[2] = (H[2] + c) | 0;\n\t H[3] = (H[3] + d) | 0;\n\t H[4] = (H[4] + e) | 0;\n\t H[5] = (H[5] + f) | 0;\n\t H[6] = (H[6] + g) | 0;\n\t H[7] = (H[7] + h) | 0;\n\t },\n\n\t _doFinalize: function () {\n\t // Shortcuts\n\t var data = this._data;\n\t var dataWords = data.words;\n\n\t var nBitsTotal = this._nDataBytes * 8;\n\t var nBitsLeft = data.sigBytes * 8;\n\n\t // Add padding\n\t dataWords[nBitsLeft >>> 5] |= 0x80 << (24 - nBitsLeft % 32);\n\t dataWords[(((nBitsLeft + 64) >>> 9) << 4) + 14] = Math.floor(nBitsTotal / 0x100000000);\n\t dataWords[(((nBitsLeft + 64) >>> 9) << 4) + 15] = nBitsTotal;\n\t data.sigBytes = dataWords.length * 4;\n\n\t // Hash final blocks\n\t this._process();\n\n\t // Return final computed hash\n\t return this._hash;\n\t },\n\n\t clone: function () {\n\t var clone = Hasher.clone.call(this);\n\t clone._hash = this._hash.clone();\n\n\t return clone;\n\t }\n\t });\n\n\t /**\n\t * Shortcut function to the hasher's object interface.\n\t *\n\t * @param {WordArray|string} message The message to hash.\n\t *\n\t * @return {WordArray} The hash.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var hash = CryptoJS.SHA256('message');\n\t * var hash = CryptoJS.SHA256(wordArray);\n\t */\n\t C.SHA256 = Hasher._createHelper(SHA256);\n\n\t /**\n\t * Shortcut function to the HMAC's object interface.\n\t *\n\t * @param {WordArray|string} message The message to hash.\n\t * @param {WordArray|string} key The secret key.\n\t *\n\t * @return {WordArray} The HMAC.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var hmac = CryptoJS.HmacSHA256(message, key);\n\t */\n\t C.HmacSHA256 = Hasher._createHmacHelper(SHA256);\n\t}(Math));\n\n\n\treturn CryptoJS.SHA256;\n\n}));","'use strict';\n\nvar reactIs = require('react-is');\n\n/**\n * Copyright 2015, Yahoo! Inc.\n * Copyrights licensed under the New BSD License. See the accompanying LICENSE file for terms.\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;\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;\n","/*! 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\n i += d\n\n e = s & ((1 << (-nBits)) - 1)\n s >>= (-nBits)\n nBits += eLen\n for (; nBits > 0; e = (e * 256) + buffer[offset + i], i += d, nBits -= 8) {}\n\n m = e & ((1 << (-nBits)) - 1)\n e >>= (-nBits)\n nBits += mLen\n for (; nBits > 0; m = (m * 256) + buffer[offset + i], i += d, nBits -= 8) {}\n\n if (e === 0) {\n e = 1 - eBias\n } else if (e === eMax) {\n return m ? NaN : ((s ? -1 : 1) * Infinity)\n } else {\n m = m + Math.pow(2, mLen)\n e = e - eBias\n }\n return (s ? -1 : 1) * m * Math.pow(2, e - mLen)\n}\n\nexports.write = function (buffer, value, offset, isLE, mLen, nBytes) {\n var e, m, c\n var eLen = (nBytes * 8) - mLen - 1\n var eMax = (1 << eLen) - 1\n var eBias = eMax >> 1\n var rt = (mLen === 23 ? Math.pow(2, -24) - Math.pow(2, -77) : 0)\n var i = isLE ? 0 : (nBytes - 1)\n var d = isLE ? 1 : -1\n var s = value < 0 || (value === 0 && 1 / value < 0) ? 1 : 0\n\n value = Math.abs(value)\n\n if (isNaN(value) || value === Infinity) {\n m = isNaN(value) ? 1 : 0\n e = eMax\n } else {\n e = Math.floor(Math.log(value) / Math.LN2)\n if (value * (c = Math.pow(2, -e)) < 1) {\n e--\n c *= 2\n }\n if (e + eBias >= 1) {\n value += rt / c\n } else {\n value += rt * Math.pow(2, 1 - eBias)\n }\n if (value * c >= 2) {\n e++\n c /= 2\n }\n\n if (e + eBias >= eMax) {\n m = 0\n e = eMax\n } else if (e + eBias >= 1) {\n m = ((value * c) - 1) * Math.pow(2, mLen)\n e = e + eBias\n } else {\n m = value * Math.pow(2, eBias - 1) * Math.pow(2, mLen)\n e = 0\n }\n }\n\n for (; mLen >= 8; buffer[offset + i] = m & 0xff, i += d, m /= 256, mLen -= 8) {}\n\n e = (e << mLen) | m\n eLen += mLen\n for (; eLen > 0; buffer[offset + i] = e & 0xff, i += d, e /= 256, eLen -= 8) {}\n\n buffer[offset + i - d] |= s * 128\n}\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\n/**\n * Use invariant() to assert state which your program assumes to be true.\n *\n * Provide sprintf-style format (only %s is supported) and arguments\n * to provide information about what broke and what you were\n * expecting.\n *\n * The invariant message will be stripped in production, but the invariant\n * will remain to ensure logic does not differ in production.\n */\n\nvar invariant = function(condition, format, a, b, c, d, e, f) {\n if (process.env.NODE_ENV !== 'production') {\n if (format === undefined) {\n throw new Error('invariant requires an error message argument');\n }\n }\n\n if (!condition) {\n var error;\n if (format === undefined) {\n error = new Error(\n 'Minified exception occurred; use the non-minified dev environment ' +\n 'for the full error message and additional helpful warnings.'\n );\n } else {\n var args = [a, b, c, d, e, f];\n var argIndex = 0;\n error = new Error(\n format.replace(/%s/g, function() { return args[argIndex++]; })\n );\n error.name = 'Invariant Violation';\n }\n\n error.framesToPop = 1; // we don't care about invariant's own frame\n throw error;\n }\n};\n\nmodule.exports = invariant;\n","module.exports = Array.isArray || function (arr) {\n return Object.prototype.toString.call(arr) == '[object Array]';\n};\n","var toString = {}.toString;\n\nmodule.exports = Array.isArray || function (arr) {\n return toString.call(arr) == '[object Array]';\n};\n","module.exports = self.fetch || (self.fetch = require('unfetch').default || require('unfetch'));\n","/*!\n * JavaScript Cookie v2.2.1\n * https://github.com/js-cookie/js-cookie\n *\n * Copyright 2006, 2015 Klaus Hartl & Fagner Brack\n * Released under the MIT license\n */\n;(function (factory) {\n\tvar registeredInModuleLoader;\n\tif (typeof define === 'function' && define.amd) {\n\t\tdefine(factory);\n\t\tregisteredInModuleLoader = true;\n\t}\n\tif (typeof exports === 'object') {\n\t\tmodule.exports = factory();\n\t\tregisteredInModuleLoader = true;\n\t}\n\tif (!registeredInModuleLoader) {\n\t\tvar OldCookies = window.Cookies;\n\t\tvar api = window.Cookies = factory();\n\t\tapi.noConflict = function () {\n\t\t\twindow.Cookies = OldCookies;\n\t\t\treturn api;\n\t\t};\n\t}\n}(function () {\n\tfunction extend () {\n\t\tvar i = 0;\n\t\tvar result = {};\n\t\tfor (; i < arguments.length; i++) {\n\t\t\tvar attributes = arguments[ i ];\n\t\t\tfor (var key in attributes) {\n\t\t\t\tresult[key] = attributes[key];\n\t\t\t}\n\t\t}\n\t\treturn result;\n\t}\n\n\tfunction decode (s) {\n\t\treturn s.replace(/(%[0-9A-Z]{2})+/g, decodeURIComponent);\n\t}\n\n\tfunction init (converter) {\n\t\tfunction api() {}\n\n\t\tfunction set (key, value, attributes) {\n\t\t\tif (typeof document === 'undefined') {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tattributes = extend({\n\t\t\t\tpath: '/'\n\t\t\t}, api.defaults, attributes);\n\n\t\t\tif (typeof attributes.expires === 'number') {\n\t\t\t\tattributes.expires = new Date(new Date() * 1 + attributes.expires * 864e+5);\n\t\t\t}\n\n\t\t\t// We're using \"expires\" because \"max-age\" is not supported by IE\n\t\t\tattributes.expires = attributes.expires ? attributes.expires.toUTCString() : '';\n\n\t\t\ttry {\n\t\t\t\tvar result = JSON.stringify(value);\n\t\t\t\tif (/^[\\{\\[]/.test(result)) {\n\t\t\t\t\tvalue = result;\n\t\t\t\t}\n\t\t\t} catch (e) {}\n\n\t\t\tvalue = converter.write ?\n\t\t\t\tconverter.write(value, key) :\n\t\t\t\tencodeURIComponent(String(value))\n\t\t\t\t\t.replace(/%(23|24|26|2B|3A|3C|3E|3D|2F|3F|40|5B|5D|5E|60|7B|7D|7C)/g, decodeURIComponent);\n\n\t\t\tkey = encodeURIComponent(String(key))\n\t\t\t\t.replace(/%(23|24|26|2B|5E|60|7C)/g, decodeURIComponent)\n\t\t\t\t.replace(/[\\(\\)]/g, escape);\n\n\t\t\tvar stringifiedAttributes = '';\n\t\t\tfor (var attributeName in attributes) {\n\t\t\t\tif (!attributes[attributeName]) {\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\t\t\t\tstringifiedAttributes += '; ' + attributeName;\n\t\t\t\tif (attributes[attributeName] === true) {\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\n\t\t\t\t// Considers RFC 6265 section 5.2:\n\t\t\t\t// ...\n\t\t\t\t// 3. If the remaining unparsed-attributes contains a %x3B (\";\")\n\t\t\t\t// character:\n\t\t\t\t// Consume the characters of the unparsed-attributes up to,\n\t\t\t\t// not including, the first %x3B (\";\") character.\n\t\t\t\t// ...\n\t\t\t\tstringifiedAttributes += '=' + attributes[attributeName].split(';')[0];\n\t\t\t}\n\n\t\t\treturn (document.cookie = key + '=' + value + stringifiedAttributes);\n\t\t}\n\n\t\tfunction get (key, json) {\n\t\t\tif (typeof document === 'undefined') {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tvar jar = {};\n\t\t\t// To prevent the for loop in the first place assign an empty array\n\t\t\t// in case there are no cookies at all.\n\t\t\tvar cookies = document.cookie ? document.cookie.split('; ') : [];\n\t\t\tvar i = 0;\n\n\t\t\tfor (; i < cookies.length; i++) {\n\t\t\t\tvar parts = cookies[i].split('=');\n\t\t\t\tvar cookie = parts.slice(1).join('=');\n\n\t\t\t\tif (!json && cookie.charAt(0) === '\"') {\n\t\t\t\t\tcookie = cookie.slice(1, -1);\n\t\t\t\t}\n\n\t\t\t\ttry {\n\t\t\t\t\tvar name = decode(parts[0]);\n\t\t\t\t\tcookie = (converter.read || converter)(cookie, name) ||\n\t\t\t\t\t\tdecode(cookie);\n\n\t\t\t\t\tif (json) {\n\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\tcookie = JSON.parse(cookie);\n\t\t\t\t\t\t} catch (e) {}\n\t\t\t\t\t}\n\n\t\t\t\t\tjar[name] = cookie;\n\n\t\t\t\t\tif (key === name) {\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t} catch (e) {}\n\t\t\t}\n\n\t\t\treturn key ? jar[key] : jar;\n\t\t}\n\n\t\tapi.set = set;\n\t\tapi.get = function (key) {\n\t\t\treturn get(key, false /* read as raw */);\n\t\t};\n\t\tapi.getJSON = function (key) {\n\t\t\treturn get(key, true /* read as json */);\n\t\t};\n\t\tapi.remove = function (key, attributes) {\n\t\t\tset(key, '', extend(attributes, {\n\t\t\t\texpires: -1\n\t\t\t}));\n\t\t};\n\n\t\tapi.defaults = {};\n\n\t\tapi.withConverter = init;\n\n\t\treturn api;\n\t}\n\n\treturn init(function () {});\n}));\n","var getNative = require('./_getNative'),\n root = require('./_root');\n\n/* Built-in method references that are verified to be native. */\nvar DataView = getNative(root, 'DataView');\n\nmodule.exports = DataView;\n","var hashClear = require('./_hashClear'),\n hashDelete = require('./_hashDelete'),\n hashGet = require('./_hashGet'),\n hashHas = require('./_hashHas'),\n hashSet = require('./_hashSet');\n\n/**\n * Creates a hash object.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction Hash(entries) {\n var index = -1,\n length = entries == null ? 0 : entries.length;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n// Add methods to `Hash`.\nHash.prototype.clear = hashClear;\nHash.prototype['delete'] = hashDelete;\nHash.prototype.get = hashGet;\nHash.prototype.has = hashHas;\nHash.prototype.set = hashSet;\n\nmodule.exports = Hash;\n","var listCacheClear = require('./_listCacheClear'),\n listCacheDelete = require('./_listCacheDelete'),\n listCacheGet = require('./_listCacheGet'),\n listCacheHas = require('./_listCacheHas'),\n listCacheSet = require('./_listCacheSet');\n\n/**\n * Creates an list cache object.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction ListCache(entries) {\n var index = -1,\n length = entries == null ? 0 : entries.length;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n// Add methods to `ListCache`.\nListCache.prototype.clear = listCacheClear;\nListCache.prototype['delete'] = listCacheDelete;\nListCache.prototype.get = listCacheGet;\nListCache.prototype.has = listCacheHas;\nListCache.prototype.set = listCacheSet;\n\nmodule.exports = ListCache;\n","var getNative = require('./_getNative'),\n root = require('./_root');\n\n/* Built-in method references that are verified to be native. */\nvar Map = getNative(root, 'Map');\n\nmodule.exports = Map;\n","var mapCacheClear = require('./_mapCacheClear'),\n mapCacheDelete = require('./_mapCacheDelete'),\n mapCacheGet = require('./_mapCacheGet'),\n mapCacheHas = require('./_mapCacheHas'),\n mapCacheSet = require('./_mapCacheSet');\n\n/**\n * Creates a map cache object to store key-value pairs.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction MapCache(entries) {\n var index = -1,\n length = entries == null ? 0 : entries.length;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n// Add methods to `MapCache`.\nMapCache.prototype.clear = mapCacheClear;\nMapCache.prototype['delete'] = mapCacheDelete;\nMapCache.prototype.get = mapCacheGet;\nMapCache.prototype.has = mapCacheHas;\nMapCache.prototype.set = mapCacheSet;\n\nmodule.exports = MapCache;\n","var getNative = require('./_getNative'),\n root = require('./_root');\n\n/* Built-in method references that are verified to be native. */\nvar Promise = getNative(root, 'Promise');\n\nmodule.exports = Promise;\n","var getNative = require('./_getNative'),\n root = require('./_root');\n\n/* Built-in method references that are verified to be native. */\nvar Set = getNative(root, 'Set');\n\nmodule.exports = Set;\n","var MapCache = require('./_MapCache'),\n setCacheAdd = require('./_setCacheAdd'),\n setCacheHas = require('./_setCacheHas');\n\n/**\n *\n * Creates an array cache object to store unique values.\n *\n * @private\n * @constructor\n * @param {Array} [values] The values to cache.\n */\nfunction SetCache(values) {\n var index = -1,\n length = values == null ? 0 : values.length;\n\n this.__data__ = new MapCache;\n while (++index < length) {\n this.add(values[index]);\n }\n}\n\n// Add methods to `SetCache`.\nSetCache.prototype.add = SetCache.prototype.push = setCacheAdd;\nSetCache.prototype.has = setCacheHas;\n\nmodule.exports = SetCache;\n","var ListCache = require('./_ListCache'),\n stackClear = require('./_stackClear'),\n stackDelete = require('./_stackDelete'),\n stackGet = require('./_stackGet'),\n stackHas = require('./_stackHas'),\n stackSet = require('./_stackSet');\n\n/**\n * Creates a stack cache object to store key-value pairs.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction Stack(entries) {\n var data = this.__data__ = new ListCache(entries);\n this.size = data.size;\n}\n\n// Add methods to `Stack`.\nStack.prototype.clear = stackClear;\nStack.prototype['delete'] = stackDelete;\nStack.prototype.get = stackGet;\nStack.prototype.has = stackHas;\nStack.prototype.set = stackSet;\n\nmodule.exports = Stack;\n","var root = require('./_root');\n\n/** Built-in value references. */\nvar Symbol = root.Symbol;\n\nmodule.exports = Symbol;\n","var root = require('./_root');\n\n/** Built-in value references. */\nvar Uint8Array = root.Uint8Array;\n\nmodule.exports = Uint8Array;\n","var getNative = require('./_getNative'),\n root = require('./_root');\n\n/* Built-in method references that are verified to be native. */\nvar WeakMap = getNative(root, 'WeakMap');\n\nmodule.exports = WeakMap;\n","/**\n * A specialized version of `_.filter` for arrays without support for\n * iteratee shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} predicate The function invoked per iteration.\n * @returns {Array} Returns the new filtered array.\n */\nfunction arrayFilter(array, predicate) {\n var index = -1,\n length = array == null ? 0 : array.length,\n resIndex = 0,\n result = [];\n\n while (++index < length) {\n var value = array[index];\n if (predicate(value, index, array)) {\n result[resIndex++] = value;\n }\n }\n return result;\n}\n\nmodule.exports = arrayFilter;\n","var baseTimes = require('./_baseTimes'),\n isArguments = require('./isArguments'),\n isArray = require('./isArray'),\n isBuffer = require('./isBuffer'),\n isIndex = require('./_isIndex'),\n isTypedArray = require('./isTypedArray');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Creates an array of the enumerable property names of the array-like `value`.\n *\n * @private\n * @param {*} value The value to query.\n * @param {boolean} inherited Specify returning inherited property names.\n * @returns {Array} Returns the array of property names.\n */\nfunction arrayLikeKeys(value, inherited) {\n var isArr = isArray(value),\n isArg = !isArr && isArguments(value),\n isBuff = !isArr && !isArg && isBuffer(value),\n isType = !isArr && !isArg && !isBuff && isTypedArray(value),\n skipIndexes = isArr || isArg || isBuff || isType,\n result = skipIndexes ? baseTimes(value.length, String) : [],\n length = result.length;\n\n for (var key in value) {\n if ((inherited || hasOwnProperty.call(value, key)) &&\n !(skipIndexes && (\n // Safari 9 has enumerable `arguments.length` in strict mode.\n key == 'length' ||\n // Node.js 0.10 has enumerable non-index properties on buffers.\n (isBuff && (key == 'offset' || key == 'parent')) ||\n // PhantomJS 2 has enumerable non-index properties on typed arrays.\n (isType && (key == 'buffer' || key == 'byteLength' || key == 'byteOffset')) ||\n // Skip index properties.\n isIndex(key, length)\n ))) {\n result.push(key);\n }\n }\n return result;\n}\n\nmodule.exports = arrayLikeKeys;\n","/**\n * A specialized version of `_.map` for arrays without support for iteratee\n * shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns the new mapped array.\n */\nfunction arrayMap(array, iteratee) {\n var index = -1,\n length = array == null ? 0 : array.length,\n result = Array(length);\n\n while (++index < length) {\n result[index] = iteratee(array[index], index, array);\n }\n return result;\n}\n\nmodule.exports = arrayMap;\n","/**\n * Appends the elements of `values` to `array`.\n *\n * @private\n * @param {Array} array The array to modify.\n * @param {Array} values The values to append.\n * @returns {Array} Returns `array`.\n */\nfunction arrayPush(array, values) {\n var index = -1,\n length = values.length,\n offset = array.length;\n\n while (++index < length) {\n array[offset + index] = values[index];\n }\n return array;\n}\n\nmodule.exports = arrayPush;\n","/**\n * A specialized version of `_.reduce` for arrays without support for\n * iteratee shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @param {*} [accumulator] The initial value.\n * @param {boolean} [initAccum] Specify using the first element of `array` as\n * the initial value.\n * @returns {*} Returns the accumulated value.\n */\nfunction arrayReduce(array, iteratee, accumulator, initAccum) {\n var index = -1,\n length = array == null ? 0 : array.length;\n\n if (initAccum && length) {\n accumulator = array[++index];\n }\n while (++index < length) {\n accumulator = iteratee(accumulator, array[index], index, array);\n }\n return accumulator;\n}\n\nmodule.exports = arrayReduce;\n","/**\n * A specialized version of `_.some` for arrays without support for iteratee\n * shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} predicate The function invoked per iteration.\n * @returns {boolean} Returns `true` if any element passes the predicate check,\n * else `false`.\n */\nfunction arraySome(array, predicate) {\n var index = -1,\n length = array == null ? 0 : array.length;\n\n while (++index < length) {\n if (predicate(array[index], index, array)) {\n return true;\n }\n }\n return false;\n}\n\nmodule.exports = arraySome;\n","/**\n * Converts an ASCII `string` to an array.\n *\n * @private\n * @param {string} string The string to convert.\n * @returns {Array} Returns the converted array.\n */\nfunction asciiToArray(string) {\n return string.split('');\n}\n\nmodule.exports = asciiToArray;\n","/** Used to match words composed of alphanumeric characters. */\nvar reAsciiWord = /[^\\x00-\\x2f\\x3a-\\x40\\x5b-\\x60\\x7b-\\x7f]+/g;\n\n/**\n * Splits an ASCII `string` into an array of its words.\n *\n * @private\n * @param {string} The string to inspect.\n * @returns {Array} Returns the words of `string`.\n */\nfunction asciiWords(string) {\n return string.match(reAsciiWord) || [];\n}\n\nmodule.exports = asciiWords;\n","var eq = require('./eq');\n\n/**\n * Gets the index at which the `key` is found in `array` of key-value pairs.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {*} key The key to search for.\n * @returns {number} Returns the index of the matched value, else `-1`.\n */\nfunction assocIndexOf(array, key) {\n var length = array.length;\n while (length--) {\n if (eq(array[length][0], key)) {\n return length;\n }\n }\n return -1;\n}\n\nmodule.exports = assocIndexOf;\n","var defineProperty = require('./_defineProperty');\n\n/**\n * The base implementation of `assignValue` and `assignMergeValue` without\n * value checks.\n *\n * @private\n * @param {Object} object The object to modify.\n * @param {string} key The key of the property to assign.\n * @param {*} value The value to assign.\n */\nfunction baseAssignValue(object, key, value) {\n if (key == '__proto__' && defineProperty) {\n defineProperty(object, key, {\n 'configurable': true,\n 'enumerable': true,\n 'value': value,\n 'writable': true\n });\n } else {\n object[key] = value;\n }\n}\n\nmodule.exports = baseAssignValue;\n","var createBaseFor = require('./_createBaseFor');\n\n/**\n * The base implementation of `baseForOwn` which iterates over `object`\n * properties returned by `keysFunc` and invokes `iteratee` for each property.\n * Iteratee functions may exit iteration early by explicitly returning `false`.\n *\n * @private\n * @param {Object} object The object to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @param {Function} keysFunc The function to get the keys of `object`.\n * @returns {Object} Returns `object`.\n */\nvar baseFor = createBaseFor();\n\nmodule.exports = baseFor;\n","var baseFor = require('./_baseFor'),\n keys = require('./keys');\n\n/**\n * The base implementation of `_.forOwn` without support for iteratee shorthands.\n *\n * @private\n * @param {Object} object The object to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Object} Returns `object`.\n */\nfunction baseForOwn(object, iteratee) {\n return object && baseFor(object, iteratee, keys);\n}\n\nmodule.exports = baseForOwn;\n","var castPath = require('./_castPath'),\n toKey = require('./_toKey');\n\n/**\n * The base implementation of `_.get` without support for default values.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {Array|string} path The path of the property to get.\n * @returns {*} Returns the resolved value.\n */\nfunction baseGet(object, path) {\n path = castPath(path, object);\n\n var index = 0,\n length = path.length;\n\n while (object != null && index < length) {\n object = object[toKey(path[index++])];\n }\n return (index && index == length) ? object : undefined;\n}\n\nmodule.exports = baseGet;\n","var arrayPush = require('./_arrayPush'),\n isArray = require('./isArray');\n\n/**\n * The base implementation of `getAllKeys` and `getAllKeysIn` which uses\n * `keysFunc` and `symbolsFunc` to get the enumerable property names and\n * symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {Function} keysFunc The function to get the keys of `object`.\n * @param {Function} symbolsFunc The function to get the symbols of `object`.\n * @returns {Array} Returns the array of property names and symbols.\n */\nfunction baseGetAllKeys(object, keysFunc, symbolsFunc) {\n var result = keysFunc(object);\n return isArray(object) ? result : arrayPush(result, symbolsFunc(object));\n}\n\nmodule.exports = baseGetAllKeys;\n","var Symbol = require('./_Symbol'),\n getRawTag = require('./_getRawTag'),\n objectToString = require('./_objectToString');\n\n/** `Object#toString` result references. */\nvar nullTag = '[object Null]',\n undefinedTag = '[object Undefined]';\n\n/** Built-in value references. */\nvar symToStringTag = Symbol ? Symbol.toStringTag : undefined;\n\n/**\n * The base implementation of `getTag` without fallbacks for buggy environments.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the `toStringTag`.\n */\nfunction baseGetTag(value) {\n if (value == null) {\n return value === undefined ? undefinedTag : nullTag;\n }\n return (symToStringTag && symToStringTag in Object(value))\n ? getRawTag(value)\n : objectToString(value);\n}\n\nmodule.exports = baseGetTag;\n","/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * The base implementation of `_.has` without support for deep paths.\n *\n * @private\n * @param {Object} [object] The object to query.\n * @param {Array|string} key The key to check.\n * @returns {boolean} Returns `true` if `key` exists, else `false`.\n */\nfunction baseHas(object, key) {\n return object != null && hasOwnProperty.call(object, key);\n}\n\nmodule.exports = baseHas;\n","/**\n * The base implementation of `_.hasIn` without support for deep paths.\n *\n * @private\n * @param {Object} [object] The object to query.\n * @param {Array|string} key The key to check.\n * @returns {boolean} Returns `true` if `key` exists, else `false`.\n */\nfunction baseHasIn(object, key) {\n return object != null && key in Object(object);\n}\n\nmodule.exports = baseHasIn;\n","var baseGetTag = require('./_baseGetTag'),\n isObjectLike = require('./isObjectLike');\n\n/** `Object#toString` result references. */\nvar argsTag = '[object Arguments]';\n\n/**\n * The base implementation of `_.isArguments`.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an `arguments` object,\n */\nfunction baseIsArguments(value) {\n return isObjectLike(value) && baseGetTag(value) == argsTag;\n}\n\nmodule.exports = baseIsArguments;\n","var baseIsEqualDeep = require('./_baseIsEqualDeep'),\n isObjectLike = require('./isObjectLike');\n\n/**\n * The base implementation of `_.isEqual` which supports partial comparisons\n * and tracks traversed objects.\n *\n * @private\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @param {boolean} bitmask The bitmask flags.\n * 1 - Unordered comparison\n * 2 - Partial comparison\n * @param {Function} [customizer] The function to customize comparisons.\n * @param {Object} [stack] Tracks traversed `value` and `other` objects.\n * @returns {boolean} Returns `true` if the values are equivalent, else `false`.\n */\nfunction baseIsEqual(value, other, bitmask, customizer, stack) {\n if (value === other) {\n return true;\n }\n if (value == null || other == null || (!isObjectLike(value) && !isObjectLike(other))) {\n return value !== value && other !== other;\n }\n return baseIsEqualDeep(value, other, bitmask, customizer, baseIsEqual, stack);\n}\n\nmodule.exports = baseIsEqual;\n","var Stack = require('./_Stack'),\n equalArrays = require('./_equalArrays'),\n equalByTag = require('./_equalByTag'),\n equalObjects = require('./_equalObjects'),\n getTag = require('./_getTag'),\n isArray = require('./isArray'),\n isBuffer = require('./isBuffer'),\n isTypedArray = require('./isTypedArray');\n\n/** Used to compose bitmasks for value comparisons. */\nvar COMPARE_PARTIAL_FLAG = 1;\n\n/** `Object#toString` result references. */\nvar argsTag = '[object Arguments]',\n arrayTag = '[object Array]',\n objectTag = '[object Object]';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * A specialized version of `baseIsEqual` for arrays and objects which performs\n * deep comparisons and tracks traversed objects enabling objects with circular\n * references to be compared.\n *\n * @private\n * @param {Object} object The object to compare.\n * @param {Object} other The other object to compare.\n * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.\n * @param {Function} customizer The function to customize comparisons.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Object} [stack] Tracks traversed `object` and `other` objects.\n * @returns {boolean} Returns `true` if the objects are equivalent, else `false`.\n */\nfunction baseIsEqualDeep(object, other, bitmask, customizer, equalFunc, stack) {\n var objIsArr = isArray(object),\n othIsArr = isArray(other),\n objTag = objIsArr ? arrayTag : getTag(object),\n othTag = othIsArr ? arrayTag : getTag(other);\n\n objTag = objTag == argsTag ? objectTag : objTag;\n othTag = othTag == argsTag ? objectTag : othTag;\n\n var objIsObj = objTag == objectTag,\n othIsObj = othTag == objectTag,\n isSameTag = objTag == othTag;\n\n if (isSameTag && isBuffer(object)) {\n if (!isBuffer(other)) {\n return false;\n }\n objIsArr = true;\n objIsObj = false;\n }\n if (isSameTag && !objIsObj) {\n stack || (stack = new Stack);\n return (objIsArr || isTypedArray(object))\n ? equalArrays(object, other, bitmask, customizer, equalFunc, stack)\n : equalByTag(object, other, objTag, bitmask, customizer, equalFunc, stack);\n }\n if (!(bitmask & COMPARE_PARTIAL_FLAG)) {\n var objIsWrapped = objIsObj && hasOwnProperty.call(object, '__wrapped__'),\n othIsWrapped = othIsObj && hasOwnProperty.call(other, '__wrapped__');\n\n if (objIsWrapped || othIsWrapped) {\n var objUnwrapped = objIsWrapped ? object.value() : object,\n othUnwrapped = othIsWrapped ? other.value() : other;\n\n stack || (stack = new Stack);\n return equalFunc(objUnwrapped, othUnwrapped, bitmask, customizer, stack);\n }\n }\n if (!isSameTag) {\n return false;\n }\n stack || (stack = new Stack);\n return equalObjects(object, other, bitmask, customizer, equalFunc, stack);\n}\n\nmodule.exports = baseIsEqualDeep;\n","var Stack = require('./_Stack'),\n baseIsEqual = require('./_baseIsEqual');\n\n/** Used to compose bitmasks for value comparisons. */\nvar COMPARE_PARTIAL_FLAG = 1,\n COMPARE_UNORDERED_FLAG = 2;\n\n/**\n * The base implementation of `_.isMatch` without support for iteratee shorthands.\n *\n * @private\n * @param {Object} object The object to inspect.\n * @param {Object} source The object of property values to match.\n * @param {Array} matchData The property names, values, and compare flags to match.\n * @param {Function} [customizer] The function to customize comparisons.\n * @returns {boolean} Returns `true` if `object` is a match, else `false`.\n */\nfunction baseIsMatch(object, source, matchData, customizer) {\n var index = matchData.length,\n length = index,\n noCustomizer = !customizer;\n\n if (object == null) {\n return !length;\n }\n object = Object(object);\n while (index--) {\n var data = matchData[index];\n if ((noCustomizer && data[2])\n ? data[1] !== object[data[0]]\n : !(data[0] in object)\n ) {\n return false;\n }\n }\n while (++index < length) {\n data = matchData[index];\n var key = data[0],\n objValue = object[key],\n srcValue = data[1];\n\n if (noCustomizer && data[2]) {\n if (objValue === undefined && !(key in object)) {\n return false;\n }\n } else {\n var stack = new Stack;\n if (customizer) {\n var result = customizer(objValue, srcValue, key, object, source, stack);\n }\n if (!(result === undefined\n ? baseIsEqual(srcValue, objValue, COMPARE_PARTIAL_FLAG | COMPARE_UNORDERED_FLAG, customizer, stack)\n : result\n )) {\n return false;\n }\n }\n }\n return true;\n}\n\nmodule.exports = baseIsMatch;\n","var isFunction = require('./isFunction'),\n isMasked = require('./_isMasked'),\n isObject = require('./isObject'),\n toSource = require('./_toSource');\n\n/**\n * Used to match `RegExp`\n * [syntax characters](http://ecma-international.org/ecma-262/7.0/#sec-patterns).\n */\nvar reRegExpChar = /[\\\\^$.*+?()[\\]{}|]/g;\n\n/** Used to detect host constructors (Safari). */\nvar reIsHostCtor = /^\\[object .+?Constructor\\]$/;\n\n/** Used for built-in method references. */\nvar funcProto = Function.prototype,\n objectProto = Object.prototype;\n\n/** Used to resolve the decompiled source of functions. */\nvar funcToString = funcProto.toString;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/** Used to detect if a method is native. */\nvar reIsNative = RegExp('^' +\n funcToString.call(hasOwnProperty).replace(reRegExpChar, '\\\\$&')\n .replace(/hasOwnProperty|(function).*?(?=\\\\\\()| for .+?(?=\\\\\\])/g, '$1.*?') + '$'\n);\n\n/**\n * The base implementation of `_.isNative` without bad shim checks.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a native function,\n * else `false`.\n */\nfunction baseIsNative(value) {\n if (!isObject(value) || isMasked(value)) {\n return false;\n }\n var pattern = isFunction(value) ? reIsNative : reIsHostCtor;\n return pattern.test(toSource(value));\n}\n\nmodule.exports = baseIsNative;\n","var baseGetTag = require('./_baseGetTag'),\n isLength = require('./isLength'),\n isObjectLike = require('./isObjectLike');\n\n/** `Object#toString` result references. */\nvar argsTag = '[object Arguments]',\n arrayTag = '[object Array]',\n boolTag = '[object Boolean]',\n dateTag = '[object Date]',\n errorTag = '[object Error]',\n funcTag = '[object Function]',\n mapTag = '[object Map]',\n numberTag = '[object Number]',\n objectTag = '[object Object]',\n regexpTag = '[object RegExp]',\n setTag = '[object Set]',\n stringTag = '[object String]',\n weakMapTag = '[object WeakMap]';\n\nvar arrayBufferTag = '[object ArrayBuffer]',\n dataViewTag = '[object DataView]',\n float32Tag = '[object Float32Array]',\n float64Tag = '[object Float64Array]',\n int8Tag = '[object Int8Array]',\n int16Tag = '[object Int16Array]',\n int32Tag = '[object Int32Array]',\n uint8Tag = '[object Uint8Array]',\n uint8ClampedTag = '[object Uint8ClampedArray]',\n uint16Tag = '[object Uint16Array]',\n uint32Tag = '[object Uint32Array]';\n\n/** Used to identify `toStringTag` values of typed arrays. */\nvar typedArrayTags = {};\ntypedArrayTags[float32Tag] = typedArrayTags[float64Tag] =\ntypedArrayTags[int8Tag] = typedArrayTags[int16Tag] =\ntypedArrayTags[int32Tag] = typedArrayTags[uint8Tag] =\ntypedArrayTags[uint8ClampedTag] = typedArrayTags[uint16Tag] =\ntypedArrayTags[uint32Tag] = true;\ntypedArrayTags[argsTag] = typedArrayTags[arrayTag] =\ntypedArrayTags[arrayBufferTag] = typedArrayTags[boolTag] =\ntypedArrayTags[dataViewTag] = typedArrayTags[dateTag] =\ntypedArrayTags[errorTag] = typedArrayTags[funcTag] =\ntypedArrayTags[mapTag] = typedArrayTags[numberTag] =\ntypedArrayTags[objectTag] = typedArrayTags[regexpTag] =\ntypedArrayTags[setTag] = typedArrayTags[stringTag] =\ntypedArrayTags[weakMapTag] = false;\n\n/**\n * The base implementation of `_.isTypedArray` without Node.js optimizations.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a typed array, else `false`.\n */\nfunction baseIsTypedArray(value) {\n return isObjectLike(value) &&\n isLength(value.length) && !!typedArrayTags[baseGetTag(value)];\n}\n\nmodule.exports = baseIsTypedArray;\n","var baseMatches = require('./_baseMatches'),\n baseMatchesProperty = require('./_baseMatchesProperty'),\n identity = require('./identity'),\n isArray = require('./isArray'),\n property = require('./property');\n\n/**\n * The base implementation of `_.iteratee`.\n *\n * @private\n * @param {*} [value=_.identity] The value to convert to an iteratee.\n * @returns {Function} Returns the iteratee.\n */\nfunction baseIteratee(value) {\n // Don't store the `typeof` result in a variable to avoid a JIT bug in Safari 9.\n // See https://bugs.webkit.org/show_bug.cgi?id=156034 for more details.\n if (typeof value == 'function') {\n return value;\n }\n if (value == null) {\n return identity;\n }\n if (typeof value == 'object') {\n return isArray(value)\n ? baseMatchesProperty(value[0], value[1])\n : baseMatches(value);\n }\n return property(value);\n}\n\nmodule.exports = baseIteratee;\n","var isPrototype = require('./_isPrototype'),\n nativeKeys = require('./_nativeKeys');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * The base implementation of `_.keys` which doesn't treat sparse arrays as dense.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n */\nfunction baseKeys(object) {\n if (!isPrototype(object)) {\n return nativeKeys(object);\n }\n var result = [];\n for (var key in Object(object)) {\n if (hasOwnProperty.call(object, key) && key != 'constructor') {\n result.push(key);\n }\n }\n return result;\n}\n\nmodule.exports = baseKeys;\n","var baseIsMatch = require('./_baseIsMatch'),\n getMatchData = require('./_getMatchData'),\n matchesStrictComparable = require('./_matchesStrictComparable');\n\n/**\n * The base implementation of `_.matches` which doesn't clone `source`.\n *\n * @private\n * @param {Object} source The object of property values to match.\n * @returns {Function} Returns the new spec function.\n */\nfunction baseMatches(source) {\n var matchData = getMatchData(source);\n if (matchData.length == 1 && matchData[0][2]) {\n return matchesStrictComparable(matchData[0][0], matchData[0][1]);\n }\n return function(object) {\n return object === source || baseIsMatch(object, source, matchData);\n };\n}\n\nmodule.exports = baseMatches;\n","var baseIsEqual = require('./_baseIsEqual'),\n get = require('./get'),\n hasIn = require('./hasIn'),\n isKey = require('./_isKey'),\n isStrictComparable = require('./_isStrictComparable'),\n matchesStrictComparable = require('./_matchesStrictComparable'),\n toKey = require('./_toKey');\n\n/** Used to compose bitmasks for value comparisons. */\nvar COMPARE_PARTIAL_FLAG = 1,\n COMPARE_UNORDERED_FLAG = 2;\n\n/**\n * The base implementation of `_.matchesProperty` which doesn't clone `srcValue`.\n *\n * @private\n * @param {string} path The path of the property to get.\n * @param {*} srcValue The value to match.\n * @returns {Function} Returns the new spec function.\n */\nfunction baseMatchesProperty(path, srcValue) {\n if (isKey(path) && isStrictComparable(srcValue)) {\n return matchesStrictComparable(toKey(path), srcValue);\n }\n return function(object) {\n var objValue = get(object, path);\n return (objValue === undefined && objValue === srcValue)\n ? hasIn(object, path)\n : baseIsEqual(srcValue, objValue, COMPARE_PARTIAL_FLAG | COMPARE_UNORDERED_FLAG);\n };\n}\n\nmodule.exports = baseMatchesProperty;\n","/**\n * The base implementation of `_.property` without support for deep paths.\n *\n * @private\n * @param {string} key The key of the property to get.\n * @returns {Function} Returns the new accessor function.\n */\nfunction baseProperty(key) {\n return function(object) {\n return object == null ? undefined : object[key];\n };\n}\n\nmodule.exports = baseProperty;\n","var baseGet = require('./_baseGet');\n\n/**\n * A specialized version of `baseProperty` which supports deep paths.\n *\n * @private\n * @param {Array|string} path The path of the property to get.\n * @returns {Function} Returns the new accessor function.\n */\nfunction basePropertyDeep(path) {\n return function(object) {\n return baseGet(object, path);\n };\n}\n\nmodule.exports = basePropertyDeep;\n","/**\n * The base implementation of `_.propertyOf` without support for deep paths.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Function} Returns the new accessor function.\n */\nfunction basePropertyOf(object) {\n return function(key) {\n return object == null ? undefined : object[key];\n };\n}\n\nmodule.exports = basePropertyOf;\n","/**\n * The base implementation of `_.slice` without an iteratee call guard.\n *\n * @private\n * @param {Array} array The array to slice.\n * @param {number} [start=0] The start position.\n * @param {number} [end=array.length] The end position.\n * @returns {Array} Returns the slice of `array`.\n */\nfunction baseSlice(array, start, end) {\n var index = -1,\n length = array.length;\n\n if (start < 0) {\n start = -start > length ? 0 : (length + start);\n }\n end = end > length ? length : end;\n if (end < 0) {\n end += length;\n }\n length = start > end ? 0 : ((end - start) >>> 0);\n start >>>= 0;\n\n var result = Array(length);\n while (++index < length) {\n result[index] = array[index + start];\n }\n return result;\n}\n\nmodule.exports = baseSlice;\n","/**\n * The base implementation of `_.times` without support for iteratee shorthands\n * or max array length checks.\n *\n * @private\n * @param {number} n The number of times to invoke `iteratee`.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns the array of results.\n */\nfunction baseTimes(n, iteratee) {\n var index = -1,\n result = Array(n);\n\n while (++index < n) {\n result[index] = iteratee(index);\n }\n return result;\n}\n\nmodule.exports = baseTimes;\n","var Symbol = require('./_Symbol'),\n arrayMap = require('./_arrayMap'),\n isArray = require('./isArray'),\n isSymbol = require('./isSymbol');\n\n/** Used as references for various `Number` constants. */\nvar INFINITY = 1 / 0;\n\n/** Used to convert symbols to primitives and strings. */\nvar symbolProto = Symbol ? Symbol.prototype : undefined,\n symbolToString = symbolProto ? symbolProto.toString : undefined;\n\n/**\n * The base implementation of `_.toString` which doesn't convert nullish\n * values to empty strings.\n *\n * @private\n * @param {*} value The value to process.\n * @returns {string} Returns the string.\n */\nfunction baseToString(value) {\n // Exit early for strings to avoid a performance hit in some environments.\n if (typeof value == 'string') {\n return value;\n }\n if (isArray(value)) {\n // Recursively convert values (susceptible to call stack limits).\n return arrayMap(value, baseToString) + '';\n }\n if (isSymbol(value)) {\n return symbolToString ? symbolToString.call(value) : '';\n }\n var result = (value + '');\n return (result == '0' && (1 / value) == -INFINITY) ? '-0' : result;\n}\n\nmodule.exports = baseToString;\n","/**\n * The base implementation of `_.unary` without support for storing metadata.\n *\n * @private\n * @param {Function} func The function to cap arguments for.\n * @returns {Function} Returns the new capped function.\n */\nfunction baseUnary(func) {\n return function(value) {\n return func(value);\n };\n}\n\nmodule.exports = baseUnary;\n","/**\n * Checks if a `cache` value for `key` exists.\n *\n * @private\n * @param {Object} cache The cache to query.\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction cacheHas(cache, key) {\n return cache.has(key);\n}\n\nmodule.exports = cacheHas;\n","var isArray = require('./isArray'),\n isKey = require('./_isKey'),\n stringToPath = require('./_stringToPath'),\n toString = require('./toString');\n\n/**\n * Casts `value` to a path array if it's not one.\n *\n * @private\n * @param {*} value The value to inspect.\n * @param {Object} [object] The object to query keys on.\n * @returns {Array} Returns the cast property path array.\n */\nfunction castPath(value, object) {\n if (isArray(value)) {\n return value;\n }\n return isKey(value, object) ? [value] : stringToPath(toString(value));\n}\n\nmodule.exports = castPath;\n","var baseSlice = require('./_baseSlice');\n\n/**\n * Casts `array` to a slice if it's needed.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {number} start The start position.\n * @param {number} [end=array.length] The end position.\n * @returns {Array} Returns the cast slice.\n */\nfunction castSlice(array, start, end) {\n var length = array.length;\n end = end === undefined ? length : end;\n return (!start && end >= length) ? array : baseSlice(array, start, end);\n}\n\nmodule.exports = castSlice;\n","var root = require('./_root');\n\n/** Used to detect overreaching core-js shims. */\nvar coreJsData = root['__core-js_shared__'];\n\nmodule.exports = coreJsData;\n","/**\n * Creates a base function for methods like `_.forIn` and `_.forOwn`.\n *\n * @private\n * @param {boolean} [fromRight] Specify iterating from right to left.\n * @returns {Function} Returns the new base function.\n */\nfunction createBaseFor(fromRight) {\n return function(object, iteratee, keysFunc) {\n var index = -1,\n iterable = Object(object),\n props = keysFunc(object),\n length = props.length;\n\n while (length--) {\n var key = props[fromRight ? length : ++index];\n if (iteratee(iterable[key], key, iterable) === false) {\n break;\n }\n }\n return object;\n };\n}\n\nmodule.exports = createBaseFor;\n","var castSlice = require('./_castSlice'),\n hasUnicode = require('./_hasUnicode'),\n stringToArray = require('./_stringToArray'),\n toString = require('./toString');\n\n/**\n * Creates a function like `_.lowerFirst`.\n *\n * @private\n * @param {string} methodName The name of the `String` case method to use.\n * @returns {Function} Returns the new case function.\n */\nfunction createCaseFirst(methodName) {\n return function(string) {\n string = toString(string);\n\n var strSymbols = hasUnicode(string)\n ? stringToArray(string)\n : undefined;\n\n var chr = strSymbols\n ? strSymbols[0]\n : string.charAt(0);\n\n var trailing = strSymbols\n ? castSlice(strSymbols, 1).join('')\n : string.slice(1);\n\n return chr[methodName]() + trailing;\n };\n}\n\nmodule.exports = createCaseFirst;\n","var arrayReduce = require('./_arrayReduce'),\n deburr = require('./deburr'),\n words = require('./words');\n\n/** Used to compose unicode capture groups. */\nvar rsApos = \"['\\u2019]\";\n\n/** Used to match apostrophes. */\nvar reApos = RegExp(rsApos, 'g');\n\n/**\n * Creates a function like `_.camelCase`.\n *\n * @private\n * @param {Function} callback The function to combine each word.\n * @returns {Function} Returns the new compounder function.\n */\nfunction createCompounder(callback) {\n return function(string) {\n return arrayReduce(words(deburr(string).replace(reApos, '')), callback, '');\n };\n}\n\nmodule.exports = createCompounder;\n","var basePropertyOf = require('./_basePropertyOf');\n\n/** Used to map Latin Unicode letters to basic Latin letters. */\nvar deburredLetters = {\n // Latin-1 Supplement block.\n '\\xc0': 'A', '\\xc1': 'A', '\\xc2': 'A', '\\xc3': 'A', '\\xc4': 'A', '\\xc5': 'A',\n '\\xe0': 'a', '\\xe1': 'a', '\\xe2': 'a', '\\xe3': 'a', '\\xe4': 'a', '\\xe5': 'a',\n '\\xc7': 'C', '\\xe7': 'c',\n '\\xd0': 'D', '\\xf0': 'd',\n '\\xc8': 'E', '\\xc9': 'E', '\\xca': 'E', '\\xcb': 'E',\n '\\xe8': 'e', '\\xe9': 'e', '\\xea': 'e', '\\xeb': 'e',\n '\\xcc': 'I', '\\xcd': 'I', '\\xce': 'I', '\\xcf': 'I',\n '\\xec': 'i', '\\xed': 'i', '\\xee': 'i', '\\xef': 'i',\n '\\xd1': 'N', '\\xf1': 'n',\n '\\xd2': 'O', '\\xd3': 'O', '\\xd4': 'O', '\\xd5': 'O', '\\xd6': 'O', '\\xd8': 'O',\n '\\xf2': 'o', '\\xf3': 'o', '\\xf4': 'o', '\\xf5': 'o', '\\xf6': 'o', '\\xf8': 'o',\n '\\xd9': 'U', '\\xda': 'U', '\\xdb': 'U', '\\xdc': 'U',\n '\\xf9': 'u', '\\xfa': 'u', '\\xfb': 'u', '\\xfc': 'u',\n '\\xdd': 'Y', '\\xfd': 'y', '\\xff': 'y',\n '\\xc6': 'Ae', '\\xe6': 'ae',\n '\\xde': 'Th', '\\xfe': 'th',\n '\\xdf': 'ss',\n // Latin Extended-A block.\n '\\u0100': 'A', '\\u0102': 'A', '\\u0104': 'A',\n '\\u0101': 'a', '\\u0103': 'a', '\\u0105': 'a',\n '\\u0106': 'C', '\\u0108': 'C', '\\u010a': 'C', '\\u010c': 'C',\n '\\u0107': 'c', '\\u0109': 'c', '\\u010b': 'c', '\\u010d': 'c',\n '\\u010e': 'D', '\\u0110': 'D', '\\u010f': 'd', '\\u0111': 'd',\n '\\u0112': 'E', '\\u0114': 'E', '\\u0116': 'E', '\\u0118': 'E', '\\u011a': 'E',\n '\\u0113': 'e', '\\u0115': 'e', '\\u0117': 'e', '\\u0119': 'e', '\\u011b': 'e',\n '\\u011c': 'G', '\\u011e': 'G', '\\u0120': 'G', '\\u0122': 'G',\n '\\u011d': 'g', '\\u011f': 'g', '\\u0121': 'g', '\\u0123': 'g',\n '\\u0124': 'H', '\\u0126': 'H', '\\u0125': 'h', '\\u0127': 'h',\n '\\u0128': 'I', '\\u012a': 'I', '\\u012c': 'I', '\\u012e': 'I', '\\u0130': 'I',\n '\\u0129': 'i', '\\u012b': 'i', '\\u012d': 'i', '\\u012f': 'i', '\\u0131': 'i',\n '\\u0134': 'J', '\\u0135': 'j',\n '\\u0136': 'K', '\\u0137': 'k', '\\u0138': 'k',\n '\\u0139': 'L', '\\u013b': 'L', '\\u013d': 'L', '\\u013f': 'L', '\\u0141': 'L',\n '\\u013a': 'l', '\\u013c': 'l', '\\u013e': 'l', '\\u0140': 'l', '\\u0142': 'l',\n '\\u0143': 'N', '\\u0145': 'N', '\\u0147': 'N', '\\u014a': 'N',\n '\\u0144': 'n', '\\u0146': 'n', '\\u0148': 'n', '\\u014b': 'n',\n '\\u014c': 'O', '\\u014e': 'O', '\\u0150': 'O',\n '\\u014d': 'o', '\\u014f': 'o', '\\u0151': 'o',\n '\\u0154': 'R', '\\u0156': 'R', '\\u0158': 'R',\n '\\u0155': 'r', '\\u0157': 'r', '\\u0159': 'r',\n '\\u015a': 'S', '\\u015c': 'S', '\\u015e': 'S', '\\u0160': 'S',\n '\\u015b': 's', '\\u015d': 's', '\\u015f': 's', '\\u0161': 's',\n '\\u0162': 'T', '\\u0164': 'T', '\\u0166': 'T',\n '\\u0163': 't', '\\u0165': 't', '\\u0167': 't',\n '\\u0168': 'U', '\\u016a': 'U', '\\u016c': 'U', '\\u016e': 'U', '\\u0170': 'U', '\\u0172': 'U',\n '\\u0169': 'u', '\\u016b': 'u', '\\u016d': 'u', '\\u016f': 'u', '\\u0171': 'u', '\\u0173': 'u',\n '\\u0174': 'W', '\\u0175': 'w',\n '\\u0176': 'Y', '\\u0177': 'y', '\\u0178': 'Y',\n '\\u0179': 'Z', '\\u017b': 'Z', '\\u017d': 'Z',\n '\\u017a': 'z', '\\u017c': 'z', '\\u017e': 'z',\n '\\u0132': 'IJ', '\\u0133': 'ij',\n '\\u0152': 'Oe', '\\u0153': 'oe',\n '\\u0149': \"'n\", '\\u017f': 's'\n};\n\n/**\n * Used by `_.deburr` to convert Latin-1 Supplement and Latin Extended-A\n * letters to basic Latin letters.\n *\n * @private\n * @param {string} letter The matched letter to deburr.\n * @returns {string} Returns the deburred letter.\n */\nvar deburrLetter = basePropertyOf(deburredLetters);\n\nmodule.exports = deburrLetter;\n","var getNative = require('./_getNative');\n\nvar defineProperty = (function() {\n try {\n var func = getNative(Object, 'defineProperty');\n func({}, '', {});\n return func;\n } catch (e) {}\n}());\n\nmodule.exports = defineProperty;\n","var SetCache = require('./_SetCache'),\n arraySome = require('./_arraySome'),\n cacheHas = require('./_cacheHas');\n\n/** Used to compose bitmasks for value comparisons. */\nvar COMPARE_PARTIAL_FLAG = 1,\n COMPARE_UNORDERED_FLAG = 2;\n\n/**\n * A specialized version of `baseIsEqualDeep` for arrays with support for\n * partial deep comparisons.\n *\n * @private\n * @param {Array} array The array to compare.\n * @param {Array} other The other array to compare.\n * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.\n * @param {Function} customizer The function to customize comparisons.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Object} stack Tracks traversed `array` and `other` objects.\n * @returns {boolean} Returns `true` if the arrays are equivalent, else `false`.\n */\nfunction equalArrays(array, other, bitmask, customizer, equalFunc, stack) {\n var isPartial = bitmask & COMPARE_PARTIAL_FLAG,\n arrLength = array.length,\n othLength = other.length;\n\n if (arrLength != othLength && !(isPartial && othLength > arrLength)) {\n return false;\n }\n // Check that cyclic values are equal.\n var arrStacked = stack.get(array);\n var othStacked = stack.get(other);\n if (arrStacked && othStacked) {\n return arrStacked == other && othStacked == array;\n }\n var index = -1,\n result = true,\n seen = (bitmask & COMPARE_UNORDERED_FLAG) ? new SetCache : undefined;\n\n stack.set(array, other);\n stack.set(other, array);\n\n // Ignore non-index properties.\n while (++index < arrLength) {\n var arrValue = array[index],\n othValue = other[index];\n\n if (customizer) {\n var compared = isPartial\n ? customizer(othValue, arrValue, index, other, array, stack)\n : customizer(arrValue, othValue, index, array, other, stack);\n }\n if (compared !== undefined) {\n if (compared) {\n continue;\n }\n result = false;\n break;\n }\n // Recursively compare arrays (susceptible to call stack limits).\n if (seen) {\n if (!arraySome(other, function(othValue, othIndex) {\n if (!cacheHas(seen, othIndex) &&\n (arrValue === othValue || equalFunc(arrValue, othValue, bitmask, customizer, stack))) {\n return seen.push(othIndex);\n }\n })) {\n result = false;\n break;\n }\n } else if (!(\n arrValue === othValue ||\n equalFunc(arrValue, othValue, bitmask, customizer, stack)\n )) {\n result = false;\n break;\n }\n }\n stack['delete'](array);\n stack['delete'](other);\n return result;\n}\n\nmodule.exports = equalArrays;\n","var Symbol = require('./_Symbol'),\n Uint8Array = require('./_Uint8Array'),\n eq = require('./eq'),\n equalArrays = require('./_equalArrays'),\n mapToArray = require('./_mapToArray'),\n setToArray = require('./_setToArray');\n\n/** Used to compose bitmasks for value comparisons. */\nvar COMPARE_PARTIAL_FLAG = 1,\n COMPARE_UNORDERED_FLAG = 2;\n\n/** `Object#toString` result references. */\nvar boolTag = '[object Boolean]',\n dateTag = '[object Date]',\n errorTag = '[object Error]',\n mapTag = '[object Map]',\n numberTag = '[object Number]',\n regexpTag = '[object RegExp]',\n setTag = '[object Set]',\n stringTag = '[object String]',\n symbolTag = '[object Symbol]';\n\nvar arrayBufferTag = '[object ArrayBuffer]',\n dataViewTag = '[object DataView]';\n\n/** Used to convert symbols to primitives and strings. */\nvar symbolProto = Symbol ? Symbol.prototype : undefined,\n symbolValueOf = symbolProto ? symbolProto.valueOf : undefined;\n\n/**\n * A specialized version of `baseIsEqualDeep` for comparing objects of\n * the same `toStringTag`.\n *\n * **Note:** This function only supports comparing values with tags of\n * `Boolean`, `Date`, `Error`, `Number`, `RegExp`, or `String`.\n *\n * @private\n * @param {Object} object The object to compare.\n * @param {Object} other The other object to compare.\n * @param {string} tag The `toStringTag` of the objects to compare.\n * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.\n * @param {Function} customizer The function to customize comparisons.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Object} stack Tracks traversed `object` and `other` objects.\n * @returns {boolean} Returns `true` if the objects are equivalent, else `false`.\n */\nfunction equalByTag(object, other, tag, bitmask, customizer, equalFunc, stack) {\n switch (tag) {\n case dataViewTag:\n if ((object.byteLength != other.byteLength) ||\n (object.byteOffset != other.byteOffset)) {\n return false;\n }\n object = object.buffer;\n other = other.buffer;\n\n case arrayBufferTag:\n if ((object.byteLength != other.byteLength) ||\n !equalFunc(new Uint8Array(object), new Uint8Array(other))) {\n return false;\n }\n return true;\n\n case boolTag:\n case dateTag:\n case numberTag:\n // Coerce booleans to `1` or `0` and dates to milliseconds.\n // Invalid dates are coerced to `NaN`.\n return eq(+object, +other);\n\n case errorTag:\n return object.name == other.name && object.message == other.message;\n\n case regexpTag:\n case stringTag:\n // Coerce regexes to strings and treat strings, primitives and objects,\n // as equal. See http://www.ecma-international.org/ecma-262/7.0/#sec-regexp.prototype.tostring\n // for more details.\n return object == (other + '');\n\n case mapTag:\n var convert = mapToArray;\n\n case setTag:\n var isPartial = bitmask & COMPARE_PARTIAL_FLAG;\n convert || (convert = setToArray);\n\n if (object.size != other.size && !isPartial) {\n return false;\n }\n // Assume cyclic values are equal.\n var stacked = stack.get(object);\n if (stacked) {\n return stacked == other;\n }\n bitmask |= COMPARE_UNORDERED_FLAG;\n\n // Recursively compare objects (susceptible to call stack limits).\n stack.set(object, other);\n var result = equalArrays(convert(object), convert(other), bitmask, customizer, equalFunc, stack);\n stack['delete'](object);\n return result;\n\n case symbolTag:\n if (symbolValueOf) {\n return symbolValueOf.call(object) == symbolValueOf.call(other);\n }\n }\n return false;\n}\n\nmodule.exports = equalByTag;\n","var getAllKeys = require('./_getAllKeys');\n\n/** Used to compose bitmasks for value comparisons. */\nvar COMPARE_PARTIAL_FLAG = 1;\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * A specialized version of `baseIsEqualDeep` for objects with support for\n * partial deep comparisons.\n *\n * @private\n * @param {Object} object The object to compare.\n * @param {Object} other The other object to compare.\n * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.\n * @param {Function} customizer The function to customize comparisons.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Object} stack Tracks traversed `object` and `other` objects.\n * @returns {boolean} Returns `true` if the objects are equivalent, else `false`.\n */\nfunction equalObjects(object, other, bitmask, customizer, equalFunc, stack) {\n var isPartial = bitmask & COMPARE_PARTIAL_FLAG,\n objProps = getAllKeys(object),\n objLength = objProps.length,\n othProps = getAllKeys(other),\n othLength = othProps.length;\n\n if (objLength != othLength && !isPartial) {\n return false;\n }\n var index = objLength;\n while (index--) {\n var key = objProps[index];\n if (!(isPartial ? key in other : hasOwnProperty.call(other, key))) {\n return false;\n }\n }\n // Check that cyclic values are equal.\n var objStacked = stack.get(object);\n var othStacked = stack.get(other);\n if (objStacked && othStacked) {\n return objStacked == other && othStacked == object;\n }\n var result = true;\n stack.set(object, other);\n stack.set(other, object);\n\n var skipCtor = isPartial;\n while (++index < objLength) {\n key = objProps[index];\n var objValue = object[key],\n othValue = other[key];\n\n if (customizer) {\n var compared = isPartial\n ? customizer(othValue, objValue, key, other, object, stack)\n : customizer(objValue, othValue, key, object, other, stack);\n }\n // Recursively compare objects (susceptible to call stack limits).\n if (!(compared === undefined\n ? (objValue === othValue || equalFunc(objValue, othValue, bitmask, customizer, stack))\n : compared\n )) {\n result = false;\n break;\n }\n skipCtor || (skipCtor = key == 'constructor');\n }\n if (result && !skipCtor) {\n var objCtor = object.constructor,\n othCtor = other.constructor;\n\n // Non `Object` object instances with different constructors are not equal.\n if (objCtor != othCtor &&\n ('constructor' in object && 'constructor' in other) &&\n !(typeof objCtor == 'function' && objCtor instanceof objCtor &&\n typeof othCtor == 'function' && othCtor instanceof othCtor)) {\n result = false;\n }\n }\n stack['delete'](object);\n stack['delete'](other);\n return result;\n}\n\nmodule.exports = equalObjects;\n","/** Detect free variable `global` from Node.js. */\nvar freeGlobal = typeof global == 'object' && global && global.Object === Object && global;\n\nmodule.exports = freeGlobal;\n","var baseGetAllKeys = require('./_baseGetAllKeys'),\n getSymbols = require('./_getSymbols'),\n keys = require('./keys');\n\n/**\n * Creates an array of own enumerable property names and symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names and symbols.\n */\nfunction getAllKeys(object) {\n return baseGetAllKeys(object, keys, getSymbols);\n}\n\nmodule.exports = getAllKeys;\n","var isKeyable = require('./_isKeyable');\n\n/**\n * Gets the data for `map`.\n *\n * @private\n * @param {Object} map The map to query.\n * @param {string} key The reference key.\n * @returns {*} Returns the map data.\n */\nfunction getMapData(map, key) {\n var data = map.__data__;\n return isKeyable(key)\n ? data[typeof key == 'string' ? 'string' : 'hash']\n : data.map;\n}\n\nmodule.exports = getMapData;\n","var isStrictComparable = require('./_isStrictComparable'),\n keys = require('./keys');\n\n/**\n * Gets the property names, values, and compare flags of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the match data of `object`.\n */\nfunction getMatchData(object) {\n var result = keys(object),\n length = result.length;\n\n while (length--) {\n var key = result[length],\n value = object[key];\n\n result[length] = [key, value, isStrictComparable(value)];\n }\n return result;\n}\n\nmodule.exports = getMatchData;\n","var baseIsNative = require('./_baseIsNative'),\n getValue = require('./_getValue');\n\n/**\n * Gets the native function at `key` of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {string} key The key of the method to get.\n * @returns {*} Returns the function if it's native, else `undefined`.\n */\nfunction getNative(object, key) {\n var value = getValue(object, key);\n return baseIsNative(value) ? value : undefined;\n}\n\nmodule.exports = getNative;\n","var Symbol = require('./_Symbol');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar nativeObjectToString = objectProto.toString;\n\n/** Built-in value references. */\nvar symToStringTag = Symbol ? Symbol.toStringTag : undefined;\n\n/**\n * A specialized version of `baseGetTag` which ignores `Symbol.toStringTag` values.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the raw `toStringTag`.\n */\nfunction getRawTag(value) {\n var isOwn = hasOwnProperty.call(value, symToStringTag),\n tag = value[symToStringTag];\n\n try {\n value[symToStringTag] = undefined;\n var unmasked = true;\n } catch (e) {}\n\n var result = nativeObjectToString.call(value);\n if (unmasked) {\n if (isOwn) {\n value[symToStringTag] = tag;\n } else {\n delete value[symToStringTag];\n }\n }\n return result;\n}\n\nmodule.exports = getRawTag;\n","var arrayFilter = require('./_arrayFilter'),\n stubArray = require('./stubArray');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Built-in value references. */\nvar propertyIsEnumerable = objectProto.propertyIsEnumerable;\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeGetSymbols = Object.getOwnPropertySymbols;\n\n/**\n * Creates an array of the own enumerable symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of symbols.\n */\nvar getSymbols = !nativeGetSymbols ? stubArray : function(object) {\n if (object == null) {\n return [];\n }\n object = Object(object);\n return arrayFilter(nativeGetSymbols(object), function(symbol) {\n return propertyIsEnumerable.call(object, symbol);\n });\n};\n\nmodule.exports = getSymbols;\n","var DataView = require('./_DataView'),\n Map = require('./_Map'),\n Promise = require('./_Promise'),\n Set = require('./_Set'),\n WeakMap = require('./_WeakMap'),\n baseGetTag = require('./_baseGetTag'),\n toSource = require('./_toSource');\n\n/** `Object#toString` result references. */\nvar mapTag = '[object Map]',\n objectTag = '[object Object]',\n promiseTag = '[object Promise]',\n setTag = '[object Set]',\n weakMapTag = '[object WeakMap]';\n\nvar dataViewTag = '[object DataView]';\n\n/** Used to detect maps, sets, and weakmaps. */\nvar dataViewCtorString = toSource(DataView),\n mapCtorString = toSource(Map),\n promiseCtorString = toSource(Promise),\n setCtorString = toSource(Set),\n weakMapCtorString = toSource(WeakMap);\n\n/**\n * Gets the `toStringTag` of `value`.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the `toStringTag`.\n */\nvar getTag = baseGetTag;\n\n// Fallback for data views, maps, sets, and weak maps in IE 11 and promises in Node.js < 6.\nif ((DataView && getTag(new DataView(new ArrayBuffer(1))) != dataViewTag) ||\n (Map && getTag(new Map) != mapTag) ||\n (Promise && getTag(Promise.resolve()) != promiseTag) ||\n (Set && getTag(new Set) != setTag) ||\n (WeakMap && getTag(new WeakMap) != weakMapTag)) {\n getTag = function(value) {\n var result = baseGetTag(value),\n Ctor = result == objectTag ? value.constructor : undefined,\n ctorString = Ctor ? toSource(Ctor) : '';\n\n if (ctorString) {\n switch (ctorString) {\n case dataViewCtorString: return dataViewTag;\n case mapCtorString: return mapTag;\n case promiseCtorString: return promiseTag;\n case setCtorString: return setTag;\n case weakMapCtorString: return weakMapTag;\n }\n }\n return result;\n };\n}\n\nmodule.exports = getTag;\n","/**\n * Gets the value at `key` of `object`.\n *\n * @private\n * @param {Object} [object] The object to query.\n * @param {string} key The key of the property to get.\n * @returns {*} Returns the property value.\n */\nfunction getValue(object, key) {\n return object == null ? undefined : object[key];\n}\n\nmodule.exports = getValue;\n","var castPath = require('./_castPath'),\n isArguments = require('./isArguments'),\n isArray = require('./isArray'),\n isIndex = require('./_isIndex'),\n isLength = require('./isLength'),\n toKey = require('./_toKey');\n\n/**\n * Checks if `path` exists on `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {Array|string} path The path to check.\n * @param {Function} hasFunc The function to check properties.\n * @returns {boolean} Returns `true` if `path` exists, else `false`.\n */\nfunction hasPath(object, path, hasFunc) {\n path = castPath(path, object);\n\n var index = -1,\n length = path.length,\n result = false;\n\n while (++index < length) {\n var key = toKey(path[index]);\n if (!(result = object != null && hasFunc(object, key))) {\n break;\n }\n object = object[key];\n }\n if (result || ++index != length) {\n return result;\n }\n length = object == null ? 0 : object.length;\n return !!length && isLength(length) && isIndex(key, length) &&\n (isArray(object) || isArguments(object));\n}\n\nmodule.exports = hasPath;\n","/** Used to compose unicode character classes. */\nvar rsAstralRange = '\\\\ud800-\\\\udfff',\n rsComboMarksRange = '\\\\u0300-\\\\u036f',\n reComboHalfMarksRange = '\\\\ufe20-\\\\ufe2f',\n rsComboSymbolsRange = '\\\\u20d0-\\\\u20ff',\n rsComboRange = rsComboMarksRange + reComboHalfMarksRange + rsComboSymbolsRange,\n rsVarRange = '\\\\ufe0e\\\\ufe0f';\n\n/** Used to compose unicode capture groups. */\nvar rsZWJ = '\\\\u200d';\n\n/** Used to detect strings with [zero-width joiners or code points from the astral planes](http://eev.ee/blog/2015/09/12/dark-corners-of-unicode/). */\nvar reHasUnicode = RegExp('[' + rsZWJ + rsAstralRange + rsComboRange + rsVarRange + ']');\n\n/**\n * Checks if `string` contains Unicode symbols.\n *\n * @private\n * @param {string} string The string to inspect.\n * @returns {boolean} Returns `true` if a symbol is found, else `false`.\n */\nfunction hasUnicode(string) {\n return reHasUnicode.test(string);\n}\n\nmodule.exports = hasUnicode;\n","/** Used to detect strings that need a more robust regexp to match words. */\nvar reHasUnicodeWord = /[a-z][A-Z]|[A-Z]{2}[a-z]|[0-9][a-zA-Z]|[a-zA-Z][0-9]|[^a-zA-Z0-9 ]/;\n\n/**\n * Checks if `string` contains a word composed of Unicode symbols.\n *\n * @private\n * @param {string} string The string to inspect.\n * @returns {boolean} Returns `true` if a word is found, else `false`.\n */\nfunction hasUnicodeWord(string) {\n return reHasUnicodeWord.test(string);\n}\n\nmodule.exports = hasUnicodeWord;\n","var nativeCreate = require('./_nativeCreate');\n\n/**\n * Removes all key-value entries from the hash.\n *\n * @private\n * @name clear\n * @memberOf Hash\n */\nfunction hashClear() {\n this.__data__ = nativeCreate ? nativeCreate(null) : {};\n this.size = 0;\n}\n\nmodule.exports = hashClear;\n","/**\n * Removes `key` and its value from the hash.\n *\n * @private\n * @name delete\n * @memberOf Hash\n * @param {Object} hash The hash to modify.\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction hashDelete(key) {\n var result = this.has(key) && delete this.__data__[key];\n this.size -= result ? 1 : 0;\n return result;\n}\n\nmodule.exports = hashDelete;\n","var nativeCreate = require('./_nativeCreate');\n\n/** Used to stand-in for `undefined` hash values. */\nvar HASH_UNDEFINED = '__lodash_hash_undefined__';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Gets the hash value for `key`.\n *\n * @private\n * @name get\n * @memberOf Hash\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction hashGet(key) {\n var data = this.__data__;\n if (nativeCreate) {\n var result = data[key];\n return result === HASH_UNDEFINED ? undefined : result;\n }\n return hasOwnProperty.call(data, key) ? data[key] : undefined;\n}\n\nmodule.exports = hashGet;\n","var nativeCreate = require('./_nativeCreate');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Checks if a hash value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf Hash\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction hashHas(key) {\n var data = this.__data__;\n return nativeCreate ? (data[key] !== undefined) : hasOwnProperty.call(data, key);\n}\n\nmodule.exports = hashHas;\n","var nativeCreate = require('./_nativeCreate');\n\n/** Used to stand-in for `undefined` hash values. */\nvar HASH_UNDEFINED = '__lodash_hash_undefined__';\n\n/**\n * Sets the hash `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf Hash\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the hash instance.\n */\nfunction hashSet(key, value) {\n var data = this.__data__;\n this.size += this.has(key) ? 0 : 1;\n data[key] = (nativeCreate && value === undefined) ? HASH_UNDEFINED : value;\n return this;\n}\n\nmodule.exports = hashSet;\n","/** Used as references for various `Number` constants. */\nvar MAX_SAFE_INTEGER = 9007199254740991;\n\n/** Used to detect unsigned integer values. */\nvar reIsUint = /^(?:0|[1-9]\\d*)$/;\n\n/**\n * Checks if `value` is a valid array-like index.\n *\n * @private\n * @param {*} value The value to check.\n * @param {number} [length=MAX_SAFE_INTEGER] The upper bounds of a valid index.\n * @returns {boolean} Returns `true` if `value` is a valid index, else `false`.\n */\nfunction isIndex(value, length) {\n var type = typeof value;\n length = length == null ? MAX_SAFE_INTEGER : length;\n\n return !!length &&\n (type == 'number' ||\n (type != 'symbol' && reIsUint.test(value))) &&\n (value > -1 && value % 1 == 0 && value < length);\n}\n\nmodule.exports = isIndex;\n","var isArray = require('./isArray'),\n isSymbol = require('./isSymbol');\n\n/** Used to match property names within property paths. */\nvar reIsDeepProp = /\\.|\\[(?:[^[\\]]*|([\"'])(?:(?!\\1)[^\\\\]|\\\\.)*?\\1)\\]/,\n reIsPlainProp = /^\\w*$/;\n\n/**\n * Checks if `value` is a property name and not a property path.\n *\n * @private\n * @param {*} value The value to check.\n * @param {Object} [object] The object to query keys on.\n * @returns {boolean} Returns `true` if `value` is a property name, else `false`.\n */\nfunction isKey(value, object) {\n if (isArray(value)) {\n return false;\n }\n var type = typeof value;\n if (type == 'number' || type == 'symbol' || type == 'boolean' ||\n value == null || isSymbol(value)) {\n return true;\n }\n return reIsPlainProp.test(value) || !reIsDeepProp.test(value) ||\n (object != null && value in Object(object));\n}\n\nmodule.exports = isKey;\n","/**\n * Checks if `value` is suitable for use as unique object key.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is suitable, else `false`.\n */\nfunction isKeyable(value) {\n var type = typeof value;\n return (type == 'string' || type == 'number' || type == 'symbol' || type == 'boolean')\n ? (value !== '__proto__')\n : (value === null);\n}\n\nmodule.exports = isKeyable;\n","var coreJsData = require('./_coreJsData');\n\n/** Used to detect methods masquerading as native. */\nvar maskSrcKey = (function() {\n var uid = /[^.]+$/.exec(coreJsData && coreJsData.keys && coreJsData.keys.IE_PROTO || '');\n return uid ? ('Symbol(src)_1.' + uid) : '';\n}());\n\n/**\n * Checks if `func` has its source masked.\n *\n * @private\n * @param {Function} func The function to check.\n * @returns {boolean} Returns `true` if `func` is masked, else `false`.\n */\nfunction isMasked(func) {\n return !!maskSrcKey && (maskSrcKey in func);\n}\n\nmodule.exports = isMasked;\n","/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/**\n * Checks if `value` is likely a prototype object.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a prototype, else `false`.\n */\nfunction isPrototype(value) {\n var Ctor = value && value.constructor,\n proto = (typeof Ctor == 'function' && Ctor.prototype) || objectProto;\n\n return value === proto;\n}\n\nmodule.exports = isPrototype;\n","var isObject = require('./isObject');\n\n/**\n * Checks if `value` is suitable for strict equality comparisons, i.e. `===`.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` if suitable for strict\n * equality comparisons, else `false`.\n */\nfunction isStrictComparable(value) {\n return value === value && !isObject(value);\n}\n\nmodule.exports = isStrictComparable;\n","/**\n * Removes all key-value entries from the list cache.\n *\n * @private\n * @name clear\n * @memberOf ListCache\n */\nfunction listCacheClear() {\n this.__data__ = [];\n this.size = 0;\n}\n\nmodule.exports = listCacheClear;\n","var assocIndexOf = require('./_assocIndexOf');\n\n/** Used for built-in method references. */\nvar arrayProto = Array.prototype;\n\n/** Built-in value references. */\nvar splice = arrayProto.splice;\n\n/**\n * Removes `key` and its value from the list cache.\n *\n * @private\n * @name delete\n * @memberOf ListCache\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction listCacheDelete(key) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n if (index < 0) {\n return false;\n }\n var lastIndex = data.length - 1;\n if (index == lastIndex) {\n data.pop();\n } else {\n splice.call(data, index, 1);\n }\n --this.size;\n return true;\n}\n\nmodule.exports = listCacheDelete;\n","var assocIndexOf = require('./_assocIndexOf');\n\n/**\n * Gets the list cache value for `key`.\n *\n * @private\n * @name get\n * @memberOf ListCache\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction listCacheGet(key) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n return index < 0 ? undefined : data[index][1];\n}\n\nmodule.exports = listCacheGet;\n","var assocIndexOf = require('./_assocIndexOf');\n\n/**\n * Checks if a list cache value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf ListCache\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction listCacheHas(key) {\n return assocIndexOf(this.__data__, key) > -1;\n}\n\nmodule.exports = listCacheHas;\n","var assocIndexOf = require('./_assocIndexOf');\n\n/**\n * Sets the list cache `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf ListCache\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the list cache instance.\n */\nfunction listCacheSet(key, value) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n if (index < 0) {\n ++this.size;\n data.push([key, value]);\n } else {\n data[index][1] = value;\n }\n return this;\n}\n\nmodule.exports = listCacheSet;\n","var Hash = require('./_Hash'),\n ListCache = require('./_ListCache'),\n Map = require('./_Map');\n\n/**\n * Removes all key-value entries from the map.\n *\n * @private\n * @name clear\n * @memberOf MapCache\n */\nfunction mapCacheClear() {\n this.size = 0;\n this.__data__ = {\n 'hash': new Hash,\n 'map': new (Map || ListCache),\n 'string': new Hash\n };\n}\n\nmodule.exports = mapCacheClear;\n","var getMapData = require('./_getMapData');\n\n/**\n * Removes `key` and its value from the map.\n *\n * @private\n * @name delete\n * @memberOf MapCache\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction mapCacheDelete(key) {\n var result = getMapData(this, key)['delete'](key);\n this.size -= result ? 1 : 0;\n return result;\n}\n\nmodule.exports = mapCacheDelete;\n","var getMapData = require('./_getMapData');\n\n/**\n * Gets the map value for `key`.\n *\n * @private\n * @name get\n * @memberOf MapCache\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction mapCacheGet(key) {\n return getMapData(this, key).get(key);\n}\n\nmodule.exports = mapCacheGet;\n","var getMapData = require('./_getMapData');\n\n/**\n * Checks if a map value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf MapCache\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction mapCacheHas(key) {\n return getMapData(this, key).has(key);\n}\n\nmodule.exports = mapCacheHas;\n","var getMapData = require('./_getMapData');\n\n/**\n * Sets the map `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf MapCache\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the map cache instance.\n */\nfunction mapCacheSet(key, value) {\n var data = getMapData(this, key),\n size = data.size;\n\n data.set(key, value);\n this.size += data.size == size ? 0 : 1;\n return this;\n}\n\nmodule.exports = mapCacheSet;\n","/**\n * Converts `map` to its key-value pairs.\n *\n * @private\n * @param {Object} map The map to convert.\n * @returns {Array} Returns the key-value pairs.\n */\nfunction mapToArray(map) {\n var index = -1,\n result = Array(map.size);\n\n map.forEach(function(value, key) {\n result[++index] = [key, value];\n });\n return result;\n}\n\nmodule.exports = mapToArray;\n","/**\n * A specialized version of `matchesProperty` for source values suitable\n * for strict equality comparisons, i.e. `===`.\n *\n * @private\n * @param {string} key The key of the property to get.\n * @param {*} srcValue The value to match.\n * @returns {Function} Returns the new spec function.\n */\nfunction matchesStrictComparable(key, srcValue) {\n return function(object) {\n if (object == null) {\n return false;\n }\n return object[key] === srcValue &&\n (srcValue !== undefined || (key in Object(object)));\n };\n}\n\nmodule.exports = matchesStrictComparable;\n","var memoize = require('./memoize');\n\n/** Used as the maximum memoize cache size. */\nvar MAX_MEMOIZE_SIZE = 500;\n\n/**\n * A specialized version of `_.memoize` which clears the memoized function's\n * cache when it exceeds `MAX_MEMOIZE_SIZE`.\n *\n * @private\n * @param {Function} func The function to have its output memoized.\n * @returns {Function} Returns the new memoized function.\n */\nfunction memoizeCapped(func) {\n var result = memoize(func, function(key) {\n if (cache.size === MAX_MEMOIZE_SIZE) {\n cache.clear();\n }\n return key;\n });\n\n var cache = result.cache;\n return result;\n}\n\nmodule.exports = memoizeCapped;\n","var getNative = require('./_getNative');\n\n/* Built-in method references that are verified to be native. */\nvar nativeCreate = getNative(Object, 'create');\n\nmodule.exports = nativeCreate;\n","var overArg = require('./_overArg');\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeKeys = overArg(Object.keys, Object);\n\nmodule.exports = nativeKeys;\n","var freeGlobal = require('./_freeGlobal');\n\n/** Detect free variable `exports`. */\nvar freeExports = typeof exports == 'object' && exports && !exports.nodeType && exports;\n\n/** Detect free variable `module`. */\nvar freeModule = freeExports && typeof module == 'object' && module && !module.nodeType && module;\n\n/** Detect the popular CommonJS extension `module.exports`. */\nvar moduleExports = freeModule && freeModule.exports === freeExports;\n\n/** Detect free variable `process` from Node.js. */\nvar freeProcess = moduleExports && freeGlobal.process;\n\n/** Used to access faster Node.js helpers. */\nvar nodeUtil = (function() {\n try {\n // Use `util.types` for Node.js 10+.\n var types = freeModule && freeModule.require && freeModule.require('util').types;\n\n if (types) {\n return types;\n }\n\n // Legacy `process.binding('util')` for Node.js < 10.\n return freeProcess && freeProcess.binding && freeProcess.binding('util');\n } catch (e) {}\n}());\n\nmodule.exports = nodeUtil;\n","/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar nativeObjectToString = objectProto.toString;\n\n/**\n * Converts `value` to a string using `Object.prototype.toString`.\n *\n * @private\n * @param {*} value The value to convert.\n * @returns {string} Returns the converted string.\n */\nfunction objectToString(value) {\n return nativeObjectToString.call(value);\n}\n\nmodule.exports = objectToString;\n","/**\n * Creates a unary function that invokes `func` with its argument transformed.\n *\n * @private\n * @param {Function} func The function to wrap.\n * @param {Function} transform The argument transform.\n * @returns {Function} Returns the new function.\n */\nfunction overArg(func, transform) {\n return function(arg) {\n return func(transform(arg));\n };\n}\n\nmodule.exports = overArg;\n","var freeGlobal = require('./_freeGlobal');\n\n/** Detect free variable `self`. */\nvar freeSelf = typeof self == 'object' && self && self.Object === Object && self;\n\n/** Used as a reference to the global object. */\nvar root = freeGlobal || freeSelf || Function('return this')();\n\nmodule.exports = root;\n","/** Used to stand-in for `undefined` hash values. */\nvar HASH_UNDEFINED = '__lodash_hash_undefined__';\n\n/**\n * Adds `value` to the array cache.\n *\n * @private\n * @name add\n * @memberOf SetCache\n * @alias push\n * @param {*} value The value to cache.\n * @returns {Object} Returns the cache instance.\n */\nfunction setCacheAdd(value) {\n this.__data__.set(value, HASH_UNDEFINED);\n return this;\n}\n\nmodule.exports = setCacheAdd;\n","/**\n * Checks if `value` is in the array cache.\n *\n * @private\n * @name has\n * @memberOf SetCache\n * @param {*} value The value to search for.\n * @returns {number} Returns `true` if `value` is found, else `false`.\n */\nfunction setCacheHas(value) {\n return this.__data__.has(value);\n}\n\nmodule.exports = setCacheHas;\n","/**\n * Converts `set` to an array of its values.\n *\n * @private\n * @param {Object} set The set to convert.\n * @returns {Array} Returns the values.\n */\nfunction setToArray(set) {\n var index = -1,\n result = Array(set.size);\n\n set.forEach(function(value) {\n result[++index] = value;\n });\n return result;\n}\n\nmodule.exports = setToArray;\n","var ListCache = require('./_ListCache');\n\n/**\n * Removes all key-value entries from the stack.\n *\n * @private\n * @name clear\n * @memberOf Stack\n */\nfunction stackClear() {\n this.__data__ = new ListCache;\n this.size = 0;\n}\n\nmodule.exports = stackClear;\n","/**\n * Removes `key` and its value from the stack.\n *\n * @private\n * @name delete\n * @memberOf Stack\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction stackDelete(key) {\n var data = this.__data__,\n result = data['delete'](key);\n\n this.size = data.size;\n return result;\n}\n\nmodule.exports = stackDelete;\n","/**\n * Gets the stack value for `key`.\n *\n * @private\n * @name get\n * @memberOf Stack\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction stackGet(key) {\n return this.__data__.get(key);\n}\n\nmodule.exports = stackGet;\n","/**\n * Checks if a stack value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf Stack\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction stackHas(key) {\n return this.__data__.has(key);\n}\n\nmodule.exports = stackHas;\n","var ListCache = require('./_ListCache'),\n Map = require('./_Map'),\n MapCache = require('./_MapCache');\n\n/** Used as the size to enable large array optimizations. */\nvar LARGE_ARRAY_SIZE = 200;\n\n/**\n * Sets the stack `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf Stack\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the stack cache instance.\n */\nfunction stackSet(key, value) {\n var data = this.__data__;\n if (data instanceof ListCache) {\n var pairs = data.__data__;\n if (!Map || (pairs.length < LARGE_ARRAY_SIZE - 1)) {\n pairs.push([key, value]);\n this.size = ++data.size;\n return this;\n }\n data = this.__data__ = new MapCache(pairs);\n }\n data.set(key, value);\n this.size = data.size;\n return this;\n}\n\nmodule.exports = stackSet;\n","var asciiToArray = require('./_asciiToArray'),\n hasUnicode = require('./_hasUnicode'),\n unicodeToArray = require('./_unicodeToArray');\n\n/**\n * Converts `string` to an array.\n *\n * @private\n * @param {string} string The string to convert.\n * @returns {Array} Returns the converted array.\n */\nfunction stringToArray(string) {\n return hasUnicode(string)\n ? unicodeToArray(string)\n : asciiToArray(string);\n}\n\nmodule.exports = stringToArray;\n","var memoizeCapped = require('./_memoizeCapped');\n\n/** Used to match property names within property paths. */\nvar rePropName = /[^.[\\]]+|\\[(?:(-?\\d+(?:\\.\\d+)?)|([\"'])((?:(?!\\2)[^\\\\]|\\\\.)*?)\\2)\\]|(?=(?:\\.|\\[\\])(?:\\.|\\[\\]|$))/g;\n\n/** Used to match backslashes in property paths. */\nvar reEscapeChar = /\\\\(\\\\)?/g;\n\n/**\n * Converts `string` to a property path array.\n *\n * @private\n * @param {string} string The string to convert.\n * @returns {Array} Returns the property path array.\n */\nvar stringToPath = memoizeCapped(function(string) {\n var result = [];\n if (string.charCodeAt(0) === 46 /* . */) {\n result.push('');\n }\n string.replace(rePropName, function(match, number, quote, subString) {\n result.push(quote ? subString.replace(reEscapeChar, '$1') : (number || match));\n });\n return result;\n});\n\nmodule.exports = stringToPath;\n","var isSymbol = require('./isSymbol');\n\n/** Used as references for various `Number` constants. */\nvar INFINITY = 1 / 0;\n\n/**\n * Converts `value` to a string key if it's not a string or symbol.\n *\n * @private\n * @param {*} value The value to inspect.\n * @returns {string|symbol} Returns the key.\n */\nfunction toKey(value) {\n if (typeof value == 'string' || isSymbol(value)) {\n return value;\n }\n var result = (value + '');\n return (result == '0' && (1 / value) == -INFINITY) ? '-0' : result;\n}\n\nmodule.exports = toKey;\n","/** Used for built-in method references. */\nvar funcProto = Function.prototype;\n\n/** Used to resolve the decompiled source of functions. */\nvar funcToString = funcProto.toString;\n\n/**\n * Converts `func` to its source code.\n *\n * @private\n * @param {Function} func The function to convert.\n * @returns {string} Returns the source code.\n */\nfunction toSource(func) {\n if (func != null) {\n try {\n return funcToString.call(func);\n } catch (e) {}\n try {\n return (func + '');\n } catch (e) {}\n }\n return '';\n}\n\nmodule.exports = toSource;\n","/** Used to compose unicode character classes. */\nvar rsAstralRange = '\\\\ud800-\\\\udfff',\n rsComboMarksRange = '\\\\u0300-\\\\u036f',\n reComboHalfMarksRange = '\\\\ufe20-\\\\ufe2f',\n rsComboSymbolsRange = '\\\\u20d0-\\\\u20ff',\n rsComboRange = rsComboMarksRange + reComboHalfMarksRange + rsComboSymbolsRange,\n rsVarRange = '\\\\ufe0e\\\\ufe0f';\n\n/** Used to compose unicode capture groups. */\nvar rsAstral = '[' + rsAstralRange + ']',\n rsCombo = '[' + rsComboRange + ']',\n rsFitz = '\\\\ud83c[\\\\udffb-\\\\udfff]',\n rsModifier = '(?:' + rsCombo + '|' + rsFitz + ')',\n rsNonAstral = '[^' + rsAstralRange + ']',\n rsRegional = '(?:\\\\ud83c[\\\\udde6-\\\\uddff]){2}',\n rsSurrPair = '[\\\\ud800-\\\\udbff][\\\\udc00-\\\\udfff]',\n rsZWJ = '\\\\u200d';\n\n/** Used to compose unicode regexes. */\nvar reOptMod = rsModifier + '?',\n rsOptVar = '[' + rsVarRange + ']?',\n rsOptJoin = '(?:' + rsZWJ + '(?:' + [rsNonAstral, rsRegional, rsSurrPair].join('|') + ')' + rsOptVar + reOptMod + ')*',\n rsSeq = rsOptVar + reOptMod + rsOptJoin,\n rsSymbol = '(?:' + [rsNonAstral + rsCombo + '?', rsCombo, rsRegional, rsSurrPair, rsAstral].join('|') + ')';\n\n/** Used to match [string symbols](https://mathiasbynens.be/notes/javascript-unicode). */\nvar reUnicode = RegExp(rsFitz + '(?=' + rsFitz + ')|' + rsSymbol + rsSeq, 'g');\n\n/**\n * Converts a Unicode `string` to an array.\n *\n * @private\n * @param {string} string The string to convert.\n * @returns {Array} Returns the converted array.\n */\nfunction unicodeToArray(string) {\n return string.match(reUnicode) || [];\n}\n\nmodule.exports = unicodeToArray;\n","/** Used to compose unicode character classes. */\nvar rsAstralRange = '\\\\ud800-\\\\udfff',\n rsComboMarksRange = '\\\\u0300-\\\\u036f',\n reComboHalfMarksRange = '\\\\ufe20-\\\\ufe2f',\n rsComboSymbolsRange = '\\\\u20d0-\\\\u20ff',\n rsComboRange = rsComboMarksRange + reComboHalfMarksRange + rsComboSymbolsRange,\n rsDingbatRange = '\\\\u2700-\\\\u27bf',\n rsLowerRange = 'a-z\\\\xdf-\\\\xf6\\\\xf8-\\\\xff',\n rsMathOpRange = '\\\\xac\\\\xb1\\\\xd7\\\\xf7',\n rsNonCharRange = '\\\\x00-\\\\x2f\\\\x3a-\\\\x40\\\\x5b-\\\\x60\\\\x7b-\\\\xbf',\n rsPunctuationRange = '\\\\u2000-\\\\u206f',\n rsSpaceRange = ' \\\\t\\\\x0b\\\\f\\\\xa0\\\\ufeff\\\\n\\\\r\\\\u2028\\\\u2029\\\\u1680\\\\u180e\\\\u2000\\\\u2001\\\\u2002\\\\u2003\\\\u2004\\\\u2005\\\\u2006\\\\u2007\\\\u2008\\\\u2009\\\\u200a\\\\u202f\\\\u205f\\\\u3000',\n rsUpperRange = 'A-Z\\\\xc0-\\\\xd6\\\\xd8-\\\\xde',\n rsVarRange = '\\\\ufe0e\\\\ufe0f',\n rsBreakRange = rsMathOpRange + rsNonCharRange + rsPunctuationRange + rsSpaceRange;\n\n/** Used to compose unicode capture groups. */\nvar rsApos = \"['\\u2019]\",\n rsBreak = '[' + rsBreakRange + ']',\n rsCombo = '[' + rsComboRange + ']',\n rsDigits = '\\\\d+',\n rsDingbat = '[' + rsDingbatRange + ']',\n rsLower = '[' + rsLowerRange + ']',\n rsMisc = '[^' + rsAstralRange + rsBreakRange + rsDigits + rsDingbatRange + rsLowerRange + rsUpperRange + ']',\n rsFitz = '\\\\ud83c[\\\\udffb-\\\\udfff]',\n rsModifier = '(?:' + rsCombo + '|' + rsFitz + ')',\n rsNonAstral = '[^' + rsAstralRange + ']',\n rsRegional = '(?:\\\\ud83c[\\\\udde6-\\\\uddff]){2}',\n rsSurrPair = '[\\\\ud800-\\\\udbff][\\\\udc00-\\\\udfff]',\n rsUpper = '[' + rsUpperRange + ']',\n rsZWJ = '\\\\u200d';\n\n/** Used to compose unicode regexes. */\nvar rsMiscLower = '(?:' + rsLower + '|' + rsMisc + ')',\n rsMiscUpper = '(?:' + rsUpper + '|' + rsMisc + ')',\n rsOptContrLower = '(?:' + rsApos + '(?:d|ll|m|re|s|t|ve))?',\n rsOptContrUpper = '(?:' + rsApos + '(?:D|LL|M|RE|S|T|VE))?',\n reOptMod = rsModifier + '?',\n rsOptVar = '[' + rsVarRange + ']?',\n rsOptJoin = '(?:' + rsZWJ + '(?:' + [rsNonAstral, rsRegional, rsSurrPair].join('|') + ')' + rsOptVar + reOptMod + ')*',\n rsOrdLower = '\\\\d*(?:1st|2nd|3rd|(?![123])\\\\dth)(?=\\\\b|[A-Z_])',\n rsOrdUpper = '\\\\d*(?:1ST|2ND|3RD|(?![123])\\\\dTH)(?=\\\\b|[a-z_])',\n rsSeq = rsOptVar + reOptMod + rsOptJoin,\n rsEmoji = '(?:' + [rsDingbat, rsRegional, rsSurrPair].join('|') + ')' + rsSeq;\n\n/** Used to match complex or compound words. */\nvar reUnicodeWord = RegExp([\n rsUpper + '?' + rsLower + '+' + rsOptContrLower + '(?=' + [rsBreak, rsUpper, '$'].join('|') + ')',\n rsMiscUpper + '+' + rsOptContrUpper + '(?=' + [rsBreak, rsUpper + rsMiscLower, '$'].join('|') + ')',\n rsUpper + '?' + rsMiscLower + '+' + rsOptContrLower,\n rsUpper + '+' + rsOptContrUpper,\n rsOrdUpper,\n rsOrdLower,\n rsDigits,\n rsEmoji\n].join('|'), 'g');\n\n/**\n * Splits a Unicode `string` into an array of its words.\n *\n * @private\n * @param {string} The string to inspect.\n * @returns {Array} Returns the words of `string`.\n */\nfunction unicodeWords(string) {\n return string.match(reUnicodeWord) || [];\n}\n\nmodule.exports = unicodeWords;\n","var capitalize = require('./capitalize'),\n createCompounder = require('./_createCompounder');\n\n/**\n * Converts `string` to [camel case](https://en.wikipedia.org/wiki/CamelCase).\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category String\n * @param {string} [string=''] The string to convert.\n * @returns {string} Returns the camel cased string.\n * @example\n *\n * _.camelCase('Foo Bar');\n * // => 'fooBar'\n *\n * _.camelCase('--foo-bar--');\n * // => 'fooBar'\n *\n * _.camelCase('__FOO_BAR__');\n * // => 'fooBar'\n */\nvar camelCase = createCompounder(function(result, word, index) {\n word = word.toLowerCase();\n return result + (index ? capitalize(word) : word);\n});\n\nmodule.exports = camelCase;\n","var toString = require('./toString'),\n upperFirst = require('./upperFirst');\n\n/**\n * Converts the first character of `string` to upper case and the remaining\n * to lower case.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category String\n * @param {string} [string=''] The string to capitalize.\n * @returns {string} Returns the capitalized string.\n * @example\n *\n * _.capitalize('FRED');\n * // => 'Fred'\n */\nfunction capitalize(string) {\n return upperFirst(toString(string).toLowerCase());\n}\n\nmodule.exports = capitalize;\n","var deburrLetter = require('./_deburrLetter'),\n toString = require('./toString');\n\n/** Used to match Latin Unicode letters (excluding mathematical operators). */\nvar reLatin = /[\\xc0-\\xd6\\xd8-\\xf6\\xf8-\\xff\\u0100-\\u017f]/g;\n\n/** Used to compose unicode character classes. */\nvar rsComboMarksRange = '\\\\u0300-\\\\u036f',\n reComboHalfMarksRange = '\\\\ufe20-\\\\ufe2f',\n rsComboSymbolsRange = '\\\\u20d0-\\\\u20ff',\n rsComboRange = rsComboMarksRange + reComboHalfMarksRange + rsComboSymbolsRange;\n\n/** Used to compose unicode capture groups. */\nvar rsCombo = '[' + rsComboRange + ']';\n\n/**\n * Used to match [combining diacritical marks](https://en.wikipedia.org/wiki/Combining_Diacritical_Marks) and\n * [combining diacritical marks for symbols](https://en.wikipedia.org/wiki/Combining_Diacritical_Marks_for_Symbols).\n */\nvar reComboMark = RegExp(rsCombo, 'g');\n\n/**\n * Deburrs `string` by converting\n * [Latin-1 Supplement](https://en.wikipedia.org/wiki/Latin-1_Supplement_(Unicode_block)#Character_table)\n * and [Latin Extended-A](https://en.wikipedia.org/wiki/Latin_Extended-A)\n * letters to basic Latin letters and removing\n * [combining diacritical marks](https://en.wikipedia.org/wiki/Combining_Diacritical_Marks).\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category String\n * @param {string} [string=''] The string to deburr.\n * @returns {string} Returns the deburred string.\n * @example\n *\n * _.deburr('déjà vu');\n * // => 'deja vu'\n */\nfunction deburr(string) {\n string = toString(string);\n return string && string.replace(reLatin, deburrLetter).replace(reComboMark, '');\n}\n\nmodule.exports = deburr;\n","/**\n * Performs a\n * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * comparison between two values to determine if they are equivalent.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {boolean} Returns `true` if the values are equivalent, else `false`.\n * @example\n *\n * var object = { 'a': 1 };\n * var other = { 'a': 1 };\n *\n * _.eq(object, object);\n * // => true\n *\n * _.eq(object, other);\n * // => false\n *\n * _.eq('a', 'a');\n * // => true\n *\n * _.eq('a', Object('a'));\n * // => false\n *\n * _.eq(NaN, NaN);\n * // => true\n */\nfunction eq(value, other) {\n return value === other || (value !== value && other !== other);\n}\n\nmodule.exports = eq;\n","var baseGet = require('./_baseGet');\n\n/**\n * Gets the value at `path` of `object`. If the resolved value is\n * `undefined`, the `defaultValue` is returned in its place.\n *\n * @static\n * @memberOf _\n * @since 3.7.0\n * @category Object\n * @param {Object} object The object to query.\n * @param {Array|string} path The path of the property to get.\n * @param {*} [defaultValue] The value returned for `undefined` resolved values.\n * @returns {*} Returns the resolved value.\n * @example\n *\n * var object = { 'a': [{ 'b': { 'c': 3 } }] };\n *\n * _.get(object, 'a[0].b.c');\n * // => 3\n *\n * _.get(object, ['a', '0', 'b', 'c']);\n * // => 3\n *\n * _.get(object, 'a.b.c', 'default');\n * // => 'default'\n */\nfunction get(object, path, defaultValue) {\n var result = object == null ? undefined : baseGet(object, path);\n return result === undefined ? defaultValue : result;\n}\n\nmodule.exports = get;\n","var baseHas = require('./_baseHas'),\n hasPath = require('./_hasPath');\n\n/**\n * Checks if `path` is a direct property of `object`.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Object\n * @param {Object} object The object to query.\n * @param {Array|string} path The path to check.\n * @returns {boolean} Returns `true` if `path` exists, else `false`.\n * @example\n *\n * var object = { 'a': { 'b': 2 } };\n * var other = _.create({ 'a': _.create({ 'b': 2 }) });\n *\n * _.has(object, 'a');\n * // => true\n *\n * _.has(object, 'a.b');\n * // => true\n *\n * _.has(object, ['a', 'b']);\n * // => true\n *\n * _.has(other, 'a');\n * // => false\n */\nfunction has(object, path) {\n return object != null && hasPath(object, path, baseHas);\n}\n\nmodule.exports = has;\n","var baseHasIn = require('./_baseHasIn'),\n hasPath = require('./_hasPath');\n\n/**\n * Checks if `path` is a direct or inherited property of `object`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Object\n * @param {Object} object The object to query.\n * @param {Array|string} path The path to check.\n * @returns {boolean} Returns `true` if `path` exists, else `false`.\n * @example\n *\n * var object = _.create({ 'a': _.create({ 'b': 2 }) });\n *\n * _.hasIn(object, 'a');\n * // => true\n *\n * _.hasIn(object, 'a.b');\n * // => true\n *\n * _.hasIn(object, ['a', 'b']);\n * // => true\n *\n * _.hasIn(object, 'b');\n * // => false\n */\nfunction hasIn(object, path) {\n return object != null && hasPath(object, path, baseHasIn);\n}\n\nmodule.exports = hasIn;\n","/**\n * This method returns the first argument it receives.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Util\n * @param {*} value Any value.\n * @returns {*} Returns `value`.\n * @example\n *\n * var object = { 'a': 1 };\n *\n * console.log(_.identity(object) === object);\n * // => true\n */\nfunction identity(value) {\n return value;\n}\n\nmodule.exports = identity;\n","var baseIsArguments = require('./_baseIsArguments'),\n isObjectLike = require('./isObjectLike');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/** Built-in value references. */\nvar propertyIsEnumerable = objectProto.propertyIsEnumerable;\n\n/**\n * Checks if `value` is likely an `arguments` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an `arguments` object,\n * else `false`.\n * @example\n *\n * _.isArguments(function() { return arguments; }());\n * // => true\n *\n * _.isArguments([1, 2, 3]);\n * // => false\n */\nvar isArguments = baseIsArguments(function() { return arguments; }()) ? baseIsArguments : function(value) {\n return isObjectLike(value) && hasOwnProperty.call(value, 'callee') &&\n !propertyIsEnumerable.call(value, 'callee');\n};\n\nmodule.exports = isArguments;\n","/**\n * Checks if `value` is classified as an `Array` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an array, else `false`.\n * @example\n *\n * _.isArray([1, 2, 3]);\n * // => true\n *\n * _.isArray(document.body.children);\n * // => false\n *\n * _.isArray('abc');\n * // => false\n *\n * _.isArray(_.noop);\n * // => false\n */\nvar isArray = Array.isArray;\n\nmodule.exports = isArray;\n","var isFunction = require('./isFunction'),\n isLength = require('./isLength');\n\n/**\n * Checks if `value` is array-like. A value is considered array-like if it's\n * not a function and has a `value.length` that's an integer greater than or\n * equal to `0` and less than or equal to `Number.MAX_SAFE_INTEGER`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is array-like, else `false`.\n * @example\n *\n * _.isArrayLike([1, 2, 3]);\n * // => true\n *\n * _.isArrayLike(document.body.children);\n * // => true\n *\n * _.isArrayLike('abc');\n * // => true\n *\n * _.isArrayLike(_.noop);\n * // => false\n */\nfunction isArrayLike(value) {\n return value != null && isLength(value.length) && !isFunction(value);\n}\n\nmodule.exports = isArrayLike;\n","var root = require('./_root'),\n stubFalse = require('./stubFalse');\n\n/** Detect free variable `exports`. */\nvar freeExports = typeof exports == 'object' && exports && !exports.nodeType && exports;\n\n/** Detect free variable `module`. */\nvar freeModule = freeExports && typeof module == 'object' && module && !module.nodeType && module;\n\n/** Detect the popular CommonJS extension `module.exports`. */\nvar moduleExports = freeModule && freeModule.exports === freeExports;\n\n/** Built-in value references. */\nvar Buffer = moduleExports ? root.Buffer : undefined;\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeIsBuffer = Buffer ? Buffer.isBuffer : undefined;\n\n/**\n * Checks if `value` is a buffer.\n *\n * @static\n * @memberOf _\n * @since 4.3.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a buffer, else `false`.\n * @example\n *\n * _.isBuffer(new Buffer(2));\n * // => true\n *\n * _.isBuffer(new Uint8Array(2));\n * // => false\n */\nvar isBuffer = nativeIsBuffer || stubFalse;\n\nmodule.exports = isBuffer;\n","var baseGetTag = require('./_baseGetTag'),\n isObject = require('./isObject');\n\n/** `Object#toString` result references. */\nvar asyncTag = '[object AsyncFunction]',\n funcTag = '[object Function]',\n genTag = '[object GeneratorFunction]',\n proxyTag = '[object Proxy]';\n\n/**\n * Checks if `value` is classified as a `Function` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a function, else `false`.\n * @example\n *\n * _.isFunction(_);\n * // => true\n *\n * _.isFunction(/abc/);\n * // => false\n */\nfunction isFunction(value) {\n if (!isObject(value)) {\n return false;\n }\n // The use of `Object#toString` avoids issues with the `typeof` operator\n // in Safari 9 which returns 'object' for typed arrays and other constructors.\n var tag = baseGetTag(value);\n return tag == funcTag || tag == genTag || tag == asyncTag || tag == proxyTag;\n}\n\nmodule.exports = isFunction;\n","/** Used as references for various `Number` constants. */\nvar MAX_SAFE_INTEGER = 9007199254740991;\n\n/**\n * Checks if `value` is a valid array-like length.\n *\n * **Note:** This method is loosely based on\n * [`ToLength`](http://ecma-international.org/ecma-262/7.0/#sec-tolength).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a valid length, else `false`.\n * @example\n *\n * _.isLength(3);\n * // => true\n *\n * _.isLength(Number.MIN_VALUE);\n * // => false\n *\n * _.isLength(Infinity);\n * // => false\n *\n * _.isLength('3');\n * // => false\n */\nfunction isLength(value) {\n return typeof value == 'number' &&\n value > -1 && value % 1 == 0 && value <= MAX_SAFE_INTEGER;\n}\n\nmodule.exports = isLength;\n","/**\n * Checks if `value` is the\n * [language type](http://www.ecma-international.org/ecma-262/7.0/#sec-ecmascript-language-types)\n * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an object, else `false`.\n * @example\n *\n * _.isObject({});\n * // => true\n *\n * _.isObject([1, 2, 3]);\n * // => true\n *\n * _.isObject(_.noop);\n * // => true\n *\n * _.isObject(null);\n * // => false\n */\nfunction isObject(value) {\n var type = typeof value;\n return value != null && (type == 'object' || type == 'function');\n}\n\nmodule.exports = isObject;\n","/**\n * Checks if `value` is object-like. A value is object-like if it's not `null`\n * and has a `typeof` result of \"object\".\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is object-like, else `false`.\n * @example\n *\n * _.isObjectLike({});\n * // => true\n *\n * _.isObjectLike([1, 2, 3]);\n * // => true\n *\n * _.isObjectLike(_.noop);\n * // => false\n *\n * _.isObjectLike(null);\n * // => false\n */\nfunction isObjectLike(value) {\n return value != null && typeof value == 'object';\n}\n\nmodule.exports = isObjectLike;\n","var baseGetTag = require('./_baseGetTag'),\n isObjectLike = require('./isObjectLike');\n\n/** `Object#toString` result references. */\nvar symbolTag = '[object Symbol]';\n\n/**\n * Checks if `value` is classified as a `Symbol` primitive or object.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a symbol, else `false`.\n * @example\n *\n * _.isSymbol(Symbol.iterator);\n * // => true\n *\n * _.isSymbol('abc');\n * // => false\n */\nfunction isSymbol(value) {\n return typeof value == 'symbol' ||\n (isObjectLike(value) && baseGetTag(value) == symbolTag);\n}\n\nmodule.exports = isSymbol;\n","var baseIsTypedArray = require('./_baseIsTypedArray'),\n baseUnary = require('./_baseUnary'),\n nodeUtil = require('./_nodeUtil');\n\n/* Node.js helper references. */\nvar nodeIsTypedArray = nodeUtil && nodeUtil.isTypedArray;\n\n/**\n * Checks if `value` is classified as a typed array.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a typed array, else `false`.\n * @example\n *\n * _.isTypedArray(new Uint8Array);\n * // => true\n *\n * _.isTypedArray([]);\n * // => false\n */\nvar isTypedArray = nodeIsTypedArray ? baseUnary(nodeIsTypedArray) : baseIsTypedArray;\n\nmodule.exports = isTypedArray;\n","var arrayLikeKeys = require('./_arrayLikeKeys'),\n baseKeys = require('./_baseKeys'),\n isArrayLike = require('./isArrayLike');\n\n/**\n * Creates an array of the own enumerable property names of `object`.\n *\n * **Note:** Non-object values are coerced to objects. See the\n * [ES spec](http://ecma-international.org/ecma-262/7.0/#sec-object.keys)\n * for more details.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Object\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.keys(new Foo);\n * // => ['a', 'b'] (iteration order is not guaranteed)\n *\n * _.keys('hi');\n * // => ['0', '1']\n */\nfunction keys(object) {\n return isArrayLike(object) ? arrayLikeKeys(object) : baseKeys(object);\n}\n\nmodule.exports = keys;\n","var baseAssignValue = require('./_baseAssignValue'),\n baseForOwn = require('./_baseForOwn'),\n baseIteratee = require('./_baseIteratee');\n\n/**\n * The opposite of `_.mapValues`; this method creates an object with the\n * same values as `object` and keys generated by running each own enumerable\n * string keyed property of `object` thru `iteratee`. The iteratee is invoked\n * with three arguments: (value, key, object).\n *\n * @static\n * @memberOf _\n * @since 3.8.0\n * @category Object\n * @param {Object} object The object to iterate over.\n * @param {Function} [iteratee=_.identity] The function invoked per iteration.\n * @returns {Object} Returns the new mapped object.\n * @see _.mapValues\n * @example\n *\n * _.mapKeys({ 'a': 1, 'b': 2 }, function(value, key) {\n * return key + value;\n * });\n * // => { 'a1': 1, 'b2': 2 }\n */\nfunction mapKeys(object, iteratee) {\n var result = {};\n iteratee = baseIteratee(iteratee, 3);\n\n baseForOwn(object, function(value, key, object) {\n baseAssignValue(result, iteratee(value, key, object), value);\n });\n return result;\n}\n\nmodule.exports = mapKeys;\n","var baseAssignValue = require('./_baseAssignValue'),\n baseForOwn = require('./_baseForOwn'),\n baseIteratee = require('./_baseIteratee');\n\n/**\n * Creates an object with the same keys as `object` and values generated\n * by running each own enumerable string keyed property of `object` thru\n * `iteratee`. The iteratee is invoked with three arguments:\n * (value, key, object).\n *\n * @static\n * @memberOf _\n * @since 2.4.0\n * @category Object\n * @param {Object} object The object to iterate over.\n * @param {Function} [iteratee=_.identity] The function invoked per iteration.\n * @returns {Object} Returns the new mapped object.\n * @see _.mapKeys\n * @example\n *\n * var users = {\n * 'fred': { 'user': 'fred', 'age': 40 },\n * 'pebbles': { 'user': 'pebbles', 'age': 1 }\n * };\n *\n * _.mapValues(users, function(o) { return o.age; });\n * // => { 'fred': 40, 'pebbles': 1 } (iteration order is not guaranteed)\n *\n * // The `_.property` iteratee shorthand.\n * _.mapValues(users, 'age');\n * // => { 'fred': 40, 'pebbles': 1 } (iteration order is not guaranteed)\n */\nfunction mapValues(object, iteratee) {\n var result = {};\n iteratee = baseIteratee(iteratee, 3);\n\n baseForOwn(object, function(value, key, object) {\n baseAssignValue(result, key, iteratee(value, key, object));\n });\n return result;\n}\n\nmodule.exports = mapValues;\n","var MapCache = require('./_MapCache');\n\n/** Error message constants. */\nvar FUNC_ERROR_TEXT = 'Expected a function';\n\n/**\n * Creates a function that memoizes the result of `func`. If `resolver` is\n * provided, it determines the cache key for storing the result based on the\n * arguments provided to the memoized function. By default, the first argument\n * provided to the memoized function is used as the map cache key. The `func`\n * is invoked with the `this` binding of the memoized function.\n *\n * **Note:** The cache is exposed as the `cache` property on the memoized\n * function. Its creation may be customized by replacing the `_.memoize.Cache`\n * constructor with one whose instances implement the\n * [`Map`](http://ecma-international.org/ecma-262/7.0/#sec-properties-of-the-map-prototype-object)\n * method interface of `clear`, `delete`, `get`, `has`, and `set`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {Function} func The function to have its output memoized.\n * @param {Function} [resolver] The function to resolve the cache key.\n * @returns {Function} Returns the new memoized function.\n * @example\n *\n * var object = { 'a': 1, 'b': 2 };\n * var other = { 'c': 3, 'd': 4 };\n *\n * var values = _.memoize(_.values);\n * values(object);\n * // => [1, 2]\n *\n * values(other);\n * // => [3, 4]\n *\n * object.a = 2;\n * values(object);\n * // => [1, 2]\n *\n * // Modify the result cache.\n * values.cache.set(object, ['a', 'b']);\n * values(object);\n * // => ['a', 'b']\n *\n * // Replace `_.memoize.Cache`.\n * _.memoize.Cache = WeakMap;\n */\nfunction memoize(func, resolver) {\n if (typeof func != 'function' || (resolver != null && typeof resolver != 'function')) {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n var memoized = function() {\n var args = arguments,\n key = resolver ? resolver.apply(this, args) : args[0],\n cache = memoized.cache;\n\n if (cache.has(key)) {\n return cache.get(key);\n }\n var result = func.apply(this, args);\n memoized.cache = cache.set(key, result) || cache;\n return result;\n };\n memoized.cache = new (memoize.Cache || MapCache);\n return memoized;\n}\n\n// Expose `MapCache`.\nmemoize.Cache = MapCache;\n\nmodule.exports = memoize;\n","var baseProperty = require('./_baseProperty'),\n basePropertyDeep = require('./_basePropertyDeep'),\n isKey = require('./_isKey'),\n toKey = require('./_toKey');\n\n/**\n * Creates a function that returns the value at `path` of a given object.\n *\n * @static\n * @memberOf _\n * @since 2.4.0\n * @category Util\n * @param {Array|string} path The path of the property to get.\n * @returns {Function} Returns the new accessor function.\n * @example\n *\n * var objects = [\n * { 'a': { 'b': 2 } },\n * { 'a': { 'b': 1 } }\n * ];\n *\n * _.map(objects, _.property('a.b'));\n * // => [2, 1]\n *\n * _.map(_.sortBy(objects, _.property(['a', 'b'])), 'a.b');\n * // => [1, 2]\n */\nfunction property(path) {\n return isKey(path) ? baseProperty(toKey(path)) : basePropertyDeep(path);\n}\n\nmodule.exports = property;\n","var createCompounder = require('./_createCompounder');\n\n/**\n * Converts `string` to\n * [snake case](https://en.wikipedia.org/wiki/Snake_case).\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category String\n * @param {string} [string=''] The string to convert.\n * @returns {string} Returns the snake cased string.\n * @example\n *\n * _.snakeCase('Foo Bar');\n * // => 'foo_bar'\n *\n * _.snakeCase('fooBar');\n * // => 'foo_bar'\n *\n * _.snakeCase('--FOO-BAR--');\n * // => 'foo_bar'\n */\nvar snakeCase = createCompounder(function(result, word, index) {\n return result + (index ? '_' : '') + word.toLowerCase();\n});\n\nmodule.exports = snakeCase;\n","/**\n * This method returns a new empty array.\n *\n * @static\n * @memberOf _\n * @since 4.13.0\n * @category Util\n * @returns {Array} Returns the new empty array.\n * @example\n *\n * var arrays = _.times(2, _.stubArray);\n *\n * console.log(arrays);\n * // => [[], []]\n *\n * console.log(arrays[0] === arrays[1]);\n * // => false\n */\nfunction stubArray() {\n return [];\n}\n\nmodule.exports = stubArray;\n","/**\n * This method returns `false`.\n *\n * @static\n * @memberOf _\n * @since 4.13.0\n * @category Util\n * @returns {boolean} Returns `false`.\n * @example\n *\n * _.times(2, _.stubFalse);\n * // => [false, false]\n */\nfunction stubFalse() {\n return false;\n}\n\nmodule.exports = stubFalse;\n","var baseToString = require('./_baseToString');\n\n/**\n * Converts `value` to a string. An empty string is returned for `null`\n * and `undefined` values. The sign of `-0` is preserved.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to convert.\n * @returns {string} Returns the converted string.\n * @example\n *\n * _.toString(null);\n * // => ''\n *\n * _.toString(-0);\n * // => '-0'\n *\n * _.toString([1, 2, 3]);\n * // => '1,2,3'\n */\nfunction toString(value) {\n return value == null ? '' : baseToString(value);\n}\n\nmodule.exports = toString;\n","var createCaseFirst = require('./_createCaseFirst');\n\n/**\n * Converts the first character of `string` to upper case.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category String\n * @param {string} [string=''] The string to convert.\n * @returns {string} Returns the converted string.\n * @example\n *\n * _.upperFirst('fred');\n * // => 'Fred'\n *\n * _.upperFirst('FRED');\n * // => 'FRED'\n */\nvar upperFirst = createCaseFirst('toUpperCase');\n\nmodule.exports = upperFirst;\n","var asciiWords = require('./_asciiWords'),\n hasUnicodeWord = require('./_hasUnicodeWord'),\n toString = require('./toString'),\n unicodeWords = require('./_unicodeWords');\n\n/**\n * Splits `string` into an array of its words.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category String\n * @param {string} [string=''] The string to inspect.\n * @param {RegExp|string} [pattern] The pattern to match words.\n * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`.\n * @returns {Array} Returns the words of `string`.\n * @example\n *\n * _.words('fred, barney, & pebbles');\n * // => ['fred', 'barney', 'pebbles']\n *\n * _.words('fred, barney, & pebbles', /[^, ]+/g);\n * // => ['fred', 'barney', '&', 'pebbles']\n */\nfunction words(string, pattern, guard) {\n string = toString(string);\n pattern = guard ? undefined : pattern;\n\n if (pattern === undefined) {\n return hasUnicodeWord(string) ? unicodeWords(string) : asciiWords(string);\n }\n return string.match(pattern) || [];\n}\n\nmodule.exports = words;\n","//! moment.js\n//! version : 2.29.4\n//! authors : Tim Wood, Iskren Chernev, Moment.js contributors\n//! license : MIT\n//! momentjs.com\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() :\n typeof define === 'function' && define.amd ? define(factory) :\n global.moment = factory()\n}(this, (function () { 'use strict';\n\n var hookCallback;\n\n function hooks() {\n return hookCallback.apply(null, arguments);\n }\n\n // This is done to register the method called with moment()\n // without creating circular dependencies.\n function setHookCallback(callback) {\n hookCallback = callback;\n }\n\n function isArray(input) {\n return (\n input instanceof Array ||\n Object.prototype.toString.call(input) === '[object Array]'\n );\n }\n\n function isObject(input) {\n // IE8 will treat undefined and null as object if it wasn't for\n // input != null\n return (\n input != null &&\n Object.prototype.toString.call(input) === '[object Object]'\n );\n }\n\n function hasOwnProp(a, b) {\n return Object.prototype.hasOwnProperty.call(a, b);\n }\n\n function isObjectEmpty(obj) {\n if (Object.getOwnPropertyNames) {\n return Object.getOwnPropertyNames(obj).length === 0;\n } else {\n var k;\n for (k in obj) {\n if (hasOwnProp(obj, k)) {\n return false;\n }\n }\n return true;\n }\n }\n\n function isUndefined(input) {\n return input === void 0;\n }\n\n function isNumber(input) {\n return (\n typeof input === 'number' ||\n Object.prototype.toString.call(input) === '[object Number]'\n );\n }\n\n function isDate(input) {\n return (\n input instanceof Date ||\n Object.prototype.toString.call(input) === '[object Date]'\n );\n }\n\n function map(arr, fn) {\n var res = [],\n i,\n arrLen = arr.length;\n for (i = 0; i < arrLen; ++i) {\n res.push(fn(arr[i], i));\n }\n return res;\n }\n\n function extend(a, b) {\n for (var i in b) {\n if (hasOwnProp(b, i)) {\n a[i] = b[i];\n }\n }\n\n if (hasOwnProp(b, 'toString')) {\n a.toString = b.toString;\n }\n\n if (hasOwnProp(b, 'valueOf')) {\n a.valueOf = b.valueOf;\n }\n\n return a;\n }\n\n function createUTC(input, format, locale, strict) {\n return createLocalOrUTC(input, format, locale, strict, true).utc();\n }\n\n function defaultParsingFlags() {\n // We need to deep clone this object.\n return {\n empty: false,\n unusedTokens: [],\n unusedInput: [],\n overflow: -2,\n charsLeftOver: 0,\n nullInput: false,\n invalidEra: null,\n invalidMonth: null,\n invalidFormat: false,\n userInvalidated: false,\n iso: false,\n parsedDateParts: [],\n era: null,\n meridiem: null,\n rfc2822: false,\n weekdayMismatch: false,\n };\n }\n\n function getParsingFlags(m) {\n if (m._pf == null) {\n m._pf = defaultParsingFlags();\n }\n return m._pf;\n }\n\n var some;\n if (Array.prototype.some) {\n some = Array.prototype.some;\n } else {\n some = function (fun) {\n var t = Object(this),\n len = t.length >>> 0,\n i;\n\n for (i = 0; i < len; i++) {\n if (i in t && fun.call(this, t[i], i, t)) {\n return true;\n }\n }\n\n return false;\n };\n }\n\n function isValid(m) {\n if (m._isValid == null) {\n var flags = getParsingFlags(m),\n parsedParts = some.call(flags.parsedDateParts, function (i) {\n return i != null;\n }),\n isNowValid =\n !isNaN(m._d.getTime()) &&\n flags.overflow < 0 &&\n !flags.empty &&\n !flags.invalidEra &&\n !flags.invalidMonth &&\n !flags.invalidWeekday &&\n !flags.weekdayMismatch &&\n !flags.nullInput &&\n !flags.invalidFormat &&\n !flags.userInvalidated &&\n (!flags.meridiem || (flags.meridiem && parsedParts));\n\n if (m._strict) {\n isNowValid =\n isNowValid &&\n flags.charsLeftOver === 0 &&\n flags.unusedTokens.length === 0 &&\n flags.bigHour === undefined;\n }\n\n if (Object.isFrozen == null || !Object.isFrozen(m)) {\n m._isValid = isNowValid;\n } else {\n return isNowValid;\n }\n }\n return m._isValid;\n }\n\n function createInvalid(flags) {\n var m = createUTC(NaN);\n if (flags != null) {\n extend(getParsingFlags(m), flags);\n } else {\n getParsingFlags(m).userInvalidated = true;\n }\n\n return m;\n }\n\n // Plugins that add properties should also add the key here (null value),\n // so we can properly clone ourselves.\n var momentProperties = (hooks.momentProperties = []),\n updateInProgress = false;\n\n function copyConfig(to, from) {\n var i,\n prop,\n val,\n momentPropertiesLen = momentProperties.length;\n\n if (!isUndefined(from._isAMomentObject)) {\n to._isAMomentObject = from._isAMomentObject;\n }\n if (!isUndefined(from._i)) {\n to._i = from._i;\n }\n if (!isUndefined(from._f)) {\n to._f = from._f;\n }\n if (!isUndefined(from._l)) {\n to._l = from._l;\n }\n if (!isUndefined(from._strict)) {\n to._strict = from._strict;\n }\n if (!isUndefined(from._tzm)) {\n to._tzm = from._tzm;\n }\n if (!isUndefined(from._isUTC)) {\n to._isUTC = from._isUTC;\n }\n if (!isUndefined(from._offset)) {\n to._offset = from._offset;\n }\n if (!isUndefined(from._pf)) {\n to._pf = getParsingFlags(from);\n }\n if (!isUndefined(from._locale)) {\n to._locale = from._locale;\n }\n\n if (momentPropertiesLen > 0) {\n for (i = 0; i < momentPropertiesLen; i++) {\n prop = momentProperties[i];\n val = from[prop];\n if (!isUndefined(val)) {\n to[prop] = val;\n }\n }\n }\n\n return to;\n }\n\n // Moment prototype object\n function Moment(config) {\n copyConfig(this, config);\n this._d = new Date(config._d != null ? config._d.getTime() : NaN);\n if (!this.isValid()) {\n this._d = new Date(NaN);\n }\n // Prevent infinite loop in case updateOffset creates new moment\n // objects.\n if (updateInProgress === false) {\n updateInProgress = true;\n hooks.updateOffset(this);\n updateInProgress = false;\n }\n }\n\n function isMoment(obj) {\n return (\n obj instanceof Moment || (obj != null && obj._isAMomentObject != null)\n );\n }\n\n function warn(msg) {\n if (\n hooks.suppressDeprecationWarnings === false &&\n typeof console !== 'undefined' &&\n console.warn\n ) {\n console.warn('Deprecation warning: ' + msg);\n }\n }\n\n function deprecate(msg, fn) {\n var firstTime = true;\n\n return extend(function () {\n if (hooks.deprecationHandler != null) {\n hooks.deprecationHandler(null, msg);\n }\n if (firstTime) {\n var args = [],\n arg,\n i,\n key,\n argLen = arguments.length;\n for (i = 0; i < argLen; i++) {\n arg = '';\n if (typeof arguments[i] === 'object') {\n arg += '\\n[' + i + '] ';\n for (key in arguments[0]) {\n if (hasOwnProp(arguments[0], key)) {\n arg += key + ': ' + arguments[0][key] + ', ';\n }\n }\n arg = arg.slice(0, -2); // Remove trailing comma and space\n } else {\n arg = arguments[i];\n }\n args.push(arg);\n }\n warn(\n msg +\n '\\nArguments: ' +\n Array.prototype.slice.call(args).join('') +\n '\\n' +\n new Error().stack\n );\n firstTime = false;\n }\n return fn.apply(this, arguments);\n }, fn);\n }\n\n var deprecations = {};\n\n function deprecateSimple(name, msg) {\n if (hooks.deprecationHandler != null) {\n hooks.deprecationHandler(name, msg);\n }\n if (!deprecations[name]) {\n warn(msg);\n deprecations[name] = true;\n }\n }\n\n hooks.suppressDeprecationWarnings = false;\n hooks.deprecationHandler = null;\n\n function isFunction(input) {\n return (\n (typeof Function !== 'undefined' && input instanceof Function) ||\n Object.prototype.toString.call(input) === '[object Function]'\n );\n }\n\n function set(config) {\n var prop, i;\n for (i in config) {\n if (hasOwnProp(config, i)) {\n prop = config[i];\n if (isFunction(prop)) {\n this[i] = prop;\n } else {\n this['_' + i] = prop;\n }\n }\n }\n this._config = config;\n // Lenient ordinal parsing accepts just a number in addition to\n // number + (possibly) stuff coming from _dayOfMonthOrdinalParse.\n // TODO: Remove \"ordinalParse\" fallback in next major release.\n this._dayOfMonthOrdinalParseLenient = new RegExp(\n (this._dayOfMonthOrdinalParse.source || this._ordinalParse.source) +\n '|' +\n /\\d{1,2}/.source\n );\n }\n\n function mergeConfigs(parentConfig, childConfig) {\n var res = extend({}, parentConfig),\n prop;\n for (prop in childConfig) {\n if (hasOwnProp(childConfig, prop)) {\n if (isObject(parentConfig[prop]) && isObject(childConfig[prop])) {\n res[prop] = {};\n extend(res[prop], parentConfig[prop]);\n extend(res[prop], childConfig[prop]);\n } else if (childConfig[prop] != null) {\n res[prop] = childConfig[prop];\n } else {\n delete res[prop];\n }\n }\n }\n for (prop in parentConfig) {\n if (\n hasOwnProp(parentConfig, prop) &&\n !hasOwnProp(childConfig, prop) &&\n isObject(parentConfig[prop])\n ) {\n // make sure changes to properties don't modify parent config\n res[prop] = extend({}, res[prop]);\n }\n }\n return res;\n }\n\n function Locale(config) {\n if (config != null) {\n this.set(config);\n }\n }\n\n var keys;\n\n if (Object.keys) {\n keys = Object.keys;\n } else {\n keys = function (obj) {\n var i,\n res = [];\n for (i in obj) {\n if (hasOwnProp(obj, i)) {\n res.push(i);\n }\n }\n return res;\n };\n }\n\n var defaultCalendar = {\n sameDay: '[Today at] LT',\n nextDay: '[Tomorrow at] LT',\n nextWeek: 'dddd [at] LT',\n lastDay: '[Yesterday at] LT',\n lastWeek: '[Last] dddd [at] LT',\n sameElse: 'L',\n };\n\n function calendar(key, mom, now) {\n var output = this._calendar[key] || this._calendar['sameElse'];\n return isFunction(output) ? output.call(mom, now) : output;\n }\n\n function zeroFill(number, targetLength, forceSign) {\n var absNumber = '' + Math.abs(number),\n zerosToFill = targetLength - absNumber.length,\n sign = number >= 0;\n return (\n (sign ? (forceSign ? '+' : '') : '-') +\n Math.pow(10, Math.max(0, zerosToFill)).toString().substr(1) +\n absNumber\n );\n }\n\n var formattingTokens =\n /(\\[[^\\[]*\\])|(\\\\)?([Hh]mm(ss)?|Mo|MM?M?M?|Do|DDDo|DD?D?D?|ddd?d?|do?|w[o|w]?|W[o|W]?|Qo?|N{1,5}|YYYYYY|YYYYY|YYYY|YY|y{2,4}|yo?|gg(ggg?)?|GG(GGG?)?|e|E|a|A|hh?|HH?|kk?|mm?|ss?|S{1,9}|x|X|zz?|ZZ?|.)/g,\n localFormattingTokens = /(\\[[^\\[]*\\])|(\\\\)?(LTS|LT|LL?L?L?|l{1,4})/g,\n formatFunctions = {},\n formatTokenFunctions = {};\n\n // token: 'M'\n // padded: ['MM', 2]\n // ordinal: 'Mo'\n // callback: function () { this.month() + 1 }\n function addFormatToken(token, padded, ordinal, callback) {\n var func = callback;\n if (typeof callback === 'string') {\n func = function () {\n return this[callback]();\n };\n }\n if (token) {\n formatTokenFunctions[token] = func;\n }\n if (padded) {\n formatTokenFunctions[padded[0]] = function () {\n return zeroFill(func.apply(this, arguments), padded[1], padded[2]);\n };\n }\n if (ordinal) {\n formatTokenFunctions[ordinal] = function () {\n return this.localeData().ordinal(\n func.apply(this, arguments),\n token\n );\n };\n }\n }\n\n function removeFormattingTokens(input) {\n if (input.match(/\\[[\\s\\S]/)) {\n return input.replace(/^\\[|\\]$/g, '');\n }\n return input.replace(/\\\\/g, '');\n }\n\n function makeFormatFunction(format) {\n var array = format.match(formattingTokens),\n i,\n length;\n\n for (i = 0, length = array.length; i < length; i++) {\n if (formatTokenFunctions[array[i]]) {\n array[i] = formatTokenFunctions[array[i]];\n } else {\n array[i] = removeFormattingTokens(array[i]);\n }\n }\n\n return function (mom) {\n var output = '',\n i;\n for (i = 0; i < length; i++) {\n output += isFunction(array[i])\n ? array[i].call(mom, format)\n : array[i];\n }\n return output;\n };\n }\n\n // format date using native date object\n function formatMoment(m, format) {\n if (!m.isValid()) {\n return m.localeData().invalidDate();\n }\n\n format = expandFormat(format, m.localeData());\n formatFunctions[format] =\n formatFunctions[format] || makeFormatFunction(format);\n\n return formatFunctions[format](m);\n }\n\n function expandFormat(format, locale) {\n var i = 5;\n\n function replaceLongDateFormatTokens(input) {\n return locale.longDateFormat(input) || input;\n }\n\n localFormattingTokens.lastIndex = 0;\n while (i >= 0 && localFormattingTokens.test(format)) {\n format = format.replace(\n localFormattingTokens,\n replaceLongDateFormatTokens\n );\n localFormattingTokens.lastIndex = 0;\n i -= 1;\n }\n\n return format;\n }\n\n var defaultLongDateFormat = {\n LTS: 'h:mm:ss A',\n LT: 'h:mm A',\n L: 'MM/DD/YYYY',\n LL: 'MMMM D, YYYY',\n LLL: 'MMMM D, YYYY h:mm A',\n LLLL: 'dddd, MMMM D, YYYY h:mm A',\n };\n\n function longDateFormat(key) {\n var format = this._longDateFormat[key],\n formatUpper = this._longDateFormat[key.toUpperCase()];\n\n if (format || !formatUpper) {\n return format;\n }\n\n this._longDateFormat[key] = formatUpper\n .match(formattingTokens)\n .map(function (tok) {\n if (\n tok === 'MMMM' ||\n tok === 'MM' ||\n tok === 'DD' ||\n tok === 'dddd'\n ) {\n return tok.slice(1);\n }\n return tok;\n })\n .join('');\n\n return this._longDateFormat[key];\n }\n\n var defaultInvalidDate = 'Invalid date';\n\n function invalidDate() {\n return this._invalidDate;\n }\n\n var defaultOrdinal = '%d',\n defaultDayOfMonthOrdinalParse = /\\d{1,2}/;\n\n function ordinal(number) {\n return this._ordinal.replace('%d', number);\n }\n\n var defaultRelativeTime = {\n future: 'in %s',\n past: '%s ago',\n s: 'a few seconds',\n ss: '%d seconds',\n m: 'a minute',\n mm: '%d minutes',\n h: 'an hour',\n hh: '%d hours',\n d: 'a day',\n dd: '%d days',\n w: 'a week',\n ww: '%d weeks',\n M: 'a month',\n MM: '%d months',\n y: 'a year',\n yy: '%d years',\n };\n\n function relativeTime(number, withoutSuffix, string, isFuture) {\n var output = this._relativeTime[string];\n return isFunction(output)\n ? output(number, withoutSuffix, string, isFuture)\n : output.replace(/%d/i, number);\n }\n\n function pastFuture(diff, output) {\n var format = this._relativeTime[diff > 0 ? 'future' : 'past'];\n return isFunction(format) ? format(output) : format.replace(/%s/i, output);\n }\n\n var aliases = {};\n\n function addUnitAlias(unit, shorthand) {\n var lowerCase = unit.toLowerCase();\n aliases[lowerCase] = aliases[lowerCase + 's'] = aliases[shorthand] = unit;\n }\n\n function normalizeUnits(units) {\n return typeof units === 'string'\n ? aliases[units] || aliases[units.toLowerCase()]\n : undefined;\n }\n\n function normalizeObjectUnits(inputObject) {\n var normalizedInput = {},\n normalizedProp,\n prop;\n\n for (prop in inputObject) {\n if (hasOwnProp(inputObject, prop)) {\n normalizedProp = normalizeUnits(prop);\n if (normalizedProp) {\n normalizedInput[normalizedProp] = inputObject[prop];\n }\n }\n }\n\n return normalizedInput;\n }\n\n var priorities = {};\n\n function addUnitPriority(unit, priority) {\n priorities[unit] = priority;\n }\n\n function getPrioritizedUnits(unitsObj) {\n var units = [],\n u;\n for (u in unitsObj) {\n if (hasOwnProp(unitsObj, u)) {\n units.push({ unit: u, priority: priorities[u] });\n }\n }\n units.sort(function (a, b) {\n return a.priority - b.priority;\n });\n return units;\n }\n\n function isLeapYear(year) {\n return (year % 4 === 0 && year % 100 !== 0) || year % 400 === 0;\n }\n\n function absFloor(number) {\n if (number < 0) {\n // -0 -> 0\n return Math.ceil(number) || 0;\n } else {\n return Math.floor(number);\n }\n }\n\n function toInt(argumentForCoercion) {\n var coercedNumber = +argumentForCoercion,\n value = 0;\n\n if (coercedNumber !== 0 && isFinite(coercedNumber)) {\n value = absFloor(coercedNumber);\n }\n\n return value;\n }\n\n function makeGetSet(unit, keepTime) {\n return function (value) {\n if (value != null) {\n set$1(this, unit, value);\n hooks.updateOffset(this, keepTime);\n return this;\n } else {\n return get(this, unit);\n }\n };\n }\n\n function get(mom, unit) {\n return mom.isValid()\n ? mom._d['get' + (mom._isUTC ? 'UTC' : '') + unit]()\n : NaN;\n }\n\n function set$1(mom, unit, value) {\n if (mom.isValid() && !isNaN(value)) {\n if (\n unit === 'FullYear' &&\n isLeapYear(mom.year()) &&\n mom.month() === 1 &&\n mom.date() === 29\n ) {\n value = toInt(value);\n mom._d['set' + (mom._isUTC ? 'UTC' : '') + unit](\n value,\n mom.month(),\n daysInMonth(value, mom.month())\n );\n } else {\n mom._d['set' + (mom._isUTC ? 'UTC' : '') + unit](value);\n }\n }\n }\n\n // MOMENTS\n\n function stringGet(units) {\n units = normalizeUnits(units);\n if (isFunction(this[units])) {\n return this[units]();\n }\n return this;\n }\n\n function stringSet(units, value) {\n if (typeof units === 'object') {\n units = normalizeObjectUnits(units);\n var prioritized = getPrioritizedUnits(units),\n i,\n prioritizedLen = prioritized.length;\n for (i = 0; i < prioritizedLen; i++) {\n this[prioritized[i].unit](units[prioritized[i].unit]);\n }\n } else {\n units = normalizeUnits(units);\n if (isFunction(this[units])) {\n return this[units](value);\n }\n }\n return this;\n }\n\n var match1 = /\\d/, // 0 - 9\n match2 = /\\d\\d/, // 00 - 99\n match3 = /\\d{3}/, // 000 - 999\n match4 = /\\d{4}/, // 0000 - 9999\n match6 = /[+-]?\\d{6}/, // -999999 - 999999\n match1to2 = /\\d\\d?/, // 0 - 99\n match3to4 = /\\d\\d\\d\\d?/, // 999 - 9999\n match5to6 = /\\d\\d\\d\\d\\d\\d?/, // 99999 - 999999\n match1to3 = /\\d{1,3}/, // 0 - 999\n match1to4 = /\\d{1,4}/, // 0 - 9999\n match1to6 = /[+-]?\\d{1,6}/, // -999999 - 999999\n matchUnsigned = /\\d+/, // 0 - inf\n matchSigned = /[+-]?\\d+/, // -inf - inf\n matchOffset = /Z|[+-]\\d\\d:?\\d\\d/gi, // +00:00 -00:00 +0000 -0000 or Z\n matchShortOffset = /Z|[+-]\\d\\d(?::?\\d\\d)?/gi, // +00 -00 +00:00 -00:00 +0000 -0000 or Z\n matchTimestamp = /[+-]?\\d+(\\.\\d{1,3})?/, // 123456789 123456789.123\n // any word (or two) characters or numbers including two/three word month in arabic.\n // includes scottish gaelic two word and hyphenated months\n matchWord =\n /[0-9]{0,256}['a-z\\u00A0-\\u05FF\\u0700-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFF07\\uFF10-\\uFFEF]{1,256}|[\\u0600-\\u06FF\\/]{1,256}(\\s*?[\\u0600-\\u06FF]{1,256}){1,2}/i,\n regexes;\n\n regexes = {};\n\n function addRegexToken(token, regex, strictRegex) {\n regexes[token] = isFunction(regex)\n ? regex\n : function (isStrict, localeData) {\n return isStrict && strictRegex ? strictRegex : regex;\n };\n }\n\n function getParseRegexForToken(token, config) {\n if (!hasOwnProp(regexes, token)) {\n return new RegExp(unescapeFormat(token));\n }\n\n return regexes[token](config._strict, config._locale);\n }\n\n // Code from http://stackoverflow.com/questions/3561493/is-there-a-regexp-escape-function-in-javascript\n function unescapeFormat(s) {\n return regexEscape(\n s\n .replace('\\\\', '')\n .replace(\n /\\\\(\\[)|\\\\(\\])|\\[([^\\]\\[]*)\\]|\\\\(.)/g,\n function (matched, p1, p2, p3, p4) {\n return p1 || p2 || p3 || p4;\n }\n )\n );\n }\n\n function regexEscape(s) {\n return s.replace(/[-\\/\\\\^$*+?.()|[\\]{}]/g, '\\\\$&');\n }\n\n var tokens = {};\n\n function addParseToken(token, callback) {\n var i,\n func = callback,\n tokenLen;\n if (typeof token === 'string') {\n token = [token];\n }\n if (isNumber(callback)) {\n func = function (input, array) {\n array[callback] = toInt(input);\n };\n }\n tokenLen = token.length;\n for (i = 0; i < tokenLen; i++) {\n tokens[token[i]] = func;\n }\n }\n\n function addWeekParseToken(token, callback) {\n addParseToken(token, function (input, array, config, token) {\n config._w = config._w || {};\n callback(input, config._w, config, token);\n });\n }\n\n function addTimeToArrayFromToken(token, input, config) {\n if (input != null && hasOwnProp(tokens, token)) {\n tokens[token](input, config._a, config, token);\n }\n }\n\n var YEAR = 0,\n MONTH = 1,\n DATE = 2,\n HOUR = 3,\n MINUTE = 4,\n SECOND = 5,\n MILLISECOND = 6,\n WEEK = 7,\n WEEKDAY = 8;\n\n function mod(n, x) {\n return ((n % x) + x) % x;\n }\n\n var indexOf;\n\n if (Array.prototype.indexOf) {\n indexOf = Array.prototype.indexOf;\n } else {\n indexOf = function (o) {\n // I know\n var i;\n for (i = 0; i < this.length; ++i) {\n if (this[i] === o) {\n return i;\n }\n }\n return -1;\n };\n }\n\n function daysInMonth(year, month) {\n if (isNaN(year) || isNaN(month)) {\n return NaN;\n }\n var modMonth = mod(month, 12);\n year += (month - modMonth) / 12;\n return modMonth === 1\n ? isLeapYear(year)\n ? 29\n : 28\n : 31 - ((modMonth % 7) % 2);\n }\n\n // FORMATTING\n\n addFormatToken('M', ['MM', 2], 'Mo', function () {\n return this.month() + 1;\n });\n\n addFormatToken('MMM', 0, 0, function (format) {\n return this.localeData().monthsShort(this, format);\n });\n\n addFormatToken('MMMM', 0, 0, function (format) {\n return this.localeData().months(this, format);\n });\n\n // ALIASES\n\n addUnitAlias('month', 'M');\n\n // PRIORITY\n\n addUnitPriority('month', 8);\n\n // PARSING\n\n addRegexToken('M', match1to2);\n addRegexToken('MM', match1to2, match2);\n addRegexToken('MMM', function (isStrict, locale) {\n return locale.monthsShortRegex(isStrict);\n });\n addRegexToken('MMMM', function (isStrict, locale) {\n return locale.monthsRegex(isStrict);\n });\n\n addParseToken(['M', 'MM'], function (input, array) {\n array[MONTH] = toInt(input) - 1;\n });\n\n addParseToken(['MMM', 'MMMM'], function (input, array, config, token) {\n var month = config._locale.monthsParse(input, token, config._strict);\n // if we didn't find a month name, mark the date as invalid.\n if (month != null) {\n array[MONTH] = month;\n } else {\n getParsingFlags(config).invalidMonth = input;\n }\n });\n\n // LOCALES\n\n var defaultLocaleMonths =\n 'January_February_March_April_May_June_July_August_September_October_November_December'.split(\n '_'\n ),\n defaultLocaleMonthsShort =\n 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'),\n MONTHS_IN_FORMAT = /D[oD]?(\\[[^\\[\\]]*\\]|\\s)+MMMM?/,\n defaultMonthsShortRegex = matchWord,\n defaultMonthsRegex = matchWord;\n\n function localeMonths(m, format) {\n if (!m) {\n return isArray(this._months)\n ? this._months\n : this._months['standalone'];\n }\n return isArray(this._months)\n ? this._months[m.month()]\n : this._months[\n (this._months.isFormat || MONTHS_IN_FORMAT).test(format)\n ? 'format'\n : 'standalone'\n ][m.month()];\n }\n\n function localeMonthsShort(m, format) {\n if (!m) {\n return isArray(this._monthsShort)\n ? this._monthsShort\n : this._monthsShort['standalone'];\n }\n return isArray(this._monthsShort)\n ? this._monthsShort[m.month()]\n : this._monthsShort[\n MONTHS_IN_FORMAT.test(format) ? 'format' : 'standalone'\n ][m.month()];\n }\n\n function handleStrictParse(monthName, format, strict) {\n var i,\n ii,\n mom,\n llc = monthName.toLocaleLowerCase();\n if (!this._monthsParse) {\n // this is not used\n this._monthsParse = [];\n this._longMonthsParse = [];\n this._shortMonthsParse = [];\n for (i = 0; i < 12; ++i) {\n mom = createUTC([2000, i]);\n this._shortMonthsParse[i] = this.monthsShort(\n mom,\n ''\n ).toLocaleLowerCase();\n this._longMonthsParse[i] = this.months(mom, '').toLocaleLowerCase();\n }\n }\n\n if (strict) {\n if (format === 'MMM') {\n ii = indexOf.call(this._shortMonthsParse, llc);\n return ii !== -1 ? ii : null;\n } else {\n ii = indexOf.call(this._longMonthsParse, llc);\n return ii !== -1 ? ii : null;\n }\n } else {\n if (format === 'MMM') {\n ii = indexOf.call(this._shortMonthsParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._longMonthsParse, llc);\n return ii !== -1 ? ii : null;\n } else {\n ii = indexOf.call(this._longMonthsParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._shortMonthsParse, llc);\n return ii !== -1 ? ii : null;\n }\n }\n }\n\n function localeMonthsParse(monthName, format, strict) {\n var i, mom, regex;\n\n if (this._monthsParseExact) {\n return handleStrictParse.call(this, monthName, format, strict);\n }\n\n if (!this._monthsParse) {\n this._monthsParse = [];\n this._longMonthsParse = [];\n this._shortMonthsParse = [];\n }\n\n // TODO: add sorting\n // Sorting makes sure if one month (or abbr) is a prefix of another\n // see sorting in computeMonthsParse\n for (i = 0; i < 12; i++) {\n // make the regex if we don't have it already\n mom = createUTC([2000, i]);\n if (strict && !this._longMonthsParse[i]) {\n this._longMonthsParse[i] = new RegExp(\n '^' + this.months(mom, '').replace('.', '') + '$',\n 'i'\n );\n this._shortMonthsParse[i] = new RegExp(\n '^' + this.monthsShort(mom, '').replace('.', '') + '$',\n 'i'\n );\n }\n if (!strict && !this._monthsParse[i]) {\n regex =\n '^' + this.months(mom, '') + '|^' + this.monthsShort(mom, '');\n this._monthsParse[i] = new RegExp(regex.replace('.', ''), 'i');\n }\n // test the regex\n if (\n strict &&\n format === 'MMMM' &&\n this._longMonthsParse[i].test(monthName)\n ) {\n return i;\n } else if (\n strict &&\n format === 'MMM' &&\n this._shortMonthsParse[i].test(monthName)\n ) {\n return i;\n } else if (!strict && this._monthsParse[i].test(monthName)) {\n return i;\n }\n }\n }\n\n // MOMENTS\n\n function setMonth(mom, value) {\n var dayOfMonth;\n\n if (!mom.isValid()) {\n // No op\n return mom;\n }\n\n if (typeof value === 'string') {\n if (/^\\d+$/.test(value)) {\n value = toInt(value);\n } else {\n value = mom.localeData().monthsParse(value);\n // TODO: Another silent failure?\n if (!isNumber(value)) {\n return mom;\n }\n }\n }\n\n dayOfMonth = Math.min(mom.date(), daysInMonth(mom.year(), value));\n mom._d['set' + (mom._isUTC ? 'UTC' : '') + 'Month'](value, dayOfMonth);\n return mom;\n }\n\n function getSetMonth(value) {\n if (value != null) {\n setMonth(this, value);\n hooks.updateOffset(this, true);\n return this;\n } else {\n return get(this, 'Month');\n }\n }\n\n function getDaysInMonth() {\n return daysInMonth(this.year(), this.month());\n }\n\n function monthsShortRegex(isStrict) {\n if (this._monthsParseExact) {\n if (!hasOwnProp(this, '_monthsRegex')) {\n computeMonthsParse.call(this);\n }\n if (isStrict) {\n return this._monthsShortStrictRegex;\n } else {\n return this._monthsShortRegex;\n }\n } else {\n if (!hasOwnProp(this, '_monthsShortRegex')) {\n this._monthsShortRegex = defaultMonthsShortRegex;\n }\n return this._monthsShortStrictRegex && isStrict\n ? this._monthsShortStrictRegex\n : this._monthsShortRegex;\n }\n }\n\n function monthsRegex(isStrict) {\n if (this._monthsParseExact) {\n if (!hasOwnProp(this, '_monthsRegex')) {\n computeMonthsParse.call(this);\n }\n if (isStrict) {\n return this._monthsStrictRegex;\n } else {\n return this._monthsRegex;\n }\n } else {\n if (!hasOwnProp(this, '_monthsRegex')) {\n this._monthsRegex = defaultMonthsRegex;\n }\n return this._monthsStrictRegex && isStrict\n ? this._monthsStrictRegex\n : this._monthsRegex;\n }\n }\n\n function computeMonthsParse() {\n function cmpLenRev(a, b) {\n return b.length - a.length;\n }\n\n var shortPieces = [],\n longPieces = [],\n mixedPieces = [],\n i,\n mom;\n for (i = 0; i < 12; i++) {\n // make the regex if we don't have it already\n mom = createUTC([2000, i]);\n shortPieces.push(this.monthsShort(mom, ''));\n longPieces.push(this.months(mom, ''));\n mixedPieces.push(this.months(mom, ''));\n mixedPieces.push(this.monthsShort(mom, ''));\n }\n // Sorting makes sure if one month (or abbr) is a prefix of another it\n // will match the longer piece.\n shortPieces.sort(cmpLenRev);\n longPieces.sort(cmpLenRev);\n mixedPieces.sort(cmpLenRev);\n for (i = 0; i < 12; i++) {\n shortPieces[i] = regexEscape(shortPieces[i]);\n longPieces[i] = regexEscape(longPieces[i]);\n }\n for (i = 0; i < 24; i++) {\n mixedPieces[i] = regexEscape(mixedPieces[i]);\n }\n\n this._monthsRegex = new RegExp('^(' + mixedPieces.join('|') + ')', 'i');\n this._monthsShortRegex = this._monthsRegex;\n this._monthsStrictRegex = new RegExp(\n '^(' + longPieces.join('|') + ')',\n 'i'\n );\n this._monthsShortStrictRegex = new RegExp(\n '^(' + shortPieces.join('|') + ')',\n 'i'\n );\n }\n\n // FORMATTING\n\n addFormatToken('Y', 0, 0, function () {\n var y = this.year();\n return y <= 9999 ? zeroFill(y, 4) : '+' + y;\n });\n\n addFormatToken(0, ['YY', 2], 0, function () {\n return this.year() % 100;\n });\n\n addFormatToken(0, ['YYYY', 4], 0, 'year');\n addFormatToken(0, ['YYYYY', 5], 0, 'year');\n addFormatToken(0, ['YYYYYY', 6, true], 0, 'year');\n\n // ALIASES\n\n addUnitAlias('year', 'y');\n\n // PRIORITIES\n\n addUnitPriority('year', 1);\n\n // PARSING\n\n addRegexToken('Y', matchSigned);\n addRegexToken('YY', match1to2, match2);\n addRegexToken('YYYY', match1to4, match4);\n addRegexToken('YYYYY', match1to6, match6);\n addRegexToken('YYYYYY', match1to6, match6);\n\n addParseToken(['YYYYY', 'YYYYYY'], YEAR);\n addParseToken('YYYY', function (input, array) {\n array[YEAR] =\n input.length === 2 ? hooks.parseTwoDigitYear(input) : toInt(input);\n });\n addParseToken('YY', function (input, array) {\n array[YEAR] = hooks.parseTwoDigitYear(input);\n });\n addParseToken('Y', function (input, array) {\n array[YEAR] = parseInt(input, 10);\n });\n\n // HELPERS\n\n function daysInYear(year) {\n return isLeapYear(year) ? 366 : 365;\n }\n\n // HOOKS\n\n hooks.parseTwoDigitYear = function (input) {\n return toInt(input) + (toInt(input) > 68 ? 1900 : 2000);\n };\n\n // MOMENTS\n\n var getSetYear = makeGetSet('FullYear', true);\n\n function getIsLeapYear() {\n return isLeapYear(this.year());\n }\n\n function createDate(y, m, d, h, M, s, ms) {\n // can't just apply() to create a date:\n // https://stackoverflow.com/q/181348\n var date;\n // the date constructor remaps years 0-99 to 1900-1999\n if (y < 100 && y >= 0) {\n // preserve leap years using a full 400 year cycle, then reset\n date = new Date(y + 400, m, d, h, M, s, ms);\n if (isFinite(date.getFullYear())) {\n date.setFullYear(y);\n }\n } else {\n date = new Date(y, m, d, h, M, s, ms);\n }\n\n return date;\n }\n\n function createUTCDate(y) {\n var date, args;\n // the Date.UTC function remaps years 0-99 to 1900-1999\n if (y < 100 && y >= 0) {\n args = Array.prototype.slice.call(arguments);\n // preserve leap years using a full 400 year cycle, then reset\n args[0] = y + 400;\n date = new Date(Date.UTC.apply(null, args));\n if (isFinite(date.getUTCFullYear())) {\n date.setUTCFullYear(y);\n }\n } else {\n date = new Date(Date.UTC.apply(null, arguments));\n }\n\n return date;\n }\n\n // start-of-first-week - start-of-year\n function firstWeekOffset(year, dow, doy) {\n var // first-week day -- which january is always in the first week (4 for iso, 1 for other)\n fwd = 7 + dow - doy,\n // first-week day local weekday -- which local weekday is fwd\n fwdlw = (7 + createUTCDate(year, 0, fwd).getUTCDay() - dow) % 7;\n\n return -fwdlw + fwd - 1;\n }\n\n // https://en.wikipedia.org/wiki/ISO_week_date#Calculating_a_date_given_the_year.2C_week_number_and_weekday\n function dayOfYearFromWeeks(year, week, weekday, dow, doy) {\n var localWeekday = (7 + weekday - dow) % 7,\n weekOffset = firstWeekOffset(year, dow, doy),\n dayOfYear = 1 + 7 * (week - 1) + localWeekday + weekOffset,\n resYear,\n resDayOfYear;\n\n if (dayOfYear <= 0) {\n resYear = year - 1;\n resDayOfYear = daysInYear(resYear) + dayOfYear;\n } else if (dayOfYear > daysInYear(year)) {\n resYear = year + 1;\n resDayOfYear = dayOfYear - daysInYear(year);\n } else {\n resYear = year;\n resDayOfYear = dayOfYear;\n }\n\n return {\n year: resYear,\n dayOfYear: resDayOfYear,\n };\n }\n\n function weekOfYear(mom, dow, doy) {\n var weekOffset = firstWeekOffset(mom.year(), dow, doy),\n week = Math.floor((mom.dayOfYear() - weekOffset - 1) / 7) + 1,\n resWeek,\n resYear;\n\n if (week < 1) {\n resYear = mom.year() - 1;\n resWeek = week + weeksInYear(resYear, dow, doy);\n } else if (week > weeksInYear(mom.year(), dow, doy)) {\n resWeek = week - weeksInYear(mom.year(), dow, doy);\n resYear = mom.year() + 1;\n } else {\n resYear = mom.year();\n resWeek = week;\n }\n\n return {\n week: resWeek,\n year: resYear,\n };\n }\n\n function weeksInYear(year, dow, doy) {\n var weekOffset = firstWeekOffset(year, dow, doy),\n weekOffsetNext = firstWeekOffset(year + 1, dow, doy);\n return (daysInYear(year) - weekOffset + weekOffsetNext) / 7;\n }\n\n // FORMATTING\n\n addFormatToken('w', ['ww', 2], 'wo', 'week');\n addFormatToken('W', ['WW', 2], 'Wo', 'isoWeek');\n\n // ALIASES\n\n addUnitAlias('week', 'w');\n addUnitAlias('isoWeek', 'W');\n\n // PRIORITIES\n\n addUnitPriority('week', 5);\n addUnitPriority('isoWeek', 5);\n\n // PARSING\n\n addRegexToken('w', match1to2);\n addRegexToken('ww', match1to2, match2);\n addRegexToken('W', match1to2);\n addRegexToken('WW', match1to2, match2);\n\n addWeekParseToken(\n ['w', 'ww', 'W', 'WW'],\n function (input, week, config, token) {\n week[token.substr(0, 1)] = toInt(input);\n }\n );\n\n // HELPERS\n\n // LOCALES\n\n function localeWeek(mom) {\n return weekOfYear(mom, this._week.dow, this._week.doy).week;\n }\n\n var defaultLocaleWeek = {\n dow: 0, // Sunday is the first day of the week.\n doy: 6, // The week that contains Jan 6th is the first week of the year.\n };\n\n function localeFirstDayOfWeek() {\n return this._week.dow;\n }\n\n function localeFirstDayOfYear() {\n return this._week.doy;\n }\n\n // MOMENTS\n\n function getSetWeek(input) {\n var week = this.localeData().week(this);\n return input == null ? week : this.add((input - week) * 7, 'd');\n }\n\n function getSetISOWeek(input) {\n var week = weekOfYear(this, 1, 4).week;\n return input == null ? week : this.add((input - week) * 7, 'd');\n }\n\n // FORMATTING\n\n addFormatToken('d', 0, 'do', 'day');\n\n addFormatToken('dd', 0, 0, function (format) {\n return this.localeData().weekdaysMin(this, format);\n });\n\n addFormatToken('ddd', 0, 0, function (format) {\n return this.localeData().weekdaysShort(this, format);\n });\n\n addFormatToken('dddd', 0, 0, function (format) {\n return this.localeData().weekdays(this, format);\n });\n\n addFormatToken('e', 0, 0, 'weekday');\n addFormatToken('E', 0, 0, 'isoWeekday');\n\n // ALIASES\n\n addUnitAlias('day', 'd');\n addUnitAlias('weekday', 'e');\n addUnitAlias('isoWeekday', 'E');\n\n // PRIORITY\n addUnitPriority('day', 11);\n addUnitPriority('weekday', 11);\n addUnitPriority('isoWeekday', 11);\n\n // PARSING\n\n addRegexToken('d', match1to2);\n addRegexToken('e', match1to2);\n addRegexToken('E', match1to2);\n addRegexToken('dd', function (isStrict, locale) {\n return locale.weekdaysMinRegex(isStrict);\n });\n addRegexToken('ddd', function (isStrict, locale) {\n return locale.weekdaysShortRegex(isStrict);\n });\n addRegexToken('dddd', function (isStrict, locale) {\n return locale.weekdaysRegex(isStrict);\n });\n\n addWeekParseToken(['dd', 'ddd', 'dddd'], function (input, week, config, token) {\n var weekday = config._locale.weekdaysParse(input, token, config._strict);\n // if we didn't get a weekday name, mark the date as invalid\n if (weekday != null) {\n week.d = weekday;\n } else {\n getParsingFlags(config).invalidWeekday = input;\n }\n });\n\n addWeekParseToken(['d', 'e', 'E'], function (input, week, config, token) {\n week[token] = toInt(input);\n });\n\n // HELPERS\n\n function parseWeekday(input, locale) {\n if (typeof input !== 'string') {\n return input;\n }\n\n if (!isNaN(input)) {\n return parseInt(input, 10);\n }\n\n input = locale.weekdaysParse(input);\n if (typeof input === 'number') {\n return input;\n }\n\n return null;\n }\n\n function parseIsoWeekday(input, locale) {\n if (typeof input === 'string') {\n return locale.weekdaysParse(input) % 7 || 7;\n }\n return isNaN(input) ? null : input;\n }\n\n // LOCALES\n function shiftWeekdays(ws, n) {\n return ws.slice(n, 7).concat(ws.slice(0, n));\n }\n\n var defaultLocaleWeekdays =\n 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split('_'),\n defaultLocaleWeekdaysShort = 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'),\n defaultLocaleWeekdaysMin = 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'),\n defaultWeekdaysRegex = matchWord,\n defaultWeekdaysShortRegex = matchWord,\n defaultWeekdaysMinRegex = matchWord;\n\n function localeWeekdays(m, format) {\n var weekdays = isArray(this._weekdays)\n ? this._weekdays\n : this._weekdays[\n m && m !== true && this._weekdays.isFormat.test(format)\n ? 'format'\n : 'standalone'\n ];\n return m === true\n ? shiftWeekdays(weekdays, this._week.dow)\n : m\n ? weekdays[m.day()]\n : weekdays;\n }\n\n function localeWeekdaysShort(m) {\n return m === true\n ? shiftWeekdays(this._weekdaysShort, this._week.dow)\n : m\n ? this._weekdaysShort[m.day()]\n : this._weekdaysShort;\n }\n\n function localeWeekdaysMin(m) {\n return m === true\n ? shiftWeekdays(this._weekdaysMin, this._week.dow)\n : m\n ? this._weekdaysMin[m.day()]\n : this._weekdaysMin;\n }\n\n function handleStrictParse$1(weekdayName, format, strict) {\n var i,\n ii,\n mom,\n llc = weekdayName.toLocaleLowerCase();\n if (!this._weekdaysParse) {\n this._weekdaysParse = [];\n this._shortWeekdaysParse = [];\n this._minWeekdaysParse = [];\n\n for (i = 0; i < 7; ++i) {\n mom = createUTC([2000, 1]).day(i);\n this._minWeekdaysParse[i] = this.weekdaysMin(\n mom,\n ''\n ).toLocaleLowerCase();\n this._shortWeekdaysParse[i] = this.weekdaysShort(\n mom,\n ''\n ).toLocaleLowerCase();\n this._weekdaysParse[i] = this.weekdays(mom, '').toLocaleLowerCase();\n }\n }\n\n if (strict) {\n if (format === 'dddd') {\n ii = indexOf.call(this._weekdaysParse, llc);\n return ii !== -1 ? ii : null;\n } else if (format === 'ddd') {\n ii = indexOf.call(this._shortWeekdaysParse, llc);\n return ii !== -1 ? ii : null;\n } else {\n ii = indexOf.call(this._minWeekdaysParse, llc);\n return ii !== -1 ? ii : null;\n }\n } else {\n if (format === 'dddd') {\n ii = indexOf.call(this._weekdaysParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._shortWeekdaysParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._minWeekdaysParse, llc);\n return ii !== -1 ? ii : null;\n } else if (format === 'ddd') {\n ii = indexOf.call(this._shortWeekdaysParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._weekdaysParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._minWeekdaysParse, llc);\n return ii !== -1 ? ii : null;\n } else {\n ii = indexOf.call(this._minWeekdaysParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._weekdaysParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._shortWeekdaysParse, llc);\n return ii !== -1 ? ii : null;\n }\n }\n }\n\n function localeWeekdaysParse(weekdayName, format, strict) {\n var i, mom, regex;\n\n if (this._weekdaysParseExact) {\n return handleStrictParse$1.call(this, weekdayName, format, strict);\n }\n\n if (!this._weekdaysParse) {\n this._weekdaysParse = [];\n this._minWeekdaysParse = [];\n this._shortWeekdaysParse = [];\n this._fullWeekdaysParse = [];\n }\n\n for (i = 0; i < 7; i++) {\n // make the regex if we don't have it already\n\n mom = createUTC([2000, 1]).day(i);\n if (strict && !this._fullWeekdaysParse[i]) {\n this._fullWeekdaysParse[i] = new RegExp(\n '^' + this.weekdays(mom, '').replace('.', '\\\\.?') + '$',\n 'i'\n );\n this._shortWeekdaysParse[i] = new RegExp(\n '^' + this.weekdaysShort(mom, '').replace('.', '\\\\.?') + '$',\n 'i'\n );\n this._minWeekdaysParse[i] = new RegExp(\n '^' + this.weekdaysMin(mom, '').replace('.', '\\\\.?') + '$',\n 'i'\n );\n }\n if (!this._weekdaysParse[i]) {\n regex =\n '^' +\n this.weekdays(mom, '') +\n '|^' +\n this.weekdaysShort(mom, '') +\n '|^' +\n this.weekdaysMin(mom, '');\n this._weekdaysParse[i] = new RegExp(regex.replace('.', ''), 'i');\n }\n // test the regex\n if (\n strict &&\n format === 'dddd' &&\n this._fullWeekdaysParse[i].test(weekdayName)\n ) {\n return i;\n } else if (\n strict &&\n format === 'ddd' &&\n this._shortWeekdaysParse[i].test(weekdayName)\n ) {\n return i;\n } else if (\n strict &&\n format === 'dd' &&\n this._minWeekdaysParse[i].test(weekdayName)\n ) {\n return i;\n } else if (!strict && this._weekdaysParse[i].test(weekdayName)) {\n return i;\n }\n }\n }\n\n // MOMENTS\n\n function getSetDayOfWeek(input) {\n if (!this.isValid()) {\n return input != null ? this : NaN;\n }\n var day = this._isUTC ? this._d.getUTCDay() : this._d.getDay();\n if (input != null) {\n input = parseWeekday(input, this.localeData());\n return this.add(input - day, 'd');\n } else {\n return day;\n }\n }\n\n function getSetLocaleDayOfWeek(input) {\n if (!this.isValid()) {\n return input != null ? this : NaN;\n }\n var weekday = (this.day() + 7 - this.localeData()._week.dow) % 7;\n return input == null ? weekday : this.add(input - weekday, 'd');\n }\n\n function getSetISODayOfWeek(input) {\n if (!this.isValid()) {\n return input != null ? this : NaN;\n }\n\n // behaves the same as moment#day except\n // as a getter, returns 7 instead of 0 (1-7 range instead of 0-6)\n // as a setter, sunday should belong to the previous week.\n\n if (input != null) {\n var weekday = parseIsoWeekday(input, this.localeData());\n return this.day(this.day() % 7 ? weekday : weekday - 7);\n } else {\n return this.day() || 7;\n }\n }\n\n function weekdaysRegex(isStrict) {\n if (this._weekdaysParseExact) {\n if (!hasOwnProp(this, '_weekdaysRegex')) {\n computeWeekdaysParse.call(this);\n }\n if (isStrict) {\n return this._weekdaysStrictRegex;\n } else {\n return this._weekdaysRegex;\n }\n } else {\n if (!hasOwnProp(this, '_weekdaysRegex')) {\n this._weekdaysRegex = defaultWeekdaysRegex;\n }\n return this._weekdaysStrictRegex && isStrict\n ? this._weekdaysStrictRegex\n : this._weekdaysRegex;\n }\n }\n\n function weekdaysShortRegex(isStrict) {\n if (this._weekdaysParseExact) {\n if (!hasOwnProp(this, '_weekdaysRegex')) {\n computeWeekdaysParse.call(this);\n }\n if (isStrict) {\n return this._weekdaysShortStrictRegex;\n } else {\n return this._weekdaysShortRegex;\n }\n } else {\n if (!hasOwnProp(this, '_weekdaysShortRegex')) {\n this._weekdaysShortRegex = defaultWeekdaysShortRegex;\n }\n return this._weekdaysShortStrictRegex && isStrict\n ? this._weekdaysShortStrictRegex\n : this._weekdaysShortRegex;\n }\n }\n\n function weekdaysMinRegex(isStrict) {\n if (this._weekdaysParseExact) {\n if (!hasOwnProp(this, '_weekdaysRegex')) {\n computeWeekdaysParse.call(this);\n }\n if (isStrict) {\n return this._weekdaysMinStrictRegex;\n } else {\n return this._weekdaysMinRegex;\n }\n } else {\n if (!hasOwnProp(this, '_weekdaysMinRegex')) {\n this._weekdaysMinRegex = defaultWeekdaysMinRegex;\n }\n return this._weekdaysMinStrictRegex && isStrict\n ? this._weekdaysMinStrictRegex\n : this._weekdaysMinRegex;\n }\n }\n\n function computeWeekdaysParse() {\n function cmpLenRev(a, b) {\n return b.length - a.length;\n }\n\n var minPieces = [],\n shortPieces = [],\n longPieces = [],\n mixedPieces = [],\n i,\n mom,\n minp,\n shortp,\n longp;\n for (i = 0; i < 7; i++) {\n // make the regex if we don't have it already\n mom = createUTC([2000, 1]).day(i);\n minp = regexEscape(this.weekdaysMin(mom, ''));\n shortp = regexEscape(this.weekdaysShort(mom, ''));\n longp = regexEscape(this.weekdays(mom, ''));\n minPieces.push(minp);\n shortPieces.push(shortp);\n longPieces.push(longp);\n mixedPieces.push(minp);\n mixedPieces.push(shortp);\n mixedPieces.push(longp);\n }\n // Sorting makes sure if one weekday (or abbr) is a prefix of another it\n // will match the longer piece.\n minPieces.sort(cmpLenRev);\n shortPieces.sort(cmpLenRev);\n longPieces.sort(cmpLenRev);\n mixedPieces.sort(cmpLenRev);\n\n this._weekdaysRegex = new RegExp('^(' + mixedPieces.join('|') + ')', 'i');\n this._weekdaysShortRegex = this._weekdaysRegex;\n this._weekdaysMinRegex = this._weekdaysRegex;\n\n this._weekdaysStrictRegex = new RegExp(\n '^(' + longPieces.join('|') + ')',\n 'i'\n );\n this._weekdaysShortStrictRegex = new RegExp(\n '^(' + shortPieces.join('|') + ')',\n 'i'\n );\n this._weekdaysMinStrictRegex = new RegExp(\n '^(' + minPieces.join('|') + ')',\n 'i'\n );\n }\n\n // FORMATTING\n\n function hFormat() {\n return this.hours() % 12 || 12;\n }\n\n function kFormat() {\n return this.hours() || 24;\n }\n\n addFormatToken('H', ['HH', 2], 0, 'hour');\n addFormatToken('h', ['hh', 2], 0, hFormat);\n addFormatToken('k', ['kk', 2], 0, kFormat);\n\n addFormatToken('hmm', 0, 0, function () {\n return '' + hFormat.apply(this) + zeroFill(this.minutes(), 2);\n });\n\n addFormatToken('hmmss', 0, 0, function () {\n return (\n '' +\n hFormat.apply(this) +\n zeroFill(this.minutes(), 2) +\n zeroFill(this.seconds(), 2)\n );\n });\n\n addFormatToken('Hmm', 0, 0, function () {\n return '' + this.hours() + zeroFill(this.minutes(), 2);\n });\n\n addFormatToken('Hmmss', 0, 0, function () {\n return (\n '' +\n this.hours() +\n zeroFill(this.minutes(), 2) +\n zeroFill(this.seconds(), 2)\n );\n });\n\n function meridiem(token, lowercase) {\n addFormatToken(token, 0, 0, function () {\n return this.localeData().meridiem(\n this.hours(),\n this.minutes(),\n lowercase\n );\n });\n }\n\n meridiem('a', true);\n meridiem('A', false);\n\n // ALIASES\n\n addUnitAlias('hour', 'h');\n\n // PRIORITY\n addUnitPriority('hour', 13);\n\n // PARSING\n\n function matchMeridiem(isStrict, locale) {\n return locale._meridiemParse;\n }\n\n addRegexToken('a', matchMeridiem);\n addRegexToken('A', matchMeridiem);\n addRegexToken('H', match1to2);\n addRegexToken('h', match1to2);\n addRegexToken('k', match1to2);\n addRegexToken('HH', match1to2, match2);\n addRegexToken('hh', match1to2, match2);\n addRegexToken('kk', match1to2, match2);\n\n addRegexToken('hmm', match3to4);\n addRegexToken('hmmss', match5to6);\n addRegexToken('Hmm', match3to4);\n addRegexToken('Hmmss', match5to6);\n\n addParseToken(['H', 'HH'], HOUR);\n addParseToken(['k', 'kk'], function (input, array, config) {\n var kInput = toInt(input);\n array[HOUR] = kInput === 24 ? 0 : kInput;\n });\n addParseToken(['a', 'A'], function (input, array, config) {\n config._isPm = config._locale.isPM(input);\n config._meridiem = input;\n });\n addParseToken(['h', 'hh'], function (input, array, config) {\n array[HOUR] = toInt(input);\n getParsingFlags(config).bigHour = true;\n });\n addParseToken('hmm', function (input, array, config) {\n var pos = input.length - 2;\n array[HOUR] = toInt(input.substr(0, pos));\n array[MINUTE] = toInt(input.substr(pos));\n getParsingFlags(config).bigHour = true;\n });\n addParseToken('hmmss', function (input, array, config) {\n var pos1 = input.length - 4,\n pos2 = input.length - 2;\n array[HOUR] = toInt(input.substr(0, pos1));\n array[MINUTE] = toInt(input.substr(pos1, 2));\n array[SECOND] = toInt(input.substr(pos2));\n getParsingFlags(config).bigHour = true;\n });\n addParseToken('Hmm', function (input, array, config) {\n var pos = input.length - 2;\n array[HOUR] = toInt(input.substr(0, pos));\n array[MINUTE] = toInt(input.substr(pos));\n });\n addParseToken('Hmmss', function (input, array, config) {\n var pos1 = input.length - 4,\n pos2 = input.length - 2;\n array[HOUR] = toInt(input.substr(0, pos1));\n array[MINUTE] = toInt(input.substr(pos1, 2));\n array[SECOND] = toInt(input.substr(pos2));\n });\n\n // LOCALES\n\n function localeIsPM(input) {\n // IE8 Quirks Mode & IE7 Standards Mode do not allow accessing strings like arrays\n // Using charAt should be more compatible.\n return (input + '').toLowerCase().charAt(0) === 'p';\n }\n\n var defaultLocaleMeridiemParse = /[ap]\\.?m?\\.?/i,\n // Setting the hour should keep the time, because the user explicitly\n // specified which hour they want. So trying to maintain the same hour (in\n // a new timezone) makes sense. Adding/subtracting hours does not follow\n // this rule.\n getSetHour = makeGetSet('Hours', true);\n\n function localeMeridiem(hours, minutes, isLower) {\n if (hours > 11) {\n return isLower ? 'pm' : 'PM';\n } else {\n return isLower ? 'am' : 'AM';\n }\n }\n\n var baseConfig = {\n calendar: defaultCalendar,\n longDateFormat: defaultLongDateFormat,\n invalidDate: defaultInvalidDate,\n ordinal: defaultOrdinal,\n dayOfMonthOrdinalParse: defaultDayOfMonthOrdinalParse,\n relativeTime: defaultRelativeTime,\n\n months: defaultLocaleMonths,\n monthsShort: defaultLocaleMonthsShort,\n\n week: defaultLocaleWeek,\n\n weekdays: defaultLocaleWeekdays,\n weekdaysMin: defaultLocaleWeekdaysMin,\n weekdaysShort: defaultLocaleWeekdaysShort,\n\n meridiemParse: defaultLocaleMeridiemParse,\n };\n\n // internal storage for locale config files\n var locales = {},\n localeFamilies = {},\n globalLocale;\n\n function commonPrefix(arr1, arr2) {\n var i,\n minl = Math.min(arr1.length, arr2.length);\n for (i = 0; i < minl; i += 1) {\n if (arr1[i] !== arr2[i]) {\n return i;\n }\n }\n return minl;\n }\n\n function normalizeLocale(key) {\n return key ? key.toLowerCase().replace('_', '-') : key;\n }\n\n // pick the locale from the array\n // try ['en-au', 'en-gb'] as 'en-au', 'en-gb', 'en', as in move through the list trying each\n // substring from most specific to least, but move to the next array item if it's a more specific variant than the current root\n function chooseLocale(names) {\n var i = 0,\n j,\n next,\n locale,\n split;\n\n while (i < names.length) {\n split = normalizeLocale(names[i]).split('-');\n j = split.length;\n next = normalizeLocale(names[i + 1]);\n next = next ? next.split('-') : null;\n while (j > 0) {\n locale = loadLocale(split.slice(0, j).join('-'));\n if (locale) {\n return locale;\n }\n if (\n next &&\n next.length >= j &&\n commonPrefix(split, next) >= j - 1\n ) {\n //the next array item is better than a shallower substring of this one\n break;\n }\n j--;\n }\n i++;\n }\n return globalLocale;\n }\n\n function isLocaleNameSane(name) {\n // Prevent names that look like filesystem paths, i.e contain '/' or '\\'\n return name.match('^[^/\\\\\\\\]*$') != null;\n }\n\n function loadLocale(name) {\n var oldLocale = null,\n aliasedRequire;\n // TODO: Find a better way to register and load all the locales in Node\n if (\n locales[name] === undefined &&\n typeof module !== 'undefined' &&\n module &&\n module.exports &&\n isLocaleNameSane(name)\n ) {\n try {\n oldLocale = globalLocale._abbr;\n aliasedRequire = require;\n aliasedRequire('./locale/' + name);\n getSetGlobalLocale(oldLocale);\n } catch (e) {\n // mark as not found to avoid repeating expensive file require call causing high CPU\n // when trying to find en-US, en_US, en-us for every format call\n locales[name] = null; // null means not found\n }\n }\n return locales[name];\n }\n\n // This function will load locale and then set the global locale. If\n // no arguments are passed in, it will simply return the current global\n // locale key.\n function getSetGlobalLocale(key, values) {\n var data;\n if (key) {\n if (isUndefined(values)) {\n data = getLocale(key);\n } else {\n data = defineLocale(key, values);\n }\n\n if (data) {\n // moment.duration._locale = moment._locale = data;\n globalLocale = data;\n } else {\n if (typeof console !== 'undefined' && console.warn) {\n //warn user if arguments are passed but the locale could not be set\n console.warn(\n 'Locale ' + key + ' not found. Did you forget to load it?'\n );\n }\n }\n }\n\n return globalLocale._abbr;\n }\n\n function defineLocale(name, config) {\n if (config !== null) {\n var locale,\n parentConfig = baseConfig;\n config.abbr = name;\n if (locales[name] != null) {\n deprecateSimple(\n 'defineLocaleOverride',\n 'use moment.updateLocale(localeName, config) to change ' +\n 'an existing locale. moment.defineLocale(localeName, ' +\n 'config) should only be used for creating a new locale ' +\n 'See http://momentjs.com/guides/#/warnings/define-locale/ for more info.'\n );\n parentConfig = locales[name]._config;\n } else if (config.parentLocale != null) {\n if (locales[config.parentLocale] != null) {\n parentConfig = locales[config.parentLocale]._config;\n } else {\n locale = loadLocale(config.parentLocale);\n if (locale != null) {\n parentConfig = locale._config;\n } else {\n if (!localeFamilies[config.parentLocale]) {\n localeFamilies[config.parentLocale] = [];\n }\n localeFamilies[config.parentLocale].push({\n name: name,\n config: config,\n });\n return null;\n }\n }\n }\n locales[name] = new Locale(mergeConfigs(parentConfig, config));\n\n if (localeFamilies[name]) {\n localeFamilies[name].forEach(function (x) {\n defineLocale(x.name, x.config);\n });\n }\n\n // backwards compat for now: also set the locale\n // make sure we set the locale AFTER all child locales have been\n // created, so we won't end up with the child locale set.\n getSetGlobalLocale(name);\n\n return locales[name];\n } else {\n // useful for testing\n delete locales[name];\n return null;\n }\n }\n\n function updateLocale(name, config) {\n if (config != null) {\n var locale,\n tmpLocale,\n parentConfig = baseConfig;\n\n if (locales[name] != null && locales[name].parentLocale != null) {\n // Update existing child locale in-place to avoid memory-leaks\n locales[name].set(mergeConfigs(locales[name]._config, config));\n } else {\n // MERGE\n tmpLocale = loadLocale(name);\n if (tmpLocale != null) {\n parentConfig = tmpLocale._config;\n }\n config = mergeConfigs(parentConfig, config);\n if (tmpLocale == null) {\n // updateLocale is called for creating a new locale\n // Set abbr so it will have a name (getters return\n // undefined otherwise).\n config.abbr = name;\n }\n locale = new Locale(config);\n locale.parentLocale = locales[name];\n locales[name] = locale;\n }\n\n // backwards compat for now: also set the locale\n getSetGlobalLocale(name);\n } else {\n // pass null for config to unupdate, useful for tests\n if (locales[name] != null) {\n if (locales[name].parentLocale != null) {\n locales[name] = locales[name].parentLocale;\n if (name === getSetGlobalLocale()) {\n getSetGlobalLocale(name);\n }\n } else if (locales[name] != null) {\n delete locales[name];\n }\n }\n }\n return locales[name];\n }\n\n // returns locale data\n function getLocale(key) {\n var locale;\n\n if (key && key._locale && key._locale._abbr) {\n key = key._locale._abbr;\n }\n\n if (!key) {\n return globalLocale;\n }\n\n if (!isArray(key)) {\n //short-circuit everything else\n locale = loadLocale(key);\n if (locale) {\n return locale;\n }\n key = [key];\n }\n\n return chooseLocale(key);\n }\n\n function listLocales() {\n return keys(locales);\n }\n\n function checkOverflow(m) {\n var overflow,\n a = m._a;\n\n if (a && getParsingFlags(m).overflow === -2) {\n overflow =\n a[MONTH] < 0 || a[MONTH] > 11\n ? MONTH\n : a[DATE] < 1 || a[DATE] > daysInMonth(a[YEAR], a[MONTH])\n ? DATE\n : a[HOUR] < 0 ||\n a[HOUR] > 24 ||\n (a[HOUR] === 24 &&\n (a[MINUTE] !== 0 ||\n a[SECOND] !== 0 ||\n a[MILLISECOND] !== 0))\n ? HOUR\n : a[MINUTE] < 0 || a[MINUTE] > 59\n ? MINUTE\n : a[SECOND] < 0 || a[SECOND] > 59\n ? SECOND\n : a[MILLISECOND] < 0 || a[MILLISECOND] > 999\n ? MILLISECOND\n : -1;\n\n if (\n getParsingFlags(m)._overflowDayOfYear &&\n (overflow < YEAR || overflow > DATE)\n ) {\n overflow = DATE;\n }\n if (getParsingFlags(m)._overflowWeeks && overflow === -1) {\n overflow = WEEK;\n }\n if (getParsingFlags(m)._overflowWeekday && overflow === -1) {\n overflow = WEEKDAY;\n }\n\n getParsingFlags(m).overflow = overflow;\n }\n\n return m;\n }\n\n // iso 8601 regex\n // 0000-00-00 0000-W00 or 0000-W00-0 + T + 00 or 00:00 or 00:00:00 or 00:00:00.000 + +00:00 or +0000 or +00)\n var extendedIsoRegex =\n /^\\s*((?:[+-]\\d{6}|\\d{4})-(?:\\d\\d-\\d\\d|W\\d\\d-\\d|W\\d\\d|\\d\\d\\d|\\d\\d))(?:(T| )(\\d\\d(?::\\d\\d(?::\\d\\d(?:[.,]\\d+)?)?)?)([+-]\\d\\d(?::?\\d\\d)?|\\s*Z)?)?$/,\n basicIsoRegex =\n /^\\s*((?:[+-]\\d{6}|\\d{4})(?:\\d\\d\\d\\d|W\\d\\d\\d|W\\d\\d|\\d\\d\\d|\\d\\d|))(?:(T| )(\\d\\d(?:\\d\\d(?:\\d\\d(?:[.,]\\d+)?)?)?)([+-]\\d\\d(?::?\\d\\d)?|\\s*Z)?)?$/,\n tzRegex = /Z|[+-]\\d\\d(?::?\\d\\d)?/,\n isoDates = [\n ['YYYYYY-MM-DD', /[+-]\\d{6}-\\d\\d-\\d\\d/],\n ['YYYY-MM-DD', /\\d{4}-\\d\\d-\\d\\d/],\n ['GGGG-[W]WW-E', /\\d{4}-W\\d\\d-\\d/],\n ['GGGG-[W]WW', /\\d{4}-W\\d\\d/, false],\n ['YYYY-DDD', /\\d{4}-\\d{3}/],\n ['YYYY-MM', /\\d{4}-\\d\\d/, false],\n ['YYYYYYMMDD', /[+-]\\d{10}/],\n ['YYYYMMDD', /\\d{8}/],\n ['GGGG[W]WWE', /\\d{4}W\\d{3}/],\n ['GGGG[W]WW', /\\d{4}W\\d{2}/, false],\n ['YYYYDDD', /\\d{7}/],\n ['YYYYMM', /\\d{6}/, false],\n ['YYYY', /\\d{4}/, false],\n ],\n // iso time formats and regexes\n isoTimes = [\n ['HH:mm:ss.SSSS', /\\d\\d:\\d\\d:\\d\\d\\.\\d+/],\n ['HH:mm:ss,SSSS', /\\d\\d:\\d\\d:\\d\\d,\\d+/],\n ['HH:mm:ss', /\\d\\d:\\d\\d:\\d\\d/],\n ['HH:mm', /\\d\\d:\\d\\d/],\n ['HHmmss.SSSS', /\\d\\d\\d\\d\\d\\d\\.\\d+/],\n ['HHmmss,SSSS', /\\d\\d\\d\\d\\d\\d,\\d+/],\n ['HHmmss', /\\d\\d\\d\\d\\d\\d/],\n ['HHmm', /\\d\\d\\d\\d/],\n ['HH', /\\d\\d/],\n ],\n aspNetJsonRegex = /^\\/?Date\\((-?\\d+)/i,\n // RFC 2822 regex: For details see https://tools.ietf.org/html/rfc2822#section-3.3\n rfc2822 =\n /^(?:(Mon|Tue|Wed|Thu|Fri|Sat|Sun),?\\s)?(\\d{1,2})\\s(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)\\s(\\d{2,4})\\s(\\d\\d):(\\d\\d)(?::(\\d\\d))?\\s(?:(UT|GMT|[ECMP][SD]T)|([Zz])|([+-]\\d{4}))$/,\n obsOffsets = {\n UT: 0,\n GMT: 0,\n EDT: -4 * 60,\n EST: -5 * 60,\n CDT: -5 * 60,\n CST: -6 * 60,\n MDT: -6 * 60,\n MST: -7 * 60,\n PDT: -7 * 60,\n PST: -8 * 60,\n };\n\n // date from iso format\n function configFromISO(config) {\n var i,\n l,\n string = config._i,\n match = extendedIsoRegex.exec(string) || basicIsoRegex.exec(string),\n allowTime,\n dateFormat,\n timeFormat,\n tzFormat,\n isoDatesLen = isoDates.length,\n isoTimesLen = isoTimes.length;\n\n if (match) {\n getParsingFlags(config).iso = true;\n for (i = 0, l = isoDatesLen; i < l; i++) {\n if (isoDates[i][1].exec(match[1])) {\n dateFormat = isoDates[i][0];\n allowTime = isoDates[i][2] !== false;\n break;\n }\n }\n if (dateFormat == null) {\n config._isValid = false;\n return;\n }\n if (match[3]) {\n for (i = 0, l = isoTimesLen; i < l; i++) {\n if (isoTimes[i][1].exec(match[3])) {\n // match[2] should be 'T' or space\n timeFormat = (match[2] || ' ') + isoTimes[i][0];\n break;\n }\n }\n if (timeFormat == null) {\n config._isValid = false;\n return;\n }\n }\n if (!allowTime && timeFormat != null) {\n config._isValid = false;\n return;\n }\n if (match[4]) {\n if (tzRegex.exec(match[4])) {\n tzFormat = 'Z';\n } else {\n config._isValid = false;\n return;\n }\n }\n config._f = dateFormat + (timeFormat || '') + (tzFormat || '');\n configFromStringAndFormat(config);\n } else {\n config._isValid = false;\n }\n }\n\n function extractFromRFC2822Strings(\n yearStr,\n monthStr,\n dayStr,\n hourStr,\n minuteStr,\n secondStr\n ) {\n var result = [\n untruncateYear(yearStr),\n defaultLocaleMonthsShort.indexOf(monthStr),\n parseInt(dayStr, 10),\n parseInt(hourStr, 10),\n parseInt(minuteStr, 10),\n ];\n\n if (secondStr) {\n result.push(parseInt(secondStr, 10));\n }\n\n return result;\n }\n\n function untruncateYear(yearStr) {\n var year = parseInt(yearStr, 10);\n if (year <= 49) {\n return 2000 + year;\n } else if (year <= 999) {\n return 1900 + year;\n }\n return year;\n }\n\n function preprocessRFC2822(s) {\n // Remove comments and folding whitespace and replace multiple-spaces with a single space\n return s\n .replace(/\\([^()]*\\)|[\\n\\t]/g, ' ')\n .replace(/(\\s\\s+)/g, ' ')\n .replace(/^\\s\\s*/, '')\n .replace(/\\s\\s*$/, '');\n }\n\n function checkWeekday(weekdayStr, parsedInput, config) {\n if (weekdayStr) {\n // TODO: Replace the vanilla JS Date object with an independent day-of-week check.\n var weekdayProvided = defaultLocaleWeekdaysShort.indexOf(weekdayStr),\n weekdayActual = new Date(\n parsedInput[0],\n parsedInput[1],\n parsedInput[2]\n ).getDay();\n if (weekdayProvided !== weekdayActual) {\n getParsingFlags(config).weekdayMismatch = true;\n config._isValid = false;\n return false;\n }\n }\n return true;\n }\n\n function calculateOffset(obsOffset, militaryOffset, numOffset) {\n if (obsOffset) {\n return obsOffsets[obsOffset];\n } else if (militaryOffset) {\n // the only allowed military tz is Z\n return 0;\n } else {\n var hm = parseInt(numOffset, 10),\n m = hm % 100,\n h = (hm - m) / 100;\n return h * 60 + m;\n }\n }\n\n // date and time from ref 2822 format\n function configFromRFC2822(config) {\n var match = rfc2822.exec(preprocessRFC2822(config._i)),\n parsedArray;\n if (match) {\n parsedArray = extractFromRFC2822Strings(\n match[4],\n match[3],\n match[2],\n match[5],\n match[6],\n match[7]\n );\n if (!checkWeekday(match[1], parsedArray, config)) {\n return;\n }\n\n config._a = parsedArray;\n config._tzm = calculateOffset(match[8], match[9], match[10]);\n\n config._d = createUTCDate.apply(null, config._a);\n config._d.setUTCMinutes(config._d.getUTCMinutes() - config._tzm);\n\n getParsingFlags(config).rfc2822 = true;\n } else {\n config._isValid = false;\n }\n }\n\n // date from 1) ASP.NET, 2) ISO, 3) RFC 2822 formats, or 4) optional fallback if parsing isn't strict\n function configFromString(config) {\n var matched = aspNetJsonRegex.exec(config._i);\n if (matched !== null) {\n config._d = new Date(+matched[1]);\n return;\n }\n\n configFromISO(config);\n if (config._isValid === false) {\n delete config._isValid;\n } else {\n return;\n }\n\n configFromRFC2822(config);\n if (config._isValid === false) {\n delete config._isValid;\n } else {\n return;\n }\n\n if (config._strict) {\n config._isValid = false;\n } else {\n // Final attempt, use Input Fallback\n hooks.createFromInputFallback(config);\n }\n }\n\n hooks.createFromInputFallback = deprecate(\n 'value provided is not in a recognized RFC2822 or ISO format. moment construction falls back to js Date(), ' +\n 'which is not reliable across all browsers and versions. Non RFC2822/ISO date formats are ' +\n 'discouraged. Please refer to http://momentjs.com/guides/#/warnings/js-date/ for more info.',\n function (config) {\n config._d = new Date(config._i + (config._useUTC ? ' UTC' : ''));\n }\n );\n\n // Pick the first defined of two or three arguments.\n function defaults(a, b, c) {\n if (a != null) {\n return a;\n }\n if (b != null) {\n return b;\n }\n return c;\n }\n\n function currentDateArray(config) {\n // hooks is actually the exported moment object\n var nowValue = new Date(hooks.now());\n if (config._useUTC) {\n return [\n nowValue.getUTCFullYear(),\n nowValue.getUTCMonth(),\n nowValue.getUTCDate(),\n ];\n }\n return [nowValue.getFullYear(), nowValue.getMonth(), nowValue.getDate()];\n }\n\n // convert an array to a date.\n // the array should mirror the parameters below\n // note: all values past the year are optional and will default to the lowest possible value.\n // [year, month, day , hour, minute, second, millisecond]\n function configFromArray(config) {\n var i,\n date,\n input = [],\n currentDate,\n expectedWeekday,\n yearToUse;\n\n if (config._d) {\n return;\n }\n\n currentDate = currentDateArray(config);\n\n //compute day of the year from weeks and weekdays\n if (config._w && config._a[DATE] == null && config._a[MONTH] == null) {\n dayOfYearFromWeekInfo(config);\n }\n\n //if the day of the year is set, figure out what it is\n if (config._dayOfYear != null) {\n yearToUse = defaults(config._a[YEAR], currentDate[YEAR]);\n\n if (\n config._dayOfYear > daysInYear(yearToUse) ||\n config._dayOfYear === 0\n ) {\n getParsingFlags(config)._overflowDayOfYear = true;\n }\n\n date = createUTCDate(yearToUse, 0, config._dayOfYear);\n config._a[MONTH] = date.getUTCMonth();\n config._a[DATE] = date.getUTCDate();\n }\n\n // Default to current date.\n // * if no year, month, day of month are given, default to today\n // * if day of month is given, default month and year\n // * if month is given, default only year\n // * if year is given, don't default anything\n for (i = 0; i < 3 && config._a[i] == null; ++i) {\n config._a[i] = input[i] = currentDate[i];\n }\n\n // Zero out whatever was not defaulted, including time\n for (; i < 7; i++) {\n config._a[i] = input[i] =\n config._a[i] == null ? (i === 2 ? 1 : 0) : config._a[i];\n }\n\n // Check for 24:00:00.000\n if (\n config._a[HOUR] === 24 &&\n config._a[MINUTE] === 0 &&\n config._a[SECOND] === 0 &&\n config._a[MILLISECOND] === 0\n ) {\n config._nextDay = true;\n config._a[HOUR] = 0;\n }\n\n config._d = (config._useUTC ? createUTCDate : createDate).apply(\n null,\n input\n );\n expectedWeekday = config._useUTC\n ? config._d.getUTCDay()\n : config._d.getDay();\n\n // Apply timezone offset from input. The actual utcOffset can be changed\n // with parseZone.\n if (config._tzm != null) {\n config._d.setUTCMinutes(config._d.getUTCMinutes() - config._tzm);\n }\n\n if (config._nextDay) {\n config._a[HOUR] = 24;\n }\n\n // check for mismatching day of week\n if (\n config._w &&\n typeof config._w.d !== 'undefined' &&\n config._w.d !== expectedWeekday\n ) {\n getParsingFlags(config).weekdayMismatch = true;\n }\n }\n\n function dayOfYearFromWeekInfo(config) {\n var w, weekYear, week, weekday, dow, doy, temp, weekdayOverflow, curWeek;\n\n w = config._w;\n if (w.GG != null || w.W != null || w.E != null) {\n dow = 1;\n doy = 4;\n\n // TODO: We need to take the current isoWeekYear, but that depends on\n // how we interpret now (local, utc, fixed offset). So create\n // a now version of current config (take local/utc/offset flags, and\n // create now).\n weekYear = defaults(\n w.GG,\n config._a[YEAR],\n weekOfYear(createLocal(), 1, 4).year\n );\n week = defaults(w.W, 1);\n weekday = defaults(w.E, 1);\n if (weekday < 1 || weekday > 7) {\n weekdayOverflow = true;\n }\n } else {\n dow = config._locale._week.dow;\n doy = config._locale._week.doy;\n\n curWeek = weekOfYear(createLocal(), dow, doy);\n\n weekYear = defaults(w.gg, config._a[YEAR], curWeek.year);\n\n // Default to current week.\n week = defaults(w.w, curWeek.week);\n\n if (w.d != null) {\n // weekday -- low day numbers are considered next week\n weekday = w.d;\n if (weekday < 0 || weekday > 6) {\n weekdayOverflow = true;\n }\n } else if (w.e != null) {\n // local weekday -- counting starts from beginning of week\n weekday = w.e + dow;\n if (w.e < 0 || w.e > 6) {\n weekdayOverflow = true;\n }\n } else {\n // default to beginning of week\n weekday = dow;\n }\n }\n if (week < 1 || week > weeksInYear(weekYear, dow, doy)) {\n getParsingFlags(config)._overflowWeeks = true;\n } else if (weekdayOverflow != null) {\n getParsingFlags(config)._overflowWeekday = true;\n } else {\n temp = dayOfYearFromWeeks(weekYear, week, weekday, dow, doy);\n config._a[YEAR] = temp.year;\n config._dayOfYear = temp.dayOfYear;\n }\n }\n\n // constant that refers to the ISO standard\n hooks.ISO_8601 = function () {};\n\n // constant that refers to the RFC 2822 form\n hooks.RFC_2822 = function () {};\n\n // date from string and format string\n function configFromStringAndFormat(config) {\n // TODO: Move this to another part of the creation flow to prevent circular deps\n if (config._f === hooks.ISO_8601) {\n configFromISO(config);\n return;\n }\n if (config._f === hooks.RFC_2822) {\n configFromRFC2822(config);\n return;\n }\n config._a = [];\n getParsingFlags(config).empty = true;\n\n // This array is used to make a Date, either with `new Date` or `Date.UTC`\n var string = '' + config._i,\n i,\n parsedInput,\n tokens,\n token,\n skipped,\n stringLength = string.length,\n totalParsedInputLength = 0,\n era,\n tokenLen;\n\n tokens =\n expandFormat(config._f, config._locale).match(formattingTokens) || [];\n tokenLen = tokens.length;\n for (i = 0; i < tokenLen; i++) {\n token = tokens[i];\n parsedInput = (string.match(getParseRegexForToken(token, config)) ||\n [])[0];\n if (parsedInput) {\n skipped = string.substr(0, string.indexOf(parsedInput));\n if (skipped.length > 0) {\n getParsingFlags(config).unusedInput.push(skipped);\n }\n string = string.slice(\n string.indexOf(parsedInput) + parsedInput.length\n );\n totalParsedInputLength += parsedInput.length;\n }\n // don't parse if it's not a known token\n if (formatTokenFunctions[token]) {\n if (parsedInput) {\n getParsingFlags(config).empty = false;\n } else {\n getParsingFlags(config).unusedTokens.push(token);\n }\n addTimeToArrayFromToken(token, parsedInput, config);\n } else if (config._strict && !parsedInput) {\n getParsingFlags(config).unusedTokens.push(token);\n }\n }\n\n // add remaining unparsed input length to the string\n getParsingFlags(config).charsLeftOver =\n stringLength - totalParsedInputLength;\n if (string.length > 0) {\n getParsingFlags(config).unusedInput.push(string);\n }\n\n // clear _12h flag if hour is <= 12\n if (\n config._a[HOUR] <= 12 &&\n getParsingFlags(config).bigHour === true &&\n config._a[HOUR] > 0\n ) {\n getParsingFlags(config).bigHour = undefined;\n }\n\n getParsingFlags(config).parsedDateParts = config._a.slice(0);\n getParsingFlags(config).meridiem = config._meridiem;\n // handle meridiem\n config._a[HOUR] = meridiemFixWrap(\n config._locale,\n config._a[HOUR],\n config._meridiem\n );\n\n // handle era\n era = getParsingFlags(config).era;\n if (era !== null) {\n config._a[YEAR] = config._locale.erasConvertYear(era, config._a[YEAR]);\n }\n\n configFromArray(config);\n checkOverflow(config);\n }\n\n function meridiemFixWrap(locale, hour, meridiem) {\n var isPm;\n\n if (meridiem == null) {\n // nothing to do\n return hour;\n }\n if (locale.meridiemHour != null) {\n return locale.meridiemHour(hour, meridiem);\n } else if (locale.isPM != null) {\n // Fallback\n isPm = locale.isPM(meridiem);\n if (isPm && hour < 12) {\n hour += 12;\n }\n if (!isPm && hour === 12) {\n hour = 0;\n }\n return hour;\n } else {\n // this is not supposed to happen\n return hour;\n }\n }\n\n // date from string and array of format strings\n function configFromStringAndArray(config) {\n var tempConfig,\n bestMoment,\n scoreToBeat,\n i,\n currentScore,\n validFormatFound,\n bestFormatIsValid = false,\n configfLen = config._f.length;\n\n if (configfLen === 0) {\n getParsingFlags(config).invalidFormat = true;\n config._d = new Date(NaN);\n return;\n }\n\n for (i = 0; i < configfLen; i++) {\n currentScore = 0;\n validFormatFound = false;\n tempConfig = copyConfig({}, config);\n if (config._useUTC != null) {\n tempConfig._useUTC = config._useUTC;\n }\n tempConfig._f = config._f[i];\n configFromStringAndFormat(tempConfig);\n\n if (isValid(tempConfig)) {\n validFormatFound = true;\n }\n\n // if there is any input that was not parsed add a penalty for that format\n currentScore += getParsingFlags(tempConfig).charsLeftOver;\n\n //or tokens\n currentScore += getParsingFlags(tempConfig).unusedTokens.length * 10;\n\n getParsingFlags(tempConfig).score = currentScore;\n\n if (!bestFormatIsValid) {\n if (\n scoreToBeat == null ||\n currentScore < scoreToBeat ||\n validFormatFound\n ) {\n scoreToBeat = currentScore;\n bestMoment = tempConfig;\n if (validFormatFound) {\n bestFormatIsValid = true;\n }\n }\n } else {\n if (currentScore < scoreToBeat) {\n scoreToBeat = currentScore;\n bestMoment = tempConfig;\n }\n }\n }\n\n extend(config, bestMoment || tempConfig);\n }\n\n function configFromObject(config) {\n if (config._d) {\n return;\n }\n\n var i = normalizeObjectUnits(config._i),\n dayOrDate = i.day === undefined ? i.date : i.day;\n config._a = map(\n [i.year, i.month, dayOrDate, i.hour, i.minute, i.second, i.millisecond],\n function (obj) {\n return obj && parseInt(obj, 10);\n }\n );\n\n configFromArray(config);\n }\n\n function createFromConfig(config) {\n var res = new Moment(checkOverflow(prepareConfig(config)));\n if (res._nextDay) {\n // Adding is smart enough around DST\n res.add(1, 'd');\n res._nextDay = undefined;\n }\n\n return res;\n }\n\n function prepareConfig(config) {\n var input = config._i,\n format = config._f;\n\n config._locale = config._locale || getLocale(config._l);\n\n if (input === null || (format === undefined && input === '')) {\n return createInvalid({ nullInput: true });\n }\n\n if (typeof input === 'string') {\n config._i = input = config._locale.preparse(input);\n }\n\n if (isMoment(input)) {\n return new Moment(checkOverflow(input));\n } else if (isDate(input)) {\n config._d = input;\n } else if (isArray(format)) {\n configFromStringAndArray(config);\n } else if (format) {\n configFromStringAndFormat(config);\n } else {\n configFromInput(config);\n }\n\n if (!isValid(config)) {\n config._d = null;\n }\n\n return config;\n }\n\n function configFromInput(config) {\n var input = config._i;\n if (isUndefined(input)) {\n config._d = new Date(hooks.now());\n } else if (isDate(input)) {\n config._d = new Date(input.valueOf());\n } else if (typeof input === 'string') {\n configFromString(config);\n } else if (isArray(input)) {\n config._a = map(input.slice(0), function (obj) {\n return parseInt(obj, 10);\n });\n configFromArray(config);\n } else if (isObject(input)) {\n configFromObject(config);\n } else if (isNumber(input)) {\n // from milliseconds\n config._d = new Date(input);\n } else {\n hooks.createFromInputFallback(config);\n }\n }\n\n function createLocalOrUTC(input, format, locale, strict, isUTC) {\n var c = {};\n\n if (format === true || format === false) {\n strict = format;\n format = undefined;\n }\n\n if (locale === true || locale === false) {\n strict = locale;\n locale = undefined;\n }\n\n if (\n (isObject(input) && isObjectEmpty(input)) ||\n (isArray(input) && input.length === 0)\n ) {\n input = undefined;\n }\n // object construction must be done this way.\n // https://github.com/moment/moment/issues/1423\n c._isAMomentObject = true;\n c._useUTC = c._isUTC = isUTC;\n c._l = locale;\n c._i = input;\n c._f = format;\n c._strict = strict;\n\n return createFromConfig(c);\n }\n\n function createLocal(input, format, locale, strict) {\n return createLocalOrUTC(input, format, locale, strict, false);\n }\n\n var prototypeMin = deprecate(\n 'moment().min is deprecated, use moment.max instead. http://momentjs.com/guides/#/warnings/min-max/',\n function () {\n var other = createLocal.apply(null, arguments);\n if (this.isValid() && other.isValid()) {\n return other < this ? this : other;\n } else {\n return createInvalid();\n }\n }\n ),\n prototypeMax = deprecate(\n 'moment().max is deprecated, use moment.min instead. http://momentjs.com/guides/#/warnings/min-max/',\n function () {\n var other = createLocal.apply(null, arguments);\n if (this.isValid() && other.isValid()) {\n return other > this ? this : other;\n } else {\n return createInvalid();\n }\n }\n );\n\n // Pick a moment m from moments so that m[fn](other) is true for all\n // other. This relies on the function fn to be transitive.\n //\n // moments should either be an array of moment objects or an array, whose\n // first element is an array of moment objects.\n function pickBy(fn, moments) {\n var res, i;\n if (moments.length === 1 && isArray(moments[0])) {\n moments = moments[0];\n }\n if (!moments.length) {\n return createLocal();\n }\n res = moments[0];\n for (i = 1; i < moments.length; ++i) {\n if (!moments[i].isValid() || moments[i][fn](res)) {\n res = moments[i];\n }\n }\n return res;\n }\n\n // TODO: Use [].sort instead?\n function min() {\n var args = [].slice.call(arguments, 0);\n\n return pickBy('isBefore', args);\n }\n\n function max() {\n var args = [].slice.call(arguments, 0);\n\n return pickBy('isAfter', args);\n }\n\n var now = function () {\n return Date.now ? Date.now() : +new Date();\n };\n\n var ordering = [\n 'year',\n 'quarter',\n 'month',\n 'week',\n 'day',\n 'hour',\n 'minute',\n 'second',\n 'millisecond',\n ];\n\n function isDurationValid(m) {\n var key,\n unitHasDecimal = false,\n i,\n orderLen = ordering.length;\n for (key in m) {\n if (\n hasOwnProp(m, key) &&\n !(\n indexOf.call(ordering, key) !== -1 &&\n (m[key] == null || !isNaN(m[key]))\n )\n ) {\n return false;\n }\n }\n\n for (i = 0; i < orderLen; ++i) {\n if (m[ordering[i]]) {\n if (unitHasDecimal) {\n return false; // only allow non-integers for smallest unit\n }\n if (parseFloat(m[ordering[i]]) !== toInt(m[ordering[i]])) {\n unitHasDecimal = true;\n }\n }\n }\n\n return true;\n }\n\n function isValid$1() {\n return this._isValid;\n }\n\n function createInvalid$1() {\n return createDuration(NaN);\n }\n\n function Duration(duration) {\n var normalizedInput = normalizeObjectUnits(duration),\n years = normalizedInput.year || 0,\n quarters = normalizedInput.quarter || 0,\n months = normalizedInput.month || 0,\n weeks = normalizedInput.week || normalizedInput.isoWeek || 0,\n days = normalizedInput.day || 0,\n hours = normalizedInput.hour || 0,\n minutes = normalizedInput.minute || 0,\n seconds = normalizedInput.second || 0,\n milliseconds = normalizedInput.millisecond || 0;\n\n this._isValid = isDurationValid(normalizedInput);\n\n // representation for dateAddRemove\n this._milliseconds =\n +milliseconds +\n seconds * 1e3 + // 1000\n minutes * 6e4 + // 1000 * 60\n hours * 1000 * 60 * 60; //using 1000 * 60 * 60 instead of 36e5 to avoid floating point rounding errors https://github.com/moment/moment/issues/2978\n // Because of dateAddRemove treats 24 hours as different from a\n // day when working around DST, we need to store them separately\n this._days = +days + weeks * 7;\n // It is impossible to translate months into days without knowing\n // which months you are are talking about, so we have to store\n // it separately.\n this._months = +months + quarters * 3 + years * 12;\n\n this._data = {};\n\n this._locale = getLocale();\n\n this._bubble();\n }\n\n function isDuration(obj) {\n return obj instanceof Duration;\n }\n\n function absRound(number) {\n if (number < 0) {\n return Math.round(-1 * number) * -1;\n } else {\n return Math.round(number);\n }\n }\n\n // compare two arrays, return the number of differences\n function compareArrays(array1, array2, dontConvert) {\n var len = Math.min(array1.length, array2.length),\n lengthDiff = Math.abs(array1.length - array2.length),\n diffs = 0,\n i;\n for (i = 0; i < len; i++) {\n if (\n (dontConvert && array1[i] !== array2[i]) ||\n (!dontConvert && toInt(array1[i]) !== toInt(array2[i]))\n ) {\n diffs++;\n }\n }\n return diffs + lengthDiff;\n }\n\n // FORMATTING\n\n function offset(token, separator) {\n addFormatToken(token, 0, 0, function () {\n var offset = this.utcOffset(),\n sign = '+';\n if (offset < 0) {\n offset = -offset;\n sign = '-';\n }\n return (\n sign +\n zeroFill(~~(offset / 60), 2) +\n separator +\n zeroFill(~~offset % 60, 2)\n );\n });\n }\n\n offset('Z', ':');\n offset('ZZ', '');\n\n // PARSING\n\n addRegexToken('Z', matchShortOffset);\n addRegexToken('ZZ', matchShortOffset);\n addParseToken(['Z', 'ZZ'], function (input, array, config) {\n config._useUTC = true;\n config._tzm = offsetFromString(matchShortOffset, input);\n });\n\n // HELPERS\n\n // timezone chunker\n // '+10:00' > ['10', '00']\n // '-1530' > ['-15', '30']\n var chunkOffset = /([\\+\\-]|\\d\\d)/gi;\n\n function offsetFromString(matcher, string) {\n var matches = (string || '').match(matcher),\n chunk,\n parts,\n minutes;\n\n if (matches === null) {\n return null;\n }\n\n chunk = matches[matches.length - 1] || [];\n parts = (chunk + '').match(chunkOffset) || ['-', 0, 0];\n minutes = +(parts[1] * 60) + toInt(parts[2]);\n\n return minutes === 0 ? 0 : parts[0] === '+' ? minutes : -minutes;\n }\n\n // Return a moment from input, that is local/utc/zone equivalent to model.\n function cloneWithOffset(input, model) {\n var res, diff;\n if (model._isUTC) {\n res = model.clone();\n diff =\n (isMoment(input) || isDate(input)\n ? input.valueOf()\n : createLocal(input).valueOf()) - res.valueOf();\n // Use low-level api, because this fn is low-level api.\n res._d.setTime(res._d.valueOf() + diff);\n hooks.updateOffset(res, false);\n return res;\n } else {\n return createLocal(input).local();\n }\n }\n\n function getDateOffset(m) {\n // On Firefox.24 Date#getTimezoneOffset returns a floating point.\n // https://github.com/moment/moment/pull/1871\n return -Math.round(m._d.getTimezoneOffset());\n }\n\n // HOOKS\n\n // This function will be called whenever a moment is mutated.\n // It is intended to keep the offset in sync with the timezone.\n hooks.updateOffset = function () {};\n\n // MOMENTS\n\n // keepLocalTime = true means only change the timezone, without\n // affecting the local hour. So 5:31:26 +0300 --[utcOffset(2, true)]-->\n // 5:31:26 +0200 It is possible that 5:31:26 doesn't exist with offset\n // +0200, so we adjust the time as needed, to be valid.\n //\n // Keeping the time actually adds/subtracts (one hour)\n // from the actual represented time. That is why we call updateOffset\n // a second time. In case it wants us to change the offset again\n // _changeInProgress == true case, then we have to adjust, because\n // there is no such time in the given timezone.\n function getSetOffset(input, keepLocalTime, keepMinutes) {\n var offset = this._offset || 0,\n localAdjust;\n if (!this.isValid()) {\n return input != null ? this : NaN;\n }\n if (input != null) {\n if (typeof input === 'string') {\n input = offsetFromString(matchShortOffset, input);\n if (input === null) {\n return this;\n }\n } else if (Math.abs(input) < 16 && !keepMinutes) {\n input = input * 60;\n }\n if (!this._isUTC && keepLocalTime) {\n localAdjust = getDateOffset(this);\n }\n this._offset = input;\n this._isUTC = true;\n if (localAdjust != null) {\n this.add(localAdjust, 'm');\n }\n if (offset !== input) {\n if (!keepLocalTime || this._changeInProgress) {\n addSubtract(\n this,\n createDuration(input - offset, 'm'),\n 1,\n false\n );\n } else if (!this._changeInProgress) {\n this._changeInProgress = true;\n hooks.updateOffset(this, true);\n this._changeInProgress = null;\n }\n }\n return this;\n } else {\n return this._isUTC ? offset : getDateOffset(this);\n }\n }\n\n function getSetZone(input, keepLocalTime) {\n if (input != null) {\n if (typeof input !== 'string') {\n input = -input;\n }\n\n this.utcOffset(input, keepLocalTime);\n\n return this;\n } else {\n return -this.utcOffset();\n }\n }\n\n function setOffsetToUTC(keepLocalTime) {\n return this.utcOffset(0, keepLocalTime);\n }\n\n function setOffsetToLocal(keepLocalTime) {\n if (this._isUTC) {\n this.utcOffset(0, keepLocalTime);\n this._isUTC = false;\n\n if (keepLocalTime) {\n this.subtract(getDateOffset(this), 'm');\n }\n }\n return this;\n }\n\n function setOffsetToParsedOffset() {\n if (this._tzm != null) {\n this.utcOffset(this._tzm, false, true);\n } else if (typeof this._i === 'string') {\n var tZone = offsetFromString(matchOffset, this._i);\n if (tZone != null) {\n this.utcOffset(tZone);\n } else {\n this.utcOffset(0, true);\n }\n }\n return this;\n }\n\n function hasAlignedHourOffset(input) {\n if (!this.isValid()) {\n return false;\n }\n input = input ? createLocal(input).utcOffset() : 0;\n\n return (this.utcOffset() - input) % 60 === 0;\n }\n\n function isDaylightSavingTime() {\n return (\n this.utcOffset() > this.clone().month(0).utcOffset() ||\n this.utcOffset() > this.clone().month(5).utcOffset()\n );\n }\n\n function isDaylightSavingTimeShifted() {\n if (!isUndefined(this._isDSTShifted)) {\n return this._isDSTShifted;\n }\n\n var c = {},\n other;\n\n copyConfig(c, this);\n c = prepareConfig(c);\n\n if (c._a) {\n other = c._isUTC ? createUTC(c._a) : createLocal(c._a);\n this._isDSTShifted =\n this.isValid() && compareArrays(c._a, other.toArray()) > 0;\n } else {\n this._isDSTShifted = false;\n }\n\n return this._isDSTShifted;\n }\n\n function isLocal() {\n return this.isValid() ? !this._isUTC : false;\n }\n\n function isUtcOffset() {\n return this.isValid() ? this._isUTC : false;\n }\n\n function isUtc() {\n return this.isValid() ? this._isUTC && this._offset === 0 : false;\n }\n\n // ASP.NET json date format regex\n var aspNetRegex = /^(-|\\+)?(?:(\\d*)[. ])?(\\d+):(\\d+)(?::(\\d+)(\\.\\d*)?)?$/,\n // from http://docs.closure-library.googlecode.com/git/closure_goog_date_date.js.source.html\n // somewhat more in line with 4.4.3.2 2004 spec, but allows decimal anywhere\n // and further modified to allow for strings containing both week and day\n isoRegex =\n /^(-|\\+)?P(?:([-+]?[0-9,.]*)Y)?(?:([-+]?[0-9,.]*)M)?(?:([-+]?[0-9,.]*)W)?(?:([-+]?[0-9,.]*)D)?(?:T(?:([-+]?[0-9,.]*)H)?(?:([-+]?[0-9,.]*)M)?(?:([-+]?[0-9,.]*)S)?)?$/;\n\n function createDuration(input, key) {\n var duration = input,\n // matching against regexp is expensive, do it on demand\n match = null,\n sign,\n ret,\n diffRes;\n\n if (isDuration(input)) {\n duration = {\n ms: input._milliseconds,\n d: input._days,\n M: input._months,\n };\n } else if (isNumber(input) || !isNaN(+input)) {\n duration = {};\n if (key) {\n duration[key] = +input;\n } else {\n duration.milliseconds = +input;\n }\n } else if ((match = aspNetRegex.exec(input))) {\n sign = match[1] === '-' ? -1 : 1;\n duration = {\n y: 0,\n d: toInt(match[DATE]) * sign,\n h: toInt(match[HOUR]) * sign,\n m: toInt(match[MINUTE]) * sign,\n s: toInt(match[SECOND]) * sign,\n ms: toInt(absRound(match[MILLISECOND] * 1000)) * sign, // the millisecond decimal point is included in the match\n };\n } else if ((match = isoRegex.exec(input))) {\n sign = match[1] === '-' ? -1 : 1;\n duration = {\n y: parseIso(match[2], sign),\n M: parseIso(match[3], sign),\n w: parseIso(match[4], sign),\n d: parseIso(match[5], sign),\n h: parseIso(match[6], sign),\n m: parseIso(match[7], sign),\n s: parseIso(match[8], sign),\n };\n } else if (duration == null) {\n // checks for null or undefined\n duration = {};\n } else if (\n typeof duration === 'object' &&\n ('from' in duration || 'to' in duration)\n ) {\n diffRes = momentsDifference(\n createLocal(duration.from),\n createLocal(duration.to)\n );\n\n duration = {};\n duration.ms = diffRes.milliseconds;\n duration.M = diffRes.months;\n }\n\n ret = new Duration(duration);\n\n if (isDuration(input) && hasOwnProp(input, '_locale')) {\n ret._locale = input._locale;\n }\n\n if (isDuration(input) && hasOwnProp(input, '_isValid')) {\n ret._isValid = input._isValid;\n }\n\n return ret;\n }\n\n createDuration.fn = Duration.prototype;\n createDuration.invalid = createInvalid$1;\n\n function parseIso(inp, sign) {\n // We'd normally use ~~inp for this, but unfortunately it also\n // converts floats to ints.\n // inp may be undefined, so careful calling replace on it.\n var res = inp && parseFloat(inp.replace(',', '.'));\n // apply sign while we're at it\n return (isNaN(res) ? 0 : res) * sign;\n }\n\n function positiveMomentsDifference(base, other) {\n var res = {};\n\n res.months =\n other.month() - base.month() + (other.year() - base.year()) * 12;\n if (base.clone().add(res.months, 'M').isAfter(other)) {\n --res.months;\n }\n\n res.milliseconds = +other - +base.clone().add(res.months, 'M');\n\n return res;\n }\n\n function momentsDifference(base, other) {\n var res;\n if (!(base.isValid() && other.isValid())) {\n return { milliseconds: 0, months: 0 };\n }\n\n other = cloneWithOffset(other, base);\n if (base.isBefore(other)) {\n res = positiveMomentsDifference(base, other);\n } else {\n res = positiveMomentsDifference(other, base);\n res.milliseconds = -res.milliseconds;\n res.months = -res.months;\n }\n\n return res;\n }\n\n // TODO: remove 'name' arg after deprecation is removed\n function createAdder(direction, name) {\n return function (val, period) {\n var dur, tmp;\n //invert the arguments, but complain about it\n if (period !== null && !isNaN(+period)) {\n deprecateSimple(\n name,\n 'moment().' +\n name +\n '(period, number) is deprecated. Please use moment().' +\n name +\n '(number, period). ' +\n 'See http://momentjs.com/guides/#/warnings/add-inverted-param/ for more info.'\n );\n tmp = val;\n val = period;\n period = tmp;\n }\n\n dur = createDuration(val, period);\n addSubtract(this, dur, direction);\n return this;\n };\n }\n\n function addSubtract(mom, duration, isAdding, updateOffset) {\n var milliseconds = duration._milliseconds,\n days = absRound(duration._days),\n months = absRound(duration._months);\n\n if (!mom.isValid()) {\n // No op\n return;\n }\n\n updateOffset = updateOffset == null ? true : updateOffset;\n\n if (months) {\n setMonth(mom, get(mom, 'Month') + months * isAdding);\n }\n if (days) {\n set$1(mom, 'Date', get(mom, 'Date') + days * isAdding);\n }\n if (milliseconds) {\n mom._d.setTime(mom._d.valueOf() + milliseconds * isAdding);\n }\n if (updateOffset) {\n hooks.updateOffset(mom, days || months);\n }\n }\n\n var add = createAdder(1, 'add'),\n subtract = createAdder(-1, 'subtract');\n\n function isString(input) {\n return typeof input === 'string' || input instanceof String;\n }\n\n // type MomentInput = Moment | Date | string | number | (number | string)[] | MomentInputObject | void; // null | undefined\n function isMomentInput(input) {\n return (\n isMoment(input) ||\n isDate(input) ||\n isString(input) ||\n isNumber(input) ||\n isNumberOrStringArray(input) ||\n isMomentInputObject(input) ||\n input === null ||\n input === undefined\n );\n }\n\n function isMomentInputObject(input) {\n var objectTest = isObject(input) && !isObjectEmpty(input),\n propertyTest = false,\n properties = [\n 'years',\n 'year',\n 'y',\n 'months',\n 'month',\n 'M',\n 'days',\n 'day',\n 'd',\n 'dates',\n 'date',\n 'D',\n 'hours',\n 'hour',\n 'h',\n 'minutes',\n 'minute',\n 'm',\n 'seconds',\n 'second',\n 's',\n 'milliseconds',\n 'millisecond',\n 'ms',\n ],\n i,\n property,\n propertyLen = properties.length;\n\n for (i = 0; i < propertyLen; i += 1) {\n property = properties[i];\n propertyTest = propertyTest || hasOwnProp(input, property);\n }\n\n return objectTest && propertyTest;\n }\n\n function isNumberOrStringArray(input) {\n var arrayTest = isArray(input),\n dataTypeTest = false;\n if (arrayTest) {\n dataTypeTest =\n input.filter(function (item) {\n return !isNumber(item) && isString(input);\n }).length === 0;\n }\n return arrayTest && dataTypeTest;\n }\n\n function isCalendarSpec(input) {\n var objectTest = isObject(input) && !isObjectEmpty(input),\n propertyTest = false,\n properties = [\n 'sameDay',\n 'nextDay',\n 'lastDay',\n 'nextWeek',\n 'lastWeek',\n 'sameElse',\n ],\n i,\n property;\n\n for (i = 0; i < properties.length; i += 1) {\n property = properties[i];\n propertyTest = propertyTest || hasOwnProp(input, property);\n }\n\n return objectTest && propertyTest;\n }\n\n function getCalendarFormat(myMoment, now) {\n var diff = myMoment.diff(now, 'days', true);\n return diff < -6\n ? 'sameElse'\n : diff < -1\n ? 'lastWeek'\n : diff < 0\n ? 'lastDay'\n : diff < 1\n ? 'sameDay'\n : diff < 2\n ? 'nextDay'\n : diff < 7\n ? 'nextWeek'\n : 'sameElse';\n }\n\n function calendar$1(time, formats) {\n // Support for single parameter, formats only overload to the calendar function\n if (arguments.length === 1) {\n if (!arguments[0]) {\n time = undefined;\n formats = undefined;\n } else if (isMomentInput(arguments[0])) {\n time = arguments[0];\n formats = undefined;\n } else if (isCalendarSpec(arguments[0])) {\n formats = arguments[0];\n time = undefined;\n }\n }\n // We want to compare the start of today, vs this.\n // Getting start-of-today depends on whether we're local/utc/offset or not.\n var now = time || createLocal(),\n sod = cloneWithOffset(now, this).startOf('day'),\n format = hooks.calendarFormat(this, sod) || 'sameElse',\n output =\n formats &&\n (isFunction(formats[format])\n ? formats[format].call(this, now)\n : formats[format]);\n\n return this.format(\n output || this.localeData().calendar(format, this, createLocal(now))\n );\n }\n\n function clone() {\n return new Moment(this);\n }\n\n function isAfter(input, units) {\n var localInput = isMoment(input) ? input : createLocal(input);\n if (!(this.isValid() && localInput.isValid())) {\n return false;\n }\n units = normalizeUnits(units) || 'millisecond';\n if (units === 'millisecond') {\n return this.valueOf() > localInput.valueOf();\n } else {\n return localInput.valueOf() < this.clone().startOf(units).valueOf();\n }\n }\n\n function isBefore(input, units) {\n var localInput = isMoment(input) ? input : createLocal(input);\n if (!(this.isValid() && localInput.isValid())) {\n return false;\n }\n units = normalizeUnits(units) || 'millisecond';\n if (units === 'millisecond') {\n return this.valueOf() < localInput.valueOf();\n } else {\n return this.clone().endOf(units).valueOf() < localInput.valueOf();\n }\n }\n\n function isBetween(from, to, units, inclusivity) {\n var localFrom = isMoment(from) ? from : createLocal(from),\n localTo = isMoment(to) ? to : createLocal(to);\n if (!(this.isValid() && localFrom.isValid() && localTo.isValid())) {\n return false;\n }\n inclusivity = inclusivity || '()';\n return (\n (inclusivity[0] === '('\n ? this.isAfter(localFrom, units)\n : !this.isBefore(localFrom, units)) &&\n (inclusivity[1] === ')'\n ? this.isBefore(localTo, units)\n : !this.isAfter(localTo, units))\n );\n }\n\n function isSame(input, units) {\n var localInput = isMoment(input) ? input : createLocal(input),\n inputMs;\n if (!(this.isValid() && localInput.isValid())) {\n return false;\n }\n units = normalizeUnits(units) || 'millisecond';\n if (units === 'millisecond') {\n return this.valueOf() === localInput.valueOf();\n } else {\n inputMs = localInput.valueOf();\n return (\n this.clone().startOf(units).valueOf() <= inputMs &&\n inputMs <= this.clone().endOf(units).valueOf()\n );\n }\n }\n\n function isSameOrAfter(input, units) {\n return this.isSame(input, units) || this.isAfter(input, units);\n }\n\n function isSameOrBefore(input, units) {\n return this.isSame(input, units) || this.isBefore(input, units);\n }\n\n function diff(input, units, asFloat) {\n var that, zoneDelta, output;\n\n if (!this.isValid()) {\n return NaN;\n }\n\n that = cloneWithOffset(input, this);\n\n if (!that.isValid()) {\n return NaN;\n }\n\n zoneDelta = (that.utcOffset() - this.utcOffset()) * 6e4;\n\n units = normalizeUnits(units);\n\n switch (units) {\n case 'year':\n output = monthDiff(this, that) / 12;\n break;\n case 'month':\n output = monthDiff(this, that);\n break;\n case 'quarter':\n output = monthDiff(this, that) / 3;\n break;\n case 'second':\n output = (this - that) / 1e3;\n break; // 1000\n case 'minute':\n output = (this - that) / 6e4;\n break; // 1000 * 60\n case 'hour':\n output = (this - that) / 36e5;\n break; // 1000 * 60 * 60\n case 'day':\n output = (this - that - zoneDelta) / 864e5;\n break; // 1000 * 60 * 60 * 24, negate dst\n case 'week':\n output = (this - that - zoneDelta) / 6048e5;\n break; // 1000 * 60 * 60 * 24 * 7, negate dst\n default:\n output = this - that;\n }\n\n return asFloat ? output : absFloor(output);\n }\n\n function monthDiff(a, b) {\n if (a.date() < b.date()) {\n // end-of-month calculations work correct when the start month has more\n // days than the end month.\n return -monthDiff(b, a);\n }\n // difference in months\n var wholeMonthDiff = (b.year() - a.year()) * 12 + (b.month() - a.month()),\n // b is in (anchor - 1 month, anchor + 1 month)\n anchor = a.clone().add(wholeMonthDiff, 'months'),\n anchor2,\n adjust;\n\n if (b - anchor < 0) {\n anchor2 = a.clone().add(wholeMonthDiff - 1, 'months');\n // linear across the month\n adjust = (b - anchor) / (anchor - anchor2);\n } else {\n anchor2 = a.clone().add(wholeMonthDiff + 1, 'months');\n // linear across the month\n adjust = (b - anchor) / (anchor2 - anchor);\n }\n\n //check for negative zero, return zero if negative zero\n return -(wholeMonthDiff + adjust) || 0;\n }\n\n hooks.defaultFormat = 'YYYY-MM-DDTHH:mm:ssZ';\n hooks.defaultFormatUtc = 'YYYY-MM-DDTHH:mm:ss[Z]';\n\n function toString() {\n return this.clone().locale('en').format('ddd MMM DD YYYY HH:mm:ss [GMT]ZZ');\n }\n\n function toISOString(keepOffset) {\n if (!this.isValid()) {\n return null;\n }\n var utc = keepOffset !== true,\n m = utc ? this.clone().utc() : this;\n if (m.year() < 0 || m.year() > 9999) {\n return formatMoment(\n m,\n utc\n ? 'YYYYYY-MM-DD[T]HH:mm:ss.SSS[Z]'\n : 'YYYYYY-MM-DD[T]HH:mm:ss.SSSZ'\n );\n }\n if (isFunction(Date.prototype.toISOString)) {\n // native implementation is ~50x faster, use it when we can\n if (utc) {\n return this.toDate().toISOString();\n } else {\n return new Date(this.valueOf() + this.utcOffset() * 60 * 1000)\n .toISOString()\n .replace('Z', formatMoment(m, 'Z'));\n }\n }\n return formatMoment(\n m,\n utc ? 'YYYY-MM-DD[T]HH:mm:ss.SSS[Z]' : 'YYYY-MM-DD[T]HH:mm:ss.SSSZ'\n );\n }\n\n /**\n * Return a human readable representation of a moment that can\n * also be evaluated to get a new moment which is the same\n *\n * @link https://nodejs.org/dist/latest/docs/api/util.html#util_custom_inspect_function_on_objects\n */\n function inspect() {\n if (!this.isValid()) {\n return 'moment.invalid(/* ' + this._i + ' */)';\n }\n var func = 'moment',\n zone = '',\n prefix,\n year,\n datetime,\n suffix;\n if (!this.isLocal()) {\n func = this.utcOffset() === 0 ? 'moment.utc' : 'moment.parseZone';\n zone = 'Z';\n }\n prefix = '[' + func + '(\"]';\n year = 0 <= this.year() && this.year() <= 9999 ? 'YYYY' : 'YYYYYY';\n datetime = '-MM-DD[T]HH:mm:ss.SSS';\n suffix = zone + '[\")]';\n\n return this.format(prefix + year + datetime + suffix);\n }\n\n function format(inputString) {\n if (!inputString) {\n inputString = this.isUtc()\n ? hooks.defaultFormatUtc\n : hooks.defaultFormat;\n }\n var output = formatMoment(this, inputString);\n return this.localeData().postformat(output);\n }\n\n function from(time, withoutSuffix) {\n if (\n this.isValid() &&\n ((isMoment(time) && time.isValid()) || createLocal(time).isValid())\n ) {\n return createDuration({ to: this, from: time })\n .locale(this.locale())\n .humanize(!withoutSuffix);\n } else {\n return this.localeData().invalidDate();\n }\n }\n\n function fromNow(withoutSuffix) {\n return this.from(createLocal(), withoutSuffix);\n }\n\n function to(time, withoutSuffix) {\n if (\n this.isValid() &&\n ((isMoment(time) && time.isValid()) || createLocal(time).isValid())\n ) {\n return createDuration({ from: this, to: time })\n .locale(this.locale())\n .humanize(!withoutSuffix);\n } else {\n return this.localeData().invalidDate();\n }\n }\n\n function toNow(withoutSuffix) {\n return this.to(createLocal(), withoutSuffix);\n }\n\n // If passed a locale key, it will set the locale for this\n // instance. Otherwise, it will return the locale configuration\n // variables for this instance.\n function locale(key) {\n var newLocaleData;\n\n if (key === undefined) {\n return this._locale._abbr;\n } else {\n newLocaleData = getLocale(key);\n if (newLocaleData != null) {\n this._locale = newLocaleData;\n }\n return this;\n }\n }\n\n var lang = deprecate(\n 'moment().lang() is deprecated. Instead, use moment().localeData() to get the language configuration. Use moment().locale() to change languages.',\n function (key) {\n if (key === undefined) {\n return this.localeData();\n } else {\n return this.locale(key);\n }\n }\n );\n\n function localeData() {\n return this._locale;\n }\n\n var MS_PER_SECOND = 1000,\n MS_PER_MINUTE = 60 * MS_PER_SECOND,\n MS_PER_HOUR = 60 * MS_PER_MINUTE,\n MS_PER_400_YEARS = (365 * 400 + 97) * 24 * MS_PER_HOUR;\n\n // actual modulo - handles negative numbers (for dates before 1970):\n function mod$1(dividend, divisor) {\n return ((dividend % divisor) + divisor) % divisor;\n }\n\n function localStartOfDate(y, m, d) {\n // the date constructor remaps years 0-99 to 1900-1999\n if (y < 100 && y >= 0) {\n // preserve leap years using a full 400 year cycle, then reset\n return new Date(y + 400, m, d) - MS_PER_400_YEARS;\n } else {\n return new Date(y, m, d).valueOf();\n }\n }\n\n function utcStartOfDate(y, m, d) {\n // Date.UTC remaps years 0-99 to 1900-1999\n if (y < 100 && y >= 0) {\n // preserve leap years using a full 400 year cycle, then reset\n return Date.UTC(y + 400, m, d) - MS_PER_400_YEARS;\n } else {\n return Date.UTC(y, m, d);\n }\n }\n\n function startOf(units) {\n var time, startOfDate;\n units = normalizeUnits(units);\n if (units === undefined || units === 'millisecond' || !this.isValid()) {\n return this;\n }\n\n startOfDate = this._isUTC ? utcStartOfDate : localStartOfDate;\n\n switch (units) {\n case 'year':\n time = startOfDate(this.year(), 0, 1);\n break;\n case 'quarter':\n time = startOfDate(\n this.year(),\n this.month() - (this.month() % 3),\n 1\n );\n break;\n case 'month':\n time = startOfDate(this.year(), this.month(), 1);\n break;\n case 'week':\n time = startOfDate(\n this.year(),\n this.month(),\n this.date() - this.weekday()\n );\n break;\n case 'isoWeek':\n time = startOfDate(\n this.year(),\n this.month(),\n this.date() - (this.isoWeekday() - 1)\n );\n break;\n case 'day':\n case 'date':\n time = startOfDate(this.year(), this.month(), this.date());\n break;\n case 'hour':\n time = this._d.valueOf();\n time -= mod$1(\n time + (this._isUTC ? 0 : this.utcOffset() * MS_PER_MINUTE),\n MS_PER_HOUR\n );\n break;\n case 'minute':\n time = this._d.valueOf();\n time -= mod$1(time, MS_PER_MINUTE);\n break;\n case 'second':\n time = this._d.valueOf();\n time -= mod$1(time, MS_PER_SECOND);\n break;\n }\n\n this._d.setTime(time);\n hooks.updateOffset(this, true);\n return this;\n }\n\n function endOf(units) {\n var time, startOfDate;\n units = normalizeUnits(units);\n if (units === undefined || units === 'millisecond' || !this.isValid()) {\n return this;\n }\n\n startOfDate = this._isUTC ? utcStartOfDate : localStartOfDate;\n\n switch (units) {\n case 'year':\n time = startOfDate(this.year() + 1, 0, 1) - 1;\n break;\n case 'quarter':\n time =\n startOfDate(\n this.year(),\n this.month() - (this.month() % 3) + 3,\n 1\n ) - 1;\n break;\n case 'month':\n time = startOfDate(this.year(), this.month() + 1, 1) - 1;\n break;\n case 'week':\n time =\n startOfDate(\n this.year(),\n this.month(),\n this.date() - this.weekday() + 7\n ) - 1;\n break;\n case 'isoWeek':\n time =\n startOfDate(\n this.year(),\n this.month(),\n this.date() - (this.isoWeekday() - 1) + 7\n ) - 1;\n break;\n case 'day':\n case 'date':\n time = startOfDate(this.year(), this.month(), this.date() + 1) - 1;\n break;\n case 'hour':\n time = this._d.valueOf();\n time +=\n MS_PER_HOUR -\n mod$1(\n time + (this._isUTC ? 0 : this.utcOffset() * MS_PER_MINUTE),\n MS_PER_HOUR\n ) -\n 1;\n break;\n case 'minute':\n time = this._d.valueOf();\n time += MS_PER_MINUTE - mod$1(time, MS_PER_MINUTE) - 1;\n break;\n case 'second':\n time = this._d.valueOf();\n time += MS_PER_SECOND - mod$1(time, MS_PER_SECOND) - 1;\n break;\n }\n\n this._d.setTime(time);\n hooks.updateOffset(this, true);\n return this;\n }\n\n function valueOf() {\n return this._d.valueOf() - (this._offset || 0) * 60000;\n }\n\n function unix() {\n return Math.floor(this.valueOf() / 1000);\n }\n\n function toDate() {\n return new Date(this.valueOf());\n }\n\n function toArray() {\n var m = this;\n return [\n m.year(),\n m.month(),\n m.date(),\n m.hour(),\n m.minute(),\n m.second(),\n m.millisecond(),\n ];\n }\n\n function toObject() {\n var m = this;\n return {\n years: m.year(),\n months: m.month(),\n date: m.date(),\n hours: m.hours(),\n minutes: m.minutes(),\n seconds: m.seconds(),\n milliseconds: m.milliseconds(),\n };\n }\n\n function toJSON() {\n // new Date(NaN).toJSON() === null\n return this.isValid() ? this.toISOString() : null;\n }\n\n function isValid$2() {\n return isValid(this);\n }\n\n function parsingFlags() {\n return extend({}, getParsingFlags(this));\n }\n\n function invalidAt() {\n return getParsingFlags(this).overflow;\n }\n\n function creationData() {\n return {\n input: this._i,\n format: this._f,\n locale: this._locale,\n isUTC: this._isUTC,\n strict: this._strict,\n };\n }\n\n addFormatToken('N', 0, 0, 'eraAbbr');\n addFormatToken('NN', 0, 0, 'eraAbbr');\n addFormatToken('NNN', 0, 0, 'eraAbbr');\n addFormatToken('NNNN', 0, 0, 'eraName');\n addFormatToken('NNNNN', 0, 0, 'eraNarrow');\n\n addFormatToken('y', ['y', 1], 'yo', 'eraYear');\n addFormatToken('y', ['yy', 2], 0, 'eraYear');\n addFormatToken('y', ['yyy', 3], 0, 'eraYear');\n addFormatToken('y', ['yyyy', 4], 0, 'eraYear');\n\n addRegexToken('N', matchEraAbbr);\n addRegexToken('NN', matchEraAbbr);\n addRegexToken('NNN', matchEraAbbr);\n addRegexToken('NNNN', matchEraName);\n addRegexToken('NNNNN', matchEraNarrow);\n\n addParseToken(\n ['N', 'NN', 'NNN', 'NNNN', 'NNNNN'],\n function (input, array, config, token) {\n var era = config._locale.erasParse(input, token, config._strict);\n if (era) {\n getParsingFlags(config).era = era;\n } else {\n getParsingFlags(config).invalidEra = input;\n }\n }\n );\n\n addRegexToken('y', matchUnsigned);\n addRegexToken('yy', matchUnsigned);\n addRegexToken('yyy', matchUnsigned);\n addRegexToken('yyyy', matchUnsigned);\n addRegexToken('yo', matchEraYearOrdinal);\n\n addParseToken(['y', 'yy', 'yyy', 'yyyy'], YEAR);\n addParseToken(['yo'], function (input, array, config, token) {\n var match;\n if (config._locale._eraYearOrdinalRegex) {\n match = input.match(config._locale._eraYearOrdinalRegex);\n }\n\n if (config._locale.eraYearOrdinalParse) {\n array[YEAR] = config._locale.eraYearOrdinalParse(input, match);\n } else {\n array[YEAR] = parseInt(input, 10);\n }\n });\n\n function localeEras(m, format) {\n var i,\n l,\n date,\n eras = this._eras || getLocale('en')._eras;\n for (i = 0, l = eras.length; i < l; ++i) {\n switch (typeof eras[i].since) {\n case 'string':\n // truncate time\n date = hooks(eras[i].since).startOf('day');\n eras[i].since = date.valueOf();\n break;\n }\n\n switch (typeof eras[i].until) {\n case 'undefined':\n eras[i].until = +Infinity;\n break;\n case 'string':\n // truncate time\n date = hooks(eras[i].until).startOf('day').valueOf();\n eras[i].until = date.valueOf();\n break;\n }\n }\n return eras;\n }\n\n function localeErasParse(eraName, format, strict) {\n var i,\n l,\n eras = this.eras(),\n name,\n abbr,\n narrow;\n eraName = eraName.toUpperCase();\n\n for (i = 0, l = eras.length; i < l; ++i) {\n name = eras[i].name.toUpperCase();\n abbr = eras[i].abbr.toUpperCase();\n narrow = eras[i].narrow.toUpperCase();\n\n if (strict) {\n switch (format) {\n case 'N':\n case 'NN':\n case 'NNN':\n if (abbr === eraName) {\n return eras[i];\n }\n break;\n\n case 'NNNN':\n if (name === eraName) {\n return eras[i];\n }\n break;\n\n case 'NNNNN':\n if (narrow === eraName) {\n return eras[i];\n }\n break;\n }\n } else if ([name, abbr, narrow].indexOf(eraName) >= 0) {\n return eras[i];\n }\n }\n }\n\n function localeErasConvertYear(era, year) {\n var dir = era.since <= era.until ? +1 : -1;\n if (year === undefined) {\n return hooks(era.since).year();\n } else {\n return hooks(era.since).year() + (year - era.offset) * dir;\n }\n }\n\n function getEraName() {\n var i,\n l,\n val,\n eras = this.localeData().eras();\n for (i = 0, l = eras.length; i < l; ++i) {\n // truncate time\n val = this.clone().startOf('day').valueOf();\n\n if (eras[i].since <= val && val <= eras[i].until) {\n return eras[i].name;\n }\n if (eras[i].until <= val && val <= eras[i].since) {\n return eras[i].name;\n }\n }\n\n return '';\n }\n\n function getEraNarrow() {\n var i,\n l,\n val,\n eras = this.localeData().eras();\n for (i = 0, l = eras.length; i < l; ++i) {\n // truncate time\n val = this.clone().startOf('day').valueOf();\n\n if (eras[i].since <= val && val <= eras[i].until) {\n return eras[i].narrow;\n }\n if (eras[i].until <= val && val <= eras[i].since) {\n return eras[i].narrow;\n }\n }\n\n return '';\n }\n\n function getEraAbbr() {\n var i,\n l,\n val,\n eras = this.localeData().eras();\n for (i = 0, l = eras.length; i < l; ++i) {\n // truncate time\n val = this.clone().startOf('day').valueOf();\n\n if (eras[i].since <= val && val <= eras[i].until) {\n return eras[i].abbr;\n }\n if (eras[i].until <= val && val <= eras[i].since) {\n return eras[i].abbr;\n }\n }\n\n return '';\n }\n\n function getEraYear() {\n var i,\n l,\n dir,\n val,\n eras = this.localeData().eras();\n for (i = 0, l = eras.length; i < l; ++i) {\n dir = eras[i].since <= eras[i].until ? +1 : -1;\n\n // truncate time\n val = this.clone().startOf('day').valueOf();\n\n if (\n (eras[i].since <= val && val <= eras[i].until) ||\n (eras[i].until <= val && val <= eras[i].since)\n ) {\n return (\n (this.year() - hooks(eras[i].since).year()) * dir +\n eras[i].offset\n );\n }\n }\n\n return this.year();\n }\n\n function erasNameRegex(isStrict) {\n if (!hasOwnProp(this, '_erasNameRegex')) {\n computeErasParse.call(this);\n }\n return isStrict ? this._erasNameRegex : this._erasRegex;\n }\n\n function erasAbbrRegex(isStrict) {\n if (!hasOwnProp(this, '_erasAbbrRegex')) {\n computeErasParse.call(this);\n }\n return isStrict ? this._erasAbbrRegex : this._erasRegex;\n }\n\n function erasNarrowRegex(isStrict) {\n if (!hasOwnProp(this, '_erasNarrowRegex')) {\n computeErasParse.call(this);\n }\n return isStrict ? this._erasNarrowRegex : this._erasRegex;\n }\n\n function matchEraAbbr(isStrict, locale) {\n return locale.erasAbbrRegex(isStrict);\n }\n\n function matchEraName(isStrict, locale) {\n return locale.erasNameRegex(isStrict);\n }\n\n function matchEraNarrow(isStrict, locale) {\n return locale.erasNarrowRegex(isStrict);\n }\n\n function matchEraYearOrdinal(isStrict, locale) {\n return locale._eraYearOrdinalRegex || matchUnsigned;\n }\n\n function computeErasParse() {\n var abbrPieces = [],\n namePieces = [],\n narrowPieces = [],\n mixedPieces = [],\n i,\n l,\n eras = this.eras();\n\n for (i = 0, l = eras.length; i < l; ++i) {\n namePieces.push(regexEscape(eras[i].name));\n abbrPieces.push(regexEscape(eras[i].abbr));\n narrowPieces.push(regexEscape(eras[i].narrow));\n\n mixedPieces.push(regexEscape(eras[i].name));\n mixedPieces.push(regexEscape(eras[i].abbr));\n mixedPieces.push(regexEscape(eras[i].narrow));\n }\n\n this._erasRegex = new RegExp('^(' + mixedPieces.join('|') + ')', 'i');\n this._erasNameRegex = new RegExp('^(' + namePieces.join('|') + ')', 'i');\n this._erasAbbrRegex = new RegExp('^(' + abbrPieces.join('|') + ')', 'i');\n this._erasNarrowRegex = new RegExp(\n '^(' + narrowPieces.join('|') + ')',\n 'i'\n );\n }\n\n // FORMATTING\n\n addFormatToken(0, ['gg', 2], 0, function () {\n return this.weekYear() % 100;\n });\n\n addFormatToken(0, ['GG', 2], 0, function () {\n return this.isoWeekYear() % 100;\n });\n\n function addWeekYearFormatToken(token, getter) {\n addFormatToken(0, [token, token.length], 0, getter);\n }\n\n addWeekYearFormatToken('gggg', 'weekYear');\n addWeekYearFormatToken('ggggg', 'weekYear');\n addWeekYearFormatToken('GGGG', 'isoWeekYear');\n addWeekYearFormatToken('GGGGG', 'isoWeekYear');\n\n // ALIASES\n\n addUnitAlias('weekYear', 'gg');\n addUnitAlias('isoWeekYear', 'GG');\n\n // PRIORITY\n\n addUnitPriority('weekYear', 1);\n addUnitPriority('isoWeekYear', 1);\n\n // PARSING\n\n addRegexToken('G', matchSigned);\n addRegexToken('g', matchSigned);\n addRegexToken('GG', match1to2, match2);\n addRegexToken('gg', match1to2, match2);\n addRegexToken('GGGG', match1to4, match4);\n addRegexToken('gggg', match1to4, match4);\n addRegexToken('GGGGG', match1to6, match6);\n addRegexToken('ggggg', match1to6, match6);\n\n addWeekParseToken(\n ['gggg', 'ggggg', 'GGGG', 'GGGGG'],\n function (input, week, config, token) {\n week[token.substr(0, 2)] = toInt(input);\n }\n );\n\n addWeekParseToken(['gg', 'GG'], function (input, week, config, token) {\n week[token] = hooks.parseTwoDigitYear(input);\n });\n\n // MOMENTS\n\n function getSetWeekYear(input) {\n return getSetWeekYearHelper.call(\n this,\n input,\n this.week(),\n this.weekday(),\n this.localeData()._week.dow,\n this.localeData()._week.doy\n );\n }\n\n function getSetISOWeekYear(input) {\n return getSetWeekYearHelper.call(\n this,\n input,\n this.isoWeek(),\n this.isoWeekday(),\n 1,\n 4\n );\n }\n\n function getISOWeeksInYear() {\n return weeksInYear(this.year(), 1, 4);\n }\n\n function getISOWeeksInISOWeekYear() {\n return weeksInYear(this.isoWeekYear(), 1, 4);\n }\n\n function getWeeksInYear() {\n var weekInfo = this.localeData()._week;\n return weeksInYear(this.year(), weekInfo.dow, weekInfo.doy);\n }\n\n function getWeeksInWeekYear() {\n var weekInfo = this.localeData()._week;\n return weeksInYear(this.weekYear(), weekInfo.dow, weekInfo.doy);\n }\n\n function getSetWeekYearHelper(input, week, weekday, dow, doy) {\n var weeksTarget;\n if (input == null) {\n return weekOfYear(this, dow, doy).year;\n } else {\n weeksTarget = weeksInYear(input, dow, doy);\n if (week > weeksTarget) {\n week = weeksTarget;\n }\n return setWeekAll.call(this, input, week, weekday, dow, doy);\n }\n }\n\n function setWeekAll(weekYear, week, weekday, dow, doy) {\n var dayOfYearData = dayOfYearFromWeeks(weekYear, week, weekday, dow, doy),\n date = createUTCDate(dayOfYearData.year, 0, dayOfYearData.dayOfYear);\n\n this.year(date.getUTCFullYear());\n this.month(date.getUTCMonth());\n this.date(date.getUTCDate());\n return this;\n }\n\n // FORMATTING\n\n addFormatToken('Q', 0, 'Qo', 'quarter');\n\n // ALIASES\n\n addUnitAlias('quarter', 'Q');\n\n // PRIORITY\n\n addUnitPriority('quarter', 7);\n\n // PARSING\n\n addRegexToken('Q', match1);\n addParseToken('Q', function (input, array) {\n array[MONTH] = (toInt(input) - 1) * 3;\n });\n\n // MOMENTS\n\n function getSetQuarter(input) {\n return input == null\n ? Math.ceil((this.month() + 1) / 3)\n : this.month((input - 1) * 3 + (this.month() % 3));\n }\n\n // FORMATTING\n\n addFormatToken('D', ['DD', 2], 'Do', 'date');\n\n // ALIASES\n\n addUnitAlias('date', 'D');\n\n // PRIORITY\n addUnitPriority('date', 9);\n\n // PARSING\n\n addRegexToken('D', match1to2);\n addRegexToken('DD', match1to2, match2);\n addRegexToken('Do', function (isStrict, locale) {\n // TODO: Remove \"ordinalParse\" fallback in next major release.\n return isStrict\n ? locale._dayOfMonthOrdinalParse || locale._ordinalParse\n : locale._dayOfMonthOrdinalParseLenient;\n });\n\n addParseToken(['D', 'DD'], DATE);\n addParseToken('Do', function (input, array) {\n array[DATE] = toInt(input.match(match1to2)[0]);\n });\n\n // MOMENTS\n\n var getSetDayOfMonth = makeGetSet('Date', true);\n\n // FORMATTING\n\n addFormatToken('DDD', ['DDDD', 3], 'DDDo', 'dayOfYear');\n\n // ALIASES\n\n addUnitAlias('dayOfYear', 'DDD');\n\n // PRIORITY\n addUnitPriority('dayOfYear', 4);\n\n // PARSING\n\n addRegexToken('DDD', match1to3);\n addRegexToken('DDDD', match3);\n addParseToken(['DDD', 'DDDD'], function (input, array, config) {\n config._dayOfYear = toInt(input);\n });\n\n // HELPERS\n\n // MOMENTS\n\n function getSetDayOfYear(input) {\n var dayOfYear =\n Math.round(\n (this.clone().startOf('day') - this.clone().startOf('year')) / 864e5\n ) + 1;\n return input == null ? dayOfYear : this.add(input - dayOfYear, 'd');\n }\n\n // FORMATTING\n\n addFormatToken('m', ['mm', 2], 0, 'minute');\n\n // ALIASES\n\n addUnitAlias('minute', 'm');\n\n // PRIORITY\n\n addUnitPriority('minute', 14);\n\n // PARSING\n\n addRegexToken('m', match1to2);\n addRegexToken('mm', match1to2, match2);\n addParseToken(['m', 'mm'], MINUTE);\n\n // MOMENTS\n\n var getSetMinute = makeGetSet('Minutes', false);\n\n // FORMATTING\n\n addFormatToken('s', ['ss', 2], 0, 'second');\n\n // ALIASES\n\n addUnitAlias('second', 's');\n\n // PRIORITY\n\n addUnitPriority('second', 15);\n\n // PARSING\n\n addRegexToken('s', match1to2);\n addRegexToken('ss', match1to2, match2);\n addParseToken(['s', 'ss'], SECOND);\n\n // MOMENTS\n\n var getSetSecond = makeGetSet('Seconds', false);\n\n // FORMATTING\n\n addFormatToken('S', 0, 0, function () {\n return ~~(this.millisecond() / 100);\n });\n\n addFormatToken(0, ['SS', 2], 0, function () {\n return ~~(this.millisecond() / 10);\n });\n\n addFormatToken(0, ['SSS', 3], 0, 'millisecond');\n addFormatToken(0, ['SSSS', 4], 0, function () {\n return this.millisecond() * 10;\n });\n addFormatToken(0, ['SSSSS', 5], 0, function () {\n return this.millisecond() * 100;\n });\n addFormatToken(0, ['SSSSSS', 6], 0, function () {\n return this.millisecond() * 1000;\n });\n addFormatToken(0, ['SSSSSSS', 7], 0, function () {\n return this.millisecond() * 10000;\n });\n addFormatToken(0, ['SSSSSSSS', 8], 0, function () {\n return this.millisecond() * 100000;\n });\n addFormatToken(0, ['SSSSSSSSS', 9], 0, function () {\n return this.millisecond() * 1000000;\n });\n\n // ALIASES\n\n addUnitAlias('millisecond', 'ms');\n\n // PRIORITY\n\n addUnitPriority('millisecond', 16);\n\n // PARSING\n\n addRegexToken('S', match1to3, match1);\n addRegexToken('SS', match1to3, match2);\n addRegexToken('SSS', match1to3, match3);\n\n var token, getSetMillisecond;\n for (token = 'SSSS'; token.length <= 9; token += 'S') {\n addRegexToken(token, matchUnsigned);\n }\n\n function parseMs(input, array) {\n array[MILLISECOND] = toInt(('0.' + input) * 1000);\n }\n\n for (token = 'S'; token.length <= 9; token += 'S') {\n addParseToken(token, parseMs);\n }\n\n getSetMillisecond = makeGetSet('Milliseconds', false);\n\n // FORMATTING\n\n addFormatToken('z', 0, 0, 'zoneAbbr');\n addFormatToken('zz', 0, 0, 'zoneName');\n\n // MOMENTS\n\n function getZoneAbbr() {\n return this._isUTC ? 'UTC' : '';\n }\n\n function getZoneName() {\n return this._isUTC ? 'Coordinated Universal Time' : '';\n }\n\n var proto = Moment.prototype;\n\n proto.add = add;\n proto.calendar = calendar$1;\n proto.clone = clone;\n proto.diff = diff;\n proto.endOf = endOf;\n proto.format = format;\n proto.from = from;\n proto.fromNow = fromNow;\n proto.to = to;\n proto.toNow = toNow;\n proto.get = stringGet;\n proto.invalidAt = invalidAt;\n proto.isAfter = isAfter;\n proto.isBefore = isBefore;\n proto.isBetween = isBetween;\n proto.isSame = isSame;\n proto.isSameOrAfter = isSameOrAfter;\n proto.isSameOrBefore = isSameOrBefore;\n proto.isValid = isValid$2;\n proto.lang = lang;\n proto.locale = locale;\n proto.localeData = localeData;\n proto.max = prototypeMax;\n proto.min = prototypeMin;\n proto.parsingFlags = parsingFlags;\n proto.set = stringSet;\n proto.startOf = startOf;\n proto.subtract = subtract;\n proto.toArray = toArray;\n proto.toObject = toObject;\n proto.toDate = toDate;\n proto.toISOString = toISOString;\n proto.inspect = inspect;\n if (typeof Symbol !== 'undefined' && Symbol.for != null) {\n proto[Symbol.for('nodejs.util.inspect.custom')] = function () {\n return 'Moment<' + this.format() + '>';\n };\n }\n proto.toJSON = toJSON;\n proto.toString = toString;\n proto.unix = unix;\n proto.valueOf = valueOf;\n proto.creationData = creationData;\n proto.eraName = getEraName;\n proto.eraNarrow = getEraNarrow;\n proto.eraAbbr = getEraAbbr;\n proto.eraYear = getEraYear;\n proto.year = getSetYear;\n proto.isLeapYear = getIsLeapYear;\n proto.weekYear = getSetWeekYear;\n proto.isoWeekYear = getSetISOWeekYear;\n proto.quarter = proto.quarters = getSetQuarter;\n proto.month = getSetMonth;\n proto.daysInMonth = getDaysInMonth;\n proto.week = proto.weeks = getSetWeek;\n proto.isoWeek = proto.isoWeeks = getSetISOWeek;\n proto.weeksInYear = getWeeksInYear;\n proto.weeksInWeekYear = getWeeksInWeekYear;\n proto.isoWeeksInYear = getISOWeeksInYear;\n proto.isoWeeksInISOWeekYear = getISOWeeksInISOWeekYear;\n proto.date = getSetDayOfMonth;\n proto.day = proto.days = getSetDayOfWeek;\n proto.weekday = getSetLocaleDayOfWeek;\n proto.isoWeekday = getSetISODayOfWeek;\n proto.dayOfYear = getSetDayOfYear;\n proto.hour = proto.hours = getSetHour;\n proto.minute = proto.minutes = getSetMinute;\n proto.second = proto.seconds = getSetSecond;\n proto.millisecond = proto.milliseconds = getSetMillisecond;\n proto.utcOffset = getSetOffset;\n proto.utc = setOffsetToUTC;\n proto.local = setOffsetToLocal;\n proto.parseZone = setOffsetToParsedOffset;\n proto.hasAlignedHourOffset = hasAlignedHourOffset;\n proto.isDST = isDaylightSavingTime;\n proto.isLocal = isLocal;\n proto.isUtcOffset = isUtcOffset;\n proto.isUtc = isUtc;\n proto.isUTC = isUtc;\n proto.zoneAbbr = getZoneAbbr;\n proto.zoneName = getZoneName;\n proto.dates = deprecate(\n 'dates accessor is deprecated. Use date instead.',\n getSetDayOfMonth\n );\n proto.months = deprecate(\n 'months accessor is deprecated. Use month instead',\n getSetMonth\n );\n proto.years = deprecate(\n 'years accessor is deprecated. Use year instead',\n getSetYear\n );\n proto.zone = deprecate(\n 'moment().zone is deprecated, use moment().utcOffset instead. http://momentjs.com/guides/#/warnings/zone/',\n getSetZone\n );\n proto.isDSTShifted = deprecate(\n 'isDSTShifted is deprecated. See http://momentjs.com/guides/#/warnings/dst-shifted/ for more information',\n isDaylightSavingTimeShifted\n );\n\n function createUnix(input) {\n return createLocal(input * 1000);\n }\n\n function createInZone() {\n return createLocal.apply(null, arguments).parseZone();\n }\n\n function preParsePostFormat(string) {\n return string;\n }\n\n var proto$1 = Locale.prototype;\n\n proto$1.calendar = calendar;\n proto$1.longDateFormat = longDateFormat;\n proto$1.invalidDate = invalidDate;\n proto$1.ordinal = ordinal;\n proto$1.preparse = preParsePostFormat;\n proto$1.postformat = preParsePostFormat;\n proto$1.relativeTime = relativeTime;\n proto$1.pastFuture = pastFuture;\n proto$1.set = set;\n proto$1.eras = localeEras;\n proto$1.erasParse = localeErasParse;\n proto$1.erasConvertYear = localeErasConvertYear;\n proto$1.erasAbbrRegex = erasAbbrRegex;\n proto$1.erasNameRegex = erasNameRegex;\n proto$1.erasNarrowRegex = erasNarrowRegex;\n\n proto$1.months = localeMonths;\n proto$1.monthsShort = localeMonthsShort;\n proto$1.monthsParse = localeMonthsParse;\n proto$1.monthsRegex = monthsRegex;\n proto$1.monthsShortRegex = monthsShortRegex;\n proto$1.week = localeWeek;\n proto$1.firstDayOfYear = localeFirstDayOfYear;\n proto$1.firstDayOfWeek = localeFirstDayOfWeek;\n\n proto$1.weekdays = localeWeekdays;\n proto$1.weekdaysMin = localeWeekdaysMin;\n proto$1.weekdaysShort = localeWeekdaysShort;\n proto$1.weekdaysParse = localeWeekdaysParse;\n\n proto$1.weekdaysRegex = weekdaysRegex;\n proto$1.weekdaysShortRegex = weekdaysShortRegex;\n proto$1.weekdaysMinRegex = weekdaysMinRegex;\n\n proto$1.isPM = localeIsPM;\n proto$1.meridiem = localeMeridiem;\n\n function get$1(format, index, field, setter) {\n var locale = getLocale(),\n utc = createUTC().set(setter, index);\n return locale[field](utc, format);\n }\n\n function listMonthsImpl(format, index, field) {\n if (isNumber(format)) {\n index = format;\n format = undefined;\n }\n\n format = format || '';\n\n if (index != null) {\n return get$1(format, index, field, 'month');\n }\n\n var i,\n out = [];\n for (i = 0; i < 12; i++) {\n out[i] = get$1(format, i, field, 'month');\n }\n return out;\n }\n\n // ()\n // (5)\n // (fmt, 5)\n // (fmt)\n // (true)\n // (true, 5)\n // (true, fmt, 5)\n // (true, fmt)\n function listWeekdaysImpl(localeSorted, format, index, field) {\n if (typeof localeSorted === 'boolean') {\n if (isNumber(format)) {\n index = format;\n format = undefined;\n }\n\n format = format || '';\n } else {\n format = localeSorted;\n index = format;\n localeSorted = false;\n\n if (isNumber(format)) {\n index = format;\n format = undefined;\n }\n\n format = format || '';\n }\n\n var locale = getLocale(),\n shift = localeSorted ? locale._week.dow : 0,\n i,\n out = [];\n\n if (index != null) {\n return get$1(format, (index + shift) % 7, field, 'day');\n }\n\n for (i = 0; i < 7; i++) {\n out[i] = get$1(format, (i + shift) % 7, field, 'day');\n }\n return out;\n }\n\n function listMonths(format, index) {\n return listMonthsImpl(format, index, 'months');\n }\n\n function listMonthsShort(format, index) {\n return listMonthsImpl(format, index, 'monthsShort');\n }\n\n function listWeekdays(localeSorted, format, index) {\n return listWeekdaysImpl(localeSorted, format, index, 'weekdays');\n }\n\n function listWeekdaysShort(localeSorted, format, index) {\n return listWeekdaysImpl(localeSorted, format, index, 'weekdaysShort');\n }\n\n function listWeekdaysMin(localeSorted, format, index) {\n return listWeekdaysImpl(localeSorted, format, index, 'weekdaysMin');\n }\n\n getSetGlobalLocale('en', {\n eras: [\n {\n since: '0001-01-01',\n until: +Infinity,\n offset: 1,\n name: 'Anno Domini',\n narrow: 'AD',\n abbr: 'AD',\n },\n {\n since: '0000-12-31',\n until: -Infinity,\n offset: 1,\n name: 'Before Christ',\n narrow: 'BC',\n abbr: 'BC',\n },\n ],\n dayOfMonthOrdinalParse: /\\d{1,2}(th|st|nd|rd)/,\n ordinal: function (number) {\n var b = number % 10,\n output =\n toInt((number % 100) / 10) === 1\n ? 'th'\n : b === 1\n ? 'st'\n : b === 2\n ? 'nd'\n : b === 3\n ? 'rd'\n : 'th';\n return number + output;\n },\n });\n\n // Side effect imports\n\n hooks.lang = deprecate(\n 'moment.lang is deprecated. Use moment.locale instead.',\n getSetGlobalLocale\n );\n hooks.langData = deprecate(\n 'moment.langData is deprecated. Use moment.localeData instead.',\n getLocale\n );\n\n var mathAbs = Math.abs;\n\n function abs() {\n var data = this._data;\n\n this._milliseconds = mathAbs(this._milliseconds);\n this._days = mathAbs(this._days);\n this._months = mathAbs(this._months);\n\n data.milliseconds = mathAbs(data.milliseconds);\n data.seconds = mathAbs(data.seconds);\n data.minutes = mathAbs(data.minutes);\n data.hours = mathAbs(data.hours);\n data.months = mathAbs(data.months);\n data.years = mathAbs(data.years);\n\n return this;\n }\n\n function addSubtract$1(duration, input, value, direction) {\n var other = createDuration(input, value);\n\n duration._milliseconds += direction * other._milliseconds;\n duration._days += direction * other._days;\n duration._months += direction * other._months;\n\n return duration._bubble();\n }\n\n // supports only 2.0-style add(1, 's') or add(duration)\n function add$1(input, value) {\n return addSubtract$1(this, input, value, 1);\n }\n\n // supports only 2.0-style subtract(1, 's') or subtract(duration)\n function subtract$1(input, value) {\n return addSubtract$1(this, input, value, -1);\n }\n\n function absCeil(number) {\n if (number < 0) {\n return Math.floor(number);\n } else {\n return Math.ceil(number);\n }\n }\n\n function bubble() {\n var milliseconds = this._milliseconds,\n days = this._days,\n months = this._months,\n data = this._data,\n seconds,\n minutes,\n hours,\n years,\n monthsFromDays;\n\n // if we have a mix of positive and negative values, bubble down first\n // check: https://github.com/moment/moment/issues/2166\n if (\n !(\n (milliseconds >= 0 && days >= 0 && months >= 0) ||\n (milliseconds <= 0 && days <= 0 && months <= 0)\n )\n ) {\n milliseconds += absCeil(monthsToDays(months) + days) * 864e5;\n days = 0;\n months = 0;\n }\n\n // The following code bubbles up values, see the tests for\n // examples of what that means.\n data.milliseconds = milliseconds % 1000;\n\n seconds = absFloor(milliseconds / 1000);\n data.seconds = seconds % 60;\n\n minutes = absFloor(seconds / 60);\n data.minutes = minutes % 60;\n\n hours = absFloor(minutes / 60);\n data.hours = hours % 24;\n\n days += absFloor(hours / 24);\n\n // convert days to months\n monthsFromDays = absFloor(daysToMonths(days));\n months += monthsFromDays;\n days -= absCeil(monthsToDays(monthsFromDays));\n\n // 12 months -> 1 year\n years = absFloor(months / 12);\n months %= 12;\n\n data.days = days;\n data.months = months;\n data.years = years;\n\n return this;\n }\n\n function daysToMonths(days) {\n // 400 years have 146097 days (taking into account leap year rules)\n // 400 years have 12 months === 4800\n return (days * 4800) / 146097;\n }\n\n function monthsToDays(months) {\n // the reverse of daysToMonths\n return (months * 146097) / 4800;\n }\n\n function as(units) {\n if (!this.isValid()) {\n return NaN;\n }\n var days,\n months,\n milliseconds = this._milliseconds;\n\n units = normalizeUnits(units);\n\n if (units === 'month' || units === 'quarter' || units === 'year') {\n days = this._days + milliseconds / 864e5;\n months = this._months + daysToMonths(days);\n switch (units) {\n case 'month':\n return months;\n case 'quarter':\n return months / 3;\n case 'year':\n return months / 12;\n }\n } else {\n // handle milliseconds separately because of floating point math errors (issue #1867)\n days = this._days + Math.round(monthsToDays(this._months));\n switch (units) {\n case 'week':\n return days / 7 + milliseconds / 6048e5;\n case 'day':\n return days + milliseconds / 864e5;\n case 'hour':\n return days * 24 + milliseconds / 36e5;\n case 'minute':\n return days * 1440 + milliseconds / 6e4;\n case 'second':\n return days * 86400 + milliseconds / 1000;\n // Math.floor prevents floating point math errors here\n case 'millisecond':\n return Math.floor(days * 864e5) + milliseconds;\n default:\n throw new Error('Unknown unit ' + units);\n }\n }\n }\n\n // TODO: Use this.as('ms')?\n function valueOf$1() {\n if (!this.isValid()) {\n return NaN;\n }\n return (\n this._milliseconds +\n this._days * 864e5 +\n (this._months % 12) * 2592e6 +\n toInt(this._months / 12) * 31536e6\n );\n }\n\n function makeAs(alias) {\n return function () {\n return this.as(alias);\n };\n }\n\n var asMilliseconds = makeAs('ms'),\n asSeconds = makeAs('s'),\n asMinutes = makeAs('m'),\n asHours = makeAs('h'),\n asDays = makeAs('d'),\n asWeeks = makeAs('w'),\n asMonths = makeAs('M'),\n asQuarters = makeAs('Q'),\n asYears = makeAs('y');\n\n function clone$1() {\n return createDuration(this);\n }\n\n function get$2(units) {\n units = normalizeUnits(units);\n return this.isValid() ? this[units + 's']() : NaN;\n }\n\n function makeGetter(name) {\n return function () {\n return this.isValid() ? this._data[name] : NaN;\n };\n }\n\n var milliseconds = makeGetter('milliseconds'),\n seconds = makeGetter('seconds'),\n minutes = makeGetter('minutes'),\n hours = makeGetter('hours'),\n days = makeGetter('days'),\n months = makeGetter('months'),\n years = makeGetter('years');\n\n function weeks() {\n return absFloor(this.days() / 7);\n }\n\n var round = Math.round,\n thresholds = {\n ss: 44, // a few seconds to seconds\n s: 45, // seconds to minute\n m: 45, // minutes to hour\n h: 22, // hours to day\n d: 26, // days to month/week\n w: null, // weeks to month\n M: 11, // months to year\n };\n\n // helper function for moment.fn.from, moment.fn.fromNow, and moment.duration.fn.humanize\n function substituteTimeAgo(string, number, withoutSuffix, isFuture, locale) {\n return locale.relativeTime(number || 1, !!withoutSuffix, string, isFuture);\n }\n\n function relativeTime$1(posNegDuration, withoutSuffix, thresholds, locale) {\n var duration = createDuration(posNegDuration).abs(),\n seconds = round(duration.as('s')),\n minutes = round(duration.as('m')),\n hours = round(duration.as('h')),\n days = round(duration.as('d')),\n months = round(duration.as('M')),\n weeks = round(duration.as('w')),\n years = round(duration.as('y')),\n a =\n (seconds <= thresholds.ss && ['s', seconds]) ||\n (seconds < thresholds.s && ['ss', seconds]) ||\n (minutes <= 1 && ['m']) ||\n (minutes < thresholds.m && ['mm', minutes]) ||\n (hours <= 1 && ['h']) ||\n (hours < thresholds.h && ['hh', hours]) ||\n (days <= 1 && ['d']) ||\n (days < thresholds.d && ['dd', days]);\n\n if (thresholds.w != null) {\n a =\n a ||\n (weeks <= 1 && ['w']) ||\n (weeks < thresholds.w && ['ww', weeks]);\n }\n a = a ||\n (months <= 1 && ['M']) ||\n (months < thresholds.M && ['MM', months]) ||\n (years <= 1 && ['y']) || ['yy', years];\n\n a[2] = withoutSuffix;\n a[3] = +posNegDuration > 0;\n a[4] = locale;\n return substituteTimeAgo.apply(null, a);\n }\n\n // This function allows you to set the rounding function for relative time strings\n function getSetRelativeTimeRounding(roundingFunction) {\n if (roundingFunction === undefined) {\n return round;\n }\n if (typeof roundingFunction === 'function') {\n round = roundingFunction;\n return true;\n }\n return false;\n }\n\n // This function allows you to set a threshold for relative time strings\n function getSetRelativeTimeThreshold(threshold, limit) {\n if (thresholds[threshold] === undefined) {\n return false;\n }\n if (limit === undefined) {\n return thresholds[threshold];\n }\n thresholds[threshold] = limit;\n if (threshold === 's') {\n thresholds.ss = limit - 1;\n }\n return true;\n }\n\n function humanize(argWithSuffix, argThresholds) {\n if (!this.isValid()) {\n return this.localeData().invalidDate();\n }\n\n var withSuffix = false,\n th = thresholds,\n locale,\n output;\n\n if (typeof argWithSuffix === 'object') {\n argThresholds = argWithSuffix;\n argWithSuffix = false;\n }\n if (typeof argWithSuffix === 'boolean') {\n withSuffix = argWithSuffix;\n }\n if (typeof argThresholds === 'object') {\n th = Object.assign({}, thresholds, argThresholds);\n if (argThresholds.s != null && argThresholds.ss == null) {\n th.ss = argThresholds.s - 1;\n }\n }\n\n locale = this.localeData();\n output = relativeTime$1(this, !withSuffix, th, locale);\n\n if (withSuffix) {\n output = locale.pastFuture(+this, output);\n }\n\n return locale.postformat(output);\n }\n\n var abs$1 = Math.abs;\n\n function sign(x) {\n return (x > 0) - (x < 0) || +x;\n }\n\n function toISOString$1() {\n // for ISO strings we do not use the normal bubbling rules:\n // * milliseconds bubble up until they become hours\n // * days do not bubble at all\n // * months bubble up until they become years\n // This is because there is no context-free conversion between hours and days\n // (think of clock changes)\n // and also not between days and months (28-31 days per month)\n if (!this.isValid()) {\n return this.localeData().invalidDate();\n }\n\n var seconds = abs$1(this._milliseconds) / 1000,\n days = abs$1(this._days),\n months = abs$1(this._months),\n minutes,\n hours,\n years,\n s,\n total = this.asSeconds(),\n totalSign,\n ymSign,\n daysSign,\n hmsSign;\n\n if (!total) {\n // this is the same as C#'s (Noda) and python (isodate)...\n // but not other JS (goog.date)\n return 'P0D';\n }\n\n // 3600 seconds -> 60 minutes -> 1 hour\n minutes = absFloor(seconds / 60);\n hours = absFloor(minutes / 60);\n seconds %= 60;\n minutes %= 60;\n\n // 12 months -> 1 year\n years = absFloor(months / 12);\n months %= 12;\n\n // inspired by https://github.com/dordille/moment-isoduration/blob/master/moment.isoduration.js\n s = seconds ? seconds.toFixed(3).replace(/\\.?0+$/, '') : '';\n\n totalSign = total < 0 ? '-' : '';\n ymSign = sign(this._months) !== sign(total) ? '-' : '';\n daysSign = sign(this._days) !== sign(total) ? '-' : '';\n hmsSign = sign(this._milliseconds) !== sign(total) ? '-' : '';\n\n return (\n totalSign +\n 'P' +\n (years ? ymSign + years + 'Y' : '') +\n (months ? ymSign + months + 'M' : '') +\n (days ? daysSign + days + 'D' : '') +\n (hours || minutes || seconds ? 'T' : '') +\n (hours ? hmsSign + hours + 'H' : '') +\n (minutes ? hmsSign + minutes + 'M' : '') +\n (seconds ? hmsSign + s + 'S' : '')\n );\n }\n\n var proto$2 = Duration.prototype;\n\n proto$2.isValid = isValid$1;\n proto$2.abs = abs;\n proto$2.add = add$1;\n proto$2.subtract = subtract$1;\n proto$2.as = as;\n proto$2.asMilliseconds = asMilliseconds;\n proto$2.asSeconds = asSeconds;\n proto$2.asMinutes = asMinutes;\n proto$2.asHours = asHours;\n proto$2.asDays = asDays;\n proto$2.asWeeks = asWeeks;\n proto$2.asMonths = asMonths;\n proto$2.asQuarters = asQuarters;\n proto$2.asYears = asYears;\n proto$2.valueOf = valueOf$1;\n proto$2._bubble = bubble;\n proto$2.clone = clone$1;\n proto$2.get = get$2;\n proto$2.milliseconds = milliseconds;\n proto$2.seconds = seconds;\n proto$2.minutes = minutes;\n proto$2.hours = hours;\n proto$2.days = days;\n proto$2.weeks = weeks;\n proto$2.months = months;\n proto$2.years = years;\n proto$2.humanize = humanize;\n proto$2.toISOString = toISOString$1;\n proto$2.toString = toISOString$1;\n proto$2.toJSON = toISOString$1;\n proto$2.locale = locale;\n proto$2.localeData = localeData;\n\n proto$2.toIsoString = deprecate(\n 'toIsoString() is deprecated. Please use toISOString() instead (notice the capitals)',\n toISOString$1\n );\n proto$2.lang = lang;\n\n // FORMATTING\n\n addFormatToken('X', 0, 0, 'unix');\n addFormatToken('x', 0, 0, 'valueOf');\n\n // PARSING\n\n addRegexToken('x', matchSigned);\n addRegexToken('X', matchTimestamp);\n addParseToken('X', function (input, array, config) {\n config._d = new Date(parseFloat(input) * 1000);\n });\n addParseToken('x', function (input, array, config) {\n config._d = new Date(toInt(input));\n });\n\n //! moment.js\n\n hooks.version = '2.29.4';\n\n setHookCallback(createLocal);\n\n hooks.fn = proto;\n hooks.min = min;\n hooks.max = max;\n hooks.now = now;\n hooks.utc = createUTC;\n hooks.unix = createUnix;\n hooks.months = listMonths;\n hooks.isDate = isDate;\n hooks.locale = getSetGlobalLocale;\n hooks.invalid = createInvalid;\n hooks.duration = createDuration;\n hooks.isMoment = isMoment;\n hooks.weekdays = listWeekdays;\n hooks.parseZone = createInZone;\n hooks.localeData = getLocale;\n hooks.isDuration = isDuration;\n hooks.monthsShort = listMonthsShort;\n hooks.weekdaysMin = listWeekdaysMin;\n hooks.defineLocale = defineLocale;\n hooks.updateLocale = updateLocale;\n hooks.locales = listLocales;\n hooks.weekdaysShort = listWeekdaysShort;\n hooks.normalizeUnits = normalizeUnits;\n hooks.relativeTimeRounding = getSetRelativeTimeRounding;\n hooks.relativeTimeThreshold = getSetRelativeTimeThreshold;\n hooks.calendarFormat = getCalendarFormat;\n hooks.prototype = proto;\n\n // currently HTML5 input type only supports 24-hour formats\n hooks.HTML5_FMT = {\n DATETIME_LOCAL: 'YYYY-MM-DDTHH:mm', // \n DATETIME_LOCAL_SECONDS: 'YYYY-MM-DDTHH:mm:ss', // \n DATETIME_LOCAL_MS: 'YYYY-MM-DDTHH:mm:ss.SSS', // \n DATE: 'YYYY-MM-DD', // \n TIME: 'HH:mm', // \n TIME_SECONDS: 'HH:mm:ss', // \n TIME_MS: 'HH:mm:ss.SSS', // \n WEEK: 'GGGG-[W]WW', // \n MONTH: 'YYYY-MM', // \n };\n\n return hooks;\n\n})));\n","var moment = module.exports = require(\"./moment-timezone\");\nmoment.tz.load(require('./data/packed/latest.json'));\n","//! moment-timezone.js\n//! version : 0.5.40\n//! Copyright (c) JS Foundation and other contributors\n//! license : MIT\n//! github.com/moment/moment-timezone\n\n(function (root, factory) {\n\t\"use strict\";\n\n\t/*global define*/\n\tif (typeof module === 'object' && module.exports) {\n\t\tmodule.exports = factory(require('moment')); // Node\n\t} else if (typeof define === 'function' && define.amd) {\n\t\tdefine(['moment'], factory); // AMD\n\t} else {\n\t\tfactory(root.moment); // Browser\n\t}\n}(this, function (moment) {\n\t\"use strict\";\n\n\t// Resolves es6 module loading issue\n\tif (moment.version === undefined && moment.default) {\n\t\tmoment = moment.default;\n\t}\n\n\t// Do not load moment-timezone a second time.\n\t// if (moment.tz !== undefined) {\n\t// \tlogError('Moment Timezone ' + moment.tz.version + ' was already loaded ' + (moment.tz.dataVersion ? 'with data from ' : 'without any data') + moment.tz.dataVersion);\n\t// \treturn moment;\n\t// }\n\n\tvar VERSION = \"0.5.40\",\n\t\tzones = {},\n\t\tlinks = {},\n\t\tcountries = {},\n\t\tnames = {},\n\t\tguesses = {},\n\t\tcachedGuess;\n\n\tif (!moment || typeof moment.version !== 'string') {\n\t\tlogError('Moment Timezone requires Moment.js. See https://momentjs.com/timezone/docs/#/use-it/browser/');\n\t}\n\n\tvar momentVersion = moment.version.split('.'),\n\t\tmajor = +momentVersion[0],\n\t\tminor = +momentVersion[1];\n\n\t// Moment.js version check\n\tif (major < 2 || (major === 2 && minor < 6)) {\n\t\tlogError('Moment Timezone requires Moment.js >= 2.6.0. You are using Moment.js ' + moment.version + '. See momentjs.com');\n\t}\n\n\t/************************************\n\t\tUnpacking\n\t************************************/\n\n\tfunction charCodeToInt(charCode) {\n\t\tif (charCode > 96) {\n\t\t\treturn charCode - 87;\n\t\t} else if (charCode > 64) {\n\t\t\treturn charCode - 29;\n\t\t}\n\t\treturn charCode - 48;\n\t}\n\n\tfunction unpackBase60(string) {\n\t\tvar i = 0,\n\t\t\tparts = string.split('.'),\n\t\t\twhole = parts[0],\n\t\t\tfractional = parts[1] || '',\n\t\t\tmultiplier = 1,\n\t\t\tnum,\n\t\t\tout = 0,\n\t\t\tsign = 1;\n\n\t\t// handle negative numbers\n\t\tif (string.charCodeAt(0) === 45) {\n\t\t\ti = 1;\n\t\t\tsign = -1;\n\t\t}\n\n\t\t// handle digits before the decimal\n\t\tfor (i; i < whole.length; i++) {\n\t\t\tnum = charCodeToInt(whole.charCodeAt(i));\n\t\t\tout = 60 * out + num;\n\t\t}\n\n\t\t// handle digits after the decimal\n\t\tfor (i = 0; i < fractional.length; i++) {\n\t\t\tmultiplier = multiplier / 60;\n\t\t\tnum = charCodeToInt(fractional.charCodeAt(i));\n\t\t\tout += num * multiplier;\n\t\t}\n\n\t\treturn out * sign;\n\t}\n\n\tfunction arrayToInt (array) {\n\t\tfor (var i = 0; i < array.length; i++) {\n\t\t\tarray[i] = unpackBase60(array[i]);\n\t\t}\n\t}\n\n\tfunction intToUntil (array, length) {\n\t\tfor (var i = 0; i < length; i++) {\n\t\t\tarray[i] = Math.round((array[i - 1] || 0) + (array[i] * 60000)); // minutes to milliseconds\n\t\t}\n\n\t\tarray[length - 1] = Infinity;\n\t}\n\n\tfunction mapIndices (source, indices) {\n\t\tvar out = [], i;\n\n\t\tfor (i = 0; i < indices.length; i++) {\n\t\t\tout[i] = source[indices[i]];\n\t\t}\n\n\t\treturn out;\n\t}\n\n\tfunction unpack (string) {\n\t\tvar data = string.split('|'),\n\t\t\toffsets = data[2].split(' '),\n\t\t\tindices = data[3].split(''),\n\t\t\tuntils = data[4].split(' ');\n\n\t\tarrayToInt(offsets);\n\t\tarrayToInt(indices);\n\t\tarrayToInt(untils);\n\n\t\tintToUntil(untils, indices.length);\n\n\t\treturn {\n\t\t\tname : data[0],\n\t\t\tabbrs : mapIndices(data[1].split(' '), indices),\n\t\t\toffsets : mapIndices(offsets, indices),\n\t\t\tuntils : untils,\n\t\t\tpopulation : data[5] | 0\n\t\t};\n\t}\n\n\t/************************************\n\t\tZone object\n\t************************************/\n\n\tfunction Zone (packedString) {\n\t\tif (packedString) {\n\t\t\tthis._set(unpack(packedString));\n\t\t}\n\t}\n\n\tZone.prototype = {\n\t\t_set : function (unpacked) {\n\t\t\tthis.name = unpacked.name;\n\t\t\tthis.abbrs = unpacked.abbrs;\n\t\t\tthis.untils = unpacked.untils;\n\t\t\tthis.offsets = unpacked.offsets;\n\t\t\tthis.population = unpacked.population;\n\t\t},\n\n\t\t_index : function (timestamp) {\n\t\t\tvar target = +timestamp,\n\t\t\t\tuntils = this.untils,\n\t\t\t\ti;\n\n\t\t\tfor (i = 0; i < untils.length; i++) {\n\t\t\t\tif (target < untils[i]) {\n\t\t\t\t\treturn i;\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\n\t\tcountries : function () {\n\t\t\tvar zone_name = this.name;\n\t\t\treturn Object.keys(countries).filter(function (country_code) {\n\t\t\t\treturn countries[country_code].zones.indexOf(zone_name) !== -1;\n\t\t\t});\n\t\t},\n\n\t\tparse : function (timestamp) {\n\t\t\tvar target = +timestamp,\n\t\t\t\toffsets = this.offsets,\n\t\t\t\tuntils = this.untils,\n\t\t\t\tmax = untils.length - 1,\n\t\t\t\toffset, offsetNext, offsetPrev, i;\n\n\t\t\tfor (i = 0; i < max; i++) {\n\t\t\t\toffset = offsets[i];\n\t\t\t\toffsetNext = offsets[i + 1];\n\t\t\t\toffsetPrev = offsets[i ? i - 1 : i];\n\n\t\t\t\tif (offset < offsetNext && tz.moveAmbiguousForward) {\n\t\t\t\t\toffset = offsetNext;\n\t\t\t\t} else if (offset > offsetPrev && tz.moveInvalidForward) {\n\t\t\t\t\toffset = offsetPrev;\n\t\t\t\t}\n\n\t\t\t\tif (target < untils[i] - (offset * 60000)) {\n\t\t\t\t\treturn offsets[i];\n\t\t\t\t}\n\t\t\t}\n\n\t\t\treturn offsets[max];\n\t\t},\n\n\t\tabbr : function (mom) {\n\t\t\treturn this.abbrs[this._index(mom)];\n\t\t},\n\n\t\toffset : function (mom) {\n\t\t\tlogError(\"zone.offset has been deprecated in favor of zone.utcOffset\");\n\t\t\treturn this.offsets[this._index(mom)];\n\t\t},\n\n\t\tutcOffset : function (mom) {\n\t\t\treturn this.offsets[this._index(mom)];\n\t\t}\n\t};\n\n\t/************************************\n\t\tCountry object\n\t************************************/\n\n\tfunction Country (country_name, zone_names) {\n\t\tthis.name = country_name;\n\t\tthis.zones = zone_names;\n\t}\n\n\t/************************************\n\t\tCurrent Timezone\n\t************************************/\n\n\tfunction OffsetAt(at) {\n\t\tvar timeString = at.toTimeString();\n\t\tvar abbr = timeString.match(/\\([a-z ]+\\)/i);\n\t\tif (abbr && abbr[0]) {\n\t\t\t// 17:56:31 GMT-0600 (CST)\n\t\t\t// 17:56:31 GMT-0600 (Central Standard Time)\n\t\t\tabbr = abbr[0].match(/[A-Z]/g);\n\t\t\tabbr = abbr ? abbr.join('') : undefined;\n\t\t} else {\n\t\t\t// 17:56:31 CST\n\t\t\t// 17:56:31 GMT+0800 (台北標準時間)\n\t\t\tabbr = timeString.match(/[A-Z]{3,5}/g);\n\t\t\tabbr = abbr ? abbr[0] : undefined;\n\t\t}\n\n\t\tif (abbr === 'GMT') {\n\t\t\tabbr = undefined;\n\t\t}\n\n\t\tthis.at = +at;\n\t\tthis.abbr = abbr;\n\t\tthis.offset = at.getTimezoneOffset();\n\t}\n\n\tfunction ZoneScore(zone) {\n\t\tthis.zone = zone;\n\t\tthis.offsetScore = 0;\n\t\tthis.abbrScore = 0;\n\t}\n\n\tZoneScore.prototype.scoreOffsetAt = function (offsetAt) {\n\t\tthis.offsetScore += Math.abs(this.zone.utcOffset(offsetAt.at) - offsetAt.offset);\n\t\tif (this.zone.abbr(offsetAt.at).replace(/[^A-Z]/g, '') !== offsetAt.abbr) {\n\t\t\tthis.abbrScore++;\n\t\t}\n\t};\n\n\tfunction findChange(low, high) {\n\t\tvar mid, diff;\n\n\t\twhile ((diff = ((high.at - low.at) / 12e4 | 0) * 6e4)) {\n\t\t\tmid = new OffsetAt(new Date(low.at + diff));\n\t\t\tif (mid.offset === low.offset) {\n\t\t\t\tlow = mid;\n\t\t\t} else {\n\t\t\t\thigh = mid;\n\t\t\t}\n\t\t}\n\n\t\treturn low;\n\t}\n\n\tfunction userOffsets() {\n\t\tvar startYear = new Date().getFullYear() - 2,\n\t\t\tlast = new OffsetAt(new Date(startYear, 0, 1)),\n\t\t\toffsets = [last],\n\t\t\tchange, next, i;\n\n\t\tfor (i = 1; i < 48; i++) {\n\t\t\tnext = new OffsetAt(new Date(startYear, i, 1));\n\t\t\tif (next.offset !== last.offset) {\n\t\t\t\tchange = findChange(last, next);\n\t\t\t\toffsets.push(change);\n\t\t\t\toffsets.push(new OffsetAt(new Date(change.at + 6e4)));\n\t\t\t}\n\t\t\tlast = next;\n\t\t}\n\n\t\tfor (i = 0; i < 4; i++) {\n\t\t\toffsets.push(new OffsetAt(new Date(startYear + i, 0, 1)));\n\t\t\toffsets.push(new OffsetAt(new Date(startYear + i, 6, 1)));\n\t\t}\n\n\t\treturn offsets;\n\t}\n\n\tfunction sortZoneScores (a, b) {\n\t\tif (a.offsetScore !== b.offsetScore) {\n\t\t\treturn a.offsetScore - b.offsetScore;\n\t\t}\n\t\tif (a.abbrScore !== b.abbrScore) {\n\t\t\treturn a.abbrScore - b.abbrScore;\n\t\t}\n\t\tif (a.zone.population !== b.zone.population) {\n\t\t\treturn b.zone.population - a.zone.population;\n\t\t}\n\t\treturn b.zone.name.localeCompare(a.zone.name);\n\t}\n\n\tfunction addToGuesses (name, offsets) {\n\t\tvar i, offset;\n\t\tarrayToInt(offsets);\n\t\tfor (i = 0; i < offsets.length; i++) {\n\t\t\toffset = offsets[i];\n\t\t\tguesses[offset] = guesses[offset] || {};\n\t\t\tguesses[offset][name] = true;\n\t\t}\n\t}\n\n\tfunction guessesForUserOffsets (offsets) {\n\t\tvar offsetsLength = offsets.length,\n\t\t\tfilteredGuesses = {},\n\t\t\tout = [],\n\t\t\ti, j, guessesOffset;\n\n\t\tfor (i = 0; i < offsetsLength; i++) {\n\t\t\tguessesOffset = guesses[offsets[i].offset] || {};\n\t\t\tfor (j in guessesOffset) {\n\t\t\t\tif (guessesOffset.hasOwnProperty(j)) {\n\t\t\t\t\tfilteredGuesses[j] = true;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tfor (i in filteredGuesses) {\n\t\t\tif (filteredGuesses.hasOwnProperty(i)) {\n\t\t\t\tout.push(names[i]);\n\t\t\t}\n\t\t}\n\n\t\treturn out;\n\t}\n\n\tfunction rebuildGuess () {\n\n\t\t// use Intl API when available and returning valid time zone\n\t\ttry {\n\t\t\tvar intlName = Intl.DateTimeFormat().resolvedOptions().timeZone;\n\t\t\tif (intlName && intlName.length > 3) {\n\t\t\t\tvar name = names[normalizeName(intlName)];\n\t\t\t\tif (name) {\n\t\t\t\t\treturn name;\n\t\t\t\t}\n\t\t\t\tlogError(\"Moment Timezone found \" + intlName + \" from the Intl api, but did not have that data loaded.\");\n\t\t\t}\n\t\t} catch (e) {\n\t\t\t// Intl unavailable, fall back to manual guessing.\n\t\t}\n\n\t\tvar offsets = userOffsets(),\n\t\t\toffsetsLength = offsets.length,\n\t\t\tguesses = guessesForUserOffsets(offsets),\n\t\t\tzoneScores = [],\n\t\t\tzoneScore, i, j;\n\n\t\tfor (i = 0; i < guesses.length; i++) {\n\t\t\tzoneScore = new ZoneScore(getZone(guesses[i]), offsetsLength);\n\t\t\tfor (j = 0; j < offsetsLength; j++) {\n\t\t\t\tzoneScore.scoreOffsetAt(offsets[j]);\n\t\t\t}\n\t\t\tzoneScores.push(zoneScore);\n\t\t}\n\n\t\tzoneScores.sort(sortZoneScores);\n\n\t\treturn zoneScores.length > 0 ? zoneScores[0].zone.name : undefined;\n\t}\n\n\tfunction guess (ignoreCache) {\n\t\tif (!cachedGuess || ignoreCache) {\n\t\t\tcachedGuess = rebuildGuess();\n\t\t}\n\t\treturn cachedGuess;\n\t}\n\n\t/************************************\n\t\tGlobal Methods\n\t************************************/\n\n\tfunction normalizeName (name) {\n\t\treturn (name || '').toLowerCase().replace(/\\//g, '_');\n\t}\n\n\tfunction addZone (packed) {\n\t\tvar i, name, split, normalized;\n\n\t\tif (typeof packed === \"string\") {\n\t\t\tpacked = [packed];\n\t\t}\n\n\t\tfor (i = 0; i < packed.length; i++) {\n\t\t\tsplit = packed[i].split('|');\n\t\t\tname = split[0];\n\t\t\tnormalized = normalizeName(name);\n\t\t\tzones[normalized] = packed[i];\n\t\t\tnames[normalized] = name;\n\t\t\taddToGuesses(normalized, split[2].split(' '));\n\t\t}\n\t}\n\n\tfunction getZone (name, caller) {\n\n\t\tname = normalizeName(name);\n\n\t\tvar zone = zones[name];\n\t\tvar link;\n\n\t\tif (zone instanceof Zone) {\n\t\t\treturn zone;\n\t\t}\n\n\t\tif (typeof zone === 'string') {\n\t\t\tzone = new Zone(zone);\n\t\t\tzones[name] = zone;\n\t\t\treturn zone;\n\t\t}\n\n\t\t// Pass getZone to prevent recursion more than 1 level deep\n\t\tif (links[name] && caller !== getZone && (link = getZone(links[name], getZone))) {\n\t\t\tzone = zones[name] = new Zone();\n\t\t\tzone._set(link);\n\t\t\tzone.name = names[name];\n\t\t\treturn zone;\n\t\t}\n\n\t\treturn null;\n\t}\n\n\tfunction getNames () {\n\t\tvar i, out = [];\n\n\t\tfor (i in names) {\n\t\t\tif (names.hasOwnProperty(i) && (zones[i] || zones[links[i]]) && names[i]) {\n\t\t\t\tout.push(names[i]);\n\t\t\t}\n\t\t}\n\n\t\treturn out.sort();\n\t}\n\n\tfunction getCountryNames () {\n\t\treturn Object.keys(countries);\n\t}\n\n\tfunction addLink (aliases) {\n\t\tvar i, alias, normal0, normal1;\n\n\t\tif (typeof aliases === \"string\") {\n\t\t\taliases = [aliases];\n\t\t}\n\n\t\tfor (i = 0; i < aliases.length; i++) {\n\t\t\talias = aliases[i].split('|');\n\n\t\t\tnormal0 = normalizeName(alias[0]);\n\t\t\tnormal1 = normalizeName(alias[1]);\n\n\t\t\tlinks[normal0] = normal1;\n\t\t\tnames[normal0] = alias[0];\n\n\t\t\tlinks[normal1] = normal0;\n\t\t\tnames[normal1] = alias[1];\n\t\t}\n\t}\n\n\tfunction addCountries (data) {\n\t\tvar i, country_code, country_zones, split;\n\t\tif (!data || !data.length) return;\n\t\tfor (i = 0; i < data.length; i++) {\n\t\t\tsplit = data[i].split('|');\n\t\t\tcountry_code = split[0].toUpperCase();\n\t\t\tcountry_zones = split[1].split(' ');\n\t\t\tcountries[country_code] = new Country(\n\t\t\t\tcountry_code,\n\t\t\t\tcountry_zones\n\t\t\t);\n\t\t}\n\t}\n\n\tfunction getCountry (name) {\n\t\tname = name.toUpperCase();\n\t\treturn countries[name] || null;\n\t}\n\n\tfunction zonesForCountry(country, with_offset) {\n\t\tcountry = getCountry(country);\n\n\t\tif (!country) return null;\n\n\t\tvar zones = country.zones.sort();\n\n\t\tif (with_offset) {\n\t\t\treturn zones.map(function (zone_name) {\n\t\t\t\tvar zone = getZone(zone_name);\n\t\t\t\treturn {\n\t\t\t\t\tname: zone_name,\n\t\t\t\t\toffset: zone.utcOffset(new Date())\n\t\t\t\t};\n\t\t\t});\n\t\t}\n\n\t\treturn zones;\n\t}\n\n\tfunction loadData (data) {\n\t\taddZone(data.zones);\n\t\taddLink(data.links);\n\t\taddCountries(data.countries);\n\t\ttz.dataVersion = data.version;\n\t}\n\n\tfunction zoneExists (name) {\n\t\tif (!zoneExists.didShowError) {\n\t\t\tzoneExists.didShowError = true;\n\t\t\t\tlogError(\"moment.tz.zoneExists('\" + name + \"') has been deprecated in favor of !moment.tz.zone('\" + name + \"')\");\n\t\t}\n\t\treturn !!getZone(name);\n\t}\n\n\tfunction needsOffset (m) {\n\t\tvar isUnixTimestamp = (m._f === 'X' || m._f === 'x');\n\t\treturn !!(m._a && (m._tzm === undefined) && !isUnixTimestamp);\n\t}\n\n\tfunction logError (message) {\n\t\tif (typeof console !== 'undefined' && typeof console.error === 'function') {\n\t\t\tconsole.error(message);\n\t\t}\n\t}\n\n\t/************************************\n\t\tmoment.tz namespace\n\t************************************/\n\n\tfunction tz (input) {\n\t\tvar args = Array.prototype.slice.call(arguments, 0, -1),\n\t\t\tname = arguments[arguments.length - 1],\n\t\t\tzone = getZone(name),\n\t\t\tout = moment.utc.apply(null, args);\n\n\t\tif (zone && !moment.isMoment(input) && needsOffset(out)) {\n\t\t\tout.add(zone.parse(out), 'minutes');\n\t\t}\n\n\t\tout.tz(name);\n\n\t\treturn out;\n\t}\n\n\ttz.version = VERSION;\n\ttz.dataVersion = '';\n\ttz._zones = zones;\n\ttz._links = links;\n\ttz._names = names;\n\ttz._countries\t= countries;\n\ttz.add = addZone;\n\ttz.link = addLink;\n\ttz.load = loadData;\n\ttz.zone = getZone;\n\ttz.zoneExists = zoneExists; // deprecated in 0.1.0\n\ttz.guess = guess;\n\ttz.names = getNames;\n\ttz.Zone = Zone;\n\ttz.unpack = unpack;\n\ttz.unpackBase60 = unpackBase60;\n\ttz.needsOffset = needsOffset;\n\ttz.moveInvalidForward = true;\n\ttz.moveAmbiguousForward = false;\n\ttz.countries = getCountryNames;\n\ttz.zonesForCountry = zonesForCountry;\n\n\t/************************************\n\t\tInterface with Moment.js\n\t************************************/\n\n\tvar fn = moment.fn;\n\n\tmoment.tz = tz;\n\n\tmoment.defaultZone = null;\n\n\tmoment.updateOffset = function (mom, keepTime) {\n\t\tvar zone = moment.defaultZone,\n\t\t\toffset;\n\n\t\tif (mom._z === undefined) {\n\t\t\tif (zone && needsOffset(mom) && !mom._isUTC) {\n\t\t\t\tmom._d = moment.utc(mom._a)._d;\n\t\t\t\tmom.utc().add(zone.parse(mom), 'minutes');\n\t\t\t}\n\t\t\tmom._z = zone;\n\t\t}\n\t\tif (mom._z) {\n\t\t\toffset = mom._z.utcOffset(mom);\n\t\t\tif (Math.abs(offset) < 16) {\n\t\t\t\toffset = offset / 60;\n\t\t\t}\n\t\t\tif (mom.utcOffset !== undefined) {\n\t\t\t\tvar z = mom._z;\n\t\t\t\tmom.utcOffset(-offset, keepTime);\n\t\t\t\tmom._z = z;\n\t\t\t} else {\n\t\t\t\tmom.zone(offset, keepTime);\n\t\t\t}\n\t\t}\n\t};\n\n\tfn.tz = function (name, keepTime) {\n\t\tif (name) {\n\t\t\tif (typeof name !== 'string') {\n\t\t\t\tthrow new Error('Time zone name must be a string, got ' + name + ' [' + typeof name + ']');\n\t\t\t}\n\t\t\tthis._z = getZone(name);\n\t\t\tif (this._z) {\n\t\t\t\tmoment.updateOffset(this, keepTime);\n\t\t\t} else {\n\t\t\t\tlogError(\"Moment Timezone has no data for \" + name + \". See http://momentjs.com/timezone/docs/#/data-loading/.\");\n\t\t\t}\n\t\t\treturn this;\n\t\t}\n\t\tif (this._z) { return this._z.name; }\n\t};\n\n\tfunction abbrWrap (old) {\n\t\treturn function () {\n\t\t\tif (this._z) { return this._z.abbr(this); }\n\t\t\treturn old.call(this);\n\t\t};\n\t}\n\n\tfunction resetZoneWrap (old) {\n\t\treturn function () {\n\t\t\tthis._z = null;\n\t\t\treturn old.apply(this, arguments);\n\t\t};\n\t}\n\n\tfunction resetZoneWrap2 (old) {\n\t\treturn function () {\n\t\t\tif (arguments.length > 0) this._z = null;\n\t\t\treturn old.apply(this, arguments);\n\t\t};\n\t}\n\n\tfn.zoneName = abbrWrap(fn.zoneName);\n\tfn.zoneAbbr = abbrWrap(fn.zoneAbbr);\n\tfn.utc = resetZoneWrap(fn.utc);\n\tfn.local = resetZoneWrap(fn.local);\n\tfn.utcOffset = resetZoneWrap2(fn.utcOffset);\n\n\tmoment.tz.setDefault = function(name) {\n\t\tif (major < 2 || (major === 2 && minor < 9)) {\n\t\t\tlogError('Moment Timezone setDefault() requires Moment.js >= 2.9.0. You are using Moment.js ' + moment.version + '.');\n\t\t}\n\t\tmoment.defaultZone = name ? getZone(name) : null;\n\t\treturn moment;\n\t};\n\n\t// Cloning a moment should include the _z property.\n\tvar momentProperties = moment.momentProperties;\n\tif (Object.prototype.toString.call(momentProperties) === '[object Array]') {\n\t\t// moment 2.8.1+\n\t\tmomentProperties.push('_z');\n\t\tmomentProperties.push('_a');\n\t} else if (momentProperties) {\n\t\t// moment 2.7.0\n\t\tmomentProperties._z = null;\n\t}\n\n\t// INJECT DATA\n\n\treturn moment;\n}));\n","/*\nobject-assign\n(c) Sindre Sorhus\n@license MIT\n*/\n\n'use strict';\n/* eslint-disable no-unused-vars */\nvar getOwnPropertySymbols = Object.getOwnPropertySymbols;\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\nvar propIsEnumerable = Object.prototype.propertyIsEnumerable;\n\nfunction toObject(val) {\n\tif (val === null || val === undefined) {\n\t\tthrow new TypeError('Object.assign cannot be called with null or undefined');\n\t}\n\n\treturn Object(val);\n}\n\nfunction shouldUseNative() {\n\ttry {\n\t\tif (!Object.assign) {\n\t\t\treturn false;\n\t\t}\n\n\t\t// Detect buggy property enumeration order in older V8 versions.\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=4118\n\t\tvar test1 = new String('abc'); // eslint-disable-line no-new-wrappers\n\t\ttest1[5] = 'de';\n\t\tif (Object.getOwnPropertyNames(test1)[0] === '5') {\n\t\t\treturn false;\n\t\t}\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=3056\n\t\tvar test2 = {};\n\t\tfor (var i = 0; i < 10; i++) {\n\t\t\ttest2['_' + String.fromCharCode(i)] = i;\n\t\t}\n\t\tvar order2 = Object.getOwnPropertyNames(test2).map(function (n) {\n\t\t\treturn test2[n];\n\t\t});\n\t\tif (order2.join('') !== '0123456789') {\n\t\t\treturn false;\n\t\t}\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=3056\n\t\tvar test3 = {};\n\t\t'abcdefghijklmnopqrst'.split('').forEach(function (letter) {\n\t\t\ttest3[letter] = letter;\n\t\t});\n\t\tif (Object.keys(Object.assign({}, test3)).join('') !==\n\t\t\t\t'abcdefghijklmnopqrst') {\n\t\t\treturn false;\n\t\t}\n\n\t\treturn true;\n\t} catch (err) {\n\t\t// We don't expect any of the above to throw, but better to be safe.\n\t\treturn false;\n\t}\n}\n\nmodule.exports = shouldUseNative() ? Object.assign : function (target, source) {\n\tvar from;\n\tvar to = toObject(target);\n\tvar symbols;\n\n\tfor (var s = 1; s < arguments.length; s++) {\n\t\tfrom = Object(arguments[s]);\n\n\t\tfor (var key in from) {\n\t\t\tif (hasOwnProperty.call(from, key)) {\n\t\t\t\tto[key] = from[key];\n\t\t\t}\n\t\t}\n\n\t\tif (getOwnPropertySymbols) {\n\t\t\tsymbols = getOwnPropertySymbols(from);\n\t\t\tfor (var i = 0; i < symbols.length; i++) {\n\t\t\t\tif (propIsEnumerable.call(from, symbols[i])) {\n\t\t\t\t\tto[symbols[i]] = from[symbols[i]];\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn to;\n};\n","/* @license\nPapa Parse\nv5.3.0\nhttps://github.com/mholt/PapaParse\nLicense: MIT\n*/\n!function(e,t){\"function\"==typeof define&&define.amd?define([],t):\"object\"==typeof module&&\"undefined\"!=typeof exports?module.exports=t():e.Papa=t()}(this,function s(){\"use strict\";var f=\"undefined\"!=typeof self?self:\"undefined\"!=typeof window?window:void 0!==f?f:{};var n=!f.document&&!!f.postMessage,o=n&&/blob:/i.test((f.location||{}).protocol),a={},h=0,b={parse:function(e,t){var i=(t=t||{}).dynamicTyping||!1;U(i)&&(t.dynamicTypingFunction=i,i={});if(t.dynamicTyping=i,t.transform=!!U(t.transform)&&t.transform,t.worker&&b.WORKERS_SUPPORTED){var r=function(){if(!b.WORKERS_SUPPORTED)return!1;var e=(i=f.URL||f.webkitURL||null,r=s.toString(),b.BLOB_URL||(b.BLOB_URL=i.createObjectURL(new Blob([\"(\",r,\")();\"],{type:\"text/javascript\"})))),t=new f.Worker(e);var i,r;return t.onmessage=m,t.id=h++,a[t.id]=t}();return r.userStep=t.step,r.userChunk=t.chunk,r.userComplete=t.complete,r.userError=t.error,t.step=U(t.step),t.chunk=U(t.chunk),t.complete=U(t.complete),t.error=U(t.error),delete t.worker,void r.postMessage({input:e,config:t,workerId:r.id})}var n=null;b.NODE_STREAM_INPUT,\"string\"==typeof e?n=t.download?new l(t):new p(t):!0===e.readable&&U(e.read)&&U(e.on)?n=new g(t):(f.File&&e instanceof File||e instanceof Object)&&(n=new c(t));return n.stream(e)},unparse:function(e,t){var n=!1,m=!0,_=\",\",v=\"\\r\\n\",s='\"',a=s+s,i=!1,r=null,o=!1;!function(){if(\"object\"!=typeof t)return;\"string\"!=typeof t.delimiter||b.BAD_DELIMITERS.filter(function(e){return-1!==t.delimiter.indexOf(e)}).length||(_=t.delimiter);(\"boolean\"==typeof t.quotes||\"function\"==typeof t.quotes||Array.isArray(t.quotes))&&(n=t.quotes);\"boolean\"!=typeof t.skipEmptyLines&&\"string\"!=typeof t.skipEmptyLines||(i=t.skipEmptyLines);\"string\"==typeof t.newline&&(v=t.newline);\"string\"==typeof t.quoteChar&&(s=t.quoteChar);\"boolean\"==typeof t.header&&(m=t.header);if(Array.isArray(t.columns)){if(0===t.columns.length)throw new Error(\"Option columns is empty\");r=t.columns}void 0!==t.escapeChar&&(a=t.escapeChar+s);\"boolean\"==typeof t.escapeFormulae&&(o=t.escapeFormulae)}();var h=new RegExp(q(s),\"g\");\"string\"==typeof e&&(e=JSON.parse(e));if(Array.isArray(e)){if(!e.length||Array.isArray(e[0]))return f(null,e,i);if(\"object\"==typeof e[0])return f(r||u(e[0]),e,i)}else if(\"object\"==typeof e)return\"string\"==typeof e.data&&(e.data=JSON.parse(e.data)),Array.isArray(e.data)&&(e.fields||(e.fields=e.meta&&e.meta.fields),e.fields||(e.fields=Array.isArray(e.data[0])?e.fields:u(e.data[0])),Array.isArray(e.data[0])||\"object\"==typeof e.data[0]||(e.data=[e.data])),f(e.fields||[],e.data||[],i);throw new Error(\"Unable to serialize unrecognized input\");function u(e){if(\"object\"!=typeof e)return[];var t=[];for(var i in e)t.push(i);return t}function f(e,t,i){var r=\"\";\"string\"==typeof e&&(e=JSON.parse(e)),\"string\"==typeof t&&(t=JSON.parse(t));var n=Array.isArray(e)&&0=this._config.preview;if(o)f.postMessage({results:n,workerId:b.WORKER_ID,finished:a});else if(U(this._config.chunk)&&!t){if(this._config.chunk(n,this._handle),this._handle.paused()||this._handle.aborted())return void(this._halted=!0);n=void 0,this._completeResults=void 0}return this._config.step||this._config.chunk||(this._completeResults.data=this._completeResults.data.concat(n.data),this._completeResults.errors=this._completeResults.errors.concat(n.errors),this._completeResults.meta=n.meta),this._completed||!a||!U(this._config.complete)||n&&n.meta.aborted||(this._config.complete(this._completeResults,this._input),this._completed=!0),a||n&&n.meta.paused||this._nextChunk(),n}this._halted=!0},this._sendError=function(e){U(this._config.error)?this._config.error(e):o&&this._config.error&&f.postMessage({workerId:b.WORKER_ID,error:e,finished:!1})}}function l(e){var r;(e=e||{}).chunkSize||(e.chunkSize=b.RemoteChunkSize),u.call(this,e),this._nextChunk=n?function(){this._readChunk(),this._chunkLoaded()}:function(){this._readChunk()},this.stream=function(e){this._input=e,this._nextChunk()},this._readChunk=function(){if(this._finished)this._chunkLoaded();else{if(r=new XMLHttpRequest,this._config.withCredentials&&(r.withCredentials=this._config.withCredentials),n||(r.onload=y(this._chunkLoaded,this),r.onerror=y(this._chunkError,this)),r.open(this._config.downloadRequestBody?\"POST\":\"GET\",this._input,!n),this._config.downloadRequestHeaders){var e=this._config.downloadRequestHeaders;for(var t in e)r.setRequestHeader(t,e[t])}if(this._config.chunkSize){var i=this._start+this._config.chunkSize-1;r.setRequestHeader(\"Range\",\"bytes=\"+this._start+\"-\"+i)}try{r.send(this._config.downloadRequestBody)}catch(e){this._chunkError(e.message)}n&&0===r.status&&this._chunkError()}},this._chunkLoaded=function(){4===r.readyState&&(r.status<200||400<=r.status?this._chunkError():(this._start+=this._config.chunkSize?this._config.chunkSize:r.responseText.length,this._finished=!this._config.chunkSize||this._start>=function(e){var t=e.getResponseHeader(\"Content-Range\");if(null===t)return-1;return parseInt(t.substring(t.lastIndexOf(\"/\")+1))}(r),this.parseChunk(r.responseText)))},this._chunkError=function(e){var t=r.statusText||e;this._sendError(new Error(t))}}function c(e){var r,n;(e=e||{}).chunkSize||(e.chunkSize=b.LocalChunkSize),u.call(this,e);var s=\"undefined\"!=typeof FileReader;this.stream=function(e){this._input=e,n=e.slice||e.webkitSlice||e.mozSlice,s?((r=new FileReader).onload=y(this._chunkLoaded,this),r.onerror=y(this._chunkError,this)):r=new FileReaderSync,this._nextChunk()},this._nextChunk=function(){this._finished||this._config.preview&&!(this._rowCount=this._input.size,this.parseChunk(e.target.result)},this._chunkError=function(){this._sendError(r.error)}}function p(e){var i;u.call(this,e=e||{}),this.stream=function(e){return i=e,this._nextChunk()},this._nextChunk=function(){if(!this._finished){var e,t=this._config.chunkSize;return t?(e=i.substring(0,t),i=i.substring(t)):(e=i,i=\"\"),this._finished=!i,this.parseChunk(e)}}}function g(e){u.call(this,e=e||{});var t=[],i=!0,r=!1;this.pause=function(){u.prototype.pause.apply(this,arguments),this._input.pause()},this.resume=function(){u.prototype.resume.apply(this,arguments),this._input.resume()},this.stream=function(e){this._input=e,this._input.on(\"data\",this._streamData),this._input.on(\"end\",this._streamEnd),this._input.on(\"error\",this._streamError)},this._checkIsFinished=function(){r&&1===t.length&&(this._finished=!0)},this._nextChunk=function(){this._checkIsFinished(),t.length?this.parseChunk(t.shift()):i=!0},this._streamData=y(function(e){try{t.push(\"string\"==typeof e?e:e.toString(this._config.encoding)),i&&(i=!1,this._checkIsFinished(),this.parseChunk(t.shift()))}catch(e){this._streamError(e)}},this),this._streamError=y(function(e){this._streamCleanUp(),this._sendError(e)},this),this._streamEnd=y(function(){this._streamCleanUp(),r=!0,this._streamData(\"\")},this),this._streamCleanUp=y(function(){this._input.removeListener(\"data\",this._streamData),this._input.removeListener(\"end\",this._streamEnd),this._input.removeListener(\"error\",this._streamError)},this)}function i(_){var a,o,h,r=Math.pow(2,53),n=-r,s=/^\\s*-?(\\d+\\.?|\\.\\d+|\\d+\\.\\d+)(e[-+]?\\d+)?\\s*$/,u=/(\\d{4}-[01]\\d-[0-3]\\dT[0-2]\\d:[0-5]\\d:[0-5]\\d\\.\\d+([+-][0-2]\\d:[0-5]\\d|Z))|(\\d{4}-[01]\\d-[0-3]\\dT[0-2]\\d:[0-5]\\d:[0-5]\\d([+-][0-2]\\d:[0-5]\\d|Z))|(\\d{4}-[01]\\d-[0-3]\\dT[0-2]\\d:[0-5]\\d([+-][0-2]\\d:[0-5]\\d|Z))/,t=this,i=0,f=0,d=!1,e=!1,l=[],c={data:[],errors:[],meta:{}};if(U(_.step)){var p=_.step;_.step=function(e){if(c=e,m())g();else{if(g(),0===c.data.length)return;i+=e.data.length,_.preview&&i>_.preview?o.abort():(c.data=c.data[0],p(c,t))}}}function v(e){return\"greedy\"===_.skipEmptyLines?\"\"===e.join(\"\").trim():1===e.length&&0===e[0].length}function g(){if(c&&h&&(k(\"Delimiter\",\"UndetectableDelimiter\",\"Unable to auto-detect delimiting character; defaulted to '\"+b.DefaultDelimiter+\"'\"),h=!1),_.skipEmptyLines)for(var e=0;e=l.length?\"__parsed_extra\":l[i]),_.transform&&(s=_.transform(s,n)),s=y(n,s),\"__parsed_extra\"===n?(r[n]=r[n]||[],r[n].push(s)):r[n]=s}return _.header&&(i>l.length?k(\"FieldMismatch\",\"TooManyFields\",\"Too many fields: expected \"+l.length+\" fields but parsed \"+i,f+t):i=r.length/2?\"\\r\\n\":\"\\r\"}(e,r)),h=!1,_.delimiter)U(_.delimiter)&&(_.delimiter=_.delimiter(e),c.meta.delimiter=_.delimiter);else{var n=function(e,t,i,r,n){var s,a,o,h;n=n||[\",\",\"\\t\",\"|\",\";\",b.RECORD_SEP,b.UNIT_SEP];for(var u=0;u=L)return R(!0)}else for(_=M,M++;;){if(-1===(_=a.indexOf(O,_+1)))return i||u.push({type:\"Quotes\",code:\"MissingQuotes\",message:\"Quoted field unterminated\",row:h.length,index:M}),E();if(_===r-1)return E(a.substring(M,_).replace(m,O));if(O!==z||a[_+1]!==z){if(O===z||0===_||a[_-1]!==z){-1!==p&&p<_+1&&(p=a.indexOf(D,_+1)),-1!==g&&g<_+1&&(g=a.indexOf(I,_+1));var y=w(-1===g?p:Math.min(p,g));if(a[_+1+y]===D){f.push(a.substring(M,_).replace(m,O)),a[M=_+1+y+e]!==O&&(_=a.indexOf(O,M)),p=a.indexOf(D,M),g=a.indexOf(I,M);break}var k=w(g);if(a.substring(_+1+k,_+1+k+n)===I){if(f.push(a.substring(M,_).replace(m,O)),C(_+1+k+n),p=a.indexOf(D,M),_=a.indexOf(O,M),o&&(S(),j))return R();if(L&&h.length>=L)return R(!0);break}u.push({type:\"Quotes\",code:\"InvalidQuotes\",message:\"Trailing quote on quoted field is malformed\",row:h.length,index:M}),_++}}else _++}return E();function b(e){h.push(e),d=M}function w(e){var t=0;if(-1!==e){var i=a.substring(_+1,e);i&&\"\"===i.trim()&&(t=i.length)}return t}function E(e){return i||(void 0===e&&(e=a.substring(M)),f.push(e),M=r,b(f),o&&S()),R()}function C(e){M=e,b(f),f=[],g=a.indexOf(I,M)}function R(e){return{data:h,errors:u,meta:{delimiter:D,linebreak:I,aborted:j,truncated:!!e,cursor:d+(t||0)}}}function S(){A(R()),h=[],u=[]}function x(e,t,i){var r={nextDelim:void 0,quoteSearch:void 0},n=a.indexOf(O,t+1);if(t [\"/\", \"test\", \"\\d+\", undefined, \"?\", undefined]\n // \"/route(\\\\d+)\" => [undefined, undefined, undefined, \"\\d+\", undefined, undefined]\n // \"/*\" => [\"/\", undefined, undefined, undefined, undefined, \"*\"]\n '([\\\\/.])?(?:(?:\\\\:(\\\\w+)(?:\\\\(((?:\\\\\\\\.|[^\\\\\\\\()])+)\\\\))?|\\\\(((?:\\\\\\\\.|[^\\\\\\\\()])+)\\\\))([+*?])?|(\\\\*))'\n].join('|'), 'g')\n\n/**\n * Parse a string for the raw tokens.\n *\n * @param {string} str\n * @param {Object=} options\n * @return {!Array}\n */\nfunction parse (str, options) {\n var tokens = []\n var key = 0\n var index = 0\n var path = ''\n var defaultDelimiter = options && options.delimiter || '/'\n var res\n\n while ((res = PATH_REGEXP.exec(str)) != null) {\n var m = res[0]\n var escaped = res[1]\n var offset = res.index\n path += str.slice(index, offset)\n index = offset + m.length\n\n // Ignore already escaped sequences.\n if (escaped) {\n path += escaped[1]\n continue\n }\n\n var next = str[index]\n var prefix = res[2]\n var name = res[3]\n var capture = res[4]\n var group = res[5]\n var modifier = res[6]\n var asterisk = res[7]\n\n // Push the current path onto the tokens.\n if (path) {\n tokens.push(path)\n path = ''\n }\n\n var partial = prefix != null && next != null && next !== prefix\n var repeat = modifier === '+' || modifier === '*'\n var optional = modifier === '?' || modifier === '*'\n var delimiter = res[2] || defaultDelimiter\n var pattern = capture || group\n\n tokens.push({\n name: name || key++,\n prefix: prefix || '',\n delimiter: delimiter,\n optional: optional,\n repeat: repeat,\n partial: partial,\n asterisk: !!asterisk,\n pattern: pattern ? escapeGroup(pattern) : (asterisk ? '.*' : '[^' + escapeString(delimiter) + ']+?')\n })\n }\n\n // Match any characters still remaining.\n if (index < str.length) {\n path += str.substr(index)\n }\n\n // If the path exists, push it onto the end.\n if (path) {\n tokens.push(path)\n }\n\n return tokens\n}\n\n/**\n * Compile a string to a template function for the path.\n *\n * @param {string} str\n * @param {Object=} options\n * @return {!function(Object=, Object=)}\n */\nfunction compile (str, options) {\n return tokensToFunction(parse(str, options), options)\n}\n\n/**\n * Prettier encoding of URI path segments.\n *\n * @param {string}\n * @return {string}\n */\nfunction encodeURIComponentPretty (str) {\n return encodeURI(str).replace(/[\\/?#]/g, function (c) {\n return '%' + c.charCodeAt(0).toString(16).toUpperCase()\n })\n}\n\n/**\n * Encode the asterisk parameter. Similar to `pretty`, but allows slashes.\n *\n * @param {string}\n * @return {string}\n */\nfunction encodeAsterisk (str) {\n return encodeURI(str).replace(/[?#]/g, function (c) {\n return '%' + c.charCodeAt(0).toString(16).toUpperCase()\n })\n}\n\n/**\n * Expose a method for transforming tokens into the path function.\n */\nfunction tokensToFunction (tokens, options) {\n // Compile all the tokens into regexps.\n var matches = new Array(tokens.length)\n\n // Compile all the patterns before compilation.\n for (var i = 0; i < tokens.length; i++) {\n if (typeof tokens[i] === 'object') {\n matches[i] = new RegExp('^(?:' + tokens[i].pattern + ')$', flags(options))\n }\n }\n\n return function (obj, opts) {\n var path = ''\n var data = obj || {}\n var options = opts || {}\n var encode = options.pretty ? encodeURIComponentPretty : encodeURIComponent\n\n for (var i = 0; i < tokens.length; i++) {\n var token = tokens[i]\n\n if (typeof token === 'string') {\n path += token\n\n continue\n }\n\n var value = data[token.name]\n var segment\n\n if (value == null) {\n if (token.optional) {\n // Prepend partial segment prefixes.\n if (token.partial) {\n path += token.prefix\n }\n\n continue\n } else {\n throw new TypeError('Expected \"' + token.name + '\" to be defined')\n }\n }\n\n if (isarray(value)) {\n if (!token.repeat) {\n throw new TypeError('Expected \"' + token.name + '\" to not repeat, but received `' + JSON.stringify(value) + '`')\n }\n\n if (value.length === 0) {\n if (token.optional) {\n continue\n } else {\n throw new TypeError('Expected \"' + token.name + '\" to not be empty')\n }\n }\n\n for (var j = 0; j < value.length; j++) {\n segment = encode(value[j])\n\n if (!matches[i].test(segment)) {\n throw new TypeError('Expected all \"' + token.name + '\" to match \"' + token.pattern + '\", but received `' + JSON.stringify(segment) + '`')\n }\n\n path += (j === 0 ? token.prefix : token.delimiter) + segment\n }\n\n continue\n }\n\n segment = token.asterisk ? encodeAsterisk(value) : encode(value)\n\n if (!matches[i].test(segment)) {\n throw new TypeError('Expected \"' + token.name + '\" to match \"' + token.pattern + '\", but received \"' + segment + '\"')\n }\n\n path += token.prefix + segment\n }\n\n return path\n }\n}\n\n/**\n * Escape a regular expression string.\n *\n * @param {string} str\n * @return {string}\n */\nfunction escapeString (str) {\n return str.replace(/([.+*?=^!:${}()[\\]|\\/\\\\])/g, '\\\\$1')\n}\n\n/**\n * Escape the capturing group by escaping special characters and meaning.\n *\n * @param {string} group\n * @return {string}\n */\nfunction escapeGroup (group) {\n return group.replace(/([=!:$\\/()])/g, '\\\\$1')\n}\n\n/**\n * Attach the keys as a property of the regexp.\n *\n * @param {!RegExp} re\n * @param {Array} keys\n * @return {!RegExp}\n */\nfunction attachKeys (re, keys) {\n re.keys = keys\n return re\n}\n\n/**\n * Get the flags for a regexp from the options.\n *\n * @param {Object} options\n * @return {string}\n */\nfunction flags (options) {\n return options && options.sensitive ? '' : 'i'\n}\n\n/**\n * Pull out keys from a regexp.\n *\n * @param {!RegExp} path\n * @param {!Array} keys\n * @return {!RegExp}\n */\nfunction regexpToRegexp (path, keys) {\n // Use a negative lookahead to match only capturing groups.\n var groups = path.source.match(/\\((?!\\?)/g)\n\n if (groups) {\n for (var i = 0; i < groups.length; i++) {\n keys.push({\n name: i,\n prefix: null,\n delimiter: null,\n optional: false,\n repeat: false,\n partial: false,\n asterisk: false,\n pattern: null\n })\n }\n }\n\n return attachKeys(path, keys)\n}\n\n/**\n * Transform an array into a regexp.\n *\n * @param {!Array} path\n * @param {Array} keys\n * @param {!Object} options\n * @return {!RegExp}\n */\nfunction arrayToRegexp (path, keys, options) {\n var parts = []\n\n for (var i = 0; i < path.length; i++) {\n parts.push(pathToRegexp(path[i], keys, options).source)\n }\n\n var regexp = new RegExp('(?:' + parts.join('|') + ')', flags(options))\n\n return attachKeys(regexp, keys)\n}\n\n/**\n * Create a path regexp from string input.\n *\n * @param {string} path\n * @param {!Array} keys\n * @param {!Object} options\n * @return {!RegExp}\n */\nfunction stringToRegexp (path, keys, options) {\n return tokensToRegExp(parse(path, options), keys, options)\n}\n\n/**\n * Expose a function for taking tokens and returning a RegExp.\n *\n * @param {!Array} tokens\n * @param {(Array|Object)=} keys\n * @param {Object=} options\n * @return {!RegExp}\n */\nfunction tokensToRegExp (tokens, keys, options) {\n if (!isarray(keys)) {\n options = /** @type {!Object} */ (keys || options)\n keys = []\n }\n\n options = options || {}\n\n var strict = options.strict\n var end = options.end !== false\n var route = ''\n\n // Iterate over the tokens and create our regexp string.\n for (var i = 0; i < tokens.length; i++) {\n var token = tokens[i]\n\n if (typeof token === 'string') {\n route += escapeString(token)\n } else {\n var prefix = escapeString(token.prefix)\n var capture = '(?:' + token.pattern + ')'\n\n keys.push(token)\n\n if (token.repeat) {\n capture += '(?:' + prefix + capture + ')*'\n }\n\n if (token.optional) {\n if (!token.partial) {\n capture = '(?:' + prefix + '(' + capture + '))?'\n } else {\n capture = prefix + '(' + capture + ')?'\n }\n } else {\n capture = prefix + '(' + capture + ')'\n }\n\n route += capture\n }\n }\n\n var delimiter = escapeString(options.delimiter || '/')\n var endsWithDelimiter = route.slice(-delimiter.length) === delimiter\n\n // In non-strict mode we allow a slash at the end of match. If the path to\n // match already ends with a slash, we remove it for consistency. The slash\n // is valid at the end of a path match, not in the middle. This is important\n // in non-ending mode, where \"/test/\" shouldn't match \"/test//route\".\n if (!strict) {\n route = (endsWithDelimiter ? route.slice(0, -delimiter.length) : route) + '(?:' + delimiter + '(?=$))?'\n }\n\n if (end) {\n route += '$'\n } else {\n // In non-ending mode, we need the capturing groups to match as much as\n // possible by using a positive lookahead to the end or next path segment.\n route += strict && endsWithDelimiter ? '' : '(?=' + delimiter + '|$)'\n }\n\n return attachKeys(new RegExp('^' + route, flags(options)), keys)\n}\n\n/**\n * Normalize the given path string, returning a regular expression.\n *\n * An empty array can be passed in for the keys, which will hold the\n * placeholder key descriptions. For example, using `/user/:id`, `keys` will\n * contain `[{ name: 'id', delimiter: '/', optional: false, repeat: false }]`.\n *\n * @param {(string|RegExp|Array)} path\n * @param {(Array|Object)=} keys\n * @param {Object=} options\n * @return {!RegExp}\n */\nfunction pathToRegexp (path, keys, options) {\n if (!isarray(keys)) {\n options = /** @type {!Object} */ (keys || options)\n keys = []\n }\n\n options = options || {}\n\n if (path instanceof RegExp) {\n return regexpToRegexp(path, /** @type {!Array} */ (keys))\n }\n\n if (isarray(path)) {\n return arrayToRegexp(/** @type {!Array} */ (path), /** @type {!Array} */ (keys), options)\n }\n\n return stringToRegexp(/** @type {string} */ (path), /** @type {!Array} */ (keys), options)\n}\n","// shim for using process in browser\nvar process = module.exports = {};\n\n// cached from whatever global is present so that test runners that stub it\n// don't break things. But we need to wrap it in a try catch in case it is\n// wrapped in strict mode code which doesn't define any globals. It's inside a\n// function because try/catches deoptimize in certain engines.\n\nvar cachedSetTimeout;\nvar cachedClearTimeout;\n\nfunction defaultSetTimout() {\n throw new Error('setTimeout has not been defined');\n}\nfunction defaultClearTimeout () {\n throw new Error('clearTimeout has not been defined');\n}\n(function () {\n try {\n if (typeof setTimeout === 'function') {\n cachedSetTimeout = setTimeout;\n } else {\n cachedSetTimeout = defaultSetTimout;\n }\n } catch (e) {\n cachedSetTimeout = defaultSetTimout;\n }\n try {\n if (typeof clearTimeout === 'function') {\n cachedClearTimeout = clearTimeout;\n } else {\n cachedClearTimeout = defaultClearTimeout;\n }\n } catch (e) {\n cachedClearTimeout = defaultClearTimeout;\n }\n} ())\nfunction runTimeout(fun) {\n if (cachedSetTimeout === setTimeout) {\n //normal enviroments in sane situations\n return setTimeout(fun, 0);\n }\n // if setTimeout wasn't available but was latter defined\n if ((cachedSetTimeout === defaultSetTimout || !cachedSetTimeout) && setTimeout) {\n cachedSetTimeout = setTimeout;\n return setTimeout(fun, 0);\n }\n try {\n // when when somebody has screwed with setTimeout but no I.E. maddness\n return cachedSetTimeout(fun, 0);\n } catch(e){\n try {\n // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally\n return cachedSetTimeout.call(null, fun, 0);\n } catch(e){\n // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error\n return cachedSetTimeout.call(this, fun, 0);\n }\n }\n\n\n}\nfunction runClearTimeout(marker) {\n if (cachedClearTimeout === clearTimeout) {\n //normal enviroments in sane situations\n return clearTimeout(marker);\n }\n // if clearTimeout wasn't available but was latter defined\n if ((cachedClearTimeout === defaultClearTimeout || !cachedClearTimeout) && clearTimeout) {\n cachedClearTimeout = clearTimeout;\n return clearTimeout(marker);\n }\n try {\n // when when somebody has screwed with setTimeout but no I.E. maddness\n return cachedClearTimeout(marker);\n } catch (e){\n try {\n // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally\n return cachedClearTimeout.call(null, marker);\n } catch (e){\n // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error.\n // Some versions of I.E. have different rules for clearTimeout vs setTimeout\n return cachedClearTimeout.call(this, marker);\n }\n }\n\n\n\n}\nvar queue = [];\nvar draining = false;\nvar currentQueue;\nvar queueIndex = -1;\n\nfunction cleanUpNextTick() {\n if (!draining || !currentQueue) {\n return;\n }\n draining = false;\n if (currentQueue.length) {\n queue = currentQueue.concat(queue);\n } else {\n queueIndex = -1;\n }\n if (queue.length) {\n drainQueue();\n }\n}\n\nfunction drainQueue() {\n if (draining) {\n return;\n }\n var timeout = runTimeout(cleanUpNextTick);\n draining = true;\n\n var len = queue.length;\n while(len) {\n currentQueue = queue;\n queue = [];\n while (++queueIndex < len) {\n if (currentQueue) {\n currentQueue[queueIndex].run();\n }\n }\n queueIndex = -1;\n len = queue.length;\n }\n currentQueue = null;\n draining = false;\n runClearTimeout(timeout);\n}\n\nprocess.nextTick = function (fun) {\n var args = new Array(arguments.length - 1);\n if (arguments.length > 1) {\n for (var i = 1; i < arguments.length; i++) {\n args[i - 1] = arguments[i];\n }\n }\n queue.push(new Item(fun, args));\n if (queue.length === 1 && !draining) {\n runTimeout(drainQueue);\n }\n};\n\n// v8 likes predictible objects\nfunction Item(fun, array) {\n this.fun = fun;\n this.array = array;\n}\nItem.prototype.run = function () {\n this.fun.apply(null, this.array);\n};\nprocess.title = 'browser';\nprocess.browser = true;\nprocess.env = {};\nprocess.argv = [];\nprocess.version = ''; // empty string to avoid regexp issues\nprocess.versions = {};\n\nfunction noop() {}\n\nprocess.on = noop;\nprocess.addListener = noop;\nprocess.once = noop;\nprocess.off = noop;\nprocess.removeListener = noop;\nprocess.removeAllListeners = noop;\nprocess.emit = noop;\nprocess.prependListener = noop;\nprocess.prependOnceListener = noop;\n\nprocess.listeners = function (name) { return [] }\n\nprocess.binding = function (name) {\n throw new Error('process.binding is not supported');\n};\n\nprocess.cwd = function () { return '/' };\nprocess.chdir = function (dir) {\n throw new Error('process.chdir is not supported');\n};\nprocess.umask = function() { return 0; };\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar ReactPropTypesSecret = require('./lib/ReactPropTypesSecret');\n\nfunction emptyFunction() {}\nfunction emptyFunctionWithReset() {}\nemptyFunctionWithReset.resetWarningCache = emptyFunction;\n\nmodule.exports = function() {\n function shim(props, propName, componentName, location, propFullName, secret) {\n if (secret === ReactPropTypesSecret) {\n // It is still safe when called from React.\n return;\n }\n var err = new Error(\n 'Calling PropTypes validators directly is not supported by the `prop-types` package. ' +\n 'Use PropTypes.checkPropTypes() to call them. ' +\n 'Read more at http://fb.me/use-check-prop-types'\n );\n err.name = 'Invariant Violation';\n throw err;\n };\n shim.isRequired = shim;\n function getShim() {\n return shim;\n };\n // Important!\n // Keep this list in sync with production version in `./factoryWithTypeCheckers.js`.\n var ReactPropTypes = {\n array: shim,\n bigint: shim,\n bool: shim,\n func: shim,\n number: shim,\n object: shim,\n string: shim,\n symbol: shim,\n\n any: shim,\n arrayOf: getShim,\n element: shim,\n elementType: shim,\n instanceOf: getShim,\n node: shim,\n objectOf: getShim,\n oneOf: getShim,\n oneOfType: getShim,\n shape: getShim,\n exact: getShim,\n\n checkPropTypes: emptyFunctionWithReset,\n resetWarningCache: emptyFunction\n };\n\n ReactPropTypes.PropTypes = ReactPropTypes;\n\n return ReactPropTypes;\n};\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nif (process.env.NODE_ENV !== 'production') {\n var ReactIs = require('react-is');\n\n // By explicitly using `prop-types` you are opting into new development behavior.\n // http://fb.me/prop-types-in-prod\n var throwOnDirectAccess = true;\n module.exports = require('./factoryWithTypeCheckers')(ReactIs.isElement, throwOnDirectAccess);\n} else {\n // By explicitly using `prop-types` you are opting into new production behavior.\n // http://fb.me/prop-types-in-prod\n module.exports = require('./factoryWithThrowingShims')();\n}\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar ReactPropTypesSecret = 'SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED';\n\nmodule.exports = ReactPropTypesSecret;\n","/**\n * Based on Kendo UI Core expression code \n */\n'use strict'\n\nfunction Cache(maxSize) {\n this._maxSize = maxSize\n this.clear()\n}\nCache.prototype.clear = function () {\n this._size = 0\n this._values = Object.create(null)\n}\nCache.prototype.get = function (key) {\n return this._values[key]\n}\nCache.prototype.set = function (key, value) {\n this._size >= this._maxSize && this.clear()\n if (!(key in this._values)) this._size++\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\n\nvar pathCache = new Cache(MAX_CACHE_SIZE),\n setCache = new Cache(MAX_CACHE_SIZE),\n getCache = new Cache(MAX_CACHE_SIZE)\n\nvar config\n\nmodule.exports = {\n Cache: Cache,\n\n split: split,\n\n normalizePath: normalizePath,\n\n setter: function (path) {\n var parts = normalizePath(path)\n\n return (\n setCache.get(path) ||\n setCache.set(path, function setter(obj, value) {\n var index = 0\n var len = parts.length\n var data = obj\n\n while (index < len - 1) {\n var part = parts[index]\n if (\n part === '__proto__' ||\n part === 'constructor' ||\n part === 'prototype'\n ) {\n return obj\n }\n\n data = data[parts[index++]]\n }\n data[parts[index]] = value\n })\n )\n },\n\n getter: function (path, safe) {\n var parts = normalizePath(path)\n return (\n getCache.get(path) ||\n getCache.set(path, function getter(data) {\n var index = 0,\n len = parts.length\n while (index < len) {\n if (data != null || !safe) data = data[parts[index++]]\n else return\n }\n return data\n })\n )\n },\n\n join: function (segments) {\n return segments.reduce(function (path, part) {\n return (\n path +\n (isQuoted(part) || DIGIT_REGEX.test(part)\n ? '[' + part + ']'\n : (path ? '.' : '') + part)\n )\n }, '')\n },\n\n forEach: function (path, cb, thisArg) {\n forEach(Array.isArray(path) ? path : split(path), cb, thisArg)\n },\n}\n\nfunction normalizePath(path) {\n return (\n pathCache.get(path) ||\n pathCache.set(\n path,\n split(path).map(function (part) {\n return part.replace(CLEAN_QUOTES_REGEX, '$2')\n })\n )\n )\n}\n\nfunction split(path) {\n return path.match(SPLIT_REGEX) || ['']\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\n iter.call(thisArg, part, isBracket, isArray, idx, parts)\n }\n }\n}\n\nfunction isQuoted(str) {\n return (\n typeof str === 'string' && str && [\"'\", '\"'].indexOf(str.charAt(0)) !== -1\n )\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}\n","/*! https://mths.be/punycode v1.3.2 by @mathias */\n;(function(root) {\n\n\t/** Detect free variables */\n\tvar freeExports = typeof exports == 'object' && exports &&\n\t\t!exports.nodeType && exports;\n\tvar freeModule = typeof module == 'object' && module &&\n\t\t!module.nodeType && module;\n\tvar freeGlobal = typeof global == 'object' && global;\n\tif (\n\t\tfreeGlobal.global === freeGlobal ||\n\t\tfreeGlobal.window === freeGlobal ||\n\t\tfreeGlobal.self === freeGlobal\n\t) {\n\t\troot = freeGlobal;\n\t}\n\n\t/**\n\t * The `punycode` object.\n\t * @name punycode\n\t * @type Object\n\t */\n\tvar punycode,\n\n\t/** Highest positive signed 32-bit float value */\n\tmaxInt = 2147483647, // aka. 0x7FFFFFFF or 2^31-1\n\n\t/** Bootstring parameters */\n\tbase = 36,\n\ttMin = 1,\n\ttMax = 26,\n\tskew = 38,\n\tdamp = 700,\n\tinitialBias = 72,\n\tinitialN = 128, // 0x80\n\tdelimiter = '-', // '\\x2D'\n\n\t/** Regular expressions */\n\tregexPunycode = /^xn--/,\n\tregexNonASCII = /[^\\x20-\\x7E]/, // unprintable ASCII chars + non-ASCII chars\n\tregexSeparators = /[\\x2E\\u3002\\uFF0E\\uFF61]/g, // RFC 3490 separators\n\n\t/** Error messages */\n\terrors = {\n\t\t'overflow': 'Overflow: input needs wider integers to process',\n\t\t'not-basic': 'Illegal input >= 0x80 (not a basic code point)',\n\t\t'invalid-input': 'Invalid input'\n\t},\n\n\t/** Convenience shortcuts */\n\tbaseMinusTMin = base - tMin,\n\tfloor = Math.floor,\n\tstringFromCharCode = String.fromCharCode,\n\n\t/** Temporary variable */\n\tkey;\n\n\t/*--------------------------------------------------------------------------*/\n\n\t/**\n\t * A generic error utility function.\n\t * @private\n\t * @param {String} type The error type.\n\t * @returns {Error} Throws a `RangeError` with the applicable error message.\n\t */\n\tfunction error(type) {\n\t\tthrow RangeError(errors[type]);\n\t}\n\n\t/**\n\t * A generic `Array#map` utility function.\n\t * @private\n\t * @param {Array} array The array to iterate over.\n\t * @param {Function} callback The function that gets called for every array\n\t * item.\n\t * @returns {Array} A new array of values returned by the callback function.\n\t */\n\tfunction map(array, fn) {\n\t\tvar length = array.length;\n\t\tvar result = [];\n\t\twhile (length--) {\n\t\t\tresult[length] = fn(array[length]);\n\t\t}\n\t\treturn result;\n\t}\n\n\t/**\n\t * A simple `Array#map`-like wrapper to work with domain name strings or email\n\t * addresses.\n\t * @private\n\t * @param {String} domain The domain name or email address.\n\t * @param {Function} callback The function that gets called for every\n\t * character.\n\t * @returns {Array} A new string of characters returned by the callback\n\t * function.\n\t */\n\tfunction mapDomain(string, fn) {\n\t\tvar parts = string.split('@');\n\t\tvar result = '';\n\t\tif (parts.length > 1) {\n\t\t\t// In email addresses, only the domain name should be punycoded. Leave\n\t\t\t// the local part (i.e. everything up to `@`) intact.\n\t\t\tresult = parts[0] + '@';\n\t\t\tstring = parts[1];\n\t\t}\n\t\t// Avoid `split(regex)` for IE8 compatibility. See #17.\n\t\tstring = string.replace(regexSeparators, '\\x2E');\n\t\tvar labels = string.split('.');\n\t\tvar encoded = map(labels, fn).join('.');\n\t\treturn result + encoded;\n\t}\n\n\t/**\n\t * Creates an array containing the numeric code points of each Unicode\n\t * character in the string. While JavaScript uses UCS-2 internally,\n\t * this function will convert a pair of surrogate halves (each of which\n\t * UCS-2 exposes as separate characters) into a single code point,\n\t * matching UTF-16.\n\t * @see `punycode.ucs2.encode`\n\t * @see \n\t * @memberOf punycode.ucs2\n\t * @name decode\n\t * @param {String} string The Unicode input string (UCS-2).\n\t * @returns {Array} The new array of code points.\n\t */\n\tfunction ucs2decode(string) {\n\t\tvar output = [],\n\t\t counter = 0,\n\t\t length = string.length,\n\t\t value,\n\t\t extra;\n\t\twhile (counter < length) {\n\t\t\tvalue = string.charCodeAt(counter++);\n\t\t\tif (value >= 0xD800 && value <= 0xDBFF && counter < length) {\n\t\t\t\t// high surrogate, and there is a next character\n\t\t\t\textra = string.charCodeAt(counter++);\n\t\t\t\tif ((extra & 0xFC00) == 0xDC00) { // low surrogate\n\t\t\t\t\toutput.push(((value & 0x3FF) << 10) + (extra & 0x3FF) + 0x10000);\n\t\t\t\t} else {\n\t\t\t\t\t// unmatched surrogate; only append this code unit, in case the next\n\t\t\t\t\t// code unit is the high surrogate of a surrogate pair\n\t\t\t\t\toutput.push(value);\n\t\t\t\t\tcounter--;\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\toutput.push(value);\n\t\t\t}\n\t\t}\n\t\treturn output;\n\t}\n\n\t/**\n\t * Creates a string based on an array of numeric code points.\n\t * @see `punycode.ucs2.decode`\n\t * @memberOf punycode.ucs2\n\t * @name encode\n\t * @param {Array} codePoints The array of numeric code points.\n\t * @returns {String} The new Unicode string (UCS-2).\n\t */\n\tfunction ucs2encode(array) {\n\t\treturn map(array, function(value) {\n\t\t\tvar output = '';\n\t\t\tif (value > 0xFFFF) {\n\t\t\t\tvalue -= 0x10000;\n\t\t\t\toutput += stringFromCharCode(value >>> 10 & 0x3FF | 0xD800);\n\t\t\t\tvalue = 0xDC00 | value & 0x3FF;\n\t\t\t}\n\t\t\toutput += stringFromCharCode(value);\n\t\t\treturn output;\n\t\t}).join('');\n\t}\n\n\t/**\n\t * Converts a basic code point into a digit/integer.\n\t * @see `digitToBasic()`\n\t * @private\n\t * @param {Number} codePoint The basic numeric code point value.\n\t * @returns {Number} The numeric value of a basic code point (for use in\n\t * representing integers) in the range `0` to `base - 1`, or `base` if\n\t * the code point does not represent a value.\n\t */\n\tfunction basicToDigit(codePoint) {\n\t\tif (codePoint - 48 < 10) {\n\t\t\treturn codePoint - 22;\n\t\t}\n\t\tif (codePoint - 65 < 26) {\n\t\t\treturn codePoint - 65;\n\t\t}\n\t\tif (codePoint - 97 < 26) {\n\t\t\treturn codePoint - 97;\n\t\t}\n\t\treturn base;\n\t}\n\n\t/**\n\t * Converts a digit/integer into a basic code point.\n\t * @see `basicToDigit()`\n\t * @private\n\t * @param {Number} digit The numeric value of a basic code point.\n\t * @returns {Number} The basic code point whose value (when used for\n\t * representing integers) is `digit`, which needs to be in the range\n\t * `0` to `base - 1`. If `flag` is non-zero, the uppercase form is\n\t * used; else, the lowercase form is used. The behavior is undefined\n\t * if `flag` is non-zero and `digit` has no uppercase form.\n\t */\n\tfunction digitToBasic(digit, flag) {\n\t\t// 0..25 map to ASCII a..z or A..Z\n\t\t// 26..35 map to ASCII 0..9\n\t\treturn digit + 22 + 75 * (digit < 26) - ((flag != 0) << 5);\n\t}\n\n\t/**\n\t * Bias adaptation function as per section 3.4 of RFC 3492.\n\t * http://tools.ietf.org/html/rfc3492#section-3.4\n\t * @private\n\t */\n\tfunction adapt(delta, numPoints, firstTime) {\n\t\tvar k = 0;\n\t\tdelta = firstTime ? floor(delta / damp) : delta >> 1;\n\t\tdelta += floor(delta / numPoints);\n\t\tfor (/* no initialization */; delta > baseMinusTMin * tMax >> 1; k += base) {\n\t\t\tdelta = floor(delta / baseMinusTMin);\n\t\t}\n\t\treturn floor(k + (baseMinusTMin + 1) * delta / (delta + skew));\n\t}\n\n\t/**\n\t * Converts a Punycode string of ASCII-only symbols to a string of Unicode\n\t * symbols.\n\t * @memberOf punycode\n\t * @param {String} input The Punycode string of ASCII-only symbols.\n\t * @returns {String} The resulting string of Unicode symbols.\n\t */\n\tfunction decode(input) {\n\t\t// Don't use UCS-2\n\t\tvar output = [],\n\t\t inputLength = input.length,\n\t\t out,\n\t\t i = 0,\n\t\t n = initialN,\n\t\t bias = initialBias,\n\t\t basic,\n\t\t j,\n\t\t index,\n\t\t oldi,\n\t\t w,\n\t\t k,\n\t\t digit,\n\t\t t,\n\t\t /** Cached calculation results */\n\t\t baseMinusT;\n\n\t\t// Handle the basic code points: let `basic` be the number of input code\n\t\t// points before the last delimiter, or `0` if there is none, then copy\n\t\t// the first basic code points to the output.\n\n\t\tbasic = input.lastIndexOf(delimiter);\n\t\tif (basic < 0) {\n\t\t\tbasic = 0;\n\t\t}\n\n\t\tfor (j = 0; j < basic; ++j) {\n\t\t\t// if it's not a basic code point\n\t\t\tif (input.charCodeAt(j) >= 0x80) {\n\t\t\t\terror('not-basic');\n\t\t\t}\n\t\t\toutput.push(input.charCodeAt(j));\n\t\t}\n\n\t\t// Main decoding loop: start just after the last delimiter if any basic code\n\t\t// points were copied; start at the beginning otherwise.\n\n\t\tfor (index = basic > 0 ? basic + 1 : 0; index < inputLength; /* no final expression */) {\n\n\t\t\t// `index` is the index of the next character to be consumed.\n\t\t\t// Decode a generalized variable-length integer into `delta`,\n\t\t\t// which gets added to `i`. The overflow checking is easier\n\t\t\t// if we increase `i` as we go, then subtract off its starting\n\t\t\t// value at the end to obtain `delta`.\n\t\t\tfor (oldi = i, w = 1, k = base; /* no condition */; k += base) {\n\n\t\t\t\tif (index >= inputLength) {\n\t\t\t\t\terror('invalid-input');\n\t\t\t\t}\n\n\t\t\t\tdigit = basicToDigit(input.charCodeAt(index++));\n\n\t\t\t\tif (digit >= base || digit > floor((maxInt - i) / w)) {\n\t\t\t\t\terror('overflow');\n\t\t\t\t}\n\n\t\t\t\ti += digit * w;\n\t\t\t\tt = k <= bias ? tMin : (k >= bias + tMax ? tMax : k - bias);\n\n\t\t\t\tif (digit < t) {\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\n\t\t\t\tbaseMinusT = base - t;\n\t\t\t\tif (w > floor(maxInt / baseMinusT)) {\n\t\t\t\t\terror('overflow');\n\t\t\t\t}\n\n\t\t\t\tw *= baseMinusT;\n\n\t\t\t}\n\n\t\t\tout = output.length + 1;\n\t\t\tbias = adapt(i - oldi, out, oldi == 0);\n\n\t\t\t// `i` was supposed to wrap around from `out` to `0`,\n\t\t\t// incrementing `n` each time, so we'll fix that now:\n\t\t\tif (floor(i / out) > maxInt - n) {\n\t\t\t\terror('overflow');\n\t\t\t}\n\n\t\t\tn += floor(i / out);\n\t\t\ti %= out;\n\n\t\t\t// Insert `n` at position `i` of the output\n\t\t\toutput.splice(i++, 0, n);\n\n\t\t}\n\n\t\treturn ucs2encode(output);\n\t}\n\n\t/**\n\t * Converts a string of Unicode symbols (e.g. a domain name label) to a\n\t * Punycode string of ASCII-only symbols.\n\t * @memberOf punycode\n\t * @param {String} input The string of Unicode symbols.\n\t * @returns {String} The resulting Punycode string of ASCII-only symbols.\n\t */\n\tfunction encode(input) {\n\t\tvar n,\n\t\t delta,\n\t\t handledCPCount,\n\t\t basicLength,\n\t\t bias,\n\t\t j,\n\t\t m,\n\t\t q,\n\t\t k,\n\t\t t,\n\t\t currentValue,\n\t\t output = [],\n\t\t /** `inputLength` will hold the number of code points in `input`. */\n\t\t inputLength,\n\t\t /** Cached calculation results */\n\t\t handledCPCountPlusOne,\n\t\t baseMinusT,\n\t\t qMinusT;\n\n\t\t// Convert the input in UCS-2 to Unicode\n\t\tinput = ucs2decode(input);\n\n\t\t// Cache the length\n\t\tinputLength = input.length;\n\n\t\t// Initialize the state\n\t\tn = initialN;\n\t\tdelta = 0;\n\t\tbias = initialBias;\n\n\t\t// Handle the basic code points\n\t\tfor (j = 0; j < inputLength; ++j) {\n\t\t\tcurrentValue = input[j];\n\t\t\tif (currentValue < 0x80) {\n\t\t\t\toutput.push(stringFromCharCode(currentValue));\n\t\t\t}\n\t\t}\n\n\t\thandledCPCount = basicLength = output.length;\n\n\t\t// `handledCPCount` is the number of code points that have been handled;\n\t\t// `basicLength` is the number of basic code points.\n\n\t\t// Finish the basic string - if it is not empty - with a delimiter\n\t\tif (basicLength) {\n\t\t\toutput.push(delimiter);\n\t\t}\n\n\t\t// Main encoding loop:\n\t\twhile (handledCPCount < inputLength) {\n\n\t\t\t// All non-basic code points < n have been handled already. Find the next\n\t\t\t// larger one:\n\t\t\tfor (m = maxInt, j = 0; j < inputLength; ++j) {\n\t\t\t\tcurrentValue = input[j];\n\t\t\t\tif (currentValue >= n && currentValue < m) {\n\t\t\t\t\tm = currentValue;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Increase `delta` enough to advance the decoder's state to ,\n\t\t\t// but guard against overflow\n\t\t\thandledCPCountPlusOne = handledCPCount + 1;\n\t\t\tif (m - n > floor((maxInt - delta) / handledCPCountPlusOne)) {\n\t\t\t\terror('overflow');\n\t\t\t}\n\n\t\t\tdelta += (m - n) * handledCPCountPlusOne;\n\t\t\tn = m;\n\n\t\t\tfor (j = 0; j < inputLength; ++j) {\n\t\t\t\tcurrentValue = input[j];\n\n\t\t\t\tif (currentValue < n && ++delta > maxInt) {\n\t\t\t\t\terror('overflow');\n\t\t\t\t}\n\n\t\t\t\tif (currentValue == n) {\n\t\t\t\t\t// Represent delta as a generalized variable-length integer\n\t\t\t\t\tfor (q = delta, k = base; /* no condition */; k += base) {\n\t\t\t\t\t\tt = k <= bias ? tMin : (k >= bias + tMax ? tMax : k - bias);\n\t\t\t\t\t\tif (q < t) {\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tqMinusT = q - t;\n\t\t\t\t\t\tbaseMinusT = base - t;\n\t\t\t\t\t\toutput.push(\n\t\t\t\t\t\t\tstringFromCharCode(digitToBasic(t + qMinusT % baseMinusT, 0))\n\t\t\t\t\t\t);\n\t\t\t\t\t\tq = floor(qMinusT / baseMinusT);\n\t\t\t\t\t}\n\n\t\t\t\t\toutput.push(stringFromCharCode(digitToBasic(q, 0)));\n\t\t\t\t\tbias = adapt(delta, handledCPCountPlusOne, handledCPCount == basicLength);\n\t\t\t\t\tdelta = 0;\n\t\t\t\t\t++handledCPCount;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t++delta;\n\t\t\t++n;\n\n\t\t}\n\t\treturn output.join('');\n\t}\n\n\t/**\n\t * Converts a Punycode string representing a domain name or an email address\n\t * to Unicode. Only the Punycoded parts of the input will be converted, i.e.\n\t * it doesn't matter if you call it on a string that has already been\n\t * converted to Unicode.\n\t * @memberOf punycode\n\t * @param {String} input The Punycoded domain name or email address to\n\t * convert to Unicode.\n\t * @returns {String} The Unicode representation of the given Punycode\n\t * string.\n\t */\n\tfunction toUnicode(input) {\n\t\treturn mapDomain(input, function(string) {\n\t\t\treturn regexPunycode.test(string)\n\t\t\t\t? decode(string.slice(4).toLowerCase())\n\t\t\t\t: string;\n\t\t});\n\t}\n\n\t/**\n\t * Converts a Unicode string representing a domain name or an email address to\n\t * Punycode. Only the non-ASCII parts of the domain name will be converted,\n\t * i.e. it doesn't matter if you call it with a domain that's already in\n\t * ASCII.\n\t * @memberOf punycode\n\t * @param {String} input The domain name or email address to convert, as a\n\t * Unicode string.\n\t * @returns {String} The Punycode representation of the given domain name or\n\t * email address.\n\t */\n\tfunction toASCII(input) {\n\t\treturn mapDomain(input, function(string) {\n\t\t\treturn regexNonASCII.test(string)\n\t\t\t\t? 'xn--' + encode(string)\n\t\t\t\t: string;\n\t\t});\n\t}\n\n\t/*--------------------------------------------------------------------------*/\n\n\t/** Define the public API */\n\tpunycode = {\n\t\t/**\n\t\t * A string representing the current Punycode.js version number.\n\t\t * @memberOf punycode\n\t\t * @type String\n\t\t */\n\t\t'version': '1.3.2',\n\t\t/**\n\t\t * An object of methods to convert from JavaScript's internal character\n\t\t * representation (UCS-2) to Unicode code points, and back.\n\t\t * @see \n\t\t * @memberOf punycode\n\t\t * @type Object\n\t\t */\n\t\t'ucs2': {\n\t\t\t'decode': ucs2decode,\n\t\t\t'encode': ucs2encode\n\t\t},\n\t\t'decode': decode,\n\t\t'encode': encode,\n\t\t'toASCII': toASCII,\n\t\t'toUnicode': toUnicode\n\t};\n\n\t/** Expose `punycode` */\n\t// Some AMD build optimizers, like r.js, check for specific condition patterns\n\t// like the following:\n\tif (\n\t\ttypeof define == 'function' &&\n\t\ttypeof define.amd == 'object' &&\n\t\tdefine.amd\n\t) {\n\t\tdefine('punycode', function() {\n\t\t\treturn punycode;\n\t\t});\n\t} else if (freeExports && freeModule) {\n\t\tif (module.exports == freeExports) { // in Node.js or RingoJS v0.8.0+\n\t\t\tfreeModule.exports = punycode;\n\t\t} else { // in Narwhal or RingoJS v0.7.0-\n\t\t\tfor (key in punycode) {\n\t\t\t\tpunycode.hasOwnProperty(key) && (freeExports[key] = punycode[key]);\n\t\t\t}\n\t\t}\n\t} else { // in Rhino or a web browser\n\t\troot.punycode = punycode;\n\t}\n\n}(this));\n","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n'use strict';\n\n// If obj.hasOwnProperty has been overridden, then calling\n// obj.hasOwnProperty(prop) will break.\n// See: https://github.com/joyent/node/issues/1707\nfunction hasOwnProperty(obj, prop) {\n return Object.prototype.hasOwnProperty.call(obj, prop);\n}\n\nmodule.exports = function(qs, sep, eq, options) {\n sep = sep || '&';\n eq = eq || '=';\n var obj = {};\n\n if (typeof qs !== 'string' || qs.length === 0) {\n return obj;\n }\n\n var regexp = /\\+/g;\n qs = qs.split(sep);\n\n var maxKeys = 1000;\n if (options && typeof options.maxKeys === 'number') {\n maxKeys = options.maxKeys;\n }\n\n var len = qs.length;\n // maxKeys <= 0 means that we should not limit keys count\n if (maxKeys > 0 && len > maxKeys) {\n len = maxKeys;\n }\n\n for (var i = 0; i < len; ++i) {\n var x = qs[i].replace(regexp, '%20'),\n idx = x.indexOf(eq),\n kstr, vstr, k, v;\n\n if (idx >= 0) {\n kstr = x.substr(0, idx);\n vstr = x.substr(idx + 1);\n } else {\n kstr = x;\n vstr = '';\n }\n\n k = decodeURIComponent(kstr);\n v = decodeURIComponent(vstr);\n\n if (!hasOwnProperty(obj, k)) {\n obj[k] = v;\n } else if (Array.isArray(obj[k])) {\n obj[k].push(v);\n } else {\n obj[k] = [obj[k], v];\n }\n }\n\n return obj;\n};\n","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n'use strict';\n\nvar stringifyPrimitive = function(v) {\n switch (typeof v) {\n case 'string':\n return v;\n\n case 'boolean':\n return v ? 'true' : 'false';\n\n case 'number':\n return isFinite(v) ? v : '';\n\n default:\n return '';\n }\n};\n\nmodule.exports = function(obj, sep, eq, name) {\n sep = sep || '&';\n eq = eq || '=';\n if (obj === null) {\n obj = undefined;\n }\n\n if (typeof obj === 'object') {\n return Object.keys(obj).map(function(k) {\n var ks = encodeURIComponent(stringifyPrimitive(k)) + eq;\n if (Array.isArray(obj[k])) {\n return obj[k].map(function(v) {\n return ks + encodeURIComponent(stringifyPrimitive(v));\n }).join(sep);\n } else {\n return ks + encodeURIComponent(stringifyPrimitive(obj[k]));\n }\n }).join(sep);\n\n }\n\n if (!name) return '';\n return encodeURIComponent(stringifyPrimitive(name)) + eq +\n encodeURIComponent(stringifyPrimitive(obj));\n};\n","'use strict';\n\nexports.decode = exports.parse = require('./decode');\nexports.encode = exports.stringify = require('./encode');\n","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = format;\nvar smallWords = /^(a|an|and|as|at|but|by|en|for|if|in|nor|of|on|or|per|the|to|vs?\\.?|via)$/i;\nfunction toTitleCase(string) {\n return string.toString().trim().replace(/[A-Za-z0-9\\u00C0-\\u00FF]+[^\\s-]*/g, function (match, index, title) {\n if (index > 0 && index + match.length !== title.length && match.search(smallWords) > -1 && title.charAt(index - 2) !== \":\" && (title.charAt(index + match.length) !== \"-\" || title.charAt(index - 1) === \"-\") && title.charAt(index - 1).search(/[^\\s-]/) < 0) {\n return match.toLowerCase();\n }\n if (match.substr(1).search(/[A-Z]|\\../) > -1) {\n return match;\n }\n return match.charAt(0).toUpperCase() + match.substr(1);\n });\n}\n\n// See if s could be an email address. We don't want to send personal data like email.\n// https://support.google.com/analytics/answer/2795983?hl=en\nfunction mightBeEmail(s) {\n // There's no point trying to validate rfc822 fully, just look for ...@...\n return typeof s === \"string\" && s.indexOf(\"@\") !== -1;\n}\nvar redacted = \"REDACTED (Potential Email Address)\";\nfunction redactEmail(string) {\n if (mightBeEmail(string)) {\n console.warn(\"This arg looks like an email address, redacting.\");\n return redacted;\n }\n return string;\n}\nfunction format() {\n var s = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : \"\";\n var titleCase = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;\n var redactingEmail = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : true;\n var _str = s || \"\";\n if (titleCase) {\n _str = toTitleCase(s);\n }\n if (redactingEmail) {\n _str = redactEmail(_str);\n }\n return _str;\n}","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = exports.GA4 = void 0;\nvar _gtag = _interopRequireDefault(require(\"./gtag\"));\nvar _format = _interopRequireDefault(require(\"./format\"));\nvar _excluded = [\"eventCategory\", \"eventAction\", \"eventLabel\", \"eventValue\", \"hitType\"],\n _excluded2 = [\"title\", \"location\"],\n _excluded3 = [\"page\", \"hitType\"];\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\nfunction _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }\nfunction _nonIterableSpread() { throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\nfunction _iterableToArray(iter) { if (typeof Symbol !== \"undefined\" && iter[Symbol.iterator] != null || iter[\"@@iterator\"] != null) return Array.from(iter); }\nfunction _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\nfunction _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\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); }\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; }\nfunction _iterableToArrayLimit(arr, i) { var _i = null == arr ? null : \"undefined\" != typeof Symbol && arr[Symbol.iterator] || arr[\"@@iterator\"]; if (null != _i) { var _s, _e, _x, _r, _arr = [], _n = !0, _d = !1; try { if (_x = (_i = _i.call(arr)).next, 0 === i) { if (Object(_i) !== _i) return; _n = !1; } else for (; !(_n = (_s = _x.call(_i)).done) && (_arr.push(_s.value), _arr.length !== i); _n = !0); } catch (err) { _d = !0, _e = err; } finally { try { if (!_n && null != _i[\"return\"] && (_r = _i[\"return\"](), Object(_r) !== _r)) return; } finally { if (_d) throw _e; } } return _arr; } }\nfunction _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, _toPropertyKey(descriptor.key), descriptor); } }\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _toPropertyKey(arg) { var key = _toPrimitive(arg, \"string\"); return _typeof(key) === \"symbol\" ? key : String(key); }\nfunction _toPrimitive(input, hint) { if (_typeof(input) !== \"object\" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || \"default\"); if (_typeof(res) !== \"object\") return res; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (hint === \"string\" ? String : Number)(input); }\n/*\nLinks\nhttps://developers.google.com/gtagjs/reference/api\nhttps://developers.google.com/tag-platform/gtagjs/reference\n*/\n/**\n * @typedef GaOptions\n * @type {Object}\n * @property {boolean} [cookieUpdate=true]\n * @property {number} [cookieExpires=63072000] Default two years\n * @property {string} [cookieDomain=\"auto\"]\n * @property {string} [cookieFlags]\n * @property {string} [userId]\n * @property {string} [clientId]\n * @property {boolean} [anonymizeIp]\n * @property {string} [contentGroup1]\n * @property {string} [contentGroup2]\n * @property {string} [contentGroup3]\n * @property {string} [contentGroup4]\n * @property {string} [contentGroup5]\n * @property {boolean} [allowAdFeatures=true]\n * @property {boolean} [allowAdPersonalizationSignals]\n * @property {boolean} [nonInteraction]\n * @property {string} [page]\n */\n/**\n * @typedef UaEventOptions\n * @type {Object}\n * @property {string} action\n * @property {string} category\n * @property {string} [label]\n * @property {number} [value]\n * @property {boolean} [nonInteraction]\n * @property {('beacon'|'xhr'|'image')} [transport]\n */\n/**\n * @typedef InitOptions\n * @type {Object}\n * @property {string} trackingId\n * @property {GaOptions|any} [gaOptions]\n * @property {Object} [gtagOptions] New parameter\n */\nvar GA4 = /*#__PURE__*/function () {\n function GA4() {\n var _this = this;\n _classCallCheck(this, GA4);\n _defineProperty(this, \"reset\", function () {\n _this.isInitialized = false;\n _this._testMode = false;\n _this._currentMeasurementId;\n _this._hasLoadedGA = false;\n _this._isQueuing = false;\n _this._queueGtag = [];\n });\n _defineProperty(this, \"_gtag\", function () {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n if (!_this._testMode) {\n if (_this._isQueuing) {\n _this._queueGtag.push(args);\n } else {\n _gtag[\"default\"].apply(void 0, args);\n }\n } else {\n _this._queueGtag.push(args);\n }\n });\n _defineProperty(this, \"_loadGA\", function (GA_MEASUREMENT_ID, nonce) {\n var gtagUrl = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : \"https://www.googletagmanager.com/gtag/js\";\n if (typeof window === \"undefined\" || typeof document === \"undefined\") {\n return;\n }\n if (!_this._hasLoadedGA) {\n // Global Site Tag (gtag.js) - Google Analytics\n var script = document.createElement(\"script\");\n script.async = true;\n script.src = \"\".concat(gtagUrl, \"?id=\").concat(GA_MEASUREMENT_ID);\n if (nonce) {\n script.setAttribute(\"nonce\", nonce);\n }\n document.body.appendChild(script);\n window.dataLayer = window.dataLayer || [];\n window.gtag = function gtag() {\n window.dataLayer.push(arguments);\n };\n _this._hasLoadedGA = true;\n }\n });\n _defineProperty(this, \"_toGtagOptions\", function (gaOptions) {\n if (!gaOptions) {\n return;\n }\n var mapFields = {\n // Old https://developers.google.com/analytics/devguides/collection/analyticsjs/field-reference#cookieUpdate\n // New https://developers.google.com/analytics/devguides/collection/gtagjs/cookies-user-id#cookie_update\n cookieUpdate: \"cookie_update\",\n cookieExpires: \"cookie_expires\",\n cookieDomain: \"cookie_domain\",\n cookieFlags: \"cookie_flags\",\n // must be in set method?\n userId: \"user_id\",\n clientId: \"client_id\",\n anonymizeIp: \"anonymize_ip\",\n // https://support.google.com/analytics/answer/2853546?hl=en#zippy=%2Cin-this-article\n contentGroup1: \"content_group1\",\n contentGroup2: \"content_group2\",\n contentGroup3: \"content_group3\",\n contentGroup4: \"content_group4\",\n contentGroup5: \"content_group5\",\n // https://support.google.com/analytics/answer/9050852?hl=en\n allowAdFeatures: \"allow_google_signals\",\n allowAdPersonalizationSignals: \"allow_ad_personalization_signals\",\n nonInteraction: \"non_interaction\",\n page: \"page_path\",\n hitCallback: \"event_callback\"\n };\n var gtagOptions = Object.entries(gaOptions).reduce(function (prev, _ref) {\n var _ref2 = _slicedToArray(_ref, 2),\n key = _ref2[0],\n value = _ref2[1];\n if (mapFields[key]) {\n prev[mapFields[key]] = value;\n } else {\n prev[key] = value;\n }\n return prev;\n }, {});\n return gtagOptions;\n });\n _defineProperty(this, \"initialize\", function (GA_MEASUREMENT_ID) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n if (!GA_MEASUREMENT_ID) {\n throw new Error(\"Require GA_MEASUREMENT_ID\");\n }\n var initConfigs = typeof GA_MEASUREMENT_ID === \"string\" ? [{\n trackingId: GA_MEASUREMENT_ID\n }] : GA_MEASUREMENT_ID;\n _this._currentMeasurementId = initConfigs[0].trackingId;\n var gaOptions = options.gaOptions,\n gtagOptions = options.gtagOptions,\n nonce = options.nonce,\n _options$testMode = options.testMode,\n testMode = _options$testMode === void 0 ? false : _options$testMode,\n gtagUrl = options.gtagUrl;\n _this._testMode = testMode;\n if (!testMode) {\n _this._loadGA(_this._currentMeasurementId, nonce, gtagUrl);\n }\n if (!_this.isInitialized) {\n _this._gtag(\"js\", new Date());\n initConfigs.forEach(function (config) {\n var mergedGtagOptions = _objectSpread(_objectSpread(_objectSpread({}, _this._toGtagOptions(_objectSpread(_objectSpread({}, gaOptions), config.gaOptions))), gtagOptions), config.gtagOptions);\n if (Object.keys(mergedGtagOptions).length) {\n _this._gtag(\"config\", config.trackingId, mergedGtagOptions);\n } else {\n _this._gtag(\"config\", config.trackingId);\n }\n });\n }\n _this.isInitialized = true;\n if (!testMode) {\n var queues = _toConsumableArray(_this._queueGtag);\n _this._queueGtag = [];\n _this._isQueuing = false;\n while (queues.length) {\n var queue = queues.shift();\n _this._gtag.apply(_this, _toConsumableArray(queue));\n if (queue[0] === \"get\") {\n _this._isQueuing = true;\n }\n }\n }\n });\n _defineProperty(this, \"set\", function (fieldsObject) {\n if (!fieldsObject) {\n console.warn(\"`fieldsObject` is required in .set()\");\n return;\n }\n if (_typeof(fieldsObject) !== \"object\") {\n console.warn(\"Expected `fieldsObject` arg to be an Object\");\n return;\n }\n if (Object.keys(fieldsObject).length === 0) {\n console.warn(\"empty `fieldsObject` given to .set()\");\n }\n _this._gaCommand(\"set\", fieldsObject);\n });\n _defineProperty(this, \"_gaCommandSendEvent\", function (eventCategory, eventAction, eventLabel, eventValue, fieldsObject) {\n _this._gtag(\"event\", eventAction, _objectSpread(_objectSpread({\n event_category: eventCategory,\n event_label: eventLabel,\n value: eventValue\n }, fieldsObject && {\n non_interaction: fieldsObject.nonInteraction\n }), _this._toGtagOptions(fieldsObject)));\n });\n _defineProperty(this, \"_gaCommandSendEventParameters\", function () {\n for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n args[_key2] = arguments[_key2];\n }\n if (typeof args[0] === \"string\") {\n _this._gaCommandSendEvent.apply(_this, _toConsumableArray(args.slice(1)));\n } else {\n var _args$ = args[0],\n eventCategory = _args$.eventCategory,\n eventAction = _args$.eventAction,\n eventLabel = _args$.eventLabel,\n eventValue = _args$.eventValue,\n hitType = _args$.hitType,\n rest = _objectWithoutProperties(_args$, _excluded);\n _this._gaCommandSendEvent(eventCategory, eventAction, eventLabel, eventValue, rest);\n }\n });\n _defineProperty(this, \"_gaCommandSendTiming\", function (timingCategory, timingVar, timingValue, timingLabel) {\n _this._gtag(\"event\", \"timing_complete\", {\n name: timingVar,\n value: timingValue,\n event_category: timingCategory,\n event_label: timingLabel\n });\n });\n _defineProperty(this, \"_gaCommandSendPageview\", function (page, fieldsObject) {\n if (fieldsObject && Object.keys(fieldsObject).length) {\n var _this$_toGtagOptions = _this._toGtagOptions(fieldsObject),\n title = _this$_toGtagOptions.title,\n location = _this$_toGtagOptions.location,\n rest = _objectWithoutProperties(_this$_toGtagOptions, _excluded2);\n _this._gtag(\"event\", \"page_view\", _objectSpread(_objectSpread(_objectSpread(_objectSpread({}, page && {\n page_path: page\n }), title && {\n page_title: title\n }), location && {\n page_location: location\n }), rest));\n } else if (page) {\n _this._gtag(\"event\", \"page_view\", {\n page_path: page\n });\n } else {\n _this._gtag(\"event\", \"page_view\");\n }\n });\n _defineProperty(this, \"_gaCommandSendPageviewParameters\", function () {\n for (var _len3 = arguments.length, args = new Array(_len3), _key3 = 0; _key3 < _len3; _key3++) {\n args[_key3] = arguments[_key3];\n }\n if (typeof args[0] === \"string\") {\n _this._gaCommandSendPageview.apply(_this, _toConsumableArray(args.slice(1)));\n } else {\n var _args$2 = args[0],\n page = _args$2.page,\n hitType = _args$2.hitType,\n rest = _objectWithoutProperties(_args$2, _excluded3);\n _this._gaCommandSendPageview(page, rest);\n }\n });\n _defineProperty(this, \"_gaCommandSend\", function () {\n for (var _len4 = arguments.length, args = new Array(_len4), _key4 = 0; _key4 < _len4; _key4++) {\n args[_key4] = arguments[_key4];\n }\n var hitType = typeof args[0] === \"string\" ? args[0] : args[0].hitType;\n switch (hitType) {\n case \"event\":\n _this._gaCommandSendEventParameters.apply(_this, args);\n break;\n case \"pageview\":\n _this._gaCommandSendPageviewParameters.apply(_this, args);\n break;\n case \"timing\":\n _this._gaCommandSendTiming.apply(_this, _toConsumableArray(args.slice(1)));\n break;\n case \"screenview\":\n case \"transaction\":\n case \"item\":\n case \"social\":\n case \"exception\":\n console.warn(\"Unsupported send command: \".concat(hitType));\n break;\n default:\n console.warn(\"Send command doesn't exist: \".concat(hitType));\n }\n });\n _defineProperty(this, \"_gaCommandSet\", function () {\n for (var _len5 = arguments.length, args = new Array(_len5), _key5 = 0; _key5 < _len5; _key5++) {\n args[_key5] = arguments[_key5];\n }\n if (typeof args[0] === \"string\") {\n args[0] = _defineProperty({}, args[0], args[1]);\n }\n _this._gtag(\"set\", _this._toGtagOptions(args[0]));\n });\n _defineProperty(this, \"_gaCommand\", function (command) {\n for (var _len6 = arguments.length, args = new Array(_len6 > 1 ? _len6 - 1 : 0), _key6 = 1; _key6 < _len6; _key6++) {\n args[_key6 - 1] = arguments[_key6];\n }\n switch (command) {\n case \"send\":\n _this._gaCommandSend.apply(_this, args);\n break;\n case \"set\":\n _this._gaCommandSet.apply(_this, args);\n break;\n default:\n console.warn(\"Command doesn't exist: \".concat(command));\n }\n });\n _defineProperty(this, \"ga\", function () {\n for (var _len7 = arguments.length, args = new Array(_len7), _key7 = 0; _key7 < _len7; _key7++) {\n args[_key7] = arguments[_key7];\n }\n if (typeof args[0] === \"string\") {\n _this._gaCommand.apply(_this, args);\n } else {\n var readyCallback = args[0];\n _this._gtag(\"get\", _this._currentMeasurementId, \"client_id\", function (clientId) {\n _this._isQueuing = false;\n var queues = _this._queueGtag;\n readyCallback({\n get: function get(property) {\n return property === \"clientId\" ? clientId : property === \"trackingId\" ? _this._currentMeasurementId : property === \"apiVersion\" ? \"1\" : undefined;\n }\n });\n while (queues.length) {\n var queue = queues.shift();\n _this._gtag.apply(_this, _toConsumableArray(queue));\n }\n });\n _this._isQueuing = true;\n }\n return _this.ga;\n });\n _defineProperty(this, \"event\", function (optionsOrName, params) {\n if (typeof optionsOrName === \"string\") {\n _this._gtag(\"event\", optionsOrName, _this._toGtagOptions(params));\n } else {\n var action = optionsOrName.action,\n category = optionsOrName.category,\n label = optionsOrName.label,\n value = optionsOrName.value,\n nonInteraction = optionsOrName.nonInteraction,\n transport = optionsOrName.transport;\n if (!category || !action) {\n console.warn(\"args.category AND args.action are required in event()\");\n return;\n }\n\n // Required Fields\n var fieldObject = {\n hitType: \"event\",\n eventCategory: (0, _format[\"default\"])(category),\n eventAction: (0, _format[\"default\"])(action)\n };\n\n // Optional Fields\n if (label) {\n fieldObject.eventLabel = (0, _format[\"default\"])(label);\n }\n if (typeof value !== \"undefined\") {\n if (typeof value !== \"number\") {\n console.warn(\"Expected `args.value` arg to be a Number.\");\n } else {\n fieldObject.eventValue = value;\n }\n }\n if (typeof nonInteraction !== \"undefined\") {\n if (typeof nonInteraction !== \"boolean\") {\n console.warn(\"`args.nonInteraction` must be a boolean.\");\n } else {\n fieldObject.nonInteraction = nonInteraction;\n }\n }\n if (typeof transport !== \"undefined\") {\n if (typeof transport !== \"string\") {\n console.warn(\"`args.transport` must be a string.\");\n } else {\n if ([\"beacon\", \"xhr\", \"image\"].indexOf(transport) === -1) {\n console.warn(\"`args.transport` must be either one of these values: `beacon`, `xhr` or `image`\");\n }\n fieldObject.transport = transport;\n }\n }\n _this._gaCommand(\"send\", fieldObject);\n }\n });\n _defineProperty(this, \"send\", function (fieldObject) {\n _this._gaCommand(\"send\", fieldObject);\n });\n this.reset();\n }\n _createClass(GA4, [{\n key: \"gtag\",\n value: function gtag() {\n this._gtag.apply(this, arguments);\n }\n }]);\n return GA4;\n}();\nexports.GA4 = GA4;\nvar _default = new GA4();\nexports[\"default\"] = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = void 0;\nvar gtag = function gtag() {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n if (typeof window !== \"undefined\") {\n var _window;\n if (typeof window.gtag === \"undefined\") {\n window.dataLayer = window.dataLayer || [];\n window.gtag = function gtag() {\n window.dataLayer.push(arguments);\n };\n }\n (_window = window).gtag.apply(_window, args);\n }\n};\nvar _default = gtag;\nexports[\"default\"] = _default;","\"use strict\";\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = exports.ReactGAImplementation = void 0;\nvar _ga = _interopRequireWildcard(require(\"./ga4\"));\nfunction _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== \"function\") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }\nfunction _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== \"object\" && typeof obj !== \"function\") { return { \"default\": obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== \"default\" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj[\"default\"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }\nvar ReactGAImplementation = _ga.GA4;\nexports.ReactGAImplementation = ReactGAImplementation;\nvar _default = _ga[\"default\"];\nexports[\"default\"] = _default;","/** @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\n'use strict';var b=\"function\"===typeof Symbol&&Symbol.for,c=b?Symbol.for(\"react.element\"):60103,d=b?Symbol.for(\"react.portal\"):60106,e=b?Symbol.for(\"react.fragment\"):60107,f=b?Symbol.for(\"react.strict_mode\"):60108,g=b?Symbol.for(\"react.profiler\"):60114,h=b?Symbol.for(\"react.provider\"):60109,k=b?Symbol.for(\"react.context\"):60110,l=b?Symbol.for(\"react.async_mode\"):60111,m=b?Symbol.for(\"react.concurrent_mode\"):60111,n=b?Symbol.for(\"react.forward_ref\"):60112,p=b?Symbol.for(\"react.suspense\"):60113,q=b?\nSymbol.for(\"react.suspense_list\"):60120,r=b?Symbol.for(\"react.memo\"):60115,t=b?Symbol.for(\"react.lazy\"):60116,v=b?Symbol.for(\"react.block\"):60121,w=b?Symbol.for(\"react.fundamental\"):60117,x=b?Symbol.for(\"react.responder\"):60118,y=b?Symbol.for(\"react.scope\"):60119;\nfunction z(a){if(\"object\"===typeof a&&null!==a){var u=a.$$typeof;switch(u){case c:switch(a=a.type,a){case l:case m:case e:case g:case f:case p:return a;default:switch(a=a&&a.$$typeof,a){case k:case n:case t:case r:case h:return a;default:return u}}case d:return u}}}function A(a){return z(a)===m}exports.AsyncMode=l;exports.ConcurrentMode=m;exports.ContextConsumer=k;exports.ContextProvider=h;exports.Element=c;exports.ForwardRef=n;exports.Fragment=e;exports.Lazy=t;exports.Memo=r;exports.Portal=d;\nexports.Profiler=g;exports.StrictMode=f;exports.Suspense=p;exports.isAsyncMode=function(a){return A(a)||z(a)===l};exports.isConcurrentMode=A;exports.isContextConsumer=function(a){return z(a)===k};exports.isContextProvider=function(a){return z(a)===h};exports.isElement=function(a){return\"object\"===typeof a&&null!==a&&a.$$typeof===c};exports.isForwardRef=function(a){return z(a)===n};exports.isFragment=function(a){return z(a)===e};exports.isLazy=function(a){return z(a)===t};\nexports.isMemo=function(a){return z(a)===r};exports.isPortal=function(a){return z(a)===d};exports.isProfiler=function(a){return z(a)===g};exports.isStrictMode=function(a){return z(a)===f};exports.isSuspense=function(a){return z(a)===p};\nexports.isValidElementType=function(a){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)};exports.typeOf=z;\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/react-is.production.min.js');\n} else {\n module.exports = require('./cjs/react-is.development.js');\n}\n","/** @license React v17.0.2\n * react-is.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n'use strict';var b=60103,c=60106,d=60107,e=60108,f=60114,g=60109,h=60110,k=60112,l=60113,m=60120,n=60115,p=60116,q=60121,r=60122,u=60117,v=60129,w=60131;\nif(\"function\"===typeof Symbol&&Symbol.for){var x=Symbol.for;b=x(\"react.element\");c=x(\"react.portal\");d=x(\"react.fragment\");e=x(\"react.strict_mode\");f=x(\"react.profiler\");g=x(\"react.provider\");h=x(\"react.context\");k=x(\"react.forward_ref\");l=x(\"react.suspense\");m=x(\"react.suspense_list\");n=x(\"react.memo\");p=x(\"react.lazy\");q=x(\"react.block\");r=x(\"react.server.block\");u=x(\"react.fundamental\");v=x(\"react.debug_trace_mode\");w=x(\"react.legacy_hidden\")}\nfunction y(a){if(\"object\"===typeof a&&null!==a){var t=a.$$typeof;switch(t){case b:switch(a=a.type,a){case d:case f:case e:case l:case m:return a;default:switch(a=a&&a.$$typeof,a){case h:case k:case p:case n:case g:return a;default:return t}}case c:return t}}}var z=g,A=b,B=k,C=d,D=p,E=n,F=c,G=f,H=e,I=l;exports.ContextConsumer=h;exports.ContextProvider=z;exports.Element=A;exports.ForwardRef=B;exports.Fragment=C;exports.Lazy=D;exports.Memo=E;exports.Portal=F;exports.Profiler=G;exports.StrictMode=H;\nexports.Suspense=I;exports.isAsyncMode=function(){return!1};exports.isConcurrentMode=function(){return!1};exports.isContextConsumer=function(a){return y(a)===h};exports.isContextProvider=function(a){return y(a)===g};exports.isElement=function(a){return\"object\"===typeof a&&null!==a&&a.$$typeof===b};exports.isForwardRef=function(a){return y(a)===k};exports.isFragment=function(a){return y(a)===d};exports.isLazy=function(a){return y(a)===p};exports.isMemo=function(a){return y(a)===n};\nexports.isPortal=function(a){return y(a)===c};exports.isProfiler=function(a){return y(a)===f};exports.isStrictMode=function(a){return y(a)===e};exports.isSuspense=function(a){return y(a)===l};exports.isValidElementType=function(a){return\"string\"===typeof a||\"function\"===typeof a||a===d||a===f||a===v||a===e||a===l||a===m||a===w||\"object\"===typeof a&&null!==a&&(a.$$typeof===p||a.$$typeof===n||a.$$typeof===g||a.$$typeof===h||a.$$typeof===k||a.$$typeof===u||a.$$typeof===q||a[0]===r)?!0:!1};\nexports.typeOf=y;\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/react-is.production.min.js');\n} else {\n module.exports = require('./cjs/react-is.development.js');\n}\n","/** @license React v17.0.2\n * react-jsx-runtime.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';require(\"object-assign\");var f=require(\"react\"),g=60103;exports.Fragment=60107;if(\"function\"===typeof Symbol&&Symbol.for){var h=Symbol.for;g=h(\"react.element\");exports.Fragment=h(\"react.fragment\")}var m=f.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.ReactCurrentOwner,n=Object.prototype.hasOwnProperty,p={key:!0,ref:!0,__self:!0,__source:!0};\nfunction q(c,a,k){var b,d={},e=null,l=null;void 0!==k&&(e=\"\"+k);void 0!==a.key&&(e=\"\"+a.key);void 0!==a.ref&&(l=a.ref);for(b in a)n.call(a,b)&&!p.hasOwnProperty(b)&&(d[b]=a[b]);if(c&&c.defaultProps)for(b in a=c.defaultProps,a)void 0===d[b]&&(d[b]=a[b]);return{$$typeof:g,type:c,key:e,ref:l,props:d,_owner:m.current}}exports.jsx=q;exports.jsxs=q;\n","/** @license React v17.0.2\n * react.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n'use strict';var l=require(\"object-assign\"),n=60103,p=60106;exports.Fragment=60107;exports.StrictMode=60108;exports.Profiler=60114;var q=60109,r=60110,t=60112;exports.Suspense=60113;var u=60115,v=60116;\nif(\"function\"===typeof Symbol&&Symbol.for){var w=Symbol.for;n=w(\"react.element\");p=w(\"react.portal\");exports.Fragment=w(\"react.fragment\");exports.StrictMode=w(\"react.strict_mode\");exports.Profiler=w(\"react.profiler\");q=w(\"react.provider\");r=w(\"react.context\");t=w(\"react.forward_ref\");exports.Suspense=w(\"react.suspense\");u=w(\"react.memo\");v=w(\"react.lazy\")}var x=\"function\"===typeof Symbol&&Symbol.iterator;\nfunction y(a){if(null===a||\"object\"!==typeof a)return null;a=x&&a[x]||a[\"@@iterator\"];return\"function\"===typeof a?a:null}function z(a){for(var b=\"https://reactjs.org/docs/error-decoder.html?invariant=\"+a,c=1;c=\nE};k=function(){};exports.unstable_forceFrameRate=function(a){0>a||125>>1,e=a[d];if(void 0!==e&&0I(n,c))void 0!==r&&0>I(r,n)?(a[d]=r,a[v]=c,d=v):(a[d]=n,a[m]=c,d=m);else if(void 0!==r&&0>I(r,c))a[d]=r,a[v]=c,d=v;else break a}}return b}return null}function I(a,b){var c=a.sortIndex-b.sortIndex;return 0!==c?c:a.id-b.id}var L=[],M=[],N=1,O=null,P=3,Q=!1,R=!1,S=!1;\nfunction T(a){for(var b=J(M);null!==b;){if(null===b.callback)K(M);else if(b.startTime<=a)K(M),b.sortIndex=b.expirationTime,H(L,b);else break;b=J(M)}}function U(a){S=!1;T(a);if(!R)if(null!==J(L))R=!0,f(V);else{var b=J(M);null!==b&&g(U,b.startTime-a)}}\nfunction V(a,b){R=!1;S&&(S=!1,h());Q=!0;var c=P;try{T(b);for(O=J(L);null!==O&&(!(O.expirationTime>b)||a&&!exports.unstable_shouldYield());){var d=O.callback;if(\"function\"===typeof d){O.callback=null;P=O.priorityLevel;var e=d(O.expirationTime<=b);b=exports.unstable_now();\"function\"===typeof e?O.callback=e:O===J(L)&&K(L);T(b)}else K(L);O=J(L)}if(null!==O)var m=!0;else{var n=J(M);null!==n&&g(U,n.startTime-b);m=!1}return m}finally{O=null,P=c,Q=!1}}var W=k;exports.unstable_IdlePriority=5;\nexports.unstable_ImmediatePriority=1;exports.unstable_LowPriority=4;exports.unstable_NormalPriority=3;exports.unstable_Profiling=null;exports.unstable_UserBlockingPriority=2;exports.unstable_cancelCallback=function(a){a.callback=null};exports.unstable_continueExecution=function(){R||Q||(R=!0,f(V))};exports.unstable_getCurrentPriorityLevel=function(){return P};exports.unstable_getFirstCallbackNode=function(){return J(L)};\nexports.unstable_next=function(a){switch(P){case 1:case 2:case 3:var b=3;break;default:b=P}var c=P;P=b;try{return a()}finally{P=c}};exports.unstable_pauseExecution=function(){};exports.unstable_requestPaint=W;exports.unstable_runWithPriority=function(a,b){switch(a){case 1:case 2:case 3:case 4:case 5:break;default:a=3}var c=P;P=a;try{return b()}finally{P=c}};\nexports.unstable_scheduleCallback=function(a,b,c){var d=exports.unstable_now();\"object\"===typeof c&&null!==c?(c=c.delay,c=\"number\"===typeof c&&0d?(a.sortIndex=c,H(M,a),null===J(L)&&a===J(M)&&(S?h():S=!0,g(U,c-d))):(a.sortIndex=e,H(L,a),R||Q||(R=!0,f(V)));return a};\nexports.unstable_wrapCallback=function(a){var b=P;return function(){var c=P;P=b;try{return a.apply(this,arguments)}finally{P=c}}};\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/scheduler.production.min.js');\n} else {\n module.exports = require('./cjs/scheduler.development.js');\n}\n","/* global window */\nimport ponyfill from './ponyfill.js';\n\nvar root;\n\nif (typeof self !== 'undefined') {\n root = self;\n} else if (typeof window !== 'undefined') {\n root = window;\n} else if (typeof global !== 'undefined') {\n root = global;\n} else if (typeof module !== 'undefined') {\n root = module;\n} else {\n root = Function('return this')();\n}\n\nvar result = ponyfill(root);\nexport default result;\n","export default function symbolObservablePonyfill(root) {\n\tvar result;\n\tvar Symbol = root.Symbol;\n\n\tif (typeof Symbol === 'function') {\n\t\tif (Symbol.observable) {\n\t\t\tresult = Symbol.observable;\n\t\t} else {\n\t\t\tresult = Symbol('observable');\n\t\t\tSymbol.observable = result;\n\t\t}\n\t} else {\n\t\tresult = '@@observable';\n\t}\n\n\treturn result;\n};\n","\n/**\n * Topological sorting function\n *\n * @param {Array} edges\n * @returns {Array}\n */\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\n // Better data structures make algorithm much faster.\n , outgoingEdges = makeOutgoingEdges(edges)\n , nodesHash = makeNodesHash(nodes)\n\n // check for unknown nodes\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 try {\n nodeRep = \", node was:\" + JSON.stringify(node)\n } catch(e) {\n nodeRep = \"\"\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\n var outgoing = outgoingEdges.get(node) || new Set()\n outgoing = Array.from(outgoing)\n\n if (i = outgoing.length) {\n predecessors.add(node)\n do {\n var child = outgoing[--i]\n visit(child, nodesHash.get(child), predecessors)\n } while (i)\n predecessors.delete(node)\n }\n\n sorted[--cursor] = node\n }\n}\n\nfunction uniqueNodes(arr){\n var res = new Set()\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 return Array.from(res)\n}\n\nfunction makeOutgoingEdges(arr){\n var edges = new Map()\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 return edges\n}\n\nfunction makeNodesHash(arr){\n var res = new Map()\n for (var i = 0, len = arr.length; i < len; i++) {\n res.set(arr[i], i)\n }\n return res\n}\n","/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport function __createBinding(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n}\r\n\r\nexport function __exportStar(m, exports) {\r\n for (var p in m) if (p !== \"default\" && !exports.hasOwnProperty(p)) exports[p] = m[p];\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n};\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];\r\n result.default = mod;\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, privateMap) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to get private field on non-instance\");\r\n }\r\n return privateMap.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, privateMap, value) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to set private field on non-instance\");\r\n }\r\n privateMap.set(receiver, value);\r\n return value;\r\n}\r\n","export default function(url, options) {\n\toptions = options || {};\n\treturn new Promise( (resolve, reject) => {\n\t\tconst request = new XMLHttpRequest();\n\t\tconst keys = [];\n\t\tconst all = [];\n\t\tconst headers = {};\n\n\t\tconst response = () => ({\n\t\t\tok: (request.status/100|0) == 2,\t\t// 200-299\n\t\t\tstatusText: request.statusText,\n\t\t\tstatus: request.status,\n\t\t\turl: request.responseURL,\n\t\t\ttext: () => Promise.resolve(request.responseText),\n\t\t\tjson: () => Promise.resolve(request.responseText).then(JSON.parse),\n\t\t\tblob: () => Promise.resolve(new Blob([request.response])),\n\t\t\tclone: response,\n\t\t\theaders: {\n\t\t\t\tkeys: () => keys,\n\t\t\t\tentries: () => all,\n\t\t\t\tget: n => headers[n.toLowerCase()],\n\t\t\t\thas: n => n.toLowerCase() in headers\n\t\t\t}\n\t\t});\n\n\t\trequest.open(options.method || 'get', url, true);\n\n\t\trequest.onload = () => {\n\t\t\trequest.getAllResponseHeaders().replace(/^(.*?):[^\\S\\n]*([\\s\\S]*?)$/gm, (m, key, value) => {\n\t\t\t\tkeys.push(key = key.toLowerCase());\n\t\t\t\tall.push([key, value]);\n\t\t\t\theaders[key] = headers[key] ? `${headers[key]},${value}` : value;\n\t\t\t});\n\t\t\tresolve(response());\n\t\t};\n\n\t\trequest.onerror = reject;\n\n\t\trequest.withCredentials = options.credentials=='include';\n\n\t\tfor (const i in options.headers) {\n\t\t\trequest.setRequestHeader(i, options.headers[i]);\n\t\t}\n\n\t\trequest.send(options.body || null);\n\t});\n}\n","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n'use strict';\n\nvar punycode = require('punycode');\nvar util = require('./util');\n\nexports.parse = urlParse;\nexports.resolve = urlResolve;\nexports.resolveObject = urlResolveObject;\nexports.format = urlFormat;\n\nexports.Url = Url;\n\nfunction Url() {\n this.protocol = null;\n this.slashes = null;\n this.auth = null;\n this.host = null;\n this.port = null;\n this.hostname = null;\n this.hash = null;\n this.search = null;\n this.query = null;\n this.pathname = null;\n this.path = null;\n this.href = null;\n}\n\n// Reference: RFC 3986, RFC 1808, RFC 2396\n\n// define these here so at least they only have to be\n// compiled once on the first module load.\nvar protocolPattern = /^([a-z0-9.+-]+:)/i,\n portPattern = /:[0-9]*$/,\n\n // Special case for a simple path URL\n simplePathPattern = /^(\\/\\/?(?!\\/)[^\\?\\s]*)(\\?[^\\s]*)?$/,\n\n // RFC 2396: characters reserved for delimiting URLs.\n // We actually just auto-escape these.\n delims = ['<', '>', '\"', '`', ' ', '\\r', '\\n', '\\t'],\n\n // RFC 2396: characters not allowed for various reasons.\n unwise = ['{', '}', '|', '\\\\', '^', '`'].concat(delims),\n\n // Allowed by RFCs, but cause of XSS attacks. Always escape these.\n autoEscape = ['\\''].concat(unwise),\n // Characters that are never ever allowed in a hostname.\n // Note that any invalid chars are also handled, but these\n // are the ones that are *expected* to be seen, so we fast-path\n // them.\n nonHostChars = ['%', '/', '?', ';', '#'].concat(autoEscape),\n hostEndingChars = ['/', '?', '#'],\n hostnameMaxLen = 255,\n hostnamePartPattern = /^[+a-z0-9A-Z_-]{0,63}$/,\n hostnamePartStart = /^([+a-z0-9A-Z_-]{0,63})(.*)$/,\n // protocols that can allow \"unsafe\" and \"unwise\" chars.\n unsafeProtocol = {\n 'javascript': true,\n 'javascript:': true\n },\n // protocols that never have a hostname.\n hostlessProtocol = {\n 'javascript': true,\n 'javascript:': true\n },\n // protocols that always contain a // bit.\n slashedProtocol = {\n 'http': true,\n 'https': true,\n 'ftp': true,\n 'gopher': true,\n 'file': true,\n 'http:': true,\n 'https:': true,\n 'ftp:': true,\n 'gopher:': true,\n 'file:': true\n },\n querystring = require('querystring');\n\nfunction urlParse(url, parseQueryString, slashesDenoteHost) {\n if (url && util.isObject(url) && url instanceof Url) return url;\n\n var u = new Url;\n u.parse(url, parseQueryString, slashesDenoteHost);\n return u;\n}\n\nUrl.prototype.parse = function(url, parseQueryString, slashesDenoteHost) {\n if (!util.isString(url)) {\n throw new TypeError(\"Parameter 'url' must be a string, not \" + typeof url);\n }\n\n // Copy chrome, IE, opera backslash-handling behavior.\n // Back slashes before the query string get converted to forward slashes\n // See: https://code.google.com/p/chromium/issues/detail?id=25916\n var queryIndex = url.indexOf('?'),\n splitter =\n (queryIndex !== -1 && queryIndex < url.indexOf('#')) ? '?' : '#',\n uSplit = url.split(splitter),\n slashRegex = /\\\\/g;\n uSplit[0] = uSplit[0].replace(slashRegex, '/');\n url = uSplit.join(splitter);\n\n var rest = url;\n\n // trim before proceeding.\n // This is to support parse stuff like \" http://foo.com \\n\"\n rest = rest.trim();\n\n if (!slashesDenoteHost && url.split('#').length === 1) {\n // Try fast path regexp\n var simplePath = simplePathPattern.exec(rest);\n if (simplePath) {\n this.path = rest;\n this.href = rest;\n this.pathname = simplePath[1];\n if (simplePath[2]) {\n this.search = simplePath[2];\n if (parseQueryString) {\n this.query = querystring.parse(this.search.substr(1));\n } else {\n this.query = this.search.substr(1);\n }\n } else if (parseQueryString) {\n this.search = '';\n this.query = {};\n }\n return this;\n }\n }\n\n var proto = protocolPattern.exec(rest);\n if (proto) {\n proto = proto[0];\n var lowerProto = proto.toLowerCase();\n this.protocol = lowerProto;\n rest = rest.substr(proto.length);\n }\n\n // figure out if it's got a host\n // user@server is *always* interpreted as a hostname, and url\n // resolution will treat //foo/bar as host=foo,path=bar because that's\n // how the browser resolves relative URLs.\n if (slashesDenoteHost || proto || rest.match(/^\\/\\/[^@\\/]+@[^@\\/]+/)) {\n var slashes = rest.substr(0, 2) === '//';\n if (slashes && !(proto && hostlessProtocol[proto])) {\n rest = rest.substr(2);\n this.slashes = true;\n }\n }\n\n if (!hostlessProtocol[proto] &&\n (slashes || (proto && !slashedProtocol[proto]))) {\n\n // there's a hostname.\n // the first instance of /, ?, ;, or # ends the host.\n //\n // If there is an @ in the hostname, then non-host chars *are* allowed\n // to the left of the last @ sign, unless some host-ending character\n // comes *before* the @-sign.\n // URLs are obnoxious.\n //\n // ex:\n // http://a@b@c/ => user:a@b host:c\n // http://a@b?@c => user:a host:c path:/?@c\n\n // v0.12 TODO(isaacs): This is not quite how Chrome does things.\n // Review our test case against browsers more comprehensively.\n\n // find the first instance of any hostEndingChars\n var hostEnd = -1;\n for (var i = 0; i < hostEndingChars.length; i++) {\n var hec = rest.indexOf(hostEndingChars[i]);\n if (hec !== -1 && (hostEnd === -1 || hec < hostEnd))\n hostEnd = hec;\n }\n\n // at this point, either we have an explicit point where the\n // auth portion cannot go past, or the last @ char is the decider.\n var auth, atSign;\n if (hostEnd === -1) {\n // atSign can be anywhere.\n atSign = rest.lastIndexOf('@');\n } else {\n // atSign must be in auth portion.\n // http://a@b/c@d => host:b auth:a path:/c@d\n atSign = rest.lastIndexOf('@', hostEnd);\n }\n\n // Now we have a portion which is definitely the auth.\n // Pull that off.\n if (atSign !== -1) {\n auth = rest.slice(0, atSign);\n rest = rest.slice(atSign + 1);\n this.auth = decodeURIComponent(auth);\n }\n\n // the host is the remaining to the left of the first non-host char\n hostEnd = -1;\n for (var i = 0; i < nonHostChars.length; i++) {\n var hec = rest.indexOf(nonHostChars[i]);\n if (hec !== -1 && (hostEnd === -1 || hec < hostEnd))\n hostEnd = hec;\n }\n // if we still have not hit it, then the entire thing is a host.\n if (hostEnd === -1)\n hostEnd = rest.length;\n\n this.host = rest.slice(0, hostEnd);\n rest = rest.slice(hostEnd);\n\n // pull out port.\n this.parseHost();\n\n // we've indicated that there is a hostname,\n // so even if it's empty, it has to be present.\n this.hostname = this.hostname || '';\n\n // if hostname begins with [ and ends with ]\n // assume that it's an IPv6 address.\n var ipv6Hostname = this.hostname[0] === '[' &&\n this.hostname[this.hostname.length - 1] === ']';\n\n // validate a little.\n if (!ipv6Hostname) {\n var hostparts = this.hostname.split(/\\./);\n for (var i = 0, l = hostparts.length; i < l; i++) {\n var part = hostparts[i];\n if (!part) continue;\n if (!part.match(hostnamePartPattern)) {\n var newpart = '';\n for (var j = 0, k = part.length; j < k; j++) {\n if (part.charCodeAt(j) > 127) {\n // we replace non-ASCII char with a temporary placeholder\n // we need this to make sure size of hostname is not\n // broken by replacing non-ASCII by nothing\n newpart += 'x';\n } else {\n newpart += part[j];\n }\n }\n // we test again with ASCII char only\n if (!newpart.match(hostnamePartPattern)) {\n var validParts = hostparts.slice(0, i);\n var notHost = hostparts.slice(i + 1);\n var bit = part.match(hostnamePartStart);\n if (bit) {\n validParts.push(bit[1]);\n notHost.unshift(bit[2]);\n }\n if (notHost.length) {\n rest = '/' + notHost.join('.') + rest;\n }\n this.hostname = validParts.join('.');\n break;\n }\n }\n }\n }\n\n if (this.hostname.length > hostnameMaxLen) {\n this.hostname = '';\n } else {\n // hostnames are always lower case.\n this.hostname = this.hostname.toLowerCase();\n }\n\n if (!ipv6Hostname) {\n // IDNA Support: Returns a punycoded representation of \"domain\".\n // It only converts parts of the domain name that\n // have non-ASCII characters, i.e. it doesn't matter if\n // you call it with a domain that already is ASCII-only.\n this.hostname = punycode.toASCII(this.hostname);\n }\n\n var p = this.port ? ':' + this.port : '';\n var h = this.hostname || '';\n this.host = h + p;\n this.href += this.host;\n\n // strip [ and ] from the hostname\n // the host field still retains them, though\n if (ipv6Hostname) {\n this.hostname = this.hostname.substr(1, this.hostname.length - 2);\n if (rest[0] !== '/') {\n rest = '/' + rest;\n }\n }\n }\n\n // now rest is set to the post-host stuff.\n // chop off any delim chars.\n if (!unsafeProtocol[lowerProto]) {\n\n // First, make 100% sure that any \"autoEscape\" chars get\n // escaped, even if encodeURIComponent doesn't think they\n // need to be.\n for (var i = 0, l = autoEscape.length; i < l; i++) {\n var ae = autoEscape[i];\n if (rest.indexOf(ae) === -1)\n continue;\n var esc = encodeURIComponent(ae);\n if (esc === ae) {\n esc = escape(ae);\n }\n rest = rest.split(ae).join(esc);\n }\n }\n\n\n // chop off from the tail first.\n var hash = rest.indexOf('#');\n if (hash !== -1) {\n // got a fragment string.\n this.hash = rest.substr(hash);\n rest = rest.slice(0, hash);\n }\n var qm = rest.indexOf('?');\n if (qm !== -1) {\n this.search = rest.substr(qm);\n this.query = rest.substr(qm + 1);\n if (parseQueryString) {\n this.query = querystring.parse(this.query);\n }\n rest = rest.slice(0, qm);\n } else if (parseQueryString) {\n // no query string, but parseQueryString still requested\n this.search = '';\n this.query = {};\n }\n if (rest) this.pathname = rest;\n if (slashedProtocol[lowerProto] &&\n this.hostname && !this.pathname) {\n this.pathname = '/';\n }\n\n //to support http.request\n if (this.pathname || this.search) {\n var p = this.pathname || '';\n var s = this.search || '';\n this.path = p + s;\n }\n\n // finally, reconstruct the href based on what has been validated.\n this.href = this.format();\n return this;\n};\n\n// format a parsed object into a url string\nfunction urlFormat(obj) {\n // ensure it's an object, and not a string url.\n // If it's an obj, this is a no-op.\n // this way, you can call url_format() on strings\n // to clean up potentially wonky urls.\n if (util.isString(obj)) obj = urlParse(obj);\n if (!(obj instanceof Url)) return Url.prototype.format.call(obj);\n return obj.format();\n}\n\nUrl.prototype.format = function() {\n var auth = this.auth || '';\n if (auth) {\n auth = encodeURIComponent(auth);\n auth = auth.replace(/%3A/i, ':');\n auth += '@';\n }\n\n var protocol = this.protocol || '',\n pathname = this.pathname || '',\n hash = this.hash || '',\n host = false,\n query = '';\n\n if (this.host) {\n host = auth + this.host;\n } else if (this.hostname) {\n host = auth + (this.hostname.indexOf(':') === -1 ?\n this.hostname :\n '[' + this.hostname + ']');\n if (this.port) {\n host += ':' + this.port;\n }\n }\n\n if (this.query &&\n util.isObject(this.query) &&\n Object.keys(this.query).length) {\n query = querystring.stringify(this.query);\n }\n\n var search = this.search || (query && ('?' + query)) || '';\n\n if (protocol && protocol.substr(-1) !== ':') protocol += ':';\n\n // only the slashedProtocols get the //. Not mailto:, xmpp:, etc.\n // unless they had them to begin with.\n if (this.slashes ||\n (!protocol || slashedProtocol[protocol]) && host !== false) {\n host = '//' + (host || '');\n if (pathname && pathname.charAt(0) !== '/') pathname = '/' + pathname;\n } else if (!host) {\n host = '';\n }\n\n if (hash && hash.charAt(0) !== '#') hash = '#' + hash;\n if (search && search.charAt(0) !== '?') search = '?' + search;\n\n pathname = pathname.replace(/[?#]/g, function(match) {\n return encodeURIComponent(match);\n });\n search = search.replace('#', '%23');\n\n return protocol + host + pathname + search + hash;\n};\n\nfunction urlResolve(source, relative) {\n return urlParse(source, false, true).resolve(relative);\n}\n\nUrl.prototype.resolve = function(relative) {\n return this.resolveObject(urlParse(relative, false, true)).format();\n};\n\nfunction urlResolveObject(source, relative) {\n if (!source) return relative;\n return urlParse(source, false, true).resolveObject(relative);\n}\n\nUrl.prototype.resolveObject = function(relative) {\n if (util.isString(relative)) {\n var rel = new Url();\n rel.parse(relative, false, true);\n relative = rel;\n }\n\n var result = new Url();\n var tkeys = Object.keys(this);\n for (var tk = 0; tk < tkeys.length; tk++) {\n var tkey = tkeys[tk];\n result[tkey] = this[tkey];\n }\n\n // hash is always overridden, no matter what.\n // even href=\"\" will remove it.\n result.hash = relative.hash;\n\n // if the relative url is empty, then there's nothing left to do here.\n if (relative.href === '') {\n result.href = result.format();\n return result;\n }\n\n // hrefs like //foo/bar always cut to the protocol.\n if (relative.slashes && !relative.protocol) {\n // take everything except the protocol from relative\n var rkeys = Object.keys(relative);\n for (var rk = 0; rk < rkeys.length; rk++) {\n var rkey = rkeys[rk];\n if (rkey !== 'protocol')\n result[rkey] = relative[rkey];\n }\n\n //urlParse appends trailing / to urls like http://www.example.com\n if (slashedProtocol[result.protocol] &&\n result.hostname && !result.pathname) {\n result.path = result.pathname = '/';\n }\n\n result.href = result.format();\n return result;\n }\n\n if (relative.protocol && relative.protocol !== result.protocol) {\n // if it's a known url protocol, then changing\n // the protocol does weird things\n // first, if it's not file:, then we MUST have a host,\n // and if there was a path\n // to begin with, then we MUST have a path.\n // if it is file:, then the host is dropped,\n // because that's known to be hostless.\n // anything else is assumed to be absolute.\n if (!slashedProtocol[relative.protocol]) {\n var keys = Object.keys(relative);\n for (var v = 0; v < keys.length; v++) {\n var k = keys[v];\n result[k] = relative[k];\n }\n result.href = result.format();\n return result;\n }\n\n result.protocol = relative.protocol;\n if (!relative.host && !hostlessProtocol[relative.protocol]) {\n var relPath = (relative.pathname || '').split('/');\n while (relPath.length && !(relative.host = relPath.shift()));\n if (!relative.host) relative.host = '';\n if (!relative.hostname) relative.hostname = '';\n if (relPath[0] !== '') relPath.unshift('');\n if (relPath.length < 2) relPath.unshift('');\n result.pathname = relPath.join('/');\n } else {\n result.pathname = relative.pathname;\n }\n result.search = relative.search;\n result.query = relative.query;\n result.host = relative.host || '';\n result.auth = relative.auth;\n result.hostname = relative.hostname || relative.host;\n result.port = relative.port;\n // to support http.request\n if (result.pathname || result.search) {\n var p = result.pathname || '';\n var s = result.search || '';\n result.path = p + s;\n }\n result.slashes = result.slashes || relative.slashes;\n result.href = result.format();\n return result;\n }\n\n var isSourceAbs = (result.pathname && result.pathname.charAt(0) === '/'),\n isRelAbs = (\n relative.host ||\n relative.pathname && relative.pathname.charAt(0) === '/'\n ),\n mustEndAbs = (isRelAbs || isSourceAbs ||\n (result.host && relative.pathname)),\n removeAllDots = mustEndAbs,\n srcPath = result.pathname && result.pathname.split('/') || [],\n relPath = relative.pathname && relative.pathname.split('/') || [],\n psychotic = result.protocol && !slashedProtocol[result.protocol];\n\n // if the url is a non-slashed url, then relative\n // links like ../.. should be able\n // to crawl up to the hostname, as well. This is strange.\n // result.protocol has already been set by now.\n // Later on, put the first path part into the host field.\n if (psychotic) {\n result.hostname = '';\n result.port = null;\n if (result.host) {\n if (srcPath[0] === '') srcPath[0] = result.host;\n else srcPath.unshift(result.host);\n }\n result.host = '';\n if (relative.protocol) {\n relative.hostname = null;\n relative.port = null;\n if (relative.host) {\n if (relPath[0] === '') relPath[0] = relative.host;\n else relPath.unshift(relative.host);\n }\n relative.host = null;\n }\n mustEndAbs = mustEndAbs && (relPath[0] === '' || srcPath[0] === '');\n }\n\n if (isRelAbs) {\n // it's absolute.\n result.host = (relative.host || relative.host === '') ?\n relative.host : result.host;\n result.hostname = (relative.hostname || relative.hostname === '') ?\n relative.hostname : result.hostname;\n result.search = relative.search;\n result.query = relative.query;\n srcPath = relPath;\n // fall through to the dot-handling below.\n } else if (relPath.length) {\n // it's relative\n // throw away the existing file, and take the new path instead.\n if (!srcPath) srcPath = [];\n srcPath.pop();\n srcPath = srcPath.concat(relPath);\n result.search = relative.search;\n result.query = relative.query;\n } else if (!util.isNullOrUndefined(relative.search)) {\n // just pull out the search.\n // like href='?foo'.\n // Put this after the other two cases because it simplifies the booleans\n if (psychotic) {\n result.hostname = result.host = srcPath.shift();\n //occationaly the auth can get stuck only in host\n //this especially happens in cases like\n //url.resolveObject('mailto:local1@domain1', 'local2@domain2')\n var authInHost = result.host && result.host.indexOf('@') > 0 ?\n result.host.split('@') : false;\n if (authInHost) {\n result.auth = authInHost.shift();\n result.host = result.hostname = authInHost.shift();\n }\n }\n result.search = relative.search;\n result.query = relative.query;\n //to support http.request\n if (!util.isNull(result.pathname) || !util.isNull(result.search)) {\n result.path = (result.pathname ? result.pathname : '') +\n (result.search ? result.search : '');\n }\n result.href = result.format();\n return result;\n }\n\n if (!srcPath.length) {\n // no path at all. easy.\n // we've already handled the other stuff above.\n result.pathname = null;\n //to support http.request\n if (result.search) {\n result.path = '/' + result.search;\n } else {\n result.path = null;\n }\n result.href = result.format();\n return result;\n }\n\n // if a url ENDs in . or .., then it must get a trailing slash.\n // however, if it ends in anything else non-slashy,\n // then it must NOT get a trailing slash.\n var last = srcPath.slice(-1)[0];\n var hasTrailingSlash = (\n (result.host || relative.host || srcPath.length > 1) &&\n (last === '.' || last === '..') || last === '');\n\n // strip single dots, resolve double dots to parent dir\n // if the path tries to go above the root, `up` ends up > 0\n var up = 0;\n for (var i = srcPath.length; i >= 0; i--) {\n last = srcPath[i];\n if (last === '.') {\n srcPath.splice(i, 1);\n } else if (last === '..') {\n srcPath.splice(i, 1);\n up++;\n } else if (up) {\n srcPath.splice(i, 1);\n up--;\n }\n }\n\n // if the path is allowed to go above the root, restore leading ..s\n if (!mustEndAbs && !removeAllDots) {\n for (; up--; up) {\n srcPath.unshift('..');\n }\n }\n\n if (mustEndAbs && srcPath[0] !== '' &&\n (!srcPath[0] || srcPath[0].charAt(0) !== '/')) {\n srcPath.unshift('');\n }\n\n if (hasTrailingSlash && (srcPath.join('/').substr(-1) !== '/')) {\n srcPath.push('');\n }\n\n var isAbsolute = srcPath[0] === '' ||\n (srcPath[0] && srcPath[0].charAt(0) === '/');\n\n // put the host back\n if (psychotic) {\n result.hostname = result.host = isAbsolute ? '' :\n srcPath.length ? srcPath.shift() : '';\n //occationaly the auth can get stuck only in host\n //this especially happens in cases like\n //url.resolveObject('mailto:local1@domain1', 'local2@domain2')\n var authInHost = result.host && result.host.indexOf('@') > 0 ?\n result.host.split('@') : false;\n if (authInHost) {\n result.auth = authInHost.shift();\n result.host = result.hostname = authInHost.shift();\n }\n }\n\n mustEndAbs = mustEndAbs || (result.host && srcPath.length);\n\n if (mustEndAbs && !isAbsolute) {\n srcPath.unshift('');\n }\n\n if (!srcPath.length) {\n result.pathname = null;\n result.path = null;\n } else {\n result.pathname = srcPath.join('/');\n }\n\n //to support request.http\n if (!util.isNull(result.pathname) || !util.isNull(result.search)) {\n result.path = (result.pathname ? result.pathname : '') +\n (result.search ? result.search : '');\n }\n result.auth = relative.auth || result.auth;\n result.slashes = result.slashes || relative.slashes;\n result.href = result.format();\n return result;\n};\n\nUrl.prototype.parseHost = function() {\n var host = this.host;\n var port = portPattern.exec(host);\n if (port) {\n port = port[0];\n if (port !== ':') {\n this.port = port.substr(1);\n }\n host = host.substr(0, host.length - port.length);\n }\n if (host) this.hostname = host;\n};\n","'use strict';\n\nmodule.exports = {\n isString: function(arg) {\n return typeof(arg) === 'string';\n },\n isObject: function(arg) {\n return typeof(arg) === 'object' && arg !== null;\n },\n isNull: function(arg) {\n return arg === null;\n },\n isNullOrUndefined: function(arg) {\n return arg == null;\n }\n};\n","var v1 = require('./v1');\nvar v4 = require('./v4');\n\nvar uuid = v4;\nuuid.v1 = v1;\nuuid.v4 = v4;\n\nmodule.exports = uuid;\n","/**\n * Convert array of 16 byte values to UUID string format of the form:\n * XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX\n */\nvar byteToHex = [];\nfor (var i = 0; i < 256; ++i) {\n byteToHex[i] = (i + 0x100).toString(16).substr(1);\n}\n\nfunction bytesToUuid(buf, offset) {\n var i = offset || 0;\n var bth = byteToHex;\n // join used to fix memory issue caused by concatenation: https://bugs.chromium.org/p/v8/issues/detail?id=3175#c4\n return ([\n bth[buf[i++]], bth[buf[i++]],\n bth[buf[i++]], bth[buf[i++]], '-',\n bth[buf[i++]], bth[buf[i++]], '-',\n bth[buf[i++]], bth[buf[i++]], '-',\n bth[buf[i++]], bth[buf[i++]], '-',\n bth[buf[i++]], bth[buf[i++]],\n bth[buf[i++]], bth[buf[i++]],\n bth[buf[i++]], bth[buf[i++]]\n ]).join('');\n}\n\nmodule.exports = bytesToUuid;\n","// Unique ID creation requires a high quality random # generator. In the\n// browser this is a little complicated due to unknown quality of Math.random()\n// and inconsistent support for the `crypto` API. We do the best we can via\n// feature-detection\n\n// getRandomValues needs to be invoked in a context where \"this\" is a Crypto\n// implementation. Also, find the complete implementation of crypto on IE11.\nvar getRandomValues = (typeof(crypto) != 'undefined' && crypto.getRandomValues && crypto.getRandomValues.bind(crypto)) ||\n (typeof(msCrypto) != 'undefined' && typeof window.msCrypto.getRandomValues == 'function' && msCrypto.getRandomValues.bind(msCrypto));\n\nif (getRandomValues) {\n // WHATWG crypto RNG - http://wiki.whatwg.org/wiki/Crypto\n var rnds8 = new Uint8Array(16); // eslint-disable-line no-undef\n\n module.exports = function whatwgRNG() {\n getRandomValues(rnds8);\n return rnds8;\n };\n} else {\n // Math.random()-based (RNG)\n //\n // If all else fails, use Math.random(). It's fast, but is of unspecified\n // quality.\n var rnds = new Array(16);\n\n module.exports = function mathRNG() {\n for (var i = 0, r; i < 16; i++) {\n if ((i & 0x03) === 0) r = Math.random() * 0x100000000;\n rnds[i] = r >>> ((i & 0x03) << 3) & 0xff;\n }\n\n return rnds;\n };\n}\n","var rng = require('./lib/rng');\nvar bytesToUuid = require('./lib/bytesToUuid');\n\n// **`v1()` - Generate time-based UUID**\n//\n// Inspired by https://github.com/LiosK/UUID.js\n// and http://docs.python.org/library/uuid.html\n\nvar _nodeId;\nvar _clockseq;\n\n// Previous uuid creation time\nvar _lastMSecs = 0;\nvar _lastNSecs = 0;\n\n// See https://github.com/uuidjs/uuid for API details\nfunction v1(options, buf, offset) {\n var i = buf && offset || 0;\n var b = buf || [];\n\n options = options || {};\n var node = options.node || _nodeId;\n var clockseq = options.clockseq !== undefined ? options.clockseq : _clockseq;\n\n // node and clockseq need to be initialized to random values if they're not\n // specified. We do this lazily to minimize issues related to insufficient\n // system entropy. See #189\n if (node == null || clockseq == null) {\n var seedBytes = rng();\n if (node == null) {\n // Per 4.5, create and 48-bit node id, (47 random bits + multicast bit = 1)\n node = _nodeId = [\n seedBytes[0] | 0x01,\n seedBytes[1], seedBytes[2], seedBytes[3], seedBytes[4], seedBytes[5]\n ];\n }\n if (clockseq == null) {\n // Per 4.2.2, randomize (14 bit) clockseq\n clockseq = _clockseq = (seedBytes[6] << 8 | seedBytes[7]) & 0x3fff;\n }\n }\n\n // UUID timestamps are 100 nano-second units since the Gregorian epoch,\n // (1582-10-15 00:00). JSNumbers aren't precise enough for this, so\n // time is handled internally as 'msecs' (integer milliseconds) and 'nsecs'\n // (100-nanoseconds offset from msecs) since unix epoch, 1970-01-01 00:00.\n var msecs = options.msecs !== undefined ? options.msecs : new Date().getTime();\n\n // Per 4.2.1.2, use count of uuid's generated during the current clock\n // cycle to simulate higher resolution clock\n var nsecs = options.nsecs !== undefined ? options.nsecs : _lastNSecs + 1;\n\n // Time since last uuid creation (in msecs)\n var dt = (msecs - _lastMSecs) + (nsecs - _lastNSecs)/10000;\n\n // Per 4.2.1.2, Bump clockseq on clock regression\n if (dt < 0 && options.clockseq === undefined) {\n clockseq = clockseq + 1 & 0x3fff;\n }\n\n // Reset nsecs if clock regresses (new clockseq) or we've moved onto a new\n // time interval\n if ((dt < 0 || msecs > _lastMSecs) && options.nsecs === undefined) {\n nsecs = 0;\n }\n\n // Per 4.2.1.2 Throw error if too many uuids are requested\n if (nsecs >= 10000) {\n throw new Error('uuid.v1(): Can\\'t create more than 10M uuids/sec');\n }\n\n _lastMSecs = msecs;\n _lastNSecs = nsecs;\n _clockseq = clockseq;\n\n // Per 4.1.4 - Convert from unix epoch to Gregorian epoch\n msecs += 12219292800000;\n\n // `time_low`\n var tl = ((msecs & 0xfffffff) * 10000 + nsecs) % 0x100000000;\n b[i++] = tl >>> 24 & 0xff;\n b[i++] = tl >>> 16 & 0xff;\n b[i++] = tl >>> 8 & 0xff;\n b[i++] = tl & 0xff;\n\n // `time_mid`\n var tmh = (msecs / 0x100000000 * 10000) & 0xfffffff;\n b[i++] = tmh >>> 8 & 0xff;\n b[i++] = tmh & 0xff;\n\n // `time_high_and_version`\n b[i++] = tmh >>> 24 & 0xf | 0x10; // include version\n b[i++] = tmh >>> 16 & 0xff;\n\n // `clock_seq_hi_and_reserved` (Per 4.2.2 - include variant)\n b[i++] = clockseq >>> 8 | 0x80;\n\n // `clock_seq_low`\n b[i++] = clockseq & 0xff;\n\n // `node`\n for (var n = 0; n < 6; ++n) {\n b[i + n] = node[n];\n }\n\n return buf ? buf : bytesToUuid(b);\n}\n\nmodule.exports = v1;\n","var rng = require('./lib/rng');\nvar bytesToUuid = require('./lib/bytesToUuid');\n\nfunction v4(options, buf, offset) {\n var i = buf && offset || 0;\n\n if (typeof(options) == 'string') {\n buf = options === 'binary' ? new Array(16) : null;\n options = null;\n }\n options = options || {};\n\n var rnds = options.random || (options.rng || rng)();\n\n // Per 4.4, set bits for version and `clock_seq_hi_and_reserved`\n rnds[6] = (rnds[6] & 0x0f) | 0x40;\n rnds[8] = (rnds[8] & 0x3f) | 0x80;\n\n // Copy bytes to buffer, if provided\n if (buf) {\n for (var ii = 0; ii < 16; ++ii) {\n buf[i + ii] = rnds[ii];\n }\n }\n\n return buf || bytesToUuid(rnds);\n}\n\nmodule.exports = v4;\n","/**\n * Copyright (c) 2014-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\n/**\n * Similar to invariant but only logs a warning if the condition is not met.\n * This can be used to log issues in development environments in critical\n * paths. Removing the logging code for production environments will keep the\n * same logic and follow the same code paths.\n */\n\nvar __DEV__ = process.env.NODE_ENV !== 'production';\n\nvar warning = function() {};\n\nif (__DEV__) {\n var printWarning = function printWarning(format, args) {\n var len = arguments.length;\n args = new Array(len > 1 ? len - 1 : 0);\n for (var key = 1; key < len; key++) {\n args[key - 1] = arguments[key];\n }\n var argIndex = 0;\n var message = 'Warning: ' +\n format.replace(/%s/g, function() {\n return args[argIndex++];\n });\n if (typeof console !== 'undefined') {\n console.error(message);\n }\n try {\n // --- Welcome to debugging React ---\n // This error was thrown as a convenience so that you can use this stack\n // to find the callsite that caused this warning to fire.\n throw new Error(message);\n } catch (x) {}\n }\n\n warning = function(condition, format, args) {\n var len = arguments.length;\n args = new Array(len > 2 ? len - 2 : 0);\n for (var key = 2; key < len; key++) {\n args[key - 2] = arguments[key];\n }\n if (format === undefined) {\n throw new Error(\n '`warning(condition, format, ...args)` requires a warning ' +\n 'message argument'\n );\n }\n if (!condition) {\n printWarning.apply(null, [format].concat(args));\n }\n };\n}\n\nmodule.exports = warning;\n","module.exports = require('./lib/Observable.js').Observable;\n","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.Observable = void 0;\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\n// === Symbol Support ===\nvar hasSymbols = function () {\n return typeof Symbol === 'function';\n};\n\nvar hasSymbol = function (name) {\n return hasSymbols() && Boolean(Symbol[name]);\n};\n\nvar getSymbol = function (name) {\n return hasSymbol(name) ? Symbol[name] : '@@' + name;\n};\n\nif (hasSymbols() && !hasSymbol('observable')) {\n Symbol.observable = Symbol('observable');\n}\n\nvar SymbolIterator = getSymbol('iterator');\nvar SymbolObservable = getSymbol('observable');\nvar SymbolSpecies = getSymbol('species'); // === Abstract Operations ===\n\nfunction getMethod(obj, key) {\n var value = obj[key];\n if (value == null) return undefined;\n if (typeof value !== 'function') throw new TypeError(value + ' is not a function');\n return value;\n}\n\nfunction getSpecies(obj) {\n var ctor = obj.constructor;\n\n if (ctor !== undefined) {\n ctor = ctor[SymbolSpecies];\n\n if (ctor === null) {\n ctor = undefined;\n }\n }\n\n return ctor !== undefined ? ctor : Observable;\n}\n\nfunction isObservable(x) {\n return x instanceof Observable; // SPEC: Brand check\n}\n\nfunction hostReportError(e) {\n if (hostReportError.log) {\n hostReportError.log(e);\n } else {\n setTimeout(function () {\n throw e;\n });\n }\n}\n\nfunction enqueue(fn) {\n Promise.resolve().then(function () {\n try {\n fn();\n } catch (e) {\n hostReportError(e);\n }\n });\n}\n\nfunction cleanupSubscription(subscription) {\n var cleanup = subscription._cleanup;\n if (cleanup === undefined) return;\n subscription._cleanup = undefined;\n\n if (!cleanup) {\n return;\n }\n\n try {\n if (typeof cleanup === 'function') {\n cleanup();\n } else {\n var unsubscribe = getMethod(cleanup, 'unsubscribe');\n\n if (unsubscribe) {\n unsubscribe.call(cleanup);\n }\n }\n } catch (e) {\n hostReportError(e);\n }\n}\n\nfunction closeSubscription(subscription) {\n subscription._observer = undefined;\n subscription._queue = undefined;\n subscription._state = 'closed';\n}\n\nfunction flushSubscription(subscription) {\n var queue = subscription._queue;\n\n if (!queue) {\n return;\n }\n\n subscription._queue = undefined;\n subscription._state = 'ready';\n\n for (var i = 0; i < queue.length; ++i) {\n notifySubscription(subscription, queue[i].type, queue[i].value);\n if (subscription._state === 'closed') break;\n }\n}\n\nfunction notifySubscription(subscription, type, value) {\n subscription._state = 'running';\n var observer = subscription._observer;\n\n try {\n var m = getMethod(observer, type);\n\n switch (type) {\n case 'next':\n if (m) m.call(observer, value);\n break;\n\n case 'error':\n closeSubscription(subscription);\n if (m) m.call(observer, value);else throw value;\n break;\n\n case 'complete':\n closeSubscription(subscription);\n if (m) m.call(observer);\n break;\n }\n } catch (e) {\n hostReportError(e);\n }\n\n if (subscription._state === 'closed') cleanupSubscription(subscription);else if (subscription._state === 'running') subscription._state = 'ready';\n}\n\nfunction onNotify(subscription, type, value) {\n if (subscription._state === 'closed') return;\n\n if (subscription._state === 'buffering') {\n subscription._queue.push({\n type: type,\n value: value\n });\n\n return;\n }\n\n if (subscription._state !== 'ready') {\n subscription._state = 'buffering';\n subscription._queue = [{\n type: type,\n value: value\n }];\n enqueue(function () {\n return flushSubscription(subscription);\n });\n return;\n }\n\n notifySubscription(subscription, type, value);\n}\n\nvar Subscription =\n/*#__PURE__*/\nfunction () {\n function Subscription(observer, subscriber) {\n _classCallCheck(this, Subscription);\n\n // ASSERT: observer is an object\n // ASSERT: subscriber is callable\n this._cleanup = undefined;\n this._observer = observer;\n this._queue = undefined;\n this._state = 'initializing';\n var subscriptionObserver = new SubscriptionObserver(this);\n\n try {\n this._cleanup = subscriber.call(undefined, subscriptionObserver);\n } catch (e) {\n subscriptionObserver.error(e);\n }\n\n if (this._state === 'initializing') this._state = 'ready';\n }\n\n _createClass(Subscription, [{\n key: \"unsubscribe\",\n value: function unsubscribe() {\n if (this._state !== 'closed') {\n closeSubscription(this);\n cleanupSubscription(this);\n }\n }\n }, {\n key: \"closed\",\n get: function () {\n return this._state === 'closed';\n }\n }]);\n\n return Subscription;\n}();\n\nvar SubscriptionObserver =\n/*#__PURE__*/\nfunction () {\n function SubscriptionObserver(subscription) {\n _classCallCheck(this, SubscriptionObserver);\n\n this._subscription = subscription;\n }\n\n _createClass(SubscriptionObserver, [{\n key: \"next\",\n value: function next(value) {\n onNotify(this._subscription, 'next', value);\n }\n }, {\n key: \"error\",\n value: function error(value) {\n onNotify(this._subscription, 'error', value);\n }\n }, {\n key: \"complete\",\n value: function complete() {\n onNotify(this._subscription, 'complete');\n }\n }, {\n key: \"closed\",\n get: function () {\n return this._subscription._state === 'closed';\n }\n }]);\n\n return SubscriptionObserver;\n}();\n\nvar Observable =\n/*#__PURE__*/\nfunction () {\n function Observable(subscriber) {\n _classCallCheck(this, Observable);\n\n if (!(this instanceof Observable)) throw new TypeError('Observable cannot be called as a function');\n if (typeof subscriber !== 'function') throw new TypeError('Observable initializer must be a function');\n this._subscriber = subscriber;\n }\n\n _createClass(Observable, [{\n key: \"subscribe\",\n value: function subscribe(observer) {\n if (typeof observer !== 'object' || observer === null) {\n observer = {\n next: observer,\n error: arguments[1],\n complete: arguments[2]\n };\n }\n\n return new Subscription(observer, this._subscriber);\n }\n }, {\n key: \"forEach\",\n value: function forEach(fn) {\n var _this = this;\n\n return new Promise(function (resolve, reject) {\n if (typeof fn !== 'function') {\n reject(new TypeError(fn + ' is not a function'));\n return;\n }\n\n function done() {\n subscription.unsubscribe();\n resolve();\n }\n\n var subscription = _this.subscribe({\n next: function (value) {\n try {\n fn(value, done);\n } catch (e) {\n reject(e);\n subscription.unsubscribe();\n }\n },\n error: reject,\n complete: resolve\n });\n });\n }\n }, {\n key: \"map\",\n value: function map(fn) {\n var _this2 = this;\n\n if (typeof fn !== 'function') throw new TypeError(fn + ' is not a function');\n var C = getSpecies(this);\n return new C(function (observer) {\n return _this2.subscribe({\n next: function (value) {\n try {\n value = fn(value);\n } catch (e) {\n return observer.error(e);\n }\n\n observer.next(value);\n },\n error: function (e) {\n observer.error(e);\n },\n complete: function () {\n observer.complete();\n }\n });\n });\n }\n }, {\n key: \"filter\",\n value: function filter(fn) {\n var _this3 = this;\n\n if (typeof fn !== 'function') throw new TypeError(fn + ' is not a function');\n var C = getSpecies(this);\n return new C(function (observer) {\n return _this3.subscribe({\n next: function (value) {\n try {\n if (!fn(value)) return;\n } catch (e) {\n return observer.error(e);\n }\n\n observer.next(value);\n },\n error: function (e) {\n observer.error(e);\n },\n complete: function () {\n observer.complete();\n }\n });\n });\n }\n }, {\n key: \"reduce\",\n value: function reduce(fn) {\n var _this4 = this;\n\n if (typeof fn !== 'function') throw new TypeError(fn + ' is not a function');\n var C = getSpecies(this);\n var hasSeed = arguments.length > 1;\n var hasValue = false;\n var seed = arguments[1];\n var acc = seed;\n return new C(function (observer) {\n return _this4.subscribe({\n next: function (value) {\n var first = !hasValue;\n hasValue = true;\n\n if (!first || hasSeed) {\n try {\n acc = fn(acc, value);\n } catch (e) {\n return observer.error(e);\n }\n } else {\n acc = value;\n }\n },\n error: function (e) {\n observer.error(e);\n },\n complete: function () {\n if (!hasValue && !hasSeed) return observer.error(new TypeError('Cannot reduce an empty sequence'));\n observer.next(acc);\n observer.complete();\n }\n });\n });\n }\n }, {\n key: \"concat\",\n value: function concat() {\n var _this5 = this;\n\n for (var _len = arguments.length, sources = new Array(_len), _key = 0; _key < _len; _key++) {\n sources[_key] = arguments[_key];\n }\n\n var C = getSpecies(this);\n return new C(function (observer) {\n var subscription;\n var index = 0;\n\n function startNext(next) {\n subscription = next.subscribe({\n next: function (v) {\n observer.next(v);\n },\n error: function (e) {\n observer.error(e);\n },\n complete: function () {\n if (index === sources.length) {\n subscription = undefined;\n observer.complete();\n } else {\n startNext(C.from(sources[index++]));\n }\n }\n });\n }\n\n startNext(_this5);\n return function () {\n if (subscription) {\n subscription.unsubscribe();\n subscription = undefined;\n }\n };\n });\n }\n }, {\n key: \"flatMap\",\n value: function flatMap(fn) {\n var _this6 = this;\n\n if (typeof fn !== 'function') throw new TypeError(fn + ' is not a function');\n var C = getSpecies(this);\n return new C(function (observer) {\n var subscriptions = [];\n\n var outer = _this6.subscribe({\n next: function (value) {\n if (fn) {\n try {\n value = fn(value);\n } catch (e) {\n return observer.error(e);\n }\n }\n\n var inner = C.from(value).subscribe({\n next: function (value) {\n observer.next(value);\n },\n error: function (e) {\n observer.error(e);\n },\n complete: function () {\n var i = subscriptions.indexOf(inner);\n if (i >= 0) subscriptions.splice(i, 1);\n completeIfDone();\n }\n });\n subscriptions.push(inner);\n },\n error: function (e) {\n observer.error(e);\n },\n complete: function () {\n completeIfDone();\n }\n });\n\n function completeIfDone() {\n if (outer.closed && subscriptions.length === 0) observer.complete();\n }\n\n return function () {\n subscriptions.forEach(function (s) {\n return s.unsubscribe();\n });\n outer.unsubscribe();\n };\n });\n }\n }, {\n key: SymbolObservable,\n value: function () {\n return this;\n }\n }], [{\n key: \"from\",\n value: function from(x) {\n var C = typeof this === 'function' ? this : Observable;\n if (x == null) throw new TypeError(x + ' is not an object');\n var method = getMethod(x, SymbolObservable);\n\n if (method) {\n var observable = method.call(x);\n if (Object(observable) !== observable) throw new TypeError(observable + ' is not an object');\n if (isObservable(observable) && observable.constructor === C) return observable;\n return new C(function (observer) {\n return observable.subscribe(observer);\n });\n }\n\n if (hasSymbol('iterator')) {\n method = getMethod(x, SymbolIterator);\n\n if (method) {\n return new C(function (observer) {\n enqueue(function () {\n if (observer.closed) return;\n var _iteratorNormalCompletion = true;\n var _didIteratorError = false;\n var _iteratorError = undefined;\n\n try {\n for (var _iterator = method.call(x)[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {\n var _item = _step.value;\n observer.next(_item);\n if (observer.closed) return;\n }\n } catch (err) {\n _didIteratorError = true;\n _iteratorError = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion && _iterator.return != null) {\n _iterator.return();\n }\n } finally {\n if (_didIteratorError) {\n throw _iteratorError;\n }\n }\n }\n\n observer.complete();\n });\n });\n }\n }\n\n if (Array.isArray(x)) {\n return new C(function (observer) {\n enqueue(function () {\n if (observer.closed) return;\n\n for (var i = 0; i < x.length; ++i) {\n observer.next(x[i]);\n if (observer.closed) return;\n }\n\n observer.complete();\n });\n });\n }\n\n throw new TypeError(x + ' is not observable');\n }\n }, {\n key: \"of\",\n value: function of() {\n for (var _len2 = arguments.length, items = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n items[_key2] = arguments[_key2];\n }\n\n var C = typeof this === 'function' ? this : Observable;\n return new C(function (observer) {\n enqueue(function () {\n if (observer.closed) return;\n\n for (var i = 0; i < items.length; ++i) {\n observer.next(items[i]);\n if (observer.closed) return;\n }\n\n observer.complete();\n });\n });\n }\n }, {\n key: SymbolSpecies,\n get: function () {\n return this;\n }\n }]);\n\n return Observable;\n}();\n\nexports.Observable = Observable;\n\nif (hasSymbols()) {\n Object.defineProperty(Observable, Symbol('extensions'), {\n value: {\n symbol: SymbolObservable,\n hostReportError: hostReportError\n },\n configurable: true\n });\n}","function _assertThisInitialized(self) {\n if (self === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n return self;\n}\nmodule.exports = _assertThisInitialized, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","function _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\nmodule.exports = _classCallCheck, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","var toPropertyKey = require(\"./toPropertyKey.js\");\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, toPropertyKey(descriptor.key), descriptor);\n }\n}\nfunction _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n Object.defineProperty(Constructor, \"prototype\", {\n writable: false\n });\n return Constructor;\n}\nmodule.exports = _createClass, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","var getPrototypeOf = require(\"./getPrototypeOf.js\");\nvar isNativeReflectConstruct = require(\"./isNativeReflectConstruct.js\");\nvar possibleConstructorReturn = require(\"./possibleConstructorReturn.js\");\nfunction _createSuper(Derived) {\n var hasNativeReflectConstruct = isNativeReflectConstruct();\n return function _createSuperInternal() {\n var Super = getPrototypeOf(Derived),\n result;\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 return possibleConstructorReturn(this, result);\n };\n}\nmodule.exports = _createSuper, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","function _getPrototypeOf(o) {\n module.exports = _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) {\n return o.__proto__ || Object.getPrototypeOf(o);\n }, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;\n return _getPrototypeOf(o);\n}\nmodule.exports = _getPrototypeOf, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","var setPrototypeOf = require(\"./setPrototypeOf.js\");\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 subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n writable: true,\n configurable: true\n }\n });\n Object.defineProperty(subClass, \"prototype\", {\n writable: false\n });\n if (superClass) setPrototypeOf(subClass, superClass);\n}\nmodule.exports = _inherits, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","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 try {\n Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {}));\n return true;\n } catch (e) {\n return false;\n }\n}\nmodule.exports = _isNativeReflectConstruct, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","var _typeof = require(\"./typeof.js\")[\"default\"];\nvar assertThisInitialized = require(\"./assertThisInitialized.js\");\nfunction _possibleConstructorReturn(self, call) {\n if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) {\n return call;\n } else if (call !== void 0) {\n throw new TypeError(\"Derived constructors may only return object or undefined\");\n }\n return assertThisInitialized(self);\n}\nmodule.exports = _possibleConstructorReturn, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","function _setPrototypeOf(o, p) {\n module.exports = _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n }, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;\n return _setPrototypeOf(o, p);\n}\nmodule.exports = _setPrototypeOf, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","var _typeof = require(\"./typeof.js\")[\"default\"];\nfunction _toPrimitive(input, hint) {\n if (_typeof(input) !== \"object\" || input === null) return input;\n var prim = input[Symbol.toPrimitive];\n if (prim !== undefined) {\n var res = prim.call(input, hint || \"default\");\n if (_typeof(res) !== \"object\") return res;\n throw new TypeError(\"@@toPrimitive must return a primitive value.\");\n }\n return (hint === \"string\" ? String : Number)(input);\n}\nmodule.exports = _toPrimitive, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","var _typeof = require(\"./typeof.js\")[\"default\"];\nvar toPrimitive = require(\"./toPrimitive.js\");\nfunction _toPropertyKey(arg) {\n var key = toPrimitive(arg, \"string\");\n return _typeof(key) === \"symbol\" ? key : String(key);\n}\nmodule.exports = _toPropertyKey, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","function _typeof(obj) {\n \"@babel/helpers - typeof\";\n\n return (module.exports = _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) {\n return typeof obj;\n } : function (obj) {\n return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n }, module.exports.__esModule = true, module.exports[\"default\"] = module.exports), _typeof(obj);\n}\nmodule.exports = _typeof, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\tid: moduleId,\n\t\tloaded: false,\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n\t// Flag the module as loaded\n\tmodule.loaded = true;\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = function(module) {\n\tvar getter = module && module.__esModule ?\n\t\tfunction() { return module['default']; } :\n\t\tfunction() { return module; };\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","var getProto = Object.getPrototypeOf ? function(obj) { return Object.getPrototypeOf(obj); } : function(obj) { return obj.__proto__; };\nvar leafPrototypes;\n// create a fake namespace object\n// mode & 1: value is a module id, require it\n// mode & 2: merge all properties of value into the ns\n// mode & 4: return value when already ns object\n// mode & 16: return value when it's Promise-like\n// mode & 8|1: behave like require\n__webpack_require__.t = function(value, mode) {\n\tif(mode & 1) value = this(value);\n\tif(mode & 8) return value;\n\tif(typeof value === 'object' && value) {\n\t\tif((mode & 4) && value.__esModule) return value;\n\t\tif((mode & 16) && typeof value.then === 'function') return value;\n\t}\n\tvar ns = Object.create(null);\n\t__webpack_require__.r(ns);\n\tvar def = {};\n\tleafPrototypes = leafPrototypes || [null, getProto({}), getProto([]), getProto(getProto)];\n\tfor(var current = mode & 2 && value; typeof current == 'object' && !~leafPrototypes.indexOf(current); current = getProto(current)) {\n\t\tObject.getOwnPropertyNames(current).forEach(function(key) { def[key] = function() { return value[key]; }; });\n\t}\n\tdef['default'] = function() { return value; };\n\t__webpack_require__.d(ns, def);\n\treturn ns;\n};","// define getter functions for harmony exports\n__webpack_require__.d = function(exports, definition) {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.g = (function() {\n\tif (typeof globalThis === 'object') return globalThis;\n\ttry {\n\t\treturn this || new Function('return this')();\n\t} catch (e) {\n\t\tif (typeof window === 'object') return window;\n\t}\n})();","__webpack_require__.hmd = function(module) {\n\tmodule = Object.create(module);\n\tif (!module.children) module.children = [];\n\tObject.defineProperty(module, 'exports', {\n\t\tenumerable: true,\n\t\tset: function() {\n\t\t\tthrow new Error('ES Modules may not assign module.exports or exports.*, Use ESM export syntax, instead: ' + module.id);\n\t\t}\n\t});\n\treturn module;\n};","__webpack_require__.o = function(obj, prop) { return Object.prototype.hasOwnProperty.call(obj, prop); }","// define __esModule on exports\n__webpack_require__.r = function(exports) {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","__webpack_require__.nmd = function(module) {\n\tmodule.paths = [];\n\tif (!module.children) module.children = [];\n\treturn module;\n};","__webpack_require__.p = \"/\";","export default function _arrayLikeToArray(arr, len) {\n if (len == null || len > arr.length) len = arr.length;\n for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i];\n return arr2;\n}","export default function _iterableToArray(iter) {\n if (typeof Symbol !== \"undefined\" && iter[Symbol.iterator] != null || iter[\"@@iterator\"] != null) return Array.from(iter);\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}","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}","import React from 'react';\nexport var ReactReduxContext = /*#__PURE__*/React.createContext(null);\n\nif (process.env.NODE_ENV !== 'production') {\n ReactReduxContext.displayName = 'ReactRedux';\n}\n\nexport default ReactReduxContext;","// Default to a dummy \"batch\" implementation that just runs the callback\nfunction defaultNoopBatch(callback) {\n callback();\n}\n\nvar batch = defaultNoopBatch; // Allow injecting another batching function later\n\nexport var setBatch = function setBatch(newBatch) {\n return batch = newBatch;\n}; // Supply a getter just to skip dealing with ESM bindings\n\nexport var getBatch = function getBatch() {\n return batch;\n};","import { getBatch } from './batch'; // encapsulates the subscription logic for connecting a component to the redux store, as\n// well as nesting subscriptions of descendant components, so that we can ensure the\n// ancestor components re-render before descendants\n\nfunction createListenerCollection() {\n var batch = getBatch();\n var first = null;\n var last = null;\n return {\n clear: function clear() {\n first = null;\n last = null;\n },\n notify: function notify() {\n batch(function () {\n var listener = first;\n\n while (listener) {\n listener.callback();\n listener = listener.next;\n }\n });\n },\n get: function get() {\n var listeners = [];\n var listener = first;\n\n while (listener) {\n listeners.push(listener);\n listener = listener.next;\n }\n\n return listeners;\n },\n subscribe: function subscribe(callback) {\n var isSubscribed = true;\n var listener = last = {\n callback: callback,\n next: null,\n prev: last\n };\n\n if (listener.prev) {\n listener.prev.next = listener;\n } else {\n first = listener;\n }\n\n return function unsubscribe() {\n if (!isSubscribed || first === null) return;\n isSubscribed = false;\n\n if (listener.next) {\n listener.next.prev = listener.prev;\n } else {\n last = listener.prev;\n }\n\n if (listener.prev) {\n listener.prev.next = listener.next;\n } else {\n first = listener.next;\n }\n };\n }\n };\n}\n\nvar nullListeners = {\n notify: function notify() {},\n get: function get() {\n return [];\n }\n};\nexport function createSubscription(store, parentSub) {\n var unsubscribe;\n var listeners = nullListeners;\n\n function addNestedSub(listener) {\n trySubscribe();\n return listeners.subscribe(listener);\n }\n\n function notifyNestedSubs() {\n listeners.notify();\n }\n\n function handleChangeWrapper() {\n if (subscription.onStateChange) {\n subscription.onStateChange();\n }\n }\n\n function isSubscribed() {\n return Boolean(unsubscribe);\n }\n\n function trySubscribe() {\n if (!unsubscribe) {\n unsubscribe = parentSub ? parentSub.addNestedSub(handleChangeWrapper) : store.subscribe(handleChangeWrapper);\n listeners = createListenerCollection();\n }\n }\n\n function tryUnsubscribe() {\n if (unsubscribe) {\n unsubscribe();\n unsubscribe = undefined;\n listeners.clear();\n listeners = nullListeners;\n }\n }\n\n var subscription = {\n addNestedSub: addNestedSub,\n notifyNestedSubs: notifyNestedSubs,\n handleChangeWrapper: handleChangeWrapper,\n isSubscribed: isSubscribed,\n trySubscribe: trySubscribe,\n tryUnsubscribe: tryUnsubscribe,\n getListeners: function getListeners() {\n return listeners;\n }\n };\n return subscription;\n}","import { useEffect, useLayoutEffect } from 'react'; // React currently throws a warning when using useLayoutEffect on the server.\n// To get around it, we can conditionally useEffect on the server (no-op) and\n// useLayoutEffect in the browser. We need useLayoutEffect to ensure the store\n// subscription callback always has the selector from the latest render commit\n// available, otherwise a store update may happen between render and the effect,\n// which may cause missed updates; we also must ensure the store subscription\n// is created synchronously, otherwise a store update may occur before the\n// subscription is created and an inconsistent state may be observed\n\nexport var useIsomorphicLayoutEffect = typeof window !== 'undefined' && typeof window.document !== 'undefined' && typeof window.document.createElement !== 'undefined' ? useLayoutEffect : useEffect;","import React, { useMemo } from 'react';\nimport PropTypes from 'prop-types';\nimport { ReactReduxContext } from './Context';\nimport { createSubscription } from '../utils/Subscription';\nimport { useIsomorphicLayoutEffect } from '../utils/useIsomorphicLayoutEffect';\n\nfunction Provider(_ref) {\n var store = _ref.store,\n context = _ref.context,\n children = _ref.children;\n var contextValue = useMemo(function () {\n var subscription = createSubscription(store);\n return {\n store: store,\n subscription: subscription\n };\n }, [store]);\n var previousState = useMemo(function () {\n return store.getState();\n }, [store]);\n useIsomorphicLayoutEffect(function () {\n var subscription = contextValue.subscription;\n subscription.onStateChange = subscription.notifyNestedSubs;\n subscription.trySubscribe();\n\n if (previousState !== store.getState()) {\n subscription.notifyNestedSubs();\n }\n\n return function () {\n subscription.tryUnsubscribe();\n subscription.onStateChange = null;\n };\n }, [contextValue, previousState]);\n var Context = context || ReactReduxContext;\n return /*#__PURE__*/React.createElement(Context.Provider, {\n value: contextValue\n }, children);\n}\n\nif (process.env.NODE_ENV !== 'production') {\n Provider.propTypes = {\n store: PropTypes.shape({\n subscribe: PropTypes.func.isRequired,\n dispatch: PropTypes.func.isRequired,\n getState: PropTypes.func.isRequired\n }),\n context: PropTypes.object,\n children: PropTypes.any\n };\n}\n\nexport default Provider;","export default function _extends() {\n _extends = Object.assign ? Object.assign.bind() : function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n return target;\n };\n return _extends.apply(this, arguments);\n}","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

\r\n * }\r\n */\n\nexport function useReduxContext() {\n var contextValue = useContext(ReactReduxContext);\n\n if (process.env.NODE_ENV !== 'production' && !contextValue) {\n throw new Error('could not find react-redux context value; please ensure the component is wrapped in a ');\n }\n\n return contextValue;\n}","import { useContext } from 'react';\nimport { ReactReduxContext } from '../components/Context';\nimport { useReduxContext as useDefaultReduxContext } from './useReduxContext';\n/**\r\n * Hook factory, which creates a `useStore` hook bound to a given context.\r\n *\r\n * @param {React.Context} [context=ReactReduxContext] Context passed to your ``.\r\n * @returns {Function} A `useStore` hook bound to the specified context.\r\n */\n\nexport function createStoreHook(context) {\n if (context === void 0) {\n context = ReactReduxContext;\n }\n\n var useReduxContext = context === ReactReduxContext ? useDefaultReduxContext : function () {\n return useContext(context);\n };\n return function useStore() {\n var _useReduxContext = useReduxContext(),\n store = _useReduxContext.store;\n\n return store;\n };\n}\n/**\r\n * A hook to access the redux store.\r\n *\r\n * @returns {any} the redux store\r\n *\r\n * @example\r\n *\r\n * import React from 'react'\r\n * import { useStore } from 'react-redux'\r\n *\r\n * export const ExampleComponent = () => {\r\n * const store = useStore()\r\n * return
{store.getState()}
\r\n * }\r\n */\n\nexport var useStore = /*#__PURE__*/createStoreHook();","import { ReactReduxContext } from '../components/Context';\nimport { useStore as useDefaultStore, createStoreHook } from './useStore';\n/**\r\n * Hook factory, which creates a `useDispatch` hook bound to a given context.\r\n *\r\n * @param {React.Context} [context=ReactReduxContext] Context passed to your ``.\r\n * @returns {Function} A `useDispatch` hook bound to the specified context.\r\n */\n\nexport function createDispatchHook(context) {\n if (context === void 0) {\n context = ReactReduxContext;\n }\n\n var useStore = context === ReactReduxContext ? useDefaultStore : createStoreHook(context);\n return function useDispatch() {\n var store = useStore();\n return store.dispatch;\n };\n}\n/**\r\n * A hook to access the redux `dispatch` function.\r\n *\r\n * @returns {any|function} redux store's `dispatch` function\r\n *\r\n * @example\r\n *\r\n * import React, { useCallback } from 'react'\r\n * import { useDispatch } from 'react-redux'\r\n *\r\n * export const CounterComponent = ({ value }) => {\r\n * const dispatch = useDispatch()\r\n * const increaseCounter = useCallback(() => dispatch({ type: 'increase-counter' }), [])\r\n * return (\r\n *
\r\n * {value}\r\n * \r\n *
\r\n * )\r\n * }\r\n */\n\nexport var useDispatch = /*#__PURE__*/createDispatchHook();","import { useReducer, useRef, useMemo, useContext, useDebugValue } from 'react';\nimport { useReduxContext as useDefaultReduxContext } from './useReduxContext';\nimport { createSubscription } from '../utils/Subscription';\nimport { useIsomorphicLayoutEffect } from '../utils/useIsomorphicLayoutEffect';\nimport { ReactReduxContext } from '../components/Context';\n\nvar refEquality = function refEquality(a, b) {\n return a === b;\n};\n\nfunction useSelectorWithStoreAndSubscription(selector, equalityFn, store, contextSub) {\n var _useReducer = useReducer(function (s) {\n return s + 1;\n }, 0),\n forceRender = _useReducer[1];\n\n var subscription = useMemo(function () {\n return createSubscription(store, contextSub);\n }, [store, contextSub]);\n var latestSubscriptionCallbackError = useRef();\n var latestSelector = useRef();\n var latestStoreState = useRef();\n var latestSelectedState = useRef();\n var storeState = store.getState();\n var selectedState;\n\n try {\n if (selector !== latestSelector.current || storeState !== latestStoreState.current || latestSubscriptionCallbackError.current) {\n var newSelectedState = selector(storeState); // ensure latest selected state is reused so that a custom equality function can result in identical references\n\n if (latestSelectedState.current === undefined || !equalityFn(newSelectedState, latestSelectedState.current)) {\n selectedState = newSelectedState;\n } else {\n selectedState = latestSelectedState.current;\n }\n } else {\n selectedState = latestSelectedState.current;\n }\n } catch (err) {\n if (latestSubscriptionCallbackError.current) {\n err.message += \"\\nThe error may be correlated with this previous error:\\n\" + latestSubscriptionCallbackError.current.stack + \"\\n\\n\";\n }\n\n throw err;\n }\n\n useIsomorphicLayoutEffect(function () {\n latestSelector.current = selector;\n latestStoreState.current = storeState;\n latestSelectedState.current = selectedState;\n latestSubscriptionCallbackError.current = undefined;\n });\n useIsomorphicLayoutEffect(function () {\n function checkForUpdates() {\n try {\n var newStoreState = store.getState(); // Avoid calling selector multiple times if the store's state has not changed\n\n if (newStoreState === latestStoreState.current) {\n return;\n }\n\n var _newSelectedState = latestSelector.current(newStoreState);\n\n if (equalityFn(_newSelectedState, latestSelectedState.current)) {\n return;\n }\n\n latestSelectedState.current = _newSelectedState;\n latestStoreState.current = newStoreState;\n } catch (err) {\n // we ignore all errors here, since when the component\n // is re-rendered, the selectors are called again, and\n // will throw again, if neither props nor store state\n // changed\n latestSubscriptionCallbackError.current = err;\n }\n\n forceRender();\n }\n\n subscription.onStateChange = checkForUpdates;\n subscription.trySubscribe();\n checkForUpdates();\n return function () {\n return subscription.tryUnsubscribe();\n };\n }, [store, subscription]);\n return selectedState;\n}\n/**\r\n * Hook factory, which creates a `useSelector` hook bound to a given context.\r\n *\r\n * @param {React.Context} [context=ReactReduxContext] Context passed to your ``.\r\n * @returns {Function} A `useSelector` hook bound to the specified context.\r\n */\n\n\nexport function createSelectorHook(context) {\n if (context === void 0) {\n context = ReactReduxContext;\n }\n\n var useReduxContext = context === ReactReduxContext ? useDefaultReduxContext : function () {\n return useContext(context);\n };\n return function useSelector(selector, equalityFn) {\n if (equalityFn === void 0) {\n equalityFn = refEquality;\n }\n\n if (process.env.NODE_ENV !== 'production') {\n if (!selector) {\n throw new Error(\"You must pass a selector to useSelector\");\n }\n\n if (typeof selector !== 'function') {\n throw new Error(\"You must pass a function as a selector to useSelector\");\n }\n\n if (typeof equalityFn !== 'function') {\n throw new Error(\"You must pass a function as an equality function to useSelector\");\n }\n }\n\n var _useReduxContext = useReduxContext(),\n store = _useReduxContext.store,\n contextSub = _useReduxContext.subscription;\n\n var selectedState = useSelectorWithStoreAndSubscription(selector, equalityFn, store, contextSub);\n useDebugValue(selectedState);\n return selectedState;\n };\n}\n/**\r\n * A hook to access the redux store's state. This hook takes a selector function\r\n * as an argument. The selector is called with the store state.\r\n *\r\n * This hook takes an optional equality comparison function as the second parameter\r\n * that allows you to customize the way the selected state is compared to determine\r\n * whether the component needs to be re-rendered.\r\n *\r\n * @param {Function} selector the selector function\r\n * @param {Function=} equalityFn the function that will be used to determine equality\r\n *\r\n * @returns {any} the selected state\r\n *\r\n * @example\r\n *\r\n * import React from 'react'\r\n * import { useSelector } from 'react-redux'\r\n *\r\n * export const CounterComponent = () => {\r\n * const counter = useSelector(state => state.counter)\r\n * return
{counter}
\r\n * }\r\n */\n\nexport var useSelector = /*#__PURE__*/createSelectorHook();","export * from './exports';\nimport { unstable_batchedUpdates as batch } from './utils/reactBatchedUpdates';\nimport { setBatch } from './utils/batch'; // Enable batched updates in our subscriptions for use\n// with standard React renderers (ReactDOM, React Native)\n\nsetBatch(batch);\nexport { batch };","// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\n\nimport { InputLogEvent } from '@aws-sdk/client-cloudwatch-logs';\nimport { LoggingProvider } from '../types';\nimport { AWS_CLOUDWATCH_CATEGORY } from '../Util/Constants';\nimport { Logger } from './logger-interface';\n\nconst LOG_LEVELS = {\n\tVERBOSE: 1,\n\tDEBUG: 2,\n\tINFO: 3,\n\tWARN: 4,\n\tERROR: 5,\n};\n\nexport enum LOG_TYPE {\n\tDEBUG = 'DEBUG',\n\tERROR = 'ERROR',\n\tINFO = 'INFO',\n\tWARN = 'WARN',\n\tVERBOSE = 'VERBOSE',\n}\n\n/**\n * Write logs\n * @class Logger\n */\nexport class ConsoleLogger implements Logger {\n\tname: string;\n\tlevel: LOG_TYPE | string;\n\tprivate _pluggables: LoggingProvider[];\n\tprivate _config: object;\n\n\t/**\n\t * @constructor\n\t * @param {string} name - Name of the logger\n\t */\n\tconstructor(name: string, level: LOG_TYPE | string = LOG_TYPE.WARN) {\n\t\tthis.name = name;\n\t\tthis.level = level;\n\t\tthis._pluggables = [];\n\t}\n\n\tstatic LOG_LEVEL = null;\n\n\t_padding(n) {\n\t\treturn n < 10 ? '0' + n : '' + n;\n\t}\n\n\t_ts() {\n\t\tconst dt = new Date();\n\t\treturn (\n\t\t\t[this._padding(dt.getMinutes()), this._padding(dt.getSeconds())].join(\n\t\t\t\t':'\n\t\t\t) +\n\t\t\t'.' +\n\t\t\tdt.getMilliseconds()\n\t\t);\n\t}\n\n\tconfigure(config?: object) {\n\t\tif (!config) return this._config;\n\n\t\tthis._config = config;\n\n\t\treturn this._config;\n\t}\n\n\t/**\n\t * Write log\n\t * @method\n\t * @memeberof Logger\n\t * @param {LOG_TYPE|string} type - log type, default INFO\n\t * @param {string|object} msg - Logging message or object\n\t */\n\t_log(type: LOG_TYPE | string, ...msg) {\n\t\tlet logger_level_name = this.level;\n\t\tif (ConsoleLogger.LOG_LEVEL) {\n\t\t\tlogger_level_name = ConsoleLogger.LOG_LEVEL;\n\t\t}\n\t\tif (typeof (window) !== 'undefined' && (window).LOG_LEVEL) {\n\t\t\tlogger_level_name = (window).LOG_LEVEL;\n\t\t}\n\t\tconst logger_level = LOG_LEVELS[logger_level_name];\n\t\tconst type_level = LOG_LEVELS[type];\n\t\tif (!(type_level >= logger_level)) {\n\t\t\t// Do nothing if type is not greater than or equal to logger level (handle undefined)\n\t\t\treturn;\n\t\t}\n\n\t\tlet log = console.log.bind(console);\n\t\tif (type === LOG_TYPE.ERROR && console.error) {\n\t\t\tlog = console.error.bind(console);\n\t\t}\n\t\tif (type === LOG_TYPE.WARN && console.warn) {\n\t\t\tlog = console.warn.bind(console);\n\t\t}\n\n\t\tconst prefix = `[${type}] ${this._ts()} ${this.name}`;\n\t\tlet message = '';\n\n\t\tif (msg.length === 1 && typeof msg[0] === 'string') {\n\t\t\tmessage = `${prefix} - ${msg[0]}`;\n\t\t\tlog(message);\n\t\t} else if (msg.length === 1) {\n\t\t\tmessage = `${prefix} ${msg[0]}`;\n\t\t\tlog(prefix, msg[0]);\n\t\t} else if (typeof msg[0] === 'string') {\n\t\t\tlet obj = msg.slice(1);\n\t\t\tif (obj.length === 1) {\n\t\t\t\tobj = obj[0];\n\t\t\t}\n\t\t\tmessage = `${prefix} - ${msg[0]} ${obj}`;\n\t\t\tlog(`${prefix} - ${msg[0]}`, obj);\n\t\t} else {\n\t\t\tmessage = `${prefix} ${msg}`;\n\t\t\tlog(prefix, msg);\n\t\t}\n\n\t\tfor (const plugin of this._pluggables) {\n\t\t\tconst logEvent: InputLogEvent = { message, timestamp: Date.now() };\n\t\t\tplugin.pushLogs([logEvent]);\n\t\t}\n\t}\n\n\t/**\n\t * Write General log. Default to INFO\n\t * @method\n\t * @memeberof Logger\n\t * @param {string|object} msg - Logging message or object\n\t */\n\tlog(...msg) {\n\t\tthis._log(LOG_TYPE.INFO, ...msg);\n\t}\n\n\t/**\n\t * Write INFO log\n\t * @method\n\t * @memeberof Logger\n\t * @param {string|object} msg - Logging message or object\n\t */\n\tinfo(...msg) {\n\t\tthis._log(LOG_TYPE.INFO, ...msg);\n\t}\n\n\t/**\n\t * Write WARN log\n\t * @method\n\t * @memeberof Logger\n\t * @param {string|object} msg - Logging message or object\n\t */\n\twarn(...msg) {\n\t\tthis._log(LOG_TYPE.WARN, ...msg);\n\t}\n\n\t/**\n\t * Write ERROR log\n\t * @method\n\t * @memeberof Logger\n\t * @param {string|object} msg - Logging message or object\n\t */\n\terror(...msg) {\n\t\tthis._log(LOG_TYPE.ERROR, ...msg);\n\t}\n\n\t/**\n\t * Write DEBUG log\n\t * @method\n\t * @memeberof Logger\n\t * @param {string|object} msg - Logging message or object\n\t */\n\tdebug(...msg) {\n\t\tthis._log(LOG_TYPE.DEBUG, ...msg);\n\t}\n\n\t/**\n\t * Write VERBOSE log\n\t * @method\n\t * @memeberof Logger\n\t * @param {string|object} msg - Logging message or object\n\t */\n\tverbose(...msg) {\n\t\tthis._log(LOG_TYPE.VERBOSE, ...msg);\n\t}\n\n\taddPluggable(pluggable: LoggingProvider) {\n\t\tif (pluggable && pluggable.getCategoryName() === AWS_CLOUDWATCH_CATEGORY) {\n\t\t\tthis._pluggables.push(pluggable);\n\t\t\tpluggable.configure(this._config);\n\t\t}\n\t}\n\n\tlistPluggables() {\n\t\treturn this._pluggables;\n\t}\n}\n","// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\n\nexport interface SubscriptionObserver {\n\tclosed: boolean;\n\tnext(value: T): void;\n\terror(errorValue: any): void;\n\tcomplete(): void;\n}\n\nexport enum CONTROL_MSG {\n\tCONNECTION_CLOSED = 'Connection closed',\n\tCONNECTION_FAILED = 'Connection failed',\n\tREALTIME_SUBSCRIPTION_INIT_ERROR = 'AppSync Realtime subscription init error',\n\tSUBSCRIPTION_ACK = 'Subscription ack',\n\tTIMEOUT_DISCONNECT = 'Timeout disconnect',\n}\n\n/** @enum {string} */\nexport enum ConnectionState {\n\t/*\n\t * The connection is alive and healthy\n\t */\n\tConnected = 'Connected',\n\t/*\n\t * The connection is alive, but the connection is offline\n\t */\n\tConnectedPendingNetwork = 'ConnectedPendingNetwork',\n\t/*\n\t * The connection has been disconnected while in use\n\t */\n\tConnectionDisrupted = 'ConnectionDisrupted',\n\t/*\n\t * The connection has been disconnected and the network is offline\n\t */\n\tConnectionDisruptedPendingNetwork = 'ConnectionDisruptedPendingNetwork',\n\t/*\n\t * The connection is in the process of connecting\n\t */\n\tConnecting = 'Connecting',\n\t/*\n\t * The connection is not in use and is being disconnected\n\t */\n\tConnectedPendingDisconnect = 'ConnectedPendingDisconnect',\n\t/*\n\t * The connection is not in use and has been disconnected\n\t */\n\tDisconnected = 'Disconnected',\n\t/*\n\t * The connection is alive, but a keep alive message has been missed\n\t */\n\tConnectedPendingKeepAlive = 'ConnectedPendingKeepAlive',\n}\n","// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\n\n// Logging constants\nconst AWS_CLOUDWATCH_BASE_BUFFER_SIZE = 26;\nconst AWS_CLOUDWATCH_MAX_BATCH_EVENT_SIZE = 1048576;\nconst AWS_CLOUDWATCH_MAX_EVENT_SIZE = 256000;\nconst AWS_CLOUDWATCH_CATEGORY = 'Logging';\nconst AWS_CLOUDWATCH_PROVIDER_NAME = 'AWSCloudWatch';\nconst NO_CREDS_ERROR_STRING = 'No credentials';\nconst RETRY_ERROR_CODES = [\n\t'ResourceNotFoundException',\n\t'InvalidSequenceTokenException',\n];\n\nexport {\n\tAWS_CLOUDWATCH_BASE_BUFFER_SIZE,\n\tAWS_CLOUDWATCH_CATEGORY,\n\tAWS_CLOUDWATCH_MAX_BATCH_EVENT_SIZE,\n\tAWS_CLOUDWATCH_MAX_EVENT_SIZE,\n\tAWS_CLOUDWATCH_PROVIDER_NAME,\n\tNO_CREDS_ERROR_STRING,\n\tRETRY_ERROR_CODES,\n};\n","import { ConsoleLogger as LoggerClass } from './Logger';\n\nconst logger = new LoggerClass('Amplify');\n\nexport class AmplifyClass {\n\t// Everything that is `register`ed is tracked here\n\tprivate _components = [];\n\tprivate _config = {};\n\n\t// All modules (with `getModuleName()`) are stored here for dependency injection\n\tprivate _modules = {};\n\n\t// for backward compatibility to avoid breaking change\n\t// if someone is using like Amplify.Auth\n\tAuth = null;\n\tAnalytics = null;\n\tAPI = null;\n\tCredentials = null;\n\tStorage = null;\n\tI18n = null;\n\tCache = null;\n\tPubSub = null;\n\tInteractions = null;\n\tPushnotification = null;\n\tUI = null;\n\tXR = null;\n\tPredictions = null;\n\tDataStore = null;\n\tGeo = null;\n\tNotifications = null;\n\n\tLogger = LoggerClass;\n\tServiceWorker = null;\n\n\tregister(comp) {\n\t\tlogger.debug('component registered in amplify', comp);\n\t\tthis._components.push(comp);\n\t\tif (typeof comp.getModuleName === 'function') {\n\t\t\tthis._modules[comp.getModuleName()] = comp;\n\t\t\tthis[comp.getModuleName()] = comp;\n\t\t} else {\n\t\t\tlogger.debug('no getModuleName method for component', comp);\n\t\t}\n\n\t\t// Finally configure this new component(category) loaded\n\t\t// With the new modularization changes in Amplify V3, all the Amplify\n\t\t// component are not loaded/registered right away but when they are\n\t\t// imported (and hence instantiated) in the client's app. This ensures\n\t\t// that all new components imported get correctly configured with the\n\t\t// configuration that Amplify.configure() was called with.\n\t\tcomp.configure(this._config);\n\t}\n\n\tconfigure(config?) {\n\t\tif (!config) return this._config;\n\n\t\tthis._config = Object.assign(this._config, config);\n\t\tlogger.debug('amplify config', this._config);\n\n\t\t// Dependency Injection via property-setting.\n\t\t// This avoids introducing a public method/interface/setter that's difficult to remove later.\n\t\t// Plus, it reduces `if` statements within the `constructor` and `configure` of each module\n\t\tObject.entries(this._modules).forEach(([Name, comp]) => {\n\t\t\t// e.g. Auth.*\n\t\t\tObject.keys(comp).forEach(property => {\n\t\t\t\t// e.g. Auth[\"Credentials\"] = this._modules[\"Credentials\"] when set\n\t\t\t\tif (this._modules[property]) {\n\t\t\t\t\tcomp[property] = this._modules[property];\n\t\t\t\t}\n\t\t\t});\n\t\t});\n\n\t\tthis._components.map(comp => {\n\t\t\tcomp.configure(this._config);\n\t\t});\n\n\t\treturn this._config;\n\t}\n\n\taddPluggable(pluggable) {\n\t\tif (\n\t\t\tpluggable &&\n\t\t\tpluggable['getCategory'] &&\n\t\t\ttypeof pluggable['getCategory'] === 'function'\n\t\t) {\n\t\t\tthis._components.map(comp => {\n\t\t\t\tif (\n\t\t\t\t\tcomp['addPluggable'] &&\n\t\t\t\t\ttypeof comp['addPluggable'] === 'function'\n\t\t\t\t) {\n\t\t\t\t\tcomp.addPluggable(pluggable);\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\t}\n}\n\nexport const Amplify = new AmplifyClass();\n","/* tslint:disable */\n\nimport zenObservable from 'zen-observable';\n\nnamespace Observable {\n\n}\n\nimport { ZenObservable } from './types';\n\nexport { ZenObservable };\n\nexport type Observer = ZenObservable.Observer;\nexport type Subscriber = ZenObservable.Subscriber;\nexport type ObservableLike = ZenObservable.ObservableLike;\n\nexport const Observable: {\n new (subscriber: Subscriber): Observable;\n from(\n observable: Observable | ZenObservable.ObservableLike | ArrayLike,\n ): Observable;\n of(...args: Array): Observable;\n} = zenObservable;\n\nexport interface Observable {\n subscribe(\n observerOrNext: ((value: T) => void) | ZenObservable.Observer,\n error?: (error: any) => void,\n complete?: () => void,\n ): ZenObservable.Subscription;\n\n forEach(fn: (value: T) => void): Promise;\n\n map(fn: (value: T) => R): Observable;\n\n filter(fn: (value: T) => boolean): Observable;\n\n reduce(\n fn: (previousValue: R | T, currentValue: T) => R | T,\n initialValue?: R | T,\n ): Observable;\n\n flatMap(fn: (value: T) => ZenObservable.ObservableLike): Observable;\n\n from(\n observable: Observable | ZenObservable.ObservableLike | ArrayLike,\n ): Observable;\n of(...args: Array): Observable;\n}\n","// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nimport Observable from 'zen-observable-ts';\nimport { PubSubProvider, ProviderOptions } from '../types/Provider';\nimport { ConsoleLogger as Logger } from '@aws-amplify/core';\n\nconst logger = new Logger('AbstractPubSubProvider');\n\nexport abstract class AbstractPubSubProvider implements PubSubProvider {\n\tprivate _config: ProviderOptions;\n\n\tconstructor(options: ProviderOptions = {}) {\n\t\tthis._config = options;\n\t}\n\n\tconfigure(config: ProviderOptions = {}): ProviderOptions {\n\t\tthis._config = { ...config, ...this._config };\n\n\t\tlogger.debug(`configure ${this.getProviderName()}`, this._config);\n\n\t\treturn this.options;\n\t}\n\n\tgetCategory() {\n\t\treturn 'PubSub';\n\t}\n\n\tabstract getProviderName(): string;\n\n\tprotected get options(): ProviderOptions {\n\t\treturn { ...this._config };\n\t}\n\n\tpublic abstract newClient(clientOptions: ProviderOptions): Promise;\n\n\tpublic abstract publish(\n\t\ttopics: string[] | string,\n\t\tmsg: any,\n\t\toptions?: ProviderOptions\n\t): void;\n\n\tpublic abstract subscribe(\n\t\ttopics: string[] | string,\n\t\toptions?: ProviderOptions\n\t): Observable;\n}\n","// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\n\nimport { ConsoleLogger as Logger } from './Logger';\n\nconst logger = new Logger('Hub');\n\nconst AMPLIFY_SYMBOL = (\n\ttypeof Symbol !== 'undefined' && typeof Symbol.for === 'function'\n\t\t? Symbol.for('amplify_default')\n\t\t: '@@amplify_default'\n) as Symbol;\ninterface IPattern {\n\tpattern: RegExp;\n\tcallback: HubCallback;\n}\n\ninterface IListener {\n\tname: string;\n\tcallback: HubCallback;\n}\n\nexport type HubCapsule = {\n\tchannel: string;\n\tpayload: HubPayload;\n\tsource: string;\n\tpatternInfo?: string[];\n};\n\nexport type HubPayload = {\n\tevent: string;\n\tdata?: any;\n\tmessage?: string;\n};\n\nexport type HubCallback = (capsule: HubCapsule) => void;\n\nexport type LegacyCallback = { onHubCapsule: HubCallback };\n\nfunction isLegacyCallback(callback: any): callback is LegacyCallback {\n\treturn (callback).onHubCapsule !== undefined;\n}\n\nexport class HubClass {\n\tname: string;\n\tprivate listeners: IListener[] = [];\n\tprivate patterns: IPattern[] = [];\n\n\tprotectedChannels = [\n\t\t'core',\n\t\t'auth',\n\t\t'api',\n\t\t'analytics',\n\t\t'interactions',\n\t\t'pubsub',\n\t\t'storage',\n\t\t'ui',\n\t\t'xr',\n\t];\n\n\tconstructor(name: string) {\n\t\tthis.name = name;\n\t}\n\n\t/**\n\t * Used internally to remove a Hub listener.\n\t *\n\t * @remarks\n\t * This private method is for internal use only. Instead of calling Hub.remove, call the result of Hub.listen.\n\t */\n\tprivate _remove(channel: string | RegExp, listener: HubCallback) {\n\t\tif (channel instanceof RegExp) {\n\t\t\tconst pattern = this.patterns.find(\n\t\t\t\t({ pattern }) => pattern.source === channel.source\n\t\t\t);\n\t\t\tif (!pattern) {\n\t\t\t\tlogger.warn(`No listeners for ${channel}`);\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tthis.patterns = [...this.patterns.filter(x => x !== pattern)];\n\t\t} else {\n\t\t\tconst holder = this.listeners[channel];\n\t\t\tif (!holder) {\n\t\t\t\tlogger.warn(`No listeners for ${channel}`);\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tthis.listeners[channel] = [\n\t\t\t\t...holder.filter(({ callback }) => callback !== listener),\n\t\t\t];\n\t\t}\n\t}\n\n\t/**\n\t * @deprecated Instead of calling Hub.remove, call the result of Hub.listen.\n\t */\n\tremove(channel: string | RegExp, listener: HubCallback) {\n\t\tthis._remove(channel, listener);\n\t}\n\n\t/**\n\t * Used to send a Hub event.\n\t *\n\t * @param channel - The channel on which the event will be broadcast\n\t * @param payload - The HubPayload\n\t * @param source - The source of the event; defaults to ''\n\t * @param ampSymbol - Symbol used to determine if the event is dispatched internally on a protected channel\n\t *\n\t */\n\tdispatch(\n\t\tchannel: string,\n\t\tpayload: HubPayload,\n\t\tsource: string = '',\n\t\tampSymbol?: Symbol\n\t) {\n\t\tif (this.protectedChannels.indexOf(channel) > -1) {\n\t\t\tconst hasAccess = ampSymbol === AMPLIFY_SYMBOL;\n\n\t\t\tif (!hasAccess) {\n\t\t\t\tlogger.warn(\n\t\t\t\t\t`WARNING: ${channel} is protected and dispatching on it can have unintended consequences`\n\t\t\t\t);\n\t\t\t}\n\t\t}\n\n\t\tconst capsule: HubCapsule = {\n\t\t\tchannel,\n\t\t\tpayload: { ...payload },\n\t\t\tsource,\n\t\t\tpatternInfo: [],\n\t\t};\n\n\t\ttry {\n\t\t\tthis._toListeners(capsule);\n\t\t} catch (e) {\n\t\t\tlogger.error(e);\n\t\t}\n\t}\n\n\t/**\n\t * Used to listen for Hub events.\n\t *\n\t * @param channel - The channel on which to listen\n\t * @param callback - The callback to execute when an event is received on the specified channel\n\t * @param listenerName - The name of the listener; defaults to 'noname'\n\t * @returns A function which can be called to cancel the listener.\n\t *\n\t */\n\tlisten(\n\t\tchannel: string | RegExp,\n\t\tcallback?: HubCallback | LegacyCallback,\n\t\tlistenerName = 'noname'\n\t) {\n\t\tlet cb: HubCallback;\n\t\t// Check for legacy onHubCapsule callback for backwards compatability\n\t\tif (isLegacyCallback(callback)) {\n\t\t\tlogger.warn(\n\t\t\t\t`WARNING onHubCapsule is Deprecated. Please pass in a callback.`\n\t\t\t);\n\t\t\tcb = callback.onHubCapsule.bind(callback);\n\t\t} else if (typeof callback !== 'function') {\n\t\t\tthrow new Error('No callback supplied to Hub');\n\t\t} else {\n\t\t\tcb = callback;\n\t\t}\n\n\t\tif (channel instanceof RegExp) {\n\t\t\tthis.patterns.push({\n\t\t\t\tpattern: channel,\n\t\t\t\tcallback: cb,\n\t\t\t});\n\t\t} else {\n\t\t\tlet holder = this.listeners[channel];\n\n\t\t\tif (!holder) {\n\t\t\t\tholder = [];\n\t\t\t\tthis.listeners[channel] = holder;\n\t\t\t}\n\n\t\t\tholder.push({\n\t\t\t\tname: listenerName,\n\t\t\t\tcallback: cb,\n\t\t\t});\n\t\t}\n\n\t\treturn () => {\n\t\t\tthis._remove(channel, cb);\n\t\t};\n\t}\n\n\tprivate _toListeners(capsule: HubCapsule) {\n\t\tconst { channel, payload } = capsule;\n\t\tconst holder = this.listeners[channel];\n\n\t\tif (holder) {\n\t\t\tholder.forEach(listener => {\n\t\t\t\tlogger.debug(`Dispatching to ${channel} with `, payload);\n\t\t\t\ttry {\n\t\t\t\t\tlistener.callback(capsule);\n\t\t\t\t} catch (e) {\n\t\t\t\t\tlogger.error(e);\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\n\t\tif (this.patterns.length > 0) {\n\t\t\tif (!payload.message) {\n\t\t\t\tlogger.warn(`Cannot perform pattern matching without a message key`);\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tconst payloadStr = payload.message;\n\n\t\t\tthis.patterns.forEach(pattern => {\n\t\t\t\tconst match = payloadStr.match(pattern.pattern);\n\t\t\t\tif (match) {\n\t\t\t\t\tconst [, ...groups] = match;\n\t\t\t\t\tconst dispatchingCapsule: HubCapsule = {\n\t\t\t\t\t\t...capsule,\n\t\t\t\t\t\tpatternInfo: groups,\n\t\t\t\t\t};\n\t\t\t\t\ttry {\n\t\t\t\t\t\tpattern.callback(dispatchingCapsule);\n\t\t\t\t\t} catch (e) {\n\t\t\t\t\t\tlogger.error(e);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\t}\n}\n\n/*We export a __default__ instance of HubClass to use it as a \npseudo Singleton for the main messaging bus, however you can still create\nyour own instance of HubClass() for a separate \"private bus\" of events.*/\nexport const Hub = new HubClass('__default__');\n","export const MAX_DELAY_MS = 5000;\n\nexport const NON_RETRYABLE_CODES = [400, 401, 403];\n\nexport const CONNECTION_STATE_CHANGE = 'ConnectionStateChange';\n\nexport enum MESSAGE_TYPES {\n\t/**\n\t * Client -> Server message.\n\t * This message type is the first message after handshake and this will initialize AWS AppSync RealTime communication\n\t */\n\tGQL_CONNECTION_INIT = 'connection_init',\n\t/**\n\t * Server -> Client message\n\t * This message type is in case there is an issue with AWS AppSync RealTime when establishing connection\n\t */\n\tGQL_CONNECTION_ERROR = 'connection_error',\n\t/**\n\t * Server -> Client message.\n\t * This message type is for the ack response from AWS AppSync RealTime for GQL_CONNECTION_INIT message\n\t */\n\tGQL_CONNECTION_ACK = 'connection_ack',\n\t/**\n\t * Client -> Server message.\n\t * This message type is for register subscriptions with AWS AppSync RealTime\n\t */\n\tGQL_START = 'start',\n\t/**\n\t * Server -> Client message.\n\t * This message type is for the ack response from AWS AppSync RealTime for GQL_START message\n\t */\n\tGQL_START_ACK = 'start_ack',\n\t/**\n\t * Server -> Client message.\n\t * This message type is for subscription message from AWS AppSync RealTime\n\t */\n\tGQL_DATA = 'data',\n\t/**\n\t * Server -> Client message.\n\t * This message type helps the client to know is still receiving messages from AWS AppSync RealTime\n\t */\n\tGQL_CONNECTION_KEEP_ALIVE = 'ka',\n\t/**\n\t * Client -> Server message.\n\t * This message type is for unregister subscriptions with AWS AppSync RealTime\n\t */\n\tGQL_STOP = 'stop',\n\t/**\n\t * Server -> Client message.\n\t * This message type is for the ack response from AWS AppSync RealTime for GQL_STOP message\n\t */\n\tGQL_COMPLETE = 'complete',\n\t/**\n\t * Server -> Client message.\n\t * This message type is for sending error messages from AWS AppSync RealTime to the client\n\t */\n\tGQL_ERROR = 'error', // Server -> Client\n}\n\nexport enum SUBSCRIPTION_STATUS {\n\tPENDING,\n\tCONNECTED,\n\tFAILED,\n}\n\nexport enum SOCKET_STATUS {\n\tCLOSED,\n\tREADY,\n\tCONNECTING,\n}\n\nexport const AMPLIFY_SYMBOL = (\n\ttypeof Symbol !== 'undefined' && typeof Symbol.for === 'function'\n\t\t? Symbol.for('amplify_default')\n\t\t: '@@amplify_default'\n) as Symbol;\n\nexport const AWS_APPSYNC_REALTIME_HEADERS = {\n\taccept: 'application/json, text/javascript',\n\t'content-encoding': 'amz-1.0',\n\t'content-type': 'application/json; charset=UTF-8',\n};\n\n/**\n * Time in milleseconds to wait for GQL_CONNECTION_INIT message\n */\nexport const CONNECTION_INIT_TIMEOUT = 15000;\n\n/**\n * Time in milleseconds to wait for GQL_START_ACK message\n */\nexport const START_ACK_TIMEOUT = 15000;\n\n/**\n * Default Time in milleseconds to wait for GQL_CONNECTION_KEEP_ALIVE message\n */\nexport const DEFAULT_KEEP_ALIVE_TIMEOUT = 5 * 60 * 1000;\n\n/**\n * Default Time in milleseconds to alert for missed GQL_CONNECTION_KEEP_ALIVE message\n */\nexport const DEFAULT_KEEP_ALIVE_ALERT_TIMEOUT = 65 * 1000;\n\n/**\n * Default delay time in milleseconds between when reconnect is triggered vs when it is attempted\n */\nexport const RECONNECT_DELAY = 5 * 1000;\n\n/**\n * Default interval time in milleseconds between when reconnect is re-attempted\n */\nexport const RECONNECT_INTERVAL = 60 * 1000;\n","// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\n\nconst MIME_MAP = [\n\t{ type: 'text/plain', ext: 'txt' },\n\t{ type: 'text/html', ext: 'html' },\n\t{ type: 'text/javascript', ext: 'js' },\n\t{ type: 'text/css', ext: 'css' },\n\t{ type: 'text/csv', ext: 'csv' },\n\t{ type: 'text/yaml', ext: 'yml' },\n\t{ type: 'text/yaml', ext: 'yaml' },\n\t{ type: 'text/calendar', ext: 'ics' },\n\t{ type: 'text/calendar', ext: 'ical' },\n\n\t{ type: 'image/apng', ext: 'apng' },\n\t{ type: 'image/bmp', ext: 'bmp' },\n\t{ type: 'image/gif', ext: 'gif' },\n\t{ type: 'image/x-icon', ext: 'ico' },\n\t{ type: 'image/x-icon', ext: 'cur' },\n\t{ type: 'image/jpeg', ext: 'jpg' },\n\t{ type: 'image/jpeg', ext: 'jpeg' },\n\t{ type: 'image/jpeg', ext: 'jfif' },\n\t{ type: 'image/jpeg', ext: 'pjp' },\n\t{ type: 'image/jpeg', ext: 'pjpeg' },\n\t{ type: 'image/png', ext: 'png' },\n\t{ type: 'image/svg+xml', ext: 'svg' },\n\t{ type: 'image/tiff', ext: 'tif' },\n\t{ type: 'image/tiff', ext: 'tiff' },\n\t{ type: 'image/webp', ext: 'webp' },\n\n\t{ type: 'application/json', ext: 'json' },\n\t{ type: 'application/xml', ext: 'xml' },\n\t{ type: 'application/x-sh', ext: 'sh' },\n\t{ type: 'application/zip', ext: 'zip' },\n\t{ type: 'application/x-rar-compressed', ext: 'rar' },\n\t{ type: 'application/x-tar', ext: 'tar' },\n\t{ type: 'application/x-bzip', ext: 'bz' },\n\t{ type: 'application/x-bzip2', ext: 'bz2' },\n\t{ type: 'application/pdf', ext: 'pdf' },\n\t{ type: 'application/java-archive', ext: 'jar' },\n\t{ type: 'application/msword', ext: 'doc' },\n\t{ type: 'application/vnd.ms-excel', ext: 'xls' },\n\t{ type: 'application/vnd.ms-excel', ext: 'xlsx' },\n\n\t{ type: 'message/rfc822', ext: 'eml' },\n];\n\nexport const isEmpty = (obj = {}) => Object.keys(obj).length === 0;\n\nexport const sortByField = (list, field, dir) => {\n\tif (!list || !list.sort) {\n\t\treturn false;\n\t}\n\n\tconst dirX = dir && dir === 'desc' ? -1 : 1;\n\tlist.sort(function(a, b) {\n\t\tconst a_val = a[field];\n\t\tconst b_val = b[field];\n\n\t\tif (typeof b_val === 'undefined') {\n\t\t\treturn typeof a_val === 'undefined' ? 0 : 1 * dirX;\n\t\t}\n\n\t\tif (typeof a_val === 'undefined') {\n\t\t\treturn -1 * dirX;\n\t\t}\n\n\t\tif (a_val < b_val) {\n\t\t\treturn -1 * dirX;\n\t\t}\n\t\tif (a_val > b_val) {\n\t\t\treturn 1 * dirX;\n\t\t}\n\n\t\treturn 0;\n\t});\n\n\treturn true;\n};\n\nexport const objectLessAttributes = (obj, less) => {\n\tconst ret = Object.assign({}, obj);\n\tif (less) {\n\t\tif (typeof less === 'string') {\n\t\t\tdelete ret[less];\n\t\t} else {\n\t\t\tless.forEach(attr => {\n\t\t\t\tdelete ret[attr];\n\t\t\t});\n\t\t}\n\t}\n\n\treturn ret;\n};\n\nexport const filenameToContentType = (\n\tfilename,\n\tdefVal = 'application/octet-stream'\n) => {\n\tconst name = filename.toLowerCase();\n\n\tconst filtered = MIME_MAP.filter(mime => name.endsWith('.' + mime.ext));\n\treturn filtered.length > 0 ? filtered[0].type : defVal;\n};\n\nexport const isTextFile = contentType => {\n\tconst type = contentType.toLowerCase();\n\tif (type.startsWith('text/')) {\n\t\treturn true;\n\t}\n\treturn (\n\t\t'application/json' === type ||\n\t\t'application/xml' === type ||\n\t\t'application/sh' === type\n\t);\n};\n\nexport const generateRandomString = () => {\n\tlet result = '';\n\tconst chars =\n\t\t'0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ';\n\tfor (let i = 32; i > 0; i -= 1) {\n\t\tresult += chars[Math.floor(Math.random() * chars.length)];\n\t}\n\treturn result;\n};\n\nexport const makeQuerablePromise = promise => {\n\tif (promise.isResolved) return promise;\n\n\tlet isPending = true;\n\tlet isRejected = false;\n\tlet isFullfilled = false;\n\n\tconst result = promise.then(\n\t\tdata => {\n\t\t\tisFullfilled = true;\n\t\t\tisPending = false;\n\t\t\treturn data;\n\t\t},\n\t\te => {\n\t\t\tisRejected = true;\n\t\t\tisPending = false;\n\t\t\tthrow e;\n\t\t}\n\t);\n\n\tresult.isFullfilled = () => isFullfilled;\n\tresult.isPending = () => isPending;\n\tresult.isRejected = () => isRejected;\n\n\treturn result;\n};\n\nexport const isWebWorker = () => {\n\tif (typeof self === 'undefined') {\n\t\treturn false;\n\t}\n\tconst selfContext = self as { WorkerGlobalScope? };\n\treturn (\n\t\ttypeof selfContext.WorkerGlobalScope !== 'undefined' &&\n\t\tself instanceof selfContext.WorkerGlobalScope\n\t);\n};\n\nexport const browserOrNode = () => {\n\tconst isBrowser =\n\t\ttypeof window !== 'undefined' && typeof window.document !== 'undefined';\n\tconst isNode =\n\t\ttypeof process !== 'undefined' &&\n\t\tprocess.versions != null &&\n\t\tprocess.versions.node != null;\n\n\treturn {\n\t\tisBrowser,\n\t\tisNode,\n\t};\n};\n\n/**\n * transfer the first letter of the keys to lowercase\n * @param {Object} obj - the object need to be transferred\n * @param {Array} whiteListForItself - whitelist itself from being transferred\n * @param {Array} whiteListForChildren - whitelist its children keys from being transferred\n */\nexport const transferKeyToLowerCase = (\n\tobj,\n\twhiteListForItself = [],\n\twhiteListForChildren = []\n) => {\n\tif (!isStrictObject(obj)) return obj;\n\tconst ret = {};\n\n\tfor (const key in obj) {\n\t\tif (obj.hasOwnProperty(key)) {\n\t\t\tconst transferedKey = whiteListForItself.includes(key)\n\t\t\t\t? key\n\t\t\t\t: key[0].toLowerCase() + key.slice(1);\n\n\t\t\tret[transferedKey] = whiteListForChildren.includes(key)\n\t\t\t\t? obj[key]\n\t\t\t\t: transferKeyToLowerCase(\n\t\t\t\t\t\tobj[key],\n\t\t\t\t\t\twhiteListForItself,\n\t\t\t\t\t\twhiteListForChildren\n\t\t\t\t );\n\t\t}\n\t}\n\n\treturn ret;\n};\n\n/**\n * transfer the first letter of the keys to lowercase\n * @param {Object} obj - the object need to be transferred\n * @param {Array} whiteListForItself - whitelist itself from being transferred\n * @param {Array} whiteListForChildren - whitelist its children keys from being transferred\n */\nexport const transferKeyToUpperCase = (\n\tobj,\n\twhiteListForItself = [],\n\twhiteListForChildren = []\n) => {\n\tif (!isStrictObject(obj)) return obj;\n\tconst ret = {};\n\n\tfor (const key in obj) {\n\t\tif (obj.hasOwnProperty(key)) {\n\t\t\tconst transferredKey = whiteListForItself.includes(key)\n\t\t\t\t? key\n\t\t\t\t: key[0].toUpperCase() + key.slice(1);\n\n\t\t\tret[transferredKey] = whiteListForChildren.includes(key)\n\t\t\t\t? obj[key]\n\t\t\t\t: transferKeyToUpperCase(\n\t\t\t\t\t\tobj[key],\n\t\t\t\t\t\twhiteListForItself,\n\t\t\t\t\t\twhiteListForChildren\n\t\t\t\t );\n\t\t}\n\t}\n\treturn ret;\n};\n\n/**\n * Return true if the object is a strict object\n * which means it's not Array, Function, Number, String, Boolean or Null\n * @param obj the Object\n */\nexport const isStrictObject = obj => {\n\treturn (\n\t\tobj instanceof Object &&\n\t\t!(obj instanceof Array) &&\n\t\t!(obj instanceof Function) &&\n\t\t!(obj instanceof Number) &&\n\t\t!(obj instanceof String) &&\n\t\t!(obj instanceof Boolean)\n\t);\n};\n","import { browserOrNode, isWebWorker } from '@aws-amplify/core';\nimport Observable, { ZenObservable } from 'zen-observable-ts';\n\ntype NetworkStatus = {\n\tonline: boolean;\n};\n\nexport default class ReachabilityNavigator implements Reachability {\n\tprivate static _observers: Array<\n\t\tZenObservable.SubscriptionObserver\n\t> = [];\n\n\tnetworkMonitor(netInfo?: any): Observable {\n\t\tif (browserOrNode().isNode) {\n\t\t\treturn Observable.from([{ online: true }]);\n\t\t}\n\n\t\tconst globalObj = isWebWorker() ? self : window;\n\n\t\treturn new Observable(observer => {\n\t\t\tobserver.next({ online: globalObj.navigator.onLine });\n\n\t\t\tconst notifyOnline = () => observer.next({ online: true });\n\t\t\tconst notifyOffline = () => observer.next({ online: false });\n\n\t\t\tglobalObj.addEventListener('online', notifyOnline);\n\t\t\tglobalObj.addEventListener('offline', notifyOffline);\n\n\t\t\tReachabilityNavigator._observers.push(observer);\n\n\t\t\treturn () => {\n\t\t\t\tglobalObj.removeEventListener('online', notifyOnline);\n\t\t\t\tglobalObj.removeEventListener('offline', notifyOffline);\n\n\t\t\t\tReachabilityNavigator._observers = ReachabilityNavigator._observers.filter(\n\t\t\t\t\t_observer => _observer !== observer\n\t\t\t\t);\n\t\t\t};\n\t\t});\n\t}\n\n\t// expose observers to simulate offline mode for integration testing\n\tprivate static _observerOverride(status: NetworkStatus): void {\n\t\tfor (const observer of ReachabilityNavigator._observers) {\n\t\t\tif (observer.closed) {\n\t\t\t\tReachabilityNavigator._observers = ReachabilityNavigator._observers.filter(\n\t\t\t\t\t_observer => _observer !== observer\n\t\t\t\t);\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\tobserver.next(status);\n\t\t}\n\t}\n}\n\ninterface Reachability {\n\tnetworkMonitor(netInfo?: any): Observable;\n}\n","import { Reachability } from '@aws-amplify/core';\n\nexport const ReachabilityMonitor = () => new Reachability().networkMonitor();\n","// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\n\nimport { Reachability } from '@aws-amplify/core';\nimport Observable, { ZenObservable } from 'zen-observable-ts';\nimport { ConnectionState } from '../types/PubSub';\nimport { ReachabilityMonitor } from './ReachabilityMonitor';\n\n// Internal types for tracking different connection states\ntype LinkedConnectionState = 'connected' | 'disconnected';\ntype LinkedHealthState = 'healthy' | 'unhealthy';\ntype LinkedConnectionStates = {\n\tnetworkState: LinkedConnectionState;\n\tconnectionState: LinkedConnectionState | 'connecting';\n\tintendedConnectionState: LinkedConnectionState;\n\tkeepAliveState: LinkedHealthState;\n};\n\nexport const CONNECTION_CHANGE: {\n\t[key in\n\t\t| 'KEEP_ALIVE_MISSED'\n\t\t| 'KEEP_ALIVE'\n\t\t| 'CONNECTION_ESTABLISHED'\n\t\t| 'CONNECTION_FAILED'\n\t\t| 'CLOSING_CONNECTION'\n\t\t| 'OPENING_CONNECTION'\n\t\t| 'CLOSED'\n\t\t| 'ONLINE'\n\t\t| 'OFFLINE']: Partial;\n} = {\n\tKEEP_ALIVE_MISSED: { keepAliveState: 'unhealthy' },\n\tKEEP_ALIVE: { keepAliveState: 'healthy' },\n\tCONNECTION_ESTABLISHED: { connectionState: 'connected' },\n\tCONNECTION_FAILED: {\n\t\tintendedConnectionState: 'disconnected',\n\t\tconnectionState: 'disconnected',\n\t},\n\tCLOSING_CONNECTION: { intendedConnectionState: 'disconnected' },\n\tOPENING_CONNECTION: {\n\t\tintendedConnectionState: 'connected',\n\t\tconnectionState: 'connecting',\n\t},\n\tCLOSED: { connectionState: 'disconnected' },\n\tONLINE: { networkState: 'connected' },\n\tOFFLINE: { networkState: 'disconnected' },\n};\n\nexport class ConnectionStateMonitor {\n\t/**\n\t * @private\n\t */\n\tprivate _linkedConnectionState: LinkedConnectionStates;\n\tprivate _linkedConnectionStateObservable: Observable;\n\tprivate _linkedConnectionStateObserver: ZenObservable.SubscriptionObserver;\n\tprivate _networkMonitoringSubscription?: ZenObservable.Subscription;\n\tprivate _initialNetworkStateSubscription?: ZenObservable.Subscription;\n\n\tconstructor() {\n\t\tthis._networkMonitoringSubscription = undefined;\n\t\tthis._linkedConnectionState = {\n\t\t\tnetworkState: 'connected',\n\t\t\tconnectionState: 'disconnected',\n\t\t\tintendedConnectionState: 'disconnected',\n\t\t\tkeepAliveState: 'healthy',\n\t\t};\n\n\t\t// Attempt to update the state with the current actual network state\n\t\tthis._initialNetworkStateSubscription = ReachabilityMonitor().subscribe(\n\t\t\t({ online }) => {\n\t\t\t\tthis.record(\n\t\t\t\t\tonline ? CONNECTION_CHANGE.ONLINE : CONNECTION_CHANGE.OFFLINE\n\t\t\t\t);\n\t\t\t\tthis._initialNetworkStateSubscription?.unsubscribe();\n\t\t\t}\n\t\t);\n\n\t\tthis._linkedConnectionStateObservable =\n\t\t\tnew Observable(connectionStateObserver => {\n\t\t\t\tconnectionStateObserver.next(this._linkedConnectionState);\n\t\t\t\tthis._linkedConnectionStateObserver = connectionStateObserver;\n\t\t\t});\n\t}\n\n\t/**\n\t * Turn network state monitoring on if it isn't on already\n\t */\n\tprivate enableNetworkMonitoring() {\n\t\t// If no initial network state was discovered, stop trying\n\t\tthis._initialNetworkStateSubscription?.unsubscribe();\n\n\t\t// Maintain the network state based on the reachability monitor\n\t\tif (this._networkMonitoringSubscription === undefined) {\n\t\t\tthis._networkMonitoringSubscription = ReachabilityMonitor().subscribe(\n\t\t\t\t({ online }) => {\n\t\t\t\t\tthis.record(\n\t\t\t\t\t\tonline ? CONNECTION_CHANGE.ONLINE : CONNECTION_CHANGE.OFFLINE\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t);\n\t\t}\n\t}\n\n\t/**\n\t * Turn network state monitoring off if it isn't off already\n\t */\n\tprivate disableNetworkMonitoring() {\n\t\tthis._networkMonitoringSubscription?.unsubscribe();\n\t\tthis._networkMonitoringSubscription = undefined;\n\t}\n\n\t/**\n\t * Get the observable that allows us to monitor the connection state\n\t *\n\t * @returns {Observable} - The observable that emits ConnectionState updates\n\t */\n\tpublic get connectionStateObservable(): Observable {\n\t\tlet previous: ConnectionState;\n\n\t\t// The linked state aggregates state changes to any of the network, connection,\n\t\t// intendedConnection and keepAliveHealth. Some states will change these independent\n\t\t// states without changing the overall connection state.\n\n\t\t// After translating from linked states to ConnectionState, then remove any duplicates\n\t\treturn this._linkedConnectionStateObservable\n\t\t\t.map(value => {\n\t\t\t\treturn this.connectionStatesTranslator(value);\n\t\t\t})\n\t\t\t.filter(current => {\n\t\t\t\tconst toInclude = current !== previous;\n\t\t\t\tprevious = current;\n\t\t\t\treturn toInclude;\n\t\t\t});\n\t}\n\n\t/*\n\t * Updates local connection state and emits the full state to the observer.\n\t */\n\trecord(statusUpdates: Partial) {\n\t\t// Maintain the network monitor\n\t\tif (statusUpdates.intendedConnectionState === 'connected') {\n\t\t\tthis.enableNetworkMonitoring();\n\t\t} else if (statusUpdates.intendedConnectionState === 'disconnected') {\n\t\t\tthis.disableNetworkMonitoring();\n\t\t}\n\n\t\t// Maintain the socket state\n\t\tconst newSocketStatus = {\n\t\t\t...this._linkedConnectionState,\n\t\t\t...statusUpdates,\n\t\t};\n\n\t\tthis._linkedConnectionState = { ...newSocketStatus };\n\n\t\tthis._linkedConnectionStateObserver.next(this._linkedConnectionState);\n\t}\n\n\t/*\n\t * Translate the ConnectionState structure into a specific ConnectionState string literal union\n\t */\n\tprivate connectionStatesTranslator({\n\t\tconnectionState,\n\t\tnetworkState,\n\t\tintendedConnectionState,\n\t\tkeepAliveState,\n\t}: LinkedConnectionStates): ConnectionState {\n\t\tif (connectionState === 'connected' && networkState === 'disconnected')\n\t\t\treturn ConnectionState.ConnectedPendingNetwork;\n\n\t\tif (\n\t\t\tconnectionState === 'connected' &&\n\t\t\tintendedConnectionState === 'disconnected'\n\t\t)\n\t\t\treturn ConnectionState.ConnectedPendingDisconnect;\n\n\t\tif (\n\t\t\tconnectionState === 'disconnected' &&\n\t\t\tintendedConnectionState === 'connected' &&\n\t\t\tnetworkState === 'disconnected'\n\t\t)\n\t\t\treturn ConnectionState.ConnectionDisruptedPendingNetwork;\n\n\t\tif (\n\t\t\tconnectionState === 'disconnected' &&\n\t\t\tintendedConnectionState === 'connected'\n\t\t)\n\t\t\treturn ConnectionState.ConnectionDisrupted;\n\n\t\tif (connectionState === 'connected' && keepAliveState === 'unhealthy')\n\t\t\treturn ConnectionState.ConnectedPendingKeepAlive;\n\n\t\t// All remaining states directly correspond to the connection state\n\t\tif (connectionState === 'connecting') return ConnectionState.Connecting;\n\t\tif (connectionState === 'disconnected') return ConnectionState.Disconnected;\n\t\treturn ConnectionState.Connected;\n\t}\n}\n","import { Observer } from 'zen-observable-ts';\nimport { RECONNECT_DELAY, RECONNECT_INTERVAL } from '../Providers/constants';\n\nexport enum ReconnectEvent {\n\tSTART_RECONNECT = 'START_RECONNECT',\n\tHALT_RECONNECT = 'HALT_RECONNECT',\n}\n\n/**\n * Captures the reconnect event logic used to determine when to reconnect to PubSub providers.\n * Reconnnect attempts are delayed by 5 seconds to let the interface settle.\n * Attempting to reconnect only once creates unrecoverable states when the network state isn't\n * supported by the browser, so this keeps retrying every minute until halted.\n */\nexport class ReconnectionMonitor {\n\tprivate reconnectObservers: Observer[] = [];\n\tprivate reconnectIntervalId?: ReturnType;\n\tprivate reconnectSetTimeoutId?: ReturnType;\n\n\t/**\n\t * Add reconnect observer to the list of observers to alert on reconnect\n\t */\n\taddObserver(reconnectObserver: Observer) {\n\t\tthis.reconnectObservers.push(reconnectObserver);\n\t}\n\n\t/**\n\t * Given a reconnect event, start the appropriate behavior\n\t */\n\trecord(event: ReconnectEvent) {\n\t\tif (event === ReconnectEvent.START_RECONNECT) {\n\t\t\t// If the reconnection hasn't been started\n\t\t\tif (\n\t\t\t\tthis.reconnectSetTimeoutId === undefined &&\n\t\t\t\tthis.reconnectIntervalId === undefined\n\t\t\t) {\n\t\t\t\tthis.reconnectSetTimeoutId = setTimeout(() => {\n\t\t\t\t\t// Reconnect now\n\t\t\t\t\tthis._triggerReconnect();\n\t\t\t\t\t// Retry reconnect every periodically until it works\n\t\t\t\t\tthis.reconnectIntervalId = setInterval(() => {\n\t\t\t\t\t\tthis._triggerReconnect();\n\t\t\t\t\t}, RECONNECT_INTERVAL);\n\t\t\t\t}, RECONNECT_DELAY);\n\t\t\t}\n\t\t}\n\n\t\tif (event === ReconnectEvent.HALT_RECONNECT) {\n\t\t\tif (this.reconnectIntervalId) {\n\t\t\t\tclearInterval(this.reconnectIntervalId);\n\t\t\t\tthis.reconnectIntervalId = undefined;\n\t\t\t}\n\t\t\tif (this.reconnectSetTimeoutId) {\n\t\t\t\tclearTimeout(this.reconnectSetTimeoutId);\n\t\t\t\tthis.reconnectSetTimeoutId = undefined;\n\t\t\t}\n\t\t}\n\t}\n\n\t/**\n\t * Complete all reconnect observers\n\t */\n\tclose() {\n\t\tthis.reconnectObservers.forEach(reconnectObserver => {\n\t\t\treconnectObserver.complete?.();\n\t\t});\n\t}\n\n\tprivate _triggerReconnect() {\n\t\tthis.reconnectObservers.forEach(reconnectObserver => {\n\t\t\treconnectObserver.next?.();\n\t\t});\n\t}\n}\n","// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nimport * as Paho from '../vendor/paho-mqtt';\nimport { v4 as uuid } from 'uuid';\nimport Observable, { ZenObservable } from 'zen-observable-ts';\n\nimport { AbstractPubSubProvider } from './PubSubProvider';\nimport { SubscriptionObserver, ConnectionState } from '../types/PubSub';\nimport { ProviderOptions } from '../types/Provider';\nimport { ConsoleLogger as Logger, Hub } from '@aws-amplify/core';\nimport {\n\tConnectionStateMonitor,\n\tCONNECTION_CHANGE,\n} from '../utils/ConnectionStateMonitor';\nimport {\n\tReconnectEvent,\n\tReconnectionMonitor,\n} from '../utils/ReconnectionMonitor';\nimport { AMPLIFY_SYMBOL, CONNECTION_STATE_CHANGE } from './constants';\n\nconst logger = new Logger('MqttOverWSProvider');\n\nexport function mqttTopicMatch(filter: string, topic: string) {\n\tconst filterArray = filter.split('/');\n\tconst length = filterArray.length;\n\tconst topicArray = topic.split('/');\n\n\tfor (let i = 0; i < length; ++i) {\n\t\tconst left = filterArray[i];\n\t\tconst right = topicArray[i];\n\t\tif (left === '#') return topicArray.length >= length;\n\t\tif (left !== '+' && left !== right) return false;\n\t}\n\treturn length === topicArray.length;\n}\n\nexport interface MqttProviderOptions extends ProviderOptions {\n\tclientId?: string;\n\turl?: string;\n}\n\nclass ClientsQueue {\n\tprivate promises: Map> = new Map();\n\n\tasync get(clientId: string, clientFactory?: (input: string) => Promise) {\n\t\tconst cachedPromise = this.promises.get(clientId);\n\t\tif (cachedPromise) return cachedPromise;\n\n\t\tif (clientFactory) {\n\t\t\tconst newPromise = clientFactory(clientId);\n\t\t\tthis.promises.set(clientId, newPromise);\n\t\t\tnewPromise.catch(v => this.promises.delete(clientId));\n\t\t\treturn newPromise;\n\t\t}\n\n\t\treturn undefined;\n\t}\n\n\tget allClients() {\n\t\treturn Array.from(this.promises.keys());\n\t}\n\n\tremove(clientId: string) {\n\t\tthis.promises.delete(clientId);\n\t}\n}\n\nconst dispatchPubSubEvent = (event: string, data: any, message: string) => {\n\tHub.dispatch('pubsub', { event, data, message }, 'PubSub', AMPLIFY_SYMBOL);\n};\n\nconst topicSymbol = typeof Symbol !== 'undefined' ? Symbol('topic') : '@@topic';\n\nexport class MqttOverWSProvider extends AbstractPubSubProvider {\n\tprivate _clientsQueue = new ClientsQueue();\n\tprivate connectionState: ConnectionState;\n\tprivate readonly connectionStateMonitor = new ConnectionStateMonitor();\n\tprivate readonly reconnectionMonitor = new ReconnectionMonitor();\n\n\tconstructor(options: MqttProviderOptions = {}) {\n\t\tsuper({ ...options, clientId: options.clientId || uuid() });\n\n\t\t// Monitor the connection health state and pass changes along to Hub\n\t\tthis.connectionStateMonitor.connectionStateObservable.subscribe(\n\t\t\tconnectionStateChange => {\n\t\t\t\tdispatchPubSubEvent(\n\t\t\t\t\tCONNECTION_STATE_CHANGE,\n\t\t\t\t\t{\n\t\t\t\t\t\tprovider: this,\n\t\t\t\t\t\tconnectionState: connectionStateChange,\n\t\t\t\t\t},\n\t\t\t\t\t`Connection state is ${connectionStateChange}`\n\t\t\t\t);\n\n\t\t\t\tthis.connectionState = connectionStateChange;\n\n\t\t\t\t// Trigger reconnection when the connection is disrupted\n\t\t\t\tif (connectionStateChange === ConnectionState.ConnectionDisrupted) {\n\t\t\t\t\tthis.reconnectionMonitor.record(ReconnectEvent.START_RECONNECT);\n\t\t\t\t} else if (connectionStateChange !== ConnectionState.Connecting) {\n\t\t\t\t\t// Trigger connected to halt reconnection attempts\n\t\t\t\t\tthis.reconnectionMonitor.record(ReconnectEvent.HALT_RECONNECT);\n\t\t\t\t}\n\t\t\t}\n\t\t);\n\t}\n\n\tprotected get clientId() {\n\t\treturn this.options.clientId;\n\t}\n\n\tprotected get endpoint() {\n\t\treturn this.options.aws_pubsub_endpoint;\n\t}\n\n\tprotected get clientsQueue() {\n\t\treturn this._clientsQueue;\n\t}\n\n\tprotected get isSSLEnabled() {\n\t\treturn !this.options\n\t\t\t.aws_appsync_dangerously_connect_to_http_endpoint_for_testing;\n\t}\n\n\tprotected getTopicForValue(value: any) {\n\t\treturn typeof value === 'object' && value[topicSymbol];\n\t}\n\n\tgetProviderName() {\n\t\treturn 'MqttOverWSProvider';\n\t}\n\n\tpublic onDisconnect({\n\t\tclientId,\n\t\terrorCode,\n\t\t...args\n\t}: {\n\t\tclientId?: string;\n\t\terrorCode?: number;\n\t}) {\n\t\tif (errorCode !== 0) {\n\t\t\tlogger.warn(clientId, JSON.stringify({ errorCode, ...args }, null, 2));\n\n\t\t\tif (!clientId) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tconst clientIdObservers = this._clientIdObservers.get(clientId);\n\t\t\tif (!clientIdObservers) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tthis.disconnect(clientId);\n\t\t}\n\t}\n\n\tpublic async newClient({ url, clientId }: MqttProviderOptions): Promise {\n\t\tlogger.debug('Creating new MQTT client', clientId);\n\n\t\tthis.connectionStateMonitor.record(CONNECTION_CHANGE.OPENING_CONNECTION);\n\t\t// @ts-ignore\n\t\tconst client = new Paho.Client(url, clientId);\n\n\t\tclient.onMessageArrived = ({\n\t\t\tdestinationName: topic,\n\t\t\tpayloadString: msg,\n\t\t}: {\n\t\t\tdestinationName: string;\n\t\t\tpayloadString: string;\n\t\t}) => {\n\t\t\tthis._onMessage(topic, msg);\n\t\t};\n\t\tclient.onConnectionLost = ({\n\t\t\terrorCode,\n\t\t\t...args\n\t\t}: {\n\t\t\terrorCode: number;\n\t\t}) => {\n\t\t\tthis.onDisconnect({ clientId, errorCode, ...args });\n\t\t\tthis.connectionStateMonitor.record(CONNECTION_CHANGE.CLOSED);\n\t\t};\n\n\t\tconst connected = await new Promise((resolve, reject) => {\n\t\t\tclient.connect({\n\t\t\t\tuseSSL: this.isSSLEnabled,\n\t\t\t\tmqttVersion: 3,\n\t\t\t\tonSuccess: () => resolve(true),\n\t\t\t\tonFailure: x => {\n\t\t\t\t\tif (clientId) this._clientsQueue.remove(clientId);\n\t\t\t\t\tthis.connectionStateMonitor.record(CONNECTION_CHANGE.CLOSED);\n\t\t\t\t\tresolve(false);\n\t\t\t\t},\n\t\t\t});\n\t\t});\n\n\t\tif (connected) {\n\t\t\tthis.connectionStateMonitor.record(\n\t\t\t\tCONNECTION_CHANGE.CONNECTION_ESTABLISHED\n\t\t\t);\n\t\t}\n\n\t\treturn client;\n\t}\n\n\tprotected async connect(\n\t\tclientId: string,\n\t\toptions: MqttProviderOptions = {}\n\t): Promise {\n\t\treturn await this.clientsQueue.get(clientId, async clientId => {\n\t\t\tconst client = await this.newClient({ ...options, clientId });\n\n\t\t\tif (client) {\n\t\t\t\t// Once connected, subscribe to all topics registered observers\n\t\t\t\tthis._topicObservers.forEach(\n\t\t\t\t\t(_value: Set>, key: string) => {\n\t\t\t\t\t\tclient.subscribe(key);\n\t\t\t\t\t}\n\t\t\t\t);\n\t\t\t}\n\t\t\treturn client;\n\t\t});\n\t}\n\n\tprotected async disconnect(clientId: string): Promise {\n\t\tconst client = await this.clientsQueue.get(clientId);\n\n\t\tif (client && client.isConnected()) {\n\t\t\tclient.disconnect();\n\t\t}\n\t\tthis.clientsQueue.remove(clientId);\n\t\tthis.connectionStateMonitor.record(CONNECTION_CHANGE.CLOSED);\n\t}\n\n\tasync publish(topics: string[] | string, msg: any) {\n\t\tconst targetTopics = ([] as string[]).concat(topics);\n\t\tconst message = JSON.stringify(msg);\n\n\t\tconst client = await this.clientsQueue.get(this.clientId);\n\n\t\tif (client) {\n\t\t\tlogger.debug('Publishing to topic(s)', targetTopics.join(','), message);\n\t\t\ttargetTopics.forEach(topic => client.send(topic, message));\n\t\t} else {\n\t\t\tlogger.debug(\n\t\t\t\t'Publishing to topic(s) failed',\n\t\t\t\ttargetTopics.join(','),\n\t\t\t\tmessage\n\t\t\t);\n\t\t}\n\t}\n\n\tprotected _topicObservers: Map>> =\n\t\tnew Map();\n\n\tprotected _clientIdObservers: Map>> =\n\t\tnew Map();\n\n\tprivate _onMessage(topic: string, msg: any) {\n\t\ttry {\n\t\t\tconst matchedTopicObservers: Set>[] = [];\n\t\t\tthis._topicObservers.forEach((observerForTopic, observerTopic) => {\n\t\t\t\tif (mqttTopicMatch(observerTopic, topic)) {\n\t\t\t\t\tmatchedTopicObservers.push(observerForTopic);\n\t\t\t\t}\n\t\t\t});\n\t\t\tconst parsedMessage = JSON.parse(msg);\n\n\t\t\tif (typeof parsedMessage === 'object') {\n\t\t\t\tparsedMessage[topicSymbol] = topic;\n\t\t\t}\n\n\t\t\tmatchedTopicObservers.forEach(observersForTopic => {\n\t\t\t\tobserversForTopic.forEach(observer => observer.next(parsedMessage));\n\t\t\t});\n\t\t} catch (error) {\n\t\t\tlogger.warn('Error handling message', error, msg);\n\t\t}\n\t}\n\n\tsubscribe(\n\t\ttopics: string[] | string,\n\t\toptions: MqttProviderOptions = {}\n\t): Observable {\n\t\tconst targetTopics = ([] as string[]).concat(topics);\n\t\tlogger.debug('Subscribing to topic(s)', targetTopics.join(','));\n\t\tlet reconnectSubscription: ZenObservable.Subscription;\n\n\t\treturn new Observable(observer => {\n\t\t\ttargetTopics.forEach(topic => {\n\t\t\t\t// this._topicObservers is used to notify the observers according to the topic received on the message\n\t\t\t\tlet observersForTopic = this._topicObservers.get(topic);\n\n\t\t\t\tif (!observersForTopic) {\n\t\t\t\t\tobserversForTopic = new Set();\n\n\t\t\t\t\tthis._topicObservers.set(topic, observersForTopic);\n\t\t\t\t}\n\n\t\t\t\tobserversForTopic.add(observer);\n\t\t\t});\n\n\t\t\tconst { clientId = this.clientId } = options;\n\n\t\t\t// this._clientIdObservers is used to close observers when client gets disconnected\n\t\t\tlet observersForClientId = this._clientIdObservers.get(clientId);\n\t\t\tif (!observersForClientId) {\n\t\t\t\tobserversForClientId = new Set();\n\t\t\t}\n\t\t\tobserversForClientId.add(observer);\n\t\t\tthis._clientIdObservers.set(clientId, observersForClientId);\n\n\t\t\t(async () => {\n\t\t\t\tconst getClient = async () => {\n\t\t\t\t\ttry {\n\t\t\t\t\t\tconst { url = await this.endpoint } = options;\n\t\t\t\t\t\tconst client = await this.connect(clientId, { url });\n\t\t\t\t\t\tif (client !== undefined) {\n\t\t\t\t\t\t\ttargetTopics.forEach(topic => {\n\t\t\t\t\t\t\t\tclient.subscribe(topic);\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t}\n\t\t\t\t\t} catch (e) {\n\t\t\t\t\t\tlogger.debug('Error forming connection', e);\n\t\t\t\t\t}\n\t\t\t\t};\n\n\t\t\t\t// Establish the initial connection\n\t\t\t\tawait getClient();\n\n\t\t\t\t// Add an observable to the reconnection list to manage reconnection for this subscription\n\t\t\t\treconnectSubscription = new Observable(observer => {\n\t\t\t\t\tthis.reconnectionMonitor.addObserver(observer);\n\t\t\t\t}).subscribe(() => {\n\t\t\t\t\tgetClient();\n\t\t\t\t});\n\t\t\t})();\n\n\t\t\treturn async () => {\n\t\t\t\tconst client = await this.clientsQueue.get(clientId);\n\n\t\t\t\treconnectSubscription?.unsubscribe();\n\n\t\t\t\tif (client) {\n\t\t\t\t\tthis._clientIdObservers.get(clientId)?.delete(observer);\n\t\t\t\t\t// No more observers per client => client not needed anymore\n\t\t\t\t\tif (this._clientIdObservers.get(clientId)?.size === 0) {\n\t\t\t\t\t\tthis.disconnect(clientId);\n\t\t\t\t\t\tthis.connectionStateMonitor.record(\n\t\t\t\t\t\t\tCONNECTION_CHANGE.CLOSING_CONNECTION\n\t\t\t\t\t\t);\n\t\t\t\t\t\tthis._clientIdObservers.delete(clientId);\n\t\t\t\t\t}\n\n\t\t\t\t\ttargetTopics.forEach(topic => {\n\t\t\t\t\t\tconst observersForTopic =\n\t\t\t\t\t\t\tthis._topicObservers.get(topic) ||\n\t\t\t\t\t\t\t(new Set() as Set>);\n\n\t\t\t\t\t\tobserversForTopic.delete(observer);\n\n\t\t\t\t\t\t// if no observers exists for the topic, topic should be removed\n\t\t\t\t\t\tif (observersForTopic.size === 0) {\n\t\t\t\t\t\t\tthis._topicObservers.delete(topic);\n\t\t\t\t\t\t\tif (client.isConnected()) {\n\t\t\t\t\t\t\t\tclient.unsubscribe(topic);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\t\t\t\t}\n\n\t\t\t\treturn null;\n\t\t\t};\n\t\t});\n\t}\n}\n","// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\n\nlet dataMemory = {};\n\n/** @class */\nexport class MemoryStorage {\n\t/**\n\t * This is used to set a specific item in storage\n\t * @param {string} key - the key for the item\n\t * @param {object} value - the value\n\t * @returns {string} value that was set\n\t */\n\tstatic setItem(key: string, value: any) {\n\t\tdataMemory[key] = value;\n\t\treturn dataMemory[key];\n\t}\n\n\t/**\n\t * This is used to get a specific key from storage\n\t * @param {string} key - the key for the item\n\t * This is used to clear the storage\n\t * @returns {string} the data item\n\t */\n\tstatic getItem(key: string) {\n\t\treturn Object.prototype.hasOwnProperty.call(dataMemory, key)\n\t\t\t? dataMemory[key]\n\t\t\t: undefined;\n\t}\n\n\t/**\n\t * This is used to remove an item from storage\n\t * @param {string} key - the key being set\n\t * @returns {string} value - value that was deleted\n\t */\n\tstatic removeItem(key: string) {\n\t\treturn delete dataMemory[key];\n\t}\n\n\t/**\n\t * This is used to clear the storage\n\t * @returns {string} nothing\n\t */\n\tstatic clear() {\n\t\tdataMemory = {};\n\t\treturn dataMemory;\n\t}\n}\n\nexport class StorageHelper {\n\tprivate storageWindow: any;\n\t/**\n\t * This is used to get a storage object\n\t * @returns {object} the storage\n\t */\n\tconstructor() {\n\t\ttry {\n\t\t\tthis.storageWindow = window.localStorage;\n\t\t\tthis.storageWindow.setItem('aws.amplify.test-ls', 1);\n\t\t\tthis.storageWindow.removeItem('aws.amplify.test-ls');\n\t\t} catch (exception) {\n\t\t\tthis.storageWindow = MemoryStorage;\n\t\t}\n\t}\n\n\t/**\n\t * This is used to return the storage\n\t * @returns {object} the storage\n\t */\n\tgetStorage(): any {\n\t\treturn this.storageWindow;\n\t}\n}\n","import { DelayFunction } from '../types';\nimport { ConsoleLogger as Logger } from '../Logger/ConsoleLogger';\nconst logger = new Logger('Util');\n\nexport class NonRetryableError extends Error {\n\tpublic readonly nonRetryable = true;\n\tconstructor(message: string) {\n\t\tsuper(message);\n\t}\n}\n\nexport const isNonRetryableError = (obj: any): obj is NonRetryableError => {\n\tconst key: keyof NonRetryableError = 'nonRetryable';\n\treturn obj && obj[key];\n};\n\n/**\n * @private\n * Internal use of Amplify only\n */\nexport async function retry(\n\tfunctionToRetry: (...args: any[]) => T,\n\targs: any[],\n\tdelayFn: DelayFunction,\n\tonTerminate?: Promise\n): Promise {\n\tif (typeof functionToRetry !== 'function') {\n\t\tthrow Error('functionToRetry must be a function');\n\t}\n\n\treturn new Promise(async (resolve, reject) => {\n\t\tlet attempt = 0;\n\t\tlet terminated = false;\n\t\tlet timeout: any;\n\t\tlet wakeUp: any = () => {}; // will be replaced with a resolver()\n\n\t\t// used after the loop if terminated while waiting for a timer.\n\t\tlet lastError: Error;\n\n\t\tonTerminate &&\n\t\t\tonTerminate.then(() => {\n\t\t\t\t// signal not to try anymore.\n\t\t\t\tterminated = true;\n\n\t\t\t\t// stop sleeping if we're sleeping.\n\t\t\t\tclearTimeout(timeout);\n\t\t\t\twakeUp();\n\t\t\t});\n\n\t\twhile (!terminated) {\n\t\t\tattempt++;\n\n\t\t\tlogger.debug(\n\t\t\t\t`${\n\t\t\t\t\tfunctionToRetry.name\n\t\t\t\t} attempt #${attempt} with this vars: ${JSON.stringify(args)}`\n\t\t\t);\n\n\t\t\ttry {\n\t\t\t\treturn resolve(await functionToRetry(...args));\n\t\t\t} catch (err) {\n\t\t\t\tlastError = err;\n\t\t\t\tlogger.debug(`error on ${functionToRetry.name}`, err);\n\n\t\t\t\tif (isNonRetryableError(err)) {\n\t\t\t\t\tlogger.debug(`${functionToRetry.name} non retryable error`, err);\n\t\t\t\t\treturn reject(err);\n\t\t\t\t}\n\n\t\t\t\tconst retryIn = delayFn(attempt, args, err);\n\t\t\t\tlogger.debug(`${functionToRetry.name} retrying in ${retryIn} ms`);\n\n\t\t\t\t// we check `terminated` again here because it could have flipped\n\t\t\t\t// in the time it took `functionToRetry` to return.\n\t\t\t\tif (retryIn === false || terminated) {\n\t\t\t\t\treturn reject(err);\n\t\t\t\t} else {\n\t\t\t\t\tawait new Promise(r => {\n\t\t\t\t\t\twakeUp = r; // export wakeUp for onTerminate handling\n\t\t\t\t\t\ttimeout = setTimeout(wakeUp, retryIn);\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t// reached if terminated while waiting for a timer.\n\t\treject(lastError);\n\t});\n}\n\nconst MAX_DELAY_MS = 5 * 60 * 1000;\n\n/**\n * @private\n * Internal use of Amplify only\n */\nexport function jitteredBackoff(\n\tmaxDelayMs: number = MAX_DELAY_MS\n): DelayFunction {\n\tconst BASE_TIME_MS = 100;\n\tconst JITTER_FACTOR = 100;\n\n\treturn attempt => {\n\t\tconst delay = 2 ** attempt * BASE_TIME_MS + JITTER_FACTOR * Math.random();\n\t\treturn delay > maxDelayMs ? false : delay;\n\t};\n}\n\n/**\n * @private\n * Internal use of Amplify only\n */\nexport const jitteredExponentialRetry = (\n\tfunctionToRetry: (...args: any[]) => T,\n\targs: any[],\n\tmaxDelayMs: number = MAX_DELAY_MS,\n\tonTerminate?: Promise\n): Promise =>\n\tretry(functionToRetry, args, jitteredBackoff(maxDelayMs), onTerminate);\n","// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nimport { ConsoleLogger as Logger } from '../Logger';\nimport { browserOrNode } from '../JS';\nimport { NonRetryableError } from '../Util';\n\nconst logger = new Logger('CognitoCredentials');\n\nconst waitForInit = new Promise((res, rej) => {\n\tif (!browserOrNode().isBrowser) {\n\t\tlogger.debug('not in the browser, directly resolved');\n\t\treturn res();\n\t}\n\tconst ga =\n\t\twindow['gapi'] && window['gapi'].auth2 ? window['gapi'].auth2 : null;\n\tif (ga) {\n\t\tlogger.debug('google api already loaded');\n\t\treturn res();\n\t} else {\n\t\tsetTimeout(() => {\n\t\t\treturn res();\n\t\t}, 2000);\n\t}\n});\n\nexport class GoogleOAuth {\n\tpublic initialized = false;\n\n\tconstructor() {\n\t\tthis.refreshGoogleToken = this.refreshGoogleToken.bind(this);\n\t\tthis._refreshGoogleTokenImpl = this._refreshGoogleTokenImpl.bind(this);\n\t}\n\n\tpublic async refreshGoogleToken() {\n\t\tif (!this.initialized) {\n\t\t\tlogger.debug('need to wait for the Google SDK loaded');\n\t\t\tawait waitForInit;\n\t\t\tthis.initialized = true;\n\t\t\tlogger.debug('finish waiting');\n\t\t}\n\n\t\treturn this._refreshGoogleTokenImpl();\n\t}\n\n\tprivate _refreshGoogleTokenImpl() {\n\t\tlet ga = null;\n\t\tif (browserOrNode().isBrowser)\n\t\t\tga = window['gapi'] && window['gapi'].auth2 ? window['gapi'].auth2 : null;\n\t\tif (!ga) {\n\t\t\tlogger.debug('no gapi auth2 available');\n\t\t\treturn Promise.reject('no gapi auth2 available');\n\t\t}\n\n\t\treturn new Promise((res, rej) => {\n\t\t\tga.getAuthInstance()\n\t\t\t\t.then(googleAuth => {\n\t\t\t\t\tif (!googleAuth) {\n\t\t\t\t\t\tlogger.debug('google Auth undefined');\n\t\t\t\t\t\trej(new NonRetryableError('google Auth undefined'));\n\t\t\t\t\t}\n\n\t\t\t\t\tconst googleUser = googleAuth.currentUser.get();\n\t\t\t\t\t// refresh the token\n\t\t\t\t\tif (googleUser.isSignedIn()) {\n\t\t\t\t\t\tlogger.debug('refreshing the google access token');\n\t\t\t\t\t\tgoogleUser\n\t\t\t\t\t\t\t.reloadAuthResponse()\n\t\t\t\t\t\t\t.then(authResponse => {\n\t\t\t\t\t\t\t\tconst { id_token, expires_at } = authResponse;\n\t\t\t\t\t\t\t\tres({ token: id_token, expires_at });\n\t\t\t\t\t\t\t})\n\t\t\t\t\t\t\t.catch(err => {\n\t\t\t\t\t\t\t\tif (err && err.error === 'network_error') {\n\t\t\t\t\t\t\t\t\t// Not using NonRetryableError so handler will be retried\n\t\t\t\t\t\t\t\t\trej('Network error reloading google auth response');\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\trej(\n\t\t\t\t\t\t\t\t\t\tnew NonRetryableError(\n\t\t\t\t\t\t\t\t\t\t\t'Failed to reload google auth response'\n\t\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t});\n\t\t\t\t\t} else {\n\t\t\t\t\t\trej(new NonRetryableError('User is not signed in with Google'));\n\t\t\t\t\t}\n\t\t\t\t})\n\t\t\t\t.catch(err => {\n\t\t\t\t\tlogger.debug('Failed to refresh google token', err);\n\t\t\t\t\trej(new NonRetryableError('Failed to refresh google token'));\n\t\t\t\t});\n\t\t});\n\t}\n}\n","// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nimport { ConsoleLogger as Logger } from '../Logger';\nimport { browserOrNode } from '../JS';\nimport { NonRetryableError } from '../Util';\n\nconst logger = new Logger('CognitoCredentials');\n\nconst waitForInit = new Promise((res, rej) => {\n\tif (!browserOrNode().isBrowser) {\n\t\tlogger.debug('not in the browser, directly resolved');\n\t\treturn res();\n\t}\n\tconst fb = window['FB'];\n\tif (fb) {\n\t\tlogger.debug('FB SDK already loaded');\n\t\treturn res();\n\t} else {\n\t\tsetTimeout(() => {\n\t\t\treturn res();\n\t\t}, 2000);\n\t}\n});\n\nexport class FacebookOAuth {\n\tpublic initialized = false;\n\n\tconstructor() {\n\t\tthis.refreshFacebookToken = this.refreshFacebookToken.bind(this);\n\t\tthis._refreshFacebookTokenImpl = this._refreshFacebookTokenImpl.bind(this);\n\t}\n\n\tpublic async refreshFacebookToken() {\n\t\tif (!this.initialized) {\n\t\t\tlogger.debug('need to wait for the Facebook SDK loaded');\n\t\t\tawait waitForInit;\n\t\t\tthis.initialized = true;\n\t\t\tlogger.debug('finish waiting');\n\t\t}\n\n\t\treturn this._refreshFacebookTokenImpl();\n\t}\n\n\tprivate _refreshFacebookTokenImpl() {\n\t\tlet fb = null;\n\t\tif (browserOrNode().isBrowser) fb = window['FB'];\n\t\tif (!fb) {\n\t\t\tconst errorMessage = 'no fb sdk available';\n\t\t\tlogger.debug(errorMessage);\n\t\t\treturn Promise.reject(new NonRetryableError(errorMessage));\n\t\t}\n\n\t\treturn new Promise((res, rej) => {\n\t\t\tfb.getLoginStatus(\n\t\t\t\tfbResponse => {\n\t\t\t\t\tif (!fbResponse || !fbResponse.authResponse) {\n\t\t\t\t\t\tconst errorMessage =\n\t\t\t\t\t\t\t'no response from facebook when refreshing the jwt token';\n\t\t\t\t\t\tlogger.debug(errorMessage);\n\t\t\t\t\t\t// There is no definitive indication for a network error in\n\t\t\t\t\t\t// fbResponse, so we are treating it as an invalid token.\n\t\t\t\t\t\trej(new NonRetryableError(errorMessage));\n\t\t\t\t\t} else {\n\t\t\t\t\t\tconst response = fbResponse.authResponse;\n\t\t\t\t\t\tconst { accessToken, expiresIn } = response;\n\t\t\t\t\t\tconst date = new Date();\n\t\t\t\t\t\tconst expires_at = expiresIn * 1000 + date.getTime();\n\t\t\t\t\t\tif (!accessToken) {\n\t\t\t\t\t\t\tconst errorMessage = 'the jwtToken is undefined';\n\t\t\t\t\t\t\tlogger.debug(errorMessage);\n\t\t\t\t\t\t\trej(new NonRetryableError(errorMessage));\n\t\t\t\t\t\t}\n\t\t\t\t\t\tres({\n\t\t\t\t\t\t\ttoken: accessToken,\n\t\t\t\t\t\t\texpires_at,\n\t\t\t\t\t\t});\n\t\t\t\t\t}\n\t\t\t\t},\n\t\t\t\t{ scope: 'public_profile,email' }\n\t\t\t);\n\t\t});\n\t}\n}\n","// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nimport { GoogleOAuth as GoogleOAuthClass } from './GoogleOAuth';\nimport { FacebookOAuth as FacebookOAuthClass } from './FacebookOAuth';\n\nexport const GoogleOAuth = new GoogleOAuthClass();\nexport const FacebookOAuth = new FacebookOAuthClass();\n","/******************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __esDecorate(ctor, descriptorIn, decorators, contextIn, initializers, extraInitializers) {\r\n function accept(f) { if (f !== void 0 && typeof f !== \"function\") throw new TypeError(\"Function expected\"); return f; }\r\n var kind = contextIn.kind, key = kind === \"getter\" ? \"get\" : kind === \"setter\" ? \"set\" : \"value\";\r\n var target = !descriptorIn && ctor ? contextIn[\"static\"] ? ctor : ctor.prototype : null;\r\n var descriptor = descriptorIn || (target ? Object.getOwnPropertyDescriptor(target, contextIn.name) : {});\r\n var _, done = false;\r\n for (var i = decorators.length - 1; i >= 0; i--) {\r\n var context = {};\r\n for (var p in contextIn) context[p] = p === \"access\" ? {} : contextIn[p];\r\n for (var p in contextIn.access) context.access[p] = contextIn.access[p];\r\n context.addInitializer = function (f) { if (done) throw new TypeError(\"Cannot add initializers after decoration has completed\"); extraInitializers.push(accept(f || null)); };\r\n var result = (0, decorators[i])(kind === \"accessor\" ? { get: descriptor.get, set: descriptor.set } : descriptor[key], context);\r\n if (kind === \"accessor\") {\r\n if (result === void 0) continue;\r\n if (result === null || typeof result !== \"object\") throw new TypeError(\"Object expected\");\r\n if (_ = accept(result.get)) descriptor.get = _;\r\n if (_ = accept(result.set)) descriptor.set = _;\r\n if (_ = accept(result.init)) initializers.push(_);\r\n }\r\n else if (_ = accept(result)) {\r\n if (kind === \"field\") initializers.push(_);\r\n else descriptor[key] = _;\r\n }\r\n }\r\n if (target) Object.defineProperty(target, contextIn.name, descriptor);\r\n done = true;\r\n};\r\n\r\nexport function __runInitializers(thisArg, initializers, value) {\r\n var useValue = arguments.length > 2;\r\n for (var i = 0; i < initializers.length; i++) {\r\n value = useValue ? initializers[i].call(thisArg, value) : initializers[i].call(thisArg);\r\n }\r\n return useValue ? value : void 0;\r\n};\r\n\r\nexport function __propKey(x) {\r\n return typeof x === \"symbol\" ? x : \"\".concat(x);\r\n};\r\n\r\nexport function __setFunctionName(f, name, prefix) {\r\n if (typeof name === \"symbol\") name = name.description ? \"[\".concat(name.description, \"]\") : \"\";\r\n return Object.defineProperty(f, \"name\", { configurable: true, value: prefix ? \"\".concat(prefix, \" \", name) : name });\r\n};\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (g && (g = 0, op[0] && (_ = 0)), _) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport var __createBinding = Object.create ? (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n var desc = Object.getOwnPropertyDescriptor(m, k);\r\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\r\n desc = { enumerable: true, get: function() { return m[k]; } };\r\n }\r\n Object.defineProperty(o, k2, desc);\r\n}) : (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n});\r\n\r\nexport function __exportStar(m, o) {\r\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n}\r\n\r\nexport function __spreadArray(to, from, pack) {\r\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\r\n if (ar || !(i in from)) {\r\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\r\n ar[i] = from[i];\r\n }\r\n }\r\n return to.concat(ar || Array.prototype.slice.call(from));\r\n}\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: false } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nvar __setModuleDefault = Object.create ? (function(o, v) {\r\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\r\n}) : function(o, v) {\r\n o[\"default\"] = v;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\r\n __setModuleDefault(result, mod);\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, state, kind, f) {\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\r\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\");\r\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, state, value, kind, f) {\r\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\r\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\");\r\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\r\n}\r\n\r\nexport function __classPrivateFieldIn(state, receiver) {\r\n if (receiver === null || (typeof receiver !== \"object\" && typeof receiver !== \"function\")) throw new TypeError(\"Cannot use 'in' operator on non-object\");\r\n return typeof state === \"function\" ? receiver === state : state.has(receiver);\r\n}\r\n","import { SmithyException as __SmithyException } from \"@aws-sdk/smithy-client\";\nimport { MetadataBearer as $MetadataBearer } from \"@aws-sdk/types\";\n\nexport enum AmbiguousRoleResolutionType {\n AUTHENTICATED_ROLE = \"AuthenticatedRole\",\n DENY = \"Deny\",\n}\n\n/**\n *

A provider representing an Amazon Cognito user pool and its client ID.

\n */\nexport interface CognitoIdentityProvider {\n /**\n *

The provider name for an Amazon Cognito user pool. For example,\n * cognito-idp.us-east-1.amazonaws.com/us-east-1_123456789.

\n */\n ProviderName?: string;\n\n /**\n *

The client ID for the Amazon Cognito user pool.

\n */\n ClientId?: string;\n\n /**\n *

TRUE if server-side token validation is enabled for the identity provider’s\n * token.

\n *

Once you set ServerSideTokenCheck to TRUE for an identity pool, that\n * identity pool will check with the integrated user pools to make sure that the user has not\n * been globally signed out or deleted before the identity pool provides an OIDC token or AWS\n * credentials for the user.

\n *

If the user is signed out or deleted, the identity pool will return a 400 Not\n * Authorized error.

\n */\n ServerSideTokenCheck?: boolean;\n}\n\nexport namespace CognitoIdentityProvider {\n export const filterSensitiveLog = (obj: CognitoIdentityProvider): any => ({\n ...obj,\n });\n}\n\n/**\n *

Input to the CreateIdentityPool action.

\n */\nexport interface CreateIdentityPoolInput {\n /**\n *

A string that you provide.

\n */\n IdentityPoolName: string | undefined;\n\n /**\n *

TRUE if the identity pool supports unauthenticated logins.

\n */\n AllowUnauthenticatedIdentities: boolean | undefined;\n\n /**\n *

Enables or disables the Basic (Classic) authentication flow. For more information, see\n * Identity Pools (Federated Identities) Authentication Flow in the Amazon Cognito Developer Guide.

\n */\n AllowClassicFlow?: boolean;\n\n /**\n *

Optional key:value pairs mapping provider names to provider app IDs.

\n */\n SupportedLoginProviders?: { [key: string]: string };\n\n /**\n *

The \"domain\" by which Cognito will refer to your users. This name acts as a\n * placeholder that allows your backend and the Cognito service to communicate about the\n * developer provider. For the DeveloperProviderName, you can use letters as well\n * as period (.), underscore (_), and dash\n * (-).

\n *

Once you have set a developer provider name, you cannot change it. Please take care\n * in setting this parameter.

\n */\n DeveloperProviderName?: string;\n\n /**\n *

A list of OpendID Connect provider ARNs.

\n */\n OpenIdConnectProviderARNs?: string[];\n\n /**\n *

An array of Amazon Cognito user pools and their client IDs.

\n */\n CognitoIdentityProviders?: CognitoIdentityProvider[];\n\n /**\n *

An array of Amazon Resource Names (ARNs) of the SAML provider for your identity\n * pool.

\n */\n SamlProviderARNs?: string[];\n\n /**\n *

Tags to assign to the identity pool. A tag is a label that you can apply to identity\n * pools to categorize and manage them in different ways, such as by purpose, owner,\n * environment, or other criteria.

\n */\n IdentityPoolTags?: { [key: string]: string };\n}\n\nexport namespace CreateIdentityPoolInput {\n export const filterSensitiveLog = (obj: CreateIdentityPoolInput): any => ({\n ...obj,\n });\n}\n\n/**\n *

An object representing an Amazon Cognito identity pool.

\n */\nexport interface IdentityPool {\n /**\n *

An identity pool ID in the format REGION:GUID.

\n */\n IdentityPoolId: string | undefined;\n\n /**\n *

A string that you provide.

\n */\n IdentityPoolName: string | undefined;\n\n /**\n *

TRUE if the identity pool supports unauthenticated logins.

\n */\n AllowUnauthenticatedIdentities: boolean | undefined;\n\n /**\n *

Enables or disables the Basic (Classic) authentication flow. For more information, see\n * Identity Pools (Federated Identities) Authentication Flow in the Amazon Cognito Developer Guide.

\n */\n AllowClassicFlow?: boolean;\n\n /**\n *

Optional key:value pairs mapping provider names to provider app IDs.

\n */\n SupportedLoginProviders?: { [key: string]: string };\n\n /**\n *

The \"domain\" by which Cognito will refer to your users.

\n */\n DeveloperProviderName?: string;\n\n /**\n *

A list of OpendID Connect provider ARNs.

\n */\n OpenIdConnectProviderARNs?: string[];\n\n /**\n *

A list representing an Amazon Cognito user pool and its client ID.

\n */\n CognitoIdentityProviders?: CognitoIdentityProvider[];\n\n /**\n *

An array of Amazon Resource Names (ARNs) of the SAML provider for your identity\n * pool.

\n */\n SamlProviderARNs?: string[];\n\n /**\n *

The tags that are assigned to the identity pool. A tag is a label that you can apply to\n * identity pools to categorize and manage them in different ways, such as by purpose, owner,\n * environment, or other criteria.

\n */\n IdentityPoolTags?: { [key: string]: string };\n}\n\nexport namespace IdentityPool {\n export const filterSensitiveLog = (obj: IdentityPool): any => ({\n ...obj,\n });\n}\n\n/**\n *

Thrown when the service encounters an error during processing the request.

\n */\nexport interface InternalErrorException extends __SmithyException, $MetadataBearer {\n name: \"InternalErrorException\";\n $fault: \"server\";\n /**\n *

The message returned by an InternalErrorException.

\n */\n message?: string;\n}\n\nexport namespace InternalErrorException {\n export const filterSensitiveLog = (obj: InternalErrorException): any => ({\n ...obj,\n });\n}\n\n/**\n *

Thrown for missing or bad input parameter(s).

\n */\nexport interface InvalidParameterException extends __SmithyException, $MetadataBearer {\n name: \"InvalidParameterException\";\n $fault: \"client\";\n /**\n *

The message returned by an InvalidParameterException.

\n */\n message?: string;\n}\n\nexport namespace InvalidParameterException {\n export const filterSensitiveLog = (obj: InvalidParameterException): any => ({\n ...obj,\n });\n}\n\n/**\n *

Thrown when the total number of user pools has exceeded a preset limit.

\n */\nexport interface LimitExceededException extends __SmithyException, $MetadataBearer {\n name: \"LimitExceededException\";\n $fault: \"client\";\n /**\n *

The message returned by a LimitExceededException.

\n */\n message?: string;\n}\n\nexport namespace LimitExceededException {\n export const filterSensitiveLog = (obj: LimitExceededException): any => ({\n ...obj,\n });\n}\n\n/**\n *

Thrown when a user is not authorized to access the requested resource.

\n */\nexport interface NotAuthorizedException extends __SmithyException, $MetadataBearer {\n name: \"NotAuthorizedException\";\n $fault: \"client\";\n /**\n *

The message returned by a NotAuthorizedException

\n */\n message?: string;\n}\n\nexport namespace NotAuthorizedException {\n export const filterSensitiveLog = (obj: NotAuthorizedException): any => ({\n ...obj,\n });\n}\n\n/**\n *

Thrown when a user tries to use a login which is already linked to another\n * account.

\n */\nexport interface ResourceConflictException extends __SmithyException, $MetadataBearer {\n name: \"ResourceConflictException\";\n $fault: \"client\";\n /**\n *

The message returned by a ResourceConflictException.

\n */\n message?: string;\n}\n\nexport namespace ResourceConflictException {\n export const filterSensitiveLog = (obj: ResourceConflictException): any => ({\n ...obj,\n });\n}\n\n/**\n *

Thrown when a request is throttled.

\n */\nexport interface TooManyRequestsException extends __SmithyException, $MetadataBearer {\n name: \"TooManyRequestsException\";\n $fault: \"client\";\n /**\n *

Message returned by a TooManyRequestsException

\n */\n message?: string;\n}\n\nexport namespace TooManyRequestsException {\n export const filterSensitiveLog = (obj: TooManyRequestsException): any => ({\n ...obj,\n });\n}\n\n/**\n *

Input to the DeleteIdentities action.

\n */\nexport interface DeleteIdentitiesInput {\n /**\n *

A list of 1-60 identities that you want to delete.

\n */\n IdentityIdsToDelete: string[] | undefined;\n}\n\nexport namespace DeleteIdentitiesInput {\n export const filterSensitiveLog = (obj: DeleteIdentitiesInput): any => ({\n ...obj,\n });\n}\n\nexport enum ErrorCode {\n ACCESS_DENIED = \"AccessDenied\",\n INTERNAL_SERVER_ERROR = \"InternalServerError\",\n}\n\n/**\n *

An array of UnprocessedIdentityId objects, each of which contains an ErrorCode and\n * IdentityId.

\n */\nexport interface UnprocessedIdentityId {\n /**\n *

A unique identifier in the format REGION:GUID.

\n */\n IdentityId?: string;\n\n /**\n *

The error code indicating the type of error that occurred.

\n */\n ErrorCode?: ErrorCode | string;\n}\n\nexport namespace UnprocessedIdentityId {\n export const filterSensitiveLog = (obj: UnprocessedIdentityId): any => ({\n ...obj,\n });\n}\n\n/**\n *

Returned in response to a successful DeleteIdentities\n * operation.

\n */\nexport interface DeleteIdentitiesResponse {\n /**\n *

An array of UnprocessedIdentityId objects, each of which contains an ErrorCode and\n * IdentityId.

\n */\n UnprocessedIdentityIds?: UnprocessedIdentityId[];\n}\n\nexport namespace DeleteIdentitiesResponse {\n export const filterSensitiveLog = (obj: DeleteIdentitiesResponse): any => ({\n ...obj,\n });\n}\n\n/**\n *

Input to the DeleteIdentityPool action.

\n */\nexport interface DeleteIdentityPoolInput {\n /**\n *

An identity pool ID in the format REGION:GUID.

\n */\n IdentityPoolId: string | undefined;\n}\n\nexport namespace DeleteIdentityPoolInput {\n export const filterSensitiveLog = (obj: DeleteIdentityPoolInput): any => ({\n ...obj,\n });\n}\n\n/**\n *

Thrown when the requested resource (for example, a dataset or record) does not\n * exist.

\n */\nexport interface ResourceNotFoundException extends __SmithyException, $MetadataBearer {\n name: \"ResourceNotFoundException\";\n $fault: \"client\";\n /**\n *

The message returned by a ResourceNotFoundException.

\n */\n message?: string;\n}\n\nexport namespace ResourceNotFoundException {\n export const filterSensitiveLog = (obj: ResourceNotFoundException): any => ({\n ...obj,\n });\n}\n\n/**\n *

Input to the DescribeIdentity action.

\n */\nexport interface DescribeIdentityInput {\n /**\n *

A unique identifier in the format REGION:GUID.

\n */\n IdentityId: string | undefined;\n}\n\nexport namespace DescribeIdentityInput {\n export const filterSensitiveLog = (obj: DescribeIdentityInput): any => ({\n ...obj,\n });\n}\n\n/**\n *

A description of the identity.

\n */\nexport interface IdentityDescription {\n /**\n *

A unique identifier in the format REGION:GUID.

\n */\n IdentityId?: string;\n\n /**\n *

The provider names.

\n */\n Logins?: string[];\n\n /**\n *

Date on which the identity was created.

\n */\n CreationDate?: Date;\n\n /**\n *

Date on which the identity was last modified.

\n */\n LastModifiedDate?: Date;\n}\n\nexport namespace IdentityDescription {\n export const filterSensitiveLog = (obj: IdentityDescription): any => ({\n ...obj,\n });\n}\n\n/**\n *

Input to the DescribeIdentityPool action.

\n */\nexport interface DescribeIdentityPoolInput {\n /**\n *

An identity pool ID in the format REGION:GUID.

\n */\n IdentityPoolId: string | undefined;\n}\n\nexport namespace DescribeIdentityPoolInput {\n export const filterSensitiveLog = (obj: DescribeIdentityPoolInput): any => ({\n ...obj,\n });\n}\n\n/**\n *

An exception thrown when a dependent service such as Facebook or Twitter is not\n * responding

\n */\nexport interface ExternalServiceException extends __SmithyException, $MetadataBearer {\n name: \"ExternalServiceException\";\n $fault: \"client\";\n /**\n *

The message returned by an ExternalServiceException

\n */\n message?: string;\n}\n\nexport namespace ExternalServiceException {\n export const filterSensitiveLog = (obj: ExternalServiceException): any => ({\n ...obj,\n });\n}\n\n/**\n *

Input to the GetCredentialsForIdentity action.

\n */\nexport interface GetCredentialsForIdentityInput {\n /**\n *

A unique identifier in the format REGION:GUID.

\n */\n IdentityId: string | undefined;\n\n /**\n *

A set of optional name-value pairs that map provider names to provider tokens. The\n * name-value pair will follow the syntax \"provider_name\":\n * \"provider_user_identifier\".

\n *

Logins should not be specified when trying to get credentials for an unauthenticated\n * identity.

\n *

The Logins parameter is required when using identities associated with external\n * identity providers such as FaceBook. For examples of Logins maps, see the code\n * examples in the External Identity Providers section of the Amazon Cognito Developer\n * Guide.

\n */\n Logins?: { [key: string]: string };\n\n /**\n *

The Amazon Resource Name (ARN) of the role to be assumed when multiple roles were\n * received in the token from the identity provider. For example, a SAML-based identity\n * provider. This parameter is optional for identity providers that do not support role\n * customization.

\n */\n CustomRoleArn?: string;\n}\n\nexport namespace GetCredentialsForIdentityInput {\n export const filterSensitiveLog = (obj: GetCredentialsForIdentityInput): any => ({\n ...obj,\n });\n}\n\n/**\n *

Credentials for the provided identity ID.

\n */\nexport interface Credentials {\n /**\n *

The Access Key portion of the credentials.

\n */\n AccessKeyId?: string;\n\n /**\n *

The Secret Access Key portion of the credentials

\n */\n SecretKey?: string;\n\n /**\n *

The Session Token portion of the credentials

\n */\n SessionToken?: string;\n\n /**\n *

The date at which these credentials will expire.

\n */\n Expiration?: Date;\n}\n\nexport namespace Credentials {\n export const filterSensitiveLog = (obj: Credentials): any => ({\n ...obj,\n });\n}\n\n/**\n *

Returned in response to a successful GetCredentialsForIdentity\n * operation.

\n */\nexport interface GetCredentialsForIdentityResponse {\n /**\n *

A unique identifier in the format REGION:GUID.

\n */\n IdentityId?: string;\n\n /**\n *

Credentials for the provided identity ID.

\n */\n Credentials?: Credentials;\n}\n\nexport namespace GetCredentialsForIdentityResponse {\n export const filterSensitiveLog = (obj: GetCredentialsForIdentityResponse): any => ({\n ...obj,\n });\n}\n\n/**\n *

Thrown if the identity pool has no role associated for the given auth type\n * (auth/unauth) or if the AssumeRole fails.

\n */\nexport interface InvalidIdentityPoolConfigurationException extends __SmithyException, $MetadataBearer {\n name: \"InvalidIdentityPoolConfigurationException\";\n $fault: \"client\";\n /**\n *

The message returned for an InvalidIdentityPoolConfigurationException\n *

\n */\n message?: string;\n}\n\nexport namespace InvalidIdentityPoolConfigurationException {\n export const filterSensitiveLog = (obj: InvalidIdentityPoolConfigurationException): any => ({\n ...obj,\n });\n}\n\n/**\n *

Input to the GetId action.

\n */\nexport interface GetIdInput {\n /**\n *

A standard AWS account ID (9+ digits).

\n */\n AccountId?: string;\n\n /**\n *

An identity pool ID in the format REGION:GUID.

\n */\n IdentityPoolId: string | undefined;\n\n /**\n *

A set of optional name-value pairs that map provider names to provider tokens. The\n * available provider names for Logins are as follows:

\n *
    \n *
  • \n *

    Facebook: graph.facebook.com\n *

    \n *
  • \n *
  • \n *

    Amazon Cognito user pool:\n * cognito-idp..amazonaws.com/,\n * for example, cognito-idp.us-east-1.amazonaws.com/us-east-1_123456789.\n *

    \n *
  • \n *
  • \n *

    Google: accounts.google.com\n *

    \n *
  • \n *
  • \n *

    Amazon: www.amazon.com\n *

    \n *
  • \n *
  • \n *

    Twitter: api.twitter.com\n *

    \n *
  • \n *
  • \n *

    Digits: www.digits.com\n *

    \n *
  • \n *
\n */\n Logins?: { [key: string]: string };\n}\n\nexport namespace GetIdInput {\n export const filterSensitiveLog = (obj: GetIdInput): any => ({\n ...obj,\n });\n}\n\n/**\n *

Returned in response to a GetId request.

\n */\nexport interface GetIdResponse {\n /**\n *

A unique identifier in the format REGION:GUID.

\n */\n IdentityId?: string;\n}\n\nexport namespace GetIdResponse {\n export const filterSensitiveLog = (obj: GetIdResponse): any => ({\n ...obj,\n });\n}\n\n/**\n *

Input to the GetIdentityPoolRoles action.

\n */\nexport interface GetIdentityPoolRolesInput {\n /**\n *

An identity pool ID in the format REGION:GUID.

\n */\n IdentityPoolId: string | undefined;\n}\n\nexport namespace GetIdentityPoolRolesInput {\n export const filterSensitiveLog = (obj: GetIdentityPoolRolesInput): any => ({\n ...obj,\n });\n}\n\nexport enum MappingRuleMatchType {\n CONTAINS = \"Contains\",\n EQUALS = \"Equals\",\n NOT_EQUAL = \"NotEqual\",\n STARTS_WITH = \"StartsWith\",\n}\n\n/**\n *

A rule that maps a claim name, a claim value, and a match type to a role\n * ARN.

\n */\nexport interface MappingRule {\n /**\n *

The claim name that must be present in the token, for example, \"isAdmin\" or\n * \"paid\".

\n */\n Claim: string | undefined;\n\n /**\n *

The match condition that specifies how closely the claim value in the IdP token must\n * match Value.

\n */\n MatchType: MappingRuleMatchType | string | undefined;\n\n /**\n *

A brief string that the claim must match, for example, \"paid\" or \"yes\".

\n */\n Value: string | undefined;\n\n /**\n *

The role ARN.

\n */\n RoleARN: string | undefined;\n}\n\nexport namespace MappingRule {\n export const filterSensitiveLog = (obj: MappingRule): any => ({\n ...obj,\n });\n}\n\n/**\n *

A container for rules.

\n */\nexport interface RulesConfigurationType {\n /**\n *

An array of rules. You can specify up to 25 rules per identity provider.

\n *

Rules are evaluated in order. The first one to match specifies the role.

\n */\n Rules: MappingRule[] | undefined;\n}\n\nexport namespace RulesConfigurationType {\n export const filterSensitiveLog = (obj: RulesConfigurationType): any => ({\n ...obj,\n });\n}\n\nexport enum RoleMappingType {\n RULES = \"Rules\",\n TOKEN = \"Token\",\n}\n\n/**\n *

A role mapping.

\n */\nexport interface RoleMapping {\n /**\n *

The role mapping type. Token will use cognito:roles and\n * cognito:preferred_role claims from the Cognito identity provider token to\n * map groups to roles. Rules will attempt to match claims from the token to map to a\n * role.

\n */\n Type: RoleMappingType | string | undefined;\n\n /**\n *

If you specify Token or Rules as the Type,\n * AmbiguousRoleResolution is required.

\n *

Specifies the action to be taken if either no rules match the claim value for the\n * Rules type, or there is no cognito:preferred_role claim and\n * there are multiple cognito:roles matches for the Token\n * type.

\n */\n AmbiguousRoleResolution?: AmbiguousRoleResolutionType | string;\n\n /**\n *

The rules to be used for mapping users to roles.

\n *

If you specify Rules as the role mapping type, RulesConfiguration is\n * required.

\n */\n RulesConfiguration?: RulesConfigurationType;\n}\n\nexport namespace RoleMapping {\n export const filterSensitiveLog = (obj: RoleMapping): any => ({\n ...obj,\n });\n}\n\n/**\n *

Returned in response to a successful GetIdentityPoolRoles\n * operation.

\n */\nexport interface GetIdentityPoolRolesResponse {\n /**\n *

An identity pool ID in the format REGION:GUID.

\n */\n IdentityPoolId?: string;\n\n /**\n *

The map of roles associated with this pool. Currently only authenticated and\n * unauthenticated roles are supported.

\n */\n Roles?: { [key: string]: string };\n\n /**\n *

How users for a specific identity provider are to mapped to roles. This is a\n * String-to-RoleMapping object map. The string identifies the identity\n * provider, for example, \"graph.facebook.com\" or\n * \"cognito-idp.us-east-1.amazonaws.com/us-east-1_abcdefghi:app_client_id\".

\n */\n RoleMappings?: { [key: string]: RoleMapping };\n}\n\nexport namespace GetIdentityPoolRolesResponse {\n export const filterSensitiveLog = (obj: GetIdentityPoolRolesResponse): any => ({\n ...obj,\n });\n}\n\n/**\n *

Input to the GetOpenIdToken action.

\n */\nexport interface GetOpenIdTokenInput {\n /**\n *

A unique identifier in the format REGION:GUID.

\n */\n IdentityId: string | undefined;\n\n /**\n *

A set of optional name-value pairs that map provider names to provider tokens. When\n * using graph.facebook.com and www.amazon.com, supply the access_token returned from the\n * provider's authflow. For accounts.google.com, an Amazon Cognito user pool provider, or any\n * other OpenId Connect provider, always include the id_token.

\n */\n Logins?: { [key: string]: string };\n}\n\nexport namespace GetOpenIdTokenInput {\n export const filterSensitiveLog = (obj: GetOpenIdTokenInput): any => ({\n ...obj,\n });\n}\n\n/**\n *

Returned in response to a successful GetOpenIdToken request.

\n */\nexport interface GetOpenIdTokenResponse {\n /**\n *

A unique identifier in the format REGION:GUID. Note that the IdentityId returned may\n * not match the one passed on input.

\n */\n IdentityId?: string;\n\n /**\n *

An OpenID token, valid for 10 minutes.

\n */\n Token?: string;\n}\n\nexport namespace GetOpenIdTokenResponse {\n export const filterSensitiveLog = (obj: GetOpenIdTokenResponse): any => ({\n ...obj,\n });\n}\n\n/**\n *

The provided developer user identifier is already registered with Cognito under a\n * different identity ID.

\n */\nexport interface DeveloperUserAlreadyRegisteredException extends __SmithyException, $MetadataBearer {\n name: \"DeveloperUserAlreadyRegisteredException\";\n $fault: \"client\";\n /**\n *

This developer user identifier is already registered with Cognito.

\n */\n message?: string;\n}\n\nexport namespace DeveloperUserAlreadyRegisteredException {\n export const filterSensitiveLog = (obj: DeveloperUserAlreadyRegisteredException): any => ({\n ...obj,\n });\n}\n\n/**\n *

Input to the GetOpenIdTokenForDeveloperIdentity action.

\n */\nexport interface GetOpenIdTokenForDeveloperIdentityInput {\n /**\n *

An identity pool ID in the format REGION:GUID.

\n */\n IdentityPoolId: string | undefined;\n\n /**\n *

A unique identifier in the format REGION:GUID.

\n */\n IdentityId?: string;\n\n /**\n *

A set of optional name-value pairs that map provider names to provider tokens. Each\n * name-value pair represents a user from a public provider or developer provider. If the user\n * is from a developer provider, the name-value pair will follow the syntax\n * \"developer_provider_name\": \"developer_user_identifier\". The developer\n * provider is the \"domain\" by which Cognito will refer to your users; you provided this\n * domain while creating/updating the identity pool. The developer user identifier is an\n * identifier from your backend that uniquely identifies a user. When you create an identity\n * pool, you can specify the supported logins.

\n */\n Logins: { [key: string]: string } | undefined;\n\n /**\n *

The expiration time of the token, in seconds. You can specify a custom expiration\n * time for the token so that you can cache it. If you don't provide an expiration time, the\n * token is valid for 15 minutes. You can exchange the token with Amazon STS for temporary AWS\n * credentials, which are valid for a maximum of one hour. The maximum token duration you can\n * set is 24 hours. You should take care in setting the expiration time for a token, as there\n * are significant security implications: an attacker could use a leaked token to access your\n * AWS resources for the token's duration.

\n * \n *

Please provide for a small grace period, usually no more than 5 minutes, to account for clock skew.

\n *
\n */\n TokenDuration?: number;\n}\n\nexport namespace GetOpenIdTokenForDeveloperIdentityInput {\n export const filterSensitiveLog = (obj: GetOpenIdTokenForDeveloperIdentityInput): any => ({\n ...obj,\n });\n}\n\n/**\n *

Returned in response to a successful GetOpenIdTokenForDeveloperIdentity\n * request.

\n */\nexport interface GetOpenIdTokenForDeveloperIdentityResponse {\n /**\n *

A unique identifier in the format REGION:GUID.

\n */\n IdentityId?: string;\n\n /**\n *

An OpenID token.

\n */\n Token?: string;\n}\n\nexport namespace GetOpenIdTokenForDeveloperIdentityResponse {\n export const filterSensitiveLog = (obj: GetOpenIdTokenForDeveloperIdentityResponse): any => ({\n ...obj,\n });\n}\n\n/**\n *

Input to the ListIdentities action.

\n */\nexport interface ListIdentitiesInput {\n /**\n *

An identity pool ID in the format REGION:GUID.

\n */\n IdentityPoolId: string | undefined;\n\n /**\n *

The maximum number of identities to return.

\n */\n MaxResults: number | undefined;\n\n /**\n *

A pagination token.

\n */\n NextToken?: string;\n\n /**\n *

An optional boolean parameter that allows you to hide disabled identities. If\n * omitted, the ListIdentities API will include disabled identities in the response.

\n */\n HideDisabled?: boolean;\n}\n\nexport namespace ListIdentitiesInput {\n export const filterSensitiveLog = (obj: ListIdentitiesInput): any => ({\n ...obj,\n });\n}\n\n/**\n *

The response to a ListIdentities request.

\n */\nexport interface ListIdentitiesResponse {\n /**\n *

An identity pool ID in the format REGION:GUID.

\n */\n IdentityPoolId?: string;\n\n /**\n *

An object containing a set of identities and associated mappings.

\n */\n Identities?: IdentityDescription[];\n\n /**\n *

A pagination token.

\n */\n NextToken?: string;\n}\n\nexport namespace ListIdentitiesResponse {\n export const filterSensitiveLog = (obj: ListIdentitiesResponse): any => ({\n ...obj,\n });\n}\n\n/**\n *

Input to the ListIdentityPools action.

\n */\nexport interface ListIdentityPoolsInput {\n /**\n *

The maximum number of identities to return.

\n */\n MaxResults: number | undefined;\n\n /**\n *

A pagination token.

\n */\n NextToken?: string;\n}\n\nexport namespace ListIdentityPoolsInput {\n export const filterSensitiveLog = (obj: ListIdentityPoolsInput): any => ({\n ...obj,\n });\n}\n\n/**\n *

A description of the identity pool.

\n */\nexport interface IdentityPoolShortDescription {\n /**\n *

An identity pool ID in the format REGION:GUID.

\n */\n IdentityPoolId?: string;\n\n /**\n *

A string that you provide.

\n */\n IdentityPoolName?: string;\n}\n\nexport namespace IdentityPoolShortDescription {\n export const filterSensitiveLog = (obj: IdentityPoolShortDescription): any => ({\n ...obj,\n });\n}\n\n/**\n *

The result of a successful ListIdentityPools action.

\n */\nexport interface ListIdentityPoolsResponse {\n /**\n *

The identity pools returned by the ListIdentityPools action.

\n */\n IdentityPools?: IdentityPoolShortDescription[];\n\n /**\n *

A pagination token.

\n */\n NextToken?: string;\n}\n\nexport namespace ListIdentityPoolsResponse {\n export const filterSensitiveLog = (obj: ListIdentityPoolsResponse): any => ({\n ...obj,\n });\n}\n\nexport interface ListTagsForResourceInput {\n /**\n *

The Amazon Resource Name (ARN) of the identity pool that the tags are assigned\n * to.

\n */\n ResourceArn: string | undefined;\n}\n\nexport namespace ListTagsForResourceInput {\n export const filterSensitiveLog = (obj: ListTagsForResourceInput): any => ({\n ...obj,\n });\n}\n\nexport interface ListTagsForResourceResponse {\n /**\n *

The tags that are assigned to the identity pool.

\n */\n Tags?: { [key: string]: string };\n}\n\nexport namespace ListTagsForResourceResponse {\n export const filterSensitiveLog = (obj: ListTagsForResourceResponse): any => ({\n ...obj,\n });\n}\n\n/**\n *

Input to the LookupDeveloperIdentityInput action.

\n */\nexport interface LookupDeveloperIdentityInput {\n /**\n *

An identity pool ID in the format REGION:GUID.

\n */\n IdentityPoolId: string | undefined;\n\n /**\n *

A unique identifier in the format REGION:GUID.

\n */\n IdentityId?: string;\n\n /**\n *

A unique ID used by your backend authentication process to identify a user.\n * Typically, a developer identity provider would issue many developer user identifiers, in\n * keeping with the number of users.

\n */\n DeveloperUserIdentifier?: string;\n\n /**\n *

The maximum number of identities to return.

\n */\n MaxResults?: number;\n\n /**\n *

A pagination token. The first call you make will have NextToken set to\n * null. After that the service will return NextToken values as needed. For\n * example, let's say you make a request with MaxResults set to 10, and there are\n * 20 matches in the database. The service will return a pagination token as a part of the\n * response. This token can be used to call the API again and get results starting from the\n * 11th match.

\n */\n NextToken?: string;\n}\n\nexport namespace LookupDeveloperIdentityInput {\n export const filterSensitiveLog = (obj: LookupDeveloperIdentityInput): any => ({\n ...obj,\n });\n}\n\n/**\n *

Returned in response to a successful LookupDeveloperIdentity\n * action.

\n */\nexport interface LookupDeveloperIdentityResponse {\n /**\n *

A unique identifier in the format REGION:GUID.

\n */\n IdentityId?: string;\n\n /**\n *

This is the list of developer user identifiers associated with an identity ID.\n * Cognito supports the association of multiple developer user identifiers with an identity\n * ID.

\n */\n DeveloperUserIdentifierList?: string[];\n\n /**\n *

A pagination token. The first call you make will have NextToken set to\n * null. After that the service will return NextToken values as needed. For\n * example, let's say you make a request with MaxResults set to 10, and there are\n * 20 matches in the database. The service will return a pagination token as a part of the\n * response. This token can be used to call the API again and get results starting from the\n * 11th match.

\n */\n NextToken?: string;\n}\n\nexport namespace LookupDeveloperIdentityResponse {\n export const filterSensitiveLog = (obj: LookupDeveloperIdentityResponse): any => ({\n ...obj,\n });\n}\n\n/**\n *

Input to the MergeDeveloperIdentities action.

\n */\nexport interface MergeDeveloperIdentitiesInput {\n /**\n *

User identifier for the source user. The value should be a\n * DeveloperUserIdentifier.

\n */\n SourceUserIdentifier: string | undefined;\n\n /**\n *

User identifier for the destination user. The value should be a\n * DeveloperUserIdentifier.

\n */\n DestinationUserIdentifier: string | undefined;\n\n /**\n *

The \"domain\" by which Cognito will refer to your users. This is a (pseudo) domain\n * name that you provide while creating an identity pool. This name acts as a placeholder that\n * allows your backend and the Cognito service to communicate about the developer provider.\n * For the DeveloperProviderName, you can use letters as well as period (.),\n * underscore (_), and dash (-).

\n */\n DeveloperProviderName: string | undefined;\n\n /**\n *

An identity pool ID in the format REGION:GUID.

\n */\n IdentityPoolId: string | undefined;\n}\n\nexport namespace MergeDeveloperIdentitiesInput {\n export const filterSensitiveLog = (obj: MergeDeveloperIdentitiesInput): any => ({\n ...obj,\n });\n}\n\n/**\n *

Returned in response to a successful MergeDeveloperIdentities\n * action.

\n */\nexport interface MergeDeveloperIdentitiesResponse {\n /**\n *

A unique identifier in the format REGION:GUID.

\n */\n IdentityId?: string;\n}\n\nexport namespace MergeDeveloperIdentitiesResponse {\n export const filterSensitiveLog = (obj: MergeDeveloperIdentitiesResponse): any => ({\n ...obj,\n });\n}\n\n/**\n *

Thrown if there are parallel requests to modify a resource.

\n */\nexport interface ConcurrentModificationException extends __SmithyException, $MetadataBearer {\n name: \"ConcurrentModificationException\";\n $fault: \"client\";\n /**\n *

The message returned by a ConcurrentModificationException.

\n */\n message?: string;\n}\n\nexport namespace ConcurrentModificationException {\n export const filterSensitiveLog = (obj: ConcurrentModificationException): any => ({\n ...obj,\n });\n}\n\n/**\n *

Input to the SetIdentityPoolRoles action.

\n */\nexport interface SetIdentityPoolRolesInput {\n /**\n *

An identity pool ID in the format REGION:GUID.

\n */\n IdentityPoolId: string | undefined;\n\n /**\n *

The map of roles associated with this pool. For a given role, the key will be either\n * \"authenticated\" or \"unauthenticated\" and the value will be the Role ARN.

\n */\n Roles: { [key: string]: string } | undefined;\n\n /**\n *

How users for a specific identity provider are to mapped to roles. This is a string\n * to RoleMapping object map. The string identifies the identity provider,\n * for example, \"graph.facebook.com\" or\n * \"cognito-idp-east-1.amazonaws.com/us-east-1_abcdefghi:app_client_id\".

\n *

Up to 25 rules can be specified per identity provider.

\n */\n RoleMappings?: { [key: string]: RoleMapping };\n}\n\nexport namespace SetIdentityPoolRolesInput {\n export const filterSensitiveLog = (obj: SetIdentityPoolRolesInput): any => ({\n ...obj,\n });\n}\n\nexport interface TagResourceInput {\n /**\n *

The Amazon Resource Name (ARN) of the identity pool to assign the tags to.

\n */\n ResourceArn: string | undefined;\n\n /**\n *

The tags to assign to the identity pool.

\n */\n Tags: { [key: string]: string } | undefined;\n}\n\nexport namespace TagResourceInput {\n export const filterSensitiveLog = (obj: TagResourceInput): any => ({\n ...obj,\n });\n}\n\nexport interface TagResourceResponse {}\n\nexport namespace TagResourceResponse {\n export const filterSensitiveLog = (obj: TagResourceResponse): any => ({\n ...obj,\n });\n}\n\n/**\n *

Input to the UnlinkDeveloperIdentity action.

\n */\nexport interface UnlinkDeveloperIdentityInput {\n /**\n *

A unique identifier in the format REGION:GUID.

\n */\n IdentityId: string | undefined;\n\n /**\n *

An identity pool ID in the format REGION:GUID.

\n */\n IdentityPoolId: string | undefined;\n\n /**\n *

The \"domain\" by which Cognito will refer to your users.

\n */\n DeveloperProviderName: string | undefined;\n\n /**\n *

A unique ID used by your backend authentication process to identify a user.

\n */\n DeveloperUserIdentifier: string | undefined;\n}\n\nexport namespace UnlinkDeveloperIdentityInput {\n export const filterSensitiveLog = (obj: UnlinkDeveloperIdentityInput): any => ({\n ...obj,\n });\n}\n\n/**\n *

Input to the UnlinkIdentity action.

\n */\nexport interface UnlinkIdentityInput {\n /**\n *

A unique identifier in the format REGION:GUID.

\n */\n IdentityId: string | undefined;\n\n /**\n *

A set of optional name-value pairs that map provider names to provider\n * tokens.

\n */\n Logins: { [key: string]: string } | undefined;\n\n /**\n *

Provider names to unlink from this identity.

\n */\n LoginsToRemove: string[] | undefined;\n}\n\nexport namespace UnlinkIdentityInput {\n export const filterSensitiveLog = (obj: UnlinkIdentityInput): any => ({\n ...obj,\n });\n}\n\nexport interface UntagResourceInput {\n /**\n *

The Amazon Resource Name (ARN) of the identity pool that the tags are assigned\n * to.

\n */\n ResourceArn: string | undefined;\n\n /**\n *

The keys of the tags to remove from the user pool.

\n */\n TagKeys: string[] | undefined;\n}\n\nexport namespace UntagResourceInput {\n export const filterSensitiveLog = (obj: UntagResourceInput): any => ({\n ...obj,\n });\n}\n\nexport interface UntagResourceResponse {}\n\nexport namespace UntagResourceResponse {\n export const filterSensitiveLog = (obj: UntagResourceResponse): any => ({\n ...obj,\n });\n}\n","import { HeaderBag, HttpMessage, HttpResponse as IHttpResponse } from \"@aws-sdk/types\";\n\ntype HttpResponseOptions = Partial & {\n statusCode: number;\n};\n\nexport interface HttpResponse extends IHttpResponse {}\n\nexport class HttpResponse {\n public statusCode: number;\n public headers: HeaderBag;\n public body?: any;\n\n constructor(options: HttpResponseOptions) {\n this.statusCode = options.statusCode;\n this.headers = options.headers || {};\n this.body = options.body;\n }\n\n static isInstance(response: unknown): response is HttpResponse {\n //determine if response is a valid HttpResponse\n if (!response) return false;\n const resp = response as any;\n return typeof resp.statusCode === \"number\" && typeof resp.headers === \"object\";\n }\n}\n","import { Endpoint, HeaderBag, HttpMessage, HttpRequest as IHttpRequest, QueryParameterBag } from \"@aws-sdk/types\";\n\ntype HttpRequestOptions = Partial & Partial & { method?: string };\n\nexport interface HttpRequest extends IHttpRequest {}\n\nexport class HttpRequest implements HttpMessage, Endpoint {\n public method: string;\n public protocol: string;\n public hostname: string;\n public port?: number;\n public path: string;\n public query: QueryParameterBag;\n public headers: HeaderBag;\n public body?: any;\n\n constructor(options: HttpRequestOptions) {\n this.method = options.method || \"GET\";\n this.hostname = options.hostname || \"localhost\";\n this.port = options.port;\n this.query = options.query || {};\n this.headers = options.headers || {};\n this.body = options.body;\n this.protocol = options.protocol\n ? options.protocol.substr(-1) !== \":\"\n ? `${options.protocol}:`\n : options.protocol\n : \"https:\";\n this.path = options.path ? (options.path.charAt(0) !== \"/\" ? `/${options.path}` : options.path) : \"/\";\n }\n\n static isInstance(request: unknown): request is HttpRequest {\n //determine if request is a valid httpRequest\n if (!request) return false;\n const req: any = request;\n return (\n \"method\" in req &&\n \"protocol\" in req &&\n \"hostname\" in req &&\n \"path\" in req &&\n typeof req[\"query\"] === \"object\" &&\n typeof req[\"headers\"] === \"object\"\n );\n }\n\n clone(): HttpRequest {\n const cloned = new HttpRequest({\n ...this,\n headers: { ...this.headers },\n });\n if (cloned.query) cloned.query = cloneQuery(cloned.query);\n return cloned;\n }\n}\n\nfunction cloneQuery(query: QueryParameterBag): QueryParameterBag {\n return Object.keys(query).reduce((carry: QueryParameterBag, paramName: string) => {\n const param = query[paramName];\n return {\n ...carry,\n [paramName]: Array.isArray(param) ? [...param] : param,\n };\n }, {});\n}\n","import { CreateIdentityPoolCommandInput, CreateIdentityPoolCommandOutput } from \"../commands/CreateIdentityPoolCommand\";\nimport { DeleteIdentitiesCommandInput, DeleteIdentitiesCommandOutput } from \"../commands/DeleteIdentitiesCommand\";\nimport { DeleteIdentityPoolCommandInput, DeleteIdentityPoolCommandOutput } from \"../commands/DeleteIdentityPoolCommand\";\nimport { DescribeIdentityCommandInput, DescribeIdentityCommandOutput } from \"../commands/DescribeIdentityCommand\";\nimport {\n DescribeIdentityPoolCommandInput,\n DescribeIdentityPoolCommandOutput,\n} from \"../commands/DescribeIdentityPoolCommand\";\nimport {\n GetCredentialsForIdentityCommandInput,\n GetCredentialsForIdentityCommandOutput,\n} from \"../commands/GetCredentialsForIdentityCommand\";\nimport { GetIdCommandInput, GetIdCommandOutput } from \"../commands/GetIdCommand\";\nimport {\n GetIdentityPoolRolesCommandInput,\n GetIdentityPoolRolesCommandOutput,\n} from \"../commands/GetIdentityPoolRolesCommand\";\nimport { GetOpenIdTokenCommandInput, GetOpenIdTokenCommandOutput } from \"../commands/GetOpenIdTokenCommand\";\nimport {\n GetOpenIdTokenForDeveloperIdentityCommandInput,\n GetOpenIdTokenForDeveloperIdentityCommandOutput,\n} from \"../commands/GetOpenIdTokenForDeveloperIdentityCommand\";\nimport { ListIdentitiesCommandInput, ListIdentitiesCommandOutput } from \"../commands/ListIdentitiesCommand\";\nimport { ListIdentityPoolsCommandInput, ListIdentityPoolsCommandOutput } from \"../commands/ListIdentityPoolsCommand\";\nimport {\n ListTagsForResourceCommandInput,\n ListTagsForResourceCommandOutput,\n} from \"../commands/ListTagsForResourceCommand\";\nimport {\n LookupDeveloperIdentityCommandInput,\n LookupDeveloperIdentityCommandOutput,\n} from \"../commands/LookupDeveloperIdentityCommand\";\nimport {\n MergeDeveloperIdentitiesCommandInput,\n MergeDeveloperIdentitiesCommandOutput,\n} from \"../commands/MergeDeveloperIdentitiesCommand\";\nimport {\n SetIdentityPoolRolesCommandInput,\n SetIdentityPoolRolesCommandOutput,\n} from \"../commands/SetIdentityPoolRolesCommand\";\nimport { TagResourceCommandInput, TagResourceCommandOutput } from \"../commands/TagResourceCommand\";\nimport {\n UnlinkDeveloperIdentityCommandInput,\n UnlinkDeveloperIdentityCommandOutput,\n} from \"../commands/UnlinkDeveloperIdentityCommand\";\nimport { UnlinkIdentityCommandInput, UnlinkIdentityCommandOutput } from \"../commands/UnlinkIdentityCommand\";\nimport { UntagResourceCommandInput, UntagResourceCommandOutput } from \"../commands/UntagResourceCommand\";\nimport { UpdateIdentityPoolCommandInput, UpdateIdentityPoolCommandOutput } from \"../commands/UpdateIdentityPoolCommand\";\nimport {\n CognitoIdentityProvider,\n ConcurrentModificationException,\n CreateIdentityPoolInput,\n Credentials,\n DeleteIdentitiesInput,\n DeleteIdentitiesResponse,\n DeleteIdentityPoolInput,\n DescribeIdentityInput,\n DescribeIdentityPoolInput,\n DeveloperUserAlreadyRegisteredException,\n ExternalServiceException,\n GetCredentialsForIdentityInput,\n GetCredentialsForIdentityResponse,\n GetIdInput,\n GetIdResponse,\n GetIdentityPoolRolesInput,\n GetIdentityPoolRolesResponse,\n GetOpenIdTokenForDeveloperIdentityInput,\n GetOpenIdTokenForDeveloperIdentityResponse,\n GetOpenIdTokenInput,\n GetOpenIdTokenResponse,\n IdentityDescription,\n IdentityPool,\n IdentityPoolShortDescription,\n InternalErrorException,\n InvalidIdentityPoolConfigurationException,\n InvalidParameterException,\n LimitExceededException,\n ListIdentitiesInput,\n ListIdentitiesResponse,\n ListIdentityPoolsInput,\n ListIdentityPoolsResponse,\n ListTagsForResourceInput,\n ListTagsForResourceResponse,\n LookupDeveloperIdentityInput,\n LookupDeveloperIdentityResponse,\n MappingRule,\n MergeDeveloperIdentitiesInput,\n MergeDeveloperIdentitiesResponse,\n NotAuthorizedException,\n ResourceConflictException,\n ResourceNotFoundException,\n RoleMapping,\n RulesConfigurationType,\n SetIdentityPoolRolesInput,\n TagResourceInput,\n TagResourceResponse,\n TooManyRequestsException,\n UnlinkDeveloperIdentityInput,\n UnlinkIdentityInput,\n UnprocessedIdentityId,\n UntagResourceInput,\n UntagResourceResponse,\n} from \"../models/models_0\";\nimport { HttpRequest as __HttpRequest, HttpResponse as __HttpResponse } from \"@aws-sdk/protocol-http\";\nimport { SmithyException as __SmithyException } from \"@aws-sdk/smithy-client\";\nimport {\n Endpoint as __Endpoint,\n HeaderBag as __HeaderBag,\n MetadataBearer as __MetadataBearer,\n ResponseMetadata as __ResponseMetadata,\n SerdeContext as __SerdeContext,\n} from \"@aws-sdk/types\";\n\nexport const serializeAws_json1_1CreateIdentityPoolCommand = async (\n input: CreateIdentityPoolCommandInput,\n context: __SerdeContext\n): Promise<__HttpRequest> => {\n const headers: __HeaderBag = {\n \"content-type\": \"application/x-amz-json-1.1\",\n \"x-amz-target\": \"AWSCognitoIdentityService.CreateIdentityPool\",\n };\n let body: any;\n body = JSON.stringify(serializeAws_json1_1CreateIdentityPoolInput(input, context));\n return buildHttpRpcRequest(context, headers, \"/\", undefined, body);\n};\n\nexport const serializeAws_json1_1DeleteIdentitiesCommand = async (\n input: DeleteIdentitiesCommandInput,\n context: __SerdeContext\n): Promise<__HttpRequest> => {\n const headers: __HeaderBag = {\n \"content-type\": \"application/x-amz-json-1.1\",\n \"x-amz-target\": \"AWSCognitoIdentityService.DeleteIdentities\",\n };\n let body: any;\n body = JSON.stringify(serializeAws_json1_1DeleteIdentitiesInput(input, context));\n return buildHttpRpcRequest(context, headers, \"/\", undefined, body);\n};\n\nexport const serializeAws_json1_1DeleteIdentityPoolCommand = async (\n input: DeleteIdentityPoolCommandInput,\n context: __SerdeContext\n): Promise<__HttpRequest> => {\n const headers: __HeaderBag = {\n \"content-type\": \"application/x-amz-json-1.1\",\n \"x-amz-target\": \"AWSCognitoIdentityService.DeleteIdentityPool\",\n };\n let body: any;\n body = JSON.stringify(serializeAws_json1_1DeleteIdentityPoolInput(input, context));\n return buildHttpRpcRequest(context, headers, \"/\", undefined, body);\n};\n\nexport const serializeAws_json1_1DescribeIdentityCommand = async (\n input: DescribeIdentityCommandInput,\n context: __SerdeContext\n): Promise<__HttpRequest> => {\n const headers: __HeaderBag = {\n \"content-type\": \"application/x-amz-json-1.1\",\n \"x-amz-target\": \"AWSCognitoIdentityService.DescribeIdentity\",\n };\n let body: any;\n body = JSON.stringify(serializeAws_json1_1DescribeIdentityInput(input, context));\n return buildHttpRpcRequest(context, headers, \"/\", undefined, body);\n};\n\nexport const serializeAws_json1_1DescribeIdentityPoolCommand = async (\n input: DescribeIdentityPoolCommandInput,\n context: __SerdeContext\n): Promise<__HttpRequest> => {\n const headers: __HeaderBag = {\n \"content-type\": \"application/x-amz-json-1.1\",\n \"x-amz-target\": \"AWSCognitoIdentityService.DescribeIdentityPool\",\n };\n let body: any;\n body = JSON.stringify(serializeAws_json1_1DescribeIdentityPoolInput(input, context));\n return buildHttpRpcRequest(context, headers, \"/\", undefined, body);\n};\n\nexport const serializeAws_json1_1GetCredentialsForIdentityCommand = async (\n input: GetCredentialsForIdentityCommandInput,\n context: __SerdeContext\n): Promise<__HttpRequest> => {\n const headers: __HeaderBag = {\n \"content-type\": \"application/x-amz-json-1.1\",\n \"x-amz-target\": \"AWSCognitoIdentityService.GetCredentialsForIdentity\",\n };\n let body: any;\n body = JSON.stringify(serializeAws_json1_1GetCredentialsForIdentityInput(input, context));\n return buildHttpRpcRequest(context, headers, \"/\", undefined, body);\n};\n\nexport const serializeAws_json1_1GetIdCommand = async (\n input: GetIdCommandInput,\n context: __SerdeContext\n): Promise<__HttpRequest> => {\n const headers: __HeaderBag = {\n \"content-type\": \"application/x-amz-json-1.1\",\n \"x-amz-target\": \"AWSCognitoIdentityService.GetId\",\n };\n let body: any;\n body = JSON.stringify(serializeAws_json1_1GetIdInput(input, context));\n return buildHttpRpcRequest(context, headers, \"/\", undefined, body);\n};\n\nexport const serializeAws_json1_1GetIdentityPoolRolesCommand = async (\n input: GetIdentityPoolRolesCommandInput,\n context: __SerdeContext\n): Promise<__HttpRequest> => {\n const headers: __HeaderBag = {\n \"content-type\": \"application/x-amz-json-1.1\",\n \"x-amz-target\": \"AWSCognitoIdentityService.GetIdentityPoolRoles\",\n };\n let body: any;\n body = JSON.stringify(serializeAws_json1_1GetIdentityPoolRolesInput(input, context));\n return buildHttpRpcRequest(context, headers, \"/\", undefined, body);\n};\n\nexport const serializeAws_json1_1GetOpenIdTokenCommand = async (\n input: GetOpenIdTokenCommandInput,\n context: __SerdeContext\n): Promise<__HttpRequest> => {\n const headers: __HeaderBag = {\n \"content-type\": \"application/x-amz-json-1.1\",\n \"x-amz-target\": \"AWSCognitoIdentityService.GetOpenIdToken\",\n };\n let body: any;\n body = JSON.stringify(serializeAws_json1_1GetOpenIdTokenInput(input, context));\n return buildHttpRpcRequest(context, headers, \"/\", undefined, body);\n};\n\nexport const serializeAws_json1_1GetOpenIdTokenForDeveloperIdentityCommand = async (\n input: GetOpenIdTokenForDeveloperIdentityCommandInput,\n context: __SerdeContext\n): Promise<__HttpRequest> => {\n const headers: __HeaderBag = {\n \"content-type\": \"application/x-amz-json-1.1\",\n \"x-amz-target\": \"AWSCognitoIdentityService.GetOpenIdTokenForDeveloperIdentity\",\n };\n let body: any;\n body = JSON.stringify(serializeAws_json1_1GetOpenIdTokenForDeveloperIdentityInput(input, context));\n return buildHttpRpcRequest(context, headers, \"/\", undefined, body);\n};\n\nexport const serializeAws_json1_1ListIdentitiesCommand = async (\n input: ListIdentitiesCommandInput,\n context: __SerdeContext\n): Promise<__HttpRequest> => {\n const headers: __HeaderBag = {\n \"content-type\": \"application/x-amz-json-1.1\",\n \"x-amz-target\": \"AWSCognitoIdentityService.ListIdentities\",\n };\n let body: any;\n body = JSON.stringify(serializeAws_json1_1ListIdentitiesInput(input, context));\n return buildHttpRpcRequest(context, headers, \"/\", undefined, body);\n};\n\nexport const serializeAws_json1_1ListIdentityPoolsCommand = async (\n input: ListIdentityPoolsCommandInput,\n context: __SerdeContext\n): Promise<__HttpRequest> => {\n const headers: __HeaderBag = {\n \"content-type\": \"application/x-amz-json-1.1\",\n \"x-amz-target\": \"AWSCognitoIdentityService.ListIdentityPools\",\n };\n let body: any;\n body = JSON.stringify(serializeAws_json1_1ListIdentityPoolsInput(input, context));\n return buildHttpRpcRequest(context, headers, \"/\", undefined, body);\n};\n\nexport const serializeAws_json1_1ListTagsForResourceCommand = async (\n input: ListTagsForResourceCommandInput,\n context: __SerdeContext\n): Promise<__HttpRequest> => {\n const headers: __HeaderBag = {\n \"content-type\": \"application/x-amz-json-1.1\",\n \"x-amz-target\": \"AWSCognitoIdentityService.ListTagsForResource\",\n };\n let body: any;\n body = JSON.stringify(serializeAws_json1_1ListTagsForResourceInput(input, context));\n return buildHttpRpcRequest(context, headers, \"/\", undefined, body);\n};\n\nexport const serializeAws_json1_1LookupDeveloperIdentityCommand = async (\n input: LookupDeveloperIdentityCommandInput,\n context: __SerdeContext\n): Promise<__HttpRequest> => {\n const headers: __HeaderBag = {\n \"content-type\": \"application/x-amz-json-1.1\",\n \"x-amz-target\": \"AWSCognitoIdentityService.LookupDeveloperIdentity\",\n };\n let body: any;\n body = JSON.stringify(serializeAws_json1_1LookupDeveloperIdentityInput(input, context));\n return buildHttpRpcRequest(context, headers, \"/\", undefined, body);\n};\n\nexport const serializeAws_json1_1MergeDeveloperIdentitiesCommand = async (\n input: MergeDeveloperIdentitiesCommandInput,\n context: __SerdeContext\n): Promise<__HttpRequest> => {\n const headers: __HeaderBag = {\n \"content-type\": \"application/x-amz-json-1.1\",\n \"x-amz-target\": \"AWSCognitoIdentityService.MergeDeveloperIdentities\",\n };\n let body: any;\n body = JSON.stringify(serializeAws_json1_1MergeDeveloperIdentitiesInput(input, context));\n return buildHttpRpcRequest(context, headers, \"/\", undefined, body);\n};\n\nexport const serializeAws_json1_1SetIdentityPoolRolesCommand = async (\n input: SetIdentityPoolRolesCommandInput,\n context: __SerdeContext\n): Promise<__HttpRequest> => {\n const headers: __HeaderBag = {\n \"content-type\": \"application/x-amz-json-1.1\",\n \"x-amz-target\": \"AWSCognitoIdentityService.SetIdentityPoolRoles\",\n };\n let body: any;\n body = JSON.stringify(serializeAws_json1_1SetIdentityPoolRolesInput(input, context));\n return buildHttpRpcRequest(context, headers, \"/\", undefined, body);\n};\n\nexport const serializeAws_json1_1TagResourceCommand = async (\n input: TagResourceCommandInput,\n context: __SerdeContext\n): Promise<__HttpRequest> => {\n const headers: __HeaderBag = {\n \"content-type\": \"application/x-amz-json-1.1\",\n \"x-amz-target\": \"AWSCognitoIdentityService.TagResource\",\n };\n let body: any;\n body = JSON.stringify(serializeAws_json1_1TagResourceInput(input, context));\n return buildHttpRpcRequest(context, headers, \"/\", undefined, body);\n};\n\nexport const serializeAws_json1_1UnlinkDeveloperIdentityCommand = async (\n input: UnlinkDeveloperIdentityCommandInput,\n context: __SerdeContext\n): Promise<__HttpRequest> => {\n const headers: __HeaderBag = {\n \"content-type\": \"application/x-amz-json-1.1\",\n \"x-amz-target\": \"AWSCognitoIdentityService.UnlinkDeveloperIdentity\",\n };\n let body: any;\n body = JSON.stringify(serializeAws_json1_1UnlinkDeveloperIdentityInput(input, context));\n return buildHttpRpcRequest(context, headers, \"/\", undefined, body);\n};\n\nexport const serializeAws_json1_1UnlinkIdentityCommand = async (\n input: UnlinkIdentityCommandInput,\n context: __SerdeContext\n): Promise<__HttpRequest> => {\n const headers: __HeaderBag = {\n \"content-type\": \"application/x-amz-json-1.1\",\n \"x-amz-target\": \"AWSCognitoIdentityService.UnlinkIdentity\",\n };\n let body: any;\n body = JSON.stringify(serializeAws_json1_1UnlinkIdentityInput(input, context));\n return buildHttpRpcRequest(context, headers, \"/\", undefined, body);\n};\n\nexport const serializeAws_json1_1UntagResourceCommand = async (\n input: UntagResourceCommandInput,\n context: __SerdeContext\n): Promise<__HttpRequest> => {\n const headers: __HeaderBag = {\n \"content-type\": \"application/x-amz-json-1.1\",\n \"x-amz-target\": \"AWSCognitoIdentityService.UntagResource\",\n };\n let body: any;\n body = JSON.stringify(serializeAws_json1_1UntagResourceInput(input, context));\n return buildHttpRpcRequest(context, headers, \"/\", undefined, body);\n};\n\nexport const serializeAws_json1_1UpdateIdentityPoolCommand = async (\n input: UpdateIdentityPoolCommandInput,\n context: __SerdeContext\n): Promise<__HttpRequest> => {\n const headers: __HeaderBag = {\n \"content-type\": \"application/x-amz-json-1.1\",\n \"x-amz-target\": \"AWSCognitoIdentityService.UpdateIdentityPool\",\n };\n let body: any;\n body = JSON.stringify(serializeAws_json1_1IdentityPool(input, context));\n return buildHttpRpcRequest(context, headers, \"/\", undefined, body);\n};\n\nexport const deserializeAws_json1_1CreateIdentityPoolCommand = async (\n output: __HttpResponse,\n context: __SerdeContext\n): Promise => {\n if (output.statusCode >= 300) {\n return deserializeAws_json1_1CreateIdentityPoolCommandError(output, context);\n }\n const data: any = await parseBody(output.body, context);\n let contents: any = {};\n contents = deserializeAws_json1_1IdentityPool(data, context);\n const response: CreateIdentityPoolCommandOutput = {\n $metadata: deserializeMetadata(output),\n ...contents,\n };\n return Promise.resolve(response);\n};\n\nconst deserializeAws_json1_1CreateIdentityPoolCommandError = async (\n output: __HttpResponse,\n context: __SerdeContext\n): Promise => {\n const parsedOutput: any = {\n ...output,\n body: await parseBody(output.body, context),\n };\n let response: __SmithyException & __MetadataBearer & { [key: string]: any };\n let errorCode: string = \"UnknownError\";\n errorCode = loadRestJsonErrorCode(output, parsedOutput.body);\n switch (errorCode) {\n case \"InternalErrorException\":\n case \"com.amazonaws.cognitoidentity#InternalErrorException\":\n response = {\n ...(await deserializeAws_json1_1InternalErrorExceptionResponse(parsedOutput, context)),\n name: errorCode,\n $metadata: deserializeMetadata(output),\n };\n break;\n case \"InvalidParameterException\":\n case \"com.amazonaws.cognitoidentity#InvalidParameterException\":\n response = {\n ...(await deserializeAws_json1_1InvalidParameterExceptionResponse(parsedOutput, context)),\n name: errorCode,\n $metadata: deserializeMetadata(output),\n };\n break;\n case \"LimitExceededException\":\n case \"com.amazonaws.cognitoidentity#LimitExceededException\":\n response = {\n ...(await deserializeAws_json1_1LimitExceededExceptionResponse(parsedOutput, context)),\n name: errorCode,\n $metadata: deserializeMetadata(output),\n };\n break;\n case \"NotAuthorizedException\":\n case \"com.amazonaws.cognitoidentity#NotAuthorizedException\":\n response = {\n ...(await deserializeAws_json1_1NotAuthorizedExceptionResponse(parsedOutput, context)),\n name: errorCode,\n $metadata: deserializeMetadata(output),\n };\n break;\n case \"ResourceConflictException\":\n case \"com.amazonaws.cognitoidentity#ResourceConflictException\":\n response = {\n ...(await deserializeAws_json1_1ResourceConflictExceptionResponse(parsedOutput, context)),\n name: errorCode,\n $metadata: deserializeMetadata(output),\n };\n break;\n case \"TooManyRequestsException\":\n case \"com.amazonaws.cognitoidentity#TooManyRequestsException\":\n response = {\n ...(await deserializeAws_json1_1TooManyRequestsExceptionResponse(parsedOutput, context)),\n name: errorCode,\n $metadata: deserializeMetadata(output),\n };\n break;\n default:\n const parsedBody = parsedOutput.body;\n errorCode = parsedBody.code || parsedBody.Code || errorCode;\n response = {\n ...parsedBody,\n name: `${errorCode}`,\n message: parsedBody.message || parsedBody.Message || errorCode,\n $fault: \"client\",\n $metadata: deserializeMetadata(output),\n } as any;\n }\n const message = response.message || response.Message || errorCode;\n response.message = message;\n delete response.Message;\n return Promise.reject(Object.assign(new Error(message), response));\n};\n\nexport const deserializeAws_json1_1DeleteIdentitiesCommand = async (\n output: __HttpResponse,\n context: __SerdeContext\n): Promise => {\n if (output.statusCode >= 300) {\n return deserializeAws_json1_1DeleteIdentitiesCommandError(output, context);\n }\n const data: any = await parseBody(output.body, context);\n let contents: any = {};\n contents = deserializeAws_json1_1DeleteIdentitiesResponse(data, context);\n const response: DeleteIdentitiesCommandOutput = {\n $metadata: deserializeMetadata(output),\n ...contents,\n };\n return Promise.resolve(response);\n};\n\nconst deserializeAws_json1_1DeleteIdentitiesCommandError = async (\n output: __HttpResponse,\n context: __SerdeContext\n): Promise => {\n const parsedOutput: any = {\n ...output,\n body: await parseBody(output.body, context),\n };\n let response: __SmithyException & __MetadataBearer & { [key: string]: any };\n let errorCode: string = \"UnknownError\";\n errorCode = loadRestJsonErrorCode(output, parsedOutput.body);\n switch (errorCode) {\n case \"InternalErrorException\":\n case \"com.amazonaws.cognitoidentity#InternalErrorException\":\n response = {\n ...(await deserializeAws_json1_1InternalErrorExceptionResponse(parsedOutput, context)),\n name: errorCode,\n $metadata: deserializeMetadata(output),\n };\n break;\n case \"InvalidParameterException\":\n case \"com.amazonaws.cognitoidentity#InvalidParameterException\":\n response = {\n ...(await deserializeAws_json1_1InvalidParameterExceptionResponse(parsedOutput, context)),\n name: errorCode,\n $metadata: deserializeMetadata(output),\n };\n break;\n case \"TooManyRequestsException\":\n case \"com.amazonaws.cognitoidentity#TooManyRequestsException\":\n response = {\n ...(await deserializeAws_json1_1TooManyRequestsExceptionResponse(parsedOutput, context)),\n name: errorCode,\n $metadata: deserializeMetadata(output),\n };\n break;\n default:\n const parsedBody = parsedOutput.body;\n errorCode = parsedBody.code || parsedBody.Code || errorCode;\n response = {\n ...parsedBody,\n name: `${errorCode}`,\n message: parsedBody.message || parsedBody.Message || errorCode,\n $fault: \"client\",\n $metadata: deserializeMetadata(output),\n } as any;\n }\n const message = response.message || response.Message || errorCode;\n response.message = message;\n delete response.Message;\n return Promise.reject(Object.assign(new Error(message), response));\n};\n\nexport const deserializeAws_json1_1DeleteIdentityPoolCommand = async (\n output: __HttpResponse,\n context: __SerdeContext\n): Promise => {\n if (output.statusCode >= 300) {\n return deserializeAws_json1_1DeleteIdentityPoolCommandError(output, context);\n }\n await collectBody(output.body, context);\n const response: DeleteIdentityPoolCommandOutput = {\n $metadata: deserializeMetadata(output),\n };\n return Promise.resolve(response);\n};\n\nconst deserializeAws_json1_1DeleteIdentityPoolCommandError = async (\n output: __HttpResponse,\n context: __SerdeContext\n): Promise => {\n const parsedOutput: any = {\n ...output,\n body: await parseBody(output.body, context),\n };\n let response: __SmithyException & __MetadataBearer & { [key: string]: any };\n let errorCode: string = \"UnknownError\";\n errorCode = loadRestJsonErrorCode(output, parsedOutput.body);\n switch (errorCode) {\n case \"InternalErrorException\":\n case \"com.amazonaws.cognitoidentity#InternalErrorException\":\n response = {\n ...(await deserializeAws_json1_1InternalErrorExceptionResponse(parsedOutput, context)),\n name: errorCode,\n $metadata: deserializeMetadata(output),\n };\n break;\n case \"InvalidParameterException\":\n case \"com.amazonaws.cognitoidentity#InvalidParameterException\":\n response = {\n ...(await deserializeAws_json1_1InvalidParameterExceptionResponse(parsedOutput, context)),\n name: errorCode,\n $metadata: deserializeMetadata(output),\n };\n break;\n case \"NotAuthorizedException\":\n case \"com.amazonaws.cognitoidentity#NotAuthorizedException\":\n response = {\n ...(await deserializeAws_json1_1NotAuthorizedExceptionResponse(parsedOutput, context)),\n name: errorCode,\n $metadata: deserializeMetadata(output),\n };\n break;\n case \"ResourceNotFoundException\":\n case \"com.amazonaws.cognitoidentity#ResourceNotFoundException\":\n response = {\n ...(await deserializeAws_json1_1ResourceNotFoundExceptionResponse(parsedOutput, context)),\n name: errorCode,\n $metadata: deserializeMetadata(output),\n };\n break;\n case \"TooManyRequestsException\":\n case \"com.amazonaws.cognitoidentity#TooManyRequestsException\":\n response = {\n ...(await deserializeAws_json1_1TooManyRequestsExceptionResponse(parsedOutput, context)),\n name: errorCode,\n $metadata: deserializeMetadata(output),\n };\n break;\n default:\n const parsedBody = parsedOutput.body;\n errorCode = parsedBody.code || parsedBody.Code || errorCode;\n response = {\n ...parsedBody,\n name: `${errorCode}`,\n message: parsedBody.message || parsedBody.Message || errorCode,\n $fault: \"client\",\n $metadata: deserializeMetadata(output),\n } as any;\n }\n const message = response.message || response.Message || errorCode;\n response.message = message;\n delete response.Message;\n return Promise.reject(Object.assign(new Error(message), response));\n};\n\nexport const deserializeAws_json1_1DescribeIdentityCommand = async (\n output: __HttpResponse,\n context: __SerdeContext\n): Promise => {\n if (output.statusCode >= 300) {\n return deserializeAws_json1_1DescribeIdentityCommandError(output, context);\n }\n const data: any = await parseBody(output.body, context);\n let contents: any = {};\n contents = deserializeAws_json1_1IdentityDescription(data, context);\n const response: DescribeIdentityCommandOutput = {\n $metadata: deserializeMetadata(output),\n ...contents,\n };\n return Promise.resolve(response);\n};\n\nconst deserializeAws_json1_1DescribeIdentityCommandError = async (\n output: __HttpResponse,\n context: __SerdeContext\n): Promise => {\n const parsedOutput: any = {\n ...output,\n body: await parseBody(output.body, context),\n };\n let response: __SmithyException & __MetadataBearer & { [key: string]: any };\n let errorCode: string = \"UnknownError\";\n errorCode = loadRestJsonErrorCode(output, parsedOutput.body);\n switch (errorCode) {\n case \"InternalErrorException\":\n case \"com.amazonaws.cognitoidentity#InternalErrorException\":\n response = {\n ...(await deserializeAws_json1_1InternalErrorExceptionResponse(parsedOutput, context)),\n name: errorCode,\n $metadata: deserializeMetadata(output),\n };\n break;\n case \"InvalidParameterException\":\n case \"com.amazonaws.cognitoidentity#InvalidParameterException\":\n response = {\n ...(await deserializeAws_json1_1InvalidParameterExceptionResponse(parsedOutput, context)),\n name: errorCode,\n $metadata: deserializeMetadata(output),\n };\n break;\n case \"NotAuthorizedException\":\n case \"com.amazonaws.cognitoidentity#NotAuthorizedException\":\n response = {\n ...(await deserializeAws_json1_1NotAuthorizedExceptionResponse(parsedOutput, context)),\n name: errorCode,\n $metadata: deserializeMetadata(output),\n };\n break;\n case \"ResourceNotFoundException\":\n case \"com.amazonaws.cognitoidentity#ResourceNotFoundException\":\n response = {\n ...(await deserializeAws_json1_1ResourceNotFoundExceptionResponse(parsedOutput, context)),\n name: errorCode,\n $metadata: deserializeMetadata(output),\n };\n break;\n case \"TooManyRequestsException\":\n case \"com.amazonaws.cognitoidentity#TooManyRequestsException\":\n response = {\n ...(await deserializeAws_json1_1TooManyRequestsExceptionResponse(parsedOutput, context)),\n name: errorCode,\n $metadata: deserializeMetadata(output),\n };\n break;\n default:\n const parsedBody = parsedOutput.body;\n errorCode = parsedBody.code || parsedBody.Code || errorCode;\n response = {\n ...parsedBody,\n name: `${errorCode}`,\n message: parsedBody.message || parsedBody.Message || errorCode,\n $fault: \"client\",\n $metadata: deserializeMetadata(output),\n } as any;\n }\n const message = response.message || response.Message || errorCode;\n response.message = message;\n delete response.Message;\n return Promise.reject(Object.assign(new Error(message), response));\n};\n\nexport const deserializeAws_json1_1DescribeIdentityPoolCommand = async (\n output: __HttpResponse,\n context: __SerdeContext\n): Promise => {\n if (output.statusCode >= 300) {\n return deserializeAws_json1_1DescribeIdentityPoolCommandError(output, context);\n }\n const data: any = await parseBody(output.body, context);\n let contents: any = {};\n contents = deserializeAws_json1_1IdentityPool(data, context);\n const response: DescribeIdentityPoolCommandOutput = {\n $metadata: deserializeMetadata(output),\n ...contents,\n };\n return Promise.resolve(response);\n};\n\nconst deserializeAws_json1_1DescribeIdentityPoolCommandError = async (\n output: __HttpResponse,\n context: __SerdeContext\n): Promise => {\n const parsedOutput: any = {\n ...output,\n body: await parseBody(output.body, context),\n };\n let response: __SmithyException & __MetadataBearer & { [key: string]: any };\n let errorCode: string = \"UnknownError\";\n errorCode = loadRestJsonErrorCode(output, parsedOutput.body);\n switch (errorCode) {\n case \"InternalErrorException\":\n case \"com.amazonaws.cognitoidentity#InternalErrorException\":\n response = {\n ...(await deserializeAws_json1_1InternalErrorExceptionResponse(parsedOutput, context)),\n name: errorCode,\n $metadata: deserializeMetadata(output),\n };\n break;\n case \"InvalidParameterException\":\n case \"com.amazonaws.cognitoidentity#InvalidParameterException\":\n response = {\n ...(await deserializeAws_json1_1InvalidParameterExceptionResponse(parsedOutput, context)),\n name: errorCode,\n $metadata: deserializeMetadata(output),\n };\n break;\n case \"NotAuthorizedException\":\n case \"com.amazonaws.cognitoidentity#NotAuthorizedException\":\n response = {\n ...(await deserializeAws_json1_1NotAuthorizedExceptionResponse(parsedOutput, context)),\n name: errorCode,\n $metadata: deserializeMetadata(output),\n };\n break;\n case \"ResourceNotFoundException\":\n case \"com.amazonaws.cognitoidentity#ResourceNotFoundException\":\n response = {\n ...(await deserializeAws_json1_1ResourceNotFoundExceptionResponse(parsedOutput, context)),\n name: errorCode,\n $metadata: deserializeMetadata(output),\n };\n break;\n case \"TooManyRequestsException\":\n case \"com.amazonaws.cognitoidentity#TooManyRequestsException\":\n response = {\n ...(await deserializeAws_json1_1TooManyRequestsExceptionResponse(parsedOutput, context)),\n name: errorCode,\n $metadata: deserializeMetadata(output),\n };\n break;\n default:\n const parsedBody = parsedOutput.body;\n errorCode = parsedBody.code || parsedBody.Code || errorCode;\n response = {\n ...parsedBody,\n name: `${errorCode}`,\n message: parsedBody.message || parsedBody.Message || errorCode,\n $fault: \"client\",\n $metadata: deserializeMetadata(output),\n } as any;\n }\n const message = response.message || response.Message || errorCode;\n response.message = message;\n delete response.Message;\n return Promise.reject(Object.assign(new Error(message), response));\n};\n\nexport const deserializeAws_json1_1GetCredentialsForIdentityCommand = async (\n output: __HttpResponse,\n context: __SerdeContext\n): Promise => {\n if (output.statusCode >= 300) {\n return deserializeAws_json1_1GetCredentialsForIdentityCommandError(output, context);\n }\n const data: any = await parseBody(output.body, context);\n let contents: any = {};\n contents = deserializeAws_json1_1GetCredentialsForIdentityResponse(data, context);\n const response: GetCredentialsForIdentityCommandOutput = {\n $metadata: deserializeMetadata(output),\n ...contents,\n };\n return Promise.resolve(response);\n};\n\nconst deserializeAws_json1_1GetCredentialsForIdentityCommandError = async (\n output: __HttpResponse,\n context: __SerdeContext\n): Promise => {\n const parsedOutput: any = {\n ...output,\n body: await parseBody(output.body, context),\n };\n let response: __SmithyException & __MetadataBearer & { [key: string]: any };\n let errorCode: string = \"UnknownError\";\n errorCode = loadRestJsonErrorCode(output, parsedOutput.body);\n switch (errorCode) {\n case \"ExternalServiceException\":\n case \"com.amazonaws.cognitoidentity#ExternalServiceException\":\n response = {\n ...(await deserializeAws_json1_1ExternalServiceExceptionResponse(parsedOutput, context)),\n name: errorCode,\n $metadata: deserializeMetadata(output),\n };\n break;\n case \"InternalErrorException\":\n case \"com.amazonaws.cognitoidentity#InternalErrorException\":\n response = {\n ...(await deserializeAws_json1_1InternalErrorExceptionResponse(parsedOutput, context)),\n name: errorCode,\n $metadata: deserializeMetadata(output),\n };\n break;\n case \"InvalidIdentityPoolConfigurationException\":\n case \"com.amazonaws.cognitoidentity#InvalidIdentityPoolConfigurationException\":\n response = {\n ...(await deserializeAws_json1_1InvalidIdentityPoolConfigurationExceptionResponse(parsedOutput, context)),\n name: errorCode,\n $metadata: deserializeMetadata(output),\n };\n break;\n case \"InvalidParameterException\":\n case \"com.amazonaws.cognitoidentity#InvalidParameterException\":\n response = {\n ...(await deserializeAws_json1_1InvalidParameterExceptionResponse(parsedOutput, context)),\n name: errorCode,\n $metadata: deserializeMetadata(output),\n };\n break;\n case \"NotAuthorizedException\":\n case \"com.amazonaws.cognitoidentity#NotAuthorizedException\":\n response = {\n ...(await deserializeAws_json1_1NotAuthorizedExceptionResponse(parsedOutput, context)),\n name: errorCode,\n $metadata: deserializeMetadata(output),\n };\n break;\n case \"ResourceConflictException\":\n case \"com.amazonaws.cognitoidentity#ResourceConflictException\":\n response = {\n ...(await deserializeAws_json1_1ResourceConflictExceptionResponse(parsedOutput, context)),\n name: errorCode,\n $metadata: deserializeMetadata(output),\n };\n break;\n case \"ResourceNotFoundException\":\n case \"com.amazonaws.cognitoidentity#ResourceNotFoundException\":\n response = {\n ...(await deserializeAws_json1_1ResourceNotFoundExceptionResponse(parsedOutput, context)),\n name: errorCode,\n $metadata: deserializeMetadata(output),\n };\n break;\n case \"TooManyRequestsException\":\n case \"com.amazonaws.cognitoidentity#TooManyRequestsException\":\n response = {\n ...(await deserializeAws_json1_1TooManyRequestsExceptionResponse(parsedOutput, context)),\n name: errorCode,\n $metadata: deserializeMetadata(output),\n };\n break;\n default:\n const parsedBody = parsedOutput.body;\n errorCode = parsedBody.code || parsedBody.Code || errorCode;\n response = {\n ...parsedBody,\n name: `${errorCode}`,\n message: parsedBody.message || parsedBody.Message || errorCode,\n $fault: \"client\",\n $metadata: deserializeMetadata(output),\n } as any;\n }\n const message = response.message || response.Message || errorCode;\n response.message = message;\n delete response.Message;\n return Promise.reject(Object.assign(new Error(message), response));\n};\n\nexport const deserializeAws_json1_1GetIdCommand = async (\n output: __HttpResponse,\n context: __SerdeContext\n): Promise => {\n if (output.statusCode >= 300) {\n return deserializeAws_json1_1GetIdCommandError(output, context);\n }\n const data: any = await parseBody(output.body, context);\n let contents: any = {};\n contents = deserializeAws_json1_1GetIdResponse(data, context);\n const response: GetIdCommandOutput = {\n $metadata: deserializeMetadata(output),\n ...contents,\n };\n return Promise.resolve(response);\n};\n\nconst deserializeAws_json1_1GetIdCommandError = async (\n output: __HttpResponse,\n context: __SerdeContext\n): Promise => {\n const parsedOutput: any = {\n ...output,\n body: await parseBody(output.body, context),\n };\n let response: __SmithyException & __MetadataBearer & { [key: string]: any };\n let errorCode: string = \"UnknownError\";\n errorCode = loadRestJsonErrorCode(output, parsedOutput.body);\n switch (errorCode) {\n case \"ExternalServiceException\":\n case \"com.amazonaws.cognitoidentity#ExternalServiceException\":\n response = {\n ...(await deserializeAws_json1_1ExternalServiceExceptionResponse(parsedOutput, context)),\n name: errorCode,\n $metadata: deserializeMetadata(output),\n };\n break;\n case \"InternalErrorException\":\n case \"com.amazonaws.cognitoidentity#InternalErrorException\":\n response = {\n ...(await deserializeAws_json1_1InternalErrorExceptionResponse(parsedOutput, context)),\n name: errorCode,\n $metadata: deserializeMetadata(output),\n };\n break;\n case \"InvalidParameterException\":\n case \"com.amazonaws.cognitoidentity#InvalidParameterException\":\n response = {\n ...(await deserializeAws_json1_1InvalidParameterExceptionResponse(parsedOutput, context)),\n name: errorCode,\n $metadata: deserializeMetadata(output),\n };\n break;\n case \"LimitExceededException\":\n case \"com.amazonaws.cognitoidentity#LimitExceededException\":\n response = {\n ...(await deserializeAws_json1_1LimitExceededExceptionResponse(parsedOutput, context)),\n name: errorCode,\n $metadata: deserializeMetadata(output),\n };\n break;\n case \"NotAuthorizedException\":\n case \"com.amazonaws.cognitoidentity#NotAuthorizedException\":\n response = {\n ...(await deserializeAws_json1_1NotAuthorizedExceptionResponse(parsedOutput, context)),\n name: errorCode,\n $metadata: deserializeMetadata(output),\n };\n break;\n case \"ResourceConflictException\":\n case \"com.amazonaws.cognitoidentity#ResourceConflictException\":\n response = {\n ...(await deserializeAws_json1_1ResourceConflictExceptionResponse(parsedOutput, context)),\n name: errorCode,\n $metadata: deserializeMetadata(output),\n };\n break;\n case \"ResourceNotFoundException\":\n case \"com.amazonaws.cognitoidentity#ResourceNotFoundException\":\n response = {\n ...(await deserializeAws_json1_1ResourceNotFoundExceptionResponse(parsedOutput, context)),\n name: errorCode,\n $metadata: deserializeMetadata(output),\n };\n break;\n case \"TooManyRequestsException\":\n case \"com.amazonaws.cognitoidentity#TooManyRequestsException\":\n response = {\n ...(await deserializeAws_json1_1TooManyRequestsExceptionResponse(parsedOutput, context)),\n name: errorCode,\n $metadata: deserializeMetadata(output),\n };\n break;\n default:\n const parsedBody = parsedOutput.body;\n errorCode = parsedBody.code || parsedBody.Code || errorCode;\n response = {\n ...parsedBody,\n name: `${errorCode}`,\n message: parsedBody.message || parsedBody.Message || errorCode,\n $fault: \"client\",\n $metadata: deserializeMetadata(output),\n } as any;\n }\n const message = response.message || response.Message || errorCode;\n response.message = message;\n delete response.Message;\n return Promise.reject(Object.assign(new Error(message), response));\n};\n\nexport const deserializeAws_json1_1GetIdentityPoolRolesCommand = async (\n output: __HttpResponse,\n context: __SerdeContext\n): Promise => {\n if (output.statusCode >= 300) {\n return deserializeAws_json1_1GetIdentityPoolRolesCommandError(output, context);\n }\n const data: any = await parseBody(output.body, context);\n let contents: any = {};\n contents = deserializeAws_json1_1GetIdentityPoolRolesResponse(data, context);\n const response: GetIdentityPoolRolesCommandOutput = {\n $metadata: deserializeMetadata(output),\n ...contents,\n };\n return Promise.resolve(response);\n};\n\nconst deserializeAws_json1_1GetIdentityPoolRolesCommandError = async (\n output: __HttpResponse,\n context: __SerdeContext\n): Promise => {\n const parsedOutput: any = {\n ...output,\n body: await parseBody(output.body, context),\n };\n let response: __SmithyException & __MetadataBearer & { [key: string]: any };\n let errorCode: string = \"UnknownError\";\n errorCode = loadRestJsonErrorCode(output, parsedOutput.body);\n switch (errorCode) {\n case \"InternalErrorException\":\n case \"com.amazonaws.cognitoidentity#InternalErrorException\":\n response = {\n ...(await deserializeAws_json1_1InternalErrorExceptionResponse(parsedOutput, context)),\n name: errorCode,\n $metadata: deserializeMetadata(output),\n };\n break;\n case \"InvalidParameterException\":\n case \"com.amazonaws.cognitoidentity#InvalidParameterException\":\n response = {\n ...(await deserializeAws_json1_1InvalidParameterExceptionResponse(parsedOutput, context)),\n name: errorCode,\n $metadata: deserializeMetadata(output),\n };\n break;\n case \"NotAuthorizedException\":\n case \"com.amazonaws.cognitoidentity#NotAuthorizedException\":\n response = {\n ...(await deserializeAws_json1_1NotAuthorizedExceptionResponse(parsedOutput, context)),\n name: errorCode,\n $metadata: deserializeMetadata(output),\n };\n break;\n case \"ResourceConflictException\":\n case \"com.amazonaws.cognitoidentity#ResourceConflictException\":\n response = {\n ...(await deserializeAws_json1_1ResourceConflictExceptionResponse(parsedOutput, context)),\n name: errorCode,\n $metadata: deserializeMetadata(output),\n };\n break;\n case \"ResourceNotFoundException\":\n case \"com.amazonaws.cognitoidentity#ResourceNotFoundException\":\n response = {\n ...(await deserializeAws_json1_1ResourceNotFoundExceptionResponse(parsedOutput, context)),\n name: errorCode,\n $metadata: deserializeMetadata(output),\n };\n break;\n case \"TooManyRequestsException\":\n case \"com.amazonaws.cognitoidentity#TooManyRequestsException\":\n response = {\n ...(await deserializeAws_json1_1TooManyRequestsExceptionResponse(parsedOutput, context)),\n name: errorCode,\n $metadata: deserializeMetadata(output),\n };\n break;\n default:\n const parsedBody = parsedOutput.body;\n errorCode = parsedBody.code || parsedBody.Code || errorCode;\n response = {\n ...parsedBody,\n name: `${errorCode}`,\n message: parsedBody.message || parsedBody.Message || errorCode,\n $fault: \"client\",\n $metadata: deserializeMetadata(output),\n } as any;\n }\n const message = response.message || response.Message || errorCode;\n response.message = message;\n delete response.Message;\n return Promise.reject(Object.assign(new Error(message), response));\n};\n\nexport const deserializeAws_json1_1GetOpenIdTokenCommand = async (\n output: __HttpResponse,\n context: __SerdeContext\n): Promise => {\n if (output.statusCode >= 300) {\n return deserializeAws_json1_1GetOpenIdTokenCommandError(output, context);\n }\n const data: any = await parseBody(output.body, context);\n let contents: any = {};\n contents = deserializeAws_json1_1GetOpenIdTokenResponse(data, context);\n const response: GetOpenIdTokenCommandOutput = {\n $metadata: deserializeMetadata(output),\n ...contents,\n };\n return Promise.resolve(response);\n};\n\nconst deserializeAws_json1_1GetOpenIdTokenCommandError = async (\n output: __HttpResponse,\n context: __SerdeContext\n): Promise => {\n const parsedOutput: any = {\n ...output,\n body: await parseBody(output.body, context),\n };\n let response: __SmithyException & __MetadataBearer & { [key: string]: any };\n let errorCode: string = \"UnknownError\";\n errorCode = loadRestJsonErrorCode(output, parsedOutput.body);\n switch (errorCode) {\n case \"ExternalServiceException\":\n case \"com.amazonaws.cognitoidentity#ExternalServiceException\":\n response = {\n ...(await deserializeAws_json1_1ExternalServiceExceptionResponse(parsedOutput, context)),\n name: errorCode,\n $metadata: deserializeMetadata(output),\n };\n break;\n case \"InternalErrorException\":\n case \"com.amazonaws.cognitoidentity#InternalErrorException\":\n response = {\n ...(await deserializeAws_json1_1InternalErrorExceptionResponse(parsedOutput, context)),\n name: errorCode,\n $metadata: deserializeMetadata(output),\n };\n break;\n case \"InvalidParameterException\":\n case \"com.amazonaws.cognitoidentity#InvalidParameterException\":\n response = {\n ...(await deserializeAws_json1_1InvalidParameterExceptionResponse(parsedOutput, context)),\n name: errorCode,\n $metadata: deserializeMetadata(output),\n };\n break;\n case \"NotAuthorizedException\":\n case \"com.amazonaws.cognitoidentity#NotAuthorizedException\":\n response = {\n ...(await deserializeAws_json1_1NotAuthorizedExceptionResponse(parsedOutput, context)),\n name: errorCode,\n $metadata: deserializeMetadata(output),\n };\n break;\n case \"ResourceConflictException\":\n case \"com.amazonaws.cognitoidentity#ResourceConflictException\":\n response = {\n ...(await deserializeAws_json1_1ResourceConflictExceptionResponse(parsedOutput, context)),\n name: errorCode,\n $metadata: deserializeMetadata(output),\n };\n break;\n case \"ResourceNotFoundException\":\n case \"com.amazonaws.cognitoidentity#ResourceNotFoundException\":\n response = {\n ...(await deserializeAws_json1_1ResourceNotFoundExceptionResponse(parsedOutput, context)),\n name: errorCode,\n $metadata: deserializeMetadata(output),\n };\n break;\n case \"TooManyRequestsException\":\n case \"com.amazonaws.cognitoidentity#TooManyRequestsException\":\n response = {\n ...(await deserializeAws_json1_1TooManyRequestsExceptionResponse(parsedOutput, context)),\n name: errorCode,\n $metadata: deserializeMetadata(output),\n };\n break;\n default:\n const parsedBody = parsedOutput.body;\n errorCode = parsedBody.code || parsedBody.Code || errorCode;\n response = {\n ...parsedBody,\n name: `${errorCode}`,\n message: parsedBody.message || parsedBody.Message || errorCode,\n $fault: \"client\",\n $metadata: deserializeMetadata(output),\n } as any;\n }\n const message = response.message || response.Message || errorCode;\n response.message = message;\n delete response.Message;\n return Promise.reject(Object.assign(new Error(message), response));\n};\n\nexport const deserializeAws_json1_1GetOpenIdTokenForDeveloperIdentityCommand = async (\n output: __HttpResponse,\n context: __SerdeContext\n): Promise => {\n if (output.statusCode >= 300) {\n return deserializeAws_json1_1GetOpenIdTokenForDeveloperIdentityCommandError(output, context);\n }\n const data: any = await parseBody(output.body, context);\n let contents: any = {};\n contents = deserializeAws_json1_1GetOpenIdTokenForDeveloperIdentityResponse(data, context);\n const response: GetOpenIdTokenForDeveloperIdentityCommandOutput = {\n $metadata: deserializeMetadata(output),\n ...contents,\n };\n return Promise.resolve(response);\n};\n\nconst deserializeAws_json1_1GetOpenIdTokenForDeveloperIdentityCommandError = async (\n output: __HttpResponse,\n context: __SerdeContext\n): Promise => {\n const parsedOutput: any = {\n ...output,\n body: await parseBody(output.body, context),\n };\n let response: __SmithyException & __MetadataBearer & { [key: string]: any };\n let errorCode: string = \"UnknownError\";\n errorCode = loadRestJsonErrorCode(output, parsedOutput.body);\n switch (errorCode) {\n case \"DeveloperUserAlreadyRegisteredException\":\n case \"com.amazonaws.cognitoidentity#DeveloperUserAlreadyRegisteredException\":\n response = {\n ...(await deserializeAws_json1_1DeveloperUserAlreadyRegisteredExceptionResponse(parsedOutput, context)),\n name: errorCode,\n $metadata: deserializeMetadata(output),\n };\n break;\n case \"InternalErrorException\":\n case \"com.amazonaws.cognitoidentity#InternalErrorException\":\n response = {\n ...(await deserializeAws_json1_1InternalErrorExceptionResponse(parsedOutput, context)),\n name: errorCode,\n $metadata: deserializeMetadata(output),\n };\n break;\n case \"InvalidParameterException\":\n case \"com.amazonaws.cognitoidentity#InvalidParameterException\":\n response = {\n ...(await deserializeAws_json1_1InvalidParameterExceptionResponse(parsedOutput, context)),\n name: errorCode,\n $metadata: deserializeMetadata(output),\n };\n break;\n case \"NotAuthorizedException\":\n case \"com.amazonaws.cognitoidentity#NotAuthorizedException\":\n response = {\n ...(await deserializeAws_json1_1NotAuthorizedExceptionResponse(parsedOutput, context)),\n name: errorCode,\n $metadata: deserializeMetadata(output),\n };\n break;\n case \"ResourceConflictException\":\n case \"com.amazonaws.cognitoidentity#ResourceConflictException\":\n response = {\n ...(await deserializeAws_json1_1ResourceConflictExceptionResponse(parsedOutput, context)),\n name: errorCode,\n $metadata: deserializeMetadata(output),\n };\n break;\n case \"ResourceNotFoundException\":\n case \"com.amazonaws.cognitoidentity#ResourceNotFoundException\":\n response = {\n ...(await deserializeAws_json1_1ResourceNotFoundExceptionResponse(parsedOutput, context)),\n name: errorCode,\n $metadata: deserializeMetadata(output),\n };\n break;\n case \"TooManyRequestsException\":\n case \"com.amazonaws.cognitoidentity#TooManyRequestsException\":\n response = {\n ...(await deserializeAws_json1_1TooManyRequestsExceptionResponse(parsedOutput, context)),\n name: errorCode,\n $metadata: deserializeMetadata(output),\n };\n break;\n default:\n const parsedBody = parsedOutput.body;\n errorCode = parsedBody.code || parsedBody.Code || errorCode;\n response = {\n ...parsedBody,\n name: `${errorCode}`,\n message: parsedBody.message || parsedBody.Message || errorCode,\n $fault: \"client\",\n $metadata: deserializeMetadata(output),\n } as any;\n }\n const message = response.message || response.Message || errorCode;\n response.message = message;\n delete response.Message;\n return Promise.reject(Object.assign(new Error(message), response));\n};\n\nexport const deserializeAws_json1_1ListIdentitiesCommand = async (\n output: __HttpResponse,\n context: __SerdeContext\n): Promise => {\n if (output.statusCode >= 300) {\n return deserializeAws_json1_1ListIdentitiesCommandError(output, context);\n }\n const data: any = await parseBody(output.body, context);\n let contents: any = {};\n contents = deserializeAws_json1_1ListIdentitiesResponse(data, context);\n const response: ListIdentitiesCommandOutput = {\n $metadata: deserializeMetadata(output),\n ...contents,\n };\n return Promise.resolve(response);\n};\n\nconst deserializeAws_json1_1ListIdentitiesCommandError = async (\n output: __HttpResponse,\n context: __SerdeContext\n): Promise => {\n const parsedOutput: any = {\n ...output,\n body: await parseBody(output.body, context),\n };\n let response: __SmithyException & __MetadataBearer & { [key: string]: any };\n let errorCode: string = \"UnknownError\";\n errorCode = loadRestJsonErrorCode(output, parsedOutput.body);\n switch (errorCode) {\n case \"InternalErrorException\":\n case \"com.amazonaws.cognitoidentity#InternalErrorException\":\n response = {\n ...(await deserializeAws_json1_1InternalErrorExceptionResponse(parsedOutput, context)),\n name: errorCode,\n $metadata: deserializeMetadata(output),\n };\n break;\n case \"InvalidParameterException\":\n case \"com.amazonaws.cognitoidentity#InvalidParameterException\":\n response = {\n ...(await deserializeAws_json1_1InvalidParameterExceptionResponse(parsedOutput, context)),\n name: errorCode,\n $metadata: deserializeMetadata(output),\n };\n break;\n case \"NotAuthorizedException\":\n case \"com.amazonaws.cognitoidentity#NotAuthorizedException\":\n response = {\n ...(await deserializeAws_json1_1NotAuthorizedExceptionResponse(parsedOutput, context)),\n name: errorCode,\n $metadata: deserializeMetadata(output),\n };\n break;\n case \"ResourceNotFoundException\":\n case \"com.amazonaws.cognitoidentity#ResourceNotFoundException\":\n response = {\n ...(await deserializeAws_json1_1ResourceNotFoundExceptionResponse(parsedOutput, context)),\n name: errorCode,\n $metadata: deserializeMetadata(output),\n };\n break;\n case \"TooManyRequestsException\":\n case \"com.amazonaws.cognitoidentity#TooManyRequestsException\":\n response = {\n ...(await deserializeAws_json1_1TooManyRequestsExceptionResponse(parsedOutput, context)),\n name: errorCode,\n $metadata: deserializeMetadata(output),\n };\n break;\n default:\n const parsedBody = parsedOutput.body;\n errorCode = parsedBody.code || parsedBody.Code || errorCode;\n response = {\n ...parsedBody,\n name: `${errorCode}`,\n message: parsedBody.message || parsedBody.Message || errorCode,\n $fault: \"client\",\n $metadata: deserializeMetadata(output),\n } as any;\n }\n const message = response.message || response.Message || errorCode;\n response.message = message;\n delete response.Message;\n return Promise.reject(Object.assign(new Error(message), response));\n};\n\nexport const deserializeAws_json1_1ListIdentityPoolsCommand = async (\n output: __HttpResponse,\n context: __SerdeContext\n): Promise => {\n if (output.statusCode >= 300) {\n return deserializeAws_json1_1ListIdentityPoolsCommandError(output, context);\n }\n const data: any = await parseBody(output.body, context);\n let contents: any = {};\n contents = deserializeAws_json1_1ListIdentityPoolsResponse(data, context);\n const response: ListIdentityPoolsCommandOutput = {\n $metadata: deserializeMetadata(output),\n ...contents,\n };\n return Promise.resolve(response);\n};\n\nconst deserializeAws_json1_1ListIdentityPoolsCommandError = async (\n output: __HttpResponse,\n context: __SerdeContext\n): Promise => {\n const parsedOutput: any = {\n ...output,\n body: await parseBody(output.body, context),\n };\n let response: __SmithyException & __MetadataBearer & { [key: string]: any };\n let errorCode: string = \"UnknownError\";\n errorCode = loadRestJsonErrorCode(output, parsedOutput.body);\n switch (errorCode) {\n case \"InternalErrorException\":\n case \"com.amazonaws.cognitoidentity#InternalErrorException\":\n response = {\n ...(await deserializeAws_json1_1InternalErrorExceptionResponse(parsedOutput, context)),\n name: errorCode,\n $metadata: deserializeMetadata(output),\n };\n break;\n case \"InvalidParameterException\":\n case \"com.amazonaws.cognitoidentity#InvalidParameterException\":\n response = {\n ...(await deserializeAws_json1_1InvalidParameterExceptionResponse(parsedOutput, context)),\n name: errorCode,\n $metadata: deserializeMetadata(output),\n };\n break;\n case \"NotAuthorizedException\":\n case \"com.amazonaws.cognitoidentity#NotAuthorizedException\":\n response = {\n ...(await deserializeAws_json1_1NotAuthorizedExceptionResponse(parsedOutput, context)),\n name: errorCode,\n $metadata: deserializeMetadata(output),\n };\n break;\n case \"ResourceNotFoundException\":\n case \"com.amazonaws.cognitoidentity#ResourceNotFoundException\":\n response = {\n ...(await deserializeAws_json1_1ResourceNotFoundExceptionResponse(parsedOutput, context)),\n name: errorCode,\n $metadata: deserializeMetadata(output),\n };\n break;\n case \"TooManyRequestsException\":\n case \"com.amazonaws.cognitoidentity#TooManyRequestsException\":\n response = {\n ...(await deserializeAws_json1_1TooManyRequestsExceptionResponse(parsedOutput, context)),\n name: errorCode,\n $metadata: deserializeMetadata(output),\n };\n break;\n default:\n const parsedBody = parsedOutput.body;\n errorCode = parsedBody.code || parsedBody.Code || errorCode;\n response = {\n ...parsedBody,\n name: `${errorCode}`,\n message: parsedBody.message || parsedBody.Message || errorCode,\n $fault: \"client\",\n $metadata: deserializeMetadata(output),\n } as any;\n }\n const message = response.message || response.Message || errorCode;\n response.message = message;\n delete response.Message;\n return Promise.reject(Object.assign(new Error(message), response));\n};\n\nexport const deserializeAws_json1_1ListTagsForResourceCommand = async (\n output: __HttpResponse,\n context: __SerdeContext\n): Promise => {\n if (output.statusCode >= 300) {\n return deserializeAws_json1_1ListTagsForResourceCommandError(output, context);\n }\n const data: any = await parseBody(output.body, context);\n let contents: any = {};\n contents = deserializeAws_json1_1ListTagsForResourceResponse(data, context);\n const response: ListTagsForResourceCommandOutput = {\n $metadata: deserializeMetadata(output),\n ...contents,\n };\n return Promise.resolve(response);\n};\n\nconst deserializeAws_json1_1ListTagsForResourceCommandError = async (\n output: __HttpResponse,\n context: __SerdeContext\n): Promise => {\n const parsedOutput: any = {\n ...output,\n body: await parseBody(output.body, context),\n };\n let response: __SmithyException & __MetadataBearer & { [key: string]: any };\n let errorCode: string = \"UnknownError\";\n errorCode = loadRestJsonErrorCode(output, parsedOutput.body);\n switch (errorCode) {\n case \"InternalErrorException\":\n case \"com.amazonaws.cognitoidentity#InternalErrorException\":\n response = {\n ...(await deserializeAws_json1_1InternalErrorExceptionResponse(parsedOutput, context)),\n name: errorCode,\n $metadata: deserializeMetadata(output),\n };\n break;\n case \"InvalidParameterException\":\n case \"com.amazonaws.cognitoidentity#InvalidParameterException\":\n response = {\n ...(await deserializeAws_json1_1InvalidParameterExceptionResponse(parsedOutput, context)),\n name: errorCode,\n $metadata: deserializeMetadata(output),\n };\n break;\n case \"NotAuthorizedException\":\n case \"com.amazonaws.cognitoidentity#NotAuthorizedException\":\n response = {\n ...(await deserializeAws_json1_1NotAuthorizedExceptionResponse(parsedOutput, context)),\n name: errorCode,\n $metadata: deserializeMetadata(output),\n };\n break;\n case \"ResourceNotFoundException\":\n case \"com.amazonaws.cognitoidentity#ResourceNotFoundException\":\n response = {\n ...(await deserializeAws_json1_1ResourceNotFoundExceptionResponse(parsedOutput, context)),\n name: errorCode,\n $metadata: deserializeMetadata(output),\n };\n break;\n case \"TooManyRequestsException\":\n case \"com.amazonaws.cognitoidentity#TooManyRequestsException\":\n response = {\n ...(await deserializeAws_json1_1TooManyRequestsExceptionResponse(parsedOutput, context)),\n name: errorCode,\n $metadata: deserializeMetadata(output),\n };\n break;\n default:\n const parsedBody = parsedOutput.body;\n errorCode = parsedBody.code || parsedBody.Code || errorCode;\n response = {\n ...parsedBody,\n name: `${errorCode}`,\n message: parsedBody.message || parsedBody.Message || errorCode,\n $fault: \"client\",\n $metadata: deserializeMetadata(output),\n } as any;\n }\n const message = response.message || response.Message || errorCode;\n response.message = message;\n delete response.Message;\n return Promise.reject(Object.assign(new Error(message), response));\n};\n\nexport const deserializeAws_json1_1LookupDeveloperIdentityCommand = async (\n output: __HttpResponse,\n context: __SerdeContext\n): Promise => {\n if (output.statusCode >= 300) {\n return deserializeAws_json1_1LookupDeveloperIdentityCommandError(output, context);\n }\n const data: any = await parseBody(output.body, context);\n let contents: any = {};\n contents = deserializeAws_json1_1LookupDeveloperIdentityResponse(data, context);\n const response: LookupDeveloperIdentityCommandOutput = {\n $metadata: deserializeMetadata(output),\n ...contents,\n };\n return Promise.resolve(response);\n};\n\nconst deserializeAws_json1_1LookupDeveloperIdentityCommandError = async (\n output: __HttpResponse,\n context: __SerdeContext\n): Promise => {\n const parsedOutput: any = {\n ...output,\n body: await parseBody(output.body, context),\n };\n let response: __SmithyException & __MetadataBearer & { [key: string]: any };\n let errorCode: string = \"UnknownError\";\n errorCode = loadRestJsonErrorCode(output, parsedOutput.body);\n switch (errorCode) {\n case \"InternalErrorException\":\n case \"com.amazonaws.cognitoidentity#InternalErrorException\":\n response = {\n ...(await deserializeAws_json1_1InternalErrorExceptionResponse(parsedOutput, context)),\n name: errorCode,\n $metadata: deserializeMetadata(output),\n };\n break;\n case \"InvalidParameterException\":\n case \"com.amazonaws.cognitoidentity#InvalidParameterException\":\n response = {\n ...(await deserializeAws_json1_1InvalidParameterExceptionResponse(parsedOutput, context)),\n name: errorCode,\n $metadata: deserializeMetadata(output),\n };\n break;\n case \"NotAuthorizedException\":\n case \"com.amazonaws.cognitoidentity#NotAuthorizedException\":\n response = {\n ...(await deserializeAws_json1_1NotAuthorizedExceptionResponse(parsedOutput, context)),\n name: errorCode,\n $metadata: deserializeMetadata(output),\n };\n break;\n case \"ResourceConflictException\":\n case \"com.amazonaws.cognitoidentity#ResourceConflictException\":\n response = {\n ...(await deserializeAws_json1_1ResourceConflictExceptionResponse(parsedOutput, context)),\n name: errorCode,\n $metadata: deserializeMetadata(output),\n };\n break;\n case \"ResourceNotFoundException\":\n case \"com.amazonaws.cognitoidentity#ResourceNotFoundException\":\n response = {\n ...(await deserializeAws_json1_1ResourceNotFoundExceptionResponse(parsedOutput, context)),\n name: errorCode,\n $metadata: deserializeMetadata(output),\n };\n break;\n case \"TooManyRequestsException\":\n case \"com.amazonaws.cognitoidentity#TooManyRequestsException\":\n response = {\n ...(await deserializeAws_json1_1TooManyRequestsExceptionResponse(parsedOutput, context)),\n name: errorCode,\n $metadata: deserializeMetadata(output),\n };\n break;\n default:\n const parsedBody = parsedOutput.body;\n errorCode = parsedBody.code || parsedBody.Code || errorCode;\n response = {\n ...parsedBody,\n name: `${errorCode}`,\n message: parsedBody.message || parsedBody.Message || errorCode,\n $fault: \"client\",\n $metadata: deserializeMetadata(output),\n } as any;\n }\n const message = response.message || response.Message || errorCode;\n response.message = message;\n delete response.Message;\n return Promise.reject(Object.assign(new Error(message), response));\n};\n\nexport const deserializeAws_json1_1MergeDeveloperIdentitiesCommand = async (\n output: __HttpResponse,\n context: __SerdeContext\n): Promise => {\n if (output.statusCode >= 300) {\n return deserializeAws_json1_1MergeDeveloperIdentitiesCommandError(output, context);\n }\n const data: any = await parseBody(output.body, context);\n let contents: any = {};\n contents = deserializeAws_json1_1MergeDeveloperIdentitiesResponse(data, context);\n const response: MergeDeveloperIdentitiesCommandOutput = {\n $metadata: deserializeMetadata(output),\n ...contents,\n };\n return Promise.resolve(response);\n};\n\nconst deserializeAws_json1_1MergeDeveloperIdentitiesCommandError = async (\n output: __HttpResponse,\n context: __SerdeContext\n): Promise => {\n const parsedOutput: any = {\n ...output,\n body: await parseBody(output.body, context),\n };\n let response: __SmithyException & __MetadataBearer & { [key: string]: any };\n let errorCode: string = \"UnknownError\";\n errorCode = loadRestJsonErrorCode(output, parsedOutput.body);\n switch (errorCode) {\n case \"InternalErrorException\":\n case \"com.amazonaws.cognitoidentity#InternalErrorException\":\n response = {\n ...(await deserializeAws_json1_1InternalErrorExceptionResponse(parsedOutput, context)),\n name: errorCode,\n $metadata: deserializeMetadata(output),\n };\n break;\n case \"InvalidParameterException\":\n case \"com.amazonaws.cognitoidentity#InvalidParameterException\":\n response = {\n ...(await deserializeAws_json1_1InvalidParameterExceptionResponse(parsedOutput, context)),\n name: errorCode,\n $metadata: deserializeMetadata(output),\n };\n break;\n case \"NotAuthorizedException\":\n case \"com.amazonaws.cognitoidentity#NotAuthorizedException\":\n response = {\n ...(await deserializeAws_json1_1NotAuthorizedExceptionResponse(parsedOutput, context)),\n name: errorCode,\n $metadata: deserializeMetadata(output),\n };\n break;\n case \"ResourceConflictException\":\n case \"com.amazonaws.cognitoidentity#ResourceConflictException\":\n response = {\n ...(await deserializeAws_json1_1ResourceConflictExceptionResponse(parsedOutput, context)),\n name: errorCode,\n $metadata: deserializeMetadata(output),\n };\n break;\n case \"ResourceNotFoundException\":\n case \"com.amazonaws.cognitoidentity#ResourceNotFoundException\":\n response = {\n ...(await deserializeAws_json1_1ResourceNotFoundExceptionResponse(parsedOutput, context)),\n name: errorCode,\n $metadata: deserializeMetadata(output),\n };\n break;\n case \"TooManyRequestsException\":\n case \"com.amazonaws.cognitoidentity#TooManyRequestsException\":\n response = {\n ...(await deserializeAws_json1_1TooManyRequestsExceptionResponse(parsedOutput, context)),\n name: errorCode,\n $metadata: deserializeMetadata(output),\n };\n break;\n default:\n const parsedBody = parsedOutput.body;\n errorCode = parsedBody.code || parsedBody.Code || errorCode;\n response = {\n ...parsedBody,\n name: `${errorCode}`,\n message: parsedBody.message || parsedBody.Message || errorCode,\n $fault: \"client\",\n $metadata: deserializeMetadata(output),\n } as any;\n }\n const message = response.message || response.Message || errorCode;\n response.message = message;\n delete response.Message;\n return Promise.reject(Object.assign(new Error(message), response));\n};\n\nexport const deserializeAws_json1_1SetIdentityPoolRolesCommand = async (\n output: __HttpResponse,\n context: __SerdeContext\n): Promise => {\n if (output.statusCode >= 300) {\n return deserializeAws_json1_1SetIdentityPoolRolesCommandError(output, context);\n }\n await collectBody(output.body, context);\n const response: SetIdentityPoolRolesCommandOutput = {\n $metadata: deserializeMetadata(output),\n };\n return Promise.resolve(response);\n};\n\nconst deserializeAws_json1_1SetIdentityPoolRolesCommandError = async (\n output: __HttpResponse,\n context: __SerdeContext\n): Promise => {\n const parsedOutput: any = {\n ...output,\n body: await parseBody(output.body, context),\n };\n let response: __SmithyException & __MetadataBearer & { [key: string]: any };\n let errorCode: string = \"UnknownError\";\n errorCode = loadRestJsonErrorCode(output, parsedOutput.body);\n switch (errorCode) {\n case \"ConcurrentModificationException\":\n case \"com.amazonaws.cognitoidentity#ConcurrentModificationException\":\n response = {\n ...(await deserializeAws_json1_1ConcurrentModificationExceptionResponse(parsedOutput, context)),\n name: errorCode,\n $metadata: deserializeMetadata(output),\n };\n break;\n case \"InternalErrorException\":\n case \"com.amazonaws.cognitoidentity#InternalErrorException\":\n response = {\n ...(await deserializeAws_json1_1InternalErrorExceptionResponse(parsedOutput, context)),\n name: errorCode,\n $metadata: deserializeMetadata(output),\n };\n break;\n case \"InvalidParameterException\":\n case \"com.amazonaws.cognitoidentity#InvalidParameterException\":\n response = {\n ...(await deserializeAws_json1_1InvalidParameterExceptionResponse(parsedOutput, context)),\n name: errorCode,\n $metadata: deserializeMetadata(output),\n };\n break;\n case \"NotAuthorizedException\":\n case \"com.amazonaws.cognitoidentity#NotAuthorizedException\":\n response = {\n ...(await deserializeAws_json1_1NotAuthorizedExceptionResponse(parsedOutput, context)),\n name: errorCode,\n $metadata: deserializeMetadata(output),\n };\n break;\n case \"ResourceConflictException\":\n case \"com.amazonaws.cognitoidentity#ResourceConflictException\":\n response = {\n ...(await deserializeAws_json1_1ResourceConflictExceptionResponse(parsedOutput, context)),\n name: errorCode,\n $metadata: deserializeMetadata(output),\n };\n break;\n case \"ResourceNotFoundException\":\n case \"com.amazonaws.cognitoidentity#ResourceNotFoundException\":\n response = {\n ...(await deserializeAws_json1_1ResourceNotFoundExceptionResponse(parsedOutput, context)),\n name: errorCode,\n $metadata: deserializeMetadata(output),\n };\n break;\n case \"TooManyRequestsException\":\n case \"com.amazonaws.cognitoidentity#TooManyRequestsException\":\n response = {\n ...(await deserializeAws_json1_1TooManyRequestsExceptionResponse(parsedOutput, context)),\n name: errorCode,\n $metadata: deserializeMetadata(output),\n };\n break;\n default:\n const parsedBody = parsedOutput.body;\n errorCode = parsedBody.code || parsedBody.Code || errorCode;\n response = {\n ...parsedBody,\n name: `${errorCode}`,\n message: parsedBody.message || parsedBody.Message || errorCode,\n $fault: \"client\",\n $metadata: deserializeMetadata(output),\n } as any;\n }\n const message = response.message || response.Message || errorCode;\n response.message = message;\n delete response.Message;\n return Promise.reject(Object.assign(new Error(message), response));\n};\n\nexport const deserializeAws_json1_1TagResourceCommand = async (\n output: __HttpResponse,\n context: __SerdeContext\n): Promise => {\n if (output.statusCode >= 300) {\n return deserializeAws_json1_1TagResourceCommandError(output, context);\n }\n const data: any = await parseBody(output.body, context);\n let contents: any = {};\n contents = deserializeAws_json1_1TagResourceResponse(data, context);\n const response: TagResourceCommandOutput = {\n $metadata: deserializeMetadata(output),\n ...contents,\n };\n return Promise.resolve(response);\n};\n\nconst deserializeAws_json1_1TagResourceCommandError = async (\n output: __HttpResponse,\n context: __SerdeContext\n): Promise => {\n const parsedOutput: any = {\n ...output,\n body: await parseBody(output.body, context),\n };\n let response: __SmithyException & __MetadataBearer & { [key: string]: any };\n let errorCode: string = \"UnknownError\";\n errorCode = loadRestJsonErrorCode(output, parsedOutput.body);\n switch (errorCode) {\n case \"InternalErrorException\":\n case \"com.amazonaws.cognitoidentity#InternalErrorException\":\n response = {\n ...(await deserializeAws_json1_1InternalErrorExceptionResponse(parsedOutput, context)),\n name: errorCode,\n $metadata: deserializeMetadata(output),\n };\n break;\n case \"InvalidParameterException\":\n case \"com.amazonaws.cognitoidentity#InvalidParameterException\":\n response = {\n ...(await deserializeAws_json1_1InvalidParameterExceptionResponse(parsedOutput, context)),\n name: errorCode,\n $metadata: deserializeMetadata(output),\n };\n break;\n case \"NotAuthorizedException\":\n case \"com.amazonaws.cognitoidentity#NotAuthorizedException\":\n response = {\n ...(await deserializeAws_json1_1NotAuthorizedExceptionResponse(parsedOutput, context)),\n name: errorCode,\n $metadata: deserializeMetadata(output),\n };\n break;\n case \"ResourceNotFoundException\":\n case \"com.amazonaws.cognitoidentity#ResourceNotFoundException\":\n response = {\n ...(await deserializeAws_json1_1ResourceNotFoundExceptionResponse(parsedOutput, context)),\n name: errorCode,\n $metadata: deserializeMetadata(output),\n };\n break;\n case \"TooManyRequestsException\":\n case \"com.amazonaws.cognitoidentity#TooManyRequestsException\":\n response = {\n ...(await deserializeAws_json1_1TooManyRequestsExceptionResponse(parsedOutput, context)),\n name: errorCode,\n $metadata: deserializeMetadata(output),\n };\n break;\n default:\n const parsedBody = parsedOutput.body;\n errorCode = parsedBody.code || parsedBody.Code || errorCode;\n response = {\n ...parsedBody,\n name: `${errorCode}`,\n message: parsedBody.message || parsedBody.Message || errorCode,\n $fault: \"client\",\n $metadata: deserializeMetadata(output),\n } as any;\n }\n const message = response.message || response.Message || errorCode;\n response.message = message;\n delete response.Message;\n return Promise.reject(Object.assign(new Error(message), response));\n};\n\nexport const deserializeAws_json1_1UnlinkDeveloperIdentityCommand = async (\n output: __HttpResponse,\n context: __SerdeContext\n): Promise => {\n if (output.statusCode >= 300) {\n return deserializeAws_json1_1UnlinkDeveloperIdentityCommandError(output, context);\n }\n await collectBody(output.body, context);\n const response: UnlinkDeveloperIdentityCommandOutput = {\n $metadata: deserializeMetadata(output),\n };\n return Promise.resolve(response);\n};\n\nconst deserializeAws_json1_1UnlinkDeveloperIdentityCommandError = async (\n output: __HttpResponse,\n context: __SerdeContext\n): Promise => {\n const parsedOutput: any = {\n ...output,\n body: await parseBody(output.body, context),\n };\n let response: __SmithyException & __MetadataBearer & { [key: string]: any };\n let errorCode: string = \"UnknownError\";\n errorCode = loadRestJsonErrorCode(output, parsedOutput.body);\n switch (errorCode) {\n case \"InternalErrorException\":\n case \"com.amazonaws.cognitoidentity#InternalErrorException\":\n response = {\n ...(await deserializeAws_json1_1InternalErrorExceptionResponse(parsedOutput, context)),\n name: errorCode,\n $metadata: deserializeMetadata(output),\n };\n break;\n case \"InvalidParameterException\":\n case \"com.amazonaws.cognitoidentity#InvalidParameterException\":\n response = {\n ...(await deserializeAws_json1_1InvalidParameterExceptionResponse(parsedOutput, context)),\n name: errorCode,\n $metadata: deserializeMetadata(output),\n };\n break;\n case \"NotAuthorizedException\":\n case \"com.amazonaws.cognitoidentity#NotAuthorizedException\":\n response = {\n ...(await deserializeAws_json1_1NotAuthorizedExceptionResponse(parsedOutput, context)),\n name: errorCode,\n $metadata: deserializeMetadata(output),\n };\n break;\n case \"ResourceConflictException\":\n case \"com.amazonaws.cognitoidentity#ResourceConflictException\":\n response = {\n ...(await deserializeAws_json1_1ResourceConflictExceptionResponse(parsedOutput, context)),\n name: errorCode,\n $metadata: deserializeMetadata(output),\n };\n break;\n case \"ResourceNotFoundException\":\n case \"com.amazonaws.cognitoidentity#ResourceNotFoundException\":\n response = {\n ...(await deserializeAws_json1_1ResourceNotFoundExceptionResponse(parsedOutput, context)),\n name: errorCode,\n $metadata: deserializeMetadata(output),\n };\n break;\n case \"TooManyRequestsException\":\n case \"com.amazonaws.cognitoidentity#TooManyRequestsException\":\n response = {\n ...(await deserializeAws_json1_1TooManyRequestsExceptionResponse(parsedOutput, context)),\n name: errorCode,\n $metadata: deserializeMetadata(output),\n };\n break;\n default:\n const parsedBody = parsedOutput.body;\n errorCode = parsedBody.code || parsedBody.Code || errorCode;\n response = {\n ...parsedBody,\n name: `${errorCode}`,\n message: parsedBody.message || parsedBody.Message || errorCode,\n $fault: \"client\",\n $metadata: deserializeMetadata(output),\n } as any;\n }\n const message = response.message || response.Message || errorCode;\n response.message = message;\n delete response.Message;\n return Promise.reject(Object.assign(new Error(message), response));\n};\n\nexport const deserializeAws_json1_1UnlinkIdentityCommand = async (\n output: __HttpResponse,\n context: __SerdeContext\n): Promise => {\n if (output.statusCode >= 300) {\n return deserializeAws_json1_1UnlinkIdentityCommandError(output, context);\n }\n await collectBody(output.body, context);\n const response: UnlinkIdentityCommandOutput = {\n $metadata: deserializeMetadata(output),\n };\n return Promise.resolve(response);\n};\n\nconst deserializeAws_json1_1UnlinkIdentityCommandError = async (\n output: __HttpResponse,\n context: __SerdeContext\n): Promise => {\n const parsedOutput: any = {\n ...output,\n body: await parseBody(output.body, context),\n };\n let response: __SmithyException & __MetadataBearer & { [key: string]: any };\n let errorCode: string = \"UnknownError\";\n errorCode = loadRestJsonErrorCode(output, parsedOutput.body);\n switch (errorCode) {\n case \"ExternalServiceException\":\n case \"com.amazonaws.cognitoidentity#ExternalServiceException\":\n response = {\n ...(await deserializeAws_json1_1ExternalServiceExceptionResponse(parsedOutput, context)),\n name: errorCode,\n $metadata: deserializeMetadata(output),\n };\n break;\n case \"InternalErrorException\":\n case \"com.amazonaws.cognitoidentity#InternalErrorException\":\n response = {\n ...(await deserializeAws_json1_1InternalErrorExceptionResponse(parsedOutput, context)),\n name: errorCode,\n $metadata: deserializeMetadata(output),\n };\n break;\n case \"InvalidParameterException\":\n case \"com.amazonaws.cognitoidentity#InvalidParameterException\":\n response = {\n ...(await deserializeAws_json1_1InvalidParameterExceptionResponse(parsedOutput, context)),\n name: errorCode,\n $metadata: deserializeMetadata(output),\n };\n break;\n case \"NotAuthorizedException\":\n case \"com.amazonaws.cognitoidentity#NotAuthorizedException\":\n response = {\n ...(await deserializeAws_json1_1NotAuthorizedExceptionResponse(parsedOutput, context)),\n name: errorCode,\n $metadata: deserializeMetadata(output),\n };\n break;\n case \"ResourceConflictException\":\n case \"com.amazonaws.cognitoidentity#ResourceConflictException\":\n response = {\n ...(await deserializeAws_json1_1ResourceConflictExceptionResponse(parsedOutput, context)),\n name: errorCode,\n $metadata: deserializeMetadata(output),\n };\n break;\n case \"ResourceNotFoundException\":\n case \"com.amazonaws.cognitoidentity#ResourceNotFoundException\":\n response = {\n ...(await deserializeAws_json1_1ResourceNotFoundExceptionResponse(parsedOutput, context)),\n name: errorCode,\n $metadata: deserializeMetadata(output),\n };\n break;\n case \"TooManyRequestsException\":\n case \"com.amazonaws.cognitoidentity#TooManyRequestsException\":\n response = {\n ...(await deserializeAws_json1_1TooManyRequestsExceptionResponse(parsedOutput, context)),\n name: errorCode,\n $metadata: deserializeMetadata(output),\n };\n break;\n default:\n const parsedBody = parsedOutput.body;\n errorCode = parsedBody.code || parsedBody.Code || errorCode;\n response = {\n ...parsedBody,\n name: `${errorCode}`,\n message: parsedBody.message || parsedBody.Message || errorCode,\n $fault: \"client\",\n $metadata: deserializeMetadata(output),\n } as any;\n }\n const message = response.message || response.Message || errorCode;\n response.message = message;\n delete response.Message;\n return Promise.reject(Object.assign(new Error(message), response));\n};\n\nexport const deserializeAws_json1_1UntagResourceCommand = async (\n output: __HttpResponse,\n context: __SerdeContext\n): Promise => {\n if (output.statusCode >= 300) {\n return deserializeAws_json1_1UntagResourceCommandError(output, context);\n }\n const data: any = await parseBody(output.body, context);\n let contents: any = {};\n contents = deserializeAws_json1_1UntagResourceResponse(data, context);\n const response: UntagResourceCommandOutput = {\n $metadata: deserializeMetadata(output),\n ...contents,\n };\n return Promise.resolve(response);\n};\n\nconst deserializeAws_json1_1UntagResourceCommandError = async (\n output: __HttpResponse,\n context: __SerdeContext\n): Promise => {\n const parsedOutput: any = {\n ...output,\n body: await parseBody(output.body, context),\n };\n let response: __SmithyException & __MetadataBearer & { [key: string]: any };\n let errorCode: string = \"UnknownError\";\n errorCode = loadRestJsonErrorCode(output, parsedOutput.body);\n switch (errorCode) {\n case \"InternalErrorException\":\n case \"com.amazonaws.cognitoidentity#InternalErrorException\":\n response = {\n ...(await deserializeAws_json1_1InternalErrorExceptionResponse(parsedOutput, context)),\n name: errorCode,\n $metadata: deserializeMetadata(output),\n };\n break;\n case \"InvalidParameterException\":\n case \"com.amazonaws.cognitoidentity#InvalidParameterException\":\n response = {\n ...(await deserializeAws_json1_1InvalidParameterExceptionResponse(parsedOutput, context)),\n name: errorCode,\n $metadata: deserializeMetadata(output),\n };\n break;\n case \"NotAuthorizedException\":\n case \"com.amazonaws.cognitoidentity#NotAuthorizedException\":\n response = {\n ...(await deserializeAws_json1_1NotAuthorizedExceptionResponse(parsedOutput, context)),\n name: errorCode,\n $metadata: deserializeMetadata(output),\n };\n break;\n case \"ResourceNotFoundException\":\n case \"com.amazonaws.cognitoidentity#ResourceNotFoundException\":\n response = {\n ...(await deserializeAws_json1_1ResourceNotFoundExceptionResponse(parsedOutput, context)),\n name: errorCode,\n $metadata: deserializeMetadata(output),\n };\n break;\n case \"TooManyRequestsException\":\n case \"com.amazonaws.cognitoidentity#TooManyRequestsException\":\n response = {\n ...(await deserializeAws_json1_1TooManyRequestsExceptionResponse(parsedOutput, context)),\n name: errorCode,\n $metadata: deserializeMetadata(output),\n };\n break;\n default:\n const parsedBody = parsedOutput.body;\n errorCode = parsedBody.code || parsedBody.Code || errorCode;\n response = {\n ...parsedBody,\n name: `${errorCode}`,\n message: parsedBody.message || parsedBody.Message || errorCode,\n $fault: \"client\",\n $metadata: deserializeMetadata(output),\n } as any;\n }\n const message = response.message || response.Message || errorCode;\n response.message = message;\n delete response.Message;\n return Promise.reject(Object.assign(new Error(message), response));\n};\n\nexport const deserializeAws_json1_1UpdateIdentityPoolCommand = async (\n output: __HttpResponse,\n context: __SerdeContext\n): Promise => {\n if (output.statusCode >= 300) {\n return deserializeAws_json1_1UpdateIdentityPoolCommandError(output, context);\n }\n const data: any = await parseBody(output.body, context);\n let contents: any = {};\n contents = deserializeAws_json1_1IdentityPool(data, context);\n const response: UpdateIdentityPoolCommandOutput = {\n $metadata: deserializeMetadata(output),\n ...contents,\n };\n return Promise.resolve(response);\n};\n\nconst deserializeAws_json1_1UpdateIdentityPoolCommandError = async (\n output: __HttpResponse,\n context: __SerdeContext\n): Promise => {\n const parsedOutput: any = {\n ...output,\n body: await parseBody(output.body, context),\n };\n let response: __SmithyException & __MetadataBearer & { [key: string]: any };\n let errorCode: string = \"UnknownError\";\n errorCode = loadRestJsonErrorCode(output, parsedOutput.body);\n switch (errorCode) {\n case \"ConcurrentModificationException\":\n case \"com.amazonaws.cognitoidentity#ConcurrentModificationException\":\n response = {\n ...(await deserializeAws_json1_1ConcurrentModificationExceptionResponse(parsedOutput, context)),\n name: errorCode,\n $metadata: deserializeMetadata(output),\n };\n break;\n case \"InternalErrorException\":\n case \"com.amazonaws.cognitoidentity#InternalErrorException\":\n response = {\n ...(await deserializeAws_json1_1InternalErrorExceptionResponse(parsedOutput, context)),\n name: errorCode,\n $metadata: deserializeMetadata(output),\n };\n break;\n case \"InvalidParameterException\":\n case \"com.amazonaws.cognitoidentity#InvalidParameterException\":\n response = {\n ...(await deserializeAws_json1_1InvalidParameterExceptionResponse(parsedOutput, context)),\n name: errorCode,\n $metadata: deserializeMetadata(output),\n };\n break;\n case \"LimitExceededException\":\n case \"com.amazonaws.cognitoidentity#LimitExceededException\":\n response = {\n ...(await deserializeAws_json1_1LimitExceededExceptionResponse(parsedOutput, context)),\n name: errorCode,\n $metadata: deserializeMetadata(output),\n };\n break;\n case \"NotAuthorizedException\":\n case \"com.amazonaws.cognitoidentity#NotAuthorizedException\":\n response = {\n ...(await deserializeAws_json1_1NotAuthorizedExceptionResponse(parsedOutput, context)),\n name: errorCode,\n $metadata: deserializeMetadata(output),\n };\n break;\n case \"ResourceConflictException\":\n case \"com.amazonaws.cognitoidentity#ResourceConflictException\":\n response = {\n ...(await deserializeAws_json1_1ResourceConflictExceptionResponse(parsedOutput, context)),\n name: errorCode,\n $metadata: deserializeMetadata(output),\n };\n break;\n case \"ResourceNotFoundException\":\n case \"com.amazonaws.cognitoidentity#ResourceNotFoundException\":\n response = {\n ...(await deserializeAws_json1_1ResourceNotFoundExceptionResponse(parsedOutput, context)),\n name: errorCode,\n $metadata: deserializeMetadata(output),\n };\n break;\n case \"TooManyRequestsException\":\n case \"com.amazonaws.cognitoidentity#TooManyRequestsException\":\n response = {\n ...(await deserializeAws_json1_1TooManyRequestsExceptionResponse(parsedOutput, context)),\n name: errorCode,\n $metadata: deserializeMetadata(output),\n };\n break;\n default:\n const parsedBody = parsedOutput.body;\n errorCode = parsedBody.code || parsedBody.Code || errorCode;\n response = {\n ...parsedBody,\n name: `${errorCode}`,\n message: parsedBody.message || parsedBody.Message || errorCode,\n $fault: \"client\",\n $metadata: deserializeMetadata(output),\n } as any;\n }\n const message = response.message || response.Message || errorCode;\n response.message = message;\n delete response.Message;\n return Promise.reject(Object.assign(new Error(message), response));\n};\n\nconst deserializeAws_json1_1ConcurrentModificationExceptionResponse = async (\n parsedOutput: any,\n context: __SerdeContext\n): Promise => {\n const body = parsedOutput.body;\n const deserialized: any = deserializeAws_json1_1ConcurrentModificationException(body, context);\n const contents: ConcurrentModificationException = {\n name: \"ConcurrentModificationException\",\n $fault: \"client\",\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized,\n };\n return contents;\n};\n\nconst deserializeAws_json1_1DeveloperUserAlreadyRegisteredExceptionResponse = async (\n parsedOutput: any,\n context: __SerdeContext\n): Promise => {\n const body = parsedOutput.body;\n const deserialized: any = deserializeAws_json1_1DeveloperUserAlreadyRegisteredException(body, context);\n const contents: DeveloperUserAlreadyRegisteredException = {\n name: \"DeveloperUserAlreadyRegisteredException\",\n $fault: \"client\",\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized,\n };\n return contents;\n};\n\nconst deserializeAws_json1_1ExternalServiceExceptionResponse = async (\n parsedOutput: any,\n context: __SerdeContext\n): Promise => {\n const body = parsedOutput.body;\n const deserialized: any = deserializeAws_json1_1ExternalServiceException(body, context);\n const contents: ExternalServiceException = {\n name: \"ExternalServiceException\",\n $fault: \"client\",\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized,\n };\n return contents;\n};\n\nconst deserializeAws_json1_1InternalErrorExceptionResponse = async (\n parsedOutput: any,\n context: __SerdeContext\n): Promise => {\n const body = parsedOutput.body;\n const deserialized: any = deserializeAws_json1_1InternalErrorException(body, context);\n const contents: InternalErrorException = {\n name: \"InternalErrorException\",\n $fault: \"server\",\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized,\n };\n return contents;\n};\n\nconst deserializeAws_json1_1InvalidIdentityPoolConfigurationExceptionResponse = async (\n parsedOutput: any,\n context: __SerdeContext\n): Promise => {\n const body = parsedOutput.body;\n const deserialized: any = deserializeAws_json1_1InvalidIdentityPoolConfigurationException(body, context);\n const contents: InvalidIdentityPoolConfigurationException = {\n name: \"InvalidIdentityPoolConfigurationException\",\n $fault: \"client\",\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized,\n };\n return contents;\n};\n\nconst deserializeAws_json1_1InvalidParameterExceptionResponse = async (\n parsedOutput: any,\n context: __SerdeContext\n): Promise => {\n const body = parsedOutput.body;\n const deserialized: any = deserializeAws_json1_1InvalidParameterException(body, context);\n const contents: InvalidParameterException = {\n name: \"InvalidParameterException\",\n $fault: \"client\",\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized,\n };\n return contents;\n};\n\nconst deserializeAws_json1_1LimitExceededExceptionResponse = async (\n parsedOutput: any,\n context: __SerdeContext\n): Promise => {\n const body = parsedOutput.body;\n const deserialized: any = deserializeAws_json1_1LimitExceededException(body, context);\n const contents: LimitExceededException = {\n name: \"LimitExceededException\",\n $fault: \"client\",\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized,\n };\n return contents;\n};\n\nconst deserializeAws_json1_1NotAuthorizedExceptionResponse = async (\n parsedOutput: any,\n context: __SerdeContext\n): Promise => {\n const body = parsedOutput.body;\n const deserialized: any = deserializeAws_json1_1NotAuthorizedException(body, context);\n const contents: NotAuthorizedException = {\n name: \"NotAuthorizedException\",\n $fault: \"client\",\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized,\n };\n return contents;\n};\n\nconst deserializeAws_json1_1ResourceConflictExceptionResponse = async (\n parsedOutput: any,\n context: __SerdeContext\n): Promise => {\n const body = parsedOutput.body;\n const deserialized: any = deserializeAws_json1_1ResourceConflictException(body, context);\n const contents: ResourceConflictException = {\n name: \"ResourceConflictException\",\n $fault: \"client\",\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized,\n };\n return contents;\n};\n\nconst deserializeAws_json1_1ResourceNotFoundExceptionResponse = async (\n parsedOutput: any,\n context: __SerdeContext\n): Promise => {\n const body = parsedOutput.body;\n const deserialized: any = deserializeAws_json1_1ResourceNotFoundException(body, context);\n const contents: ResourceNotFoundException = {\n name: \"ResourceNotFoundException\",\n $fault: \"client\",\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized,\n };\n return contents;\n};\n\nconst deserializeAws_json1_1TooManyRequestsExceptionResponse = async (\n parsedOutput: any,\n context: __SerdeContext\n): Promise => {\n const body = parsedOutput.body;\n const deserialized: any = deserializeAws_json1_1TooManyRequestsException(body, context);\n const contents: TooManyRequestsException = {\n name: \"TooManyRequestsException\",\n $fault: \"client\",\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized,\n };\n return contents;\n};\n\nconst serializeAws_json1_1CognitoIdentityProvider = (input: CognitoIdentityProvider, context: __SerdeContext): any => {\n return {\n ...(input.ClientId !== undefined && input.ClientId !== null && { ClientId: input.ClientId }),\n ...(input.ProviderName !== undefined && input.ProviderName !== null && { ProviderName: input.ProviderName }),\n ...(input.ServerSideTokenCheck !== undefined &&\n input.ServerSideTokenCheck !== null && { ServerSideTokenCheck: input.ServerSideTokenCheck }),\n };\n};\n\nconst serializeAws_json1_1CognitoIdentityProviderList = (\n input: CognitoIdentityProvider[],\n context: __SerdeContext\n): any => {\n return input\n .filter((e: any) => e != null)\n .map((entry) => {\n if (entry === null) {\n return null as any;\n }\n return serializeAws_json1_1CognitoIdentityProvider(entry, context);\n });\n};\n\nconst serializeAws_json1_1CreateIdentityPoolInput = (input: CreateIdentityPoolInput, context: __SerdeContext): any => {\n return {\n ...(input.AllowClassicFlow !== undefined &&\n input.AllowClassicFlow !== null && { AllowClassicFlow: input.AllowClassicFlow }),\n ...(input.AllowUnauthenticatedIdentities !== undefined &&\n input.AllowUnauthenticatedIdentities !== null && {\n AllowUnauthenticatedIdentities: input.AllowUnauthenticatedIdentities,\n }),\n ...(input.CognitoIdentityProviders !== undefined &&\n input.CognitoIdentityProviders !== null && {\n CognitoIdentityProviders: serializeAws_json1_1CognitoIdentityProviderList(\n input.CognitoIdentityProviders,\n context\n ),\n }),\n ...(input.DeveloperProviderName !== undefined &&\n input.DeveloperProviderName !== null && { DeveloperProviderName: input.DeveloperProviderName }),\n ...(input.IdentityPoolName !== undefined &&\n input.IdentityPoolName !== null && { IdentityPoolName: input.IdentityPoolName }),\n ...(input.IdentityPoolTags !== undefined &&\n input.IdentityPoolTags !== null && {\n IdentityPoolTags: serializeAws_json1_1IdentityPoolTagsType(input.IdentityPoolTags, context),\n }),\n ...(input.OpenIdConnectProviderARNs !== undefined &&\n input.OpenIdConnectProviderARNs !== null && {\n OpenIdConnectProviderARNs: serializeAws_json1_1OIDCProviderList(input.OpenIdConnectProviderARNs, context),\n }),\n ...(input.SamlProviderARNs !== undefined &&\n input.SamlProviderARNs !== null && {\n SamlProviderARNs: serializeAws_json1_1SAMLProviderList(input.SamlProviderARNs, context),\n }),\n ...(input.SupportedLoginProviders !== undefined &&\n input.SupportedLoginProviders !== null && {\n SupportedLoginProviders: serializeAws_json1_1IdentityProviders(input.SupportedLoginProviders, context),\n }),\n };\n};\n\nconst serializeAws_json1_1DeleteIdentitiesInput = (input: DeleteIdentitiesInput, context: __SerdeContext): any => {\n return {\n ...(input.IdentityIdsToDelete !== undefined &&\n input.IdentityIdsToDelete !== null && {\n IdentityIdsToDelete: serializeAws_json1_1IdentityIdList(input.IdentityIdsToDelete, context),\n }),\n };\n};\n\nconst serializeAws_json1_1DeleteIdentityPoolInput = (input: DeleteIdentityPoolInput, context: __SerdeContext): any => {\n return {\n ...(input.IdentityPoolId !== undefined &&\n input.IdentityPoolId !== null && { IdentityPoolId: input.IdentityPoolId }),\n };\n};\n\nconst serializeAws_json1_1DescribeIdentityInput = (input: DescribeIdentityInput, context: __SerdeContext): any => {\n return {\n ...(input.IdentityId !== undefined && input.IdentityId !== null && { IdentityId: input.IdentityId }),\n };\n};\n\nconst serializeAws_json1_1DescribeIdentityPoolInput = (\n input: DescribeIdentityPoolInput,\n context: __SerdeContext\n): any => {\n return {\n ...(input.IdentityPoolId !== undefined &&\n input.IdentityPoolId !== null && { IdentityPoolId: input.IdentityPoolId }),\n };\n};\n\nconst serializeAws_json1_1GetCredentialsForIdentityInput = (\n input: GetCredentialsForIdentityInput,\n context: __SerdeContext\n): any => {\n return {\n ...(input.CustomRoleArn !== undefined && input.CustomRoleArn !== null && { CustomRoleArn: input.CustomRoleArn }),\n ...(input.IdentityId !== undefined && input.IdentityId !== null && { IdentityId: input.IdentityId }),\n ...(input.Logins !== undefined &&\n input.Logins !== null && { Logins: serializeAws_json1_1LoginsMap(input.Logins, context) }),\n };\n};\n\nconst serializeAws_json1_1GetIdentityPoolRolesInput = (\n input: GetIdentityPoolRolesInput,\n context: __SerdeContext\n): any => {\n return {\n ...(input.IdentityPoolId !== undefined &&\n input.IdentityPoolId !== null && { IdentityPoolId: input.IdentityPoolId }),\n };\n};\n\nconst serializeAws_json1_1GetIdInput = (input: GetIdInput, context: __SerdeContext): any => {\n return {\n ...(input.AccountId !== undefined && input.AccountId !== null && { AccountId: input.AccountId }),\n ...(input.IdentityPoolId !== undefined &&\n input.IdentityPoolId !== null && { IdentityPoolId: input.IdentityPoolId }),\n ...(input.Logins !== undefined &&\n input.Logins !== null && { Logins: serializeAws_json1_1LoginsMap(input.Logins, context) }),\n };\n};\n\nconst serializeAws_json1_1GetOpenIdTokenForDeveloperIdentityInput = (\n input: GetOpenIdTokenForDeveloperIdentityInput,\n context: __SerdeContext\n): any => {\n return {\n ...(input.IdentityId !== undefined && input.IdentityId !== null && { IdentityId: input.IdentityId }),\n ...(input.IdentityPoolId !== undefined &&\n input.IdentityPoolId !== null && { IdentityPoolId: input.IdentityPoolId }),\n ...(input.Logins !== undefined &&\n input.Logins !== null && { Logins: serializeAws_json1_1LoginsMap(input.Logins, context) }),\n ...(input.TokenDuration !== undefined && input.TokenDuration !== null && { TokenDuration: input.TokenDuration }),\n };\n};\n\nconst serializeAws_json1_1GetOpenIdTokenInput = (input: GetOpenIdTokenInput, context: __SerdeContext): any => {\n return {\n ...(input.IdentityId !== undefined && input.IdentityId !== null && { IdentityId: input.IdentityId }),\n ...(input.Logins !== undefined &&\n input.Logins !== null && { Logins: serializeAws_json1_1LoginsMap(input.Logins, context) }),\n };\n};\n\nconst serializeAws_json1_1IdentityIdList = (input: string[], context: __SerdeContext): any => {\n return input\n .filter((e: any) => e != null)\n .map((entry) => {\n if (entry === null) {\n return null as any;\n }\n return entry;\n });\n};\n\nconst serializeAws_json1_1IdentityPool = (input: IdentityPool, context: __SerdeContext): any => {\n return {\n ...(input.AllowClassicFlow !== undefined &&\n input.AllowClassicFlow !== null && { AllowClassicFlow: input.AllowClassicFlow }),\n ...(input.AllowUnauthenticatedIdentities !== undefined &&\n input.AllowUnauthenticatedIdentities !== null && {\n AllowUnauthenticatedIdentities: input.AllowUnauthenticatedIdentities,\n }),\n ...(input.CognitoIdentityProviders !== undefined &&\n input.CognitoIdentityProviders !== null && {\n CognitoIdentityProviders: serializeAws_json1_1CognitoIdentityProviderList(\n input.CognitoIdentityProviders,\n context\n ),\n }),\n ...(input.DeveloperProviderName !== undefined &&\n input.DeveloperProviderName !== null && { DeveloperProviderName: input.DeveloperProviderName }),\n ...(input.IdentityPoolId !== undefined &&\n input.IdentityPoolId !== null && { IdentityPoolId: input.IdentityPoolId }),\n ...(input.IdentityPoolName !== undefined &&\n input.IdentityPoolName !== null && { IdentityPoolName: input.IdentityPoolName }),\n ...(input.IdentityPoolTags !== undefined &&\n input.IdentityPoolTags !== null && {\n IdentityPoolTags: serializeAws_json1_1IdentityPoolTagsType(input.IdentityPoolTags, context),\n }),\n ...(input.OpenIdConnectProviderARNs !== undefined &&\n input.OpenIdConnectProviderARNs !== null && {\n OpenIdConnectProviderARNs: serializeAws_json1_1OIDCProviderList(input.OpenIdConnectProviderARNs, context),\n }),\n ...(input.SamlProviderARNs !== undefined &&\n input.SamlProviderARNs !== null && {\n SamlProviderARNs: serializeAws_json1_1SAMLProviderList(input.SamlProviderARNs, context),\n }),\n ...(input.SupportedLoginProviders !== undefined &&\n input.SupportedLoginProviders !== null && {\n SupportedLoginProviders: serializeAws_json1_1IdentityProviders(input.SupportedLoginProviders, context),\n }),\n };\n};\n\nconst serializeAws_json1_1IdentityPoolTagsListType = (input: string[], context: __SerdeContext): any => {\n return input\n .filter((e: any) => e != null)\n .map((entry) => {\n if (entry === null) {\n return null as any;\n }\n return entry;\n });\n};\n\nconst serializeAws_json1_1IdentityPoolTagsType = (input: { [key: string]: string }, context: __SerdeContext): any => {\n return Object.entries(input).reduce((acc: { [key: string]: string }, [key, value]: [string, any]) => {\n if (value === null) {\n return acc;\n }\n return {\n ...acc,\n [key]: value,\n };\n }, {});\n};\n\nconst serializeAws_json1_1IdentityProviders = (input: { [key: string]: string }, context: __SerdeContext): any => {\n return Object.entries(input).reduce((acc: { [key: string]: string }, [key, value]: [string, any]) => {\n if (value === null) {\n return acc;\n }\n return {\n ...acc,\n [key]: value,\n };\n }, {});\n};\n\nconst serializeAws_json1_1ListIdentitiesInput = (input: ListIdentitiesInput, context: __SerdeContext): any => {\n return {\n ...(input.HideDisabled !== undefined && input.HideDisabled !== null && { HideDisabled: input.HideDisabled }),\n ...(input.IdentityPoolId !== undefined &&\n input.IdentityPoolId !== null && { IdentityPoolId: input.IdentityPoolId }),\n ...(input.MaxResults !== undefined && input.MaxResults !== null && { MaxResults: input.MaxResults }),\n ...(input.NextToken !== undefined && input.NextToken !== null && { NextToken: input.NextToken }),\n };\n};\n\nconst serializeAws_json1_1ListIdentityPoolsInput = (input: ListIdentityPoolsInput, context: __SerdeContext): any => {\n return {\n ...(input.MaxResults !== undefined && input.MaxResults !== null && { MaxResults: input.MaxResults }),\n ...(input.NextToken !== undefined && input.NextToken !== null && { NextToken: input.NextToken }),\n };\n};\n\nconst serializeAws_json1_1ListTagsForResourceInput = (\n input: ListTagsForResourceInput,\n context: __SerdeContext\n): any => {\n return {\n ...(input.ResourceArn !== undefined && input.ResourceArn !== null && { ResourceArn: input.ResourceArn }),\n };\n};\n\nconst serializeAws_json1_1LoginsList = (input: string[], context: __SerdeContext): any => {\n return input\n .filter((e: any) => e != null)\n .map((entry) => {\n if (entry === null) {\n return null as any;\n }\n return entry;\n });\n};\n\nconst serializeAws_json1_1LoginsMap = (input: { [key: string]: string }, context: __SerdeContext): any => {\n return Object.entries(input).reduce((acc: { [key: string]: string }, [key, value]: [string, any]) => {\n if (value === null) {\n return acc;\n }\n return {\n ...acc,\n [key]: value,\n };\n }, {});\n};\n\nconst serializeAws_json1_1LookupDeveloperIdentityInput = (\n input: LookupDeveloperIdentityInput,\n context: __SerdeContext\n): any => {\n return {\n ...(input.DeveloperUserIdentifier !== undefined &&\n input.DeveloperUserIdentifier !== null && { DeveloperUserIdentifier: input.DeveloperUserIdentifier }),\n ...(input.IdentityId !== undefined && input.IdentityId !== null && { IdentityId: input.IdentityId }),\n ...(input.IdentityPoolId !== undefined &&\n input.IdentityPoolId !== null && { IdentityPoolId: input.IdentityPoolId }),\n ...(input.MaxResults !== undefined && input.MaxResults !== null && { MaxResults: input.MaxResults }),\n ...(input.NextToken !== undefined && input.NextToken !== null && { NextToken: input.NextToken }),\n };\n};\n\nconst serializeAws_json1_1MappingRule = (input: MappingRule, context: __SerdeContext): any => {\n return {\n ...(input.Claim !== undefined && input.Claim !== null && { Claim: input.Claim }),\n ...(input.MatchType !== undefined && input.MatchType !== null && { MatchType: input.MatchType }),\n ...(input.RoleARN !== undefined && input.RoleARN !== null && { RoleARN: input.RoleARN }),\n ...(input.Value !== undefined && input.Value !== null && { Value: input.Value }),\n };\n};\n\nconst serializeAws_json1_1MappingRulesList = (input: MappingRule[], context: __SerdeContext): any => {\n return input\n .filter((e: any) => e != null)\n .map((entry) => {\n if (entry === null) {\n return null as any;\n }\n return serializeAws_json1_1MappingRule(entry, context);\n });\n};\n\nconst serializeAws_json1_1MergeDeveloperIdentitiesInput = (\n input: MergeDeveloperIdentitiesInput,\n context: __SerdeContext\n): any => {\n return {\n ...(input.DestinationUserIdentifier !== undefined &&\n input.DestinationUserIdentifier !== null && { DestinationUserIdentifier: input.DestinationUserIdentifier }),\n ...(input.DeveloperProviderName !== undefined &&\n input.DeveloperProviderName !== null && { DeveloperProviderName: input.DeveloperProviderName }),\n ...(input.IdentityPoolId !== undefined &&\n input.IdentityPoolId !== null && { IdentityPoolId: input.IdentityPoolId }),\n ...(input.SourceUserIdentifier !== undefined &&\n input.SourceUserIdentifier !== null && { SourceUserIdentifier: input.SourceUserIdentifier }),\n };\n};\n\nconst serializeAws_json1_1OIDCProviderList = (input: string[], context: __SerdeContext): any => {\n return input\n .filter((e: any) => e != null)\n .map((entry) => {\n if (entry === null) {\n return null as any;\n }\n return entry;\n });\n};\n\nconst serializeAws_json1_1RoleMapping = (input: RoleMapping, context: __SerdeContext): any => {\n return {\n ...(input.AmbiguousRoleResolution !== undefined &&\n input.AmbiguousRoleResolution !== null && { AmbiguousRoleResolution: input.AmbiguousRoleResolution }),\n ...(input.RulesConfiguration !== undefined &&\n input.RulesConfiguration !== null && {\n RulesConfiguration: serializeAws_json1_1RulesConfigurationType(input.RulesConfiguration, context),\n }),\n ...(input.Type !== undefined && input.Type !== null && { Type: input.Type }),\n };\n};\n\nconst serializeAws_json1_1RoleMappingMap = (input: { [key: string]: RoleMapping }, context: __SerdeContext): any => {\n return Object.entries(input).reduce((acc: { [key: string]: RoleMapping }, [key, value]: [string, any]) => {\n if (value === null) {\n return acc;\n }\n return {\n ...acc,\n [key]: serializeAws_json1_1RoleMapping(value, context),\n };\n }, {});\n};\n\nconst serializeAws_json1_1RolesMap = (input: { [key: string]: string }, context: __SerdeContext): any => {\n return Object.entries(input).reduce((acc: { [key: string]: string }, [key, value]: [string, any]) => {\n if (value === null) {\n return acc;\n }\n return {\n ...acc,\n [key]: value,\n };\n }, {});\n};\n\nconst serializeAws_json1_1RulesConfigurationType = (input: RulesConfigurationType, context: __SerdeContext): any => {\n return {\n ...(input.Rules !== undefined &&\n input.Rules !== null && { Rules: serializeAws_json1_1MappingRulesList(input.Rules, context) }),\n };\n};\n\nconst serializeAws_json1_1SAMLProviderList = (input: string[], context: __SerdeContext): any => {\n return input\n .filter((e: any) => e != null)\n .map((entry) => {\n if (entry === null) {\n return null as any;\n }\n return entry;\n });\n};\n\nconst serializeAws_json1_1SetIdentityPoolRolesInput = (\n input: SetIdentityPoolRolesInput,\n context: __SerdeContext\n): any => {\n return {\n ...(input.IdentityPoolId !== undefined &&\n input.IdentityPoolId !== null && { IdentityPoolId: input.IdentityPoolId }),\n ...(input.RoleMappings !== undefined &&\n input.RoleMappings !== null && { RoleMappings: serializeAws_json1_1RoleMappingMap(input.RoleMappings, context) }),\n ...(input.Roles !== undefined &&\n input.Roles !== null && { Roles: serializeAws_json1_1RolesMap(input.Roles, context) }),\n };\n};\n\nconst serializeAws_json1_1TagResourceInput = (input: TagResourceInput, context: __SerdeContext): any => {\n return {\n ...(input.ResourceArn !== undefined && input.ResourceArn !== null && { ResourceArn: input.ResourceArn }),\n ...(input.Tags !== undefined &&\n input.Tags !== null && { Tags: serializeAws_json1_1IdentityPoolTagsType(input.Tags, context) }),\n };\n};\n\nconst serializeAws_json1_1UnlinkDeveloperIdentityInput = (\n input: UnlinkDeveloperIdentityInput,\n context: __SerdeContext\n): any => {\n return {\n ...(input.DeveloperProviderName !== undefined &&\n input.DeveloperProviderName !== null && { DeveloperProviderName: input.DeveloperProviderName }),\n ...(input.DeveloperUserIdentifier !== undefined &&\n input.DeveloperUserIdentifier !== null && { DeveloperUserIdentifier: input.DeveloperUserIdentifier }),\n ...(input.IdentityId !== undefined && input.IdentityId !== null && { IdentityId: input.IdentityId }),\n ...(input.IdentityPoolId !== undefined &&\n input.IdentityPoolId !== null && { IdentityPoolId: input.IdentityPoolId }),\n };\n};\n\nconst serializeAws_json1_1UnlinkIdentityInput = (input: UnlinkIdentityInput, context: __SerdeContext): any => {\n return {\n ...(input.IdentityId !== undefined && input.IdentityId !== null && { IdentityId: input.IdentityId }),\n ...(input.Logins !== undefined &&\n input.Logins !== null && { Logins: serializeAws_json1_1LoginsMap(input.Logins, context) }),\n ...(input.LoginsToRemove !== undefined &&\n input.LoginsToRemove !== null && {\n LoginsToRemove: serializeAws_json1_1LoginsList(input.LoginsToRemove, context),\n }),\n };\n};\n\nconst serializeAws_json1_1UntagResourceInput = (input: UntagResourceInput, context: __SerdeContext): any => {\n return {\n ...(input.ResourceArn !== undefined && input.ResourceArn !== null && { ResourceArn: input.ResourceArn }),\n ...(input.TagKeys !== undefined &&\n input.TagKeys !== null && { TagKeys: serializeAws_json1_1IdentityPoolTagsListType(input.TagKeys, context) }),\n };\n};\n\nconst deserializeAws_json1_1CognitoIdentityProvider = (\n output: any,\n context: __SerdeContext\n): CognitoIdentityProvider => {\n return {\n ClientId: output.ClientId !== undefined && output.ClientId !== null ? output.ClientId : undefined,\n ProviderName: output.ProviderName !== undefined && output.ProviderName !== null ? output.ProviderName : undefined,\n ServerSideTokenCheck:\n output.ServerSideTokenCheck !== undefined && output.ServerSideTokenCheck !== null\n ? output.ServerSideTokenCheck\n : undefined,\n } as any;\n};\n\nconst deserializeAws_json1_1CognitoIdentityProviderList = (\n output: any,\n context: __SerdeContext\n): CognitoIdentityProvider[] => {\n return (output || [])\n .filter((e: any) => e != null)\n .map((entry: any) => {\n if (entry === null) {\n return null as any;\n }\n return deserializeAws_json1_1CognitoIdentityProvider(entry, context);\n });\n};\n\nconst deserializeAws_json1_1ConcurrentModificationException = (\n output: any,\n context: __SerdeContext\n): ConcurrentModificationException => {\n return {\n message: output.message !== undefined && output.message !== null ? output.message : undefined,\n } as any;\n};\n\nconst deserializeAws_json1_1Credentials = (output: any, context: __SerdeContext): Credentials => {\n return {\n AccessKeyId: output.AccessKeyId !== undefined && output.AccessKeyId !== null ? output.AccessKeyId : undefined,\n Expiration:\n output.Expiration !== undefined && output.Expiration !== null\n ? new Date(Math.round(output.Expiration * 1000))\n : undefined,\n SecretKey: output.SecretKey !== undefined && output.SecretKey !== null ? output.SecretKey : undefined,\n SessionToken: output.SessionToken !== undefined && output.SessionToken !== null ? output.SessionToken : undefined,\n } as any;\n};\n\nconst deserializeAws_json1_1DeleteIdentitiesResponse = (\n output: any,\n context: __SerdeContext\n): DeleteIdentitiesResponse => {\n return {\n UnprocessedIdentityIds:\n output.UnprocessedIdentityIds !== undefined && output.UnprocessedIdentityIds !== null\n ? deserializeAws_json1_1UnprocessedIdentityIdList(output.UnprocessedIdentityIds, context)\n : undefined,\n } as any;\n};\n\nconst deserializeAws_json1_1DeveloperUserAlreadyRegisteredException = (\n output: any,\n context: __SerdeContext\n): DeveloperUserAlreadyRegisteredException => {\n return {\n message: output.message !== undefined && output.message !== null ? output.message : undefined,\n } as any;\n};\n\nconst deserializeAws_json1_1DeveloperUserIdentifierList = (output: any, context: __SerdeContext): string[] => {\n return (output || [])\n .filter((e: any) => e != null)\n .map((entry: any) => {\n if (entry === null) {\n return null as any;\n }\n return entry;\n });\n};\n\nconst deserializeAws_json1_1ExternalServiceException = (\n output: any,\n context: __SerdeContext\n): ExternalServiceException => {\n return {\n message: output.message !== undefined && output.message !== null ? output.message : undefined,\n } as any;\n};\n\nconst deserializeAws_json1_1GetCredentialsForIdentityResponse = (\n output: any,\n context: __SerdeContext\n): GetCredentialsForIdentityResponse => {\n return {\n Credentials:\n output.Credentials !== undefined && output.Credentials !== null\n ? deserializeAws_json1_1Credentials(output.Credentials, context)\n : undefined,\n IdentityId: output.IdentityId !== undefined && output.IdentityId !== null ? output.IdentityId : undefined,\n } as any;\n};\n\nconst deserializeAws_json1_1GetIdentityPoolRolesResponse = (\n output: any,\n context: __SerdeContext\n): GetIdentityPoolRolesResponse => {\n return {\n IdentityPoolId:\n output.IdentityPoolId !== undefined && output.IdentityPoolId !== null ? output.IdentityPoolId : undefined,\n RoleMappings:\n output.RoleMappings !== undefined && output.RoleMappings !== null\n ? deserializeAws_json1_1RoleMappingMap(output.RoleMappings, context)\n : undefined,\n Roles:\n output.Roles !== undefined && output.Roles !== null\n ? deserializeAws_json1_1RolesMap(output.Roles, context)\n : undefined,\n } as any;\n};\n\nconst deserializeAws_json1_1GetIdResponse = (output: any, context: __SerdeContext): GetIdResponse => {\n return {\n IdentityId: output.IdentityId !== undefined && output.IdentityId !== null ? output.IdentityId : undefined,\n } as any;\n};\n\nconst deserializeAws_json1_1GetOpenIdTokenForDeveloperIdentityResponse = (\n output: any,\n context: __SerdeContext\n): GetOpenIdTokenForDeveloperIdentityResponse => {\n return {\n IdentityId: output.IdentityId !== undefined && output.IdentityId !== null ? output.IdentityId : undefined,\n Token: output.Token !== undefined && output.Token !== null ? output.Token : undefined,\n } as any;\n};\n\nconst deserializeAws_json1_1GetOpenIdTokenResponse = (output: any, context: __SerdeContext): GetOpenIdTokenResponse => {\n return {\n IdentityId: output.IdentityId !== undefined && output.IdentityId !== null ? output.IdentityId : undefined,\n Token: output.Token !== undefined && output.Token !== null ? output.Token : undefined,\n } as any;\n};\n\nconst deserializeAws_json1_1IdentitiesList = (output: any, context: __SerdeContext): IdentityDescription[] => {\n return (output || [])\n .filter((e: any) => e != null)\n .map((entry: any) => {\n if (entry === null) {\n return null as any;\n }\n return deserializeAws_json1_1IdentityDescription(entry, context);\n });\n};\n\nconst deserializeAws_json1_1IdentityDescription = (output: any, context: __SerdeContext): IdentityDescription => {\n return {\n CreationDate:\n output.CreationDate !== undefined && output.CreationDate !== null\n ? new Date(Math.round(output.CreationDate * 1000))\n : undefined,\n IdentityId: output.IdentityId !== undefined && output.IdentityId !== null ? output.IdentityId : undefined,\n LastModifiedDate:\n output.LastModifiedDate !== undefined && output.LastModifiedDate !== null\n ? new Date(Math.round(output.LastModifiedDate * 1000))\n : undefined,\n Logins:\n output.Logins !== undefined && output.Logins !== null\n ? deserializeAws_json1_1LoginsList(output.Logins, context)\n : undefined,\n } as any;\n};\n\nconst deserializeAws_json1_1IdentityPool = (output: any, context: __SerdeContext): IdentityPool => {\n return {\n AllowClassicFlow:\n output.AllowClassicFlow !== undefined && output.AllowClassicFlow !== null ? output.AllowClassicFlow : undefined,\n AllowUnauthenticatedIdentities:\n output.AllowUnauthenticatedIdentities !== undefined && output.AllowUnauthenticatedIdentities !== null\n ? output.AllowUnauthenticatedIdentities\n : undefined,\n CognitoIdentityProviders:\n output.CognitoIdentityProviders !== undefined && output.CognitoIdentityProviders !== null\n ? deserializeAws_json1_1CognitoIdentityProviderList(output.CognitoIdentityProviders, context)\n : undefined,\n DeveloperProviderName:\n output.DeveloperProviderName !== undefined && output.DeveloperProviderName !== null\n ? output.DeveloperProviderName\n : undefined,\n IdentityPoolId:\n output.IdentityPoolId !== undefined && output.IdentityPoolId !== null ? output.IdentityPoolId : undefined,\n IdentityPoolName:\n output.IdentityPoolName !== undefined && output.IdentityPoolName !== null ? output.IdentityPoolName : undefined,\n IdentityPoolTags:\n output.IdentityPoolTags !== undefined && output.IdentityPoolTags !== null\n ? deserializeAws_json1_1IdentityPoolTagsType(output.IdentityPoolTags, context)\n : undefined,\n OpenIdConnectProviderARNs:\n output.OpenIdConnectProviderARNs !== undefined && output.OpenIdConnectProviderARNs !== null\n ? deserializeAws_json1_1OIDCProviderList(output.OpenIdConnectProviderARNs, context)\n : undefined,\n SamlProviderARNs:\n output.SamlProviderARNs !== undefined && output.SamlProviderARNs !== null\n ? deserializeAws_json1_1SAMLProviderList(output.SamlProviderARNs, context)\n : undefined,\n SupportedLoginProviders:\n output.SupportedLoginProviders !== undefined && output.SupportedLoginProviders !== null\n ? deserializeAws_json1_1IdentityProviders(output.SupportedLoginProviders, context)\n : undefined,\n } as any;\n};\n\nconst deserializeAws_json1_1IdentityPoolShortDescription = (\n output: any,\n context: __SerdeContext\n): IdentityPoolShortDescription => {\n return {\n IdentityPoolId:\n output.IdentityPoolId !== undefined && output.IdentityPoolId !== null ? output.IdentityPoolId : undefined,\n IdentityPoolName:\n output.IdentityPoolName !== undefined && output.IdentityPoolName !== null ? output.IdentityPoolName : undefined,\n } as any;\n};\n\nconst deserializeAws_json1_1IdentityPoolsList = (\n output: any,\n context: __SerdeContext\n): IdentityPoolShortDescription[] => {\n return (output || [])\n .filter((e: any) => e != null)\n .map((entry: any) => {\n if (entry === null) {\n return null as any;\n }\n return deserializeAws_json1_1IdentityPoolShortDescription(entry, context);\n });\n};\n\nconst deserializeAws_json1_1IdentityPoolTagsType = (\n output: any,\n context: __SerdeContext\n): { [key: string]: string } => {\n return Object.entries(output).reduce((acc: { [key: string]: string }, [key, value]: [string, any]) => {\n if (value === null) {\n return acc;\n }\n return {\n ...acc,\n [key]: value,\n };\n }, {});\n};\n\nconst deserializeAws_json1_1IdentityProviders = (output: any, context: __SerdeContext): { [key: string]: string } => {\n return Object.entries(output).reduce((acc: { [key: string]: string }, [key, value]: [string, any]) => {\n if (value === null) {\n return acc;\n }\n return {\n ...acc,\n [key]: value,\n };\n }, {});\n};\n\nconst deserializeAws_json1_1InternalErrorException = (output: any, context: __SerdeContext): InternalErrorException => {\n return {\n message: output.message !== undefined && output.message !== null ? output.message : undefined,\n } as any;\n};\n\nconst deserializeAws_json1_1InvalidIdentityPoolConfigurationException = (\n output: any,\n context: __SerdeContext\n): InvalidIdentityPoolConfigurationException => {\n return {\n message: output.message !== undefined && output.message !== null ? output.message : undefined,\n } as any;\n};\n\nconst deserializeAws_json1_1InvalidParameterException = (\n output: any,\n context: __SerdeContext\n): InvalidParameterException => {\n return {\n message: output.message !== undefined && output.message !== null ? output.message : undefined,\n } as any;\n};\n\nconst deserializeAws_json1_1LimitExceededException = (output: any, context: __SerdeContext): LimitExceededException => {\n return {\n message: output.message !== undefined && output.message !== null ? output.message : undefined,\n } as any;\n};\n\nconst deserializeAws_json1_1ListIdentitiesResponse = (output: any, context: __SerdeContext): ListIdentitiesResponse => {\n return {\n Identities:\n output.Identities !== undefined && output.Identities !== null\n ? deserializeAws_json1_1IdentitiesList(output.Identities, context)\n : undefined,\n IdentityPoolId:\n output.IdentityPoolId !== undefined && output.IdentityPoolId !== null ? output.IdentityPoolId : undefined,\n NextToken: output.NextToken !== undefined && output.NextToken !== null ? output.NextToken : undefined,\n } as any;\n};\n\nconst deserializeAws_json1_1ListIdentityPoolsResponse = (\n output: any,\n context: __SerdeContext\n): ListIdentityPoolsResponse => {\n return {\n IdentityPools:\n output.IdentityPools !== undefined && output.IdentityPools !== null\n ? deserializeAws_json1_1IdentityPoolsList(output.IdentityPools, context)\n : undefined,\n NextToken: output.NextToken !== undefined && output.NextToken !== null ? output.NextToken : undefined,\n } as any;\n};\n\nconst deserializeAws_json1_1ListTagsForResourceResponse = (\n output: any,\n context: __SerdeContext\n): ListTagsForResourceResponse => {\n return {\n Tags:\n output.Tags !== undefined && output.Tags !== null\n ? deserializeAws_json1_1IdentityPoolTagsType(output.Tags, context)\n : undefined,\n } as any;\n};\n\nconst deserializeAws_json1_1LoginsList = (output: any, context: __SerdeContext): string[] => {\n return (output || [])\n .filter((e: any) => e != null)\n .map((entry: any) => {\n if (entry === null) {\n return null as any;\n }\n return entry;\n });\n};\n\nconst deserializeAws_json1_1LookupDeveloperIdentityResponse = (\n output: any,\n context: __SerdeContext\n): LookupDeveloperIdentityResponse => {\n return {\n DeveloperUserIdentifierList:\n output.DeveloperUserIdentifierList !== undefined && output.DeveloperUserIdentifierList !== null\n ? deserializeAws_json1_1DeveloperUserIdentifierList(output.DeveloperUserIdentifierList, context)\n : undefined,\n IdentityId: output.IdentityId !== undefined && output.IdentityId !== null ? output.IdentityId : undefined,\n NextToken: output.NextToken !== undefined && output.NextToken !== null ? output.NextToken : undefined,\n } as any;\n};\n\nconst deserializeAws_json1_1MappingRule = (output: any, context: __SerdeContext): MappingRule => {\n return {\n Claim: output.Claim !== undefined && output.Claim !== null ? output.Claim : undefined,\n MatchType: output.MatchType !== undefined && output.MatchType !== null ? output.MatchType : undefined,\n RoleARN: output.RoleARN !== undefined && output.RoleARN !== null ? output.RoleARN : undefined,\n Value: output.Value !== undefined && output.Value !== null ? output.Value : undefined,\n } as any;\n};\n\nconst deserializeAws_json1_1MappingRulesList = (output: any, context: __SerdeContext): MappingRule[] => {\n return (output || [])\n .filter((e: any) => e != null)\n .map((entry: any) => {\n if (entry === null) {\n return null as any;\n }\n return deserializeAws_json1_1MappingRule(entry, context);\n });\n};\n\nconst deserializeAws_json1_1MergeDeveloperIdentitiesResponse = (\n output: any,\n context: __SerdeContext\n): MergeDeveloperIdentitiesResponse => {\n return {\n IdentityId: output.IdentityId !== undefined && output.IdentityId !== null ? output.IdentityId : undefined,\n } as any;\n};\n\nconst deserializeAws_json1_1NotAuthorizedException = (output: any, context: __SerdeContext): NotAuthorizedException => {\n return {\n message: output.message !== undefined && output.message !== null ? output.message : undefined,\n } as any;\n};\n\nconst deserializeAws_json1_1OIDCProviderList = (output: any, context: __SerdeContext): string[] => {\n return (output || [])\n .filter((e: any) => e != null)\n .map((entry: any) => {\n if (entry === null) {\n return null as any;\n }\n return entry;\n });\n};\n\nconst deserializeAws_json1_1ResourceConflictException = (\n output: any,\n context: __SerdeContext\n): ResourceConflictException => {\n return {\n message: output.message !== undefined && output.message !== null ? output.message : undefined,\n } as any;\n};\n\nconst deserializeAws_json1_1ResourceNotFoundException = (\n output: any,\n context: __SerdeContext\n): ResourceNotFoundException => {\n return {\n message: output.message !== undefined && output.message !== null ? output.message : undefined,\n } as any;\n};\n\nconst deserializeAws_json1_1RoleMapping = (output: any, context: __SerdeContext): RoleMapping => {\n return {\n AmbiguousRoleResolution:\n output.AmbiguousRoleResolution !== undefined && output.AmbiguousRoleResolution !== null\n ? output.AmbiguousRoleResolution\n : undefined,\n RulesConfiguration:\n output.RulesConfiguration !== undefined && output.RulesConfiguration !== null\n ? deserializeAws_json1_1RulesConfigurationType(output.RulesConfiguration, context)\n : undefined,\n Type: output.Type !== undefined && output.Type !== null ? output.Type : undefined,\n } as any;\n};\n\nconst deserializeAws_json1_1RoleMappingMap = (output: any, context: __SerdeContext): { [key: string]: RoleMapping } => {\n return Object.entries(output).reduce((acc: { [key: string]: RoleMapping }, [key, value]: [string, any]) => {\n if (value === null) {\n return acc;\n }\n return {\n ...acc,\n [key]: deserializeAws_json1_1RoleMapping(value, context),\n };\n }, {});\n};\n\nconst deserializeAws_json1_1RolesMap = (output: any, context: __SerdeContext): { [key: string]: string } => {\n return Object.entries(output).reduce((acc: { [key: string]: string }, [key, value]: [string, any]) => {\n if (value === null) {\n return acc;\n }\n return {\n ...acc,\n [key]: value,\n };\n }, {});\n};\n\nconst deserializeAws_json1_1RulesConfigurationType = (output: any, context: __SerdeContext): RulesConfigurationType => {\n return {\n Rules:\n output.Rules !== undefined && output.Rules !== null\n ? deserializeAws_json1_1MappingRulesList(output.Rules, context)\n : undefined,\n } as any;\n};\n\nconst deserializeAws_json1_1SAMLProviderList = (output: any, context: __SerdeContext): string[] => {\n return (output || [])\n .filter((e: any) => e != null)\n .map((entry: any) => {\n if (entry === null) {\n return null as any;\n }\n return entry;\n });\n};\n\nconst deserializeAws_json1_1TagResourceResponse = (output: any, context: __SerdeContext): TagResourceResponse => {\n return {} as any;\n};\n\nconst deserializeAws_json1_1TooManyRequestsException = (\n output: any,\n context: __SerdeContext\n): TooManyRequestsException => {\n return {\n message: output.message !== undefined && output.message !== null ? output.message : undefined,\n } as any;\n};\n\nconst deserializeAws_json1_1UnprocessedIdentityId = (output: any, context: __SerdeContext): UnprocessedIdentityId => {\n return {\n ErrorCode: output.ErrorCode !== undefined && output.ErrorCode !== null ? output.ErrorCode : undefined,\n IdentityId: output.IdentityId !== undefined && output.IdentityId !== null ? output.IdentityId : undefined,\n } as any;\n};\n\nconst deserializeAws_json1_1UnprocessedIdentityIdList = (\n output: any,\n context: __SerdeContext\n): UnprocessedIdentityId[] => {\n return (output || [])\n .filter((e: any) => e != null)\n .map((entry: any) => {\n if (entry === null) {\n return null as any;\n }\n return deserializeAws_json1_1UnprocessedIdentityId(entry, context);\n });\n};\n\nconst deserializeAws_json1_1UntagResourceResponse = (output: any, context: __SerdeContext): UntagResourceResponse => {\n return {} as any;\n};\n\nconst deserializeMetadata = (output: __HttpResponse): __ResponseMetadata => ({\n httpStatusCode: output.statusCode,\n requestId: output.headers[\"x-amzn-requestid\"] ?? output.headers[\"x-amzn-request-id\"],\n extendedRequestId: output.headers[\"x-amz-id-2\"],\n cfId: output.headers[\"x-amz-cf-id\"],\n});\n\n// Collect low-level response body stream to Uint8Array.\nconst collectBody = (streamBody: any = new Uint8Array(), context: __SerdeContext): Promise => {\n if (streamBody instanceof Uint8Array) {\n return Promise.resolve(streamBody);\n }\n return context.streamCollector(streamBody) || Promise.resolve(new Uint8Array());\n};\n\n// Encode Uint8Array data into string with utf-8.\nconst collectBodyString = (streamBody: any, context: __SerdeContext): Promise =>\n collectBody(streamBody, context).then((body) => context.utf8Encoder(body));\n\nconst buildHttpRpcRequest = async (\n context: __SerdeContext,\n headers: __HeaderBag,\n path: string,\n resolvedHostname: string | undefined,\n body: any\n): Promise<__HttpRequest> => {\n const { hostname, protocol = \"https\", port } = await context.endpoint();\n const contents: any = {\n protocol,\n hostname,\n port,\n method: \"POST\",\n path,\n headers,\n };\n if (resolvedHostname !== undefined) {\n contents.hostname = resolvedHostname;\n }\n if (body !== undefined) {\n contents.body = body;\n }\n return new __HttpRequest(contents);\n};\n\nconst parseBody = (streamBody: any, context: __SerdeContext): any =>\n collectBodyString(streamBody, context).then((encoded) => {\n if (encoded.length) {\n return JSON.parse(encoded);\n }\n return {};\n });\n\n/**\n * Load an error code for the aws.rest-json-1.1 protocol.\n */\nconst loadRestJsonErrorCode = (output: __HttpResponse, data: any): string => {\n const findKey = (object: any, key: string) => Object.keys(object).find((k) => k.toLowerCase() === key.toLowerCase());\n\n const sanitizeErrorCode = (rawValue: string): string => {\n let cleanValue = rawValue;\n if (cleanValue.indexOf(\":\") >= 0) {\n cleanValue = cleanValue.split(\":\")[0];\n }\n if (cleanValue.indexOf(\"#\") >= 0) {\n cleanValue = cleanValue.split(\"#\")[1];\n }\n return cleanValue;\n };\n\n const headerKey = findKey(output.headers, \"x-amzn-errortype\");\n if (headerKey !== undefined) {\n return sanitizeErrorCode(output.headers[headerKey]);\n }\n\n if (data.code !== undefined) {\n return sanitizeErrorCode(data.code);\n }\n\n if (data[\"__type\"] !== undefined) {\n return sanitizeErrorCode(data[\"__type\"]);\n }\n\n return \"\";\n};\n","import {\n DeserializeHandlerOptions,\n EndpointBearer,\n MetadataBearer,\n MiddlewareStack,\n Pluggable,\n RequestSerializer,\n ResponseDeserializer,\n SerializeHandlerOptions,\n} from \"@aws-sdk/types\";\n\nimport { deserializerMiddleware } from \"./deserializerMiddleware\";\nimport { serializerMiddleware } from \"./serializerMiddleware\";\n\nexport const deserializerMiddlewareOption: DeserializeHandlerOptions = {\n name: \"deserializerMiddleware\",\n step: \"deserialize\",\n tags: [\"DESERIALIZER\"],\n override: true,\n};\n\nexport const serializerMiddlewareOption: SerializeHandlerOptions = {\n name: \"serializerMiddleware\",\n step: \"serialize\",\n tags: [\"SERIALIZER\"],\n override: true,\n};\n\nexport function getSerdePlugin<\n InputType extends object,\n SerDeContext extends EndpointBearer,\n OutputType extends MetadataBearer\n>(\n config: SerDeContext,\n serializer: RequestSerializer,\n deserializer: ResponseDeserializer\n): Pluggable {\n return {\n applyToStack: (commandStack: MiddlewareStack) => {\n commandStack.add(deserializerMiddleware(config, deserializer), deserializerMiddlewareOption);\n commandStack.add(serializerMiddleware(config, serializer), serializerMiddlewareOption);\n },\n };\n}\n","import {\n DeserializeHandler,\n DeserializeHandlerArguments,\n DeserializeHandlerOutput,\n DeserializeMiddleware,\n HandlerExecutionContext,\n ResponseDeserializer,\n} from \"@aws-sdk/types\";\n\nexport const deserializerMiddleware = (\n options: RuntimeUtils,\n deserializer: ResponseDeserializer\n): DeserializeMiddleware => (\n next: DeserializeHandler,\n context: HandlerExecutionContext\n): DeserializeHandler => async (\n args: DeserializeHandlerArguments\n): Promise> => {\n const { response } = await next(args);\n const parsed = await deserializer(response, options);\n return {\n response,\n output: parsed as Output,\n };\n};\n","import {\n EndpointBearer,\n HandlerExecutionContext,\n RequestSerializer,\n SerializeHandler,\n SerializeHandlerArguments,\n SerializeHandlerOutput,\n SerializeMiddleware,\n} from \"@aws-sdk/types\";\n\nexport const serializerMiddleware = (\n options: RuntimeUtils,\n serializer: RequestSerializer\n): SerializeMiddleware => (\n next: SerializeHandler,\n context: HandlerExecutionContext\n): SerializeHandler => async (\n args: SerializeHandlerArguments\n): Promise> => {\n const request = await serializer(args.input, options);\n return next({\n ...args,\n request,\n });\n};\n","import {\n AbsoluteLocation,\n DeserializeHandler,\n Handler,\n HandlerExecutionContext,\n HandlerOptions,\n MiddlewareStack,\n MiddlewareType,\n Pluggable,\n Priority,\n RelativeLocation,\n Step,\n} from \"@aws-sdk/types\";\n\nimport { AbsoluteMiddlewareEntry, MiddlewareEntry, Normalized, RelativeMiddlewareEntry } from \"./types\";\n\nexport const constructStack = (): MiddlewareStack => {\n let absoluteEntries: AbsoluteMiddlewareEntry[] = [];\n let relativeEntries: RelativeMiddlewareEntry[] = [];\n const entriesNameSet: Set = new Set();\n\n const sort = >(entries: T[]): T[] =>\n entries.sort(\n (a, b) =>\n stepWeights[b.step] - stepWeights[a.step] ||\n priorityWeights[b.priority || \"normal\"] - priorityWeights[a.priority || \"normal\"]\n );\n\n const removeByName = (toRemove: string): boolean => {\n let isRemoved = false;\n const filterCb = (entry: MiddlewareEntry): boolean => {\n if (entry.name && entry.name === toRemove) {\n isRemoved = true;\n entriesNameSet.delete(toRemove);\n return false;\n }\n return true;\n };\n absoluteEntries = absoluteEntries.filter(filterCb);\n relativeEntries = relativeEntries.filter(filterCb);\n return isRemoved;\n };\n\n const removeByReference = (toRemove: MiddlewareType): boolean => {\n let isRemoved = false;\n const filterCb = (entry: MiddlewareEntry): boolean => {\n if (entry.middleware === toRemove) {\n isRemoved = true;\n if (entry.name) entriesNameSet.delete(entry.name);\n return false;\n }\n return true;\n };\n absoluteEntries = absoluteEntries.filter(filterCb);\n relativeEntries = relativeEntries.filter(filterCb);\n return isRemoved;\n };\n\n const cloneTo = (\n toStack: MiddlewareStack\n ): MiddlewareStack => {\n absoluteEntries.forEach((entry) => {\n //@ts-ignore\n toStack.add(entry.middleware, { ...entry });\n });\n relativeEntries.forEach((entry) => {\n //@ts-ignore\n toStack.addRelativeTo(entry.middleware, { ...entry });\n });\n return toStack;\n };\n\n const expandRelativeMiddlewareList = (\n from: Normalized, Input, Output>\n ): MiddlewareEntry[] => {\n const expandedMiddlewareList: MiddlewareEntry[] = [];\n from.before.forEach((entry) => {\n if (entry.before.length === 0 && entry.after.length === 0) {\n expandedMiddlewareList.push(entry);\n } else {\n expandedMiddlewareList.push(...expandRelativeMiddlewareList(entry));\n }\n });\n expandedMiddlewareList.push(from);\n from.after.reverse().forEach((entry) => {\n if (entry.before.length === 0 && entry.after.length === 0) {\n expandedMiddlewareList.push(entry);\n } else {\n expandedMiddlewareList.push(...expandRelativeMiddlewareList(entry));\n }\n });\n return expandedMiddlewareList;\n };\n\n /**\n * Get a final list of middleware in the order of being executed in the resolved handler.\n */\n const getMiddlewareList = (): Array> => {\n const normalizedAbsoluteEntries: Normalized, Input, Output>[] = [];\n const normalizedRelativeEntries: Normalized, Input, Output>[] = [];\n const normalizedEntriesNameMap: {\n [middlewareName: string]: Normalized, Input, Output>;\n } = {};\n\n absoluteEntries.forEach((entry) => {\n const normalizedEntry = {\n ...entry,\n before: [],\n after: [],\n };\n if (normalizedEntry.name) normalizedEntriesNameMap[normalizedEntry.name] = normalizedEntry;\n normalizedAbsoluteEntries.push(normalizedEntry);\n });\n\n relativeEntries.forEach((entry) => {\n const normalizedEntry = {\n ...entry,\n before: [],\n after: [],\n };\n if (normalizedEntry.name) normalizedEntriesNameMap[normalizedEntry.name] = normalizedEntry;\n normalizedRelativeEntries.push(normalizedEntry);\n });\n\n normalizedRelativeEntries.forEach((entry) => {\n if (entry.toMiddleware) {\n const toMiddleware = normalizedEntriesNameMap[entry.toMiddleware];\n if (toMiddleware === undefined) {\n throw new Error(\n `${entry.toMiddleware} is not found when adding ${entry.name || \"anonymous\"} middleware ${entry.relation} ${\n entry.toMiddleware\n }`\n );\n }\n if (entry.relation === \"after\") {\n toMiddleware.after.push(entry);\n }\n if (entry.relation === \"before\") {\n toMiddleware.before.push(entry);\n }\n }\n });\n\n const mainChain = sort(normalizedAbsoluteEntries)\n .map(expandRelativeMiddlewareList)\n .reduce((wholeList, expendedMiddlewareList) => {\n // TODO: Replace it with Array.flat();\n wholeList.push(...expendedMiddlewareList);\n return wholeList;\n }, [] as MiddlewareEntry[]);\n return mainChain.map((entry) => entry.middleware);\n };\n\n const stack = {\n add: (middleware: MiddlewareType, options: HandlerOptions & AbsoluteLocation = {}) => {\n const { name, override } = options;\n const entry: AbsoluteMiddlewareEntry = {\n step: \"initialize\",\n priority: \"normal\",\n middleware,\n ...options,\n };\n if (name) {\n if (entriesNameSet.has(name)) {\n if (!override) throw new Error(`Duplicate middleware name '${name}'`);\n const toOverrideIndex = absoluteEntries.findIndex((entry) => entry.name === name);\n const toOverride = absoluteEntries[toOverrideIndex];\n if (toOverride.step !== entry.step || toOverride.priority !== entry.priority) {\n throw new Error(\n `\"${name}\" middleware with ${toOverride.priority} priority in ${toOverride.step} step cannot be ` +\n `overridden by same-name middleware with ${entry.priority} priority in ${entry.step} step.`\n );\n }\n absoluteEntries.splice(toOverrideIndex, 1);\n }\n entriesNameSet.add(name);\n }\n absoluteEntries.push(entry);\n },\n\n addRelativeTo: (middleware: MiddlewareType, options: HandlerOptions & RelativeLocation) => {\n const { name, override } = options;\n const entry: RelativeMiddlewareEntry = {\n middleware,\n ...options,\n };\n if (name) {\n if (entriesNameSet.has(name)) {\n if (!override) throw new Error(`Duplicate middleware name '${name}'`);\n const toOverrideIndex = relativeEntries.findIndex((entry) => entry.name === name);\n const toOverride = relativeEntries[toOverrideIndex];\n if (toOverride.toMiddleware !== entry.toMiddleware || toOverride.relation !== entry.relation) {\n throw new Error(\n `\"${name}\" middleware ${toOverride.relation} \"${toOverride.toMiddleware}\" middleware cannot be overridden ` +\n `by same-name middleware ${entry.relation} \"${entry.toMiddleware}\" middleware.`\n );\n }\n relativeEntries.splice(toOverrideIndex, 1);\n }\n entriesNameSet.add(name);\n }\n relativeEntries.push(entry);\n },\n\n clone: () => cloneTo(constructStack()),\n\n use: (plugin: Pluggable) => {\n plugin.applyToStack(stack);\n },\n\n remove: (toRemove: MiddlewareType | string): boolean => {\n if (typeof toRemove === \"string\") return removeByName(toRemove);\n else return removeByReference(toRemove);\n },\n\n removeByTag: (toRemove: string): boolean => {\n let isRemoved = false;\n const filterCb = (entry: MiddlewareEntry): boolean => {\n const { tags, name } = entry;\n if (tags && tags.includes(toRemove)) {\n if (name) entriesNameSet.delete(name);\n isRemoved = true;\n return false;\n }\n return true;\n };\n absoluteEntries = absoluteEntries.filter(filterCb);\n relativeEntries = relativeEntries.filter(filterCb);\n return isRemoved;\n },\n\n concat: (\n from: MiddlewareStack\n ): MiddlewareStack => {\n const cloned = cloneTo(constructStack());\n cloned.use(from);\n return cloned;\n },\n\n applyToStack: cloneTo,\n\n resolve: (\n handler: DeserializeHandler,\n context: HandlerExecutionContext\n ): Handler => {\n for (const middleware of getMiddlewareList().reverse()) {\n handler = middleware(handler as Handler, context) as any;\n }\n return handler as Handler;\n },\n };\n return stack;\n};\n\nconst stepWeights: { [key in Step]: number } = {\n initialize: 5,\n serialize: 4,\n build: 3,\n finalizeRequest: 2,\n deserialize: 1,\n};\n\nconst priorityWeights: { [key in Priority]: number } = {\n high: 3,\n normal: 2,\n low: 1,\n};\n","import { constructStack } from \"@aws-sdk/middleware-stack\";\nimport { Client as IClient, Command, MetadataBearer, RequestHandler } from \"@aws-sdk/types\";\n\nexport interface SmithyConfiguration {\n requestHandler: RequestHandler;\n /**\n * The API version set internally by the SDK, and is\n * not planned to be used by customer code.\n * @internal\n */\n readonly apiVersion: string;\n}\n\nexport type SmithyResolvedConfiguration = SmithyConfiguration;\n\nexport class Client<\n HandlerOptions,\n ClientInput extends object,\n ClientOutput extends MetadataBearer,\n ResolvedClientConfiguration extends SmithyResolvedConfiguration\n> implements IClient {\n public middlewareStack = constructStack();\n readonly config: ResolvedClientConfiguration;\n constructor(config: ResolvedClientConfiguration) {\n this.config = config;\n }\n send(\n command: Command>,\n options?: HandlerOptions\n ): Promise;\n send(\n command: Command>,\n cb: (err: any, data?: OutputType) => void\n ): void;\n send(\n command: Command>,\n options: HandlerOptions,\n cb: (err: any, data?: OutputType) => void\n ): void;\n send(\n command: Command>,\n optionsOrCb?: HandlerOptions | ((err: any, data?: OutputType) => void),\n cb?: (err: any, data?: OutputType) => void\n ): Promise | void {\n const options = typeof optionsOrCb !== \"function\" ? optionsOrCb : undefined;\n const callback = typeof optionsOrCb === \"function\" ? (optionsOrCb as (err: any, data?: OutputType) => void) : cb;\n const handler = command.resolveMiddleware(this.middlewareStack as any, this.config, options);\n if (callback) {\n handler(command)\n .then(\n (result) => callback(null, result.output),\n (err: any) => callback(err)\n )\n .catch(\n // prevent any errors thrown in the callback from triggering an\n // unhandled promise rejection\n () => {}\n );\n } else {\n return handler(command).then((result) => result.output);\n }\n }\n\n destroy() {\n if (this.config.requestHandler.destroy) this.config.requestHandler.destroy();\n }\n}\n","import { constructStack } from \"@aws-sdk/middleware-stack\";\nimport { Command as ICommand, Handler, MetadataBearer, MiddlewareStack as IMiddlewareStack } from \"@aws-sdk/types\";\n\nexport abstract class Command<\n Input extends ClientInput,\n Output extends ClientOutput,\n ResolvedClientConfiguration,\n ClientInput extends object = any,\n ClientOutput extends MetadataBearer = any\n> implements ICommand {\n abstract input: Input;\n readonly middlewareStack: IMiddlewareStack = constructStack();\n abstract resolveMiddleware(\n stack: IMiddlewareStack,\n configuration: ResolvedClientConfiguration,\n options: any\n ): Handler;\n}\n","/**\n * Lazy String holder for JSON typed contents.\n */\n\ninterface StringWrapper {\n new (arg: any): String;\n}\n\n/**\n * Because of https://github.com/microsoft/tslib/issues/95,\n * TS 'extends' shim doesn't support extending native types like String.\n * So here we create StringWrapper that duplicate everything from String\n * class including its prototype chain. So we can extend from here.\n */\n// @ts-ignore StringWrapper implementation is not a simple constructor\nexport const StringWrapper: StringWrapper = function () {\n //@ts-ignore 'this' cannot be assigned to any, but Object.getPrototypeOf accepts any\n const Class = Object.getPrototypeOf(this).constructor;\n const Constructor = Function.bind.apply(String, [null as any, ...arguments]);\n //@ts-ignore Call wrapped String constructor directly, don't bother typing it.\n const instance = new Constructor();\n Object.setPrototypeOf(instance, Class.prototype);\n return instance as String;\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\nexport class LazyJsonString extends StringWrapper {\n deserializeJSON(): any {\n return JSON.parse(super.toString());\n }\n\n toJSON(): string {\n return super.toString();\n }\n\n static fromObject(object: any): LazyJsonString {\n if (object instanceof LazyJsonString) {\n return object;\n } else if (object instanceof String || typeof object === \"string\") {\n return new LazyJsonString(object);\n }\n return new LazyJsonString(JSON.stringify(object));\n }\n}\n","import { CognitoIdentityClientResolvedConfig, ServiceInputTypes, ServiceOutputTypes } from \"../CognitoIdentityClient\";\nimport { GetCredentialsForIdentityInput, GetCredentialsForIdentityResponse } from \"../models/models_0\";\nimport {\n deserializeAws_json1_1GetCredentialsForIdentityCommand,\n serializeAws_json1_1GetCredentialsForIdentityCommand,\n} from \"../protocols/Aws_json1_1\";\nimport { getSerdePlugin } from \"@aws-sdk/middleware-serde\";\nimport { HttpRequest as __HttpRequest, HttpResponse as __HttpResponse } from \"@aws-sdk/protocol-http\";\nimport { Command as $Command } from \"@aws-sdk/smithy-client\";\nimport {\n FinalizeHandlerArguments,\n Handler,\n HandlerExecutionContext,\n MiddlewareStack,\n HttpHandlerOptions as __HttpHandlerOptions,\n MetadataBearer as __MetadataBearer,\n SerdeContext as __SerdeContext,\n} from \"@aws-sdk/types\";\n\nexport type GetCredentialsForIdentityCommandInput = GetCredentialsForIdentityInput;\nexport type GetCredentialsForIdentityCommandOutput = GetCredentialsForIdentityResponse & __MetadataBearer;\n\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 */\nexport class GetCredentialsForIdentityCommand extends $Command<\n GetCredentialsForIdentityCommandInput,\n GetCredentialsForIdentityCommandOutput,\n CognitoIdentityClientResolvedConfig\n> {\n // Start section: command_properties\n // End section: command_properties\n\n constructor(readonly input: GetCredentialsForIdentityCommandInput) {\n // Start section: command_constructor\n super();\n // End section: command_constructor\n }\n\n /**\n * @internal\n */\n resolveMiddleware(\n clientStack: MiddlewareStack,\n configuration: CognitoIdentityClientResolvedConfig,\n options?: __HttpHandlerOptions\n ): Handler {\n this.middlewareStack.use(getSerdePlugin(configuration, this.serialize, this.deserialize));\n\n const stack = clientStack.concat(this.middlewareStack);\n\n const { logger } = configuration;\n const clientName = \"CognitoIdentityClient\";\n const commandName = \"GetCredentialsForIdentityCommand\";\n const handlerExecutionContext: HandlerExecutionContext = {\n logger,\n clientName,\n commandName,\n inputFilterSensitiveLog: GetCredentialsForIdentityInput.filterSensitiveLog,\n outputFilterSensitiveLog: GetCredentialsForIdentityResponse.filterSensitiveLog,\n };\n const { requestHandler } = configuration;\n return stack.resolve(\n (request: FinalizeHandlerArguments) =>\n requestHandler.handle(request.request as __HttpRequest, options || {}),\n handlerExecutionContext\n );\n }\n\n private serialize(input: GetCredentialsForIdentityCommandInput, context: __SerdeContext): Promise<__HttpRequest> {\n return serializeAws_json1_1GetCredentialsForIdentityCommand(input, context);\n }\n\n private deserialize(\n output: __HttpResponse,\n context: __SerdeContext\n ): Promise {\n return deserializeAws_json1_1GetCredentialsForIdentityCommand(output, context);\n }\n\n // Start section: command_body_extra\n // End section: command_body_extra\n}\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 */\nexport class ProviderError extends Error {\n constructor(message: string, public readonly tryNextLink: boolean = true) {\n super(message);\n }\n}\n","import { Logins, ResolvedLogins } from \"./Logins\";\n\n/**\n * @internal\n */\nexport function resolveLogins(logins: Logins): Promise {\n return Promise.all(\n Object.keys(logins).reduce((arr: Array<[string, string] | Promise<[string, string]>>, name: string) => {\n const tokenOrProvider = logins[name];\n if (typeof tokenOrProvider === \"string\") {\n arr.push([name, tokenOrProvider] as [string, string]);\n } else {\n arr.push(tokenOrProvider().then((token) => [name, token] as [string, string]));\n }\n return arr;\n }, [] as Array>)\n ).then((resolvedPairs) =>\n resolvedPairs.reduce((logins: ResolvedLogins, [key, value]) => {\n logins[key] = value;\n return logins;\n }, {} as ResolvedLogins)\n );\n}\n","import { GetCredentialsForIdentityCommand } from \"@aws-sdk/client-cognito-identity\";\nimport { ProviderError } from \"@aws-sdk/property-provider\";\nimport { CredentialProvider, Credentials } from \"@aws-sdk/types\";\n\nimport { CognitoProviderParameters } from \"./CognitoProviderParameters\";\nimport { resolveLogins } from \"./resolveLogins\";\n\nexport interface CognitoIdentityCredentials extends Credentials {\n /**\n * The Cognito ID returned by the last call to AWS.CognitoIdentity.getOpenIdToken().\n */\n identityId: string;\n}\n\n/**\n * Retrieves temporary AWS credentials using Amazon Cognito's\n * `GetCredentialsForIdentity` operation.\n *\n * Results from this function call are not cached internally.\n */\nexport function fromCognitoIdentity(parameters: FromCognitoIdentityParameters): CredentialProvider {\n return async (): Promise => {\n const {\n Credentials: {\n AccessKeyId = throwOnMissingAccessKeyId(),\n Expiration,\n SecretKey = throwOnMissingSecretKey(),\n SessionToken,\n } = throwOnMissingCredentials(),\n } = await parameters.client.send(\n new GetCredentialsForIdentityCommand({\n CustomRoleArn: parameters.customRoleArn,\n IdentityId: parameters.identityId,\n Logins: parameters.logins ? await resolveLogins(parameters.logins) : undefined,\n })\n );\n\n return {\n identityId: parameters.identityId,\n accessKeyId: AccessKeyId,\n secretAccessKey: SecretKey,\n sessionToken: SessionToken,\n expiration: Expiration,\n };\n };\n}\n\nexport interface FromCognitoIdentityParameters extends CognitoProviderParameters {\n /**\n * The unique identifier for the identity against which credentials will be\n * issued.\n */\n identityId: string;\n}\n\nfunction throwOnMissingAccessKeyId(): never {\n throw new ProviderError(\"Response from Amazon Cognito contained no access key ID\");\n}\n\nfunction throwOnMissingCredentials(): never {\n throw new ProviderError(\"Response from Amazon Cognito contained no credentials\");\n}\n\nfunction throwOnMissingSecretKey(): never {\n throw new ProviderError(\"Response from Amazon Cognito contained no secret key\");\n}\n","import { CognitoIdentityClientResolvedConfig, ServiceInputTypes, ServiceOutputTypes } from \"../CognitoIdentityClient\";\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 { HttpRequest as __HttpRequest, HttpResponse as __HttpResponse } from \"@aws-sdk/protocol-http\";\nimport { Command as $Command } from \"@aws-sdk/smithy-client\";\nimport {\n FinalizeHandlerArguments,\n Handler,\n HandlerExecutionContext,\n MiddlewareStack,\n HttpHandlerOptions as __HttpHandlerOptions,\n MetadataBearer as __MetadataBearer,\n SerdeContext as __SerdeContext,\n} from \"@aws-sdk/types\";\n\nexport type GetIdCommandInput = GetIdInput;\nexport type GetIdCommandOutput = GetIdResponse & __MetadataBearer;\n\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 */\nexport class GetIdCommand extends $Command {\n // Start section: command_properties\n // End section: command_properties\n\n constructor(readonly input: GetIdCommandInput) {\n // Start section: command_constructor\n super();\n // End section: command_constructor\n }\n\n /**\n * @internal\n */\n resolveMiddleware(\n clientStack: MiddlewareStack,\n configuration: CognitoIdentityClientResolvedConfig,\n options?: __HttpHandlerOptions\n ): Handler {\n this.middlewareStack.use(getSerdePlugin(configuration, this.serialize, this.deserialize));\n\n const stack = clientStack.concat(this.middlewareStack);\n\n const { logger } = configuration;\n const clientName = \"CognitoIdentityClient\";\n const commandName = \"GetIdCommand\";\n const handlerExecutionContext: HandlerExecutionContext = {\n logger,\n clientName,\n commandName,\n inputFilterSensitiveLog: GetIdInput.filterSensitiveLog,\n outputFilterSensitiveLog: GetIdResponse.filterSensitiveLog,\n };\n const { requestHandler } = configuration;\n return stack.resolve(\n (request: FinalizeHandlerArguments) =>\n requestHandler.handle(request.request as __HttpRequest, options || {}),\n handlerExecutionContext\n );\n }\n\n private serialize(input: GetIdCommandInput, context: __SerdeContext): Promise<__HttpRequest> {\n return serializeAws_json1_1GetIdCommand(input, context);\n }\n\n private deserialize(output: __HttpResponse, context: __SerdeContext): Promise {\n return deserializeAws_json1_1GetIdCommand(output, context);\n }\n\n // Start section: command_body_extra\n // End section: command_body_extra\n}\n","import { Storage } from \"./Storage\";\n\nconst STORE_NAME = \"IdentityIds\";\n\nexport class IndexedDbStorage implements Storage {\n constructor(private readonly dbName: string = \"aws:cognito-identity-ids\") {}\n\n getItem(key: string): Promise {\n return this.withObjectStore(\"readonly\", (store) => {\n const req = store.get(key);\n\n return new Promise((resolve) => {\n req.onerror = () => resolve(null);\n\n req.onsuccess = () => resolve(req.result ? req.result.value : null);\n });\n }).catch(() => null);\n }\n\n removeItem(key: string): Promise {\n return this.withObjectStore(\"readwrite\", (store) => {\n const req = store.delete(key);\n\n return new Promise((resolve, reject) => {\n req.onerror = () => reject(req.error);\n\n req.onsuccess = () => resolve();\n });\n });\n }\n\n setItem(id: string, value: string): Promise {\n return this.withObjectStore(\"readwrite\", (store) => {\n const req = store.put({ id, value });\n\n return new Promise((resolve, reject) => {\n req.onerror = () => reject(req.error);\n\n req.onsuccess = () => resolve();\n });\n });\n }\n\n private getDb(): Promise {\n const openDbRequest = self.indexedDB.open(this.dbName, 1);\n return new Promise((resolve, reject) => {\n openDbRequest.onsuccess = () => {\n resolve(openDbRequest.result);\n };\n\n openDbRequest.onerror = () => {\n reject(openDbRequest.error);\n };\n\n openDbRequest.onblocked = () => {\n reject(new Error(\"Unable to access DB\"));\n };\n\n openDbRequest.onupgradeneeded = () => {\n const db = openDbRequest.result;\n db.onerror = () => {\n reject(new Error(\"Failed to create object store\"));\n };\n\n db.createObjectStore(STORE_NAME, { keyPath: \"id\" });\n };\n });\n }\n\n private withObjectStore(mode: IDBTransactionMode, action: (store: IDBObjectStore) => Promise): Promise {\n return this.getDb().then((db) => {\n const tx = db.transaction(STORE_NAME, mode);\n tx.oncomplete = () => db.close();\n\n return new Promise((resolve, reject) => {\n tx.onerror = () => reject(tx.error);\n\n resolve(action(tx.objectStore(STORE_NAME)));\n }).catch((err) => {\n db.close();\n throw err;\n });\n });\n }\n}\n","import { Storage } from \"./Storage\";\n\nexport class InMemoryStorage implements Storage {\n constructor(private store: { [key: string]: string } = {}) {}\n\n getItem(key: string): string | null {\n if (key in this.store) {\n return this.store[key];\n }\n\n return null;\n }\n\n removeItem(key: string): void {\n delete this.store[key];\n }\n\n setItem(key: string, value: string): void {\n this.store[key] = value;\n }\n}\n","import { IndexedDbStorage } from \"./IndexedDbStorage\";\nimport { InMemoryStorage } from \"./InMemoryStorage\";\nimport { Storage } from \"./Storage\";\n\nconst inMemoryStorage = new InMemoryStorage();\n\nexport function localStorage(): Storage {\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}\n","import { GetIdCommand } from \"@aws-sdk/client-cognito-identity\";\nimport { ProviderError } from \"@aws-sdk/property-provider\";\nimport { CredentialProvider } from \"@aws-sdk/types\";\n\nimport { CognitoProviderParameters } from \"./CognitoProviderParameters\";\nimport { fromCognitoIdentity } from \"./fromCognitoIdentity\";\nimport { localStorage } from \"./localStorage\";\nimport { resolveLogins } from \"./resolveLogins\";\nimport { Storage } from \"./Storage\";\n\n/**\n * Retrieves or generates a unique identifier using Amazon Cognito's `GetId`\n * operation, then generates temporary AWS credentials using Amazon Cognito's\n * `GetCredentialsForIdentity` operation.\n *\n * Results from `GetId` are cached internally, but results from\n * `GetCredentialsForIdentity` are not.\n */\nexport function fromCognitoIdentityPool({\n accountId,\n cache = localStorage(),\n client,\n customRoleArn,\n identityPoolId,\n logins,\n userIdentifier = !logins || Object.keys(logins).length === 0 ? \"ANONYMOUS\" : undefined,\n}: FromCognitoIdentityPoolParameters): CredentialProvider {\n const cacheKey = userIdentifier ? `aws:cognito-identity-credentials:${identityPoolId}:${userIdentifier}` : undefined;\n\n let provider: CredentialProvider = async () => {\n let identityId = cacheKey && (await cache.getItem(cacheKey));\n if (!identityId) {\n const { IdentityId = throwOnMissingId() } = await client.send(\n new GetIdCommand({\n AccountId: accountId,\n IdentityPoolId: identityPoolId,\n Logins: logins ? await resolveLogins(logins) : undefined,\n })\n );\n identityId = IdentityId;\n if (cacheKey) {\n Promise.resolve(cache.setItem(cacheKey, identityId)).catch(() => {});\n }\n }\n\n provider = fromCognitoIdentity({\n client,\n customRoleArn,\n logins,\n identityId,\n });\n\n return provider();\n };\n\n return () =>\n provider().catch(async (err) => {\n if (cacheKey) {\n Promise.resolve(cache.removeItem(cacheKey)).catch(() => {});\n }\n\n throw err;\n });\n}\n\nexport interface FromCognitoIdentityPoolParameters extends CognitoProviderParameters {\n /**\n * A standard AWS account ID (9+ digits).\n */\n accountId?: string;\n\n /**\n * A cache in which to store resolved Cognito IdentityIds. If not supplied,\n * the credential provider will attempt to store IdentityIds in one of the\n * following (in order of preference):\n * 1. IndexedDB\n * 2. LocalStorage\n * 3. An in-memory cache object that will not persist between pages.\n *\n * IndexedDB is preferred to maximize data sharing between top-level\n * browsing contexts and web workers.\n *\n * The provider will not cache IdentityIds of authenticated users unless a\n * separate `userIdentitifer` parameter is supplied.\n */\n cache?: Storage;\n\n /**\n * The unique identifier for the identity pool from which an identity should\n * be retrieved or generated.\n */\n identityPoolId: string;\n\n /**\n * A unique identifier for the user. This is distinct from a Cognito\n * IdentityId and should instead be an identifier meaningful to your\n * application. Used to cache Cognito IdentityIds on a per-user basis.\n */\n userIdentifier?: string;\n}\n\nfunction throwOnMissingId(): never {\n throw new ProviderError(\"Response from Amazon Cognito contained no identity ID\");\n}\n","import { AmplifyConfig } from './types';\nimport { ConsoleLogger as Logger } from './Logger';\n\nconst logger = new Logger('Parser');\n\nexport const parseAWSExports = (config): AmplifyConfig => {\n\tconst amplifyConfig: AmplifyConfig = {};\n\t// Analytics\n\tif (config['aws_mobile_analytics_app_id']) {\n\t\tconst Analytics = {\n\t\t\tAWSPinpoint: {\n\t\t\t\tappId: config['aws_mobile_analytics_app_id'],\n\t\t\t\tregion: config['aws_mobile_analytics_app_region'],\n\t\t\t},\n\t\t};\n\t\tamplifyConfig.Analytics = Analytics;\n\t}\n\n\t// Auth\n\tif (config['aws_cognito_identity_pool_id'] || config['aws_user_pools_id']) {\n\t\tamplifyConfig.Auth = {\n\t\t\tuserPoolId: config['aws_user_pools_id'],\n\t\t\tuserPoolWebClientId: config['aws_user_pools_web_client_id'],\n\t\t\tregion: config['aws_cognito_region'],\n\t\t\tidentityPoolId: config['aws_cognito_identity_pool_id'],\n\t\t\tidentityPoolRegion: config['aws_cognito_region'],\n\t\t\tmandatorySignIn: config['aws_mandatory_sign_in'] === 'enable',\n\t\t\tsignUpVerificationMethod:\n\t\t\t\tconfig['aws_cognito_sign_up_verification_method'] || 'code',\n\t\t};\n\t}\n\n\t// Storage\n\tlet storageConfig;\n\tif (config['aws_user_files_s3_bucket']) {\n\t\tstorageConfig = {\n\t\t\tAWSS3: {\n\t\t\t\tbucket: config['aws_user_files_s3_bucket'],\n\t\t\t\tregion: config['aws_user_files_s3_bucket_region'],\n\t\t\t\tdangerouslyConnectToHttpEndpointForTesting:\n\t\t\t\t\tconfig[\n\t\t\t\t\t\t'aws_user_files_s3_dangerously_connect_to_http_endpoint_for_testing'\n\t\t\t\t\t],\n\t\t\t},\n\t\t};\n\t} else {\n\t\tstorageConfig = config ? config.Storage || config : {};\n\t}\n\n\t// Logging\n\tif (config['Logging']) {\n\t\tamplifyConfig.Logging = {\n\t\t\t...config['Logging'],\n\t\t\tregion: config['aws_project_region'],\n\t\t};\n\t}\n\n\t// Geo\n\tif (config['geo']) {\n\t\tamplifyConfig.Geo = Object.assign({}, config.geo);\n\t\tif (config.geo['amazon_location_service']) {\n\t\t\tamplifyConfig.Geo = {\n\t\t\t\tAmazonLocationService: config.geo['amazon_location_service'],\n\t\t\t};\n\t\t}\n\t}\n\n\tamplifyConfig.Analytics = Object.assign(\n\t\t{},\n\t\tamplifyConfig.Analytics,\n\t\tconfig.Analytics\n\t);\n\tamplifyConfig.Auth = Object.assign({}, amplifyConfig.Auth, config.Auth);\n\tamplifyConfig.Storage = Object.assign({}, storageConfig);\n\tamplifyConfig.Logging = Object.assign(\n\t\t{},\n\t\tamplifyConfig.Logging,\n\t\tconfig.Logging\n\t);\n\tlogger.debug('parse config', config, 'to amplifyconfig', amplifyConfig);\n\treturn amplifyConfig;\n};\n","export const escapeUri = (uri: string): string =>\n // AWS percent-encodes some extra non-standard characters in a URI\n encodeURIComponent(uri).replace(/[!'()*]/g, hexEncode);\n\nconst hexEncode = (c: string) => `%${c.charCodeAt(0).toString(16).toUpperCase()}`;\n","const alphabetByEncoding: { [key: string]: number } = {};\nconst alphabetByValue: Array = new Array(64);\n\nfor (let i = 0, start = \"A\".charCodeAt(0), limit = \"Z\".charCodeAt(0); i + start <= limit; i++) {\n const char = String.fromCharCode(i + start);\n alphabetByEncoding[char] = i;\n alphabetByValue[i] = char;\n}\n\nfor (let i = 0, start = \"a\".charCodeAt(0), limit = \"z\".charCodeAt(0); i + start <= limit; i++) {\n const char = String.fromCharCode(i + start);\n const index = i + 26;\n alphabetByEncoding[char] = index;\n alphabetByValue[index] = char;\n}\n\nfor (let i = 0; i < 10; i++) {\n alphabetByEncoding[i.toString(10)] = i + 52;\n const char = i.toString(10);\n const index = i + 52;\n alphabetByEncoding[char] = index;\n alphabetByValue[index] = char;\n}\n\nalphabetByEncoding[\"+\"] = 62;\nalphabetByValue[62] = \"+\";\nalphabetByEncoding[\"/\"] = 63;\nalphabetByValue[63] = \"/\";\n\nconst bitsPerLetter = 6;\nconst bitsPerByte = 8;\nconst maxLetterValue = 0b111111;\n\n/**\n * Converts a base-64 encoded string to a Uint8Array of bytes.\n *\n * @param input The base-64 encoded string\n *\n * @see https://tools.ietf.org/html/rfc4648#section-4\n */\nexport function fromBase64(input: string): Uint8Array {\n let totalByteLength = (input.length / 4) * 3;\n if (input.substr(-2) === \"==\") {\n totalByteLength -= 2;\n } else if (input.substr(-1) === \"=\") {\n totalByteLength--;\n }\n const out = new ArrayBuffer(totalByteLength);\n const dataView = new DataView(out);\n for (let i = 0; i < input.length; i += 4) {\n let bits = 0;\n let bitLength = 0;\n for (let 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 const chunkOffset = (i / 4) * 3;\n bits >>= bitLength % bitsPerByte;\n const byteLength = Math.floor(bitLength / bitsPerByte);\n for (let k = 0; k < byteLength; k++) {\n const 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/**\n * Converts a Uint8Array of binary data to a base-64 encoded string.\n *\n * @param input The binary data to encode\n *\n * @see https://tools.ietf.org/html/rfc4648#section-4\n */\nexport function toBase64(input: Uint8Array): string {\n let str = \"\";\n for (let i = 0; i < input.length; i += 3) {\n let bits = 0;\n let bitLength = 0;\n for (let 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 const bitClusterCount = Math.ceil(bitLength / bitsPerLetter);\n bits <<= bitClusterCount * bitsPerLetter - bitLength;\n for (let k = 1; k <= bitClusterCount; k++) {\n const 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}\n","import { HttpHandler, HttpRequest, HttpResponse } from \"@aws-sdk/protocol-http\";\nimport { buildQueryString } from \"@aws-sdk/querystring-builder\";\nimport { HeaderBag, HttpHandlerOptions } from \"@aws-sdk/types\";\n\nimport { requestTimeout } from \"./request-timeout\";\n\ndeclare let AbortController: any;\n\n/**\n * Represents the http options that can be passed to a browser http client.\n */\nexport interface FetchHttpHandlerOptions {\n /**\n * The number of milliseconds a request can take before being automatically\n * terminated.\n */\n requestTimeout?: number;\n}\n\nexport class FetchHttpHandler implements HttpHandler {\n private readonly requestTimeout?: number;\n\n constructor({ requestTimeout }: FetchHttpHandlerOptions = {}) {\n this.requestTimeout = requestTimeout;\n }\n\n destroy(): void {\n // Do nothing. TLS and HTTP/2 connection pooling is handled by the browser.\n }\n\n handle(request: HttpRequest, { abortSignal }: HttpHandlerOptions = {}): Promise<{ response: HttpResponse }> {\n const requestTimeoutInMs = this.requestTimeout;\n\n // if the request was already aborted, prevent doing extra work\n if (abortSignal?.aborted) {\n const abortError = new Error(\"Request aborted\");\n abortError.name = \"AbortError\";\n return Promise.reject(abortError);\n }\n\n let path = request.path;\n if (request.query) {\n const queryString = buildQueryString(request.query);\n if (queryString) {\n path += `?${queryString}`;\n }\n }\n\n const { port, method } = request;\n const url = `${request.protocol}//${request.hostname}${port ? `:${port}` : \"\"}${path}`;\n // Request constructor doesn't allow GET/HEAD request with body\n // ref: https://github.com/whatwg/fetch/issues/551\n const body = method === \"GET\" || method === \"HEAD\" ? undefined : request.body;\n const requestOptions: RequestInit = {\n body,\n headers: new Headers(request.headers),\n method: method,\n };\n\n // some browsers support abort signal\n if (typeof AbortController !== \"undefined\") {\n (requestOptions as any)[\"signal\"] = abortSignal;\n }\n\n const fetchRequest = new Request(url, requestOptions);\n const raceOfPromises = [\n fetch(fetchRequest).then((response) => {\n const fetchHeaders: any = response.headers;\n const transformedHeaders: HeaderBag = {};\n\n for (const pair of >fetchHeaders.entries()) {\n transformedHeaders[pair[0]] = pair[1];\n }\n\n const hasReadableStream = response.body !== undefined;\n\n // Return the response with buffered body\n if (!hasReadableStream) {\n return response.blob().then((body) => ({\n response: new HttpResponse({\n headers: transformedHeaders,\n statusCode: response.status,\n body,\n }),\n }));\n }\n // Return the response with streaming body\n return {\n response: new HttpResponse({\n headers: transformedHeaders,\n statusCode: response.status,\n body: response.body,\n }),\n };\n }),\n requestTimeout(requestTimeoutInMs),\n ];\n if (abortSignal) {\n raceOfPromises.push(\n new Promise((resolve, reject) => {\n abortSignal.onabort = () => {\n const abortError = new Error(\"Request aborted\");\n abortError.name = \"AbortError\";\n reject(abortError);\n };\n })\n );\n }\n return Promise.race(raceOfPromises);\n }\n}\n","import { QueryParameterBag } from \"@aws-sdk/types\";\nimport { escapeUri } from \"@aws-sdk/util-uri-escape\";\n\nexport function buildQueryString(query: QueryParameterBag): string {\n const parts: string[] = [];\n for (let key of Object.keys(query).sort()) {\n const value = query[key];\n key = escapeUri(key);\n if (Array.isArray(value)) {\n for (let i = 0, iLen = value.length; i < iLen; i++) {\n parts.push(`${key}=${escapeUri(value[i])}`);\n }\n } else {\n let qsEntry = key;\n if (value || typeof value === \"string\") {\n qsEntry += `=${escapeUri(value)}`;\n }\n parts.push(qsEntry);\n }\n }\n\n return parts.join(\"&\");\n}\n","export function requestTimeout(timeoutInMs = 0): Promise {\n return new Promise((resolve, reject) => {\n if (timeoutInMs) {\n setTimeout(() => {\n const timeoutError = new Error(`Request did not complete within ${timeoutInMs} ms`);\n timeoutError.name = \"TimeoutError\";\n reject(timeoutError);\n }, timeoutInMs);\n }\n });\n}\n","import { StreamCollector } from \"@aws-sdk/types\";\nimport { fromBase64 } from \"@aws-sdk/util-base64-browser\";\n\n//reference: https://snack.expo.io/r1JCSWRGU\nexport const streamCollector: StreamCollector = (stream: Blob | ReadableStream): Promise => {\n if (typeof Blob === \"function\" && stream instanceof Blob) {\n return collectBlob(stream);\n }\n\n return collectStream(stream as ReadableStream);\n};\n\nasync function collectBlob(blob: Blob): Promise {\n const base64 = await readToBase64(blob);\n const arrayBuffer = fromBase64(base64);\n return new Uint8Array(arrayBuffer);\n}\n\nasync function collectStream(stream: ReadableStream): Promise {\n let res = new Uint8Array(0);\n const reader = stream.getReader();\n let isDone = false;\n while (!isDone) {\n const { done, value } = await reader.read();\n if (value) {\n const prior = res;\n res = new Uint8Array(prior.length + value.length);\n res.set(prior);\n res.set(value, prior.length);\n }\n isDone = done;\n }\n return res;\n}\n\nfunction readToBase64(blob: Blob): Promise {\n return new Promise((resolve, reject) => {\n const reader = new FileReader();\n reader.onloadend = () => {\n // reference: https://developer.mozilla.org/en-US/docs/Web/API/FileReader/readAsDataURL\n // response from readAsDataURL is always prepended with \"data:*/*;base64,\"\n if (reader.readyState !== 2) {\n return reject(new Error(\"Reader aborted too early\"));\n }\n const result = (reader.result ?? \"\") as string;\n // Response can include only 'data:' for empty blob, return empty string in this case.\n // Otherwise, return the string after ','\n const commaIndex = result.indexOf(\",\");\n const dataOffset = commaIndex > -1 ? commaIndex + 1 : result.length;\n resolve(result.substring(dataOffset));\n };\n reader.onabort = () => reject(new Error(\"Read aborted\"));\n reader.onerror = () => reject(reader.error);\n // reader.readAsArrayBuffer is not always available\n reader.readAsDataURL(blob);\n });\n}\n","import { Provider } from \"@aws-sdk/types\";\nexport const invalidProvider: (message: string) => Provider = (message: string) => () => Promise.reject(message);\n","import {\n AbsoluteLocation,\n FinalizeHandler,\n FinalizeHandlerArguments,\n FinalizeHandlerOutput,\n FinalizeRequestHandlerOptions,\n HandlerExecutionContext,\n MetadataBearer,\n Pluggable,\n} from \"@aws-sdk/types\";\n\nimport { RetryResolvedConfig } from \"./configurations\";\n\nexport const retryMiddleware = (options: RetryResolvedConfig) => (\n next: FinalizeHandler,\n context: HandlerExecutionContext\n): FinalizeHandler => async (\n args: FinalizeHandlerArguments\n): Promise> => {\n if (options?.retryStrategy?.mode)\n context.userAgent = [...(context.userAgent || []), [\"cfg/retry-mode\", options.retryStrategy.mode]];\n return options.retryStrategy.retry(next, args);\n};\n\nexport const retryMiddlewareOptions: FinalizeRequestHandlerOptions & AbsoluteLocation = {\n name: \"retryMiddleware\",\n tags: [\"RETRY\"],\n step: \"finalizeRequest\",\n priority: \"high\",\n override: true,\n};\n\nexport const getRetryPlugin = (options: RetryResolvedConfig): Pluggable => ({\n 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 const CLOCK_SKEW_ERROR_CODES = [\n \"AuthFailure\",\n \"InvalidSignatureException\",\n \"RequestExpired\",\n \"RequestInTheFuture\",\n \"RequestTimeTooSkewed\",\n \"SignatureDoesNotMatch\",\n];\n\n/**\n * Errors that indicate the SDK is being throttled.\n *\n * These errors are always retryable.\n */\nexport const THROTTLING_ERROR_CODES = [\n \"BandwidthLimitExceeded\",\n \"EC2ThrottledException\",\n \"LimitExceededException\",\n \"PriorRequestNotComplete\",\n \"ProvisionedThroughputExceededException\",\n \"RequestLimitExceeded\",\n \"RequestThrottled\",\n \"RequestThrottledException\",\n \"SlowDown\",\n \"ThrottledException\",\n \"Throttling\",\n \"ThrottlingException\",\n \"TooManyRequestsException\",\n \"TransactionInProgressException\", // DynamoDB\n];\n\n/**\n * Error codes that indicate transient issues\n */\nexport const TRANSIENT_ERROR_CODES = [\"AbortError\", \"TimeoutError\", \"RequestTimeout\", \"RequestTimeoutException\"];\n\n/**\n * Error codes that indicate transient issues\n */\nexport const TRANSIENT_ERROR_STATUS_CODES = [500, 502, 503, 504];\n","import { SdkError } from \"@aws-sdk/smithy-client\";\n\nimport {\n CLOCK_SKEW_ERROR_CODES,\n THROTTLING_ERROR_CODES,\n TRANSIENT_ERROR_CODES,\n TRANSIENT_ERROR_STATUS_CODES,\n} from \"./constants\";\n\nexport const isRetryableByTrait = (error: SdkError) => error.$retryable !== undefined;\n\nexport const isClockSkewError = (error: SdkError) => CLOCK_SKEW_ERROR_CODES.includes(error.name);\n\nexport const isThrottlingError = (error: SdkError) =>\n error.$metadata?.httpStatusCode === 429 ||\n THROTTLING_ERROR_CODES.includes(error.name) ||\n error.$retryable?.throttling == true;\n\nexport const isTransientError = (error: SdkError) =>\n TRANSIENT_ERROR_CODES.includes(error.name) ||\n TRANSIENT_ERROR_STATUS_CODES.includes(error.$metadata?.httpStatusCode || 0);\n","import { MAXIMUM_RETRY_DELAY } from \"./constants\";\n\n/**\n * Calculate a capped, fully-jittered exponential backoff time.\n */\nexport const defaultDelayDecider = (delayBase: number, attempts: number) =>\n Math.floor(Math.min(MAXIMUM_RETRY_DELAY, Math.random() * 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 const DEFAULT_RETRY_DELAY_BASE = 100;\n\n/**\n * The maximum amount of time (in milliseconds) that will be used as a delay\n * between retry attempts.\n */\nexport const MAXIMUM_RETRY_DELAY = 20 * 1000;\n\n/**\n * The retry delay base (in milliseconds) to use when a throttling error is\n * encountered.\n */\nexport const THROTTLING_RETRY_DELAY_BASE = 500;\n\n/**\n * Initial number of retry tokens in Retry Quota\n */\nexport const INITIAL_RETRY_TOKENS = 500;\n\n/**\n * The total amount of retry tokens to be decremented from retry token balance.\n */\nexport const RETRY_COST = 5;\n\n/**\n * The total amount of retry tokens to be decremented from retry token balance\n * when a throttling error is encountered.\n */\nexport const TIMEOUT_RETRY_COST = 10;\n\n/**\n * The total amount of retry token to be incremented from retry token balance\n * if an SDK operation invocation succeeds without requiring a retry request.\n */\nexport const NO_RETRY_INCREMENT = 1;\n\n/**\n * Header name for SDK invocation ID\n */\nexport const INVOCATION_ID_HEADER = \"amz-sdk-invocation-id\";\n\n/**\n * Header name for request retry information.\n */\nexport const REQUEST_HEADER = \"amz-sdk-request\";\n","import {\n isClockSkewError,\n isRetryableByTrait,\n isThrottlingError,\n isTransientError,\n} from \"@aws-sdk/service-error-classification\";\nimport { SdkError } from \"@aws-sdk/smithy-client\";\n\nexport const defaultRetryDecider = (error: SdkError) => {\n if (!error) {\n return false;\n }\n\n return isRetryableByTrait(error) || isClockSkewError(error) || isThrottlingError(error) || isTransientError(error);\n};\n","import { HttpRequest } from \"@aws-sdk/protocol-http\";\nimport { isThrottlingError } from \"@aws-sdk/service-error-classification\";\nimport { SdkError } from \"@aws-sdk/smithy-client\";\nimport { FinalizeHandler, FinalizeHandlerArguments, MetadataBearer, Provider, RetryStrategy } from \"@aws-sdk/types\";\nimport { v4 } from \"uuid\";\n\nimport {\n DEFAULT_RETRY_DELAY_BASE,\n INITIAL_RETRY_TOKENS,\n INVOCATION_ID_HEADER,\n REQUEST_HEADER,\n THROTTLING_RETRY_DELAY_BASE,\n} from \"./constants\";\nimport { getDefaultRetryQuota } from \"./defaultRetryQuota\";\nimport { defaultDelayDecider } from \"./delayDecider\";\nimport { defaultRetryDecider } from \"./retryDecider\";\n\n/**\n * The default value for how many HTTP requests an SDK should make for a\n * single SDK operation invocation before giving up\n */\nexport const DEFAULT_MAX_ATTEMPTS = 3;\n\n/**\n * The default retry algorithm to use.\n */\nexport const DEFAULT_RETRY_MODE = \"standard\";\n\n/**\n * Determines whether an error is retryable based on the number of retries\n * already attempted, the HTTP status code, and the error received (if any).\n *\n * @param error The error encountered.\n */\nexport interface RetryDecider {\n (error: SdkError): boolean;\n}\n\n/**\n * Determines the number of milliseconds to wait before retrying an action.\n *\n * @param delayBase The base delay (in milliseconds).\n * @param attempts The number of times the action has already been tried.\n */\nexport interface DelayDecider {\n (delayBase: number, attempts: number): number;\n}\n\n/**\n * Interface that specifies the retry quota behavior.\n */\nexport interface RetryQuota {\n /**\n * returns true if retry tokens are available from the retry quota bucket.\n */\n hasRetryTokens: (error: SdkError) => boolean;\n\n /**\n * returns token amount from the retry quota bucket.\n * throws error is retry tokens are not available.\n */\n retrieveRetryTokens: (error: SdkError) => number;\n\n /**\n * releases tokens back to the retry quota.\n */\n releaseRetryTokens: (releaseCapacityAmount?: number) => void;\n}\n\n/**\n * Strategy options to be passed to StandardRetryStrategy\n */\nexport interface StandardRetryStrategyOptions {\n retryDecider?: RetryDecider;\n delayDecider?: DelayDecider;\n retryQuota?: RetryQuota;\n}\n\nexport class StandardRetryStrategy implements RetryStrategy {\n private retryDecider: RetryDecider;\n private delayDecider: DelayDecider;\n private retryQuota: RetryQuota;\n public readonly mode = DEFAULT_RETRY_MODE;\n\n constructor(private readonly maxAttemptsProvider: Provider, options?: StandardRetryStrategyOptions) {\n this.retryDecider = options?.retryDecider ?? defaultRetryDecider;\n this.delayDecider = options?.delayDecider ?? defaultDelayDecider;\n this.retryQuota = options?.retryQuota ?? getDefaultRetryQuota(INITIAL_RETRY_TOKENS);\n }\n\n private shouldRetry(error: SdkError, attempts: number, maxAttempts: number) {\n return attempts < maxAttempts && this.retryDecider(error) && this.retryQuota.hasRetryTokens(error);\n }\n\n private async getMaxAttempts() {\n let maxAttempts: number;\n try {\n maxAttempts = await this.maxAttemptsProvider();\n } catch (error) {\n maxAttempts = DEFAULT_MAX_ATTEMPTS;\n }\n return maxAttempts;\n }\n\n async retry(\n next: FinalizeHandler,\n args: FinalizeHandlerArguments\n ) {\n let retryTokenAmount;\n let attempts = 0;\n let totalDelay = 0;\n\n const maxAttempts = await this.getMaxAttempts();\n\n const { request } = args;\n if (HttpRequest.isInstance(request)) {\n request.headers[INVOCATION_ID_HEADER] = v4();\n }\n\n while (true) {\n try {\n if (HttpRequest.isInstance(request)) {\n request.headers[REQUEST_HEADER] = `attempt=${attempts + 1}; max=${maxAttempts}`;\n }\n const { response, output } = await next(args);\n\n this.retryQuota.releaseRetryTokens(retryTokenAmount);\n output.$metadata.attempts = attempts + 1;\n output.$metadata.totalRetryDelay = totalDelay;\n\n return { response, output };\n } catch (err) {\n attempts++;\n if (this.shouldRetry(err as SdkError, attempts, maxAttempts)) {\n retryTokenAmount = this.retryQuota.retrieveRetryTokens(err);\n const delay = this.delayDecider(\n isThrottlingError(err) ? THROTTLING_RETRY_DELAY_BASE : DEFAULT_RETRY_DELAY_BASE,\n attempts\n );\n totalDelay += delay;\n\n await new Promise((resolve) => setTimeout(resolve, delay));\n continue;\n }\n\n if (!err.$metadata) {\n err.$metadata = {};\n }\n\n err.$metadata.attempts = attempts;\n err.$metadata.totalRetryDelay = totalDelay;\n throw err;\n }\n }\n }\n}\n","import { SdkError } from \"@aws-sdk/smithy-client\";\n\nimport { NO_RETRY_INCREMENT, RETRY_COST, TIMEOUT_RETRY_COST } from \"./constants\";\nimport { RetryQuota } from \"./defaultStrategy\";\n\nexport const getDefaultRetryQuota = (initialRetryTokens: number): RetryQuota => {\n const MAX_CAPACITY = initialRetryTokens;\n let availableCapacity = initialRetryTokens;\n\n const getCapacityAmount = (error: SdkError) => (error.name === \"TimeoutError\" ? TIMEOUT_RETRY_COST : RETRY_COST);\n\n const hasRetryTokens = (error: SdkError) => getCapacityAmount(error) <= availableCapacity;\n\n const retrieveRetryTokens = (error: SdkError) => {\n if (!hasRetryTokens(error)) {\n // retryStrategy should stop retrying, and return last error\n throw new Error(\"No retry token available\");\n }\n const capacityAmount = getCapacityAmount(error);\n availableCapacity -= capacityAmount;\n return capacityAmount;\n };\n\n const releaseRetryTokens = (capacityReleaseAmount?: number) => {\n availableCapacity += capacityReleaseAmount ?? NO_RETRY_INCREMENT;\n availableCapacity = Math.min(availableCapacity, MAX_CAPACITY);\n };\n\n return Object.freeze({\n hasRetryTokens,\n retrieveRetryTokens,\n releaseRetryTokens,\n });\n};\n","import { LoadedConfigSelectors } from \"@aws-sdk/node-config-provider\";\nimport { Provider, RetryStrategy } from \"@aws-sdk/types\";\n\nimport { DEFAULT_MAX_ATTEMPTS, DEFAULT_RETRY_MODE, StandardRetryStrategy } from \"./defaultStrategy\";\n\nexport const ENV_MAX_ATTEMPTS = \"AWS_MAX_ATTEMPTS\";\nexport const CONFIG_MAX_ATTEMPTS = \"max_attempts\";\n\nexport const NODE_MAX_ATTEMPT_CONFIG_OPTIONS: LoadedConfigSelectors = {\n environmentVariableSelector: (env) => {\n const value = env[ENV_MAX_ATTEMPTS];\n if (!value) return undefined;\n const maxAttempt = parseInt(value);\n if (Number.isNaN(maxAttempt)) {\n throw new Error(`Environment variable ${ENV_MAX_ATTEMPTS} mast be a number, got \"${value}\"`);\n }\n return maxAttempt;\n },\n configFileSelector: (profile) => {\n const value = profile[CONFIG_MAX_ATTEMPTS];\n if (!value) return undefined;\n const maxAttempt = parseInt(value);\n if (Number.isNaN(maxAttempt)) {\n throw new Error(`Shared config file entry ${CONFIG_MAX_ATTEMPTS} mast be a number, got \"${value}\"`);\n }\n return maxAttempt;\n },\n default: DEFAULT_MAX_ATTEMPTS,\n};\n\nexport interface RetryInputConfig {\n /**\n * The maximum number of times requests that encounter retryable failures should be attempted.\n */\n maxAttempts?: number | Provider;\n /**\n * The strategy to retry the request. Using built-in exponential backoff strategy by default.\n */\n retryStrategy?: RetryStrategy;\n}\n\ninterface PreviouslyResolved {}\nexport interface RetryResolvedConfig {\n maxAttempts: Provider;\n retryStrategy: RetryStrategy;\n}\n\nexport const resolveRetryConfig = (input: T & PreviouslyResolved & RetryInputConfig): T & RetryResolvedConfig => {\n const maxAttempts = normalizeMaxAttempts(input.maxAttempts);\n return {\n ...input,\n maxAttempts,\n retryStrategy: input.retryStrategy || new StandardRetryStrategy(maxAttempts),\n };\n};\n\nconst normalizeMaxAttempts = (maxAttempts: number | Provider = DEFAULT_MAX_ATTEMPTS): Provider => {\n if (typeof maxAttempts === \"number\") {\n const promisified = Promise.resolve(maxAttempts);\n return () => promisified;\n }\n return maxAttempts;\n};\n\nexport const ENV_RETRY_MODE = \"AWS_RETRY_MODE\";\nexport const CONFIG_RETRY_MODE = \"retry_mode\";\n\nexport const NODE_RETRY_MODE_CONFIG_OPTIONS: LoadedConfigSelectors = {\n environmentVariableSelector: (env) => env[ENV_RETRY_MODE],\n configFileSelector: (profile) => profile[CONFIG_RETRY_MODE],\n default: DEFAULT_RETRY_MODE,\n};\n","import { fromUtf8 as jsFromUtf8, toUtf8 as jsToUtf8 } from \"./pureJs\";\nimport { fromUtf8 as textEncoderFromUtf8, toUtf8 as textEncoderToUtf8 } from \"./whatwgEncodingApi\";\n\ndeclare const TextDecoder: Function | undefined;\ndeclare const TextEncoder: Function | undefined;\n\nexport const fromUtf8 = (input: string): Uint8Array =>\n typeof TextEncoder === \"function\" ? textEncoderFromUtf8(input) : jsFromUtf8(input);\n\nexport const toUtf8 = (input: Uint8Array): string =>\n typeof TextDecoder === \"function\" ? textEncoderToUtf8(input) : jsToUtf8(input);\n","import { RegionInfo, RegionInfoProvider } from \"@aws-sdk/types\";\n\n// Partition default templates\nconst AWS_TEMPLATE = \"cognito-identity.{region}.amazonaws.com\";\nconst AWS_CN_TEMPLATE = \"cognito-identity.{region}.amazonaws.com.cn\";\nconst AWS_ISO_TEMPLATE = \"cognito-identity.{region}.c2s.ic.gov\";\nconst AWS_ISO_B_TEMPLATE = \"cognito-identity.{region}.sc2s.sgov.gov\";\nconst AWS_US_GOV_TEMPLATE = \"cognito-identity.{region}.amazonaws.com\";\n\n// Partition regions\nconst AWS_REGIONS = new Set([\n \"af-south-1\",\n \"ap-east-1\",\n \"ap-northeast-1\",\n \"ap-northeast-2\",\n \"ap-south-1\",\n \"ap-southeast-1\",\n \"ap-southeast-2\",\n \"ca-central-1\",\n \"eu-central-1\",\n \"eu-north-1\",\n \"eu-south-1\",\n \"eu-west-1\",\n \"eu-west-2\",\n \"eu-west-3\",\n \"me-south-1\",\n \"sa-east-1\",\n \"us-east-1\",\n \"us-east-2\",\n \"us-west-1\",\n \"us-west-2\",\n]);\nconst AWS_CN_REGIONS = new Set([\"cn-north-1\", \"cn-northwest-1\"]);\nconst AWS_ISO_REGIONS = new Set([\"us-iso-east-1\"]);\nconst AWS_ISO_B_REGIONS = new Set([\"us-isob-east-1\"]);\nconst AWS_US_GOV_REGIONS = new Set([\"us-gov-east-1\", \"us-gov-west-1\"]);\n\nexport const defaultRegionInfoProvider: RegionInfoProvider = (region: string, options?: any) => {\n let regionInfo: RegionInfo | undefined = undefined;\n switch (region) {\n // First, try to match exact region names.\n case \"ap-northeast-1\":\n regionInfo = {\n hostname: \"cognito-identity.ap-northeast-1.amazonaws.com\",\n partition: \"aws\",\n };\n break;\n case \"ap-northeast-2\":\n regionInfo = {\n hostname: \"cognito-identity.ap-northeast-2.amazonaws.com\",\n partition: \"aws\",\n };\n break;\n case \"ap-south-1\":\n regionInfo = {\n hostname: \"cognito-identity.ap-south-1.amazonaws.com\",\n partition: \"aws\",\n };\n break;\n case \"ap-southeast-1\":\n regionInfo = {\n hostname: \"cognito-identity.ap-southeast-1.amazonaws.com\",\n partition: \"aws\",\n };\n break;\n case \"ap-southeast-2\":\n regionInfo = {\n hostname: \"cognito-identity.ap-southeast-2.amazonaws.com\",\n partition: \"aws\",\n };\n break;\n case \"ca-central-1\":\n regionInfo = {\n hostname: \"cognito-identity.ca-central-1.amazonaws.com\",\n partition: \"aws\",\n };\n break;\n case \"cn-north-1\":\n regionInfo = {\n hostname: \"cognito-identity.cn-north-1.amazonaws.com.cn\",\n partition: \"aws-cn\",\n };\n break;\n case \"eu-central-1\":\n regionInfo = {\n hostname: \"cognito-identity.eu-central-1.amazonaws.com\",\n partition: \"aws\",\n };\n break;\n case \"eu-north-1\":\n regionInfo = {\n hostname: \"cognito-identity.eu-north-1.amazonaws.com\",\n partition: \"aws\",\n };\n break;\n case \"eu-west-1\":\n regionInfo = {\n hostname: \"cognito-identity.eu-west-1.amazonaws.com\",\n partition: \"aws\",\n };\n break;\n case \"eu-west-2\":\n regionInfo = {\n hostname: \"cognito-identity.eu-west-2.amazonaws.com\",\n partition: \"aws\",\n };\n break;\n case \"eu-west-3\":\n regionInfo = {\n hostname: \"cognito-identity.eu-west-3.amazonaws.com\",\n partition: \"aws\",\n };\n break;\n case \"fips-us-east-1\":\n regionInfo = {\n hostname: \"cognito-identity-fips.us-east-1.amazonaws.com\",\n partition: \"aws\",\n signingRegion: \"us-east-1\",\n };\n break;\n case \"fips-us-east-2\":\n regionInfo = {\n hostname: \"cognito-identity-fips.us-east-2.amazonaws.com\",\n partition: \"aws\",\n signingRegion: \"us-east-2\",\n };\n break;\n case \"fips-us-gov-west-1\":\n regionInfo = {\n hostname: \"cognito-identity-fips.us-gov-west-1.amazonaws.com\",\n partition: \"aws-us-gov\",\n signingRegion: \"us-gov-west-1\",\n };\n break;\n case \"fips-us-west-2\":\n regionInfo = {\n hostname: \"cognito-identity-fips.us-west-2.amazonaws.com\",\n partition: \"aws\",\n signingRegion: \"us-west-2\",\n };\n break;\n case \"sa-east-1\":\n regionInfo = {\n hostname: \"cognito-identity.sa-east-1.amazonaws.com\",\n partition: \"aws\",\n };\n break;\n case \"us-east-1\":\n regionInfo = {\n hostname: \"cognito-identity.us-east-1.amazonaws.com\",\n partition: \"aws\",\n };\n break;\n case \"us-east-2\":\n regionInfo = {\n hostname: \"cognito-identity.us-east-2.amazonaws.com\",\n partition: \"aws\",\n };\n break;\n case \"us-gov-west-1\":\n regionInfo = {\n hostname: \"cognito-identity.us-gov-west-1.amazonaws.com\",\n partition: \"aws-us-gov\",\n };\n break;\n case \"us-west-1\":\n regionInfo = {\n hostname: \"cognito-identity.us-west-1.amazonaws.com\",\n partition: \"aws\",\n };\n break;\n case \"us-west-2\":\n regionInfo = {\n hostname: \"cognito-identity.us-west-2.amazonaws.com\",\n partition: \"aws\",\n };\n break;\n // Next, try to match partition endpoints.\n default:\n if (AWS_REGIONS.has(region)) {\n regionInfo = {\n hostname: AWS_TEMPLATE.replace(\"{region}\", region),\n partition: \"aws\",\n };\n }\n if (AWS_CN_REGIONS.has(region)) {\n regionInfo = {\n hostname: AWS_CN_TEMPLATE.replace(\"{region}\", region),\n partition: \"aws-cn\",\n };\n }\n if (AWS_ISO_REGIONS.has(region)) {\n regionInfo = {\n hostname: AWS_ISO_TEMPLATE.replace(\"{region}\", region),\n partition: \"aws-iso\",\n };\n }\n if (AWS_ISO_B_REGIONS.has(region)) {\n regionInfo = {\n hostname: AWS_ISO_B_TEMPLATE.replace(\"{region}\", region),\n partition: \"aws-iso-b\",\n };\n }\n if (AWS_US_GOV_REGIONS.has(region)) {\n regionInfo = {\n hostname: AWS_US_GOV_TEMPLATE.replace(\"{region}\", region),\n partition: \"aws-us-gov\",\n };\n }\n // Finally, assume it's an AWS partition endpoint.\n if (regionInfo === undefined) {\n regionInfo = {\n hostname: AWS_TEMPLATE.replace(\"{region}\", region),\n partition: \"aws\",\n };\n }\n }\n return Promise.resolve({ signingService: \"cognito-identity\", ...regionInfo });\n};\n","import { parseQueryString } from \"@aws-sdk/querystring-parser\";\nimport { Endpoint, QueryParameterBag, UrlParser } from \"@aws-sdk/types\";\n\nexport const parseUrl: UrlParser = (url: string): Endpoint => {\n const { hostname, pathname, port, protocol, search } = new URL(url);\n\n let query: QueryParameterBag | undefined;\n if (search) {\n query = parseQueryString(search);\n }\n\n return {\n hostname,\n port: port ? parseInt(port) : undefined,\n protocol,\n path: pathname,\n query,\n };\n};\n","import { defaultRegionInfoProvider } from \"./endpoints\";\nimport { Logger as __Logger } from \"@aws-sdk/types\";\nimport { parseUrl } from \"@aws-sdk/url-parser\";\n\n/**\n * @internal\n */\nexport const ClientSharedValues = {\n apiVersion: \"2014-06-30\",\n disableHostPrefix: false,\n logger: {} as __Logger,\n regionInfoProvider: defaultRegionInfoProvider,\n serviceId: \"Cognito Identity\",\n urlParser: parseUrl,\n};\n","import { QueryParameterBag } from \"@aws-sdk/types\";\n\nexport function parseQueryString(querystring: string): QueryParameterBag {\n const query: QueryParameterBag = {};\n querystring = querystring.replace(/^\\?/, \"\");\n\n if (querystring) {\n for (const pair of querystring.split(\"&\")) {\n let [key, value = null] = pair.split(\"=\");\n key = decodeURIComponent(key);\n if (value) {\n value = decodeURIComponent(value);\n }\n if (!(key in query)) {\n query[key] = value;\n } else if (Array.isArray(query[key])) {\n (query[key] as Array).push(value as string);\n } else {\n query[key] = [query[key] as string, value as string];\n }\n }\n }\n\n return query;\n}\n","import packageInfo from \"./package.json\";\n\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 { ClientDefaults } from \"./CognitoIdentityClient\";\nimport { ClientSharedValues } from \"./runtimeConfig.shared\";\n\n/**\n * @internal\n */\nexport const ClientDefaultValues: Required = {\n ...ClientSharedValues,\n runtime: \"browser\",\n base64Decoder: fromBase64,\n base64Encoder: toBase64,\n bodyLengthChecker: calculateBodyLength,\n credentialDefaultProvider: (_: unknown) => () => Promise.reject(new Error(\"Credential is missing\")),\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,\n utf8Decoder: fromUtf8,\n utf8Encoder: toUtf8,\n};\n","export function calculateBodyLength(body: any): number | undefined {\n if (typeof body === \"string\") {\n let len = body.length;\n\n for (let i = len - 1; i >= 0; i--) {\n const code = body.charCodeAt(i);\n if (code > 0x7f && code <= 0x7ff) len++;\n 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}\n","import { Provider, UserAgent } from \"@aws-sdk/types\";\nimport bowser from \"bowser\";\n\nimport { DefaultUserAgentOptions } from \"./configurations\";\n\n/**\n * Default provider to the user agent in browsers. It's a best effort to infer\n * the device information. It uses bowser library to detect the browser and virsion\n */\nexport const defaultUserAgent = ({\n serviceId,\n clientVersion,\n}: DefaultUserAgentOptions): Provider => async () => {\n const parsedUA = window?.navigator?.userAgent ? bowser.parse(window.navigator.userAgent) : undefined;\n const sections: UserAgent = [\n // sdk-metadata\n [\"aws-sdk-js\", clientVersion],\n // os-metadata\n [`os/${parsedUA?.os?.name || \"other\"}`, parsedUA?.os?.version],\n // language-metadata\n // ECMAScript edition doesn't matter in JS.\n [\"lang/js\"],\n // browser vendor and version.\n [\"md/browser\", `${parsedUA?.browser?.name ?? \"unknown\"}_${parsedUA?.browser?.version ?? \"unknown\"}`],\n ];\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 sections;\n};\n","/**\n * A declaration of the global TextEncoder and TextDecoder constructors.\n *\n * @see https://encoding.spec.whatwg.org/\n */\n// eslint-disable-next-line @typescript-eslint/no-namespace\nnamespace Encoding {\n interface TextDecoderOptions {\n fatal?: boolean;\n ignoreBOM?: boolean;\n }\n\n interface TextDecodeOptions {\n stream?: boolean;\n }\n\n interface TextDecoder {\n readonly encoding: string;\n readonly fatal: boolean;\n readonly ignoreBOM: boolean;\n decode(input?: ArrayBuffer | ArrayBufferView, options?: TextDecodeOptions): string;\n }\n\n export interface TextDecoderConstructor {\n new (label?: string, options?: TextDecoderOptions): TextDecoder;\n }\n\n interface TextEncoder {\n readonly encoding: \"utf-8\";\n encode(input?: string): Uint8Array;\n }\n\n export interface TextEncoderConstructor {\n new (): TextEncoder;\n }\n}\n\ndeclare const TextDecoder: Encoding.TextDecoderConstructor;\n\ndeclare const TextEncoder: Encoding.TextEncoderConstructor;\n\nexport function fromUtf8(input: string): Uint8Array {\n return new TextEncoder().encode(input);\n}\n\nexport function toUtf8(input: Uint8Array): string {\n return new TextDecoder(\"utf-8\").decode(input);\n}\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 const fromUtf8 = (input: string): Uint8Array => {\n const bytes: Array = [];\n for (let i = 0, len = input.length; i < len; i++) {\n const value = input.charCodeAt(i);\n if (value < 0x80) {\n bytes.push(value);\n } else if (value < 0x800) {\n bytes.push((value >> 6) | 0b11000000, (value & 0b111111) | 0b10000000);\n } else if (i + 1 < input.length && (value & 0xfc00) === 0xd800 && (input.charCodeAt(i + 1) & 0xfc00) === 0xdc00) {\n const surrogatePair = 0x10000 + ((value & 0b1111111111) << 10) + (input.charCodeAt(++i) & 0b1111111111);\n bytes.push(\n (surrogatePair >> 18) | 0b11110000,\n ((surrogatePair >> 12) & 0b111111) | 0b10000000,\n ((surrogatePair >> 6) & 0b111111) | 0b10000000,\n (surrogatePair & 0b111111) | 0b10000000\n );\n } else {\n bytes.push((value >> 12) | 0b11100000, ((value >> 6) & 0b111111) | 0b10000000, (value & 0b111111) | 0b10000000);\n }\n }\n\n return Uint8Array.from(bytes);\n};\n\n/**\n * Converts a typed array of bytes containing UTF-8 data into a native JS\n * string.\n *\n * Partly cribbed from the `goog.crypt.utf8ByteArrayToString` function in the\n * Google Closure library, though updated to use typed arrays and to better\n * handle astral plane code points.\n */\nexport const toUtf8 = (input: Uint8Array): string => {\n let decoded = \"\";\n for (let i = 0, len = input.length; i < len; i++) {\n const byte = input[i];\n if (byte < 0x80) {\n decoded += String.fromCharCode(byte);\n } else if (0b11000000 <= byte && byte < 0b11100000) {\n const nextByte = input[++i];\n decoded += String.fromCharCode(((byte & 0b11111) << 6) | (nextByte & 0b111111));\n } else if (0b11110000 <= byte && byte < 0b101101101) {\n const surrogatePair = [byte, input[++i], input[++i], input[++i]];\n const encoded = \"%\" + surrogatePair.map((byteValue) => byteValue.toString(16)).join(\"%\");\n decoded += decodeURIComponent(encoded);\n } else {\n decoded += String.fromCharCode(\n ((byte & 0b1111) << 12) | ((input[++i] & 0b111111) << 6) | (input[++i] & 0b111111)\n );\n }\n }\n\n return decoded;\n};\n","import { Endpoint, Provider, RegionInfoProvider, UrlParser } from \"@aws-sdk/types\";\n\nexport interface EndpointsInputConfig {\n /**\n * The fully qualified endpoint of the webservice. This is only required when using a custom endpoint (for example, when using a local version of S3).\n */\n endpoint?: string | Endpoint | Provider;\n\n /**\n * Whether TLS is enabled for requests.\n */\n tls?: boolean;\n}\n\ninterface PreviouslyResolved {\n regionInfoProvider: RegionInfoProvider;\n urlParser: UrlParser;\n region: Provider;\n}\n\nexport interface EndpointsResolvedConfig extends Required {\n endpoint: Provider;\n isCustomEndpoint: boolean;\n}\n\nexport const resolveEndpointsConfig = (\n input: T & EndpointsInputConfig & PreviouslyResolved\n): T & EndpointsResolvedConfig => ({\n ...input,\n tls: input.tls ?? true,\n endpoint: input.endpoint ? normalizeEndpoint(input) : () => getEndPointFromRegion(input),\n isCustomEndpoint: input.endpoint ? true : false,\n});\n\nconst normalizeEndpoint = (input: EndpointsInputConfig & PreviouslyResolved): Provider => {\n const { endpoint, urlParser } = input;\n if (typeof endpoint === \"string\") {\n const promisified = Promise.resolve(urlParser(endpoint));\n return () => promisified;\n } else if (typeof endpoint === \"object\") {\n const promisified = Promise.resolve(endpoint);\n return () => promisified;\n }\n return endpoint!;\n};\n\nconst getEndPointFromRegion = async (input: EndpointsInputConfig & PreviouslyResolved) => {\n const { tls = true } = input;\n const region = await input.region();\n\n const dnsHostRegex = new RegExp(/^([a-zA-Z0-9]|[a-zA-Z0-9][a-zA-Z0-9-]{0,61}[a-zA-Z0-9])$/);\n if (!dnsHostRegex.test(region)) {\n throw new Error(\"Invalid region in client config\");\n }\n\n const { hostname } = (await input.regionInfoProvider(region)) ?? {};\n if (!hostname) {\n throw new Error(\"Cannot resolve hostname from client config\");\n }\n\n return input.urlParser(`${tls ? \"https:\" : \"http:\"}//${hostname}`);\n};\n","import { LoadedConfigSelectors, LocalConfigOptions } from \"@aws-sdk/node-config-provider\";\nimport { Provider } from \"@aws-sdk/types\";\n\nexport const REGION_ENV_NAME = \"AWS_REGION\";\nexport const REGION_INI_NAME = \"region\";\n\nexport const NODE_REGION_CONFIG_OPTIONS: LoadedConfigSelectors = {\n environmentVariableSelector: (env) => env[REGION_ENV_NAME],\n configFileSelector: (profile) => profile[REGION_INI_NAME],\n default: () => {\n throw new Error(\"Region is missing\");\n },\n};\n\nexport const NODE_REGION_CONFIG_FILE_OPTIONS: LocalConfigOptions = {\n preferredFile: \"credentials\",\n};\n\nexport interface RegionInputConfig {\n /**\n * The AWS region to which this client will send requests\n */\n region?: string | Provider;\n}\n\ninterface PreviouslyResolved {}\n\nexport interface RegionResolvedConfig {\n region: Provider;\n}\n\nexport const resolveRegionConfig = (input: T & RegionInputConfig & PreviouslyResolved): T & RegionResolvedConfig => {\n if (!input.region) {\n throw new Error(\"Region is missing\");\n }\n return {\n ...input,\n region: normalizeRegion(input.region!),\n };\n};\n\nconst normalizeRegion = (region: string | Provider): Provider => {\n if (typeof region === \"string\") {\n const promisified = Promise.resolve(region);\n return () => promisified;\n }\n return region as Provider;\n};\n","import { HttpRequest } from \"@aws-sdk/protocol-http\";\nimport {\n BodyLengthCalculator,\n BuildHandler,\n BuildHandlerArguments,\n BuildHandlerOptions,\n BuildHandlerOutput,\n BuildMiddleware,\n MetadataBearer,\n Pluggable,\n} from \"@aws-sdk/types\";\n\nconst CONTENT_LENGTH_HEADER = \"content-length\";\n\nexport function contentLengthMiddleware(bodyLengthChecker: BodyLengthCalculator): BuildMiddleware {\n return (next: BuildHandler): BuildHandler => async (\n args: BuildHandlerArguments\n ): Promise> => {\n const request = args.request;\n if (HttpRequest.isInstance(request)) {\n const { body, headers } = request;\n if (\n body &&\n Object.keys(headers)\n .map((str) => str.toLowerCase())\n .indexOf(CONTENT_LENGTH_HEADER) === -1\n ) {\n const length = bodyLengthChecker(body);\n if (length !== undefined) {\n request.headers = {\n ...request.headers,\n [CONTENT_LENGTH_HEADER]: String(length),\n };\n }\n }\n }\n\n return next({\n ...args,\n request,\n });\n };\n}\n\nexport const contentLengthMiddlewareOptions: BuildHandlerOptions = {\n step: \"build\",\n tags: [\"SET_CONTENT_LENGTH\", \"CONTENT_LENGTH\"],\n name: \"contentLengthMiddleware\",\n override: true,\n};\n\nexport const getContentLengthPlugin = (options: { bodyLengthChecker: BodyLengthCalculator }): Pluggable => ({\n applyToStack: (clientStack) => {\n clientStack.add(contentLengthMiddleware(options.bodyLengthChecker), contentLengthMiddlewareOptions);\n },\n});\n","const SHORT_TO_HEX: { [key: number]: string } = {};\nconst HEX_TO_SHORT: { [key: string]: number } = {};\n\nfor (let i = 0; i < 256; i++) {\n let encodedByte = i.toString(16).toLowerCase();\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/**\n * Converts a hexadecimal encoded string to a Uint8Array of bytes.\n *\n * @param encoded The hexadecimal encoded string\n */\nexport function fromHex(encoded: string): Uint8Array {\n if (encoded.length % 2 !== 0) {\n throw new Error(\"Hex encoded strings must have an even number length\");\n }\n\n const out = new Uint8Array(encoded.length / 2);\n for (let i = 0; i < encoded.length; i += 2) {\n const encodedByte = encoded.substr(i, 2).toLowerCase();\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/**\n * Converts a Uint8Array of binary data to a hexadecimal encoded string.\n *\n * @param bytes The binary data to encode\n */\nexport function toHex(bytes: Uint8Array): string {\n let out = \"\";\n for (let i = 0; i < bytes.byteLength; i++) {\n out += SHORT_TO_HEX[bytes[i]];\n }\n\n return out;\n}\n","import { HttpRequest } from \"@aws-sdk/protocol-http\";\nimport { AbsoluteLocation, BuildHandlerOptions, BuildMiddleware, Pluggable, RequestHandler } from \"@aws-sdk/types\";\n\nexport interface HostHeaderInputConfig {}\ninterface PreviouslyResolved {\n requestHandler: RequestHandler;\n}\nexport interface HostHeaderResolvedConfig {\n requestHandler: RequestHandler;\n}\nexport function resolveHostHeaderConfig(\n input: T & PreviouslyResolved & HostHeaderInputConfig\n): T & HostHeaderResolvedConfig {\n return input;\n}\n\nexport const hostHeaderMiddleware = (\n options: HostHeaderResolvedConfig\n): BuildMiddleware => (next) => async (args) => {\n if (!HttpRequest.isInstance(args.request)) return next(args);\n const { request } = args;\n const { handlerProtocol = \"\" } = options.requestHandler.metadata || {};\n //For H2 request, remove 'host' header and use ':authority' header instead\n //reference: https://nodejs.org/dist/latest-v13.x/docs/api/errors.html#ERR_HTTP2_INVALID_CONNECTION_HEADERS\n if (handlerProtocol.indexOf(\"h2\") >= 0 && !request.headers[\":authority\"]) {\n delete request.headers[\"host\"];\n request.headers[\":authority\"] = \"\";\n //non-H2 request and 'host' header is not set, set the 'host' header to request's hostname.\n } else if (!request.headers[\"host\"]) {\n request.headers[\"host\"] = request.hostname;\n }\n return next(args);\n};\n\nexport const hostHeaderMiddlewareOptions: BuildHandlerOptions & AbsoluteLocation = {\n name: \"hostHeaderMiddleware\",\n step: \"build\",\n priority: \"low\",\n tags: [\"HOST\"],\n override: true,\n};\n\nexport const getHostHeaderPlugin = (options: HostHeaderResolvedConfig): Pluggable => ({\n applyToStack: (clientStack) => {\n clientStack.add(hostHeaderMiddleware(options), hostHeaderMiddlewareOptions);\n },\n});\n","import { HttpResponse } from \"@aws-sdk/protocol-http\";\nimport {\n AbsoluteLocation,\n HandlerExecutionContext,\n InitializeHandler,\n InitializeHandlerArguments,\n InitializeHandlerOptions,\n InitializeHandlerOutput,\n MetadataBearer,\n Pluggable,\n} from \"@aws-sdk/types\";\n\nexport const loggerMiddleware = () => (\n next: InitializeHandler,\n context: HandlerExecutionContext\n): InitializeHandler => async (\n args: InitializeHandlerArguments\n): Promise> => {\n const { clientName, commandName, inputFilterSensitiveLog, logger, outputFilterSensitiveLog } = context;\n\n const response = await next(args);\n\n if (!logger) {\n return response;\n }\n\n if (typeof logger.info === \"function\") {\n const { $metadata, ...outputWithoutMetadata } = response.output;\n logger.info({\n clientName,\n commandName,\n input: inputFilterSensitiveLog(args.input),\n output: outputFilterSensitiveLog(outputWithoutMetadata),\n metadata: $metadata,\n });\n }\n\n return response;\n};\n\nexport const loggerMiddlewareOptions: InitializeHandlerOptions & AbsoluteLocation = {\n name: \"loggerMiddleware\",\n tags: [\"LOGGER\"],\n step: \"initialize\",\n override: true,\n};\n\n// eslint-disable-next-line @typescript-eslint/no-unused-vars\nexport const getLoggerPlugin = (options: any): Pluggable => ({\n applyToStack: (clientStack) => {\n clientStack.add(loggerMiddleware(), loggerMiddlewareOptions);\n },\n});\n","export const ALGORITHM_QUERY_PARAM = \"X-Amz-Algorithm\";\nexport const CREDENTIAL_QUERY_PARAM = \"X-Amz-Credential\";\nexport const AMZ_DATE_QUERY_PARAM = \"X-Amz-Date\";\nexport const SIGNED_HEADERS_QUERY_PARAM = \"X-Amz-SignedHeaders\";\nexport const EXPIRES_QUERY_PARAM = \"X-Amz-Expires\";\nexport const SIGNATURE_QUERY_PARAM = \"X-Amz-Signature\";\nexport const TOKEN_QUERY_PARAM = \"X-Amz-Security-Token\";\n\nexport const AUTH_HEADER = \"authorization\";\nexport const AMZ_DATE_HEADER = AMZ_DATE_QUERY_PARAM.toLowerCase();\nexport const DATE_HEADER = \"date\";\nexport const GENERATED_HEADERS = [AUTH_HEADER, AMZ_DATE_HEADER, DATE_HEADER];\nexport const SIGNATURE_HEADER = SIGNATURE_QUERY_PARAM.toLowerCase();\nexport const SHA256_HEADER = \"x-amz-content-sha256\";\nexport const TOKEN_HEADER = TOKEN_QUERY_PARAM.toLowerCase();\nexport const HOST_HEADER = \"host\";\n\nexport const 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};\n\nexport const PROXY_HEADER_PATTERN = /^proxy-/;\n\nexport const SEC_HEADER_PATTERN = /^sec-/;\n\nexport const UNSIGNABLE_PATTERNS = [/^proxy-/i, /^sec-/i];\n\nexport const ALGORITHM_IDENTIFIER = \"AWS4-HMAC-SHA256\";\n\nexport const EVENT_ALGORITHM_IDENTIFIER = \"AWS4-HMAC-SHA256-PAYLOAD\";\n\nexport const UNSIGNED_PAYLOAD = \"UNSIGNED-PAYLOAD\";\n\nexport const MAX_CACHE_SIZE = 50;\nexport const KEY_TYPE_IDENTIFIER = \"aws4_request\";\n\nexport const MAX_PRESIGNED_TTL = 60 * 60 * 24 * 7;\n","import { Credentials, HashConstructor, SourceData } from \"@aws-sdk/types\";\nimport { toHex } from \"@aws-sdk/util-hex-encoding\";\n\nimport { KEY_TYPE_IDENTIFIER, MAX_CACHE_SIZE } from \"./constants\";\n\nconst signingKeyCache: { [key: string]: Uint8Array } = {};\nconst cacheQueue: Array = [];\n\n/**\n * Create a string describing the scope of credentials used to sign a request.\n *\n * @param shortDate The current calendar date in the form YYYYMMDD.\n * @param region The AWS region in which the service resides.\n * @param service The service to which the signed request is being sent.\n */\nexport function createScope(shortDate: string, region: string, service: string): string {\n return `${shortDate}/${region}/${service}/${KEY_TYPE_IDENTIFIER}`;\n}\n\n/**\n * Derive a signing key from its composite parts\n *\n * @param sha256Constructor A constructor function that can instantiate SHA-256\n * hash objects.\n * @param credentials The credentials with which the request will be\n * signed.\n * @param shortDate The current calendar date in the form YYYYMMDD.\n * @param region The AWS region in which the service resides.\n * @param service The service to which the signed request is being\n * sent.\n */\nexport const getSigningKey = async (\n sha256Constructor: HashConstructor,\n credentials: Credentials,\n shortDate: string,\n region: string,\n service: string\n): Promise => {\n const credsHash = await hmac(sha256Constructor, credentials.secretAccessKey, credentials.accessKeyId);\n const cacheKey = `${shortDate}:${region}:${service}:${toHex(credsHash)}:${credentials.sessionToken}`;\n if (cacheKey in signingKeyCache) {\n return signingKeyCache[cacheKey];\n }\n\n cacheQueue.push(cacheKey);\n while (cacheQueue.length > MAX_CACHE_SIZE) {\n delete signingKeyCache[cacheQueue.shift() as string];\n }\n\n let key: SourceData = `AWS4${credentials.secretAccessKey}`;\n for (const signable of [shortDate, region, service, KEY_TYPE_IDENTIFIER]) {\n key = await hmac(sha256Constructor, key, signable);\n }\n return (signingKeyCache[cacheKey] = key as Uint8Array);\n};\n\n/**\n * @internal\n */\nexport function clearCredentialCache(): void {\n cacheQueue.length = 0;\n Object.keys(signingKeyCache).forEach((cacheKey) => {\n delete signingKeyCache[cacheKey];\n });\n}\n\nfunction hmac(ctor: HashConstructor, secret: SourceData, data: SourceData): Promise {\n const hash = new ctor(secret);\n hash.update(data);\n return hash.digest();\n}\n","import { HeaderBag, HttpRequest } from \"@aws-sdk/types\";\n\nimport { ALWAYS_UNSIGNABLE_HEADERS, PROXY_HEADER_PATTERN, SEC_HEADER_PATTERN } from \"./constants\";\n\n/**\n * @internal\n */\nexport function getCanonicalHeaders(\n { headers }: HttpRequest,\n unsignableHeaders?: Set,\n signableHeaders?: Set\n): HeaderBag {\n const canonical: HeaderBag = {};\n for (const headerName of Object.keys(headers).sort()) {\n const canonicalHeaderName = headerName.toLowerCase();\n if (\n canonicalHeaderName in ALWAYS_UNSIGNABLE_HEADERS ||\n unsignableHeaders?.has(canonicalHeaderName) ||\n PROXY_HEADER_PATTERN.test(canonicalHeaderName) ||\n SEC_HEADER_PATTERN.test(canonicalHeaderName)\n ) {\n if (!signableHeaders || (signableHeaders && !signableHeaders.has(canonicalHeaderName))) {\n continue;\n }\n }\n\n canonical[canonicalHeaderName] = headers[headerName].trim().replace(/\\s+/g, \" \");\n }\n\n return canonical;\n}\n","import { isArrayBuffer } from \"@aws-sdk/is-array-buffer\";\nimport { HashConstructor, HttpRequest } from \"@aws-sdk/types\";\nimport { toHex } from \"@aws-sdk/util-hex-encoding\";\n\nimport { SHA256_HEADER, UNSIGNED_PAYLOAD } from \"./constants\";\n\n/**\n * @internal\n */\nexport async function getPayloadHash(\n { headers, body }: HttpRequest,\n hashConstructor: HashConstructor\n): Promise {\n for (const headerName of Object.keys(headers)) {\n if (headerName.toLowerCase() === SHA256_HEADER) {\n return headers[headerName];\n }\n }\n\n if (body == undefined) {\n return \"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855\";\n } else if (typeof body === \"string\" || ArrayBuffer.isView(body) || isArrayBuffer(body)) {\n const hashCtor = new hashConstructor();\n hashCtor.update(body);\n return toHex(await hashCtor.digest());\n }\n\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 UNSIGNED_PAYLOAD;\n}\n","export const isArrayBuffer = (arg: any): arg is ArrayBuffer =>\n (typeof ArrayBuffer === \"function\" && arg instanceof ArrayBuffer) ||\n Object.prototype.toString.call(arg) === \"[object ArrayBuffer]\";\n","import { HttpRequest, QueryParameterBag } from \"@aws-sdk/types\";\n\n/**\n * @internal\n */\nexport function cloneRequest({ headers, query, ...rest }: HttpRequest): HttpRequest {\n return {\n ...rest,\n headers: { ...headers },\n query: query ? cloneQuery(query) : undefined,\n };\n}\n\nfunction cloneQuery(query: QueryParameterBag): QueryParameterBag {\n return Object.keys(query).reduce((carry: QueryParameterBag, paramName: string) => {\n const param = query[paramName];\n return {\n ...carry,\n [paramName]: Array.isArray(param) ? [...param] : param,\n };\n }, {});\n}\n","import { HttpRequest } from \"@aws-sdk/types\";\n\nimport { cloneRequest } from \"./cloneRequest\";\nimport { GENERATED_HEADERS } from \"./constants\";\n\n/**\n * @internal\n */\nexport function prepareRequest(request: HttpRequest): HttpRequest {\n // Create a clone of the request object that does not clone the body\n request = typeof (request as any).clone === \"function\" ? (request as any).clone() : cloneRequest(request);\n\n for (const headerName of Object.keys(request.headers)) {\n if (GENERATED_HEADERS.indexOf(headerName.toLowerCase()) > -1) {\n delete request.headers[headerName];\n }\n }\n\n return request;\n}\n","export function iso8601(time: number | string | Date): string {\n return toDate(time)\n .toISOString()\n .replace(/\\.\\d{3}Z$/, \"Z\");\n}\n\nexport function toDate(time: number | string | Date): Date {\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 return new Date(time);\n }\n\n return time;\n}\n","import {\n Credentials,\n DateInput,\n EventSigner,\n EventSigningArguments,\n FormattedEvent,\n HashConstructor,\n HeaderBag,\n HttpRequest,\n Provider,\n RequestPresigner,\n RequestPresigningArguments,\n RequestSigner,\n RequestSigningArguments,\n SigningArguments,\n StringSigner,\n} from \"@aws-sdk/types\";\nimport { toHex } from \"@aws-sdk/util-hex-encoding\";\n\nimport {\n ALGORITHM_IDENTIFIER,\n ALGORITHM_QUERY_PARAM,\n AMZ_DATE_HEADER,\n AMZ_DATE_QUERY_PARAM,\n AUTH_HEADER,\n CREDENTIAL_QUERY_PARAM,\n EVENT_ALGORITHM_IDENTIFIER,\n EXPIRES_QUERY_PARAM,\n MAX_PRESIGNED_TTL,\n SHA256_HEADER,\n SIGNATURE_QUERY_PARAM,\n SIGNED_HEADERS_QUERY_PARAM,\n TOKEN_HEADER,\n TOKEN_QUERY_PARAM,\n} 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\nexport interface SignatureV4Init {\n /**\n * The service signing name.\n */\n service: string;\n\n /**\n * The region name or a function that returns a promise that will be\n * resolved with the region name.\n */\n region: string | Provider;\n\n /**\n * The credentials with which the request should be signed or a function\n * that returns a promise that will be resolved with credentials.\n */\n credentials: Credentials | Provider;\n\n /**\n * A constructor function for a hash object that will calculate SHA-256 HMAC\n * checksums.\n */\n sha256?: HashConstructor;\n\n /**\n * Whether to uri-escape the request URI path as part of computing the\n * canonical request string. This is required for every AWS service, except\n * Amazon S3, as of late 2017.\n *\n * @default [true]\n */\n uriEscapePath?: boolean;\n\n /**\n * Whether to calculate a checksum of the request body and include it as\n * either a request header (when signing) or as a query string parameter\n * (when presigning). This is required for AWS Glacier and Amazon S3 and optional for\n * every other AWS service as of late 2017.\n *\n * @default [true]\n */\n applyChecksum?: boolean;\n}\n\nexport interface SignatureV4CryptoInit {\n sha256: HashConstructor;\n}\n\nexport class SignatureV4 implements RequestPresigner, RequestSigner, StringSigner, EventSigner {\n private readonly service: string;\n private readonly regionProvider: Provider;\n private readonly credentialProvider: Provider;\n private readonly sha256: HashConstructor;\n private readonly uriEscapePath: boolean;\n private readonly applyChecksum: boolean;\n\n constructor({\n applyChecksum,\n credentials,\n region,\n service,\n sha256,\n uriEscapePath = true,\n }: SignatureV4Init & SignatureV4CryptoInit) {\n this.service = service;\n this.sha256 = sha256;\n this.uriEscapePath = uriEscapePath;\n // default to true if applyChecksum isn't set\n this.applyChecksum = typeof applyChecksum === \"boolean\" ? applyChecksum : true;\n this.regionProvider = normalizeRegionProvider(region);\n this.credentialProvider = normalizeCredentialsProvider(credentials);\n }\n\n public async presign(originalRequest: HttpRequest, options: RequestPresigningArguments = {}): Promise {\n const {\n signingDate = new Date(),\n expiresIn = 3600,\n unsignableHeaders,\n unhoistableHeaders,\n signableHeaders,\n signingRegion,\n signingService,\n } = options;\n const credentials = await this.credentialProvider();\n const region = signingRegion ?? (await this.regionProvider());\n\n const { longDate, shortDate } = formatDate(signingDate);\n if (expiresIn > MAX_PRESIGNED_TTL) {\n return Promise.reject(\n \"Signature version 4 presigned URLs\" + \" must have an expiration date less than one week in\" + \" the future\"\n );\n }\n\n const scope = createScope(shortDate, region, signingService ?? this.service);\n const request = moveHeadersToQuery(prepareRequest(originalRequest), { unhoistableHeaders });\n\n if (credentials.sessionToken) {\n request.query[TOKEN_QUERY_PARAM] = credentials.sessionToken;\n }\n request.query[ALGORITHM_QUERY_PARAM] = ALGORITHM_IDENTIFIER;\n request.query[CREDENTIAL_QUERY_PARAM] = `${credentials.accessKeyId}/${scope}`;\n request.query[AMZ_DATE_QUERY_PARAM] = longDate;\n request.query[EXPIRES_QUERY_PARAM] = expiresIn.toString(10);\n\n const canonicalHeaders = getCanonicalHeaders(request, unsignableHeaders, signableHeaders);\n request.query[SIGNED_HEADERS_QUERY_PARAM] = getCanonicalHeaderList(canonicalHeaders);\n\n request.query[SIGNATURE_QUERY_PARAM] = await this.getSignature(\n longDate,\n scope,\n this.getSigningKey(credentials, region, shortDate, signingService),\n this.createCanonicalRequest(request, canonicalHeaders, await getPayloadHash(originalRequest, this.sha256))\n );\n\n return request;\n }\n\n public async sign(stringToSign: string, options?: SigningArguments): Promise;\n public async sign(event: FormattedEvent, options: EventSigningArguments): Promise;\n public async sign(requestToSign: HttpRequest, options?: RequestSigningArguments): Promise;\n public async sign(toSign: any, options: any): Promise {\n if (typeof toSign === \"string\") {\n return this.signString(toSign, options);\n } else if (toSign.headers && toSign.payload) {\n return this.signEvent(toSign, options);\n } else {\n return this.signRequest(toSign, options);\n }\n }\n\n private async signEvent(\n { headers, payload }: FormattedEvent,\n { signingDate = new Date(), priorSignature, signingRegion, signingService }: EventSigningArguments\n ): Promise {\n const region = signingRegion ?? (await this.regionProvider());\n const { shortDate, longDate } = formatDate(signingDate);\n const scope = createScope(shortDate, region, signingService ?? this.service);\n const hashedPayload = await getPayloadHash({ headers: {}, body: payload } as any, this.sha256);\n const hash = new this.sha256();\n hash.update(headers);\n const hashedHeaders = toHex(await hash.digest());\n const stringToSign = [\n EVENT_ALGORITHM_IDENTIFIER,\n longDate,\n scope,\n priorSignature,\n hashedHeaders,\n hashedPayload,\n ].join(\"\\n\");\n return this.signString(stringToSign, { signingDate, signingRegion: region, signingService });\n }\n\n private async signString(\n stringToSign: string,\n { signingDate = new Date(), signingRegion, signingService }: SigningArguments = {}\n ): Promise {\n const credentials = await this.credentialProvider();\n const region = signingRegion ?? (await this.regionProvider());\n const { shortDate } = formatDate(signingDate);\n\n const hash = new this.sha256(await this.getSigningKey(credentials, region, shortDate, signingService));\n hash.update(stringToSign);\n return toHex(await hash.digest());\n }\n\n private async signRequest(\n requestToSign: HttpRequest,\n {\n signingDate = new Date(),\n signableHeaders,\n unsignableHeaders,\n signingRegion,\n signingService,\n }: RequestSigningArguments = {}\n ): Promise {\n const credentials = await this.credentialProvider();\n const region = signingRegion ?? (await this.regionProvider());\n const request = prepareRequest(requestToSign);\n const { longDate, shortDate } = formatDate(signingDate);\n const scope = createScope(shortDate, region, signingService ?? this.service);\n\n request.headers[AMZ_DATE_HEADER] = longDate;\n if (credentials.sessionToken) {\n request.headers[TOKEN_HEADER] = credentials.sessionToken;\n }\n\n const payloadHash = await getPayloadHash(request, this.sha256);\n if (!hasHeader(SHA256_HEADER, request.headers) && this.applyChecksum) {\n request.headers[SHA256_HEADER] = payloadHash;\n }\n\n const canonicalHeaders = getCanonicalHeaders(request, unsignableHeaders, signableHeaders);\n const signature = await this.getSignature(\n longDate,\n scope,\n this.getSigningKey(credentials, region, shortDate, signingService),\n this.createCanonicalRequest(request, canonicalHeaders, payloadHash)\n );\n\n request.headers[AUTH_HEADER] =\n `${ALGORITHM_IDENTIFIER} ` +\n `Credential=${credentials.accessKeyId}/${scope}, ` +\n `SignedHeaders=${getCanonicalHeaderList(canonicalHeaders)}, ` +\n `Signature=${signature}`;\n\n return request;\n }\n\n private createCanonicalRequest(request: HttpRequest, canonicalHeaders: HeaderBag, payloadHash: string): string {\n const sortedHeaders = Object.keys(canonicalHeaders).sort();\n return `${request.method}\n${this.getCanonicalPath(request)}\n${getCanonicalQuery(request)}\n${sortedHeaders.map((name) => `${name}:${canonicalHeaders[name]}`).join(\"\\n\")}\n\n${sortedHeaders.join(\";\")}\n${payloadHash}`;\n }\n\n private async createStringToSign(\n longDate: string,\n credentialScope: string,\n canonicalRequest: string\n ): Promise {\n const hash = new this.sha256();\n hash.update(canonicalRequest);\n const hashedRequest = await hash.digest();\n\n return `${ALGORITHM_IDENTIFIER}\n${longDate}\n${credentialScope}\n${toHex(hashedRequest)}`;\n }\n\n private getCanonicalPath({ path }: HttpRequest): string {\n if (this.uriEscapePath) {\n const doubleEncoded = encodeURIComponent(path.replace(/^\\//, \"\"));\n return `/${doubleEncoded.replace(/%2F/g, \"/\")}`;\n }\n\n return path;\n }\n\n private async getSignature(\n longDate: string,\n credentialScope: string,\n keyPromise: Promise,\n canonicalRequest: string\n ): Promise {\n const stringToSign = await this.createStringToSign(longDate, credentialScope, canonicalRequest);\n\n const hash = new this.sha256(await keyPromise);\n hash.update(stringToSign);\n return toHex(await hash.digest());\n }\n\n private getSigningKey(\n credentials: Credentials,\n region: string,\n shortDate: string,\n service?: string\n ): Promise {\n return getSigningKey(this.sha256, credentials, shortDate, region, service || this.service);\n }\n}\n\nconst formatDate = (now: DateInput): { longDate: string; shortDate: string } => {\n const longDate = iso8601(now).replace(/[\\-:]/g, \"\");\n return {\n longDate,\n shortDate: longDate.substr(0, 8),\n };\n};\n\nconst getCanonicalHeaderList = (headers: object): string => Object.keys(headers).sort().join(\";\");\n\nconst normalizeRegionProvider = (region: string | Provider): Provider => {\n if (typeof region === \"string\") {\n const promisified = Promise.resolve(region);\n return () => promisified;\n } else {\n return region;\n }\n};\n\nconst normalizeCredentialsProvider = (credentials: Credentials | Provider): Provider => {\n if (typeof credentials === \"object\") {\n const promisified = Promise.resolve(credentials);\n return () => promisified;\n } else {\n return credentials;\n }\n};\n","import { HttpRequest, QueryParameterBag } from \"@aws-sdk/types\";\n\nimport { cloneRequest } from \"./cloneRequest\";\n\n/**\n * @internal\n */\nexport function moveHeadersToQuery(\n request: HttpRequest,\n options: { unhoistableHeaders?: Set } = {}\n): HttpRequest & { query: QueryParameterBag } {\n const { headers, query = {} as QueryParameterBag } =\n typeof (request as any).clone === \"function\" ? (request as any).clone() : cloneRequest(request);\n for (const name of Object.keys(headers)) {\n const lname = name.toLowerCase();\n if (lname.substr(0, 6) === \"x-amz-\" && !options.unhoistableHeaders?.has(lname)) {\n query[name] = headers[name];\n delete headers[name];\n }\n }\n\n return {\n ...request,\n headers,\n query,\n };\n}\n","import { HeaderBag } from \"@aws-sdk/types\";\n\nexport function hasHeader(soughtHeader: string, headers: HeaderBag): boolean {\n soughtHeader = soughtHeader.toLowerCase();\n for (const headerName of Object.keys(headers)) {\n if (soughtHeader === headerName.toLowerCase()) {\n return true;\n }\n }\n\n return false;\n}\n","import { HttpRequest } from \"@aws-sdk/types\";\nimport { escapeUri } from \"@aws-sdk/util-uri-escape\";\n\nimport { SIGNATURE_HEADER } from \"./constants\";\n\n/**\n * @internal\n */\nexport function getCanonicalQuery({ query = {} }: HttpRequest): string {\n const keys: Array = [];\n const serialized: { [key: string]: string } = {};\n for (const key of Object.keys(query).sort()) {\n if (key.toLowerCase() === SIGNATURE_HEADER) {\n continue;\n }\n\n keys.push(key);\n const value = query[key];\n if (typeof value === \"string\") {\n serialized[key] = `${escapeUri(key)}=${escapeUri(value)}`;\n } else if (Array.isArray(value)) {\n serialized[key] = value\n .slice(0)\n .sort()\n .reduce(\n (encoded: Array, value: string) => encoded.concat([`${escapeUri(key)}=${escapeUri(value)}`]),\n []\n )\n .join(\"&\");\n }\n }\n\n return keys\n .map((key) => serialized[key])\n .filter((serialized) => serialized) // omit any falsy values\n .join(\"&\");\n}\n","import { SignatureV4 } from \"@aws-sdk/signature-v4\";\nimport { Credentials, HashConstructor, Provider, RegionInfo, RegionInfoProvider, RequestSigner } from \"@aws-sdk/types\";\n\nexport interface AwsAuthInputConfig {\n /**\n * The credentials used to sign requests.\n */\n credentials?: Credentials | Provider;\n\n /**\n * The signer to use when signing requests.\n */\n signer?: RequestSigner | Provider;\n\n /**\n * Whether to escape request path when signing the request.\n */\n signingEscapePath?: boolean;\n\n /**\n * An offset value in milliseconds to apply to all signing times.\n */\n systemClockOffset?: number;\n\n /**\n * The region where you want to sign your request against. This\n * can be different to the region in the endpoint.\n */\n signingRegion?: string;\n}\ninterface PreviouslyResolved {\n credentialDefaultProvider: (input: any) => Provider;\n region: string | Provider;\n regionInfoProvider: RegionInfoProvider;\n signingName?: string;\n serviceId: string;\n sha256: HashConstructor;\n}\nexport interface AwsAuthResolvedConfig {\n credentials: Provider;\n signer: Provider;\n signingEscapePath: boolean;\n systemClockOffset: number;\n}\nexport function resolveAwsAuthConfig(input: T & AwsAuthInputConfig & PreviouslyResolved): T & AwsAuthResolvedConfig {\n const credentials = input.credentials || input.credentialDefaultProvider(input as any);\n const normalizedCreds = normalizeProvider(credentials);\n const { signingEscapePath = true, systemClockOffset = input.systemClockOffset || 0, sha256 } = input;\n let signer: Provider;\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 = () =>\n normalizeProvider(input.region)()\n .then(async (region) => [(await input.regionInfoProvider(region)) || {}, region] as [RegionInfo, string])\n .then(([regionInfo, region]) => {\n const { signingRegion, signingService } = regionInfo;\n //update client's singing region and signing service config if they are resolved.\n //signing region resolving order: user supplied signingRegion -> endpoints.json inferred region -> client region\n input.signingRegion = input.signingRegion || signingRegion || region;\n //signing name resolving order:\n //user supplied signingName -> endpoints.json inferred (credential scope -> model arnNamespace) -> model service id\n input.signingName = input.signingName || signingService || input.serviceId;\n\n return new SignatureV4({\n credentials: normalizedCreds,\n region: input.signingRegion,\n service: input.signingName,\n sha256,\n uriEscapePath: signingEscapePath,\n });\n });\n }\n\n return {\n ...input,\n systemClockOffset,\n signingEscapePath,\n credentials: normalizedCreds,\n signer,\n };\n}\n\nfunction normalizeProvider(input: T | Provider): Provider {\n if (typeof input === \"object\") {\n const promisified = Promise.resolve(input);\n return () => promisified;\n }\n return input as Provider;\n}\n","export const USER_AGENT = \"user-agent\";\n\nexport const X_AMZ_USER_AGENT = \"x-amz-user-agent\";\n\nexport const SPACE = \" \";\n\nexport const UA_ESCAPE_REGEX = /[^\\!\\#\\$\\%\\&\\'\\*\\+\\-\\.\\^\\_\\`\\|\\~\\d\\w]/g;\n","import { HttpRequest } from \"@aws-sdk/protocol-http\";\nimport {\n AbsoluteLocation,\n BuildHandler,\n BuildHandlerArguments,\n BuildHandlerOptions,\n BuildHandlerOutput,\n HandlerExecutionContext,\n MetadataBearer,\n Pluggable,\n UserAgentPair,\n} from \"@aws-sdk/types\";\n\nimport { UserAgentResolvedConfig } from \"./configurations\";\nimport { SPACE, UA_ESCAPE_REGEX, USER_AGENT, X_AMZ_USER_AGENT } from \"./constants\";\n\n/**\n * Build user agent header sections from:\n * 1. runtime-specific default user agent provider;\n * 2. custom user agent from `customUserAgent` client config;\n * 3. handler execution context set by internal SDK components;\n * The built user agent will be set to `x-amz-user-agent` header for ALL the\n * runtimes.\n * Please note that any override to the `user-agent` or `x-amz-user-agent` header\n * in the HTTP request is discouraged. Please use `customUserAgent` client\n * config or middleware setting the `userAgent` context to generate desired user\n * agent.\n */\nexport const userAgentMiddleware = (options: UserAgentResolvedConfig) => (\n next: BuildHandler,\n context: HandlerExecutionContext\n): BuildHandler => async (args: BuildHandlerArguments): Promise> => {\n const { request } = args;\n if (!HttpRequest.isInstance(request)) return next(args);\n const { headers } = request;\n const userAgent = context?.userAgent?.map(escapeUserAgent) || [];\n const defaultUserAgent = (await options.defaultUserAgentProvider()).map(escapeUserAgent);\n const customUserAgent = options?.customUserAgent?.map(escapeUserAgent) || [];\n // Set value to AWS-specific user agent header\n headers[X_AMZ_USER_AGENT] = [...defaultUserAgent, ...userAgent, ...customUserAgent].join(SPACE);\n // Get value to be sent with non-AWS-specific user agent header.\n const normalUAValue = [\n ...defaultUserAgent.filter((section) => section.startsWith(\"aws-sdk-\")),\n ...customUserAgent,\n ].join(SPACE);\n if (options.runtime !== \"browser\" && normalUAValue) {\n headers[USER_AGENT] = headers[USER_AGENT] ? `${headers[USER_AGENT]} ${normalUAValue}` : normalUAValue;\n }\n\n return next({\n ...args,\n request,\n });\n};\n\n/**\n * Escape the each pair according to https://tools.ietf.org/html/rfc5234 and join the pair with pattern `name/version`.\n * User agent name may include prefix like `md/`, `api/`, `os/` etc., we should not escape the `/` after the prefix.\n * @private\n */\nconst escapeUserAgent = ([name, version]: UserAgentPair): string => {\n const prefixSeparatorIndex = name.indexOf(\"/\");\n const prefix = name.substring(0, prefixSeparatorIndex); // If no prefix, prefix is just \"\"\n let uaName = name.substring(prefixSeparatorIndex + 1);\n if (prefix === \"api\") {\n uaName = uaName.toLowerCase();\n }\n return [prefix, uaName, version]\n .filter((item) => item && item.length > 0)\n .map((item) => item?.replace(UA_ESCAPE_REGEX, \"_\"))\n .join(\"/\");\n};\n\nexport const getUserAgentMiddlewareOptions: BuildHandlerOptions & AbsoluteLocation = {\n name: \"getUserAgentMiddleware\",\n step: \"build\",\n priority: \"low\",\n tags: [\"SET_USER_AGENT\", \"USER_AGENT\"],\n override: true,\n};\n\nexport const getUserAgentPlugin = (config: UserAgentResolvedConfig): Pluggable => ({\n applyToStack: (clientStack) => {\n clientStack.add(userAgentMiddleware(config), getUserAgentMiddlewareOptions);\n },\n});\n","import { CreateIdentityPoolCommandInput, CreateIdentityPoolCommandOutput } from \"./commands/CreateIdentityPoolCommand\";\nimport { DeleteIdentitiesCommandInput, DeleteIdentitiesCommandOutput } from \"./commands/DeleteIdentitiesCommand\";\nimport { DeleteIdentityPoolCommandInput, DeleteIdentityPoolCommandOutput } from \"./commands/DeleteIdentityPoolCommand\";\nimport { DescribeIdentityCommandInput, DescribeIdentityCommandOutput } from \"./commands/DescribeIdentityCommand\";\nimport {\n DescribeIdentityPoolCommandInput,\n DescribeIdentityPoolCommandOutput,\n} from \"./commands/DescribeIdentityPoolCommand\";\nimport {\n GetCredentialsForIdentityCommandInput,\n GetCredentialsForIdentityCommandOutput,\n} from \"./commands/GetCredentialsForIdentityCommand\";\nimport { GetIdCommandInput, GetIdCommandOutput } from \"./commands/GetIdCommand\";\nimport {\n GetIdentityPoolRolesCommandInput,\n GetIdentityPoolRolesCommandOutput,\n} from \"./commands/GetIdentityPoolRolesCommand\";\nimport { GetOpenIdTokenCommandInput, GetOpenIdTokenCommandOutput } from \"./commands/GetOpenIdTokenCommand\";\nimport {\n GetOpenIdTokenForDeveloperIdentityCommandInput,\n GetOpenIdTokenForDeveloperIdentityCommandOutput,\n} from \"./commands/GetOpenIdTokenForDeveloperIdentityCommand\";\nimport { ListIdentitiesCommandInput, ListIdentitiesCommandOutput } from \"./commands/ListIdentitiesCommand\";\nimport { ListIdentityPoolsCommandInput, ListIdentityPoolsCommandOutput } from \"./commands/ListIdentityPoolsCommand\";\nimport {\n ListTagsForResourceCommandInput,\n ListTagsForResourceCommandOutput,\n} from \"./commands/ListTagsForResourceCommand\";\nimport {\n LookupDeveloperIdentityCommandInput,\n LookupDeveloperIdentityCommandOutput,\n} from \"./commands/LookupDeveloperIdentityCommand\";\nimport {\n MergeDeveloperIdentitiesCommandInput,\n MergeDeveloperIdentitiesCommandOutput,\n} from \"./commands/MergeDeveloperIdentitiesCommand\";\nimport {\n SetIdentityPoolRolesCommandInput,\n SetIdentityPoolRolesCommandOutput,\n} from \"./commands/SetIdentityPoolRolesCommand\";\nimport { TagResourceCommandInput, TagResourceCommandOutput } from \"./commands/TagResourceCommand\";\nimport {\n UnlinkDeveloperIdentityCommandInput,\n UnlinkDeveloperIdentityCommandOutput,\n} from \"./commands/UnlinkDeveloperIdentityCommand\";\nimport { UnlinkIdentityCommandInput, UnlinkIdentityCommandOutput } from \"./commands/UnlinkIdentityCommand\";\nimport { UntagResourceCommandInput, UntagResourceCommandOutput } from \"./commands/UntagResourceCommand\";\nimport { UpdateIdentityPoolCommandInput, UpdateIdentityPoolCommandOutput } from \"./commands/UpdateIdentityPoolCommand\";\nimport { ClientDefaultValues as __ClientDefaultValues } from \"./runtimeConfig\";\nimport {\n EndpointsInputConfig,\n EndpointsResolvedConfig,\n RegionInputConfig,\n RegionResolvedConfig,\n resolveEndpointsConfig,\n resolveRegionConfig,\n} from \"@aws-sdk/config-resolver\";\nimport { getContentLengthPlugin } from \"@aws-sdk/middleware-content-length\";\nimport {\n HostHeaderInputConfig,\n HostHeaderResolvedConfig,\n getHostHeaderPlugin,\n resolveHostHeaderConfig,\n} from \"@aws-sdk/middleware-host-header\";\nimport { getLoggerPlugin } from \"@aws-sdk/middleware-logger\";\nimport { RetryInputConfig, RetryResolvedConfig, getRetryPlugin, resolveRetryConfig } from \"@aws-sdk/middleware-retry\";\nimport { AwsAuthInputConfig, AwsAuthResolvedConfig, resolveAwsAuthConfig } from \"@aws-sdk/middleware-signing\";\nimport {\n UserAgentInputConfig,\n UserAgentResolvedConfig,\n getUserAgentPlugin,\n resolveUserAgentConfig,\n} from \"@aws-sdk/middleware-user-agent\";\nimport { HttpHandler as __HttpHandler } from \"@aws-sdk/protocol-http\";\nimport {\n Client as __Client,\n SmithyConfiguration as __SmithyConfiguration,\n SmithyResolvedConfiguration as __SmithyResolvedConfiguration,\n} from \"@aws-sdk/smithy-client\";\nimport {\n Provider,\n RegionInfoProvider,\n Credentials as __Credentials,\n Decoder as __Decoder,\n Encoder as __Encoder,\n HashConstructor as __HashConstructor,\n HttpHandlerOptions as __HttpHandlerOptions,\n Logger as __Logger,\n Provider as __Provider,\n StreamCollector as __StreamCollector,\n UrlParser as __UrlParser,\n UserAgent as __UserAgent,\n} from \"@aws-sdk/types\";\n\nexport type ServiceInputTypes =\n | CreateIdentityPoolCommandInput\n | DeleteIdentitiesCommandInput\n | DeleteIdentityPoolCommandInput\n | DescribeIdentityCommandInput\n | DescribeIdentityPoolCommandInput\n | GetCredentialsForIdentityCommandInput\n | GetIdCommandInput\n | GetIdentityPoolRolesCommandInput\n | GetOpenIdTokenCommandInput\n | GetOpenIdTokenForDeveloperIdentityCommandInput\n | ListIdentitiesCommandInput\n | ListIdentityPoolsCommandInput\n | ListTagsForResourceCommandInput\n | LookupDeveloperIdentityCommandInput\n | MergeDeveloperIdentitiesCommandInput\n | SetIdentityPoolRolesCommandInput\n | TagResourceCommandInput\n | UnlinkDeveloperIdentityCommandInput\n | UnlinkIdentityCommandInput\n | UntagResourceCommandInput\n | UpdateIdentityPoolCommandInput;\n\nexport type ServiceOutputTypes =\n | CreateIdentityPoolCommandOutput\n | DeleteIdentitiesCommandOutput\n | DeleteIdentityPoolCommandOutput\n | DescribeIdentityCommandOutput\n | DescribeIdentityPoolCommandOutput\n | GetCredentialsForIdentityCommandOutput\n | GetIdCommandOutput\n | GetIdentityPoolRolesCommandOutput\n | GetOpenIdTokenCommandOutput\n | GetOpenIdTokenForDeveloperIdentityCommandOutput\n | ListIdentitiesCommandOutput\n | ListIdentityPoolsCommandOutput\n | ListTagsForResourceCommandOutput\n | LookupDeveloperIdentityCommandOutput\n | MergeDeveloperIdentitiesCommandOutput\n | SetIdentityPoolRolesCommandOutput\n | TagResourceCommandOutput\n | UnlinkDeveloperIdentityCommandOutput\n | UnlinkIdentityCommandOutput\n | UntagResourceCommandOutput\n | UpdateIdentityPoolCommandOutput;\n\nexport interface ClientDefaults extends Partial<__SmithyResolvedConfiguration<__HttpHandlerOptions>> {\n /**\n * The HTTP handler to use. Fetch in browser and Https in Nodejs.\n */\n requestHandler?: __HttpHandler;\n\n /**\n * A constructor for a class implementing the @aws-sdk/types.Hash interface\n * that computes the SHA-256 HMAC or checksum of a string or binary buffer.\n */\n sha256?: __HashConstructor;\n\n /**\n * The function that will be used to convert strings into HTTP endpoints.\n */\n urlParser?: __UrlParser;\n\n /**\n * A function that can calculate the length of a request body.\n */\n bodyLengthChecker?: (body: any) => number | undefined;\n\n /**\n * A function that converts a stream into an array of bytes.\n */\n streamCollector?: __StreamCollector;\n\n /**\n * The function that will be used to convert a base64-encoded string to a byte array\n */\n base64Decoder?: __Decoder;\n\n /**\n * The function that will be used to convert binary data to a base64-encoded string\n */\n base64Encoder?: __Encoder;\n\n /**\n * The function that will be used to convert a UTF8-encoded string to a byte array\n */\n utf8Decoder?: __Decoder;\n\n /**\n * The function that will be used to convert binary data to a UTF-8 encoded string\n */\n utf8Encoder?: __Encoder;\n\n /**\n * The runtime environment\n */\n runtime?: string;\n\n /**\n * Disable dyanamically changing the endpoint of the client based on the hostPrefix\n * trait of an operation.\n */\n disableHostPrefix?: boolean;\n\n /**\n * Unique service identifier.\n * @internal\n */\n serviceId?: string;\n\n /**\n * Default credentials provider; Not available in browser runtime\n */\n credentialDefaultProvider?: (input: any) => __Provider<__Credentials>;\n\n /**\n * The AWS region to which this client will send requests\n */\n region?: string | __Provider;\n\n /**\n * Value for how many times a request will be made at most in case of retry.\n */\n maxAttempts?: number | __Provider;\n\n /**\n * Optional logger for logging debug/info/warn/error.\n */\n logger?: __Logger;\n\n /**\n * Fetch related hostname, signing name or signing region with given region.\n */\n regionInfoProvider?: RegionInfoProvider;\n\n /**\n * The provider populating default tracking information to be sent with `user-agent`, `x-amz-user-agent` header\n * @internal\n */\n defaultUserAgentProvider?: Provider<__UserAgent>;\n}\n\nexport type CognitoIdentityClientConfig = Partial<__SmithyConfiguration<__HttpHandlerOptions>> &\n ClientDefaults &\n RegionInputConfig &\n EndpointsInputConfig &\n AwsAuthInputConfig &\n RetryInputConfig &\n HostHeaderInputConfig &\n UserAgentInputConfig;\n\nexport type CognitoIdentityClientResolvedConfig = __SmithyResolvedConfiguration<__HttpHandlerOptions> &\n Required &\n RegionResolvedConfig &\n EndpointsResolvedConfig &\n AwsAuthResolvedConfig &\n RetryResolvedConfig &\n HostHeaderResolvedConfig &\n UserAgentResolvedConfig;\n\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 */\nexport class CognitoIdentityClient extends __Client<\n __HttpHandlerOptions,\n ServiceInputTypes,\n ServiceOutputTypes,\n CognitoIdentityClientResolvedConfig\n> {\n readonly config: CognitoIdentityClientResolvedConfig;\n\n constructor(configuration: CognitoIdentityClientConfig) {\n let _config_0 = {\n ...__ClientDefaultValues,\n ...configuration,\n };\n let _config_1 = resolveRegionConfig(_config_0);\n let _config_2 = resolveEndpointsConfig(_config_1);\n let _config_3 = resolveAwsAuthConfig(_config_2);\n let _config_4 = resolveRetryConfig(_config_3);\n let _config_5 = resolveHostHeaderConfig(_config_4);\n let _config_6 = resolveUserAgentConfig(_config_5);\n super(_config_6);\n this.config = _config_6;\n this.middlewareStack.use(getRetryPlugin(this.config));\n this.middlewareStack.use(getContentLengthPlugin(this.config));\n this.middlewareStack.use(getHostHeaderPlugin(this.config));\n this.middlewareStack.use(getLoggerPlugin(this.config));\n this.middlewareStack.use(getUserAgentPlugin(this.config));\n }\n\n destroy(): void {\n super.destroy();\n }\n}\n","import { Provider, UserAgent } from \"@aws-sdk/types\";\nexport interface UserAgentInputConfig {\n /**\n * The custom user agent header that would be appended to default one\n */\n customUserAgent?: string | UserAgent;\n}\ninterface PreviouslyResolved {\n defaultUserAgentProvider: Provider;\n runtime: string;\n}\nexport interface UserAgentResolvedConfig {\n defaultUserAgentProvider: Provider;\n customUserAgent?: UserAgent;\n runtime: string;\n}\nexport function resolveUserAgentConfig(\n input: T & PreviouslyResolved & UserAgentInputConfig\n): T & UserAgentResolvedConfig {\n return {\n ...input,\n customUserAgent: typeof input.customUserAgent === \"string\" ? [[input.customUserAgent]] : input.customUserAgent,\n };\n}\n","// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nimport { version } from './version';\n\nconst BASE_USER_AGENT = `aws-amplify/${version}`;\n\nexport const Platform = {\n\tuserAgent: `${BASE_USER_AGENT} js`,\n\tproduct: '',\n\tnavigator: null,\n\tisReactNative: false,\n};\nif (typeof navigator !== 'undefined' && navigator.product) {\n\tPlatform.product = navigator.product || '';\n\tPlatform.navigator = navigator || null;\n\tswitch (navigator.product) {\n\t\tcase 'ReactNative':\n\t\t\tPlatform.userAgent = `${BASE_USER_AGENT} react-native`;\n\t\t\tPlatform.isReactNative = true;\n\t\t\tbreak;\n\t\tdefault:\n\t\t\tPlatform.userAgent = `${BASE_USER_AGENT} js`;\n\t\t\tPlatform.isReactNative = false;\n\t\t\tbreak;\n\t}\n}\n\nexport const getAmplifyUserAgent = (content?: string) => {\n\treturn `${Platform.userAgent}${content ? content : ''}`;\n};\n","// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\n\nimport {\n\tCognitoIdentityClient,\n\tCognitoIdentityClientConfig,\n} from '@aws-sdk/client-cognito-identity';\nimport { Provider } from '@aws-sdk/types';\nimport { getAmplifyUserAgent } from '../Platform';\n\n/**\n * Returns a CognitoIdentityClient with middleware\n * @param {CognitoIdentityClientConfig} config\n * @return {CognitoIdentityClient}\n */\nexport function createCognitoIdentityClient(\n\tconfig: CognitoIdentityClientConfig\n): CognitoIdentityClient {\n\tconst client = new CognitoIdentityClient({\n\t\tregion: config.region,\n\t\tcustomUserAgent: getAmplifyUserAgent(),\n\t});\n\n\tclient.middlewareStack.add(\n\t\t(next, _) => (args: any) => {\n\t\t\treturn next(middlewareArgs(args));\n\t\t},\n\t\t{\n\t\t\tstep: 'build',\n\t\t\tname: 'cacheControlMiddleWare',\n\t\t}\n\t);\n\n\treturn client;\n}\n\nexport function middlewareArgs(args: { request: any; input: any }) {\n\treturn {\n\t\t...args,\n\t\trequest: {\n\t\t\t...args.request,\n\t\t\theaders: {\n\t\t\t\t...args.request.headers,\n\t\t\t\t'cache-control': 'no-store',\n\t\t\t},\n\t\t},\n\t};\n}\n","import { ConsoleLogger as Logger } from './Logger';\nimport { StorageHelper } from './StorageHelper';\nimport { makeQuerablePromise } from './JS';\nimport { FacebookOAuth, GoogleOAuth } from './OAuthHelper';\nimport { jitteredExponentialRetry } from './Util';\nimport { ICredentials } from './types';\nimport { Amplify } from './Amplify';\nimport {\n\tfromCognitoIdentity,\n\tFromCognitoIdentityParameters,\n\tfromCognitoIdentityPool,\n\tFromCognitoIdentityPoolParameters,\n} from '@aws-sdk/credential-provider-cognito-identity';\nimport {\n\tGetIdCommand,\n\tGetCredentialsForIdentityCommand,\n} from '@aws-sdk/client-cognito-identity';\nimport { CredentialProvider } from '@aws-sdk/types';\nimport { parseAWSExports } from './parseAWSExports';\nimport { Hub } from './Hub';\nimport { createCognitoIdentityClient } from './Util/CognitoIdentityClient';\n\nconst logger = new Logger('Credentials');\n\nconst CREDENTIALS_TTL = 50 * 60 * 1000; // 50 min, can be modified on config if required in the future\n\nconst COGNITO_IDENTITY_KEY_PREFIX = 'CognitoIdentityId-';\n\nconst AMPLIFY_SYMBOL = (\n\ttypeof Symbol !== 'undefined' && typeof Symbol.for === 'function'\n\t\t? Symbol.for('amplify_default')\n\t\t: '@@amplify_default'\n) as Symbol;\n\nconst dispatchCredentialsEvent = (\n\tevent: string,\n\tdata: any,\n\tmessage: string\n) => {\n\tHub.dispatch('core', { event, data, message }, 'Credentials', AMPLIFY_SYMBOL);\n};\n\nexport class CredentialsClass {\n\tprivate _config;\n\tprivate _credentials;\n\tprivate _credentials_source;\n\tprivate _gettingCredPromise = null;\n\tprivate _refreshHandlers = {};\n\tprivate _storage;\n\tprivate _storageSync;\n\tprivate _identityId;\n\tprivate _nextCredentialsRefresh: Number;\n\n\t// Allow `Auth` to be injected for SSR, but Auth isn't a required dependency for Credentials\n\tAuth = undefined;\n\n\tconstructor(config) {\n\t\tthis.configure(config);\n\t\tthis._refreshHandlers['google'] = GoogleOAuth.refreshGoogleToken;\n\t\tthis._refreshHandlers['facebook'] = FacebookOAuth.refreshFacebookToken;\n\t}\n\n\tpublic getModuleName() {\n\t\treturn 'Credentials';\n\t}\n\n\tpublic getCredSource() {\n\t\treturn this._credentials_source;\n\t}\n\n\tpublic configure(config) {\n\t\tif (!config) return this._config || {};\n\n\t\tthis._config = Object.assign({}, this._config, config);\n\t\tconst { refreshHandlers } = this._config;\n\t\t// If the developer has provided an object of refresh handlers,\n\t\t// then we can merge the provided handlers with the current handlers.\n\t\tif (refreshHandlers) {\n\t\t\tthis._refreshHandlers = {\n\t\t\t\t...this._refreshHandlers,\n\t\t\t\t...refreshHandlers,\n\t\t\t};\n\t\t}\n\n\t\tthis._storage = this._config.storage;\n\n\t\tif (!this._storage) {\n\t\t\tthis._storage = new StorageHelper().getStorage();\n\t\t}\n\n\t\tthis._storageSync = Promise.resolve();\n\t\tif (typeof this._storage['sync'] === 'function') {\n\t\t\tthis._storageSync = this._storage['sync']();\n\t\t}\n\n\t\tdispatchCredentialsEvent(\n\t\t\t'credentials_configured',\n\t\t\tnull,\n\t\t\t`Credentials has been configured successfully`\n\t\t);\n\n\t\treturn this._config;\n\t}\n\n\tpublic get() {\n\t\tlogger.debug('getting credentials');\n\t\treturn this._pickupCredentials();\n\t}\n\n\t// currently we only store the guest identity in local storage\n\tprivate _getCognitoIdentityIdStorageKey(identityPoolId: string) {\n\t\treturn `${COGNITO_IDENTITY_KEY_PREFIX}${identityPoolId}`;\n\t}\n\n\tprivate _pickupCredentials() {\n\t\tlogger.debug('picking up credentials');\n\t\tif (!this._gettingCredPromise || !this._gettingCredPromise.isPending()) {\n\t\t\tlogger.debug('getting new cred promise');\n\t\t\tthis._gettingCredPromise = makeQuerablePromise(this._keepAlive());\n\t\t} else {\n\t\t\tlogger.debug('getting old cred promise');\n\t\t}\n\t\treturn this._gettingCredPromise;\n\t}\n\n\tprivate async _keepAlive() {\n\t\tlogger.debug('checking if credentials exists and not expired');\n\t\tconst cred = this._credentials;\n\t\tif (cred && !this._isExpired(cred) && !this._isPastTTL()) {\n\t\t\tlogger.debug('credentials not changed and not expired, directly return');\n\t\t\treturn Promise.resolve(cred);\n\t\t}\n\n\t\tlogger.debug('need to get a new credential or refresh the existing one');\n\n\t\t// Some use-cases don't require Auth for signing in, but use Credentials for guest users (e.g. Analytics)\n\t\t// Prefer locally scoped `Auth`, but fallback to registered `Amplify.Auth` global otherwise.\n\t\tconst { Auth = Amplify.Auth } = this;\n\n\t\tif (!Auth || typeof Auth.currentUserCredentials !== 'function') {\n\t\t\t// If Auth module is not imported, do a best effort to get guest credentials\n\t\t\treturn this._setCredentialsForGuest();\n\t\t}\n\n\t\tif (!this._isExpired(cred) && this._isPastTTL()) {\n\t\t\tlogger.debug('ttl has passed but token is not yet expired');\n\t\t\ttry {\n\t\t\t\tconst user = await Auth.currentUserPoolUser();\n\t\t\t\tconst session = await Auth.currentSession();\n\t\t\t\tconst refreshToken = session.refreshToken;\n\t\t\t\tconst refreshRequest = new Promise((res, rej) => {\n\t\t\t\t\tuser.refreshSession(refreshToken, (err, data) => {\n\t\t\t\t\t\treturn err ? rej(err) : res(data);\n\t\t\t\t\t});\n\t\t\t\t});\n\t\t\t\tawait refreshRequest; // note that rejections will be caught and handled in the catch block.\n\t\t\t} catch (err) {\n\t\t\t\t// should not throw because user might just be on guest access or is authenticated through federation\n\t\t\t\tlogger.debug('Error attempting to refreshing the session', err);\n\t\t\t}\n\t\t}\n\t\treturn Auth.currentUserCredentials();\n\t}\n\n\tpublic refreshFederatedToken(federatedInfo) {\n\t\tlogger.debug('Getting federated credentials');\n\t\tconst { provider, user, token, identity_id } = federatedInfo;\n\t\tlet { expires_at } = federatedInfo;\n\n\t\t// Make sure expires_at is in millis\n\t\texpires_at =\n\t\t\tnew Date(expires_at).getFullYear() === 1970\n\t\t\t\t? expires_at * 1000\n\t\t\t\t: expires_at;\n\n\t\tconst that = this;\n\t\tlogger.debug('checking if federated jwt token expired');\n\t\tif (expires_at > new Date().getTime()) {\n\t\t\t// if not expired\n\t\t\tlogger.debug('token not expired');\n\t\t\treturn this._setCredentialsFromFederation({\n\t\t\t\tprovider,\n\t\t\t\ttoken,\n\t\t\t\tuser,\n\t\t\t\tidentity_id,\n\t\t\t\texpires_at,\n\t\t\t});\n\t\t} else {\n\t\t\t// if refresh handler exists\n\t\t\tif (\n\t\t\t\tthat._refreshHandlers[provider] &&\n\t\t\t\ttypeof that._refreshHandlers[provider] === 'function'\n\t\t\t) {\n\t\t\t\tlogger.debug('getting refreshed jwt token from federation provider');\n\t\t\t\treturn this._providerRefreshWithRetry({\n\t\t\t\t\trefreshHandler: that._refreshHandlers[provider],\n\t\t\t\t\tprovider,\n\t\t\t\t\tuser,\n\t\t\t\t});\n\t\t\t} else {\n\t\t\t\tlogger.debug('no refresh handler for provider:', provider);\n\t\t\t\tthis.clear();\n\t\t\t\treturn Promise.reject('no refresh handler for provider');\n\t\t\t}\n\t\t}\n\t}\n\n\tprivate _providerRefreshWithRetry({ refreshHandler, provider, user }) {\n\t\tconst MAX_DELAY_MS = 10 * 1000;\n\t\t// refreshHandler will retry network errors, otherwise it will\n\t\t// return NonRetryableError to break out of jitteredExponentialRetry\n\t\treturn jitteredExponentialRetry(refreshHandler, [], MAX_DELAY_MS)\n\t\t\t.then(data => {\n\t\t\t\tlogger.debug('refresh federated token sucessfully', data);\n\t\t\t\treturn this._setCredentialsFromFederation({\n\t\t\t\t\tprovider,\n\t\t\t\t\ttoken: data.token,\n\t\t\t\t\tuser,\n\t\t\t\t\tidentity_id: data.identity_id,\n\t\t\t\t\texpires_at: data.expires_at,\n\t\t\t\t});\n\t\t\t})\n\t\t\t.catch(e => {\n\t\t\t\tconst isNetworkError =\n\t\t\t\t\ttypeof e === 'string' &&\n\t\t\t\t\te.toLowerCase().lastIndexOf('network error', e.length) === 0;\n\n\t\t\t\tif (!isNetworkError) {\n\t\t\t\t\tthis.clear();\n\t\t\t\t}\n\n\t\t\t\tlogger.debug('refresh federated token failed', e);\n\t\t\t\treturn Promise.reject('refreshing federation token failed: ' + e);\n\t\t\t});\n\t}\n\n\tprivate _isExpired(credentials): boolean {\n\t\tif (!credentials) {\n\t\t\tlogger.debug('no credentials for expiration check');\n\t\t\treturn true;\n\t\t}\n\t\tlogger.debug('are these credentials expired?', credentials);\n\t\tconst ts = Date.now();\n\n\t\t/* returns date object.\n\t\t\thttps://github.com/aws/aws-sdk-js-v3/blob/v1.0.0-beta.1/packages/types/src/credentials.ts#L26\n\t\t*/\n\t\tconst { expiration } = credentials;\n\t\treturn expiration.getTime() <= ts;\n\t}\n\n\tprivate _isPastTTL(): boolean {\n\t\treturn this._nextCredentialsRefresh <= Date.now();\n\t}\n\n\tprivate async _setCredentialsForGuest() {\n\t\tlogger.debug('setting credentials for guest');\n\t\tif (!this._config?.identityPoolId) {\n\t\t\t// If Credentials are not configured thru Auth module,\n\t\t\t// doing best effort to check if the library was configured\n\t\t\tthis._config = Object.assign(\n\t\t\t\t{},\n\t\t\t\tthis._config,\n\t\t\t\tparseAWSExports(this._config || {}).Auth\n\t\t\t);\n\t\t}\n\t\tconst { identityPoolId, region, mandatorySignIn, identityPoolRegion } =\n\t\t\tthis._config;\n\n\t\tif (mandatorySignIn) {\n\t\t\treturn Promise.reject(\n\t\t\t\t'cannot get guest credentials when mandatory signin enabled'\n\t\t\t);\n\t\t}\n\n\t\tif (!identityPoolId) {\n\t\t\tlogger.debug(\n\t\t\t\t'No Cognito Identity pool provided for unauthenticated access'\n\t\t\t);\n\t\t\treturn Promise.reject(\n\t\t\t\t'No Cognito Identity pool provided for unauthenticated access'\n\t\t\t);\n\t\t}\n\n\t\tif (!identityPoolRegion && !region) {\n\t\t\tlogger.debug('region is not configured for getting the credentials');\n\t\t\treturn Promise.reject(\n\t\t\t\t'region is not configured for getting the credentials'\n\t\t\t);\n\t\t}\n\n\t\tconst identityId = (this._identityId = await this._getGuestIdentityId());\n\n\t\tconst cognitoClient = createCognitoIdentityClient({\n\t\t\tregion: identityPoolRegion || region,\n\t\t});\n\n\t\tlet credentials = undefined;\n\t\tif (identityId) {\n\t\t\tconst cognitoIdentityParams: FromCognitoIdentityParameters = {\n\t\t\t\tidentityId,\n\t\t\t\tclient: cognitoClient,\n\t\t\t};\n\t\t\tcredentials = fromCognitoIdentity(cognitoIdentityParams)();\n\t\t} else {\n\t\t\t/*\n\t\t\tRetreiving identityId with GetIdCommand to mimic the behavior in the following code in aws-sdk-v3:\n\t\t\thttps://git.io/JeDxU\n\n\t\t\tNote: Retreive identityId from CredentialsProvider once aws-sdk-js v3 supports this.\n\t\t\t*/\n\t\t\tconst credentialsProvider: CredentialProvider = async () => {\n\t\t\t\tconst { IdentityId } = await cognitoClient.send(\n\t\t\t\t\tnew GetIdCommand({\n\t\t\t\t\t\tIdentityPoolId: identityPoolId,\n\t\t\t\t\t})\n\t\t\t\t);\n\t\t\t\tthis._identityId = IdentityId;\n\t\t\t\tconst cognitoIdentityParams: FromCognitoIdentityParameters = {\n\t\t\t\t\tclient: cognitoClient,\n\t\t\t\t\tidentityId: IdentityId,\n\t\t\t\t};\n\n\t\t\t\tconst credentialsFromCognitoIdentity = fromCognitoIdentity(\n\t\t\t\t\tcognitoIdentityParams\n\t\t\t\t);\n\n\t\t\t\treturn credentialsFromCognitoIdentity();\n\t\t\t};\n\n\t\t\tcredentials = credentialsProvider().catch(async err => {\n\t\t\t\tthrow err;\n\t\t\t});\n\t\t}\n\n\t\treturn this._loadCredentials(credentials, 'guest', false, null)\n\t\t\t.then(res => {\n\t\t\t\treturn res;\n\t\t\t})\n\t\t\t.catch(async e => {\n\t\t\t\t// If identity id is deleted in the console, we make one attempt to recreate it\n\t\t\t\t// and remove existing id from cache.\n\t\t\t\tif (\n\t\t\t\t\te.name === 'ResourceNotFoundException' &&\n\t\t\t\t\te.message === `Identity '${identityId}' not found.`\n\t\t\t\t) {\n\t\t\t\t\tlogger.debug('Failed to load guest credentials');\n\t\t\t\t\tawait this._removeGuestIdentityId();\n\n\t\t\t\t\tconst credentialsProvider: CredentialProvider = async () => {\n\t\t\t\t\t\tconst { IdentityId } = await cognitoClient.send(\n\t\t\t\t\t\t\tnew GetIdCommand({\n\t\t\t\t\t\t\t\tIdentityPoolId: identityPoolId,\n\t\t\t\t\t\t\t})\n\t\t\t\t\t\t);\n\t\t\t\t\t\tthis._identityId = IdentityId;\n\t\t\t\t\t\tconst cognitoIdentityParams: FromCognitoIdentityParameters = {\n\t\t\t\t\t\t\tclient: cognitoClient,\n\t\t\t\t\t\t\tidentityId: IdentityId,\n\t\t\t\t\t\t};\n\n\t\t\t\t\t\tconst credentialsFromCognitoIdentity = fromCognitoIdentity(\n\t\t\t\t\t\t\tcognitoIdentityParams\n\t\t\t\t\t\t);\n\n\t\t\t\t\t\treturn credentialsFromCognitoIdentity();\n\t\t\t\t\t};\n\n\t\t\t\t\tcredentials = credentialsProvider().catch(async err => {\n\t\t\t\t\t\tthrow err;\n\t\t\t\t\t});\n\n\t\t\t\t\treturn this._loadCredentials(credentials, 'guest', false, null);\n\t\t\t\t} else {\n\t\t\t\t\treturn e;\n\t\t\t\t}\n\t\t\t});\n\t}\n\n\tprivate _setCredentialsFromFederation(params) {\n\t\tconst { provider, token, identity_id } = params;\n\t\tconst domains = {\n\t\t\tgoogle: 'accounts.google.com',\n\t\t\tfacebook: 'graph.facebook.com',\n\t\t\tamazon: 'www.amazon.com',\n\t\t\tdeveloper: 'cognito-identity.amazonaws.com',\n\t\t};\n\n\t\t// Use custom provider url instead of the predefined ones\n\t\tconst domain = domains[provider] || provider;\n\t\tif (!domain) {\n\t\t\treturn Promise.reject('You must specify a federated provider');\n\t\t}\n\n\t\tconst logins = {};\n\t\tlogins[domain] = token;\n\n\t\tconst { identityPoolId, region, identityPoolRegion } = this._config;\n\t\tif (!identityPoolId) {\n\t\t\tlogger.debug('No Cognito Federated Identity pool provided');\n\t\t\treturn Promise.reject('No Cognito Federated Identity pool provided');\n\t\t}\n\t\tif (!identityPoolRegion && !region) {\n\t\t\tlogger.debug('region is not configured for getting the credentials');\n\t\t\treturn Promise.reject(\n\t\t\t\t'region is not configured for getting the credentials'\n\t\t\t);\n\t\t}\n\n\t\tconst cognitoClient = createCognitoIdentityClient({\n\t\t\tregion: identityPoolRegion || region,\n\t\t});\n\n\t\tlet credentials = undefined;\n\t\tif (identity_id) {\n\t\t\tconst cognitoIdentityParams: FromCognitoIdentityParameters = {\n\t\t\t\tidentityId: identity_id,\n\t\t\t\tlogins,\n\t\t\t\tclient: cognitoClient,\n\t\t\t};\n\t\t\tcredentials = fromCognitoIdentity(cognitoIdentityParams)();\n\t\t} else {\n\t\t\tconst cognitoIdentityParams: FromCognitoIdentityPoolParameters = {\n\t\t\t\tlogins,\n\t\t\t\tidentityPoolId,\n\t\t\t\tclient: cognitoClient,\n\t\t\t};\n\t\t\tcredentials = fromCognitoIdentityPool(cognitoIdentityParams)();\n\t\t}\n\t\treturn this._loadCredentials(credentials, 'federated', true, params);\n\t}\n\n\tprivate _setCredentialsFromSession(session): Promise {\n\t\tlogger.debug('set credentials from session');\n\t\tconst idToken = session.getIdToken().getJwtToken();\n\t\tconst { region, userPoolId, identityPoolId, identityPoolRegion } =\n\t\t\tthis._config;\n\t\tif (!identityPoolId) {\n\t\t\tlogger.debug('No Cognito Federated Identity pool provided');\n\t\t\treturn Promise.reject('No Cognito Federated Identity pool provided');\n\t\t}\n\t\tif (!identityPoolRegion && !region) {\n\t\t\tlogger.debug('region is not configured for getting the credentials');\n\t\t\treturn Promise.reject(\n\t\t\t\t'region is not configured for getting the credentials'\n\t\t\t);\n\t\t}\n\t\tconst key = 'cognito-idp.' + region + '.amazonaws.com/' + userPoolId;\n\t\tconst logins = {};\n\t\tlogins[key] = idToken;\n\n\t\tconst cognitoClient = createCognitoIdentityClient({\n\t\t\tregion: identityPoolRegion || region,\n\t\t});\n\n\t\t/* \n\t\t\tRetreiving identityId with GetIdCommand to mimic the behavior in the following code in aws-sdk-v3:\n\t\t\thttps://git.io/JeDxU\n\n\t\t\tNote: Retreive identityId from CredentialsProvider once aws-sdk-js v3 supports this.\n\t\t*/\n\t\tconst credentialsProvider: CredentialProvider = async () => {\n\t\t\t// try to fetch the local stored guest identity, if found, we will associate it with the logins\n\t\t\tconst guestIdentityId = await this._getGuestIdentityId();\n\n\t\t\tlet generatedOrRetrievedIdentityId;\n\t\t\tif (!guestIdentityId) {\n\t\t\t\t// for a first-time user, this will return a brand new identity\n\t\t\t\t// for a returning user, this will retrieve the previous identity assocaited with the logins\n\t\t\t\tconst { IdentityId } = await cognitoClient.send(\n\t\t\t\t\tnew GetIdCommand({\n\t\t\t\t\t\tIdentityPoolId: identityPoolId,\n\t\t\t\t\t\tLogins: logins,\n\t\t\t\t\t})\n\t\t\t\t);\n\t\t\t\tgeneratedOrRetrievedIdentityId = IdentityId;\n\t\t\t}\n\n\t\t\tconst {\n\t\t\t\tCredentials: { AccessKeyId, Expiration, SecretKey, SessionToken },\n\t\t\t\t// single source of truth for the primary identity associated with the logins\n\t\t\t\t// only if a guest identity is used for a first-time user, that guest identity will become its primary identity\n\t\t\t\tIdentityId: primaryIdentityId,\n\t\t\t} = await cognitoClient.send(\n\t\t\t\tnew GetCredentialsForIdentityCommand({\n\t\t\t\t\tIdentityId: guestIdentityId || generatedOrRetrievedIdentityId,\n\t\t\t\t\tLogins: logins,\n\t\t\t\t})\n\t\t\t);\n\n\t\t\tthis._identityId = primaryIdentityId;\n\t\t\tif (guestIdentityId) {\n\t\t\t\t// if guestIdentity is found and used by GetCredentialsForIdentity\n\t\t\t\t// it will be linked to the logins provided, and disqualified as an unauth identity\n\t\t\t\tlogger.debug(\n\t\t\t\t\t`The guest identity ${guestIdentityId} has been successfully linked to the logins`\n\t\t\t\t);\n\t\t\t\tif (guestIdentityId === primaryIdentityId) {\n\t\t\t\t\tlogger.debug(\n\t\t\t\t\t\t`The guest identity ${guestIdentityId} has become the primary identity`\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t\t// remove it from local storage to avoid being used as a guest Identity by _setCredentialsForGuest\n\t\t\t\tawait this._removeGuestIdentityId();\n\t\t\t}\n\n\t\t\t// https://github.com/aws/aws-sdk-js-v3/blob/main/packages/credential-provider-cognito-identity/src/fromCognitoIdentity.ts#L40\n\t\t\treturn {\n\t\t\t\taccessKeyId: AccessKeyId,\n\t\t\t\tsecretAccessKey: SecretKey,\n\t\t\t\tsessionToken: SessionToken,\n\t\t\t\texpiration: Expiration,\n\t\t\t\tidentityId: primaryIdentityId,\n\t\t\t};\n\t\t};\n\n\t\tconst credentials = credentialsProvider().catch(async err => {\n\t\t\tthrow err;\n\t\t});\n\n\t\treturn this._loadCredentials(credentials, 'userPool', true, null);\n\t}\n\n\tprivate _loadCredentials(\n\t\tcredentials,\n\t\tsource,\n\t\tauthenticated,\n\t\tinfo\n\t): Promise {\n\t\tconst that = this;\n\t\treturn new Promise((res, rej) => {\n\t\t\tcredentials\n\t\t\t\t.then(async credentials => {\n\t\t\t\t\tlogger.debug('Load credentials successfully', credentials);\n\t\t\t\t\tif (this._identityId && !credentials.identityId) {\n\t\t\t\t\t\tcredentials['identityId'] = this._identityId;\n\t\t\t\t\t}\n\n\t\t\t\t\tthat._credentials = credentials;\n\t\t\t\t\tthat._credentials.authenticated = authenticated;\n\t\t\t\t\tthat._credentials_source = source;\n\t\t\t\t\tthat._nextCredentialsRefresh = new Date().getTime() + CREDENTIALS_TTL;\n\t\t\t\t\tif (source === 'federated') {\n\t\t\t\t\t\tconst user = Object.assign(\n\t\t\t\t\t\t\t{ id: this._credentials.identityId },\n\t\t\t\t\t\t\tinfo.user\n\t\t\t\t\t\t);\n\t\t\t\t\t\tconst { provider, token, expires_at, identity_id } = info;\n\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\tthis._storage.setItem(\n\t\t\t\t\t\t\t\t'aws-amplify-federatedInfo',\n\t\t\t\t\t\t\t\tJSON.stringify({\n\t\t\t\t\t\t\t\t\tprovider,\n\t\t\t\t\t\t\t\t\ttoken,\n\t\t\t\t\t\t\t\t\tuser,\n\t\t\t\t\t\t\t\t\texpires_at,\n\t\t\t\t\t\t\t\t\tidentity_id,\n\t\t\t\t\t\t\t\t})\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t} catch (e) {\n\t\t\t\t\t\t\tlogger.debug('Failed to put federated info into auth storage', e);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tif (source === 'guest') {\n\t\t\t\t\t\tawait this._setGuestIdentityId(credentials.identityId);\n\t\t\t\t\t}\n\t\t\t\t\tres(that._credentials);\n\t\t\t\t\treturn;\n\t\t\t\t})\n\t\t\t\t.catch(err => {\n\t\t\t\t\tif (err) {\n\t\t\t\t\t\tlogger.debug('Failed to load credentials', credentials);\n\t\t\t\t\t\tlogger.debug('Error loading credentials', err);\n\t\t\t\t\t\trej(err);\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t});\n\t}\n\n\tpublic set(params, source): Promise {\n\t\tif (source === 'session') {\n\t\t\treturn this._setCredentialsFromSession(params);\n\t\t} else if (source === 'federation') {\n\t\t\treturn this._setCredentialsFromFederation(params);\n\t\t} else if (source === 'guest') {\n\t\t\treturn this._setCredentialsForGuest();\n\t\t} else {\n\t\t\tlogger.debug('no source specified for setting credentials');\n\t\t\treturn Promise.reject('invalid source');\n\t\t}\n\t}\n\n\tpublic async clear() {\n\t\tthis._credentials = null;\n\t\tthis._credentials_source = null;\n\t\tlogger.debug('removing aws-amplify-federatedInfo from storage');\n\t\tthis._storage.removeItem('aws-amplify-federatedInfo');\n\t}\n\n\t/* operations on local stored guest identity */\n\tprivate async _getGuestIdentityId(): Promise {\n\t\tconst { identityPoolId } = this._config;\n\t\ttry {\n\t\t\tawait this._storageSync;\n\t\t\treturn this._storage.getItem(\n\t\t\t\tthis._getCognitoIdentityIdStorageKey(identityPoolId)\n\t\t\t);\n\t\t} catch (e) {\n\t\t\tlogger.debug('Failed to get the cached guest identityId', e);\n\t\t}\n\t}\n\n\tprivate async _setGuestIdentityId(identityId: string) {\n\t\tconst { identityPoolId } = this._config;\n\t\ttry {\n\t\t\tawait this._storageSync;\n\t\t\tthis._storage.setItem(\n\t\t\t\tthis._getCognitoIdentityIdStorageKey(identityPoolId),\n\t\t\t\tidentityId\n\t\t\t);\n\t\t} catch (e) {\n\t\t\tlogger.debug('Failed to cache guest identityId', e);\n\t\t}\n\t}\n\n\tprivate async _removeGuestIdentityId() {\n\t\tconst { identityPoolId } = this._config;\n\t\tlogger.debug(\n\t\t\t`removing ${this._getCognitoIdentityIdStorageKey(\n\t\t\t\tidentityPoolId\n\t\t\t)} from storage`\n\t\t);\n\t\tthis._storage.removeItem(\n\t\t\tthis._getCognitoIdentityIdStorageKey(identityPoolId)\n\t\t);\n\t}\n\n\t/**\n\t * Compact version of credentials\n\t * @param {Object} credentials\n\t * @return {Object} - Credentials\n\t */\n\tpublic shear(credentials) {\n\t\treturn {\n\t\t\taccessKeyId: credentials.accessKeyId,\n\t\t\tsessionToken: credentials.sessionToken,\n\t\t\tsecretAccessKey: credentials.secretAccessKey,\n\t\t\tidentityId: credentials.identityId,\n\t\t\tauthenticated: credentials.authenticated,\n\t\t};\n\t}\n}\n\nexport const Credentials = new CredentialsClass(null);\n\nAmplify.register(Credentials);\n","/**\n * Date & time utility functions to abstract the `aws-sdk` away from users.\n * (v2 => v3 modularization is a breaking change)\n *\n * @see https://github.com/aws/aws-sdk-js/blob/6edf586dcc1de7fe8fbfbbd9a0d2b1847921e6e1/lib/util.js#L262\n */\n\n// Comment - TODO: remove\n\nconst FIVE_MINUTES_IN_MS = 1000 * 60 * 5;\n\nexport const DateUtils = {\n\t/**\n\t * Milliseconds to offset the date to compensate for clock skew between device & services\n\t */\n\tclockOffset: 0,\n\n\tgetDateWithClockOffset() {\n\t\tif (DateUtils.clockOffset) {\n\t\t\treturn new Date(new Date().getTime() + DateUtils.clockOffset);\n\t\t} else {\n\t\t\treturn new Date();\n\t\t}\n\t},\n\n\t/**\n\t * @returns {number} Clock offset in milliseconds\n\t */\n\tgetClockOffset() {\n\t\treturn DateUtils.clockOffset;\n\t},\n\n\tgetHeaderStringFromDate(date: Date = DateUtils.getDateWithClockOffset()) {\n\t\treturn date.toISOString().replace(/[:\\-]|\\.\\d{3}/g, '');\n\t},\n\n\tgetDateFromHeaderString(header: string) {\n\t\tconst [, year, month, day, hour, minute, second] = header.match(\n\t\t\t/^(\\d{4})(\\d{2})(\\d{2})T(\\d{2})(\\d{2})(\\d{2}).+/\n\t\t);\n\n\t\treturn new Date(\n\t\t\tDate.UTC(\n\t\t\t\tNumber(year),\n\t\t\t\tNumber(month) - 1,\n\t\t\t\tNumber(day),\n\t\t\t\tNumber(hour),\n\t\t\t\tNumber(minute),\n\t\t\t\tNumber(second)\n\t\t\t)\n\t\t);\n\t},\n\n\tisClockSkewed(serverDate: Date) {\n\t\t// API gateway permits client calls that are off by no more than ±5 minutes\n\t\treturn (\n\t\t\tMath.abs(\n\t\t\t\tserverDate.getTime() - DateUtils.getDateWithClockOffset().getTime()\n\t\t\t) >= FIVE_MINUTES_IN_MS\n\t\t);\n\t},\n\n\tisClockSkewError(error: any) {\n\t\tif (!error.response || !error.response.headers) {\n\t\t\treturn false;\n\t\t}\n\n\t\tconst { headers } = error.response;\n\n\t\treturn Boolean(\n\t\t\t['BadRequestException', 'InvalidSignatureException'].includes(\n\t\t\t\theaders['x-amzn-errortype']\n\t\t\t) &&\n\t\t\t\t(headers.date || headers.Date)\n\t\t);\n\t},\n\n\t/**\n\t * @param {number} offset Clock offset in milliseconds\n\t */\n\tsetClockOffset(offset: number) {\n\t\tDateUtils.clockOffset = offset;\n\t},\n};\n","// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\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';\n\nconst logger = new Logger('Signer');\n\nconst DEFAULT_ALGORITHM = 'AWS4-HMAC-SHA256';\nconst IOT_SERVICE_NAME = 'iotdevicegateway';\n\nconst encrypt = function(key, src) {\n\tconst hash = new jsSha256(key);\n\thash.update(src);\n\treturn hash.digestSync();\n};\n\nconst hash = function(src) {\n\tconst arg = src || '';\n\tconst hash = new jsSha256();\n\thash.update(arg);\n\treturn toHex(hash.digestSync());\n};\n\n/**\n * @private\n * RFC 3986 compliant version of encodeURIComponent\n */\nconst escape_RFC3986 = function(component) {\n\treturn component.replace(/[!'()*]/g, function(c) {\n\t\treturn '%' + c.charCodeAt(0).toString(16).toUpperCase();\n\t});\n};\n\n/**\n * @private\n * Create canonical query string\n *\n */\nconst canonical_query = function(query) {\n\tif (!query || query.length === 0) {\n\t\treturn '';\n\t}\n\n\treturn query\n\t\t.split('&')\n\t\t.map(e => {\n\t\t\tconst key_val = e.split('=');\n\n\t\t\tif (key_val.length === 1) {\n\t\t\t\treturn e;\n\t\t\t} else {\n\t\t\t\tconst reencoded_val = escape_RFC3986(key_val[1]);\n\t\t\t\treturn key_val[0] + '=' + reencoded_val;\n\t\t\t}\n\t\t})\n\t\t.sort((a, b) => {\n\t\t\tconst key_a = a.split('=')[0];\n\t\t\tconst key_b = b.split('=')[0];\n\t\t\tif (key_a === key_b) {\n\t\t\t\treturn a < b ? -1 : 1;\n\t\t\t} else {\n\t\t\t\treturn key_a < key_b ? -1 : 1;\n\t\t\t}\n\t\t})\n\t\t.join('&');\n};\n\n/**\n* @private\n* Create canonical headers\n*\n
\nCanonicalHeaders =\n    CanonicalHeadersEntry0 + CanonicalHeadersEntry1 + ... + CanonicalHeadersEntryN\nCanonicalHeadersEntry =\n    Lowercase(HeaderName) + ':' + Trimall(HeaderValue) + '\\n'\n
\n*/\nconst canonical_headers = function(headers) {\n\tif (!headers || Object.keys(headers).length === 0) {\n\t\treturn '';\n\t}\n\n\treturn (\n\t\tObject.keys(headers)\n\t\t\t.map(function(key) {\n\t\t\t\treturn {\n\t\t\t\t\tkey: key.toLowerCase(),\n\t\t\t\t\tvalue: headers[key] ? headers[key].trim().replace(/\\s+/g, ' ') : '',\n\t\t\t\t};\n\t\t\t})\n\t\t\t.sort(function(a, b) {\n\t\t\t\treturn a.key < b.key ? -1 : 1;\n\t\t\t})\n\t\t\t.map(function(item) {\n\t\t\t\treturn item.key + ':' + item.value;\n\t\t\t})\n\t\t\t.join('\\n') + '\\n'\n\t);\n};\n\n/**\n * List of header keys included in the canonical headers.\n * @access private\n */\nconst signed_headers = function(headers) {\n\treturn Object.keys(headers)\n\t\t.map(function(key) {\n\t\t\treturn key.toLowerCase();\n\t\t})\n\t\t.sort()\n\t\t.join(';');\n};\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*/\nconst canonical_request = function(request) {\n\tconst url_info = parse(request.url);\n\n\treturn [\n\t\trequest.method || '/',\n\t\tencodeURIComponent(url_info.pathname).replace(/%2F/gi, '/'),\n\t\tcanonical_query(url_info.query),\n\t\tcanonical_headers(request.headers),\n\t\tsigned_headers(request.headers),\n\t\thash(request.data),\n\t].join('\\n');\n};\n\nconst parse_service_info = function(request) {\n\tconst url_info = parse(request.url),\n\t\thost = url_info.host;\n\n\tconst matched = host.match(/([^\\.]+)\\.(?:([^\\.]*)\\.)?amazonaws\\.com$/);\n\tlet parsed = (matched || []).slice(1, 3);\n\n\tif (parsed[1] === 'es') {\n\t\t// Elastic Search\n\t\tparsed = parsed.reverse();\n\t}\n\n\treturn {\n\t\tservice: request.service || parsed[0],\n\t\tregion: request.region || parsed[1],\n\t};\n};\n\nconst credential_scope = function(d_str, region, service) {\n\treturn [d_str, region, service, 'aws4_request'].join('/');\n};\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*/\nconst string_to_sign = function(algorithm, canonical_request, dt_str, scope) {\n\treturn [algorithm, dt_str, scope, hash(canonical_request)].join('\\n');\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*/\nconst get_signing_key = function(secret_key, d_str, service_info) {\n\tlogger.debug(service_info);\n\tconst k = 'AWS4' + secret_key,\n\t\tk_date = encrypt(k, d_str),\n\t\tk_region = encrypt(k_date, service_info.region),\n\t\tk_service = encrypt(k_region, service_info.service),\n\t\tk_signing = encrypt(k_service, 'aws4_request');\n\n\treturn k_signing;\n};\n\nconst get_signature = function(signing_key, str_to_sign) {\n\treturn toHex(encrypt(signing_key, str_to_sign));\n};\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 */\nconst get_authorization_header = function(\n\talgorithm,\n\taccess_key,\n\tscope,\n\tsigned_headers,\n\tsignature\n) {\n\treturn [\n\t\talgorithm + ' ' + 'Credential=' + access_key + '/' + scope,\n\t\t'SignedHeaders=' + signed_headers,\n\t\t'Signature=' + signature,\n\t].join(', ');\n};\n\nexport class Signer {\n\t/**\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\tstatic sign(request, access_info, service_info = null) {\n\t\trequest.headers = request.headers || {};\n\n\t\tif (request.body && !request.data) {\n\t\t\tthrow new Error(\n\t\t\t\t'The attribute \"body\" was found on the request object. Please use the attribute \"data\" instead.'\n\t\t\t);\n\t\t}\n\n\t\t// datetime string and date string\n\t\tconst dt = DateUtils.getDateWithClockOffset(),\n\t\t\tdt_str = dt.toISOString().replace(/[:\\-]|\\.\\d{3}/g, ''),\n\t\t\td_str = dt_str.substr(0, 8);\n\n\t\tconst url_info = parse(request.url);\n\t\trequest.headers['host'] = url_info.host;\n\t\trequest.headers['x-amz-date'] = dt_str;\n\t\tif (access_info.session_token) {\n\t\t\trequest.headers['X-Amz-Security-Token'] = access_info.session_token;\n\t\t}\n\n\t\t// Task 1: Create a Canonical Request\n\t\tconst request_str = canonical_request(request);\n\t\tlogger.debug(request_str);\n\n\t\t// Task 2: Create a String to Sign\n\t\tconst serviceInfo = service_info || parse_service_info(request),\n\t\t\tscope = credential_scope(d_str, serviceInfo.region, serviceInfo.service),\n\t\t\tstr_to_sign = string_to_sign(\n\t\t\t\tDEFAULT_ALGORITHM,\n\t\t\t\trequest_str,\n\t\t\t\tdt_str,\n\t\t\t\tscope\n\t\t\t);\n\n\t\t// Task 3: Calculate the Signature\n\t\tconst signing_key = get_signing_key(\n\t\t\t\taccess_info.secret_key,\n\t\t\t\td_str,\n\t\t\t\tserviceInfo\n\t\t\t),\n\t\t\tsignature = get_signature(signing_key, str_to_sign);\n\n\t\t// Task 4: Adding the Signing information to the Request\n\t\tconst authorization_header = get_authorization_header(\n\t\t\tDEFAULT_ALGORITHM,\n\t\t\taccess_info.access_key,\n\t\t\tscope,\n\t\t\tsigned_headers(request.headers),\n\t\t\tsignature\n\t\t);\n\t\trequest.headers['Authorization'] = authorization_header;\n\n\t\treturn request;\n\t}\n\n\tstatic signUrl(\n\t\turlToSign: string,\n\t\taccessInfo: any,\n\t\tserviceInfo?: any,\n\t\texpiration?: number\n\t): string;\n\tstatic signUrl(\n\t\trequest: any,\n\t\taccessInfo: any,\n\t\tserviceInfo?: any,\n\t\texpiration?: number\n\t): string;\n\tstatic signUrl(\n\t\turlOrRequest: string | any,\n\t\taccessInfo: any,\n\t\tserviceInfo?: any,\n\t\texpiration?: number\n\t): string {\n\t\tconst urlToSign: string =\n\t\t\ttypeof urlOrRequest === 'object' ? urlOrRequest.url : urlOrRequest;\n\t\tconst method: string =\n\t\t\ttypeof urlOrRequest === 'object' ? urlOrRequest.method : 'GET';\n\t\tconst body: any =\n\t\t\ttypeof urlOrRequest === 'object' ? urlOrRequest.body : undefined;\n\n\t\tconst now = DateUtils.getDateWithClockOffset()\n\t\t\t.toISOString()\n\t\t\t.replace(/[:\\-]|\\.\\d{3}/g, '');\n\t\tconst today = now.substr(0, 8);\n\t\t// Intentionally discarding search\n\t\tconst { search, ...parsedUrl } = parse(urlToSign, true, true);\n\t\tconst { host } = parsedUrl;\n\t\tconst signedHeaders = { host };\n\n\t\tconst { region, service } =\n\t\t\tserviceInfo || parse_service_info({ url: format(parsedUrl) });\n\t\tconst credentialScope = credential_scope(today, region, service);\n\n\t\t// IoT service does not allow the session token in the canonical request\n\t\t// https://docs.aws.amazon.com/general/latest/gr/sigv4-add-signature-to-request.html\n\t\tconst sessionTokenRequired =\n\t\t\taccessInfo.session_token && service !== IOT_SERVICE_NAME;\n\t\tconst queryParams = {\n\t\t\t'X-Amz-Algorithm': DEFAULT_ALGORITHM,\n\t\t\t'X-Amz-Credential': [accessInfo.access_key, credentialScope].join('/'),\n\t\t\t'X-Amz-Date': now.substr(0, 16),\n\t\t\t...(sessionTokenRequired\n\t\t\t\t? { 'X-Amz-Security-Token': `${accessInfo.session_token}` }\n\t\t\t\t: {}),\n\t\t\t...(expiration ? { 'X-Amz-Expires': `${expiration}` } : {}),\n\t\t\t'X-Amz-SignedHeaders': Object.keys(signedHeaders).join(','),\n\t\t};\n\n\t\tconst canonicalRequest = canonical_request({\n\t\t\tmethod,\n\t\t\turl: format({\n\t\t\t\t...parsedUrl,\n\t\t\t\tquery: {\n\t\t\t\t\t...parsedUrl.query,\n\t\t\t\t\t...queryParams,\n\t\t\t\t},\n\t\t\t}),\n\t\t\theaders: signedHeaders,\n\t\t\tdata: body,\n\t\t});\n\n\t\tconst stringToSign = string_to_sign(\n\t\t\tDEFAULT_ALGORITHM,\n\t\t\tcanonicalRequest,\n\t\t\tnow,\n\t\t\tcredentialScope\n\t\t);\n\n\t\tconst signing_key = get_signing_key(accessInfo.secret_key, today, {\n\t\t\tregion,\n\t\t\tservice,\n\t\t});\n\t\tconst signature = get_signature(signing_key, stringToSign);\n\n\t\tconst additionalQueryParams = {\n\t\t\t'X-Amz-Signature': signature,\n\t\t\t...(accessInfo.session_token && {\n\t\t\t\t'X-Amz-Security-Token': accessInfo.session_token,\n\t\t\t}),\n\t\t};\n\n\t\tconst result = format({\n\t\t\tprotocol: parsedUrl.protocol,\n\t\t\tslashes: true,\n\t\t\thostname: parsedUrl.hostname,\n\t\t\tport: parsedUrl.port,\n\t\t\tpathname: parsedUrl.pathname,\n\t\t\tquery: {\n\t\t\t\t...parsedUrl.query,\n\t\t\t\t...queryParams,\n\t\t\t\t...additionalQueryParams,\n\t\t\t},\n\t\t});\n\n\t\treturn result;\n\t}\n}\n","// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nimport { MqttOverWSProvider, MqttProviderOptions } from './MqttOverWSProvider';\nimport { Signer, Credentials } from '@aws-amplify/core';\n\nconst SERVICE_NAME = 'iotdevicegateway';\n\nexport interface AWSIoTProviderOptions extends MqttProviderOptions {\n\taws_pubsub_region?: string;\n\taws_pubsub_endpoint?: string;\n}\n\nexport class AWSIoTProvider extends MqttOverWSProvider {\n\tconstructor(options: AWSIoTProviderOptions = {}) {\n\t\tsuper(options);\n\t}\n\n\tprotected get region() {\n\t\treturn this.options.aws_pubsub_region;\n\t}\n\n\tpublic getProviderName() {\n\t\treturn 'AWSIoTProvider';\n\t}\n\n\tprotected get endpoint() {\n\t\treturn (async () => {\n\t\t\tconst endpoint = this.options.aws_pubsub_endpoint;\n\n\t\t\tconst serviceInfo = {\n\t\t\t\tservice: SERVICE_NAME,\n\t\t\t\tregion: this.region,\n\t\t\t};\n\t\t\tconst {\n\t\t\t\taccessKeyId: access_key,\n\t\t\t\tsecretAccessKey: secret_key,\n\t\t\t\tsessionToken: session_token,\n\t\t\t} = await Credentials.get();\n\n\t\t\tconst result = Signer.signUrl(\n\t\t\t\tendpoint,\n\t\t\t\t{ access_key, secret_key, session_token },\n\t\t\t\tserviceInfo\n\t\t\t);\n\n\t\t\treturn result;\n\t\t})();\n\t}\n}\n","const niceErrors = {\n 0: `Invalid value for configuration 'enforceActions', expected 'never', 'always' or 'observed'`,\n 1(annotationType, key: PropertyKey) {\n return `Cannot apply '${annotationType}' to '${key.toString()}': Field not found.`\n },\n /*\n 2(prop) {\n return `invalid decorator for '${prop.toString()}'`\n },\n 3(prop) {\n return `Cannot decorate '${prop.toString()}': action can only be used on properties with a function value.`\n },\n 4(prop) {\n return `Cannot decorate '${prop.toString()}': computed can only be used on getter properties.`\n },\n */\n 5: \"'keys()' can only be used on observable objects, arrays, sets and maps\",\n 6: \"'values()' can only be used on observable objects, arrays, sets and maps\",\n 7: \"'entries()' can only be used on observable objects, arrays and maps\",\n 8: \"'set()' can only be used on observable objects, arrays and maps\",\n 9: \"'remove()' can only be used on observable objects, arrays and maps\",\n 10: \"'has()' can only be used on observable objects, arrays and maps\",\n 11: \"'get()' can only be used on observable objects, arrays and maps\",\n 12: `Invalid annotation`,\n 13: `Dynamic observable objects cannot be frozen. If you're passing observables to 3rd party component/function that calls Object.freeze, pass copy instead: toJS(observable)`,\n 14: \"Intercept handlers should return nothing or a change object\",\n 15: `Observable arrays cannot be frozen. If you're passing observables to 3rd party component/function that calls Object.freeze, pass copy instead: toJS(observable)`,\n 16: `Modification exception: the internal structure of an observable array was changed.`,\n 17(index, length) {\n return `[mobx.array] Index out of bounds, ${index} is larger than ${length}`\n },\n 18: \"mobx.map requires Map polyfill for the current browser. Check babel-polyfill or core-js/es6/map.js\",\n 19(other) {\n return \"Cannot initialize from classes that inherit from Map: \" + other.constructor.name\n },\n 20(other) {\n return \"Cannot initialize map from \" + other\n },\n 21(dataStructure) {\n return `Cannot convert to map from '${dataStructure}'`\n },\n 22: \"mobx.set requires Set polyfill for the current browser. Check babel-polyfill or core-js/es6/set.js\",\n 23: \"It is not possible to get index atoms from arrays\",\n 24(thing) {\n return \"Cannot obtain administration from \" + thing\n },\n 25(property, name) {\n return `the entry '${property}' does not exist in the observable map '${name}'`\n },\n 26: \"please specify a property\",\n 27(property, name) {\n return `no observable property '${property.toString()}' found on the observable object '${name}'`\n },\n 28(thing) {\n return \"Cannot obtain atom from \" + thing\n },\n 29: \"Expecting some object\",\n 30: \"invalid action stack. did you forget to finish an action?\",\n 31: \"missing option for computed: get\",\n 32(name, derivation) {\n return `Cycle detected in computation ${name}: ${derivation}`\n },\n 33(name) {\n return `The setter of computed value '${name}' is trying to update itself. Did you intend to update an _observable_ value, instead of the computed property?`\n },\n 34(name) {\n return `[ComputedValue '${name}'] It is not possible to assign a new value to a computed value.`\n },\n 35: \"There are multiple, different versions of MobX active. Make sure MobX is loaded only once or use `configure({ isolateGlobalState: true })`\",\n 36: \"isolateGlobalState should be called before MobX is running any reactions\",\n 37(method) {\n return `[mobx] \\`observableArray.${method}()\\` mutates the array in-place, which is not allowed inside a derivation. Use \\`array.slice().${method}()\\` instead`\n },\n 38: \"'ownKeys()' can only be used on observable objects\",\n 39: \"'defineProperty()' can only be used on observable objects\"\n} as const\n\nconst errors: typeof niceErrors = __DEV__ ? niceErrors : ({} as any)\n\nexport function die(error: string | keyof typeof errors, ...args: any[]): never {\n if (__DEV__) {\n let e: any = typeof error === \"string\" ? error : errors[error]\n if (typeof e === \"function\") e = e.apply(null, args as any)\n throw new Error(`[MobX] ${e}`)\n }\n throw new Error(\n typeof error === \"number\"\n ? `[MobX] minified error nr: ${error}${\n args.length ? \" \" + args.map(String).join(\",\") : \"\"\n }. Find the full error at: https://github.com/mobxjs/mobx/blob/main/packages/mobx/src/errors.ts`\n : `[MobX] ${error}`\n )\n}\n","declare const window: any\ndeclare const self: any\n\nconst mockGlobal = {}\n\nexport function getGlobal() {\n if (typeof globalThis !== \"undefined\") {\n return globalThis\n }\n if (typeof window !== \"undefined\") {\n return window\n }\n if (typeof global !== \"undefined\") {\n return global\n }\n if (typeof self !== \"undefined\") {\n return self\n }\n return mockGlobal\n}\n","import { globalState, die } from \"../internal\"\n\n// We shorten anything used > 5 times\nexport const assign = Object.assign\nexport const getDescriptor = Object.getOwnPropertyDescriptor\nexport const defineProperty = Object.defineProperty\nexport const objectPrototype = Object.prototype\n\nexport const EMPTY_ARRAY = []\nObject.freeze(EMPTY_ARRAY)\n\nexport const EMPTY_OBJECT = {}\nObject.freeze(EMPTY_OBJECT)\n\nexport interface Lambda {\n (): void\n name?: string\n}\n\nconst hasProxy = typeof Proxy !== \"undefined\"\nconst plainObjectString = Object.toString()\n\nexport function assertProxies() {\n if (!hasProxy) {\n die(\n __DEV__\n ? \"`Proxy` objects are not available in the current environment. Please configure MobX to enable a fallback implementation.`\"\n : \"Proxy not available\"\n )\n }\n}\n\nexport function warnAboutProxyRequirement(msg: string) {\n if (__DEV__ && globalState.verifyProxies) {\n die(\n \"MobX is currently configured to be able to run in ES5 mode, but in ES5 MobX won't be able to \" +\n msg\n )\n }\n}\n\nexport function getNextId() {\n return ++globalState.mobxGuid\n}\n\n/**\n * Makes sure that the provided function is invoked at most once.\n */\nexport function once(func: Lambda): Lambda {\n let invoked = false\n return function () {\n if (invoked) {\n return\n }\n invoked = true\n return (func as any).apply(this, arguments)\n }\n}\n\nexport const noop = () => {}\n\nexport function isFunction(fn: any): fn is Function {\n return typeof fn === \"function\"\n}\n\nexport function isString(value: any): value is string {\n return typeof value === \"string\"\n}\n\nexport function isStringish(value: any): value is string | number | symbol {\n const t = typeof value\n switch (t) {\n case \"string\":\n case \"symbol\":\n case \"number\":\n return true\n }\n return false\n}\n\nexport function isObject(value: any): value is Object {\n return value !== null && typeof value === \"object\"\n}\n\nexport function isPlainObject(value: any) {\n if (!isObject(value)) {\n return false\n }\n const proto = Object.getPrototypeOf(value)\n if (proto == null) {\n return true\n }\n const protoConstructor = Object.hasOwnProperty.call(proto, \"constructor\") && proto.constructor\n return (\n typeof protoConstructor === \"function\" && protoConstructor.toString() === plainObjectString\n )\n}\n\n// https://stackoverflow.com/a/37865170\nexport function isGenerator(obj: any): boolean {\n const constructor = obj?.constructor\n if (!constructor) {\n return false\n }\n if (\n \"GeneratorFunction\" === constructor.name ||\n \"GeneratorFunction\" === constructor.displayName\n ) {\n return true\n }\n return false\n}\n\nexport function addHiddenProp(object: any, propName: PropertyKey, value: any) {\n defineProperty(object, propName, {\n enumerable: false,\n writable: true,\n configurable: true,\n value\n })\n}\n\nexport function addHiddenFinalProp(object: any, propName: PropertyKey, value: any) {\n defineProperty(object, propName, {\n enumerable: false,\n writable: false,\n configurable: true,\n value\n })\n}\n\nexport function createInstanceofPredicate(\n name: string,\n theClass: new (...args: any[]) => T\n): (x: any) => x is T {\n const propName = \"isMobX\" + name\n theClass.prototype[propName] = true\n return function (x) {\n return isObject(x) && x[propName] === true\n } as any\n}\n\nexport function isES6Map(thing: any): thing is Map {\n return thing instanceof Map\n}\n\nexport function isES6Set(thing: any): thing is Set {\n return thing instanceof Set\n}\n\nconst hasGetOwnPropertySymbols = typeof Object.getOwnPropertySymbols !== \"undefined\"\n\n/**\n * Returns the following: own enumerable keys and symbols.\n */\nexport function getPlainObjectKeys(object: any) {\n const keys = Object.keys(object)\n // Not supported in IE, so there are not going to be symbol props anyway...\n if (!hasGetOwnPropertySymbols) {\n return keys\n }\n const symbols = Object.getOwnPropertySymbols(object)\n if (!symbols.length) {\n return keys\n }\n return [...keys, ...symbols.filter(s => objectPrototype.propertyIsEnumerable.call(object, s))]\n}\n\n// From Immer utils\n// Returns all own keys, including non-enumerable and symbolic\nexport const ownKeys: (target: any) => Array =\n typeof Reflect !== \"undefined\" && Reflect.ownKeys\n ? Reflect.ownKeys\n : hasGetOwnPropertySymbols\n ? obj => Object.getOwnPropertyNames(obj).concat(Object.getOwnPropertySymbols(obj) as any)\n : /* istanbul ignore next */ Object.getOwnPropertyNames\n\nexport function stringifyKey(key: any): string {\n if (typeof key === \"string\") {\n return key\n }\n if (typeof key === \"symbol\") {\n return key.toString()\n }\n return new String(key).toString()\n}\n\nexport function toPrimitive(value: any) {\n return value === null ? null : typeof value === \"object\" ? \"\" + value : value\n}\n\nexport function hasProp(target: Object, prop: PropertyKey): boolean {\n return objectPrototype.hasOwnProperty.call(target, prop)\n}\n\n// From Immer utils\nexport const getOwnPropertyDescriptors =\n Object.getOwnPropertyDescriptors ||\n function getOwnPropertyDescriptors(target: any) {\n // Polyfill needed for Hermes and IE, see https://github.com/facebook/hermes/issues/274\n const res: any = {}\n // Note: without polyfill for ownKeys, symbols won't be picked up\n ownKeys(target).forEach(key => {\n res[key] = getDescriptor(target, key)\n })\n return res\n }\n","import { Annotation, addHiddenProp, AnnotationsMap, hasProp, die, isOverride } from \"../internal\"\n\nexport const storedAnnotationsSymbol = Symbol(\"mobx-stored-annotations\")\n\n/**\n * Creates a function that acts as\n * - decorator\n * - annotation object\n */\nexport function createDecoratorAnnotation(annotation: Annotation): PropertyDecorator & Annotation {\n function decorator(target, property) {\n storeAnnotation(target, property, annotation)\n }\n return Object.assign(decorator, annotation)\n}\n\n/**\n * Stores annotation to prototype,\n * so it can be inspected later by `makeObservable` called from constructor\n */\nexport function storeAnnotation(prototype: any, key: PropertyKey, annotation: Annotation) {\n if (!hasProp(prototype, storedAnnotationsSymbol)) {\n addHiddenProp(prototype, storedAnnotationsSymbol, {\n // Inherit annotations\n ...prototype[storedAnnotationsSymbol]\n })\n }\n // @override must override something\n if (__DEV__ && isOverride(annotation) && !hasProp(prototype[storedAnnotationsSymbol], key)) {\n const fieldName = `${prototype.constructor.name}.prototype.${key.toString()}`\n die(\n `'${fieldName}' is decorated with 'override', ` +\n `but no such decorated member was found on prototype.`\n )\n }\n // Cannot re-decorate\n assertNotDecorated(prototype, annotation, key)\n\n // Ignore override\n if (!isOverride(annotation)) {\n prototype[storedAnnotationsSymbol][key] = annotation\n }\n}\n\nfunction assertNotDecorated(prototype: object, annotation: Annotation, key: PropertyKey) {\n if (__DEV__ && !isOverride(annotation) && hasProp(prototype[storedAnnotationsSymbol], key)) {\n const fieldName = `${prototype.constructor.name}.prototype.${key.toString()}`\n const currentAnnotationType = prototype[storedAnnotationsSymbol][key].annotationType_\n const requestedAnnotationType = annotation.annotationType_\n die(\n `Cannot apply '@${requestedAnnotationType}' to '${fieldName}':` +\n `\\nThe field is already decorated with '@${currentAnnotationType}'.` +\n `\\nRe-decorating fields is not allowed.` +\n `\\nUse '@override' decorator for methods overridden by subclass.`\n )\n }\n}\n\n/**\n * Collects annotations from prototypes and stores them on target (instance)\n */\nexport function collectStoredAnnotations(target): AnnotationsMap {\n if (!hasProp(target, storedAnnotationsSymbol)) {\n if (__DEV__ && !target[storedAnnotationsSymbol]) {\n die(\n `No annotations were passed to makeObservable, but no decorated members have been found either`\n )\n }\n // We need a copy as we will remove annotation from the list once it's applied.\n addHiddenProp(target, storedAnnotationsSymbol, { ...target[storedAnnotationsSymbol] })\n }\n return target[storedAnnotationsSymbol]\n}\n","import {\n die,\n Annotation,\n hasProp,\n createDecoratorAnnotation,\n ObservableObjectAdministration,\n MakeResult\n} from \"../internal\"\n\nconst OVERRIDE = \"override\"\n\nexport const override: Annotation & PropertyDecorator = createDecoratorAnnotation({\n annotationType_: OVERRIDE,\n make_,\n extend_\n})\n\nexport function isOverride(annotation: Annotation): boolean {\n return annotation.annotationType_ === OVERRIDE\n}\n\nfunction make_(adm: ObservableObjectAdministration, key): MakeResult {\n // Must not be plain object\n if (__DEV__ && adm.isPlainObject_) {\n die(\n `Cannot apply '${this.annotationType_}' to '${adm.name_}.${key.toString()}':` +\n `\\n'${this.annotationType_}' cannot be used on plain objects.`\n )\n }\n // Must override something\n if (__DEV__ && !hasProp(adm.appliedAnnotations_!, key)) {\n die(\n `'${adm.name_}.${key.toString()}' is annotated with '${this.annotationType_}', ` +\n `but no such annotated member was found on prototype.`\n )\n }\n return MakeResult.Cancel\n}\n\nfunction extend_(adm, key, descriptor, proxyTrap): boolean {\n die(`'${this.annotationType_}' can only be used with 'makeObservable'`)\n}\n","import {\n IDerivationState_,\n IObservable,\n IDerivation,\n createInstanceofPredicate,\n endBatch,\n getNextId,\n noop,\n onBecomeObserved,\n onBecomeUnobserved,\n propagateChanged,\n reportObserved,\n startBatch,\n Lambda,\n globalState\n} from \"../internal\"\n\nexport const $mobx = Symbol(\"mobx administration\")\n\nexport interface IAtom extends IObservable {\n reportObserved(): boolean\n reportChanged(): void\n}\n\nexport class Atom implements IAtom {\n isPendingUnobservation_ = false // for effective unobserving. BaseAtom has true, for extra optimization, so its onBecomeUnobserved never gets called, because it's not needed\n isBeingObserved_ = false\n observers_ = new Set()\n\n batchId_: number\n diffValue_ = 0\n lastAccessedBy_ = 0\n lowestObserverState_ = IDerivationState_.NOT_TRACKING_\n /**\n * Create a new atom. For debugging purposes it is recommended to give it a name.\n * The onBecomeObserved and onBecomeUnobserved callbacks can be used for resource management.\n */\n constructor(public name_ = __DEV__ ? \"Atom@\" + getNextId() : \"Atom\") {\n this.batchId_ = globalState.inBatch ? globalState.batchId : NaN\n }\n\n // onBecomeObservedListeners\n public onBOL: Set | undefined\n // onBecomeUnobservedListeners\n public onBUOL: Set | undefined\n\n public onBO() {\n if (this.onBOL) {\n this.onBOL.forEach(listener => listener())\n }\n }\n\n public onBUO() {\n if (this.onBUOL) {\n this.onBUOL.forEach(listener => listener())\n }\n }\n\n /**\n * Invoke this method to notify mobx that your atom has been used somehow.\n * Returns true if there is currently a reactive context.\n */\n public reportObserved(): boolean {\n return reportObserved(this)\n }\n\n /**\n * Invoke this method _after_ this method has changed to signal mobx that all its observers should invalidate.\n */\n public reportChanged() {\n if (!globalState.inBatch || this.batchId_ !== globalState.batchId) {\n // We could update state version only at the end of batch,\n // but we would still have to switch some global flag here to signal a change.\n globalState.stateVersion =\n globalState.stateVersion < Number.MAX_SAFE_INTEGER\n ? globalState.stateVersion + 1\n : Number.MIN_SAFE_INTEGER\n // Avoids the possibility of hitting the same globalState.batchId when it cycled through all integers (necessary?)\n this.batchId_ = NaN\n }\n\n startBatch()\n propagateChanged(this)\n endBatch()\n }\n\n toString() {\n return this.name_\n }\n}\n\nexport const isAtom = createInstanceofPredicate(\"Atom\", Atom)\n\nexport function createAtom(\n name: string,\n onBecomeObservedHandler: () => void = noop,\n onBecomeUnobservedHandler: () => void = noop\n): IAtom {\n const atom = new Atom(name)\n // default `noop` listener will not initialize the hook Set\n if (onBecomeObservedHandler !== noop) {\n onBecomeObserved(atom, onBecomeObservedHandler)\n }\n\n if (onBecomeUnobservedHandler !== noop) {\n onBecomeUnobserved(atom, onBecomeUnobservedHandler)\n }\n return atom\n}\n","import {\n IComputedValue,\n IObservable,\n IObservableArray,\n Lambda,\n ObservableMap,\n getAtom,\n ObservableSet,\n isFunction,\n IObservableValue\n} from \"../internal\"\n\nconst ON_BECOME_OBSERVED = \"onBO\"\nconst ON_BECOME_UNOBSERVED = \"onBUO\"\n\nexport function onBecomeObserved(\n value:\n | IObservable\n | IComputedValue\n | IObservableArray\n | ObservableMap\n | ObservableSet\n | IObservableValue,\n listener: Lambda\n): Lambda\nexport function onBecomeObserved(\n value: ObservableMap | Object,\n property: K,\n listener: Lambda\n): Lambda\nexport function onBecomeObserved(thing, arg2, arg3?): Lambda {\n return interceptHook(ON_BECOME_OBSERVED, thing, arg2, arg3)\n}\n\nexport function onBecomeUnobserved(\n value:\n | IObservable\n | IComputedValue\n | IObservableArray\n | ObservableMap\n | ObservableSet\n | IObservableValue,\n listener: Lambda\n): Lambda\nexport function onBecomeUnobserved(\n value: ObservableMap | Object,\n property: K,\n listener: Lambda\n): Lambda\nexport function onBecomeUnobserved(thing, arg2, arg3?): Lambda {\n return interceptHook(ON_BECOME_UNOBSERVED, thing, arg2, arg3)\n}\n\nfunction interceptHook(hook: \"onBO\" | \"onBUO\", thing, arg2, arg3) {\n const atom: IObservable =\n typeof arg3 === \"function\" ? getAtom(thing, arg2) : (getAtom(thing) as any)\n const cb = isFunction(arg3) ? arg3 : arg2\n const listenersKey = `${hook}L` as \"onBOL\" | \"onBUOL\"\n\n if (atom[listenersKey]) {\n atom[listenersKey]!.add(cb)\n } else {\n atom[listenersKey] = new Set([cb])\n }\n\n return function () {\n const hookListeners = atom[listenersKey]\n if (hookListeners) {\n hookListeners.delete(cb)\n if (hookListeners.size === 0) {\n delete atom[listenersKey]\n }\n }\n }\n}\n","import { deepEqual } from \"../internal\"\n\nexport interface IEqualsComparer {\n (a: T, b: T): boolean\n}\n\nfunction identityComparer(a: any, b: any): boolean {\n return a === b\n}\n\nfunction structuralComparer(a: any, b: any): boolean {\n return deepEqual(a, b)\n}\n\nfunction shallowComparer(a: any, b: any): boolean {\n return deepEqual(a, b, 1)\n}\n\nfunction defaultComparer(a: any, b: any): boolean {\n if (Object.is) {\n return Object.is(a, b)\n }\n\n return a === b ? a !== 0 || 1 / a === 1 / b : a !== a && b !== b\n}\n\nexport const comparer = {\n identity: identityComparer,\n structural: structuralComparer,\n default: defaultComparer,\n shallow: shallowComparer\n}\n","import {\n deepEqual,\n isES6Map,\n isES6Set,\n isObservable,\n isObservableArray,\n isObservableMap,\n isObservableSet,\n isObservableObject,\n isPlainObject,\n observable,\n die,\n isAction,\n autoAction,\n flow,\n isFlow,\n isGenerator\n} from \"../internal\"\n\nexport interface IEnhancer {\n (newValue: T, oldValue: T | undefined, name: string): T\n}\n\nexport function deepEnhancer(v, _, name) {\n // it is an observable already, done\n if (isObservable(v)) {\n return v\n }\n\n // something that can be converted and mutated?\n if (Array.isArray(v)) {\n return observable.array(v, { name })\n }\n if (isPlainObject(v)) {\n return observable.object(v, undefined, { name })\n }\n if (isES6Map(v)) {\n return observable.map(v, { name })\n }\n if (isES6Set(v)) {\n return observable.set(v, { name })\n }\n if (typeof v === \"function\" && !isAction(v) && !isFlow(v)) {\n if (isGenerator(v)) {\n return flow(v)\n } else {\n return autoAction(name, v)\n }\n }\n return v\n}\n\nexport function shallowEnhancer(v, _, name): any {\n if (v === undefined || v === null) {\n return v\n }\n if (isObservableObject(v) || isObservableArray(v) || isObservableMap(v) || isObservableSet(v)) {\n return v\n }\n if (Array.isArray(v)) {\n return observable.array(v, { name, deep: false })\n }\n if (isPlainObject(v)) {\n return observable.object(v, undefined, { name, deep: false })\n }\n if (isES6Map(v)) {\n return observable.map(v, { name, deep: false })\n }\n if (isES6Set(v)) {\n return observable.set(v, { name, deep: false })\n }\n\n if (__DEV__) {\n die(\n \"The shallow modifier / decorator can only used in combination with arrays, objects, maps and sets\"\n )\n }\n}\n\nexport function referenceEnhancer(newValue?) {\n // never turn into an observable\n return newValue\n}\n\nexport function refStructEnhancer(v, oldValue): any {\n if (__DEV__ && isObservable(v)) {\n die(`observable.struct should not be used with observable values`)\n }\n if (deepEqual(v, oldValue)) {\n return oldValue\n }\n return v\n}\n","import {\n ObservableObjectAdministration,\n createAction,\n isAction,\n defineProperty,\n die,\n isFunction,\n Annotation,\n globalState,\n MakeResult\n} from \"../internal\"\n\nexport function createActionAnnotation(name: string, options?: object): Annotation {\n return {\n annotationType_: name,\n options_: options,\n make_,\n extend_\n }\n}\n\nfunction make_(\n adm: ObservableObjectAdministration,\n key: PropertyKey,\n descriptor: PropertyDescriptor,\n source: object\n): MakeResult {\n // bound\n if (this.options_?.bound) {\n return this.extend_(adm, key, descriptor, false) === null\n ? MakeResult.Cancel\n : MakeResult.Break\n }\n // own\n if (source === adm.target_) {\n return this.extend_(adm, key, descriptor, false) === null\n ? MakeResult.Cancel\n : MakeResult.Continue\n }\n // prototype\n if (isAction(descriptor.value)) {\n // A prototype could have been annotated already by other constructor,\n // rest of the proto chain must be annotated already\n return MakeResult.Break\n }\n const actionDescriptor = createActionDescriptor(adm, this, key, descriptor, false)\n defineProperty(source, key, actionDescriptor)\n return MakeResult.Continue\n}\n\nfunction extend_(\n adm: ObservableObjectAdministration,\n key: PropertyKey,\n descriptor: PropertyDescriptor,\n proxyTrap: boolean\n): boolean | null {\n const actionDescriptor = createActionDescriptor(adm, this, key, descriptor)\n return adm.defineProperty_(key, actionDescriptor, proxyTrap)\n}\n\nfunction assertActionDescriptor(\n adm: ObservableObjectAdministration,\n { annotationType_ }: Annotation,\n key: PropertyKey,\n { value }: PropertyDescriptor\n) {\n if (__DEV__ && !isFunction(value)) {\n die(\n `Cannot apply '${annotationType_}' to '${adm.name_}.${key.toString()}':` +\n `\\n'${annotationType_}' can only be used on properties with a function value.`\n )\n }\n}\n\nexport function createActionDescriptor(\n adm: ObservableObjectAdministration,\n annotation: Annotation,\n key: PropertyKey,\n descriptor: PropertyDescriptor,\n // provides ability to disable safeDescriptors for prototypes\n safeDescriptors: boolean = globalState.safeDescriptors\n) {\n assertActionDescriptor(adm, annotation, key, descriptor)\n let { value } = descriptor\n if (annotation.options_?.bound) {\n value = value.bind(adm.proxy_ ?? adm.target_)\n }\n return {\n value: createAction(\n annotation.options_?.name ?? key.toString(),\n value,\n annotation.options_?.autoAction ?? false,\n // https://github.com/mobxjs/mobx/discussions/3140\n annotation.options_?.bound ? adm.proxy_ ?? adm.target_ : undefined\n ),\n // Non-configurable for classes\n // prevents accidental field redefinition in subclass\n configurable: safeDescriptors ? adm.isPlainObject_ : true,\n // https://github.com/mobxjs/mobx/pull/2641#issuecomment-737292058\n enumerable: false,\n // Non-obsevable, therefore non-writable\n // Also prevents rewriting in subclass constructor\n writable: safeDescriptors ? false : true\n }\n}\n","import {\n ObservableObjectAdministration,\n Annotation,\n defineProperty,\n die,\n flow,\n isFlow,\n isFunction,\n globalState,\n MakeResult,\n hasProp\n} from \"../internal\"\n\nexport function createFlowAnnotation(name: string, options?: object): Annotation {\n return {\n annotationType_: name,\n options_: options,\n make_,\n extend_\n }\n}\n\nfunction make_(\n adm: ObservableObjectAdministration,\n key: PropertyKey,\n descriptor: PropertyDescriptor,\n source: object\n): MakeResult {\n // own\n if (source === adm.target_) {\n return this.extend_(adm, key, descriptor, false) === null\n ? MakeResult.Cancel\n : MakeResult.Continue\n }\n // prototype\n // bound - must annotate protos to support super.flow()\n if (this.options_?.bound && (!hasProp(adm.target_, key) || !isFlow(adm.target_[key]))) {\n if (this.extend_(adm, key, descriptor, false) === null) {\n return MakeResult.Cancel\n }\n }\n if (isFlow(descriptor.value)) {\n // A prototype could have been annotated already by other constructor,\n // rest of the proto chain must be annotated already\n return MakeResult.Break\n }\n const flowDescriptor = createFlowDescriptor(adm, this, key, descriptor, false, false)\n defineProperty(source, key, flowDescriptor)\n return MakeResult.Continue\n}\n\nfunction extend_(\n adm: ObservableObjectAdministration,\n key: PropertyKey,\n descriptor: PropertyDescriptor,\n proxyTrap: boolean\n): boolean | null {\n const flowDescriptor = createFlowDescriptor(adm, this, key, descriptor, this.options_?.bound)\n return adm.defineProperty_(key, flowDescriptor, proxyTrap)\n}\n\nfunction assertFlowDescriptor(\n adm: ObservableObjectAdministration,\n { annotationType_ }: Annotation,\n key: PropertyKey,\n { value }: PropertyDescriptor\n) {\n if (__DEV__ && !isFunction(value)) {\n die(\n `Cannot apply '${annotationType_}' to '${adm.name_}.${key.toString()}':` +\n `\\n'${annotationType_}' can only be used on properties with a generator function value.`\n )\n }\n}\n\nfunction createFlowDescriptor(\n adm: ObservableObjectAdministration,\n annotation: Annotation,\n key: PropertyKey,\n descriptor: PropertyDescriptor,\n bound: boolean,\n // provides ability to disable safeDescriptors for prototypes\n safeDescriptors: boolean = globalState.safeDescriptors\n): PropertyDescriptor {\n assertFlowDescriptor(adm, annotation, key, descriptor)\n let { value } = descriptor\n // In case of flow.bound, the descriptor can be from already annotated prototype\n if (!isFlow(value)) {\n value = flow(value)\n }\n if (bound) {\n // We do not keep original function around, so we bind the existing flow\n value = value.bind(adm.proxy_ ?? adm.target_)\n // This is normally set by `flow`, but `bind` returns new function...\n value.isMobXFlow = true\n }\n return {\n value,\n // Non-configurable for classes\n // prevents accidental field redefinition in subclass\n configurable: safeDescriptors ? adm.isPlainObject_ : true,\n // https://github.com/mobxjs/mobx/pull/2641#issuecomment-737292058\n enumerable: false,\n // Non-obsevable, therefore non-writable\n // Also prevents rewriting in subclass constructor\n writable: safeDescriptors ? false : true\n }\n}\n","import { ObservableObjectAdministration, die, Annotation, MakeResult } from \"../internal\"\n\nexport function createComputedAnnotation(name: string, options?: object): Annotation {\n return {\n annotationType_: name,\n options_: options,\n make_,\n extend_\n }\n}\n\nfunction make_(\n adm: ObservableObjectAdministration,\n key: PropertyKey,\n descriptor: PropertyDescriptor\n): MakeResult {\n return this.extend_(adm, key, descriptor, false) === null ? MakeResult.Cancel : MakeResult.Break\n}\n\nfunction extend_(\n adm: ObservableObjectAdministration,\n key: PropertyKey,\n descriptor: PropertyDescriptor,\n proxyTrap: boolean\n): boolean | null {\n assertComputedDescriptor(adm, this, key, descriptor)\n return adm.defineComputedProperty_(\n key,\n {\n ...this.options_,\n get: descriptor.get,\n set: descriptor.set\n },\n proxyTrap\n )\n}\n\nfunction assertComputedDescriptor(\n adm: ObservableObjectAdministration,\n { annotationType_ }: Annotation,\n key: PropertyKey,\n { get }: PropertyDescriptor\n) {\n if (__DEV__ && !get) {\n die(\n `Cannot apply '${annotationType_}' to '${adm.name_}.${key.toString()}':` +\n `\\n'${annotationType_}' can only be used on getter(+setter) properties.`\n )\n }\n}\n","import {\n ObservableObjectAdministration,\n deepEnhancer,\n die,\n Annotation,\n MakeResult\n} from \"../internal\"\n\nexport function createObservableAnnotation(name: string, options?: object): Annotation {\n return {\n annotationType_: name,\n options_: options,\n make_,\n extend_\n }\n}\n\nfunction make_(\n adm: ObservableObjectAdministration,\n key: PropertyKey,\n descriptor: PropertyDescriptor\n): MakeResult {\n return this.extend_(adm, key, descriptor, false) === null ? MakeResult.Cancel : MakeResult.Break\n}\n\nfunction extend_(\n adm: ObservableObjectAdministration,\n key: PropertyKey,\n descriptor: PropertyDescriptor,\n proxyTrap: boolean\n): boolean | null {\n assertObservableDescriptor(adm, this, key, descriptor)\n return adm.defineObservableProperty_(\n key,\n descriptor.value,\n this.options_?.enhancer ?? deepEnhancer,\n proxyTrap\n )\n}\n\nfunction assertObservableDescriptor(\n adm: ObservableObjectAdministration,\n { annotationType_ }: Annotation,\n key: PropertyKey,\n descriptor: PropertyDescriptor\n) {\n if (__DEV__ && !(\"value\" in descriptor)) {\n die(\n `Cannot apply '${annotationType_}' to '${adm.name_}.${key.toString()}':` +\n `\\n'${annotationType_}' cannot be used on getter/setter properties`\n )\n }\n}\n","import {\n ObservableObjectAdministration,\n observable,\n Annotation,\n defineProperty,\n createAction,\n globalState,\n flow,\n computed,\n autoAction,\n isGenerator,\n MakeResult\n} from \"../internal\"\n\nconst AUTO = \"true\"\n\nexport const autoAnnotation: Annotation = createAutoAnnotation()\n\nexport function createAutoAnnotation(options?: object): Annotation {\n return {\n annotationType_: AUTO,\n options_: options,\n make_,\n extend_\n }\n}\n\nfunction make_(\n adm: ObservableObjectAdministration,\n key: PropertyKey,\n descriptor: PropertyDescriptor,\n source: object\n): MakeResult {\n // getter -> computed\n if (descriptor.get) {\n return computed.make_(adm, key, descriptor, source)\n }\n // lone setter -> action setter\n if (descriptor.set) {\n // TODO make action applicable to setter and delegate to action.make_\n const set = createAction(key.toString(), descriptor.set) as (v: any) => void\n // own\n if (source === adm.target_) {\n return adm.defineProperty_(key, {\n configurable: globalState.safeDescriptors ? adm.isPlainObject_ : true,\n set\n }) === null\n ? MakeResult.Cancel\n : MakeResult.Continue\n }\n // proto\n defineProperty(source, key, {\n configurable: true,\n set\n })\n return MakeResult.Continue\n }\n // function on proto -> autoAction/flow\n if (source !== adm.target_ && typeof descriptor.value === \"function\") {\n if (isGenerator(descriptor.value)) {\n const flowAnnotation = this.options_?.autoBind ? flow.bound : flow\n return flowAnnotation.make_(adm, key, descriptor, source)\n }\n const actionAnnotation = this.options_?.autoBind ? autoAction.bound : autoAction\n return actionAnnotation.make_(adm, key, descriptor, source)\n }\n // other -> observable\n // Copy props from proto as well, see test:\n // \"decorate should work with Object.create\"\n let observableAnnotation = this.options_?.deep === false ? observable.ref : observable\n // if function respect autoBind option\n if (typeof descriptor.value === \"function\" && this.options_?.autoBind) {\n descriptor.value = descriptor.value.bind(adm.proxy_ ?? adm.target_)\n }\n return observableAnnotation.make_(adm, key, descriptor, source)\n}\n\nfunction extend_(\n adm: ObservableObjectAdministration,\n key: PropertyKey,\n descriptor: PropertyDescriptor,\n proxyTrap: boolean\n): boolean | null {\n // getter -> computed\n if (descriptor.get) {\n return computed.extend_(adm, key, descriptor, proxyTrap)\n }\n // lone setter -> action setter\n if (descriptor.set) {\n // TODO make action applicable to setter and delegate to action.extend_\n return adm.defineProperty_(\n key,\n {\n configurable: globalState.safeDescriptors ? adm.isPlainObject_ : true,\n set: createAction(key.toString(), descriptor.set) as (v: any) => void\n },\n proxyTrap\n )\n }\n // other -> observable\n // if function respect autoBind option\n if (typeof descriptor.value === \"function\" && this.options_?.autoBind) {\n descriptor.value = descriptor.value.bind(adm.proxy_ ?? adm.target_)\n }\n let observableAnnotation = this.options_?.deep === false ? observable.ref : observable\n return observableAnnotation.extend_(adm, key, descriptor, proxyTrap)\n}\n","import {\n IEnhancer,\n IEqualsComparer,\n IObservableArray,\n IObservableMapInitialValues,\n IObservableSetInitialValues,\n IObservableValue,\n ObservableMap,\n ObservableSet,\n ObservableValue,\n asDynamicObservableObject,\n createObservableArray,\n deepEnhancer,\n extendObservable,\n isES6Map,\n isES6Set,\n isObservable,\n isPlainObject,\n referenceEnhancer,\n Annotation,\n shallowEnhancer,\n refStructEnhancer,\n AnnotationsMap,\n asObservableObject,\n storeAnnotation,\n createDecoratorAnnotation,\n createLegacyArray,\n globalState,\n assign,\n isStringish,\n createObservableAnnotation,\n createAutoAnnotation,\n initObservable\n} from \"../internal\"\n\nexport const OBSERVABLE = \"observable\"\nexport const OBSERVABLE_REF = \"observable.ref\"\nexport const OBSERVABLE_SHALLOW = \"observable.shallow\"\nexport const OBSERVABLE_STRUCT = \"observable.struct\"\n\nexport type CreateObservableOptions = {\n name?: string\n equals?: IEqualsComparer\n deep?: boolean\n defaultDecorator?: Annotation\n proxy?: boolean\n autoBind?: boolean\n}\n\n// Predefined bags of create observable options, to avoid allocating temporarily option objects\n// in the majority of cases\nexport const defaultCreateObservableOptions: CreateObservableOptions = {\n deep: true,\n name: undefined,\n defaultDecorator: undefined,\n proxy: true\n}\nObject.freeze(defaultCreateObservableOptions)\n\nexport function asCreateObservableOptions(thing: any): CreateObservableOptions {\n return thing || defaultCreateObservableOptions\n}\n\nconst observableAnnotation = createObservableAnnotation(OBSERVABLE)\nconst observableRefAnnotation = createObservableAnnotation(OBSERVABLE_REF, {\n enhancer: referenceEnhancer\n})\nconst observableShallowAnnotation = createObservableAnnotation(OBSERVABLE_SHALLOW, {\n enhancer: shallowEnhancer\n})\nconst observableStructAnnotation = createObservableAnnotation(OBSERVABLE_STRUCT, {\n enhancer: refStructEnhancer\n})\nconst observableDecoratorAnnotation = createDecoratorAnnotation(observableAnnotation)\n\nexport function getEnhancerFromOptions(options: CreateObservableOptions): IEnhancer {\n return options.deep === true\n ? deepEnhancer\n : options.deep === false\n ? referenceEnhancer\n : getEnhancerFromAnnotation(options.defaultDecorator)\n}\n\nexport function getAnnotationFromOptions(\n options?: CreateObservableOptions\n): Annotation | undefined {\n return options ? options.defaultDecorator ?? createAutoAnnotation(options) : undefined\n}\n\nexport function getEnhancerFromAnnotation(annotation?: Annotation): IEnhancer {\n return !annotation ? deepEnhancer : annotation.options_?.enhancer ?? deepEnhancer\n}\n\n/**\n * Turns an object, array or function into a reactive structure.\n * @param v the value which should become observable.\n */\nfunction createObservable(v: any, arg2?: any, arg3?: any) {\n // @observable someProp;\n if (isStringish(arg2)) {\n storeAnnotation(v, arg2, observableAnnotation)\n return\n }\n\n // already observable - ignore\n if (isObservable(v)) {\n return v\n }\n\n // plain object\n if (isPlainObject(v)) {\n return observable.object(v, arg2, arg3)\n }\n\n // Array\n if (Array.isArray(v)) {\n return observable.array(v, arg2)\n }\n\n // Map\n if (isES6Map(v)) {\n return observable.map(v, arg2)\n }\n\n // Set\n if (isES6Set(v)) {\n return observable.set(v, arg2)\n }\n\n // other object - ignore\n if (typeof v === \"object\" && v !== null) {\n return v\n }\n\n // anything else\n return observable.box(v, arg2)\n}\nassign(createObservable, observableDecoratorAnnotation)\n\nexport interface IObservableValueFactory {\n (value: T, options?: CreateObservableOptions): IObservableValue\n (value?: T, options?: CreateObservableOptions): IObservableValue\n}\n\nexport interface IObservableFactory extends Annotation, PropertyDecorator {\n (value: T[], options?: CreateObservableOptions): IObservableArray\n (value: Set, options?: CreateObservableOptions): ObservableSet\n (value: Map, options?: CreateObservableOptions): ObservableMap\n (\n value: T,\n decorators?: AnnotationsMap,\n options?: CreateObservableOptions\n ): T\n\n box: IObservableValueFactory\n array: (initialValues?: T[], options?: CreateObservableOptions) => IObservableArray\n set: (\n initialValues?: IObservableSetInitialValues,\n options?: CreateObservableOptions\n ) => ObservableSet\n map: (\n initialValues?: IObservableMapInitialValues,\n options?: CreateObservableOptions\n ) => ObservableMap\n object: (\n props: T,\n decorators?: AnnotationsMap,\n options?: CreateObservableOptions\n ) => T\n\n /**\n * Decorator that creates an observable that only observes the references, but doesn't try to turn the assigned value into an observable.ts.\n */\n ref: Annotation & PropertyDecorator\n /**\n * Decorator that creates an observable converts its value (objects, maps or arrays) into a shallow observable structure\n */\n shallow: Annotation & PropertyDecorator\n deep: Annotation & PropertyDecorator\n struct: Annotation & PropertyDecorator\n}\n\nconst observableFactories: IObservableFactory = {\n box(value: T, options?: CreateObservableOptions): IObservableValue {\n const o = asCreateObservableOptions(options)\n return new ObservableValue(value, getEnhancerFromOptions(o), o.name, true, o.equals)\n },\n array(initialValues?: T[], options?: CreateObservableOptions): IObservableArray {\n const o = asCreateObservableOptions(options)\n return (\n globalState.useProxies === false || o.proxy === false\n ? createLegacyArray\n : createObservableArray\n )(initialValues, getEnhancerFromOptions(o), o.name)\n },\n map(\n initialValues?: IObservableMapInitialValues,\n options?: CreateObservableOptions\n ): ObservableMap {\n const o = asCreateObservableOptions(options)\n return new ObservableMap(initialValues, getEnhancerFromOptions(o), o.name)\n },\n set(\n initialValues?: IObservableSetInitialValues,\n options?: CreateObservableOptions\n ): ObservableSet {\n const o = asCreateObservableOptions(options)\n return new ObservableSet(initialValues, getEnhancerFromOptions(o), o.name)\n },\n object(\n props: T,\n decorators?: AnnotationsMap,\n options?: CreateObservableOptions\n ): T {\n return initObservable(() =>\n extendObservable(\n globalState.useProxies === false || options?.proxy === false\n ? asObservableObject({}, options)\n : asDynamicObservableObject({}, options),\n props,\n decorators\n )\n )\n },\n ref: createDecoratorAnnotation(observableRefAnnotation),\n shallow: createDecoratorAnnotation(observableShallowAnnotation),\n deep: observableDecoratorAnnotation,\n struct: createDecoratorAnnotation(observableStructAnnotation)\n} as any\n\n// eslint-disable-next-line\nexport var observable: IObservableFactory = assign(createObservable, observableFactories)\n","import {\n $mobx,\n IIsObservableObject,\n ObservableObjectAdministration,\n warnAboutProxyRequirement,\n assertProxies,\n die,\n isStringish,\n globalState,\n CreateObservableOptions,\n asObservableObject\n} from \"../internal\"\n\nfunction getAdm(target): ObservableObjectAdministration {\n return target[$mobx]\n}\n\n// Optimization: we don't need the intermediate objects and could have a completely custom administration for DynamicObjects,\n// and skip either the internal values map, or the base object with its property descriptors!\nconst objectProxyTraps: ProxyHandler = {\n has(target: IIsObservableObject, name: PropertyKey): boolean {\n if (__DEV__ && globalState.trackingDerivation) {\n warnAboutProxyRequirement(\n \"detect new properties using the 'in' operator. Use 'has' from 'mobx' instead.\"\n )\n }\n return getAdm(target).has_(name)\n },\n get(target: IIsObservableObject, name: PropertyKey): any {\n return getAdm(target).get_(name)\n },\n set(target: IIsObservableObject, name: PropertyKey, value: any): boolean {\n if (!isStringish(name)) {\n return false\n }\n if (__DEV__ && !getAdm(target).values_.has(name)) {\n warnAboutProxyRequirement(\n \"add a new observable property through direct assignment. Use 'set' from 'mobx' instead.\"\n )\n }\n // null (intercepted) -> true (success)\n return getAdm(target).set_(name, value, true) ?? true\n },\n deleteProperty(target: IIsObservableObject, name: PropertyKey): boolean {\n if (__DEV__) {\n warnAboutProxyRequirement(\n \"delete properties from an observable object. Use 'remove' from 'mobx' instead.\"\n )\n }\n if (!isStringish(name)) {\n return false\n }\n // null (intercepted) -> true (success)\n return getAdm(target).delete_(name, true) ?? true\n },\n defineProperty(\n target: IIsObservableObject,\n name: PropertyKey,\n descriptor: PropertyDescriptor\n ): boolean {\n if (__DEV__) {\n warnAboutProxyRequirement(\n \"define property on an observable object. Use 'defineProperty' from 'mobx' instead.\"\n )\n }\n // null (intercepted) -> true (success)\n return getAdm(target).defineProperty_(name, descriptor) ?? true\n },\n ownKeys(target: IIsObservableObject): ArrayLike {\n if (__DEV__ && globalState.trackingDerivation) {\n warnAboutProxyRequirement(\n \"iterate keys to detect added / removed properties. Use 'keys' from 'mobx' instead.\"\n )\n }\n return getAdm(target).ownKeys_()\n },\n preventExtensions(target) {\n die(13)\n }\n}\n\nexport function asDynamicObservableObject(\n target: any,\n options?: CreateObservableOptions\n): IIsObservableObject {\n assertProxies()\n target = asObservableObject(target, options)\n return (target[$mobx].proxy_ ??= new Proxy(target, objectProxyTraps))\n}\n","import {\n ComputedValue,\n IComputedValueOptions,\n Annotation,\n storeAnnotation,\n createDecoratorAnnotation,\n isStringish,\n isPlainObject,\n isFunction,\n die,\n IComputedValue,\n createComputedAnnotation,\n comparer\n} from \"../internal\"\n\nexport const COMPUTED = \"computed\"\nexport const COMPUTED_STRUCT = \"computed.struct\"\n\nexport interface IComputedFactory extends Annotation, PropertyDecorator {\n // @computed(opts)\n (options: IComputedValueOptions): Annotation & PropertyDecorator\n // computed(fn, opts)\n (func: () => T, options?: IComputedValueOptions): IComputedValue\n\n struct: Annotation & PropertyDecorator\n}\n\nconst computedAnnotation = createComputedAnnotation(COMPUTED)\nconst computedStructAnnotation = createComputedAnnotation(COMPUTED_STRUCT, {\n equals: comparer.structural\n})\n\n/**\n * Decorator for class properties: @computed get value() { return expr; }.\n * For legacy purposes also invokable as ES5 observable created: `computed(() => expr)`;\n */\nexport const computed: IComputedFactory = function computed(arg1, arg2) {\n if (isStringish(arg2)) {\n // @computed\n return storeAnnotation(arg1, arg2, computedAnnotation)\n }\n if (isPlainObject(arg1)) {\n // @computed({ options })\n return createDecoratorAnnotation(createComputedAnnotation(COMPUTED, arg1))\n }\n\n // computed(expr, options?)\n if (__DEV__) {\n if (!isFunction(arg1)) {\n die(\"First argument to `computed` should be an expression.\")\n }\n if (isFunction(arg2)) {\n die(\n \"A setter as second argument is no longer supported, use `{ set: fn }` option instead\"\n )\n }\n }\n const opts: IComputedValueOptions = isPlainObject(arg2) ? arg2 : {}\n opts.get = arg1\n opts.name ||= arg1.name || \"\" /* for generated name */\n\n return new ComputedValue(opts)\n} as any\n\nObject.assign(computed, computedAnnotation)\n\ncomputed.struct = createDecoratorAnnotation(computedStructAnnotation)\n","import {\n IDerivation,\n endBatch,\n globalState,\n isSpyEnabled,\n spyReportEnd,\n spyReportStart,\n startBatch,\n untrackedEnd,\n untrackedStart,\n isFunction,\n allowStateReadsStart,\n allowStateReadsEnd,\n ACTION,\n EMPTY_ARRAY,\n die,\n getDescriptor,\n defineProperty\n} from \"../internal\"\n\n// we don't use globalState for these in order to avoid possible issues with multiple\n// mobx versions\nlet currentActionId = 0\nlet nextActionId = 1\nconst isFunctionNameConfigurable = getDescriptor(() => {}, \"name\")?.configurable ?? false\n\n// we can safely recycle this object\nconst tmpNameDescriptor: PropertyDescriptor = {\n value: \"action\",\n configurable: true,\n writable: false,\n enumerable: false\n}\n\nexport function createAction(\n actionName: string,\n fn: Function,\n autoAction: boolean = false,\n ref?: Object\n): Function {\n if (__DEV__) {\n if (!isFunction(fn)) {\n die(\"`action` can only be invoked on functions\")\n }\n if (typeof actionName !== \"string\" || !actionName) {\n die(`actions should have valid names, got: '${actionName}'`)\n }\n }\n function res() {\n return executeAction(actionName, autoAction, fn, ref || this, arguments)\n }\n res.isMobxAction = true\n if (isFunctionNameConfigurable) {\n tmpNameDescriptor.value = actionName\n defineProperty(res, \"name\", tmpNameDescriptor)\n }\n return res\n}\n\nexport function executeAction(\n actionName: string,\n canRunAsDerivation: boolean,\n fn: Function,\n scope?: any,\n args?: IArguments\n) {\n const runInfo = _startAction(actionName, canRunAsDerivation, scope, args)\n try {\n return fn.apply(scope, args)\n } catch (err) {\n runInfo.error_ = err\n throw err\n } finally {\n _endAction(runInfo)\n }\n}\n\nexport interface IActionRunInfo {\n prevDerivation_: IDerivation | null\n prevAllowStateChanges_: boolean\n prevAllowStateReads_: boolean\n notifySpy_: boolean\n startTime_: number\n error_?: any\n parentActionId_: number\n actionId_: number\n runAsAction_?: boolean\n}\n\nexport function _startAction(\n actionName: string,\n canRunAsDerivation: boolean, // true for autoAction\n scope: any,\n args?: IArguments\n): IActionRunInfo {\n const notifySpy_ = __DEV__ && isSpyEnabled() && !!actionName\n let startTime_: number = 0\n if (__DEV__ && notifySpy_) {\n startTime_ = Date.now()\n const flattenedArgs = args ? Array.from(args) : EMPTY_ARRAY\n spyReportStart({\n type: ACTION,\n name: actionName,\n object: scope,\n arguments: flattenedArgs\n })\n }\n const prevDerivation_ = globalState.trackingDerivation\n const runAsAction = !canRunAsDerivation || !prevDerivation_\n startBatch()\n let prevAllowStateChanges_ = globalState.allowStateChanges // by default preserve previous allow\n if (runAsAction) {\n untrackedStart()\n prevAllowStateChanges_ = allowStateChangesStart(true)\n }\n const prevAllowStateReads_ = allowStateReadsStart(true)\n const runInfo = {\n runAsAction_: runAsAction,\n prevDerivation_,\n prevAllowStateChanges_,\n prevAllowStateReads_,\n notifySpy_,\n startTime_,\n actionId_: nextActionId++,\n parentActionId_: currentActionId\n }\n currentActionId = runInfo.actionId_\n return runInfo\n}\n\nexport function _endAction(runInfo: IActionRunInfo) {\n if (currentActionId !== runInfo.actionId_) {\n die(30)\n }\n currentActionId = runInfo.parentActionId_\n\n if (runInfo.error_ !== undefined) {\n globalState.suppressReactionErrors = true\n }\n allowStateChangesEnd(runInfo.prevAllowStateChanges_)\n allowStateReadsEnd(runInfo.prevAllowStateReads_)\n endBatch()\n if (runInfo.runAsAction_) {\n untrackedEnd(runInfo.prevDerivation_)\n }\n if (__DEV__ && runInfo.notifySpy_) {\n spyReportEnd({ time: Date.now() - runInfo.startTime_ })\n }\n globalState.suppressReactionErrors = false\n}\n\nexport function allowStateChanges(allowStateChanges: boolean, func: () => T): T {\n const prev = allowStateChangesStart(allowStateChanges)\n try {\n return func()\n } finally {\n allowStateChangesEnd(prev)\n }\n}\n\nexport function allowStateChangesStart(allowStateChanges: boolean) {\n const prev = globalState.allowStateChanges\n globalState.allowStateChanges = allowStateChanges\n return prev\n}\n\nexport function allowStateChangesEnd(prev: boolean) {\n globalState.allowStateChanges = prev\n}\n","import {\n Atom,\n IEnhancer,\n IInterceptable,\n IEqualsComparer,\n IInterceptor,\n IListenable,\n Lambda,\n checkIfStateModificationsAreAllowed,\n comparer,\n createInstanceofPredicate,\n getNextId,\n hasInterceptors,\n hasListeners,\n interceptChange,\n isSpyEnabled,\n notifyListeners,\n registerInterceptor,\n registerListener,\n spyReport,\n spyReportEnd,\n spyReportStart,\n toPrimitive,\n globalState,\n IUNCHANGED,\n UPDATE\n} from \"../internal\"\n\nexport interface IValueWillChange {\n object: IObservableValue\n type: \"update\"\n newValue: T\n}\n\nexport type IValueDidChange = {\n type: \"update\"\n observableKind: \"value\"\n object: IObservableValue\n debugObjectName: string\n newValue: T\n oldValue: T | undefined\n}\nexport type IBoxDidChange =\n | {\n type: \"create\"\n observableKind: \"value\"\n object: IObservableValue\n debugObjectName: string\n newValue: T\n }\n | IValueDidChange\n\nexport interface IObservableValue {\n get(): T\n set(value: T): void\n}\n\nconst CREATE = \"create\"\n\nexport class ObservableValue\n extends Atom\n implements IObservableValue, IInterceptable>, IListenable\n{\n hasUnreportedChange_ = false\n interceptors_\n changeListeners_\n value_\n dehancer: any\n\n constructor(\n value: T,\n public enhancer: IEnhancer,\n public name_ = __DEV__ ? \"ObservableValue@\" + getNextId() : \"ObservableValue\",\n notifySpy = true,\n private equals: IEqualsComparer = comparer.default\n ) {\n super(name_)\n this.value_ = enhancer(value, undefined, name_)\n if (__DEV__ && notifySpy && isSpyEnabled()) {\n // only notify spy if this is a stand-alone observable\n spyReport({\n type: CREATE,\n object: this,\n observableKind: \"value\",\n debugObjectName: this.name_,\n newValue: \"\" + this.value_\n })\n }\n }\n\n private dehanceValue(value: T): T {\n if (this.dehancer !== undefined) {\n return this.dehancer(value)\n }\n return value\n }\n\n public set(newValue: T) {\n const oldValue = this.value_\n newValue = this.prepareNewValue_(newValue) as any\n if (newValue !== globalState.UNCHANGED) {\n const notifySpy = isSpyEnabled()\n if (__DEV__ && notifySpy) {\n spyReportStart({\n type: UPDATE,\n object: this,\n observableKind: \"value\",\n debugObjectName: this.name_,\n newValue,\n oldValue\n })\n }\n this.setNewValue_(newValue)\n if (__DEV__ && notifySpy) {\n spyReportEnd()\n }\n }\n }\n\n private prepareNewValue_(newValue): T | IUNCHANGED {\n checkIfStateModificationsAreAllowed(this)\n if (hasInterceptors(this)) {\n const change = interceptChange>(this, {\n object: this,\n type: UPDATE,\n newValue\n })\n if (!change) {\n return globalState.UNCHANGED\n }\n newValue = change.newValue\n }\n // apply modifier\n newValue = this.enhancer(newValue, this.value_, this.name_)\n return this.equals(this.value_, newValue) ? globalState.UNCHANGED : newValue\n }\n\n setNewValue_(newValue: T) {\n const oldValue = this.value_\n this.value_ = newValue\n this.reportChanged()\n if (hasListeners(this)) {\n notifyListeners(this, {\n type: UPDATE,\n object: this,\n newValue,\n oldValue\n })\n }\n }\n\n public get(): T {\n this.reportObserved()\n return this.dehanceValue(this.value_)\n }\n\n intercept_(handler: IInterceptor>): Lambda {\n return registerInterceptor(this, handler)\n }\n\n observe_(listener: (change: IValueDidChange) => void, fireImmediately?: boolean): Lambda {\n if (fireImmediately) {\n listener({\n observableKind: \"value\",\n debugObjectName: this.name_,\n object: this,\n type: UPDATE,\n newValue: this.value_,\n oldValue: undefined\n })\n }\n return registerListener(this, listener)\n }\n\n raw() {\n // used by MST ot get undehanced value\n return this.value_\n }\n\n toJSON() {\n return this.get()\n }\n\n toString() {\n return `${this.name_}[${this.value_}]`\n }\n\n valueOf(): T {\n return toPrimitive(this.get())\n }\n\n [Symbol.toPrimitive]() {\n return this.valueOf()\n }\n}\n\nexport const isObservableValue = createInstanceofPredicate(\"ObservableValue\", ObservableValue) as (\n x: any\n) => x is IObservableValue\n","import {\n CaughtException,\n IDerivation,\n IDerivationState_,\n IEqualsComparer,\n IObservable,\n Lambda,\n TraceMode,\n autorun,\n clearObserving,\n comparer,\n createAction,\n createInstanceofPredicate,\n endBatch,\n getNextId,\n globalState,\n isCaughtException,\n isSpyEnabled,\n propagateChangeConfirmed,\n propagateMaybeChanged,\n reportObserved,\n shouldCompute,\n spyReport,\n startBatch,\n toPrimitive,\n trackDerivedFunction,\n untrackedEnd,\n untrackedStart,\n UPDATE,\n die,\n allowStateChangesStart,\n allowStateChangesEnd\n} from \"../internal\"\n\nexport interface IComputedValue {\n get(): T\n set(value: T): void\n}\n\nexport interface IComputedValueOptions {\n get?: () => T\n set?: (value: T) => void\n name?: string\n equals?: IEqualsComparer\n context?: any\n requiresReaction?: boolean\n keepAlive?: boolean\n}\n\nexport type IComputedDidChange = {\n type: \"update\"\n observableKind: \"computed\"\n object: unknown\n debugObjectName: string\n newValue: T\n oldValue: T | undefined\n}\n\n/**\n * A node in the state dependency root that observes other nodes, and can be observed itself.\n *\n * ComputedValue will remember the result of the computation for the duration of the batch, or\n * while being observed.\n *\n * During this time it will recompute only when one of its direct dependencies changed,\n * but only when it is being accessed with `ComputedValue.get()`.\n *\n * Implementation description:\n * 1. First time it's being accessed it will compute and remember result\n * give back remembered result until 2. happens\n * 2. First time any deep dependency change, propagate POSSIBLY_STALE to all observers, wait for 3.\n * 3. When it's being accessed, recompute if any shallow dependency changed.\n * if result changed: propagate STALE to all observers, that were POSSIBLY_STALE from the last step.\n * go to step 2. either way\n *\n * If at any point it's outside batch and it isn't observed: reset everything and go to 1.\n */\nexport class ComputedValue implements IObservable, IComputedValue, IDerivation {\n dependenciesState_ = IDerivationState_.NOT_TRACKING_\n observing_: IObservable[] = [] // nodes we are looking at. Our value depends on these nodes\n newObserving_ = null // during tracking it's an array with new observed observers\n isBeingObserved_ = false\n isPendingUnobservation_: boolean = false\n observers_ = new Set()\n diffValue_ = 0\n runId_ = 0\n lastAccessedBy_ = 0\n lowestObserverState_ = IDerivationState_.UP_TO_DATE_\n unboundDepsCount_ = 0\n protected value_: T | undefined | CaughtException = new CaughtException(null)\n name_: string\n triggeredBy_?: string\n isComputing_: boolean = false // to check for cycles\n isRunningSetter_: boolean = false\n derivation: () => T // N.B: unminified as it is used by MST\n setter_?: (value: T) => void\n isTracing_: TraceMode = TraceMode.NONE\n scope_: Object | undefined\n private equals_: IEqualsComparer\n private requiresReaction_: boolean | undefined\n keepAlive_: boolean\n\n /**\n * Create a new computed value based on a function expression.\n *\n * The `name` property is for debug purposes only.\n *\n * The `equals` property specifies the comparer function to use to determine if a newly produced\n * value differs from the previous value. Two comparers are provided in the library; `defaultComparer`\n * compares based on identity comparison (===), and `structuralComparer` deeply compares the structure.\n * Structural comparison can be convenient if you always produce a new aggregated object and\n * don't want to notify observers if it is structurally the same.\n * This is useful for working with vectors, mouse coordinates etc.\n */\n constructor(options: IComputedValueOptions) {\n if (!options.get) {\n die(31)\n }\n this.derivation = options.get!\n this.name_ = options.name || (__DEV__ ? \"ComputedValue@\" + getNextId() : \"ComputedValue\")\n if (options.set) {\n this.setter_ = createAction(\n __DEV__ ? this.name_ + \"-setter\" : \"ComputedValue-setter\",\n options.set\n ) as any\n }\n this.equals_ =\n options.equals ||\n ((options as any).compareStructural || (options as any).struct\n ? comparer.structural\n : comparer.default)\n this.scope_ = options.context\n this.requiresReaction_ = options.requiresReaction\n this.keepAlive_ = !!options.keepAlive\n }\n\n onBecomeStale_() {\n propagateMaybeChanged(this)\n }\n\n public onBOL: Set | undefined\n public onBUOL: Set | undefined\n\n public onBO() {\n if (this.onBOL) {\n this.onBOL.forEach(listener => listener())\n }\n }\n\n public onBUO() {\n if (this.onBUOL) {\n this.onBUOL.forEach(listener => listener())\n }\n }\n\n /**\n * Returns the current value of this computed value.\n * Will evaluate its computation first if needed.\n */\n public get(): T {\n if (this.isComputing_) {\n die(32, this.name_, this.derivation)\n }\n if (\n globalState.inBatch === 0 &&\n // !globalState.trackingDerivatpion &&\n this.observers_.size === 0 &&\n !this.keepAlive_\n ) {\n if (shouldCompute(this)) {\n this.warnAboutUntrackedRead_()\n startBatch() // See perf test 'computed memoization'\n this.value_ = this.computeValue_(false)\n endBatch()\n }\n } else {\n reportObserved(this)\n if (shouldCompute(this)) {\n let prevTrackingContext = globalState.trackingContext\n if (this.keepAlive_ && !prevTrackingContext) {\n globalState.trackingContext = this\n }\n if (this.trackAndCompute()) {\n propagateChangeConfirmed(this)\n }\n globalState.trackingContext = prevTrackingContext\n }\n }\n const result = this.value_!\n\n if (isCaughtException(result)) {\n throw result.cause\n }\n return result\n }\n\n public set(value: T) {\n if (this.setter_) {\n if (this.isRunningSetter_) {\n die(33, this.name_)\n }\n this.isRunningSetter_ = true\n try {\n this.setter_.call(this.scope_, value)\n } finally {\n this.isRunningSetter_ = false\n }\n } else {\n die(34, this.name_)\n }\n }\n\n trackAndCompute(): boolean {\n // N.B: unminified as it is used by MST\n const oldValue = this.value_\n const wasSuspended =\n /* see #1208 */ this.dependenciesState_ === IDerivationState_.NOT_TRACKING_\n const newValue = this.computeValue_(true)\n\n const changed =\n wasSuspended ||\n isCaughtException(oldValue) ||\n isCaughtException(newValue) ||\n !this.equals_(oldValue, newValue)\n\n if (changed) {\n this.value_ = newValue\n\n if (__DEV__ && isSpyEnabled()) {\n spyReport({\n observableKind: \"computed\",\n debugObjectName: this.name_,\n object: this.scope_,\n type: \"update\",\n oldValue,\n newValue\n } as IComputedDidChange)\n }\n }\n\n return changed\n }\n\n computeValue_(track: boolean) {\n this.isComputing_ = true\n // don't allow state changes during computation\n const prev = allowStateChangesStart(false)\n let res: T | CaughtException\n if (track) {\n res = trackDerivedFunction(this, this.derivation, this.scope_)\n } else {\n if (globalState.disableErrorBoundaries === true) {\n res = this.derivation.call(this.scope_)\n } else {\n try {\n res = this.derivation.call(this.scope_)\n } catch (e) {\n res = new CaughtException(e)\n }\n }\n }\n allowStateChangesEnd(prev)\n this.isComputing_ = false\n return res\n }\n\n suspend_() {\n if (!this.keepAlive_) {\n clearObserving(this)\n this.value_ = undefined // don't hold on to computed value!\n if (__DEV__ && this.isTracing_ !== TraceMode.NONE) {\n console.log(\n `[mobx.trace] Computed value '${this.name_}' was suspended and it will recompute on the next access.`\n )\n }\n }\n }\n\n observe_(listener: (change: IComputedDidChange) => void, fireImmediately?: boolean): Lambda {\n let firstTime = true\n let prevValue: T | undefined = undefined\n return autorun(() => {\n // TODO: why is this in a different place than the spyReport() function? in all other observables it's called in the same place\n let newValue = this.get()\n if (!firstTime || fireImmediately) {\n const prevU = untrackedStart()\n listener({\n observableKind: \"computed\",\n debugObjectName: this.name_,\n type: UPDATE,\n object: this,\n newValue,\n oldValue: prevValue\n })\n untrackedEnd(prevU)\n }\n firstTime = false\n prevValue = newValue\n })\n }\n\n warnAboutUntrackedRead_() {\n if (!__DEV__) {\n return\n }\n if (this.isTracing_ !== TraceMode.NONE) {\n console.log(\n `[mobx.trace] Computed value '${this.name_}' is being read outside a reactive context. Doing a full recompute.`\n )\n }\n if (\n typeof this.requiresReaction_ === \"boolean\"\n ? this.requiresReaction_\n : globalState.computedRequiresReaction\n ) {\n console.warn(\n `[mobx] Computed value '${this.name_}' is being read outside a reactive context. Doing a full recompute.`\n )\n }\n }\n\n toString() {\n return `${this.name_}[${this.derivation.toString()}]`\n }\n\n valueOf(): T {\n return toPrimitive(this.get())\n }\n\n [Symbol.toPrimitive]() {\n return this.valueOf()\n }\n}\n\nexport const isComputedValue = createInstanceofPredicate(\"ComputedValue\", ComputedValue)\n","import {\n IAtom,\n IDepTreeNode,\n IObservable,\n addObserver,\n globalState,\n isComputedValue,\n removeObserver\n} from \"../internal\"\n\nexport enum IDerivationState_ {\n // before being run or (outside batch and not being observed)\n // at this point derivation is not holding any data about dependency tree\n NOT_TRACKING_ = -1,\n // no shallow dependency changed since last computation\n // won't recalculate derivation\n // this is what makes mobx fast\n UP_TO_DATE_ = 0,\n // some deep dependency changed, but don't know if shallow dependency changed\n // will require to check first if UP_TO_DATE or POSSIBLY_STALE\n // currently only ComputedValue will propagate POSSIBLY_STALE\n //\n // having this state is second big optimization:\n // don't have to recompute on every dependency change, but only when it's needed\n POSSIBLY_STALE_ = 1,\n // A shallow dependency has changed since last computation and the derivation\n // will need to recompute when it's needed next.\n STALE_ = 2\n}\n\nexport enum TraceMode {\n NONE,\n LOG,\n BREAK\n}\n\n/**\n * A derivation is everything that can be derived from the state (all the atoms) in a pure manner.\n * See https://medium.com/@mweststrate/becoming-fully-reactive-an-in-depth-explanation-of-mobservable-55995262a254#.xvbh6qd74\n */\nexport interface IDerivation extends IDepTreeNode {\n observing_: IObservable[]\n newObserving_: null | IObservable[]\n dependenciesState_: IDerivationState_\n /**\n * Id of the current run of a derivation. Each time the derivation is tracked\n * this number is increased by one. This number is globally unique\n */\n runId_: number\n /**\n * amount of dependencies used by the derivation in this run, which has not been bound yet.\n */\n unboundDepsCount_: number\n onBecomeStale_(): void\n isTracing_: TraceMode\n\n /**\n * warn if the derivation has no dependencies after creation/update\n */\n requiresObservable_?: boolean\n}\n\nexport class CaughtException {\n constructor(public cause: any) {\n // Empty\n }\n}\n\nexport function isCaughtException(e: any): e is CaughtException {\n return e instanceof CaughtException\n}\n\n/**\n * Finds out whether any dependency of the derivation has actually changed.\n * If dependenciesState is 1 then it will recalculate dependencies,\n * if any dependency changed it will propagate it by changing dependenciesState to 2.\n *\n * By iterating over the dependencies in the same order that they were reported and\n * stopping on the first change, all the recalculations are only called for ComputedValues\n * that will be tracked by derivation. That is because we assume that if the first x\n * dependencies of the derivation doesn't change then the derivation should run the same way\n * up until accessing x-th dependency.\n */\nexport function shouldCompute(derivation: IDerivation): boolean {\n switch (derivation.dependenciesState_) {\n case IDerivationState_.UP_TO_DATE_:\n return false\n case IDerivationState_.NOT_TRACKING_:\n case IDerivationState_.STALE_:\n return true\n case IDerivationState_.POSSIBLY_STALE_: {\n // state propagation can occur outside of action/reactive context #2195\n const prevAllowStateReads = allowStateReadsStart(true)\n const prevUntracked = untrackedStart() // no need for those computeds to be reported, they will be picked up in trackDerivedFunction.\n const obs = derivation.observing_,\n l = obs.length\n for (let i = 0; i < l; i++) {\n const obj = obs[i]\n if (isComputedValue(obj)) {\n if (globalState.disableErrorBoundaries) {\n obj.get()\n } else {\n try {\n obj.get()\n } catch (e) {\n // we are not interested in the value *or* exception at this moment, but if there is one, notify all\n untrackedEnd(prevUntracked)\n allowStateReadsEnd(prevAllowStateReads)\n return true\n }\n }\n // if ComputedValue `obj` actually changed it will be computed and propagated to its observers.\n // and `derivation` is an observer of `obj`\n // invariantShouldCompute(derivation)\n if ((derivation.dependenciesState_ as any) === IDerivationState_.STALE_) {\n untrackedEnd(prevUntracked)\n allowStateReadsEnd(prevAllowStateReads)\n return true\n }\n }\n }\n changeDependenciesStateTo0(derivation)\n untrackedEnd(prevUntracked)\n allowStateReadsEnd(prevAllowStateReads)\n return false\n }\n }\n}\n\nexport function isComputingDerivation() {\n return globalState.trackingDerivation !== null // filter out actions inside computations\n}\n\nexport function checkIfStateModificationsAreAllowed(atom: IAtom) {\n if (!__DEV__) {\n return\n }\n const hasObservers = atom.observers_.size > 0\n // Should not be possible to change observed state outside strict mode, except during initialization, see #563\n if (\n !globalState.allowStateChanges &&\n (hasObservers || globalState.enforceActions === \"always\")\n ) {\n console.warn(\n \"[MobX] \" +\n (globalState.enforceActions\n ? \"Since strict-mode is enabled, changing (observed) observable values without using an action is not allowed. Tried to modify: \"\n : \"Side effects like changing state are not allowed at this point. Are you trying to modify state from, for example, a computed value or the render function of a React component? You can wrap side effects in 'runInAction' (or decorate functions with 'action') if needed. Tried to modify: \") +\n atom.name_\n )\n }\n}\n\nexport function checkIfStateReadsAreAllowed(observable: IObservable) {\n if (__DEV__ && !globalState.allowStateReads && globalState.observableRequiresReaction) {\n console.warn(\n `[mobx] Observable '${observable.name_}' being read outside a reactive context.`\n )\n }\n}\n\n/**\n * Executes the provided function `f` and tracks which observables are being accessed.\n * The tracking information is stored on the `derivation` object and the derivation is registered\n * as observer of any of the accessed observables.\n */\nexport function trackDerivedFunction(derivation: IDerivation, f: () => T, context: any) {\n const prevAllowStateReads = allowStateReadsStart(true)\n // pre allocate array allocation + room for variation in deps\n // array will be trimmed by bindDependencies\n changeDependenciesStateTo0(derivation)\n derivation.newObserving_ = new Array(derivation.observing_.length + 100)\n derivation.unboundDepsCount_ = 0\n derivation.runId_ = ++globalState.runId\n const prevTracking = globalState.trackingDerivation\n globalState.trackingDerivation = derivation\n globalState.inBatch++\n let result\n if (globalState.disableErrorBoundaries === true) {\n result = f.call(context)\n } else {\n try {\n result = f.call(context)\n } catch (e) {\n result = new CaughtException(e)\n }\n }\n globalState.inBatch--\n globalState.trackingDerivation = prevTracking\n bindDependencies(derivation)\n\n warnAboutDerivationWithoutDependencies(derivation)\n allowStateReadsEnd(prevAllowStateReads)\n return result\n}\n\nfunction warnAboutDerivationWithoutDependencies(derivation: IDerivation) {\n if (!__DEV__) {\n return\n }\n\n if (derivation.observing_.length !== 0) {\n return\n }\n\n if (\n typeof derivation.requiresObservable_ === \"boolean\"\n ? derivation.requiresObservable_\n : globalState.reactionRequiresObservable\n ) {\n console.warn(\n `[mobx] Derivation '${derivation.name_}' is created/updated without reading any observable value.`\n )\n }\n}\n\n/**\n * diffs newObserving with observing.\n * update observing to be newObserving with unique observables\n * notify observers that become observed/unobserved\n */\nfunction bindDependencies(derivation: IDerivation) {\n // invariant(derivation.dependenciesState !== IDerivationState.NOT_TRACKING, \"INTERNAL ERROR bindDependencies expects derivation.dependenciesState !== -1\");\n const prevObserving = derivation.observing_\n const observing = (derivation.observing_ = derivation.newObserving_!)\n let lowestNewObservingDerivationState = IDerivationState_.UP_TO_DATE_\n\n // Go through all new observables and check diffValue: (this list can contain duplicates):\n // 0: first occurrence, change to 1 and keep it\n // 1: extra occurrence, drop it\n let i0 = 0,\n l = derivation.unboundDepsCount_\n for (let i = 0; i < l; i++) {\n const dep = observing[i]\n if (dep.diffValue_ === 0) {\n dep.diffValue_ = 1\n if (i0 !== i) {\n observing[i0] = dep\n }\n i0++\n }\n\n // Upcast is 'safe' here, because if dep is IObservable, `dependenciesState` will be undefined,\n // not hitting the condition\n if ((dep as any as IDerivation).dependenciesState_ > lowestNewObservingDerivationState) {\n lowestNewObservingDerivationState = (dep as any as IDerivation).dependenciesState_\n }\n }\n observing.length = i0\n\n derivation.newObserving_ = null // newObserving shouldn't be needed outside tracking (statement moved down to work around FF bug, see #614)\n\n // Go through all old observables and check diffValue: (it is unique after last bindDependencies)\n // 0: it's not in new observables, unobserve it\n // 1: it keeps being observed, don't want to notify it. change to 0\n l = prevObserving.length\n while (l--) {\n const dep = prevObserving[l]\n if (dep.diffValue_ === 0) {\n removeObserver(dep, derivation)\n }\n dep.diffValue_ = 0\n }\n\n // Go through all new observables and check diffValue: (now it should be unique)\n // 0: it was set to 0 in last loop. don't need to do anything.\n // 1: it wasn't observed, let's observe it. set back to 0\n while (i0--) {\n const dep = observing[i0]\n if (dep.diffValue_ === 1) {\n dep.diffValue_ = 0\n addObserver(dep, derivation)\n }\n }\n\n // Some new observed derivations may become stale during this derivation computation\n // so they have had no chance to propagate staleness (#916)\n if (lowestNewObservingDerivationState !== IDerivationState_.UP_TO_DATE_) {\n derivation.dependenciesState_ = lowestNewObservingDerivationState\n derivation.onBecomeStale_()\n }\n}\n\nexport function clearObserving(derivation: IDerivation) {\n // invariant(globalState.inBatch > 0, \"INTERNAL ERROR clearObserving should be called only inside batch\");\n const obs = derivation.observing_\n derivation.observing_ = []\n let i = obs.length\n while (i--) {\n removeObserver(obs[i], derivation)\n }\n\n derivation.dependenciesState_ = IDerivationState_.NOT_TRACKING_\n}\n\nexport function untracked(action: () => T): T {\n const prev = untrackedStart()\n try {\n return action()\n } finally {\n untrackedEnd(prev)\n }\n}\n\nexport function untrackedStart(): IDerivation | null {\n const prev = globalState.trackingDerivation\n globalState.trackingDerivation = null\n return prev\n}\n\nexport function untrackedEnd(prev: IDerivation | null) {\n globalState.trackingDerivation = prev\n}\n\nexport function allowStateReadsStart(allowStateReads: boolean) {\n const prev = globalState.allowStateReads\n globalState.allowStateReads = allowStateReads\n return prev\n}\n\nexport function allowStateReadsEnd(prev: boolean) {\n globalState.allowStateReads = prev\n}\n\n/**\n * needed to keep `lowestObserverState` correct. when changing from (2 or 1) to 0\n *\n */\nexport function changeDependenciesStateTo0(derivation: IDerivation) {\n if (derivation.dependenciesState_ === IDerivationState_.UP_TO_DATE_) {\n return\n }\n derivation.dependenciesState_ = IDerivationState_.UP_TO_DATE_\n\n const obs = derivation.observing_\n let i = obs.length\n while (i--) {\n obs[i].lowestObserverState_ = IDerivationState_.UP_TO_DATE_\n }\n}\n","import {\n Lambda,\n ComputedValue,\n IDependencyTree,\n IDerivation,\n IDerivationState_,\n TraceMode,\n getDependencyTree,\n globalState,\n runReactions,\n checkIfStateReadsAreAllowed\n} from \"../internal\"\n\nexport interface IDepTreeNode {\n name_: string\n observing_?: IObservable[]\n}\n\nexport interface IObservable extends IDepTreeNode {\n diffValue_: number\n /**\n * Id of the derivation *run* that last accessed this observable.\n * If this id equals the *run* id of the current derivation,\n * the dependency is already established\n */\n lastAccessedBy_: number\n isBeingObserved_: boolean\n\n lowestObserverState_: IDerivationState_ // Used to avoid redundant propagations\n isPendingUnobservation_: boolean // Used to push itself to global.pendingUnobservations at most once per batch.\n\n observers_: Set\n\n onBUO(): void\n onBO(): void\n\n onBUOL: Set | undefined\n onBOL: Set | undefined\n}\n\nexport function hasObservers(observable: IObservable): boolean {\n return observable.observers_ && observable.observers_.size > 0\n}\n\nexport function getObservers(observable: IObservable): Set {\n return observable.observers_\n}\n\n// function invariantObservers(observable: IObservable) {\n// const list = observable.observers\n// const map = observable.observersIndexes\n// const l = list.length\n// for (let i = 0; i < l; i++) {\n// const id = list[i].__mapid\n// if (i) {\n// invariant(map[id] === i, \"INTERNAL ERROR maps derivation.__mapid to index in list\") // for performance\n// } else {\n// invariant(!(id in map), \"INTERNAL ERROR observer on index 0 shouldn't be held in map.\") // for performance\n// }\n// }\n// invariant(\n// list.length === 0 || Object.keys(map).length === list.length - 1,\n// \"INTERNAL ERROR there is no junk in map\"\n// )\n// }\nexport function addObserver(observable: IObservable, node: IDerivation) {\n // invariant(node.dependenciesState !== -1, \"INTERNAL ERROR, can add only dependenciesState !== -1\");\n // invariant(observable._observers.indexOf(node) === -1, \"INTERNAL ERROR add already added node\");\n // invariantObservers(observable);\n\n observable.observers_.add(node)\n if (observable.lowestObserverState_ > node.dependenciesState_) {\n observable.lowestObserverState_ = node.dependenciesState_\n }\n\n // invariantObservers(observable);\n // invariant(observable._observers.indexOf(node) !== -1, \"INTERNAL ERROR didn't add node\");\n}\n\nexport function removeObserver(observable: IObservable, node: IDerivation) {\n // invariant(globalState.inBatch > 0, \"INTERNAL ERROR, remove should be called only inside batch\");\n // invariant(observable._observers.indexOf(node) !== -1, \"INTERNAL ERROR remove already removed node\");\n // invariantObservers(observable);\n observable.observers_.delete(node)\n if (observable.observers_.size === 0) {\n // deleting last observer\n queueForUnobservation(observable)\n }\n // invariantObservers(observable);\n // invariant(observable._observers.indexOf(node) === -1, \"INTERNAL ERROR remove already removed node2\");\n}\n\nexport function queueForUnobservation(observable: IObservable) {\n if (observable.isPendingUnobservation_ === false) {\n // invariant(observable._observers.length === 0, \"INTERNAL ERROR, should only queue for unobservation unobserved observables\");\n observable.isPendingUnobservation_ = true\n globalState.pendingUnobservations.push(observable)\n }\n}\n\n/**\n * Batch starts a transaction, at least for purposes of memoizing ComputedValues when nothing else does.\n * During a batch `onBecomeUnobserved` will be called at most once per observable.\n * Avoids unnecessary recalculations.\n */\nexport function startBatch() {\n if (globalState.inBatch === 0) {\n globalState.batchId =\n globalState.batchId < Number.MAX_SAFE_INTEGER\n ? globalState.batchId + 1\n : Number.MIN_SAFE_INTEGER\n }\n globalState.inBatch++\n}\n\nexport function endBatch() {\n if (--globalState.inBatch === 0) {\n runReactions()\n // the batch is actually about to finish, all unobserving should happen here.\n const list = globalState.pendingUnobservations\n for (let i = 0; i < list.length; i++) {\n const observable = list[i]\n observable.isPendingUnobservation_ = false\n if (observable.observers_.size === 0) {\n if (observable.isBeingObserved_) {\n // if this observable had reactive observers, trigger the hooks\n observable.isBeingObserved_ = false\n observable.onBUO()\n }\n if (observable instanceof ComputedValue) {\n // computed values are automatically teared down when the last observer leaves\n // this process happens recursively, this computed might be the last observabe of another, etc..\n observable.suspend_()\n }\n }\n }\n globalState.pendingUnobservations = []\n }\n}\n\nexport function reportObserved(observable: IObservable): boolean {\n checkIfStateReadsAreAllowed(observable)\n\n const derivation = globalState.trackingDerivation\n if (derivation !== null) {\n /**\n * Simple optimization, give each derivation run an unique id (runId)\n * Check if last time this observable was accessed the same runId is used\n * if this is the case, the relation is already known\n */\n if (derivation.runId_ !== observable.lastAccessedBy_) {\n observable.lastAccessedBy_ = derivation.runId_\n // Tried storing newObserving, or observing, or both as Set, but performance didn't come close...\n derivation.newObserving_![derivation.unboundDepsCount_++] = observable\n if (!observable.isBeingObserved_ && globalState.trackingContext) {\n observable.isBeingObserved_ = true\n observable.onBO()\n }\n }\n return observable.isBeingObserved_\n } else if (observable.observers_.size === 0 && globalState.inBatch > 0) {\n queueForUnobservation(observable)\n }\n\n return false\n}\n\n// function invariantLOS(observable: IObservable, msg: string) {\n// // it's expensive so better not run it in produciton. but temporarily helpful for testing\n// const min = getObservers(observable).reduce((a, b) => Math.min(a, b.dependenciesState), 2)\n// if (min >= observable.lowestObserverState) return // <- the only assumption about `lowestObserverState`\n// throw new Error(\n// \"lowestObserverState is wrong for \" +\n// msg +\n// \" because \" +\n// min +\n// \" < \" +\n// observable.lowestObserverState\n// )\n// }\n\n/**\n * NOTE: current propagation mechanism will in case of self reruning autoruns behave unexpectedly\n * It will propagate changes to observers from previous run\n * It's hard or maybe impossible (with reasonable perf) to get it right with current approach\n * Hopefully self reruning autoruns aren't a feature people should depend on\n * Also most basic use cases should be ok\n */\n\n// Called by Atom when its value changes\nexport function propagateChanged(observable: IObservable) {\n // invariantLOS(observable, \"changed start\");\n if (observable.lowestObserverState_ === IDerivationState_.STALE_) {\n return\n }\n observable.lowestObserverState_ = IDerivationState_.STALE_\n\n // Ideally we use for..of here, but the downcompiled version is really slow...\n observable.observers_.forEach(d => {\n if (d.dependenciesState_ === IDerivationState_.UP_TO_DATE_) {\n if (__DEV__ && d.isTracing_ !== TraceMode.NONE) {\n logTraceInfo(d, observable)\n }\n d.onBecomeStale_()\n }\n d.dependenciesState_ = IDerivationState_.STALE_\n })\n // invariantLOS(observable, \"changed end\");\n}\n\n// Called by ComputedValue when it recalculate and its value changed\nexport function propagateChangeConfirmed(observable: IObservable) {\n // invariantLOS(observable, \"confirmed start\");\n if (observable.lowestObserverState_ === IDerivationState_.STALE_) {\n return\n }\n observable.lowestObserverState_ = IDerivationState_.STALE_\n\n observable.observers_.forEach(d => {\n if (d.dependenciesState_ === IDerivationState_.POSSIBLY_STALE_) {\n d.dependenciesState_ = IDerivationState_.STALE_\n if (__DEV__ && d.isTracing_ !== TraceMode.NONE) {\n logTraceInfo(d, observable)\n }\n } else if (\n d.dependenciesState_ === IDerivationState_.UP_TO_DATE_ // this happens during computing of `d`, just keep lowestObserverState up to date.\n ) {\n observable.lowestObserverState_ = IDerivationState_.UP_TO_DATE_\n }\n })\n // invariantLOS(observable, \"confirmed end\");\n}\n\n// Used by computed when its dependency changed, but we don't wan't to immediately recompute.\nexport function propagateMaybeChanged(observable: IObservable) {\n // invariantLOS(observable, \"maybe start\");\n if (observable.lowestObserverState_ !== IDerivationState_.UP_TO_DATE_) {\n return\n }\n observable.lowestObserverState_ = IDerivationState_.POSSIBLY_STALE_\n\n observable.observers_.forEach(d => {\n if (d.dependenciesState_ === IDerivationState_.UP_TO_DATE_) {\n d.dependenciesState_ = IDerivationState_.POSSIBLY_STALE_\n d.onBecomeStale_()\n }\n })\n // invariantLOS(observable, \"maybe end\");\n}\n\nfunction logTraceInfo(derivation: IDerivation, observable: IObservable) {\n console.log(\n `[mobx.trace] '${derivation.name_}' is invalidated due to a change in: '${observable.name_}'`\n )\n if (derivation.isTracing_ === TraceMode.BREAK) {\n const lines = []\n printDepTree(getDependencyTree(derivation), lines, 1)\n\n // prettier-ignore\n new Function(\n`debugger;\n/*\nTracing '${derivation.name_}'\n\nYou are entering this break point because derivation '${derivation.name_}' is being traced and '${observable.name_}' is now forcing it to update.\nJust follow the stacktrace you should now see in the devtools to see precisely what piece of your code is causing this update\nThe stackframe you are looking for is at least ~6-8 stack-frames up.\n\n${derivation instanceof ComputedValue ? derivation.derivation.toString().replace(/[*]\\//g, \"/\") : \"\"}\n\nThe dependencies for this derivation are:\n\n${lines.join(\"\\n\")}\n*/\n `)()\n }\n}\n\nfunction printDepTree(tree: IDependencyTree, lines: string[], depth: number) {\n if (lines.length >= 1000) {\n lines.push(\"(and many more)\")\n return\n }\n lines.push(`${\"\\t\".repeat(depth - 1)}${tree.name}`)\n if (tree.dependencies) {\n tree.dependencies.forEach(child => printDepTree(child, lines, depth + 1))\n }\n}\n","import { IDerivation, IObservable, Reaction, die, getGlobal } from \"../internal\"\nimport { ComputedValue } from \"./computedvalue\"\n\n/**\n * These values will persist if global state is reset\n */\nconst persistentKeys: (keyof MobXGlobals)[] = [\n \"mobxGuid\",\n \"spyListeners\",\n \"enforceActions\",\n \"computedRequiresReaction\",\n \"reactionRequiresObservable\",\n \"observableRequiresReaction\",\n \"allowStateReads\",\n \"disableErrorBoundaries\",\n \"runId\",\n \"UNCHANGED\",\n \"useProxies\"\n]\n\nexport type IUNCHANGED = {}\n\nexport class MobXGlobals {\n /**\n * MobXGlobals version.\n * MobX compatiblity with other versions loaded in memory as long as this version matches.\n * It indicates that the global state still stores similar information\n *\n * N.B: this version is unrelated to the package version of MobX, and is only the version of the\n * internal state storage of MobX, and can be the same across many different package versions\n */\n version = 6\n\n /**\n * globally unique token to signal unchanged\n */\n UNCHANGED: IUNCHANGED = {}\n\n /**\n * Currently running derivation\n */\n trackingDerivation: IDerivation | null = null\n\n /**\n * Currently running reaction. This determines if we currently have a reactive context.\n * (Tracking derivation is also set for temporal tracking of computed values inside actions,\n * but trackingReaction can only be set by a form of Reaction)\n */\n trackingContext: Reaction | ComputedValue | null = null\n\n /**\n * Each time a derivation is tracked, it is assigned a unique run-id\n */\n runId = 0\n\n /**\n * 'guid' for general purpose. Will be persisted amongst resets.\n */\n mobxGuid = 0\n\n /**\n * Are we in a batch block? (and how many of them)\n */\n inBatch: number = 0\n\n /**\n * ID of the latest batch. Used to suppress reportChanged of newly created atoms.\n * Note the value persists even after batch ended.\n */\n batchId: number = Number.MIN_SAFE_INTEGER\n\n /**\n * Observables that don't have observers anymore, and are about to be\n * suspended, unless somebody else accesses it in the same batch\n *\n * @type {IObservable[]}\n */\n pendingUnobservations: IObservable[] = []\n\n /**\n * List of scheduled, not yet executed, reactions.\n */\n pendingReactions: Reaction[] = []\n\n /**\n * Are we currently processing reactions?\n */\n isRunningReactions = false\n\n /**\n * Is it allowed to change observables at this point?\n * In general, MobX doesn't allow that when running computations and React.render.\n * To ensure that those functions stay pure.\n */\n allowStateChanges = false\n\n /**\n * Is it allowed to read observables at this point?\n * Used to hold the state needed for `observableRequiresReaction`\n */\n allowStateReads = true\n\n /**\n * If strict mode is enabled, state changes are by default not allowed\n */\n enforceActions: boolean | \"always\" = true\n\n /**\n * Spy callbacks\n */\n spyListeners: { (change: any): void }[] = []\n\n /**\n * Globally attached error handlers that react specifically to errors in reactions\n */\n globalReactionErrorHandlers: ((error: any, derivation: IDerivation) => void)[] = []\n\n /**\n * Warn if computed values are accessed outside a reactive context\n */\n computedRequiresReaction = false\n\n /**\n * (Experimental)\n * Warn if you try to create to derivation / reactive context without accessing any observable.\n */\n reactionRequiresObservable = false\n\n /**\n * (Experimental)\n * Warn if observables are accessed outside a reactive context\n */\n observableRequiresReaction = false\n\n /*\n * Don't catch and rethrow exceptions. This is useful for inspecting the state of\n * the stack when an exception occurs while debugging.\n */\n disableErrorBoundaries = false\n\n /*\n * If true, we are already handling an exception in an action. Any errors in reactions should be suppressed, as\n * they are not the cause, see: https://github.com/mobxjs/mobx/issues/1836\n */\n suppressReactionErrors = false\n\n useProxies = true\n /*\n * print warnings about code that would fail if proxies weren't available\n */\n verifyProxies = false\n\n /**\n * False forces all object's descriptors to\n * writable: true\n * configurable: true\n */\n safeDescriptors = true\n\n /**\n * Changes with each state update, used by useSyncExternalStore\n */\n stateVersion = Number.MIN_SAFE_INTEGER\n}\n\nlet canMergeGlobalState = true\nlet isolateCalled = false\n\nexport let globalState: MobXGlobals = (function () {\n let global = getGlobal()\n if (global.__mobxInstanceCount > 0 && !global.__mobxGlobals) {\n canMergeGlobalState = false\n }\n if (global.__mobxGlobals && global.__mobxGlobals.version !== new MobXGlobals().version) {\n canMergeGlobalState = false\n }\n\n if (!canMergeGlobalState) {\n // Because this is a IIFE we need to let isolateCalled a chance to change\n // so we run it after the event loop completed at least 1 iteration\n setTimeout(() => {\n if (!isolateCalled) {\n die(35)\n }\n }, 1)\n return new MobXGlobals()\n } else if (global.__mobxGlobals) {\n global.__mobxInstanceCount += 1\n if (!global.__mobxGlobals.UNCHANGED) {\n global.__mobxGlobals.UNCHANGED = {}\n } // make merge backward compatible\n return global.__mobxGlobals\n } else {\n global.__mobxInstanceCount = 1\n return (global.__mobxGlobals = new MobXGlobals())\n }\n})()\n\nexport function isolateGlobalState() {\n if (\n globalState.pendingReactions.length ||\n globalState.inBatch ||\n globalState.isRunningReactions\n ) {\n die(36)\n }\n isolateCalled = true\n if (canMergeGlobalState) {\n let global = getGlobal()\n if (--global.__mobxInstanceCount === 0) {\n global.__mobxGlobals = undefined\n }\n globalState = new MobXGlobals()\n }\n}\n\nexport function getGlobalState(): any {\n return globalState\n}\n\n/**\n * For testing purposes only; this will break the internal state of existing observables,\n * but can be used to get back at a stable state after throwing errors\n */\nexport function resetGlobalState() {\n const defaultGlobals = new MobXGlobals()\n for (let key in defaultGlobals) {\n if (persistentKeys.indexOf(key as any) === -1) {\n globalState[key] = defaultGlobals[key]\n }\n }\n globalState.allowStateChanges = !globalState.enforceActions\n}\n","import {\n $mobx,\n IDerivation,\n IDerivationState_,\n IObservable,\n Lambda,\n TraceMode,\n clearObserving,\n createInstanceofPredicate,\n endBatch,\n getNextId,\n globalState,\n isCaughtException,\n isSpyEnabled,\n shouldCompute,\n spyReport,\n spyReportEnd,\n spyReportStart,\n startBatch,\n trace,\n trackDerivedFunction, GenericAbortSignal\n} from \"../internal\"\n\n/**\n * Reactions are a special kind of derivations. Several things distinguishes them from normal reactive computations\n *\n * 1) They will always run, whether they are used by other computations or not.\n * This means that they are very suitable for triggering side effects like logging, updating the DOM and making network requests.\n * 2) They are not observable themselves\n * 3) They will always run after any 'normal' derivations\n * 4) They are allowed to change the state and thereby triggering themselves again, as long as they make sure the state propagates to a stable state in a reasonable amount of iterations.\n *\n * The state machine of a Reaction is as follows:\n *\n * 1) after creating, the reaction should be started by calling `runReaction` or by scheduling it (see also `autorun`)\n * 2) the `onInvalidate` handler should somehow result in a call to `this.track(someFunction)`\n * 3) all observables accessed in `someFunction` will be observed by this reaction.\n * 4) as soon as some of the dependencies has changed the Reaction will be rescheduled for another run (after the current mutation or transaction). `isScheduled` will yield true once a dependency is stale and during this period\n * 5) `onInvalidate` will be called, and we are back at step 1.\n *\n */\n\nexport interface IReactionPublic {\n dispose(): void\n trace(enterBreakPoint?: boolean): void\n}\n\nexport interface IReactionDisposer {\n (): void\n $mobx: Reaction\n}\n\nexport class Reaction implements IDerivation, IReactionPublic {\n observing_: IObservable[] = [] // nodes we are looking at. Our value depends on these nodes\n newObserving_: IObservable[] = []\n dependenciesState_ = IDerivationState_.NOT_TRACKING_\n diffValue_ = 0\n runId_ = 0\n unboundDepsCount_ = 0\n isDisposed_ = false\n isScheduled_ = false\n isTrackPending_ = false\n isRunning_ = false\n isTracing_: TraceMode = TraceMode.NONE\n\n constructor(\n public name_: string = __DEV__ ? \"Reaction@\" + getNextId() : \"Reaction\",\n private onInvalidate_: () => void,\n private errorHandler_?: (error: any, derivation: IDerivation) => void,\n public requiresObservable_?\n ) {}\n\n onBecomeStale_() {\n this.schedule_()\n }\n\n schedule_() {\n if (!this.isScheduled_) {\n this.isScheduled_ = true\n globalState.pendingReactions.push(this)\n runReactions()\n }\n }\n\n isScheduled() {\n return this.isScheduled_\n }\n\n /**\n * internal, use schedule() if you intend to kick off a reaction\n */\n runReaction_() {\n if (!this.isDisposed_) {\n startBatch()\n this.isScheduled_ = false\n const prev = globalState.trackingContext\n globalState.trackingContext = this\n if (shouldCompute(this)) {\n this.isTrackPending_ = true\n\n try {\n this.onInvalidate_()\n if (__DEV__ && this.isTrackPending_ && isSpyEnabled()) {\n // onInvalidate didn't trigger track right away..\n spyReport({\n name: this.name_,\n type: \"scheduled-reaction\"\n })\n }\n } catch (e) {\n this.reportExceptionInDerivation_(e)\n }\n }\n globalState.trackingContext = prev\n endBatch()\n }\n }\n\n track(fn: () => void) {\n if (this.isDisposed_) {\n return\n // console.warn(\"Reaction already disposed\") // Note: Not a warning / error in mobx 4 either\n }\n startBatch()\n const notify = isSpyEnabled()\n let startTime\n if (__DEV__ && notify) {\n startTime = Date.now()\n spyReportStart({\n name: this.name_,\n type: \"reaction\"\n })\n }\n this.isRunning_ = true\n const prevReaction = globalState.trackingContext // reactions could create reactions...\n globalState.trackingContext = this\n const result = trackDerivedFunction(this, fn, undefined)\n globalState.trackingContext = prevReaction\n this.isRunning_ = false\n this.isTrackPending_ = false\n if (this.isDisposed_) {\n // disposed during last run. Clean up everything that was bound after the dispose call.\n clearObserving(this)\n }\n if (isCaughtException(result)) {\n this.reportExceptionInDerivation_(result.cause)\n }\n if (__DEV__ && notify) {\n spyReportEnd({\n time: Date.now() - startTime\n })\n }\n endBatch()\n }\n\n reportExceptionInDerivation_(error: any) {\n if (this.errorHandler_) {\n this.errorHandler_(error, this)\n return\n }\n\n if (globalState.disableErrorBoundaries) {\n throw error\n }\n\n const message = __DEV__\n ? `[mobx] Encountered an uncaught exception that was thrown by a reaction or observer component, in: '${this}'`\n : `[mobx] uncaught error in '${this}'`\n if (!globalState.suppressReactionErrors) {\n console.error(message, error)\n /** If debugging brought you here, please, read the above message :-). Tnx! */\n } else if (__DEV__) { console.warn(`[mobx] (error in reaction '${this.name_}' suppressed, fix error of causing action below)`) } // prettier-ignore\n\n if (__DEV__ && isSpyEnabled()) {\n spyReport({\n type: \"error\",\n name: this.name_,\n message,\n error: \"\" + error\n })\n }\n\n globalState.globalReactionErrorHandlers.forEach(f => f(error, this))\n }\n\n dispose() {\n if (!this.isDisposed_) {\n this.isDisposed_ = true\n if (!this.isRunning_) {\n // if disposed while running, clean up later. Maybe not optimal, but rare case\n startBatch()\n clearObserving(this)\n endBatch()\n }\n }\n }\n\n getDisposer_(abortSignal?: GenericAbortSignal): IReactionDisposer {\n const dispose = (() => {\n this.dispose()\n abortSignal?.removeEventListener?.(\"abort\", dispose)\n }) as IReactionDisposer\n abortSignal?.addEventListener?.(\"abort\", dispose)\n dispose[$mobx] = this\n\n return dispose\n }\n\n toString() {\n return `Reaction[${this.name_}]`\n }\n\n trace(enterBreakPoint: boolean = false) {\n trace(this, enterBreakPoint)\n }\n}\n\nexport function onReactionError(handler: (error: any, derivation: IDerivation) => void): Lambda {\n globalState.globalReactionErrorHandlers.push(handler)\n return () => {\n const idx = globalState.globalReactionErrorHandlers.indexOf(handler)\n if (idx >= 0) {\n globalState.globalReactionErrorHandlers.splice(idx, 1)\n }\n }\n}\n\n/**\n * Magic number alert!\n * Defines within how many times a reaction is allowed to re-trigger itself\n * until it is assumed that this is gonna be a never ending loop...\n */\nconst MAX_REACTION_ITERATIONS = 100\n\nlet reactionScheduler: (fn: () => void) => void = f => f()\n\nexport function runReactions() {\n // Trampolining, if runReactions are already running, new reactions will be picked up\n if (globalState.inBatch > 0 || globalState.isRunningReactions) {\n return\n }\n reactionScheduler(runReactionsHelper)\n}\n\nfunction runReactionsHelper() {\n globalState.isRunningReactions = true\n const allReactions = globalState.pendingReactions\n let iterations = 0\n\n // While running reactions, new reactions might be triggered.\n // Hence we work with two variables and check whether\n // we converge to no remaining reactions after a while.\n while (allReactions.length > 0) {\n if (++iterations === MAX_REACTION_ITERATIONS) {\n console.error(\n __DEV__\n ? `Reaction doesn't converge to a stable state after ${MAX_REACTION_ITERATIONS} iterations.` +\n ` Probably there is a cycle in the reactive function: ${allReactions[0]}`\n : `[mobx] cycle in reaction: ${allReactions[0]}`\n )\n allReactions.splice(0) // clear reactions\n }\n let remainingReactions = allReactions.splice(0)\n for (let i = 0, l = remainingReactions.length; i < l; i++) {\n remainingReactions[i].runReaction_()\n }\n }\n globalState.isRunningReactions = false\n}\n\nexport const isReaction = createInstanceofPredicate(\"Reaction\", Reaction)\n\nexport function setReactionScheduler(fn: (f: () => void) => void) {\n const baseScheduler = reactionScheduler\n reactionScheduler = f => fn(() => baseScheduler(f))\n}\n","import {\n createAction,\n executeAction,\n Annotation,\n storeAnnotation,\n die,\n isFunction,\n isStringish,\n createDecoratorAnnotation,\n createActionAnnotation\n} from \"../internal\"\n\nexport const ACTION = \"action\"\nexport const ACTION_BOUND = \"action.bound\"\nexport const AUTOACTION = \"autoAction\"\nexport const AUTOACTION_BOUND = \"autoAction.bound\"\n\nconst DEFAULT_ACTION_NAME = \"\"\n\nconst actionAnnotation = createActionAnnotation(ACTION)\nconst actionBoundAnnotation = createActionAnnotation(ACTION_BOUND, {\n bound: true\n})\nconst autoActionAnnotation = createActionAnnotation(AUTOACTION, {\n autoAction: true\n})\nconst autoActionBoundAnnotation = createActionAnnotation(AUTOACTION_BOUND, {\n autoAction: true,\n bound: true\n})\n\nexport interface IActionFactory extends Annotation, PropertyDecorator {\n // nameless actions\n (fn: T): T\n // named actions\n (name: string, fn: T): T\n\n // named decorator\n (customName: string): PropertyDecorator & Annotation\n\n // decorator (name no longer supported)\n bound: Annotation & PropertyDecorator\n}\n\nfunction createActionFactory(autoAction: boolean): IActionFactory {\n const res: IActionFactory = function action(arg1, arg2?): any {\n // action(fn() {})\n if (isFunction(arg1)) {\n return createAction(arg1.name || DEFAULT_ACTION_NAME, arg1, autoAction)\n }\n // action(\"name\", fn() {})\n if (isFunction(arg2)) {\n return createAction(arg1, arg2, autoAction)\n }\n // @action\n if (isStringish(arg2)) {\n return storeAnnotation(arg1, arg2, autoAction ? autoActionAnnotation : actionAnnotation)\n }\n // action(\"name\") & @action(\"name\")\n if (isStringish(arg1)) {\n return createDecoratorAnnotation(\n createActionAnnotation(autoAction ? AUTOACTION : ACTION, {\n name: arg1,\n autoAction\n })\n )\n }\n\n if (__DEV__) {\n die(\"Invalid arguments for `action`\")\n }\n } as IActionFactory\n return res\n}\n\nexport const action: IActionFactory = createActionFactory(false)\nObject.assign(action, actionAnnotation)\nexport const autoAction: IActionFactory = createActionFactory(true)\nObject.assign(autoAction, autoActionAnnotation)\n\naction.bound = createDecoratorAnnotation(actionBoundAnnotation)\nautoAction.bound = createDecoratorAnnotation(autoActionBoundAnnotation)\n\nexport function runInAction(fn: () => T): T {\n return executeAction(fn.name || DEFAULT_ACTION_NAME, false, fn, this, undefined)\n}\n\nexport function isAction(thing: any) {\n return isFunction(thing) && thing.isMobxAction === true\n}\n","import {\n EMPTY_OBJECT,\n IEqualsComparer,\n IReactionDisposer,\n IReactionPublic,\n Lambda,\n Reaction,\n action,\n comparer,\n getNextId,\n isAction,\n isFunction,\n isPlainObject,\n die,\n allowStateChanges,\n GenericAbortSignal\n} from \"../internal\"\n\nexport interface IAutorunOptions {\n delay?: number\n name?: string\n /**\n * Experimental.\n * Warns if the view doesn't track observables\n */\n requiresObservable?: boolean\n scheduler?: (callback: () => void) => any\n onError?: (error: any) => void\n signal?: GenericAbortSignal\n}\n\n/**\n * Creates a named reactive view and keeps it alive, so that the view is always\n * updated if one of the dependencies changes, even when the view is not further used by something else.\n * @param view The reactive view\n * @returns disposer function, which can be used to stop the view from being updated in the future.\n */\nexport function autorun(\n view: (r: IReactionPublic) => any,\n opts: IAutorunOptions = EMPTY_OBJECT\n): IReactionDisposer {\n if (__DEV__) {\n if (!isFunction(view)) {\n die(\"Autorun expects a function as first argument\")\n }\n if (isAction(view)) {\n die(\"Autorun does not accept actions since actions are untrackable\")\n }\n }\n\n const name: string =\n opts?.name ?? (__DEV__ ? (view as any).name || \"Autorun@\" + getNextId() : \"Autorun\")\n const runSync = !opts.scheduler && !opts.delay\n let reaction: Reaction\n\n if (runSync) {\n // normal autorun\n reaction = new Reaction(\n name,\n function (this: Reaction) {\n this.track(reactionRunner)\n },\n opts.onError,\n opts.requiresObservable\n )\n } else {\n const scheduler = createSchedulerFromOptions(opts)\n // debounced autorun\n let isScheduled = false\n\n reaction = new Reaction(\n name,\n () => {\n if (!isScheduled) {\n isScheduled = true\n scheduler(() => {\n isScheduled = false\n if (!reaction.isDisposed_) {\n reaction.track(reactionRunner)\n }\n })\n }\n },\n opts.onError,\n opts.requiresObservable\n )\n }\n\n function reactionRunner() {\n view(reaction)\n }\n\n if(!opts?.signal?.aborted) {\n reaction.schedule_()\n }\n return reaction.getDisposer_(opts?.signal)\n}\n\nexport type IReactionOptions = IAutorunOptions & {\n fireImmediately?: FireImmediately\n equals?: IEqualsComparer\n}\n\nconst run = (f: Lambda) => f()\n\nfunction createSchedulerFromOptions(opts: IAutorunOptions) {\n return opts.scheduler\n ? opts.scheduler\n : opts.delay\n ? (f: Lambda) => setTimeout(f, opts.delay!)\n : run\n}\n\nexport function reaction(\n expression: (r: IReactionPublic) => T,\n effect: (\n arg: T,\n prev: FireImmediately extends true ? T | undefined : T,\n r: IReactionPublic\n ) => void,\n opts: IReactionOptions = EMPTY_OBJECT\n): IReactionDisposer {\n if (__DEV__) {\n if (!isFunction(expression) || !isFunction(effect)) {\n die(\"First and second argument to reaction should be functions\")\n }\n if (!isPlainObject(opts)) {\n die(\"Third argument of reactions should be an object\")\n }\n }\n const name = opts.name ?? (__DEV__ ? \"Reaction@\" + getNextId() : \"Reaction\")\n const effectAction = action(\n name,\n opts.onError ? wrapErrorHandler(opts.onError, effect) : effect\n )\n const runSync = !opts.scheduler && !opts.delay\n const scheduler = createSchedulerFromOptions(opts)\n\n let firstTime = true\n let isScheduled = false\n let value: T\n let oldValue: T | undefined\n\n const equals: IEqualsComparer = (opts as any).compareStructural\n ? comparer.structural\n : opts.equals || comparer.default\n\n const r = new Reaction(\n name,\n () => {\n if (firstTime || runSync) {\n reactionRunner()\n } else if (!isScheduled) {\n isScheduled = true\n scheduler!(reactionRunner)\n }\n },\n opts.onError,\n opts.requiresObservable\n )\n\n function reactionRunner() {\n isScheduled = false\n if (r.isDisposed_) {\n return\n }\n let changed: boolean = false\n r.track(() => {\n const nextValue = allowStateChanges(false, () => expression(r))\n changed = firstTime || !equals(value, nextValue)\n oldValue = value\n value = nextValue\n })\n\n // This casting is nesessary as TS cannot infer proper type in current funciton implementation\n type OldValue = FireImmediately extends true ? T | undefined : T\n if (firstTime && opts.fireImmediately!) {\n effectAction(value, oldValue as OldValue, r)\n } else if (!firstTime && changed) {\n effectAction(value, oldValue as OldValue, r)\n }\n firstTime = false\n }\n\n if(!opts?.signal?.aborted) {\n r.schedule_()\n }\n return r.getDisposer_(opts?.signal)\n}\n\nfunction wrapErrorHandler(errorHandler, baseFn) {\n return function () {\n try {\n return baseFn.apply(this, arguments)\n } catch (e) {\n errorHandler.call(this, e)\n }\n }\n}\n","import { globalState, isolateGlobalState, setReactionScheduler } from \"../internal\"\n\nconst NEVER = \"never\"\nconst ALWAYS = \"always\"\nconst OBSERVED = \"observed\"\n// const IF_AVAILABLE = \"ifavailable\"\n\nexport function configure(options: {\n enforceActions?: \"never\" | \"always\" | \"observed\"\n computedRequiresReaction?: boolean\n /**\n * Warn if you try to create to derivation / reactive context without accessing any observable.\n */\n reactionRequiresObservable?: boolean\n /**\n * Warn if observables are accessed outside a reactive context\n */\n observableRequiresReaction?: boolean\n isolateGlobalState?: boolean\n disableErrorBoundaries?: boolean\n safeDescriptors?: boolean\n reactionScheduler?: (f: () => void) => void\n useProxies?: \"always\" | \"never\" | \"ifavailable\"\n}): void {\n if (options.isolateGlobalState === true) {\n isolateGlobalState()\n }\n const { useProxies, enforceActions } = options\n if (useProxies !== undefined) {\n globalState.useProxies =\n useProxies === ALWAYS\n ? true\n : useProxies === NEVER\n ? false\n : typeof Proxy !== \"undefined\"\n }\n if (useProxies === \"ifavailable\") {\n globalState.verifyProxies = true\n }\n if (enforceActions !== undefined) {\n const ea = enforceActions === ALWAYS ? ALWAYS : enforceActions === OBSERVED\n globalState.enforceActions = ea\n globalState.allowStateChanges = ea === true || ea === ALWAYS ? false : true\n }\n ;[\n \"computedRequiresReaction\",\n \"reactionRequiresObservable\",\n \"observableRequiresReaction\",\n \"disableErrorBoundaries\",\n \"safeDescriptors\"\n ].forEach(key => {\n if (key in options) {\n globalState[key] = !!options[key]\n }\n })\n globalState.allowStateReads = !globalState.observableRequiresReaction\n if (__DEV__ && globalState.disableErrorBoundaries === true) {\n console.warn(\n \"WARNING: Debug feature only. MobX will NOT recover from errors when `disableErrorBoundaries` is enabled.\"\n )\n }\n if (options.reactionScheduler) {\n setReactionScheduler(options.reactionScheduler)\n }\n}\n","import {\n CreateObservableOptions,\n isObservableMap,\n AnnotationsMap,\n asObservableObject,\n isPlainObject,\n ObservableObjectAdministration,\n isObservable,\n die,\n getOwnPropertyDescriptors,\n $mobx,\n ownKeys,\n initObservable\n} from \"../internal\"\n\nexport function extendObservable(\n target: A,\n properties: B,\n annotations?: AnnotationsMap,\n options?: CreateObservableOptions\n): A & B {\n if (__DEV__) {\n if (arguments.length > 4) {\n die(\"'extendObservable' expected 2-4 arguments\")\n }\n if (typeof target !== \"object\") {\n die(\"'extendObservable' expects an object as first argument\")\n }\n if (isObservableMap(target)) {\n die(\"'extendObservable' should not be used on maps, use map.merge instead\")\n }\n if (!isPlainObject(properties)) {\n die(`'extendObservable' only accepts plain objects as second argument`)\n }\n if (isObservable(properties) || isObservable(annotations)) {\n die(`Extending an object with another observable (object) is not supported`)\n }\n }\n // Pull descriptors first, so we don't have to deal with props added by administration ($mobx)\n const descriptors = getOwnPropertyDescriptors(properties)\n\n initObservable(() => {\n const adm: ObservableObjectAdministration = asObservableObject(target, options)[$mobx]\n ownKeys(descriptors).forEach(key => {\n adm.extend_(\n key,\n descriptors[key as any],\n // must pass \"undefined\" for { key: undefined }\n !annotations ? true : key in annotations ? annotations[key] : true\n )\n })\n })\n\n return target as any\n}\n","import { IDepTreeNode, getAtom, getObservers, hasObservers } from \"../internal\"\n\nexport interface IDependencyTree {\n name: string\n dependencies?: IDependencyTree[]\n}\n\nexport interface IObserverTree {\n name: string\n observers?: IObserverTree[]\n}\n\nexport function getDependencyTree(thing: any, property?: string): IDependencyTree {\n return nodeToDependencyTree(getAtom(thing, property))\n}\n\nfunction nodeToDependencyTree(node: IDepTreeNode): IDependencyTree {\n const result: IDependencyTree = {\n name: node.name_\n }\n if (node.observing_ && node.observing_.length > 0) {\n result.dependencies = unique(node.observing_).map(nodeToDependencyTree)\n }\n return result\n}\n\nexport function getObserverTree(thing: any, property?: string): IObserverTree {\n return nodeToObserverTree(getAtom(thing, property))\n}\n\nfunction nodeToObserverTree(node: IDepTreeNode): IObserverTree {\n const result: IObserverTree = {\n name: node.name_\n }\n if (hasObservers(node as any)) {\n result.observers = Array.from(getObservers(node as any)).map(nodeToObserverTree)\n }\n return result\n}\n\nfunction unique(list: T[]): T[] {\n return Array.from(new Set(list))\n}\n","import {\n action,\n noop,\n die,\n isFunction,\n Annotation,\n isStringish,\n storeAnnotation,\n createFlowAnnotation,\n createDecoratorAnnotation\n} from \"../internal\"\n\nexport const FLOW = \"flow\"\n\nlet generatorId = 0\n\nexport function FlowCancellationError() {\n this.message = \"FLOW_CANCELLED\"\n}\nFlowCancellationError.prototype = Object.create(Error.prototype)\n\nexport function isFlowCancellationError(error: Error) {\n return error instanceof FlowCancellationError\n}\n\nexport type CancellablePromise = Promise & { cancel(): void }\n\ninterface Flow extends Annotation, PropertyDecorator {\n (\n generator: (...args: Args) => Generator | AsyncGenerator\n ): (...args: Args) => CancellablePromise\n bound: Annotation & PropertyDecorator\n}\n\nconst flowAnnotation = createFlowAnnotation(\"flow\")\nconst flowBoundAnnotation = createFlowAnnotation(\"flow.bound\", { bound: true })\n\nexport const flow: Flow = Object.assign(\n function flow(arg1, arg2?) {\n // @flow\n if (isStringish(arg2)) {\n return storeAnnotation(arg1, arg2, flowAnnotation)\n }\n // flow(fn)\n if (__DEV__ && arguments.length !== 1) {\n die(`Flow expects single argument with generator function`)\n }\n const generator = arg1\n const name = generator.name || \"\"\n\n // Implementation based on https://github.com/tj/co/blob/master/index.js\n const res = function () {\n const ctx = this\n const args = arguments\n const runId = ++generatorId\n const gen = action(`${name} - runid: ${runId} - init`, generator).apply(ctx, args)\n let rejector: (error: any) => void\n let pendingPromise: CancellablePromise | undefined = undefined\n\n const promise = new Promise(function (resolve, reject) {\n let stepId = 0\n rejector = reject\n\n function onFulfilled(res: any) {\n pendingPromise = undefined\n let ret\n try {\n ret = action(\n `${name} - runid: ${runId} - yield ${stepId++}`,\n gen.next\n ).call(gen, res)\n } catch (e) {\n return reject(e)\n }\n\n next(ret)\n }\n\n function onRejected(err: any) {\n pendingPromise = undefined\n let ret\n try {\n ret = action(\n `${name} - runid: ${runId} - yield ${stepId++}`,\n gen.throw!\n ).call(gen, err)\n } catch (e) {\n return reject(e)\n }\n next(ret)\n }\n\n function next(ret: any) {\n if (isFunction(ret?.then)) {\n // an async iterator\n ret.then(next, reject)\n return\n }\n if (ret.done) {\n return resolve(ret.value)\n }\n pendingPromise = Promise.resolve(ret.value) as any\n return pendingPromise!.then(onFulfilled, onRejected)\n }\n\n onFulfilled(undefined) // kick off the process\n }) as any\n\n promise.cancel = action(`${name} - runid: ${runId} - cancel`, function () {\n try {\n if (pendingPromise) {\n cancelPromise(pendingPromise)\n }\n // Finally block can return (or yield) stuff..\n const res = gen.return!(undefined as any)\n // eat anything that promise would do, it's cancelled!\n const yieldedPromise = Promise.resolve(res.value)\n yieldedPromise.then(noop, noop)\n cancelPromise(yieldedPromise) // maybe it can be cancelled :)\n // reject our original promise\n rejector(new FlowCancellationError())\n } catch (e) {\n rejector(e) // there could be a throwing finally block\n }\n })\n return promise\n }\n res.isMobXFlow = true\n return res\n } as any,\n flowAnnotation\n)\n\nflow.bound = createDecoratorAnnotation(flowBoundAnnotation)\n\nfunction cancelPromise(promise) {\n if (isFunction(promise.cancel)) {\n promise.cancel()\n }\n}\n\nexport function flowResult(\n result: T\n): T extends Generator\n ? CancellablePromise\n : T extends CancellablePromise\n ? T\n : never {\n return result as any // just tricking TypeScript :)\n}\n\nexport function isFlow(fn: any): boolean {\n return fn?.isMobXFlow === true\n}\n","import {\n $mobx,\n isAtom,\n isComputedValue,\n isObservableArray,\n isObservableMap,\n isObservableObject,\n isReaction,\n die,\n isStringish\n} from \"../internal\"\n\nfunction _isObservable(value, property?: PropertyKey): boolean {\n if (!value) {\n return false\n }\n if (property !== undefined) {\n if (__DEV__ && (isObservableMap(value) || isObservableArray(value))) {\n return die(\n \"isObservable(object, propertyName) is not supported for arrays and maps. Use map.has or array.length instead.\"\n )\n }\n if (isObservableObject(value)) {\n return value[$mobx].values_.has(property)\n }\n return false\n }\n // For first check, see #701\n return (\n isObservableObject(value) ||\n !!value[$mobx] ||\n isAtom(value) ||\n isReaction(value) ||\n isComputedValue(value)\n )\n}\n\nexport function isObservable(value: any): boolean {\n if (__DEV__ && arguments.length !== 1) {\n die(\n `isObservable expects only 1 argument. Use isObservableProp to inspect the observability of a property`\n )\n }\n return _isObservable(value)\n}\n\nexport function isObservableProp(value: any, propName: PropertyKey): boolean {\n if (__DEV__ && !isStringish(propName)) {\n return die(`expected a property name as second argument`)\n }\n return _isObservable(value, propName)\n}\n","import { endBatch, startBatch } from \"../internal\"\n\n/**\n * During a transaction no views are updated until the end of the transaction.\n * The transaction will be run synchronously nonetheless.\n *\n * @param action a function that updates some reactive state\n * @returns any value that was returned by the 'action' parameter.\n */\nexport function transaction(action: () => T, thisArg = undefined): T {\n startBatch()\n try {\n return action.apply(thisArg)\n } finally {\n endBatch()\n }\n}\n","import { Lambda, once, untrackedEnd, untrackedStart, die } from \"../internal\"\n\nexport type IInterceptor = (change: T) => T | null\n\nexport interface IInterceptable {\n interceptors_: IInterceptor[] | undefined\n}\n\nexport function hasInterceptors(interceptable: IInterceptable) {\n return interceptable.interceptors_ !== undefined && interceptable.interceptors_.length > 0\n}\n\nexport function registerInterceptor(\n interceptable: IInterceptable,\n handler: IInterceptor\n): Lambda {\n const interceptors = interceptable.interceptors_ || (interceptable.interceptors_ = [])\n interceptors.push(handler)\n return once(() => {\n const idx = interceptors.indexOf(handler)\n if (idx !== -1) {\n interceptors.splice(idx, 1)\n }\n })\n}\n\nexport function interceptChange(\n interceptable: IInterceptable,\n change: T | null\n): T | null {\n const prevU = untrackedStart()\n try {\n // Interceptor can modify the array, copy it to avoid concurrent modification, see #1950\n const interceptors = [...(interceptable.interceptors_ || [])]\n for (let i = 0, l = interceptors.length; i < l; i++) {\n change = interceptors[i](change)\n if (change && !(change as any).type) {\n die(14)\n }\n if (!change) {\n break\n }\n }\n return change\n } finally {\n untrackedEnd(prevU)\n }\n}\n","import { Lambda, once, untrackedEnd, untrackedStart } from \"../internal\"\n\nexport interface IListenable {\n changeListeners_: Function[] | undefined\n}\n\nexport function hasListeners(listenable: IListenable) {\n return listenable.changeListeners_ !== undefined && listenable.changeListeners_.length > 0\n}\n\nexport function registerListener(listenable: IListenable, handler: Function): Lambda {\n const listeners = listenable.changeListeners_ || (listenable.changeListeners_ = [])\n listeners.push(handler)\n return once(() => {\n const idx = listeners.indexOf(handler)\n if (idx !== -1) {\n listeners.splice(idx, 1)\n }\n })\n}\n\nexport function notifyListeners(listenable: IListenable, change: T) {\n const prevU = untrackedStart()\n let listeners = listenable.changeListeners_\n if (!listeners) {\n return\n }\n listeners = listeners.slice()\n for (let i = 0, l = listeners.length; i < l; i++) {\n listeners[i](change)\n }\n untrackedEnd(prevU)\n}\n","import {\n $mobx,\n Atom,\n EMPTY_ARRAY,\n IAtom,\n IEnhancer,\n IInterceptable,\n IInterceptor,\n IListenable,\n Lambda,\n addHiddenFinalProp,\n checkIfStateModificationsAreAllowed,\n createInstanceofPredicate,\n getNextId,\n hasInterceptors,\n hasListeners,\n interceptChange,\n isObject,\n isSpyEnabled,\n notifyListeners,\n registerInterceptor,\n registerListener,\n spyReportEnd,\n spyReportStart,\n assertProxies,\n reserveArrayBuffer,\n hasProp,\n die,\n globalState,\n initObservable\n} from \"../internal\"\n\nconst SPLICE = \"splice\"\nexport const UPDATE = \"update\"\nexport const MAX_SPLICE_SIZE = 10000 // See e.g. https://github.com/mobxjs/mobx/issues/859\n\nexport interface IObservableArray extends Array {\n spliceWithArray(index: number, deleteCount?: number, newItems?: T[]): T[]\n clear(): T[]\n replace(newItems: T[]): T[]\n remove(value: T): boolean\n toJSON(): T[]\n}\n\ninterface IArrayBaseChange {\n object: IObservableArray\n observableKind: \"array\"\n debugObjectName: string\n index: number\n}\n\nexport type IArrayDidChange = IArrayUpdate | IArraySplice\n\nexport interface IArrayUpdate extends IArrayBaseChange {\n type: \"update\"\n newValue: T\n oldValue: T\n}\n\nexport interface IArraySplice extends IArrayBaseChange {\n type: \"splice\"\n added: T[]\n addedCount: number\n removed: T[]\n removedCount: number\n}\n\nexport interface IArrayWillChange {\n object: IObservableArray\n index: number\n type: \"update\"\n newValue: T\n}\n\nexport interface IArrayWillSplice {\n object: IObservableArray\n index: number\n type: \"splice\"\n added: T[]\n removedCount: number\n}\n\nconst arrayTraps = {\n get(target, name) {\n const adm: ObservableArrayAdministration = target[$mobx]\n if (name === $mobx) {\n return adm\n }\n if (name === \"length\") {\n return adm.getArrayLength_()\n }\n if (typeof name === \"string\" && !isNaN(name as any)) {\n return adm.get_(parseInt(name))\n }\n if (hasProp(arrayExtensions, name)) {\n return arrayExtensions[name]\n }\n return target[name]\n },\n set(target, name, value): boolean {\n const adm: ObservableArrayAdministration = target[$mobx]\n if (name === \"length\") {\n adm.setArrayLength_(value)\n }\n if (typeof name === \"symbol\" || isNaN(name)) {\n target[name] = value\n } else {\n // numeric string\n adm.set_(parseInt(name), value)\n }\n return true\n },\n preventExtensions() {\n die(15)\n }\n}\n\nexport class ObservableArrayAdministration\n implements IInterceptable | IArrayWillSplice>, IListenable\n{\n atom_: IAtom\n readonly values_: any[] = [] // this is the prop that gets proxied, so can't replace it!\n interceptors_\n changeListeners_\n enhancer_: (newV: any, oldV: any | undefined) => any\n dehancer: any\n proxy_!: IObservableArray\n lastKnownLength_ = 0\n\n constructor(\n name = __DEV__ ? \"ObservableArray@\" + getNextId() : \"ObservableArray\",\n enhancer: IEnhancer,\n public owned_: boolean,\n public legacyMode_: boolean\n ) {\n this.atom_ = new Atom(name)\n this.enhancer_ = (newV, oldV) =>\n enhancer(newV, oldV, __DEV__ ? name + \"[..]\" : \"ObservableArray[..]\")\n }\n\n dehanceValue_(value: any): any {\n if (this.dehancer !== undefined) {\n return this.dehancer(value)\n }\n return value\n }\n\n dehanceValues_(values: any[]): any[] {\n if (this.dehancer !== undefined && values.length > 0) {\n return values.map(this.dehancer) as any\n }\n return values\n }\n\n intercept_(handler: IInterceptor | IArrayWillSplice>): Lambda {\n return registerInterceptor | IArrayWillSplice>(this, handler)\n }\n\n observe_(\n listener: (changeData: IArrayDidChange) => void,\n fireImmediately = false\n ): Lambda {\n if (fireImmediately) {\n listener(>{\n observableKind: \"array\",\n object: this.proxy_ as any,\n debugObjectName: this.atom_.name_,\n type: \"splice\",\n index: 0,\n added: this.values_.slice(),\n addedCount: this.values_.length,\n removed: [],\n removedCount: 0\n })\n }\n return registerListener(this, listener)\n }\n\n getArrayLength_(): number {\n this.atom_.reportObserved()\n return this.values_.length\n }\n\n setArrayLength_(newLength: number) {\n if (typeof newLength !== \"number\" || isNaN(newLength) || newLength < 0) {\n die(\"Out of range: \" + newLength)\n }\n let currentLength = this.values_.length\n if (newLength === currentLength) {\n return\n } else if (newLength > currentLength) {\n const newItems = new Array(newLength - currentLength)\n for (let i = 0; i < newLength - currentLength; i++) {\n newItems[i] = undefined\n } // No Array.fill everywhere...\n this.spliceWithArray_(currentLength, 0, newItems)\n } else {\n this.spliceWithArray_(newLength, currentLength - newLength)\n }\n }\n\n updateArrayLength_(oldLength: number, delta: number) {\n if (oldLength !== this.lastKnownLength_) {\n die(16)\n }\n this.lastKnownLength_ += delta\n if (this.legacyMode_ && delta > 0) {\n reserveArrayBuffer(oldLength + delta + 1)\n }\n }\n\n spliceWithArray_(index: number, deleteCount?: number, newItems?: any[]): any[] {\n checkIfStateModificationsAreAllowed(this.atom_)\n const length = this.values_.length\n\n if (index === undefined) {\n index = 0\n } else if (index > length) {\n index = length\n } else if (index < 0) {\n index = Math.max(0, length + index)\n }\n\n if (arguments.length === 1) {\n deleteCount = length - index\n } else if (deleteCount === undefined || deleteCount === null) {\n deleteCount = 0\n } else {\n deleteCount = Math.max(0, Math.min(deleteCount, length - index))\n }\n\n if (newItems === undefined) {\n newItems = EMPTY_ARRAY\n }\n\n if (hasInterceptors(this)) {\n const change = interceptChange>(this as any, {\n object: this.proxy_ as any,\n type: SPLICE,\n index,\n removedCount: deleteCount,\n added: newItems\n })\n if (!change) {\n return EMPTY_ARRAY\n }\n deleteCount = change.removedCount\n newItems = change.added\n }\n\n newItems =\n newItems.length === 0 ? newItems : newItems.map(v => this.enhancer_(v, undefined))\n if (this.legacyMode_ || __DEV__) {\n const lengthDelta = newItems.length - deleteCount\n this.updateArrayLength_(length, lengthDelta) // checks if internal array wasn't modified\n }\n const res = this.spliceItemsIntoValues_(index, deleteCount, newItems)\n\n if (deleteCount !== 0 || newItems.length !== 0) {\n this.notifyArraySplice_(index, newItems, res)\n }\n return this.dehanceValues_(res)\n }\n\n spliceItemsIntoValues_(index: number, deleteCount: number, newItems: any[]): any[] {\n if (newItems.length < MAX_SPLICE_SIZE) {\n return this.values_.splice(index, deleteCount, ...newItems)\n } else {\n // The items removed by the splice\n const res = this.values_.slice(index, index + deleteCount)\n // The items that that should remain at the end of the array\n let oldItems = this.values_.slice(index + deleteCount)\n // New length is the previous length + addition count - deletion count\n this.values_.length += newItems.length - deleteCount\n for (let i = 0; i < newItems.length; i++) {\n this.values_[index + i] = newItems[i]\n }\n for (let i = 0; i < oldItems.length; i++) {\n this.values_[index + newItems.length + i] = oldItems[i]\n }\n return res\n }\n }\n\n notifyArrayChildUpdate_(index: number, newValue: any, oldValue: any) {\n const notifySpy = !this.owned_ && isSpyEnabled()\n const notify = hasListeners(this)\n const change: IArrayDidChange | null =\n notify || notifySpy\n ? ({\n observableKind: \"array\",\n object: this.proxy_,\n type: UPDATE,\n debugObjectName: this.atom_.name_,\n index,\n newValue,\n oldValue\n } as const)\n : null\n\n // The reason why this is on right hand side here (and not above), is this way the uglifier will drop it, but it won't\n // cause any runtime overhead in development mode without NODE_ENV set, unless spying is enabled\n if (__DEV__ && notifySpy) {\n spyReportStart(change!)\n }\n this.atom_.reportChanged()\n if (notify) {\n notifyListeners(this, change)\n }\n if (__DEV__ && notifySpy) {\n spyReportEnd()\n }\n }\n\n notifyArraySplice_(index: number, added: any[], removed: any[]) {\n const notifySpy = !this.owned_ && isSpyEnabled()\n const notify = hasListeners(this)\n const change: IArraySplice | null =\n notify || notifySpy\n ? ({\n observableKind: \"array\",\n object: this.proxy_,\n debugObjectName: this.atom_.name_,\n type: SPLICE,\n index,\n removed,\n added,\n removedCount: removed.length,\n addedCount: added.length\n } as const)\n : null\n\n if (__DEV__ && notifySpy) {\n spyReportStart(change!)\n }\n this.atom_.reportChanged()\n // conform: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/observe\n if (notify) {\n notifyListeners(this, change)\n }\n if (__DEV__ && notifySpy) {\n spyReportEnd()\n }\n }\n\n get_(index: number): any | undefined {\n if (this.legacyMode_ && index >= this.values_.length) {\n console.warn(\n __DEV__\n ? `[mobx.array] Attempt to read an array index (${index}) that is out of bounds (${this.values_.length}). Please check length first. Out of bound indices will not be tracked by MobX`\n : `[mobx] Out of bounds read: ${index}`\n )\n return undefined\n }\n this.atom_.reportObserved()\n return this.dehanceValue_(this.values_[index])\n }\n\n set_(index: number, newValue: any) {\n const values = this.values_\n if (this.legacyMode_ && index > values.length) {\n // out of bounds\n die(17, index, values.length)\n }\n if (index < values.length) {\n // update at index in range\n checkIfStateModificationsAreAllowed(this.atom_)\n const oldValue = values[index]\n if (hasInterceptors(this)) {\n const change = interceptChange>(this as any, {\n type: UPDATE,\n object: this.proxy_ as any, // since \"this\" is the real array we need to pass its proxy\n index,\n newValue\n })\n if (!change) {\n return\n }\n newValue = change.newValue\n }\n newValue = this.enhancer_(newValue, oldValue)\n const changed = newValue !== oldValue\n if (changed) {\n values[index] = newValue\n this.notifyArrayChildUpdate_(index, newValue, oldValue)\n }\n } else {\n // For out of bound index, we don't create an actual sparse array,\n // but rather fill the holes with undefined (same as setArrayLength_).\n // This could be considered a bug.\n const newItems = new Array(index + 1 - values.length)\n for (let i = 0; i < newItems.length - 1; i++) {\n newItems[i] = undefined\n } // No Array.fill everywhere...\n newItems[newItems.length - 1] = newValue\n this.spliceWithArray_(values.length, 0, newItems)\n }\n }\n}\n\nexport function createObservableArray(\n initialValues: T[] | undefined,\n enhancer: IEnhancer,\n name = __DEV__ ? \"ObservableArray@\" + getNextId() : \"ObservableArray\",\n owned = false\n): IObservableArray {\n assertProxies()\n return initObservable(() => {\n const adm = new ObservableArrayAdministration(name, enhancer, owned, false)\n addHiddenFinalProp(adm.values_, $mobx, adm)\n const proxy = new Proxy(adm.values_, arrayTraps) as any\n adm.proxy_ = proxy\n if (initialValues && initialValues.length) {\n adm.spliceWithArray_(0, 0, initialValues)\n }\n return proxy\n })\n}\n\n// eslint-disable-next-line\nexport var arrayExtensions = {\n clear(): any[] {\n return this.splice(0)\n },\n\n replace(newItems: any[]) {\n const adm: ObservableArrayAdministration = this[$mobx]\n return adm.spliceWithArray_(0, adm.values_.length, newItems)\n },\n\n // Used by JSON.stringify\n toJSON(): any[] {\n return this.slice()\n },\n\n /*\n * functions that do alter the internal structure of the array, (based on lib.es6.d.ts)\n * since these functions alter the inner structure of the array, the have side effects.\n * Because the have side effects, they should not be used in computed function,\n * and for that reason the do not call dependencyState.notifyObserved\n */\n splice(index: number, deleteCount?: number, ...newItems: any[]): any[] {\n const adm: ObservableArrayAdministration = this[$mobx]\n switch (arguments.length) {\n case 0:\n return []\n case 1:\n return adm.spliceWithArray_(index)\n case 2:\n return adm.spliceWithArray_(index, deleteCount)\n }\n return adm.spliceWithArray_(index, deleteCount, newItems)\n },\n\n spliceWithArray(index: number, deleteCount?: number, newItems?: any[]): any[] {\n return (this[$mobx] as ObservableArrayAdministration).spliceWithArray_(\n index,\n deleteCount,\n newItems\n )\n },\n\n push(...items: any[]): number {\n const adm: ObservableArrayAdministration = this[$mobx]\n adm.spliceWithArray_(adm.values_.length, 0, items)\n return adm.values_.length\n },\n\n pop() {\n return this.splice(Math.max(this[$mobx].values_.length - 1, 0), 1)[0]\n },\n\n shift() {\n return this.splice(0, 1)[0]\n },\n\n unshift(...items: any[]): number {\n const adm: ObservableArrayAdministration = this[$mobx]\n adm.spliceWithArray_(0, 0, items)\n return adm.values_.length\n },\n\n reverse(): any[] {\n // reverse by default mutates in place before returning the result\n // which makes it both a 'derivation' and a 'mutation'.\n if (globalState.trackingDerivation) {\n die(37, \"reverse\")\n }\n this.replace(this.slice().reverse())\n return this\n },\n\n sort(): any[] {\n // sort by default mutates in place before returning the result\n // which goes against all good practices. Let's not change the array in place!\n if (globalState.trackingDerivation) {\n die(37, \"sort\")\n }\n const copy = this.slice()\n copy.sort.apply(copy, arguments)\n this.replace(copy)\n return this\n },\n\n remove(value: any): boolean {\n const adm: ObservableArrayAdministration = this[$mobx]\n const idx = adm.dehanceValues_(adm.values_).indexOf(value)\n if (idx > -1) {\n this.splice(idx, 1)\n return true\n }\n return false\n }\n}\n\n/**\n * Wrap function from prototype\n * Without this, everything works as well, but this works\n * faster as everything works on unproxied values\n */\naddArrayExtension(\"concat\", simpleFunc)\naddArrayExtension(\"flat\", simpleFunc)\naddArrayExtension(\"includes\", simpleFunc)\naddArrayExtension(\"indexOf\", simpleFunc)\naddArrayExtension(\"join\", simpleFunc)\naddArrayExtension(\"lastIndexOf\", simpleFunc)\naddArrayExtension(\"slice\", simpleFunc)\naddArrayExtension(\"toString\", simpleFunc)\naddArrayExtension(\"toLocaleString\", simpleFunc)\n// map\naddArrayExtension(\"every\", mapLikeFunc)\naddArrayExtension(\"filter\", mapLikeFunc)\naddArrayExtension(\"find\", mapLikeFunc)\naddArrayExtension(\"findIndex\", mapLikeFunc)\naddArrayExtension(\"flatMap\", mapLikeFunc)\naddArrayExtension(\"forEach\", mapLikeFunc)\naddArrayExtension(\"map\", mapLikeFunc)\naddArrayExtension(\"some\", mapLikeFunc)\n// reduce\naddArrayExtension(\"reduce\", reduceLikeFunc)\naddArrayExtension(\"reduceRight\", reduceLikeFunc)\n\nfunction addArrayExtension(funcName, funcFactory) {\n if (typeof Array.prototype[funcName] === \"function\") {\n arrayExtensions[funcName] = funcFactory(funcName)\n }\n}\n\n// Report and delegate to dehanced array\nfunction simpleFunc(funcName) {\n return function () {\n const adm: ObservableArrayAdministration = this[$mobx]\n adm.atom_.reportObserved()\n const dehancedValues = adm.dehanceValues_(adm.values_)\n return dehancedValues[funcName].apply(dehancedValues, arguments)\n }\n}\n\n// Make sure callbacks recieve correct array arg #2326\nfunction mapLikeFunc(funcName) {\n return function (callback, thisArg) {\n const adm: ObservableArrayAdministration = this[$mobx]\n adm.atom_.reportObserved()\n const dehancedValues = adm.dehanceValues_(adm.values_)\n return dehancedValues[funcName]((element, index) => {\n return callback.call(thisArg, element, index, this)\n })\n }\n}\n\n// Make sure callbacks recieve correct array arg #2326\nfunction reduceLikeFunc(funcName) {\n return function () {\n const adm: ObservableArrayAdministration = this[$mobx]\n adm.atom_.reportObserved()\n const dehancedValues = adm.dehanceValues_(adm.values_)\n // #2432 - reduce behavior depends on arguments.length\n const callback = arguments[0]\n arguments[0] = (accumulator, currentValue, index) => {\n return callback(accumulator, currentValue, index, this)\n }\n return dehancedValues[funcName].apply(dehancedValues, arguments)\n }\n}\n\nconst isObservableArrayAdministration = createInstanceofPredicate(\n \"ObservableArrayAdministration\",\n ObservableArrayAdministration\n)\n\nexport function isObservableArray(thing): thing is IObservableArray {\n return isObject(thing) && isObservableArrayAdministration(thing[$mobx])\n}\n","import { IComputedDidChange } from \"./computedvalue\"\nimport { IValueDidChange, IBoxDidChange } from \"./../types/observablevalue\"\nimport { IObjectDidChange } from \"./../types/observableobject\"\nimport { IArrayDidChange } from \"./../types/observablearray\"\nimport { Lambda, globalState, once, ISetDidChange, IMapDidChange } from \"../internal\"\n\nexport function isSpyEnabled() {\n return __DEV__ && !!globalState.spyListeners.length\n}\n\nexport type PureSpyEvent =\n | { type: \"action\"; name: string; object: unknown; arguments: unknown[] }\n | { type: \"scheduled-reaction\"; name: string }\n | { type: \"reaction\"; name: string }\n | { type: \"error\"; name: string; message: string; error: string }\n | IComputedDidChange\n | IObjectDidChange\n | IArrayDidChange\n | IMapDidChange\n | ISetDidChange\n | IValueDidChange\n | IBoxDidChange\n | { type: \"report-end\"; spyReportEnd: true; time?: number }\n\ntype SpyEvent = PureSpyEvent & { spyReportStart?: true }\n\nexport function spyReport(event: SpyEvent) {\n if (!__DEV__) {\n return\n } // dead code elimination can do the rest\n if (!globalState.spyListeners.length) {\n return\n }\n const listeners = globalState.spyListeners\n for (let i = 0, l = listeners.length; i < l; i++) {\n listeners[i](event)\n }\n}\n\nexport function spyReportStart(event: PureSpyEvent) {\n if (!__DEV__) {\n return\n }\n const change = { ...event, spyReportStart: true as const }\n spyReport(change)\n}\n\nconst END_EVENT: SpyEvent = { type: \"report-end\", spyReportEnd: true }\n\nexport function spyReportEnd(change?: { time?: number }) {\n if (!__DEV__) {\n return\n }\n if (change) {\n spyReport({ ...change, type: \"report-end\", spyReportEnd: true })\n } else {\n spyReport(END_EVENT)\n }\n}\n\nexport function spy(listener: (change: SpyEvent) => void): Lambda {\n if (!__DEV__) {\n console.warn(`[mobx.spy] Is a no-op in production builds`)\n return function () {}\n } else {\n globalState.spyListeners.push(listener)\n return once(() => {\n globalState.spyListeners = globalState.spyListeners.filter(l => l !== listener)\n })\n }\n}\n","import {\n $mobx,\n IEnhancer,\n IInterceptable,\n IInterceptor,\n IListenable,\n Lambda,\n ObservableValue,\n checkIfStateModificationsAreAllowed,\n createAtom,\n createInstanceofPredicate,\n deepEnhancer,\n getNextId,\n getPlainObjectKeys,\n hasInterceptors,\n hasListeners,\n interceptChange,\n isES6Map,\n isPlainObject,\n isSpyEnabled,\n makeIterable,\n notifyListeners,\n referenceEnhancer,\n registerInterceptor,\n registerListener,\n spyReportEnd,\n spyReportStart,\n stringifyKey,\n transaction,\n untracked,\n onBecomeUnobserved,\n globalState,\n die,\n isFunction,\n UPDATE,\n IAtom,\n PureSpyEvent,\n initObservable\n} from \"../internal\"\n\nexport interface IKeyValueMap {\n [key: string]: V\n}\n\nexport type IMapEntry = [K, V]\nexport type IReadonlyMapEntry = readonly [K, V]\nexport type IMapEntries = IMapEntry[]\nexport type IReadonlyMapEntries = IReadonlyMapEntry[]\n\nexport type IMapDidChange = { observableKind: \"map\"; debugObjectName: string } & (\n | {\n object: ObservableMap\n name: K // actual the key or index, but this is based on the ancient .observe proposal for consistency\n type: \"update\"\n newValue: V\n oldValue: V\n }\n | {\n object: ObservableMap\n name: K\n type: \"add\"\n newValue: V\n }\n | {\n object: ObservableMap\n name: K\n type: \"delete\"\n oldValue: V\n }\n)\n\nexport interface IMapWillChange {\n object: ObservableMap\n type: \"update\" | \"add\" | \"delete\"\n name: K\n newValue?: V\n}\n\nconst ObservableMapMarker = {}\n\nexport const ADD = \"add\"\nexport const DELETE = \"delete\"\n\nexport type IObservableMapInitialValues =\n | IMapEntries\n | IReadonlyMapEntries\n | IKeyValueMap\n | Map\n\n// just extend Map? See also https://gist.github.com/nestharus/13b4d74f2ef4a2f4357dbd3fc23c1e54\n// But: https://github.com/mobxjs/mobx/issues/1556\nexport class ObservableMap\n implements Map, IInterceptable>, IListenable\n{\n [$mobx] = ObservableMapMarker\n data_!: Map>\n hasMap_!: Map> // hasMap, not hashMap >-).\n keysAtom_!: IAtom\n interceptors_\n changeListeners_\n dehancer: any\n\n constructor(\n initialData?: IObservableMapInitialValues,\n public enhancer_: IEnhancer = deepEnhancer,\n public name_ = __DEV__ ? \"ObservableMap@\" + getNextId() : \"ObservableMap\"\n ) {\n if (!isFunction(Map)) {\n die(18)\n }\n initObservable(() => {\n this.keysAtom_ = createAtom(__DEV__ ? `${this.name_}.keys()` : \"ObservableMap.keys()\")\n this.data_ = new Map()\n this.hasMap_ = new Map()\n if (initialData) {\n this.merge(initialData)\n }\n })\n }\n\n private has_(key: K): boolean {\n return this.data_.has(key)\n }\n\n has(key: K): boolean {\n if (!globalState.trackingDerivation) {\n return this.has_(key)\n }\n\n let entry = this.hasMap_.get(key)\n if (!entry) {\n const newEntry = (entry = new ObservableValue(\n this.has_(key),\n referenceEnhancer,\n __DEV__ ? `${this.name_}.${stringifyKey(key)}?` : \"ObservableMap.key?\",\n false\n ))\n this.hasMap_.set(key, newEntry)\n onBecomeUnobserved(newEntry, () => this.hasMap_.delete(key))\n }\n\n return entry.get()\n }\n\n set(key: K, value: V) {\n const hasKey = this.has_(key)\n if (hasInterceptors(this)) {\n const change = interceptChange>(this, {\n type: hasKey ? UPDATE : ADD,\n object: this,\n newValue: value,\n name: key\n })\n if (!change) {\n return this\n }\n value = change.newValue!\n }\n if (hasKey) {\n this.updateValue_(key, value)\n } else {\n this.addValue_(key, value)\n }\n return this\n }\n\n delete(key: K): boolean {\n checkIfStateModificationsAreAllowed(this.keysAtom_)\n if (hasInterceptors(this)) {\n const change = interceptChange>(this, {\n type: DELETE,\n object: this,\n name: key\n })\n if (!change) {\n return false\n }\n }\n if (this.has_(key)) {\n const notifySpy = isSpyEnabled()\n const notify = hasListeners(this)\n const change: IMapDidChange | null =\n notify || notifySpy\n ? {\n observableKind: \"map\",\n debugObjectName: this.name_,\n type: DELETE,\n object: this,\n oldValue: (this.data_.get(key)).value_,\n name: key\n }\n : null\n\n if (__DEV__ && notifySpy) {\n spyReportStart(change! as PureSpyEvent)\n } // TODO fix type\n transaction(() => {\n this.keysAtom_.reportChanged()\n this.hasMap_.get(key)?.setNewValue_(false)\n const observable = this.data_.get(key)!\n observable.setNewValue_(undefined as any)\n this.data_.delete(key)\n })\n if (notify) {\n notifyListeners(this, change)\n }\n if (__DEV__ && notifySpy) {\n spyReportEnd()\n }\n return true\n }\n return false\n }\n\n private updateValue_(key: K, newValue: V | undefined) {\n const observable = this.data_.get(key)!\n newValue = (observable as any).prepareNewValue_(newValue) as V\n if (newValue !== globalState.UNCHANGED) {\n const notifySpy = isSpyEnabled()\n const notify = hasListeners(this)\n const change: IMapDidChange | null =\n notify || notifySpy\n ? {\n observableKind: \"map\",\n debugObjectName: this.name_,\n type: UPDATE,\n object: this,\n oldValue: (observable as any).value_,\n name: key,\n newValue\n }\n : null\n if (__DEV__ && notifySpy) {\n spyReportStart(change! as PureSpyEvent)\n } // TODO fix type\n observable.setNewValue_(newValue as V)\n if (notify) {\n notifyListeners(this, change)\n }\n if (__DEV__ && notifySpy) {\n spyReportEnd()\n }\n }\n }\n\n private addValue_(key: K, newValue: V) {\n checkIfStateModificationsAreAllowed(this.keysAtom_)\n transaction(() => {\n const observable = new ObservableValue(\n newValue,\n this.enhancer_,\n __DEV__ ? `${this.name_}.${stringifyKey(key)}` : \"ObservableMap.key\",\n false\n )\n this.data_.set(key, observable)\n newValue = (observable as any).value_ // value might have been changed\n this.hasMap_.get(key)?.setNewValue_(true)\n this.keysAtom_.reportChanged()\n })\n const notifySpy = isSpyEnabled()\n const notify = hasListeners(this)\n const change: IMapDidChange | null =\n notify || notifySpy\n ? {\n observableKind: \"map\",\n debugObjectName: this.name_,\n type: ADD,\n object: this,\n name: key,\n newValue\n }\n : null\n if (__DEV__ && notifySpy) {\n spyReportStart(change! as PureSpyEvent)\n } // TODO fix type\n if (notify) {\n notifyListeners(this, change)\n }\n if (__DEV__ && notifySpy) {\n spyReportEnd()\n }\n }\n\n get(key: K): V | undefined {\n if (this.has(key)) {\n return this.dehanceValue_(this.data_.get(key)!.get())\n }\n return this.dehanceValue_(undefined)\n }\n\n private dehanceValue_(value: X): X {\n if (this.dehancer !== undefined) {\n return this.dehancer(value)\n }\n return value\n }\n\n keys(): IterableIterator {\n this.keysAtom_.reportObserved()\n return this.data_.keys()\n }\n\n values(): IterableIterator {\n const self = this\n const keys = this.keys()\n return makeIterable({\n next() {\n const { done, value } = keys.next()\n return {\n done,\n value: done ? (undefined as any) : self.get(value)\n }\n }\n })\n }\n\n entries(): IterableIterator> {\n const self = this\n const keys = this.keys()\n return makeIterable({\n next() {\n const { done, value } = keys.next()\n return {\n done,\n value: done ? (undefined as any) : ([value, self.get(value)!] as [K, V])\n }\n }\n })\n }\n\n [Symbol.iterator]() {\n return this.entries()\n }\n\n forEach(callback: (value: V, key: K, object: Map) => void, thisArg?) {\n for (const [key, value] of this) {\n callback.call(thisArg, value, key, this)\n }\n }\n\n /** Merge another object into this object, returns this. */\n merge(other?: IObservableMapInitialValues): ObservableMap {\n if (isObservableMap(other)) {\n other = new Map(other)\n }\n transaction(() => {\n if (isPlainObject(other)) {\n getPlainObjectKeys(other).forEach((key: any) =>\n this.set(key as K, (other as IKeyValueMap)[key])\n )\n } else if (Array.isArray(other)) {\n other.forEach(([key, value]) => this.set(key, value))\n } else if (isES6Map(other)) {\n if (other.constructor !== Map) {\n die(19, other)\n }\n other.forEach((value, key) => this.set(key, value))\n } else if (other !== null && other !== undefined) {\n die(20, other)\n }\n })\n return this\n }\n\n clear() {\n transaction(() => {\n untracked(() => {\n for (const key of this.keys()) {\n this.delete(key)\n }\n })\n })\n }\n\n replace(values: IObservableMapInitialValues): ObservableMap {\n // Implementation requirements:\n // - respect ordering of replacement map\n // - allow interceptors to run and potentially prevent individual operations\n // - don't recreate observables that already exist in original map (so we don't destroy existing subscriptions)\n // - don't _keysAtom.reportChanged if the keys of resulting map are indentical (order matters!)\n // - note that result map may differ from replacement map due to the interceptors\n transaction(() => {\n // Convert to map so we can do quick key lookups\n const replacementMap = convertToMap(values)\n const orderedData = new Map()\n // Used for optimization\n let keysReportChangedCalled = false\n // Delete keys that don't exist in replacement map\n // if the key deletion is prevented by interceptor\n // add entry at the beginning of the result map\n for (const key of this.data_.keys()) {\n // Concurrently iterating/deleting keys\n // iterator should handle this correctly\n if (!replacementMap.has(key)) {\n const deleted = this.delete(key)\n // Was the key removed?\n if (deleted) {\n // _keysAtom.reportChanged() was already called\n keysReportChangedCalled = true\n } else {\n // Delete prevented by interceptor\n const value = this.data_.get(key)\n orderedData.set(key, value)\n }\n }\n }\n // Merge entries\n for (const [key, value] of replacementMap.entries()) {\n // We will want to know whether a new key is added\n const keyExisted = this.data_.has(key)\n // Add or update value\n this.set(key, value)\n // The addition could have been prevent by interceptor\n if (this.data_.has(key)) {\n // The update could have been prevented by interceptor\n // and also we want to preserve existing values\n // so use value from _data map (instead of replacement map)\n const value = this.data_.get(key)\n orderedData.set(key, value)\n // Was a new key added?\n if (!keyExisted) {\n // _keysAtom.reportChanged() was already called\n keysReportChangedCalled = true\n }\n }\n }\n // Check for possible key order change\n if (!keysReportChangedCalled) {\n if (this.data_.size !== orderedData.size) {\n // If size differs, keys are definitely modified\n this.keysAtom_.reportChanged()\n } else {\n const iter1 = this.data_.keys()\n const iter2 = orderedData.keys()\n let next1 = iter1.next()\n let next2 = iter2.next()\n while (!next1.done) {\n if (next1.value !== next2.value) {\n this.keysAtom_.reportChanged()\n break\n }\n next1 = iter1.next()\n next2 = iter2.next()\n }\n }\n }\n // Use correctly ordered map\n this.data_ = orderedData\n })\n return this\n }\n\n get size(): number {\n this.keysAtom_.reportObserved()\n return this.data_.size\n }\n\n toString(): string {\n return \"[object ObservableMap]\"\n }\n\n toJSON(): [K, V][] {\n return Array.from(this)\n }\n\n get [Symbol.toStringTag]() {\n return \"Map\"\n }\n\n /**\n * Observes this object. Triggers for the events 'add', 'update' and 'delete'.\n * See: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/observe\n * for callback details\n */\n observe_(listener: (changes: IMapDidChange) => void, fireImmediately?: boolean): Lambda {\n if (__DEV__ && fireImmediately === true) {\n die(\"`observe` doesn't support fireImmediately=true in combination with maps.\")\n }\n return registerListener(this, listener)\n }\n\n intercept_(handler: IInterceptor>): Lambda {\n return registerInterceptor(this, handler)\n }\n}\n\n// eslint-disable-next-line\nexport var isObservableMap = createInstanceofPredicate(\"ObservableMap\", ObservableMap) as (\n thing: any\n) => thing is ObservableMap\n\nfunction convertToMap(dataStructure: any): Map {\n if (isES6Map(dataStructure) || isObservableMap(dataStructure)) {\n return dataStructure\n } else if (Array.isArray(dataStructure)) {\n return new Map(dataStructure)\n } else if (isPlainObject(dataStructure)) {\n const map = new Map()\n for (const key in dataStructure) {\n map.set(key, dataStructure[key])\n }\n return map\n } else {\n return die(21, dataStructure)\n }\n}\n","import {\n $mobx,\n createAtom,\n deepEnhancer,\n getNextId,\n IEnhancer,\n isSpyEnabled,\n hasListeners,\n IListenable,\n registerListener,\n Lambda,\n spyReportStart,\n notifyListeners,\n spyReportEnd,\n createInstanceofPredicate,\n hasInterceptors,\n interceptChange,\n IInterceptable,\n IInterceptor,\n registerInterceptor,\n checkIfStateModificationsAreAllowed,\n untracked,\n makeIterable,\n transaction,\n isES6Set,\n IAtom,\n DELETE,\n ADD,\n die,\n isFunction,\n initObservable\n} from \"../internal\"\n\nconst ObservableSetMarker = {}\n\nexport type IObservableSetInitialValues = Set | readonly T[]\n\nexport type ISetDidChange =\n | {\n object: ObservableSet\n observableKind: \"set\"\n debugObjectName: string\n type: \"add\"\n newValue: T\n }\n | {\n object: ObservableSet\n observableKind: \"set\"\n debugObjectName: string\n type: \"delete\"\n oldValue: T\n }\n\nexport type ISetWillChange =\n | {\n type: \"delete\"\n object: ObservableSet\n oldValue: T\n }\n | {\n type: \"add\"\n object: ObservableSet\n newValue: T\n }\n\nexport class ObservableSet implements Set, IInterceptable, IListenable {\n [$mobx] = ObservableSetMarker\n private data_: Set = new Set()\n atom_!: IAtom\n changeListeners_\n interceptors_\n dehancer: any\n enhancer_: (newV: any, oldV: any | undefined) => any\n\n constructor(\n initialData?: IObservableSetInitialValues,\n enhancer: IEnhancer = deepEnhancer,\n public name_ = __DEV__ ? \"ObservableSet@\" + getNextId() : \"ObservableSet\"\n ) {\n if (!isFunction(Set)) {\n die(22)\n }\n this.enhancer_ = (newV, oldV) => enhancer(newV, oldV, name_)\n initObservable(() => {\n this.atom_ = createAtom(this.name_)\n if (initialData) {\n this.replace(initialData)\n }\n })\n }\n\n private dehanceValue_(value: X): X {\n if (this.dehancer !== undefined) {\n return this.dehancer(value)\n }\n return value\n }\n\n clear() {\n transaction(() => {\n untracked(() => {\n for (const value of this.data_.values()) {\n this.delete(value)\n }\n })\n })\n }\n\n forEach(callbackFn: (value: T, value2: T, set: Set) => void, thisArg?: any) {\n for (const value of this) {\n callbackFn.call(thisArg, value, value, this)\n }\n }\n\n get size() {\n this.atom_.reportObserved()\n return this.data_.size\n }\n\n add(value: T) {\n checkIfStateModificationsAreAllowed(this.atom_)\n if (hasInterceptors(this)) {\n const change = interceptChange>(this, {\n type: ADD,\n object: this,\n newValue: value\n })\n if (!change) {\n return this\n }\n // ideally, value = change.value would be done here, so that values can be\n // changed by interceptor. Same applies for other Set and Map api's.\n }\n if (!this.has(value)) {\n transaction(() => {\n this.data_.add(this.enhancer_(value, undefined))\n this.atom_.reportChanged()\n })\n const notifySpy = __DEV__ && isSpyEnabled()\n const notify = hasListeners(this)\n const change =\n notify || notifySpy\n ? >{\n observableKind: \"set\",\n debugObjectName: this.name_,\n type: ADD,\n object: this,\n newValue: value\n }\n : null\n if (notifySpy && __DEV__) {\n spyReportStart(change!)\n }\n if (notify) {\n notifyListeners(this, change)\n }\n if (notifySpy && __DEV__) {\n spyReportEnd()\n }\n }\n\n return this\n }\n\n delete(value: T) {\n if (hasInterceptors(this)) {\n const change = interceptChange>(this, {\n type: DELETE,\n object: this,\n oldValue: value\n })\n if (!change) {\n return false\n }\n }\n if (this.has(value)) {\n const notifySpy = __DEV__ && isSpyEnabled()\n const notify = hasListeners(this)\n const change =\n notify || notifySpy\n ? >{\n observableKind: \"set\",\n debugObjectName: this.name_,\n type: DELETE,\n object: this,\n oldValue: value\n }\n : null\n\n if (notifySpy && __DEV__) {\n spyReportStart(change!)\n }\n transaction(() => {\n this.atom_.reportChanged()\n this.data_.delete(value)\n })\n if (notify) {\n notifyListeners(this, change)\n }\n if (notifySpy && __DEV__) {\n spyReportEnd()\n }\n return true\n }\n return false\n }\n\n has(value: T) {\n this.atom_.reportObserved()\n return this.data_.has(this.dehanceValue_(value))\n }\n\n entries() {\n let nextIndex = 0\n const keys = Array.from(this.keys())\n const values = Array.from(this.values())\n return makeIterable<[T, T]>({\n next() {\n const index = nextIndex\n nextIndex += 1\n return index < values.length\n ? { value: [keys[index], values[index]], done: false }\n : { done: true }\n }\n } as any)\n }\n\n keys(): IterableIterator {\n return this.values()\n }\n\n values(): IterableIterator {\n this.atom_.reportObserved()\n const self = this\n let nextIndex = 0\n const observableValues = Array.from(this.data_.values())\n return makeIterable({\n next() {\n return nextIndex < observableValues.length\n ? { value: self.dehanceValue_(observableValues[nextIndex++]), done: false }\n : { done: true }\n }\n } as any)\n }\n\n replace(other: ObservableSet | IObservableSetInitialValues): ObservableSet {\n if (isObservableSet(other)) {\n other = new Set(other)\n }\n\n transaction(() => {\n if (Array.isArray(other)) {\n this.clear()\n other.forEach(value => this.add(value))\n } else if (isES6Set(other)) {\n this.clear()\n other.forEach(value => this.add(value))\n } else if (other !== null && other !== undefined) {\n die(\"Cannot initialize set from \" + other)\n }\n })\n\n return this\n }\n observe_(listener: (changes: ISetDidChange) => void, fireImmediately?: boolean): Lambda {\n // ... 'fireImmediately' could also be true?\n if (__DEV__ && fireImmediately === true) {\n die(\"`observe` doesn't support fireImmediately=true in combination with sets.\")\n }\n return registerListener(this, listener)\n }\n\n intercept_(handler: IInterceptor>): Lambda {\n return registerInterceptor(this, handler)\n }\n\n toJSON(): T[] {\n return Array.from(this)\n }\n\n toString(): string {\n return \"[object ObservableSet]\"\n }\n\n [Symbol.iterator]() {\n return this.values()\n }\n\n get [Symbol.toStringTag]() {\n return \"Set\"\n }\n}\n\n// eslint-disable-next-line\nexport var isObservableSet = createInstanceofPredicate(\"ObservableSet\", ObservableSet) as (\n thing: any\n) => thing is ObservableSet\n","import {\n CreateObservableOptions,\n getAnnotationFromOptions,\n propagateChanged,\n isAnnotation,\n $mobx,\n Atom,\n Annotation,\n ComputedValue,\n IAtom,\n IComputedValueOptions,\n IEnhancer,\n IInterceptable,\n IListenable,\n Lambda,\n ObservableValue,\n addHiddenProp,\n createInstanceofPredicate,\n endBatch,\n getNextId,\n hasInterceptors,\n hasListeners,\n interceptChange,\n isObject,\n isPlainObject,\n isSpyEnabled,\n notifyListeners,\n referenceEnhancer,\n registerInterceptor,\n registerListener,\n spyReportEnd,\n spyReportStart,\n startBatch,\n stringifyKey,\n globalState,\n ADD,\n UPDATE,\n die,\n hasProp,\n getDescriptor,\n storedAnnotationsSymbol,\n ownKeys,\n isOverride,\n defineProperty,\n autoAnnotation,\n getAdministration,\n getDebugName,\n objectPrototype,\n MakeResult,\n checkIfStateModificationsAreAllowed\n} from \"../internal\"\n\nconst descriptorCache = Object.create(null)\n\nexport type IObjectDidChange = {\n observableKind: \"object\"\n name: PropertyKey\n object: T\n debugObjectName: string\n} & (\n | {\n type: \"add\"\n newValue: any\n }\n | {\n type: \"update\"\n oldValue: any\n newValue: any\n }\n | {\n type: \"remove\"\n oldValue: any\n }\n)\n\nexport type IObjectWillChange =\n | {\n object: T\n type: \"update\" | \"add\"\n name: PropertyKey\n newValue: any\n }\n | {\n object: T\n type: \"remove\"\n name: PropertyKey\n }\n\nconst REMOVE = \"remove\"\n\nexport class ObservableObjectAdministration\n implements IInterceptable, IListenable\n{\n keysAtom_: IAtom\n changeListeners_\n interceptors_\n proxy_: any\n isPlainObject_: boolean\n appliedAnnotations_?: object\n private pendingKeys_: undefined | Map>\n\n constructor(\n public target_: any,\n public values_ = new Map | ComputedValue>(),\n public name_: string,\n // Used anytime annotation is not explicitely provided\n public defaultAnnotation_: Annotation = autoAnnotation\n ) {\n this.keysAtom_ = new Atom(__DEV__ ? `${this.name_}.keys` : \"ObservableObject.keys\")\n // Optimization: we use this frequently\n this.isPlainObject_ = isPlainObject(this.target_)\n if (__DEV__ && !isAnnotation(this.defaultAnnotation_)) {\n die(`defaultAnnotation must be valid annotation`)\n }\n if (__DEV__) {\n // Prepare structure for tracking which fields were already annotated\n this.appliedAnnotations_ = {}\n }\n }\n\n getObservablePropValue_(key: PropertyKey): any {\n return this.values_.get(key)!.get()\n }\n\n setObservablePropValue_(key: PropertyKey, newValue): boolean | null {\n const observable = this.values_.get(key)\n if (observable instanceof ComputedValue) {\n observable.set(newValue)\n return true\n }\n\n // intercept\n if (hasInterceptors(this)) {\n const change = interceptChange(this, {\n type: UPDATE,\n object: this.proxy_ || this.target_,\n name: key,\n newValue\n })\n if (!change) {\n return null\n }\n newValue = (change as any).newValue\n }\n newValue = (observable as any).prepareNewValue_(newValue)\n\n // notify spy & observers\n if (newValue !== globalState.UNCHANGED) {\n const notify = hasListeners(this)\n const notifySpy = __DEV__ && isSpyEnabled()\n const change: IObjectDidChange | null =\n notify || notifySpy\n ? {\n type: UPDATE,\n observableKind: \"object\",\n debugObjectName: this.name_,\n object: this.proxy_ || this.target_,\n oldValue: (observable as any).value_,\n name: key,\n newValue\n }\n : null\n\n if (__DEV__ && notifySpy) {\n spyReportStart(change!)\n }\n ;(observable as ObservableValue).setNewValue_(newValue)\n if (notify) {\n notifyListeners(this, change)\n }\n if (__DEV__ && notifySpy) {\n spyReportEnd()\n }\n }\n return true\n }\n\n get_(key: PropertyKey): any {\n if (globalState.trackingDerivation && !hasProp(this.target_, key)) {\n // Key doesn't exist yet, subscribe for it in case it's added later\n this.has_(key)\n }\n return this.target_[key]\n }\n\n /**\n * @param {PropertyKey} key\n * @param {any} value\n * @param {Annotation|boolean} annotation true - use default annotation, false - copy as is\n * @param {boolean} proxyTrap whether it's called from proxy trap\n * @returns {boolean|null} true on success, false on failure (proxyTrap + non-configurable), null when cancelled by interceptor\n */\n set_(key: PropertyKey, value: any, proxyTrap: boolean = false): boolean | null {\n // Don't use .has(key) - we care about own\n if (hasProp(this.target_, key)) {\n // Existing prop\n if (this.values_.has(key)) {\n // Observable (can be intercepted)\n return this.setObservablePropValue_(key, value)\n } else if (proxyTrap) {\n // Non-observable - proxy\n return Reflect.set(this.target_, key, value)\n } else {\n // Non-observable\n this.target_[key] = value\n return true\n }\n } else {\n // New prop\n return this.extend_(\n key,\n { value, enumerable: true, writable: true, configurable: true },\n this.defaultAnnotation_,\n proxyTrap\n )\n }\n }\n\n // Trap for \"in\"\n has_(key: PropertyKey): boolean {\n if (!globalState.trackingDerivation) {\n // Skip key subscription outside derivation\n return key in this.target_\n }\n this.pendingKeys_ ||= new Map()\n let entry = this.pendingKeys_.get(key)\n if (!entry) {\n entry = new ObservableValue(\n key in this.target_,\n referenceEnhancer,\n __DEV__ ? `${this.name_}.${stringifyKey(key)}?` : \"ObservableObject.key?\",\n false\n )\n this.pendingKeys_.set(key, entry)\n }\n return entry.get()\n }\n\n /**\n * @param {PropertyKey} key\n * @param {Annotation|boolean} annotation true - use default annotation, false - ignore prop\n */\n make_(key: PropertyKey, annotation: Annotation | boolean): void {\n if (annotation === true) {\n annotation = this.defaultAnnotation_\n }\n if (annotation === false) {\n return\n }\n assertAnnotable(this, annotation, key)\n if (!(key in this.target_)) {\n // Throw on missing key, except for decorators:\n // Decorator annotations are collected from whole prototype chain.\n // When called from super() some props may not exist yet.\n // However we don't have to worry about missing prop,\n // because the decorator must have been applied to something.\n if (this.target_[storedAnnotationsSymbol]?.[key]) {\n return // will be annotated by subclass constructor\n } else {\n die(1, annotation.annotationType_, `${this.name_}.${key.toString()}`)\n }\n }\n let source = this.target_\n while (source && source !== objectPrototype) {\n const descriptor = getDescriptor(source, key)\n if (descriptor) {\n const outcome = annotation.make_(this, key, descriptor, source)\n if (outcome === MakeResult.Cancel) {\n return\n }\n if (outcome === MakeResult.Break) {\n break\n }\n }\n source = Object.getPrototypeOf(source)\n }\n recordAnnotationApplied(this, annotation, key)\n }\n\n /**\n * @param {PropertyKey} key\n * @param {PropertyDescriptor} descriptor\n * @param {Annotation|boolean} annotation true - use default annotation, false - copy as is\n * @param {boolean} proxyTrap whether it's called from proxy trap\n * @returns {boolean|null} true on success, false on failure (proxyTrap + non-configurable), null when cancelled by interceptor\n */\n extend_(\n key: PropertyKey,\n descriptor: PropertyDescriptor,\n annotation: Annotation | boolean,\n proxyTrap: boolean = false\n ): boolean | null {\n if (annotation === true) {\n annotation = this.defaultAnnotation_\n }\n if (annotation === false) {\n return this.defineProperty_(key, descriptor, proxyTrap)\n }\n assertAnnotable(this, annotation, key)\n const outcome = annotation.extend_(this, key, descriptor, proxyTrap)\n if (outcome) {\n recordAnnotationApplied(this, annotation, key)\n }\n return outcome\n }\n\n /**\n * @param {PropertyKey} key\n * @param {PropertyDescriptor} descriptor\n * @param {boolean} proxyTrap whether it's called from proxy trap\n * @returns {boolean|null} true on success, false on failure (proxyTrap + non-configurable), null when cancelled by interceptor\n */\n defineProperty_(\n key: PropertyKey,\n descriptor: PropertyDescriptor,\n proxyTrap: boolean = false\n ): boolean | null {\n checkIfStateModificationsAreAllowed(this.keysAtom_)\n try {\n startBatch()\n\n // Delete\n const deleteOutcome = this.delete_(key)\n if (!deleteOutcome) {\n // Failure or intercepted\n return deleteOutcome\n }\n\n // ADD interceptor\n if (hasInterceptors(this)) {\n const change = interceptChange(this, {\n object: this.proxy_ || this.target_,\n name: key,\n type: ADD,\n newValue: descriptor.value\n })\n if (!change) {\n return null\n }\n const { newValue } = change as any\n if (descriptor.value !== newValue) {\n descriptor = {\n ...descriptor,\n value: newValue\n }\n }\n }\n\n // Define\n if (proxyTrap) {\n if (!Reflect.defineProperty(this.target_, key, descriptor)) {\n return false\n }\n } else {\n defineProperty(this.target_, key, descriptor)\n }\n\n // Notify\n this.notifyPropertyAddition_(key, descriptor.value)\n } finally {\n endBatch()\n }\n return true\n }\n\n // If original descriptor becomes relevant, move this to annotation directly\n defineObservableProperty_(\n key: PropertyKey,\n value: any,\n enhancer: IEnhancer,\n proxyTrap: boolean = false\n ): boolean | null {\n checkIfStateModificationsAreAllowed(this.keysAtom_)\n try {\n startBatch()\n\n // Delete\n const deleteOutcome = this.delete_(key)\n if (!deleteOutcome) {\n // Failure or intercepted\n return deleteOutcome\n }\n\n // ADD interceptor\n if (hasInterceptors(this)) {\n const change = interceptChange(this, {\n object: this.proxy_ || this.target_,\n name: key,\n type: ADD,\n newValue: value\n })\n if (!change) {\n return null\n }\n value = (change as any).newValue\n }\n\n const cachedDescriptor = getCachedObservablePropDescriptor(key)\n const descriptor = {\n configurable: globalState.safeDescriptors ? this.isPlainObject_ : true,\n enumerable: true,\n get: cachedDescriptor.get,\n set: cachedDescriptor.set\n }\n\n // Define\n if (proxyTrap) {\n if (!Reflect.defineProperty(this.target_, key, descriptor)) {\n return false\n }\n } else {\n defineProperty(this.target_, key, descriptor)\n }\n\n const observable = new ObservableValue(\n value,\n enhancer,\n __DEV__ ? `${this.name_}.${key.toString()}` : \"ObservableObject.key\",\n false\n )\n\n this.values_.set(key, observable)\n\n // Notify (value possibly changed by ObservableValue)\n this.notifyPropertyAddition_(key, observable.value_)\n } finally {\n endBatch()\n }\n return true\n }\n\n // If original descriptor becomes relevant, move this to annotation directly\n defineComputedProperty_(\n key: PropertyKey,\n options: IComputedValueOptions,\n proxyTrap: boolean = false\n ): boolean | null {\n checkIfStateModificationsAreAllowed(this.keysAtom_)\n try {\n startBatch()\n\n // Delete\n const deleteOutcome = this.delete_(key)\n if (!deleteOutcome) {\n // Failure or intercepted\n return deleteOutcome\n }\n\n // ADD interceptor\n if (hasInterceptors(this)) {\n const change = interceptChange(this, {\n object: this.proxy_ || this.target_,\n name: key,\n type: ADD,\n newValue: undefined\n })\n if (!change) {\n return null\n }\n }\n options.name ||= __DEV__ ? `${this.name_}.${key.toString()}` : \"ObservableObject.key\"\n options.context = this.proxy_ || this.target_\n const cachedDescriptor = getCachedObservablePropDescriptor(key)\n const descriptor = {\n configurable: globalState.safeDescriptors ? this.isPlainObject_ : true,\n enumerable: false,\n get: cachedDescriptor.get,\n set: cachedDescriptor.set\n }\n\n // Define\n if (proxyTrap) {\n if (!Reflect.defineProperty(this.target_, key, descriptor)) {\n return false\n }\n } else {\n defineProperty(this.target_, key, descriptor)\n }\n\n this.values_.set(key, new ComputedValue(options))\n\n // Notify\n this.notifyPropertyAddition_(key, undefined)\n } finally {\n endBatch()\n }\n return true\n }\n\n /**\n * @param {PropertyKey} key\n * @param {PropertyDescriptor} descriptor\n * @param {boolean} proxyTrap whether it's called from proxy trap\n * @returns {boolean|null} true on success, false on failure (proxyTrap + non-configurable), null when cancelled by interceptor\n */\n delete_(key: PropertyKey, proxyTrap: boolean = false): boolean | null {\n checkIfStateModificationsAreAllowed(this.keysAtom_)\n // No such prop\n if (!hasProp(this.target_, key)) {\n return true\n }\n\n // Intercept\n if (hasInterceptors(this)) {\n const change = interceptChange(this, {\n object: this.proxy_ || this.target_,\n name: key,\n type: REMOVE\n })\n // Cancelled\n if (!change) {\n return null\n }\n }\n\n // Delete\n try {\n startBatch()\n const notify = hasListeners(this)\n const notifySpy = __DEV__ && isSpyEnabled()\n const observable = this.values_.get(key)\n // Value needed for spies/listeners\n let value = undefined\n // Optimization: don't pull the value unless we will need it\n if (!observable && (notify || notifySpy)) {\n value = getDescriptor(this.target_, key)?.value\n }\n // delete prop (do first, may fail)\n if (proxyTrap) {\n if (!Reflect.deleteProperty(this.target_, key)) {\n return false\n }\n } else {\n delete this.target_[key]\n }\n // Allow re-annotating this field\n if (__DEV__) {\n delete this.appliedAnnotations_![key]\n }\n // Clear observable\n if (observable) {\n this.values_.delete(key)\n // for computed, value is undefined\n if (observable instanceof ObservableValue) {\n value = observable.value_\n }\n // Notify: autorun(() => obj[key]), see #1796\n propagateChanged(observable)\n }\n // Notify \"keys/entries/values\" observers\n this.keysAtom_.reportChanged()\n\n // Notify \"has\" observers\n // \"in\" as it may still exist in proto\n this.pendingKeys_?.get(key)?.set(key in this.target_)\n\n // Notify spies/listeners\n if (notify || notifySpy) {\n const change: IObjectDidChange = {\n type: REMOVE,\n observableKind: \"object\",\n object: this.proxy_ || this.target_,\n debugObjectName: this.name_,\n oldValue: value,\n name: key\n }\n if (__DEV__ && notifySpy) {\n spyReportStart(change!)\n }\n if (notify) {\n notifyListeners(this, change)\n }\n if (__DEV__ && notifySpy) {\n spyReportEnd()\n }\n }\n } finally {\n endBatch()\n }\n return true\n }\n\n /**\n * Observes this object. Triggers for the events 'add', 'update' and 'delete'.\n * See: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/observe\n * for callback details\n */\n observe_(callback: (changes: IObjectDidChange) => void, fireImmediately?: boolean): Lambda {\n if (__DEV__ && fireImmediately === true) {\n die(\"`observe` doesn't support the fire immediately property for observable objects.\")\n }\n return registerListener(this, callback)\n }\n\n intercept_(handler): Lambda {\n return registerInterceptor(this, handler)\n }\n\n notifyPropertyAddition_(key: PropertyKey, value: any) {\n const notify = hasListeners(this)\n const notifySpy = __DEV__ && isSpyEnabled()\n if (notify || notifySpy) {\n const change: IObjectDidChange | null =\n notify || notifySpy\n ? ({\n type: ADD,\n observableKind: \"object\",\n debugObjectName: this.name_,\n object: this.proxy_ || this.target_,\n name: key,\n newValue: value\n } as const)\n : null\n\n if (__DEV__ && notifySpy) {\n spyReportStart(change!)\n }\n if (notify) {\n notifyListeners(this, change)\n }\n if (__DEV__ && notifySpy) {\n spyReportEnd()\n }\n }\n\n this.pendingKeys_?.get(key)?.set(true)\n\n // Notify \"keys/entries/values\" observers\n this.keysAtom_.reportChanged()\n }\n\n ownKeys_(): ArrayLike {\n this.keysAtom_.reportObserved()\n return ownKeys(this.target_)\n }\n\n keys_(): PropertyKey[] {\n // Returns enumerable && own, but unfortunately keysAtom will report on ANY key change.\n // There is no way to distinguish between Object.keys(object) and Reflect.ownKeys(object) - both are handled by ownKeys trap.\n // We can either over-report in Object.keys(object) or under-report in Reflect.ownKeys(object)\n // We choose to over-report in Object.keys(object), because:\n // - typically it's used with simple data objects\n // - when symbolic/non-enumerable keys are relevant Reflect.ownKeys works as expected\n this.keysAtom_.reportObserved()\n return Object.keys(this.target_)\n }\n}\n\nexport interface IIsObservableObject {\n $mobx: ObservableObjectAdministration\n}\n\nexport function asObservableObject(\n target: any,\n options?: CreateObservableOptions\n): IIsObservableObject {\n if (__DEV__ && options && isObservableObject(target)) {\n die(`Options can't be provided for already observable objects.`)\n }\n\n if (hasProp(target, $mobx)) {\n if (__DEV__ && !(getAdministration(target) instanceof ObservableObjectAdministration)) {\n die(\n `Cannot convert '${getDebugName(target)}' into observable object:` +\n `\\nThe target is already observable of different type.` +\n `\\nExtending builtins is not supported.`\n )\n }\n return target\n }\n\n if (__DEV__ && !Object.isExtensible(target)) {\n die(\"Cannot make the designated object observable; it is not extensible\")\n }\n\n const name =\n options?.name ??\n (__DEV__\n ? `${\n isPlainObject(target) ? \"ObservableObject\" : target.constructor.name\n }@${getNextId()}`\n : \"ObservableObject\")\n\n const adm = new ObservableObjectAdministration(\n target,\n new Map(),\n String(name),\n getAnnotationFromOptions(options)\n )\n\n addHiddenProp(target, $mobx, adm)\n\n return target\n}\n\nconst isObservableObjectAdministration = createInstanceofPredicate(\n \"ObservableObjectAdministration\",\n ObservableObjectAdministration\n)\n\nfunction getCachedObservablePropDescriptor(key) {\n return (\n descriptorCache[key] ||\n (descriptorCache[key] = {\n get() {\n return this[$mobx].getObservablePropValue_(key)\n },\n set(value) {\n return this[$mobx].setObservablePropValue_(key, value)\n }\n })\n )\n}\n\nexport function isObservableObject(thing: any): boolean {\n if (isObject(thing)) {\n return isObservableObjectAdministration((thing as any)[$mobx])\n }\n return false\n}\n\nexport function recordAnnotationApplied(\n adm: ObservableObjectAdministration,\n annotation: Annotation,\n key: PropertyKey\n) {\n if (__DEV__) {\n adm.appliedAnnotations_![key] = annotation\n }\n // Remove applied decorator annotation so we don't try to apply it again in subclass constructor\n delete adm.target_[storedAnnotationsSymbol]?.[key]\n}\n\nfunction assertAnnotable(\n adm: ObservableObjectAdministration,\n annotation: Annotation,\n key: PropertyKey\n) {\n // Valid annotation\n if (__DEV__ && !isAnnotation(annotation)) {\n die(`Cannot annotate '${adm.name_}.${key.toString()}': Invalid annotation.`)\n }\n\n /*\n // Configurable, not sealed, not frozen\n // Possibly not needed, just a little better error then the one thrown by engine.\n // Cases where this would be useful the most (subclass field initializer) are not interceptable by this.\n if (__DEV__) {\n const configurable = getDescriptor(adm.target_, key)?.configurable\n const frozen = Object.isFrozen(adm.target_)\n const sealed = Object.isSealed(adm.target_)\n if (!configurable || frozen || sealed) {\n const fieldName = `${adm.name_}.${key.toString()}`\n const requestedAnnotationType = annotation.annotationType_\n let error = `Cannot apply '${requestedAnnotationType}' to '${fieldName}':`\n if (frozen) {\n error += `\\nObject is frozen.`\n }\n if (sealed) {\n error += `\\nObject is sealed.`\n }\n if (!configurable) {\n error += `\\nproperty is not configurable.`\n // Mention only if caused by us to avoid confusion\n if (hasProp(adm.appliedAnnotations!, key)) {\n error += `\\nTo prevent accidental re-definition of a field by a subclass, `\n error += `all annotated fields of non-plain objects (classes) are not configurable.`\n }\n }\n die(error)\n }\n }\n */\n\n // Not annotated\n if (__DEV__ && !isOverride(annotation) && hasProp(adm.appliedAnnotations_!, key)) {\n const fieldName = `${adm.name_}.${key.toString()}`\n const currentAnnotationType = adm.appliedAnnotations_![key].annotationType_\n const requestedAnnotationType = annotation.annotationType_\n die(\n `Cannot apply '${requestedAnnotationType}' to '${fieldName}':` +\n `\\nThe field is already annotated with '${currentAnnotationType}'.` +\n `\\nRe-annotating fields is not allowed.` +\n `\\nUse 'override' annotation for methods overridden by subclass.`\n )\n }\n}\n","import {\n getNextId,\n addHiddenFinalProp,\n makeIterable,\n addHiddenProp,\n ObservableArrayAdministration,\n $mobx,\n arrayExtensions,\n IEnhancer,\n isObservableArray,\n IObservableArray,\n defineProperty,\n initObservable\n} from \"../internal\"\n\n// Bug in safari 9.* (or iOS 9 safari mobile). See #364\nconst ENTRY_0 = createArrayEntryDescriptor(0)\n\nconst safariPrototypeSetterInheritanceBug = (() => {\n let v = false\n const p = {}\n Object.defineProperty(p, \"0\", {\n set: () => {\n v = true\n }\n })\n Object.create(p)[\"0\"] = 1\n return v === false\n})()\n\n/**\n * This array buffer contains two lists of properties, so that all arrays\n * can recycle their property definitions, which significantly improves performance of creating\n * properties on the fly.\n */\nlet OBSERVABLE_ARRAY_BUFFER_SIZE = 0\n\n// Typescript workaround to make sure ObservableArray extends Array\nclass StubArray {}\nfunction inherit(ctor, proto) {\n if (Object.setPrototypeOf) {\n Object.setPrototypeOf(ctor.prototype, proto)\n } else if (ctor.prototype.__proto__ !== undefined) {\n ctor.prototype.__proto__ = proto\n } else {\n ctor.prototype = proto\n }\n}\ninherit(StubArray, Array.prototype)\n\n// Weex proto freeze protection was here,\n// but it is unclear why the hack is need as MobX never changed the prototype\n// anyway, so removed it in V6\n\nclass LegacyObservableArray extends StubArray {\n constructor(\n initialValues: T[] | undefined,\n enhancer: IEnhancer,\n name = __DEV__ ? \"ObservableArray@\" + getNextId() : \"ObservableArray\",\n owned = false\n ) {\n super()\n initObservable(() => {\n const adm = new ObservableArrayAdministration(name, enhancer, owned, true)\n adm.proxy_ = this as any\n addHiddenFinalProp(this, $mobx, adm)\n\n if (initialValues && initialValues.length) {\n // @ts-ignore\n this.spliceWithArray(0, 0, initialValues)\n }\n\n if (safariPrototypeSetterInheritanceBug) {\n // Seems that Safari won't use numeric prototype setter untill any * numeric property is\n // defined on the instance. After that it works fine, even if this property is deleted.\n Object.defineProperty(this, \"0\", ENTRY_0)\n }\n })\n }\n\n concat(...arrays: T[][]): T[] {\n ;(this[$mobx] as ObservableArrayAdministration).atom_.reportObserved()\n return Array.prototype.concat.apply(\n (this as any).slice(),\n //@ts-ignore\n arrays.map(a => (isObservableArray(a) ? a.slice() : a))\n )\n }\n\n get length(): number {\n return (this[$mobx] as ObservableArrayAdministration).getArrayLength_()\n }\n\n set length(newLength: number) {\n ;(this[$mobx] as ObservableArrayAdministration).setArrayLength_(newLength)\n }\n\n get [Symbol.toStringTag]() {\n return \"Array\"\n }\n\n [Symbol.iterator]() {\n const self = this\n let nextIndex = 0\n return makeIterable({\n next() {\n return nextIndex < self.length\n ? { value: self[nextIndex++], done: false }\n : { done: true, value: undefined }\n }\n })\n }\n}\n\nObject.entries(arrayExtensions).forEach(([prop, fn]) => {\n if (prop !== \"concat\") {\n addHiddenProp(LegacyObservableArray.prototype, prop, fn)\n }\n})\n\nfunction createArrayEntryDescriptor(index: number) {\n return {\n enumerable: false,\n configurable: true,\n get: function () {\n return this[$mobx].get_(index)\n },\n set: function (value) {\n this[$mobx].set_(index, value)\n }\n }\n}\n\nfunction createArrayBufferItem(index: number) {\n defineProperty(LegacyObservableArray.prototype, \"\" + index, createArrayEntryDescriptor(index))\n}\n\nexport function reserveArrayBuffer(max: number) {\n if (max > OBSERVABLE_ARRAY_BUFFER_SIZE) {\n for (let index = OBSERVABLE_ARRAY_BUFFER_SIZE; index < max + 100; index++) {\n createArrayBufferItem(index)\n }\n OBSERVABLE_ARRAY_BUFFER_SIZE = max\n }\n}\n\nreserveArrayBuffer(1000)\n\nexport function createLegacyArray(\n initialValues: T[] | undefined,\n enhancer: IEnhancer,\n name?: string\n): IObservableArray {\n return new LegacyObservableArray(initialValues, enhancer, name) as any\n}\n","import { isAction } from \"../api/action\"\nimport {\n $mobx,\n IDepTreeNode,\n isAtom,\n isComputedValue,\n isObservableArray,\n isObservableMap,\n isObservableObject,\n isReaction,\n isObservableSet,\n die,\n isFunction,\n allowStateChangesStart,\n untrackedStart,\n allowStateChangesEnd,\n untrackedEnd,\n startBatch,\n endBatch\n} from \"../internal\"\n\nexport function getAtom(thing: any, property?: PropertyKey): IDepTreeNode {\n if (typeof thing === \"object\" && thing !== null) {\n if (isObservableArray(thing)) {\n if (property !== undefined) {\n die(23)\n }\n return (thing as any)[$mobx].atom_\n }\n if (isObservableSet(thing)) {\n return thing.atom_\n }\n if (isObservableMap(thing)) {\n if (property === undefined) {\n return thing.keysAtom_\n }\n const observable = thing.data_.get(property) || thing.hasMap_.get(property)\n if (!observable) {\n die(25, property, getDebugName(thing))\n }\n return observable\n }\n if (property && !thing[$mobx]) {\n thing[property]\n } // See #1072\n if (isObservableObject(thing)) {\n if (!property) {\n return die(26)\n }\n const observable = (thing as any)[$mobx].values_.get(property)\n if (!observable) {\n die(27, property, getDebugName(thing))\n }\n return observable\n }\n if (isAtom(thing) || isComputedValue(thing) || isReaction(thing)) {\n return thing\n }\n } else if (isFunction(thing)) {\n if (isReaction(thing[$mobx])) {\n // disposer function\n return thing[$mobx]\n }\n }\n die(28)\n}\n\nexport function getAdministration(thing: any, property?: string) {\n if (!thing) {\n die(29)\n }\n if (property !== undefined) {\n return getAdministration(getAtom(thing, property))\n }\n if (isAtom(thing) || isComputedValue(thing) || isReaction(thing)) {\n return thing\n }\n if (isObservableMap(thing) || isObservableSet(thing)) {\n return thing\n }\n if (thing[$mobx]) {\n return thing[$mobx]\n }\n die(24, thing)\n}\n\nexport function getDebugName(thing: any, property?: string): string {\n let named\n if (property !== undefined) {\n named = getAtom(thing, property)\n } else if (isAction(thing)) {\n return thing.name\n } else if (isObservableObject(thing) || isObservableMap(thing) || isObservableSet(thing)) {\n named = getAdministration(thing)\n } else {\n // valid for arrays as well\n named = getAtom(thing)\n }\n return named.name_\n}\n\n/**\n * Helper function for initializing observable structures, it applies:\n * 1. allowStateChanges so we don't violate enforceActions.\n * 2. untracked so we don't accidentaly subscribe to anything observable accessed during init in case the observable is created inside derivation.\n * 3. batch to avoid state version updates\n */\nexport function initObservable(cb: () => T): T {\n const derivation = untrackedStart()\n const allowStateChanges = allowStateChangesStart(true)\n startBatch()\n try {\n return cb()\n } finally {\n endBatch()\n allowStateChangesEnd(allowStateChanges)\n untrackedEnd(derivation)\n }\n}\n","import {\n isES6Map,\n isObservableArray,\n isObservableMap,\n isES6Set,\n isObservableSet,\n hasProp,\n isFunction,\n objectPrototype\n} from \"../internal\"\n\ndeclare const Symbol\nconst toString = objectPrototype.toString\n\nexport function deepEqual(a: any, b: any, depth: number = -1): boolean {\n return eq(a, b, depth)\n}\n\n// Copied from https://github.com/jashkenas/underscore/blob/5c237a7c682fb68fd5378203f0bf22dce1624854/underscore.js#L1186-L1289\n// Internal recursive comparison function for `isEqual`.\nfunction eq(a: any, b: any, depth: number, aStack?: any[], bStack?: any[]) {\n // Identical objects are equal. `0 === -0`, but they aren't identical.\n // See the [Harmony `egal` proposal](http://wiki.ecmascript.org/doku.php?id=harmony:egal).\n if (a === b) {\n return a !== 0 || 1 / a === 1 / b\n }\n // `null` or `undefined` only equal to itself (strict comparison).\n if (a == null || b == null) {\n return false\n }\n // `NaN`s are equivalent, but non-reflexive.\n if (a !== a) {\n return b !== b\n }\n // Exhaust primitive checks\n const type = typeof a\n if (type !== \"function\" && type !== \"object\" && typeof b != \"object\") {\n return false\n }\n\n // Compare `[[Class]]` names.\n const className = toString.call(a)\n if (className !== toString.call(b)) {\n return false\n }\n switch (className) {\n // Strings, numbers, regular expressions, dates, and booleans are compared by value.\n case \"[object RegExp]\":\n // RegExps are coerced to strings for comparison (Note: '' + /a/i === '/a/i')\n case \"[object String]\":\n // Primitives and their corresponding object wrappers are equivalent; thus, `\"5\"` is\n // equivalent to `new String(\"5\")`.\n return \"\" + a === \"\" + b\n case \"[object Number]\":\n // `NaN`s are equivalent, but non-reflexive.\n // Object(NaN) is equivalent to NaN.\n if (+a !== +a) {\n return +b !== +b\n }\n // An `egal` comparison is performed for other numeric values.\n return +a === 0 ? 1 / +a === 1 / b : +a === +b\n case \"[object Date]\":\n case \"[object Boolean]\":\n // Coerce dates and booleans to numeric primitive values. Dates are compared by their\n // millisecond representations. Note that invalid dates with millisecond representations\n // of `NaN` are not equivalent.\n return +a === +b\n case \"[object Symbol]\":\n return (\n typeof Symbol !== \"undefined\" && Symbol.valueOf.call(a) === Symbol.valueOf.call(b)\n )\n case \"[object Map]\":\n case \"[object Set]\":\n // Maps and Sets are unwrapped to arrays of entry-pairs, adding an incidental level.\n // Hide this extra level by increasing the depth.\n if (depth >= 0) {\n depth++\n }\n break\n }\n // Unwrap any wrapped objects.\n a = unwrap(a)\n b = unwrap(b)\n\n const areArrays = className === \"[object Array]\"\n if (!areArrays) {\n if (typeof a != \"object\" || typeof b != \"object\") {\n return false\n }\n\n // Objects with different constructors are not equivalent, but `Object`s or `Array`s\n // from different frames are.\n const aCtor = a.constructor,\n bCtor = b.constructor\n if (\n aCtor !== bCtor &&\n !(\n isFunction(aCtor) &&\n aCtor instanceof aCtor &&\n isFunction(bCtor) &&\n bCtor instanceof bCtor\n ) &&\n \"constructor\" in a &&\n \"constructor\" in b\n ) {\n return false\n }\n }\n\n if (depth === 0) {\n return false\n } else if (depth < 0) {\n depth = -1\n }\n\n // Assume equality for cyclic structures. The algorithm for detecting cyclic\n // structures is adapted from ES 5.1 section 15.12.3, abstract operation `JO`.\n\n // Initializing stack of traversed objects.\n // It's done here since we only need them for objects and arrays comparison.\n aStack = aStack || []\n bStack = bStack || []\n let length = aStack.length\n while (length--) {\n // Linear search. Performance is inversely proportional to the number of\n // unique nested structures.\n if (aStack[length] === a) {\n return bStack[length] === b\n }\n }\n\n // Add the first object to the stack of traversed objects.\n aStack.push(a)\n bStack.push(b)\n\n // Recursively compare objects and arrays.\n if (areArrays) {\n // Compare array lengths to determine if a deep comparison is necessary.\n length = a.length\n if (length !== b.length) {\n return false\n }\n // Deep compare the contents, ignoring non-numeric properties.\n while (length--) {\n if (!eq(a[length], b[length], depth - 1, aStack, bStack)) {\n return false\n }\n }\n } else {\n // Deep compare objects.\n const keys = Object.keys(a)\n let key\n length = keys.length\n // Ensure that both objects contain the same number of properties before comparing deep equality.\n if (Object.keys(b).length !== length) {\n return false\n }\n while (length--) {\n // Deep compare each member\n key = keys[length]\n if (!(hasProp(b, key) && eq(a[key], b[key], depth - 1, aStack, bStack))) {\n return false\n }\n }\n }\n // Remove the first object from the stack of traversed objects.\n aStack.pop()\n bStack.pop()\n return true\n}\n\nfunction unwrap(a: any) {\n if (isObservableArray(a)) {\n return a.slice()\n }\n if (isES6Map(a) || isObservableMap(a)) {\n return Array.from(a.entries())\n }\n if (isES6Set(a) || isObservableSet(a)) {\n return Array.from(a.entries())\n }\n return a\n}\n","export function makeIterable(iterator: Iterator): IterableIterator {\n iterator[Symbol.iterator] = getSelf\n return iterator as any\n}\n\nfunction getSelf() {\n return this\n}\n","/**\n * (c) Michel Weststrate 2015 - 2020\n * MIT Licensed\n *\n * Welcome to the mobx sources! To get a global overview of how MobX internally works,\n * this is a good place to start:\n * https://medium.com/@mweststrate/becoming-fully-reactive-an-in-depth-explanation-of-mobservable-55995262a254#.xvbh6qd74\n *\n * Source folders:\n * ===============\n *\n * - api/ Most of the public static methods exposed by the module can be found here.\n * - core/ Implementation of the MobX algorithm; atoms, derivations, reactions, dependency trees, optimizations. Cool stuff can be found here.\n * - types/ All the magic that is need to have observable objects, arrays and values is in this folder. Including the modifiers like `asFlat`.\n * - utils/ Utility stuff.\n *\n */\nimport { die } from \"./errors\"\nimport { getGlobal } from \"./utils/global\"\n;[\"Symbol\", \"Map\", \"Set\"].forEach(m => {\n let g = getGlobal()\n if (typeof g[m] === \"undefined\") {\n die(`MobX requires global '${m}' to be available or polyfilled`)\n }\n})\n\nimport { spy, getDebugName, $mobx } from \"./internal\"\n\nexport {\n IObservable,\n IDepTreeNode,\n Reaction,\n IReactionPublic,\n IReactionDisposer,\n untracked,\n IAtom,\n createAtom,\n spy,\n IComputedValue,\n IEqualsComparer,\n comparer,\n IEnhancer,\n IInterceptable,\n IInterceptor,\n IListenable,\n IObjectWillChange,\n IObjectDidChange,\n isObservableObject,\n IValueDidChange,\n IValueWillChange,\n IObservableValue,\n isObservableValue as isBoxedObservable,\n IObservableArray,\n IArrayWillChange,\n IArrayWillSplice,\n IArraySplice,\n IArrayUpdate,\n IArrayDidChange,\n isObservableArray,\n IKeyValueMap,\n ObservableMap,\n IMapEntries,\n IMapEntry,\n IMapWillChange,\n IMapDidChange,\n isObservableMap,\n IObservableMapInitialValues,\n ObservableSet,\n isObservableSet,\n ISetDidChange,\n ISetWillChange,\n IObservableSetInitialValues,\n transaction,\n observable,\n IObservableFactory,\n CreateObservableOptions,\n computed,\n IComputedFactory,\n isObservable,\n isObservableProp,\n isComputed,\n isComputedProp,\n extendObservable,\n observe,\n intercept,\n autorun,\n IAutorunOptions,\n reaction,\n IReactionOptions,\n when,\n IWhenOptions,\n action,\n isAction,\n runInAction,\n IActionFactory,\n keys,\n values,\n entries,\n set,\n remove,\n has,\n get,\n apiOwnKeys as ownKeys,\n apiDefineProperty as defineProperty,\n configure,\n onBecomeObserved,\n onBecomeUnobserved,\n flow,\n isFlow,\n flowResult,\n FlowCancellationError,\n isFlowCancellationError,\n toJS,\n trace,\n IObserverTree,\n IDependencyTree,\n getDependencyTree,\n getObserverTree,\n resetGlobalState as _resetGlobalState,\n getGlobalState as _getGlobalState,\n getDebugName,\n getAtom,\n getAdministration as _getAdministration,\n allowStateChanges as _allowStateChanges,\n runInAction as _allowStateChangesInsideComputed, // This has become the default behavior in Mobx 6\n Lambda,\n $mobx,\n isComputingDerivation as _isComputingDerivation,\n onReactionError,\n interceptReads as _interceptReads,\n IComputedValueOptions,\n IActionRunInfo,\n _startAction,\n _endAction,\n allowStateReadsStart as _allowStateReadsStart,\n allowStateReadsEnd as _allowStateReadsEnd,\n makeObservable,\n makeAutoObservable,\n autoAction as _autoAction,\n AnnotationsMap,\n AnnotationMapEntry,\n override\n} from \"./internal\"\n\n// Devtools support\ndeclare const __MOBX_DEVTOOLS_GLOBAL_HOOK__: { injectMobx: (any) => void }\nif (typeof __MOBX_DEVTOOLS_GLOBAL_HOOK__ === \"object\") {\n // See: https://github.com/andykog/mobx-devtools/\n __MOBX_DEVTOOLS_GLOBAL_HOOK__.injectMobx({\n spy,\n extras: {\n getDebugName\n },\n $mobx\n })\n}\n","import { version } from '../package.json'\n\n// overriden in posthog-core,\n// e.g. Config.DEBUG = Config.DEBUG || instance.get_config('debug')\nconst Config = {\n DEBUG: false,\n LIB_VERSION: version,\n}\n\nexport default Config\n","/**\n * uuidv7: An experimental implementation of the proposed UUID Version 7\n *\n * @license Apache-2.0\n * @copyright 2021-2023 LiosK\n * @packageDocumentation\n *\n * from https://github.com/LiosK/uuidv7/blob/e501462ea3d23241de13192ceae726956f9b3b7d/src/index.ts\n */\n\n// polyfill for IE11\nif (!Math.trunc) {\n Math.trunc = function (v) {\n return v < 0 ? Math.ceil(v) : Math.floor(v)\n }\n}\n\n// polyfill for IE11\nif (!Number.isInteger) {\n Number.isInteger = function (value) {\n return typeof value === 'number' && isFinite(value) && Math.floor(value) === value\n }\n}\n\nconst DIGITS = '0123456789abcdef'\n\n/** Represents a UUID as a 16-byte byte array. */\nexport class UUID {\n /** @param bytes - The 16-byte byte array representation. */\n constructor(readonly bytes: Readonly) {\n if (bytes.length !== 16) {\n throw new TypeError('not 128-bit length')\n }\n }\n\n /**\n * Builds a byte array from UUIDv7 field values.\n *\n * @param unixTsMs - A 48-bit `unix_ts_ms` field value.\n * @param randA - A 12-bit `rand_a` field value.\n * @param randBHi - The higher 30 bits of 62-bit `rand_b` field value.\n * @param randBLo - The lower 32 bits of 62-bit `rand_b` field value.\n */\n static fromFieldsV7(unixTsMs: number, randA: number, randBHi: number, randBLo: number): UUID {\n if (\n !Number.isInteger(unixTsMs) ||\n !Number.isInteger(randA) ||\n !Number.isInteger(randBHi) ||\n !Number.isInteger(randBLo) ||\n unixTsMs < 0 ||\n randA < 0 ||\n randBHi < 0 ||\n randBLo < 0 ||\n unixTsMs > 0xffff_ffff_ffff ||\n randA > 0xfff ||\n randBHi > 0x3fff_ffff ||\n randBLo > 0xffff_ffff\n ) {\n throw new RangeError('invalid field value')\n }\n\n const bytes = new Uint8Array(16)\n bytes[0] = unixTsMs / 2 ** 40\n bytes[1] = unixTsMs / 2 ** 32\n bytes[2] = unixTsMs / 2 ** 24\n bytes[3] = unixTsMs / 2 ** 16\n bytes[4] = unixTsMs / 2 ** 8\n bytes[5] = unixTsMs\n bytes[6] = 0x70 | (randA >>> 8)\n bytes[7] = randA\n bytes[8] = 0x80 | (randBHi >>> 24)\n bytes[9] = randBHi >>> 16\n bytes[10] = randBHi >>> 8\n bytes[11] = randBHi\n bytes[12] = randBLo >>> 24\n bytes[13] = randBLo >>> 16\n bytes[14] = randBLo >>> 8\n bytes[15] = randBLo\n return new UUID(bytes)\n }\n\n /** @returns The 8-4-4-4-12 canonical hexadecimal string representation. */\n toString(): string {\n let text = ''\n for (let i = 0; i < this.bytes.length; i++) {\n text += DIGITS.charAt(this.bytes[i] >>> 4)\n text += DIGITS.charAt(this.bytes[i] & 0xf)\n if (i === 3 || i === 5 || i === 7 || i === 9) {\n text += '-'\n }\n }\n return text\n }\n\n /** Creates an object from `this`. */\n clone(): UUID {\n return new UUID(this.bytes.slice(0))\n }\n\n /** Returns true if `this` is equivalent to `other`. */\n equals(other: UUID): boolean {\n return this.compareTo(other) === 0\n }\n\n /**\n * Returns a negative integer, zero, or positive integer if `this` is less\n * than, equal to, or greater than `other`, respectively.\n */\n compareTo(other: UUID): number {\n for (let i = 0; i < 16; i++) {\n const diff = this.bytes[i] - other.bytes[i]\n if (diff !== 0) {\n return Math.sign(diff)\n }\n }\n return 0\n }\n}\n\n/** Encapsulates the monotonic counter state. */\nclass V7Generator {\n private timestamp = 0\n private counter = 0\n private readonly random = new DefaultRandom()\n\n /**\n * Generates a new UUIDv7 object from the current timestamp, or resets the\n * generator upon significant timestamp rollback.\n *\n * This method returns monotonically increasing UUIDs unless the up-to-date\n * timestamp is significantly (by ten seconds or more) smaller than the one\n * embedded in the immediately preceding UUID. If such a significant clock\n * rollback is detected, this method resets the generator and returns a new\n * UUID based on the current timestamp.\n */\n generate(): UUID {\n const value = this.generateOrAbort()\n if (value !== undefined) {\n return value\n } else {\n // reset state and resume\n this.timestamp = 0\n const valueAfterReset = this.generateOrAbort()\n if (valueAfterReset === undefined) {\n throw new Error('Could not generate UUID after timestamp reset')\n }\n return valueAfterReset\n }\n }\n\n /**\n * Generates a new UUIDv7 object from the current timestamp, or returns\n * `undefined` upon significant timestamp rollback.\n *\n * This method returns monotonically increasing UUIDs unless the up-to-date\n * timestamp is significantly (by ten seconds or more) smaller than the one\n * embedded in the immediately preceding UUID. If such a significant clock\n * rollback is detected, this method aborts and returns `undefined`.\n */\n generateOrAbort(): UUID | undefined {\n const MAX_COUNTER = 0x3ff_ffff_ffff\n const ROLLBACK_ALLOWANCE = 10_000 // 10 seconds\n\n const ts = Date.now()\n if (ts > this.timestamp) {\n this.timestamp = ts\n this.resetCounter()\n } else if (ts + ROLLBACK_ALLOWANCE > this.timestamp) {\n // go on with previous timestamp if new one is not much smaller\n this.counter++\n if (this.counter > MAX_COUNTER) {\n // increment timestamp at counter overflow\n this.timestamp++\n this.resetCounter()\n }\n } else {\n // abort if clock went backwards to unbearable extent\n return undefined\n }\n\n return UUID.fromFieldsV7(\n this.timestamp,\n Math.trunc(this.counter / 2 ** 30),\n this.counter & (2 ** 30 - 1),\n this.random.nextUint32()\n )\n }\n\n /** Initializes the counter at a 42-bit random integer. */\n private resetCounter(): void {\n this.counter = this.random.nextUint32() * 0x400 + (this.random.nextUint32() & 0x3ff)\n }\n}\n\n/** A global flag to force use of cryptographically strong RNG. */\ndeclare const UUIDV7_DENY_WEAK_RNG: boolean\n\n/** Stores `crypto.getRandomValues()` available in the environment. */\nlet getRandomValues: (buffer: T) => T = (buffer) => {\n // fall back on Math.random() unless the flag is set to true\n if (typeof UUIDV7_DENY_WEAK_RNG !== 'undefined' && UUIDV7_DENY_WEAK_RNG) {\n throw new Error('no cryptographically strong RNG available')\n }\n\n for (let i = 0; i < buffer.length; i++) {\n buffer[i] = Math.trunc(Math.random() * 0x1_0000) * 0x1_0000 + Math.trunc(Math.random() * 0x1_0000)\n }\n return buffer\n}\n\n// detect Web Crypto API\nif (typeof crypto !== 'undefined' && crypto.getRandomValues) {\n getRandomValues = (buffer) => crypto.getRandomValues(buffer)\n}\n\n/**\n * Wraps `crypto.getRandomValues()` and compatibles to enable buffering; this\n * uses a small buffer by default to avoid unbearable throughput decline in some\n * environments as well as the waste of time and space for unused values.\n */\nclass DefaultRandom {\n private readonly buffer = new Uint32Array(8)\n private cursor = Infinity\n nextUint32(): number {\n if (this.cursor >= this.buffer.length) {\n getRandomValues(this.buffer)\n this.cursor = 0\n }\n return this.buffer[this.cursor++]\n }\n}\n\nlet defaultGenerator: V7Generator | undefined\n\n/**\n * Generates a UUIDv7 string.\n *\n * @returns The 8-4-4-4-12 canonical hexadecimal string representation\n * (\"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx\").\n */\nexport const uuidv7 = (): string => uuidv7obj().toString()\n\n/** Generates a UUIDv7 object. */\nconst uuidv7obj = (): UUID => (defaultGenerator || (defaultGenerator = new V7Generator())).generate()\n","import Config from './config'\nimport { Breaker, EventHandler, Properties } from './types'\nimport { uuidv7 } from './uuidv7'\n\n/*\n * Saved references to long variable names, so that closure compiler can\n * minimize file size.\n */\n\nconst ArrayProto = Array.prototype\nconst ObjProto = Object.prototype\nconst toString = ObjProto.toString\nconst hasOwnProperty = ObjProto.hasOwnProperty\nconst win: Window & typeof globalThis = typeof window !== 'undefined' ? window : ({} as typeof window)\nconst navigator = win.navigator || { userAgent: '' }\nconst document = win.document || {}\nconst userAgent = navigator.userAgent\nconst localDomains = ['localhost', '127.0.0.1']\n\nconst nativeForEach = ArrayProto.forEach,\n nativeIndexOf = ArrayProto.indexOf,\n nativeIsArray = Array.isArray,\n breaker: Breaker = {}\n\n// Console override\nconst logger = {\n /** @type {function(...*)} */\n log: function (...args: any[]) {\n if (Config.DEBUG && !_isUndefined(window.console) && window.console) {\n // Don't log PostHog debug messages in rrweb\n const log =\n '__rrweb_original__' in window.console.log\n ? (window.console.log as any)['__rrweb_original__']\n : window.console.log\n\n try {\n log.apply(window.console, args)\n } catch (err) {\n _eachArray(args, function (arg) {\n log(arg)\n })\n }\n }\n },\n /** @type {function(...*)} */\n error: function (..._args: any[]) {\n if (Config.DEBUG && !_isUndefined(window.console) && window.console) {\n const args = ['PostHog error:', ..._args]\n // Don't log PostHog debug messages in rrweb\n const error =\n '__rrweb_original__' in window.console.error\n ? (window.console.error as any)['__rrweb_original__']\n : window.console.error\n try {\n error.apply(window.console, args)\n } catch (err) {\n _eachArray(args, function (arg) {\n error(arg)\n })\n }\n }\n },\n /** @type {function(...*)} */\n critical: function (..._args: any[]) {\n if (!_isUndefined(window.console) && window.console) {\n const args = ['PostHog error:', ..._args]\n // Don't log PostHog debug messages in rrweb\n const error =\n '__rrweb_original__' in window.console.error\n ? (window.console.error as any)['__rrweb_original__']\n : window.console.error\n try {\n error.apply(window.console, args)\n } catch (err) {\n _eachArray(args, function (arg) {\n error(arg)\n })\n }\n }\n },\n}\n\n// UNDERSCORE\n// Embed part of the Underscore Library\nexport const _trim = function (str: string): string {\n return str.replace(/^[\\s\\uFEFF\\xA0]+|[\\s\\uFEFF\\xA0]+$/g, '')\n}\n\nexport const _bind_instance_methods = function (obj: Record): void {\n for (const func in obj) {\n if (typeof obj[func] === 'function') {\n obj[func] = obj[func].bind(obj)\n }\n }\n}\n\nexport function _eachArray(\n obj: E[] | null | undefined,\n iterator: (value: E, key: number) => void | Breaker,\n thisArg?: any\n): void {\n if (Array.isArray(obj)) {\n if (nativeForEach && obj.forEach === nativeForEach) {\n obj.forEach(iterator, thisArg)\n } else if ('length' in obj && obj.length === +obj.length) {\n for (let i = 0, l = obj.length; i < l; i++) {\n if (i in obj && iterator.call(thisArg, obj[i], i) === breaker) {\n return\n }\n }\n }\n }\n}\n\n/**\n * @param {*=} obj\n * @param {function(...*)=} iterator\n * @param {Object=} thisArg\n */\nexport function _each(obj: any, iterator: (value: any, key: any) => void | Breaker, thisArg?: any): void {\n if (obj === null || obj === undefined) {\n return\n }\n if (Array.isArray(obj)) {\n return _eachArray(obj, iterator, thisArg)\n }\n for (const key in obj) {\n if (hasOwnProperty.call(obj, key)) {\n if (iterator.call(thisArg, obj[key], key) === breaker) {\n return\n }\n }\n }\n}\n\nexport const _extend = function (obj: Record, ...args: Record[]): Record {\n _eachArray(args, function (source) {\n for (const prop in source) {\n if (source[prop] !== void 0) {\n obj[prop] = source[prop]\n }\n }\n })\n return obj\n}\n\nexport const _isArray =\n nativeIsArray ||\n function (obj: any): obj is any[] {\n return toString.call(obj) === '[object Array]'\n }\n\n// from a comment on http://dbj.org/dbj/?p=286\n// fails on only one very rare and deliberate custom object:\n// let bomb = { toString : undefined, valueOf: function(o) { return \"function BOMBA!\"; }};\nexport const _isFunction = function (f: any): f is (...args: any[]) => any {\n try {\n return /^\\s*\\bfunction\\b/.test(f)\n } catch (x) {\n return false\n }\n}\n\nexport const _include = function (\n obj: null | string | Array | Record,\n target: any\n): boolean | Breaker {\n let found = false\n if (obj === null) {\n return found\n }\n if (nativeIndexOf && obj.indexOf === nativeIndexOf) {\n return obj.indexOf(target) != -1\n }\n _each(obj, function (value) {\n if (found || (found = value === target)) {\n return breaker\n }\n return\n })\n return found\n}\n\nexport function _includes(str: T[] | string, needle: T): boolean {\n return (str as any).indexOf(needle) !== -1\n}\n\n/**\n * Object.entries() polyfill\n * https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/entries\n */\nexport function _entries(obj: Record): [string, T][] {\n const ownProps = Object.keys(obj)\n let i = ownProps.length\n const resArray = new Array(i) // preallocate the Array\n\n while (i--) {\n resArray[i] = [ownProps[i], obj[ownProps[i]]]\n }\n return resArray\n}\n\n// Underscore Addons\nexport const _isObject = function (obj: any): obj is Record {\n return obj === Object(obj) && !_isArray(obj)\n}\n\nexport const _isEmptyObject = function (obj: any): obj is Record {\n if (_isObject(obj)) {\n for (const key in obj) {\n if (hasOwnProperty.call(obj, key)) {\n return false\n }\n }\n return true\n }\n return false\n}\n\nexport const _isUndefined = function (obj: any): obj is undefined {\n return obj === void 0\n}\n\nexport const _isString = function (obj: any): obj is string {\n return toString.call(obj) == '[object String]'\n}\n\nexport const _isDate = function (obj: any): obj is Date {\n return toString.call(obj) == '[object Date]'\n}\n\nexport const _isNumber = function (obj: any): obj is number {\n return toString.call(obj) == '[object Number]'\n}\n\nexport const _encodeDates = function (obj: Properties): Properties {\n _each(obj, function (v, k) {\n if (_isDate(v)) {\n obj[k] = _formatDate(v)\n } else if (_isObject(v)) {\n obj[k] = _encodeDates(v) // recurse\n }\n })\n return obj\n}\n\nexport const _timestamp = function (): number {\n Date.now =\n Date.now ||\n function () {\n return +new Date()\n }\n return Date.now()\n}\n\nexport const _formatDate = function (d: Date): string {\n // YYYY-MM-DDTHH:MM:SS in UTC\n function pad(n: number) {\n return n < 10 ? '0' + n : n\n }\n return (\n d.getUTCFullYear() +\n '-' +\n pad(d.getUTCMonth() + 1) +\n '-' +\n pad(d.getUTCDate()) +\n 'T' +\n pad(d.getUTCHours()) +\n ':' +\n pad(d.getUTCMinutes()) +\n ':' +\n pad(d.getUTCSeconds())\n )\n}\n\nexport const _safewrap = function any = (...args: any[]) => any>(f: F): F {\n return function (...args) {\n try {\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n return f.apply(this, args)\n } catch (e) {\n logger.critical('Implementation error. Please turn on debug and contact support@posthog.com.')\n logger.critical(e)\n }\n } as F\n}\n\n// eslint-disable-next-line @typescript-eslint/ban-types\nexport const _safewrap_class = function (klass: Function, functions: string[]): void {\n for (let i = 0; i < functions.length; i++) {\n klass.prototype[functions[i]] = _safewrap(klass.prototype[functions[i]])\n }\n}\n\nexport const _safewrap_instance_methods = function (obj: Record): void {\n for (const func in obj) {\n if (typeof obj[func] === 'function') {\n obj[func] = _safewrap(obj[func])\n }\n }\n}\n\nexport const _strip_empty_properties = function (p: Properties): Properties {\n const ret: Properties = {}\n _each(p, function (v, k) {\n if (_isString(v) && v.length > 0) {\n ret[k] = v\n }\n })\n return ret\n}\n\n/**\n * Deep copies an object.\n * It handles cycles by replacing all references to them with `undefined`\n * Also supports customizing native values\n *\n * @param value\n * @param customizer\n * @returns {{}|undefined|*}\n */\nfunction deepCircularCopy = Record>(\n value: T,\n customizer?: (value: T[K], key?: K) => T[K]\n): T | undefined {\n const COPY_IN_PROGRESS_SET = new Set()\n\n function internalDeepCircularCopy(value: T, key?: string): T | undefined {\n if (value !== Object(value)) return customizer ? customizer(value as any, key) : value // primitive value\n\n if (COPY_IN_PROGRESS_SET.has(value)) return undefined\n COPY_IN_PROGRESS_SET.add(value)\n let result: T\n\n if (_isArray(value)) {\n result = [] as any as T\n _eachArray(value, (it) => {\n result.push(internalDeepCircularCopy(it))\n })\n } else {\n result = {} as T\n _each(value, (val, key) => {\n if (!COPY_IN_PROGRESS_SET.has(val)) {\n ;(result as any)[key] = internalDeepCircularCopy(val, key)\n }\n })\n }\n return result\n }\n return internalDeepCircularCopy(value)\n}\n\nconst LONG_STRINGS_ALLOW_LIST = ['$performance_raw']\n\nexport function _copyAndTruncateStrings = Record>(\n object: T,\n maxStringLength: number | null\n): T {\n return deepCircularCopy(object, (value: any, key) => {\n if (key && LONG_STRINGS_ALLOW_LIST.indexOf(key as string) > -1) {\n return value\n }\n if (typeof value === 'string' && maxStringLength !== null) {\n return (value as string).slice(0, maxStringLength)\n }\n return value\n }) as T\n}\n\nexport function _base64Encode(data: null): null\nexport function _base64Encode(data: undefined): undefined\nexport function _base64Encode(data: string): string\nexport function _base64Encode(data: string | null | undefined): string | null | undefined {\n const b64 = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/='\n let o1,\n o2,\n o3,\n h1,\n h2,\n h3,\n h4,\n bits,\n i = 0,\n ac = 0,\n enc = ''\n const tmp_arr: string[] = []\n\n if (!data) {\n return data\n }\n\n data = _utf8Encode(data)\n\n do {\n // pack three octets into four hexets\n o1 = data.charCodeAt(i++)\n o2 = data.charCodeAt(i++)\n o3 = data.charCodeAt(i++)\n\n bits = (o1 << 16) | (o2 << 8) | o3\n\n h1 = (bits >> 18) & 0x3f\n h2 = (bits >> 12) & 0x3f\n h3 = (bits >> 6) & 0x3f\n h4 = bits & 0x3f\n\n // use hexets to index into b64, and append result to encoded string\n tmp_arr[ac++] = b64.charAt(h1) + b64.charAt(h2) + b64.charAt(h3) + b64.charAt(h4)\n } while (i < data.length)\n\n enc = tmp_arr.join('')\n\n switch (data.length % 3) {\n case 1:\n enc = enc.slice(0, -2) + '=='\n break\n case 2:\n enc = enc.slice(0, -1) + '='\n break\n }\n\n return enc\n}\n\nexport const _utf8Encode = function (string: string): string {\n string = (string + '').replace(/\\r\\n/g, '\\n').replace(/\\r/g, '\\n')\n\n let utftext = '',\n start,\n end\n let stringl = 0,\n n\n\n start = end = 0\n stringl = string.length\n\n for (n = 0; n < stringl; n++) {\n const c1 = string.charCodeAt(n)\n let enc = null\n\n if (c1 < 128) {\n end++\n } else if (c1 > 127 && c1 < 2048) {\n enc = String.fromCharCode((c1 >> 6) | 192, (c1 & 63) | 128)\n } else {\n enc = String.fromCharCode((c1 >> 12) | 224, ((c1 >> 6) & 63) | 128, (c1 & 63) | 128)\n }\n if (enc !== null) {\n if (end > start) {\n utftext += string.substring(start, end)\n }\n utftext += enc\n start = end = n + 1\n }\n }\n\n if (end > start) {\n utftext += string.substring(start, string.length)\n }\n\n return utftext\n}\n\nexport const _UUID = (function () {\n // Time/ticks information\n // 1*new Date() is a cross browser version of Date.now()\n const T = function () {\n const d = new Date().valueOf()\n let i = 0\n\n // this while loop figures how many browser ticks go by\n // before 1*new Date() returns a new number, ie the amount\n // of ticks that go by per millisecond\n while (d == new Date().valueOf()) {\n i++\n }\n\n return d.toString(16) + i.toString(16)\n }\n\n // Math.Random entropy\n const R = function () {\n return Math.random().toString(16).replace('.', '')\n }\n\n // User agent entropy\n // This function takes the user agent string, and then xors\n // together each sequence of 8 bytes. This produces a final\n // sequence of 8 bytes which it returns as hex.\n const UA = function () {\n const ua = userAgent\n let i,\n ch,\n ret = 0,\n buffer: number[] = []\n\n function xor(result: number, byte_array: number[]) {\n let j,\n tmp = 0\n for (j = 0; j < byte_array.length; j++) {\n tmp |= buffer[j] << (j * 8)\n }\n return result ^ tmp\n }\n\n for (i = 0; i < ua.length; i++) {\n ch = ua.charCodeAt(i)\n buffer.unshift(ch & 0xff)\n if (buffer.length >= 4) {\n ret = xor(ret, buffer)\n buffer = []\n }\n }\n\n if (buffer.length > 0) {\n ret = xor(ret, buffer)\n }\n\n return ret.toString(16)\n }\n\n return function (version?: 'v7') {\n if (version === 'v7') {\n return uuidv7()\n }\n\n const se = typeof window !== 'undefined' ? (window.screen.height * window.screen.width).toString(16) : '0'\n return T() + '-' + R() + '-' + UA() + '-' + se + '-' + T()\n }\n})()\n\n// _.isBlockedUA()\n// This is to block various web spiders from executing our JS and\n// sending false capturing data\nexport const _isBlockedUA = function (ua: string): boolean {\n if (\n /(google web preview|baiduspider|yandexbot|bingbot|googlebot|yahoo! slurp|ahrefsbot|facebookexternalhit|facebookcatalog|applebot|semrushbot|duckduckbot|twitterbot|rogerbot|linkedinbot|mj12bot|sitebulb|bot.htm|bot.php|hubspot|crawler|prerender)/i.test(\n ua\n )\n ) {\n return true\n }\n return false\n}\n\n/**\n * @param {Object=} formdata\n * @param {string=} arg_separator\n */\nexport const _HTTPBuildQuery = function (formdata: Record, arg_separator = '&'): string {\n let use_val: string\n let use_key: string\n const tph_arr: string[] = []\n\n _each(formdata, function (val, key) {\n use_val = encodeURIComponent(val.toString())\n use_key = encodeURIComponent(key)\n tph_arr[tph_arr.length] = use_key + '=' + use_val\n })\n\n return tph_arr.join(arg_separator)\n}\n\nexport const _getQueryParam = function (url: string, param: string): string {\n // Expects a raw URL\n\n const cleanParam = param.replace(/[[]/, '\\\\[').replace(/[\\]]/, '\\\\]')\n const regexS = '[\\\\?&]' + cleanParam + '=([^&#]*)'\n const regex = new RegExp(regexS)\n const results = regex.exec(url)\n if (results === null || (results && typeof results[1] !== 'string' && (results[1] as any).length)) {\n return ''\n } else {\n let result = results[1]\n try {\n result = decodeURIComponent(result)\n } catch (err) {\n logger.error('Skipping decoding for malformed query param: ' + result)\n }\n return result.replace(/\\+/g, ' ')\n }\n}\n\nexport const _getHashParam = function (hash: string, param: string): string | null {\n const matches = hash.match(new RegExp(param + '=([^&]*)'))\n return matches ? matches[1] : null\n}\n\nexport const _register_event = (function () {\n // written by Dean Edwards, 2005\n // with input from Tino Zijdel - crisp@xs4all.nl\n // with input from Carl Sverre - mail@carlsverre.com\n // with input from PostHog\n // http://dean.edwards.name/weblog/2005/10/add-event/\n // https://gist.github.com/1930440\n\n /**\n * @param {Object} element\n * @param {string} type\n * @param {function(...*)} handler\n * @param {boolean=} oldSchool\n * @param {boolean=} useCapture\n */\n const register_event = function (\n element: Element | Window | Document | Node,\n type: string,\n handler: EventHandler,\n oldSchool?: boolean,\n useCapture?: boolean\n ) {\n if (!element) {\n logger.error('No valid element provided to register_event')\n return\n }\n\n if (element.addEventListener && !oldSchool) {\n element.addEventListener(type, handler, !!useCapture)\n } else {\n const ontype = 'on' + type\n const old_handler = (element as any)[ontype] // can be undefined\n ;(element as any)[ontype] = makeHandler(element, handler, old_handler)\n }\n }\n\n function makeHandler(\n element: Element | Window | Document | Node,\n new_handler: EventHandler,\n old_handlers: EventHandler\n ) {\n return function (event: Event): boolean | void {\n event = event || fixEvent(window.event)\n\n // this basically happens in firefox whenever another script\n // overwrites the onload callback and doesn't pass the event\n // object to previously defined callbacks. All the browsers\n // that don't define window.event implement addEventListener\n // so the dom_loaded handler will still be fired as usual.\n if (!event) {\n return undefined\n }\n\n let ret = true\n let old_result: any\n\n if (_isFunction(old_handlers)) {\n old_result = old_handlers(event)\n }\n const new_result = new_handler.call(element, event)\n\n if (false === old_result || false === new_result) {\n ret = false\n }\n\n return ret\n }\n }\n\n function fixEvent(event: Event | undefined): Event | undefined {\n if (event) {\n event.preventDefault = fixEvent.preventDefault\n event.stopPropagation = fixEvent.stopPropagation\n }\n return event\n }\n fixEvent.preventDefault = function () {\n ;(this as any as Event).returnValue = false\n }\n fixEvent.stopPropagation = function () {\n ;(this as any as Event).cancelBubble = true\n }\n\n return register_event\n})()\n\nexport const isLocalhost = (): boolean => {\n return localDomains.includes(location.hostname)\n}\n\nexport function loadScript(scriptUrlToLoad: string, callback: (error?: string | Event, event?: Event) => void): void {\n const addScript = () => {\n const scriptTag = document.createElement('script')\n scriptTag.type = 'text/javascript'\n scriptTag.src = scriptUrlToLoad\n scriptTag.onload = (event) => callback(undefined, event)\n scriptTag.onerror = (error) => callback(error)\n\n const scripts = document.querySelectorAll('body > script')\n if (scripts.length > 0) {\n scripts[0].parentNode?.insertBefore(scriptTag, scripts[0])\n } else {\n // In exceptional situations this call might load before the DOM is fully ready.\n document.body.appendChild(scriptTag)\n }\n }\n\n if (document.body) {\n addScript()\n } else {\n document.addEventListener('DOMContentLoaded', addScript)\n }\n}\n\nexport const _info = {\n campaignParams: function (customParams?: string[]): Record {\n const campaign_keywords = [\n 'utm_source',\n 'utm_medium',\n 'utm_campaign',\n 'utm_content',\n 'utm_term',\n 'gclid',\n 'fbclid',\n 'msclkid',\n ].concat(customParams || [])\n\n const params: Record = {}\n _each(campaign_keywords, function (kwkey) {\n const kw = _getQueryParam(document.URL, kwkey)\n if (kw.length) {\n params[kwkey] = kw\n }\n })\n\n return params\n },\n\n searchEngine: function (): string | null {\n const referrer = document.referrer\n if (!referrer) {\n return null\n } else if (referrer.search('https?://(.*)google.([^/?]*)') === 0) {\n return 'google'\n } else if (referrer.search('https?://(.*)bing.com') === 0) {\n return 'bing'\n } else if (referrer.search('https?://(.*)yahoo.com') === 0) {\n return 'yahoo'\n } else if (referrer.search('https?://(.*)duckduckgo.com') === 0) {\n return 'duckduckgo'\n } else {\n return null\n }\n },\n\n searchInfo: function (): Record {\n const search = _info.searchEngine(),\n param = search != 'yahoo' ? 'q' : 'p',\n ret: Record = {}\n\n if (search !== null) {\n ret['$search_engine'] = search\n\n const keyword = _getQueryParam(document.referrer, param)\n if (keyword.length) {\n ret['ph_keyword'] = keyword\n }\n }\n\n return ret\n },\n\n /**\n * This function detects which browser is running this script.\n * The order of the checks are important since many user agents\n * include key words used in later checks.\n */\n browser: function (user_agent: string, vendor: string, opera?: any): string {\n vendor = vendor || '' // vendor is undefined for at least IE9\n if (opera || _includes(user_agent, ' OPR/')) {\n if (_includes(user_agent, 'Mini')) {\n return 'Opera Mini'\n }\n return 'Opera'\n } else if (/(BlackBerry|PlayBook|BB10)/i.test(user_agent)) {\n return 'BlackBerry'\n } else if (_includes(user_agent, 'IEMobile') || _includes(user_agent, 'WPDesktop')) {\n return 'Internet Explorer Mobile'\n } else if (_includes(user_agent, 'SamsungBrowser/')) {\n // https://developer.samsung.com/internet/user-agent-string-format\n return 'Samsung Internet'\n } else if (_includes(user_agent, 'Edge') || _includes(user_agent, 'Edg/')) {\n return 'Microsoft Edge'\n } else if (_includes(user_agent, 'FBIOS')) {\n return 'Facebook Mobile'\n } else if (_includes(user_agent, 'Chrome')) {\n return 'Chrome'\n } else if (_includes(user_agent, 'CriOS')) {\n return 'Chrome iOS'\n } else if (_includes(user_agent, 'UCWEB') || _includes(user_agent, 'UCBrowser')) {\n return 'UC Browser'\n } else if (_includes(user_agent, 'FxiOS')) {\n return 'Firefox iOS'\n } else if (_includes(vendor, 'Apple')) {\n if (_includes(user_agent, 'Mobile')) {\n return 'Mobile Safari'\n }\n return 'Safari'\n } else if (_includes(user_agent, 'Android')) {\n return 'Android Mobile'\n } else if (_includes(user_agent, 'Konqueror')) {\n return 'Konqueror'\n } else if (_includes(user_agent, 'Firefox')) {\n return 'Firefox'\n } else if (_includes(user_agent, 'MSIE') || _includes(user_agent, 'Trident/')) {\n return 'Internet Explorer'\n } else if (_includes(user_agent, 'Gecko')) {\n return 'Mozilla'\n } else {\n return ''\n }\n },\n\n /**\n * This function detects which browser version is running this script,\n * parsing major and minor version (e.g., 42.1). User agent strings from:\n * http://www.useragentstring.com/pages/useragentstring.php\n */\n browserVersion: function (userAgent: string, vendor: string, opera: string): number | null {\n const browser = _info.browser(userAgent, vendor, opera)\n const versionRegexs = {\n 'Internet Explorer Mobile': /rv:(\\d+(\\.\\d+)?)/,\n 'Microsoft Edge': /Edge?\\/(\\d+(\\.\\d+)?)/,\n Chrome: /Chrome\\/(\\d+(\\.\\d+)?)/,\n 'Chrome iOS': /CriOS\\/(\\d+(\\.\\d+)?)/,\n 'UC Browser': /(UCBrowser|UCWEB)\\/(\\d+(\\.\\d+)?)/,\n Safari: /Version\\/(\\d+(\\.\\d+)?)/,\n 'Mobile Safari': /Version\\/(\\d+(\\.\\d+)?)/,\n Opera: /(Opera|OPR)\\/(\\d+(\\.\\d+)?)/,\n Firefox: /Firefox\\/(\\d+(\\.\\d+)?)/,\n 'Firefox iOS': /FxiOS\\/(\\d+(\\.\\d+)?)/,\n Konqueror: /Konqueror:(\\d+(\\.\\d+)?)/,\n BlackBerry: /BlackBerry (\\d+(\\.\\d+)?)/,\n 'Android Mobile': /android\\s(\\d+(\\.\\d+)?)/,\n 'Samsung Internet': /SamsungBrowser\\/(\\d+(\\.\\d+)?)/,\n 'Internet Explorer': /(rv:|MSIE )(\\d+(\\.\\d+)?)/,\n Mozilla: /rv:(\\d+(\\.\\d+)?)/,\n }\n const regex: RegExp | undefined = versionRegexs[browser as keyof typeof versionRegexs]\n if (regex === undefined) {\n return null\n }\n const matches = userAgent.match(regex)\n if (!matches) {\n return null\n }\n return parseFloat(matches[matches.length - 2])\n },\n\n browserLanguage: function (): string {\n return (\n navigator.language || // Any modern browser\n (navigator as Record).userLanguage // IE11\n )\n },\n\n os: function (user_agent: string): { os_name: string; os_version: string } {\n if (/Windows/i.test(user_agent)) {\n if (/Phone/.test(user_agent) || /WPDesktop/.test(user_agent)) {\n return { os_name: 'Windows Phone', os_version: '' }\n }\n const match = /Windows NT ([0-9.]+)/i.exec(user_agent)\n if (match && match[1]) {\n const version = match[1]\n return { os_name: 'Windows', os_version: version }\n }\n return { os_name: 'Windows', os_version: '' }\n } else if (/(iPhone|iPad|iPod)/.test(user_agent)) {\n const match = /OS (\\d+)_(\\d+)_?(\\d+)?/i.exec(user_agent)\n if (match && match[1]) {\n const versionParts = [match[1], match[2], match[3] || '0']\n return { os_name: 'iOS', os_version: versionParts.join('.') }\n }\n return { os_name: 'iOS', os_version: '' }\n } else if (/Android/.test(user_agent)) {\n const match = /Android (\\d+)\\.(\\d+)\\.?(\\d+)?/i.exec(user_agent)\n if (match && match[1]) {\n const versionParts = [match[1], match[2], match[3] || '0']\n return { os_name: 'Android', os_version: versionParts.join('.') }\n }\n return { os_name: 'Android', os_version: '' }\n } else if (/(BlackBerry|PlayBook|BB10)/i.test(user_agent)) {\n return { os_name: 'BlackBerry', os_version: '' }\n } else if (/Mac/i.test(user_agent)) {\n const match = /Mac OS X (\\d+)[_.](\\d+)[_.]?(\\d+)?/i.exec(user_agent)\n if (match && match[1]) {\n const versionParts = [match[1], match[2], match[3] || '0']\n return { os_name: 'Mac OS X', os_version: versionParts.join('.') }\n }\n return { os_name: 'Mac OS X', os_version: '' }\n } else if (/Linux/.test(user_agent)) {\n return { os_name: 'Linux', os_version: '' }\n } else if (/CrOS/.test(user_agent)) {\n return { os_name: 'Chrome OS', os_version: '' }\n } else {\n return { os_name: '', os_version: '' }\n }\n },\n\n device: function (user_agent: string): string {\n if (/Windows Phone/i.test(user_agent) || /WPDesktop/.test(user_agent)) {\n return 'Windows Phone'\n } else if (/iPad/.test(user_agent)) {\n return 'iPad'\n } else if (/iPod/.test(user_agent)) {\n return 'iPod Touch'\n } else if (/iPhone/.test(user_agent)) {\n return 'iPhone'\n } else if (/(BlackBerry|PlayBook|BB10)/i.test(user_agent)) {\n return 'BlackBerry'\n } else if (/Android/.test(user_agent) && !/Mobile/.test(user_agent)) {\n return 'Android Tablet'\n } else if (/Android/.test(user_agent)) {\n return 'Android'\n } else {\n return ''\n }\n },\n\n deviceType: function (user_agent: string): string {\n const device = this.device(user_agent)\n if (device === 'iPad' || device === 'Android Tablet') {\n return 'Tablet'\n } else if (device) {\n return 'Mobile'\n } else {\n return 'Desktop'\n }\n },\n\n referrer: function (): string {\n return document.referrer || '$direct'\n },\n\n referringDomain: function (): string {\n if (!document.referrer) {\n return '$direct'\n }\n const parser = document.createElement('a') // Unfortunately we cannot use new URL due to IE11\n parser.href = document.referrer\n return parser.host\n },\n\n properties: function (): Properties {\n const { os_name, os_version } = _info.os(userAgent)\n return _extend(\n _strip_empty_properties({\n $os: os_name,\n $os_version: os_version,\n $browser: _info.browser(userAgent, navigator.vendor, (win as any).opera),\n $device: _info.device(userAgent),\n $device_type: _info.deviceType(userAgent),\n }),\n {\n $current_url: win?.location.href,\n $host: win?.location.host,\n $pathname: win?.location.pathname,\n $browser_version: _info.browserVersion(userAgent, navigator.vendor, (win as any).opera),\n $browser_language: _info.browserLanguage(),\n $screen_height: win?.screen.height,\n $screen_width: win?.screen.width,\n $viewport_height: win?.innerHeight,\n $viewport_width: win?.innerWidth,\n $lib: 'web',\n $lib_version: Config.LIB_VERSION,\n $insert_id: Math.random().toString(36).substring(2, 10) + Math.random().toString(36).substring(2, 10),\n $time: _timestamp() / 1000, // epoch time in seconds\n }\n )\n },\n\n people_properties: function (): Properties {\n const { os_name, os_version } = _info.os(userAgent)\n return _extend(\n _strip_empty_properties({\n $os: os_name,\n $os_version: os_version,\n $browser: _info.browser(userAgent, navigator.vendor, (win as any).opera),\n }),\n {\n $browser_version: _info.browserVersion(userAgent, navigator.vendor, (win as any).opera),\n }\n )\n },\n}\n\nexport { win as window, userAgent, logger, document }\n","/*\n * Get the className of an element, accounting for edge cases where element.className is an object\n * @param {Element} el - element to get the className of\n * @returns {string} the element's class\n */\nimport { AutocaptureConfig } from 'types'\nimport { _each, _includes, _isUndefined, _trim } from './utils'\n\nexport function getClassName(el: Element): string {\n switch (typeof el.className) {\n case 'string':\n return el.className\n // TODO: when is this ever used?\n case 'object': // handle cases where className might be SVGAnimatedString or some other type\n return ('baseVal' in el.className ? (el.className as any).baseVal : null) || el.getAttribute('class') || ''\n default:\n // future proof\n return ''\n }\n}\n\n/*\n * Get the direct text content of an element, protecting against sensitive data collection.\n * Concats textContent of each of the element's text node children; this avoids potential\n * collection of sensitive data that could happen if we used element.textContent and the\n * element had sensitive child elements, since element.textContent includes child content.\n * Scrubs values that look like they could be sensitive (i.e. cc or ssn number).\n * @param {Element} el - element to get the text of\n * @returns {string} the element's direct text content\n */\nexport function getSafeText(el: Element): string {\n let elText = ''\n\n if (shouldCaptureElement(el) && !isSensitiveElement(el) && el.childNodes && el.childNodes.length) {\n _each(el.childNodes, function (child) {\n if (isTextNode(child) && child.textContent) {\n elText += _trim(child.textContent)\n // scrub potentially sensitive values\n .split(/(\\s+)/)\n .filter(shouldCaptureValue)\n .join('')\n // normalize whitespace\n .replace(/[\\r\\n]/g, ' ')\n .replace(/[ ]+/g, ' ')\n // truncate\n .substring(0, 255)\n }\n })\n }\n\n return _trim(elText)\n}\n\n/*\n * Check whether an element has nodeType Node.ELEMENT_NODE\n * @param {Element} el - element to check\n * @returns {boolean} whether el is of the correct nodeType\n */\nexport function isElementNode(el: Element | undefined | null): el is HTMLElement {\n return !!el && el.nodeType === 1 // Node.ELEMENT_NODE - use integer constant for browser portability\n}\n\n/*\n * Check whether an element is of a given tag type.\n * Due to potential reference discrepancies (such as the webcomponents.js polyfill),\n * we want to match tagNames instead of specific references because something like\n * element === document.body won't always work because element might not be a native\n * element.\n * @param {Element} el - element to check\n * @param {string} tag - tag name (e.g., \"div\")\n * @returns {boolean} whether el is of the given tag type\n */\nexport function isTag(el: Element | undefined | null, tag: string): el is HTMLElement {\n return !!el && !!el.tagName && el.tagName.toLowerCase() === tag.toLowerCase()\n}\n\n/*\n * Check whether an element has nodeType Node.TEXT_NODE\n * @param {Element} el - element to check\n * @returns {boolean} whether el is of the correct nodeType\n */\nexport function isTextNode(el: Element | undefined | null): el is HTMLElement {\n return !!el && el.nodeType === 3 // Node.TEXT_NODE - use integer constant for browser portability\n}\n\n/*\n * Check whether an element has nodeType Node.DOCUMENT_FRAGMENT_NODE\n * @param {Element} el - element to check\n * @returns {boolean} whether el is of the correct nodeType\n */\nexport function isDocumentFragment(el: Element | ParentNode | undefined | null): el is DocumentFragment {\n return !!el && el.nodeType === 11 // Node.DOCUMENT_FRAGMENT_NODE - use integer constant for browser portability\n}\n\nexport const autocaptureCompatibleElements = ['a', 'button', 'form', 'input', 'select', 'textarea', 'label']\n/*\n * Check whether a DOM event should be \"captured\" or if it may contain sentitive data\n * using a variety of heuristics.\n * @param {Element} el - element to check\n * @param {Event} event - event to check\n * @param {Object} autocaptureConfig - autocapture config\n * @returns {boolean} whether the event should be captured\n */\nexport function shouldCaptureDomEvent(\n el: Element,\n event: Event,\n autocaptureConfig: AutocaptureConfig | undefined = undefined\n): boolean {\n if (!el || isTag(el, 'html') || !isElementNode(el)) {\n return false\n }\n\n if (autocaptureConfig?.url_allowlist) {\n const url = window.location.href\n const allowlist = autocaptureConfig.url_allowlist\n if (allowlist && !allowlist.some((regex) => url.match(regex))) {\n return false\n }\n }\n\n if (autocaptureConfig?.dom_event_allowlist) {\n const allowlist = autocaptureConfig.dom_event_allowlist\n if (allowlist && !allowlist.some((eventType) => event.type === eventType)) {\n return false\n }\n }\n\n if (autocaptureConfig?.element_allowlist) {\n const allowlist = autocaptureConfig.element_allowlist\n if (allowlist && !allowlist.some((elementType) => el.tagName.toLowerCase() === elementType)) {\n return false\n }\n }\n\n if (autocaptureConfig?.css_selector_allowlist) {\n const allowlist = autocaptureConfig.css_selector_allowlist\n if (allowlist && !allowlist.some((selector) => el.matches(selector))) {\n return false\n }\n }\n\n let parentIsUsefulElement = false\n const targetElementList: Element[] = [el] // TODO: remove this var, it's never queried\n let parentNode: Element | boolean = true\n let curEl: Element = el\n while (curEl.parentNode && !isTag(curEl, 'body')) {\n // If element is a shadow root, we skip it\n if (isDocumentFragment(curEl.parentNode)) {\n targetElementList.push((curEl.parentNode as any).host)\n curEl = (curEl.parentNode as any).host\n continue\n }\n parentNode = (curEl.parentNode as Element) || false\n if (!parentNode) break\n if (autocaptureCompatibleElements.indexOf(parentNode.tagName.toLowerCase()) > -1) {\n parentIsUsefulElement = true\n } else {\n const compStyles = window.getComputedStyle(parentNode)\n if (compStyles && compStyles.getPropertyValue('cursor') === 'pointer') {\n parentIsUsefulElement = true\n }\n }\n\n targetElementList.push(parentNode)\n curEl = parentNode\n }\n\n const compStyles = window.getComputedStyle(el)\n if (compStyles && compStyles.getPropertyValue('cursor') === 'pointer' && event.type === 'click') {\n return true\n }\n\n const tag = el.tagName.toLowerCase()\n switch (tag) {\n case 'html':\n return false\n case 'form':\n return event.type === 'submit'\n case 'input':\n return event.type === 'change' || event.type === 'click'\n case 'select':\n case 'textarea':\n return event.type === 'change' || event.type === 'click'\n default:\n if (parentIsUsefulElement) return event.type === 'click'\n return (\n event.type === 'click' &&\n (autocaptureCompatibleElements.indexOf(tag) > -1 || el.getAttribute('contenteditable') === 'true')\n )\n }\n}\n\n/*\n * Check whether a DOM element should be \"captured\" or if it may contain sentitive data\n * using a variety of heuristics.\n * @param {Element} el - element to check\n * @returns {boolean} whether the element should be captured\n */\nexport function shouldCaptureElement(el: Element): boolean {\n for (let curEl = el; curEl.parentNode && !isTag(curEl, 'body'); curEl = curEl.parentNode as Element) {\n const classes = getClassName(curEl).split(' ')\n if (_includes(classes, 'ph-sensitive') || _includes(classes, 'ph-no-capture')) {\n return false\n }\n }\n\n if (_includes(getClassName(el).split(' '), 'ph-include')) {\n return true\n }\n\n // don't include hidden or password fields\n const type = (el as HTMLInputElement).type || ''\n if (typeof type === 'string') {\n // it's possible for el.type to be a DOM element if el is a form with a child input[name=\"type\"]\n switch (type.toLowerCase()) {\n case 'hidden':\n return false\n case 'password':\n return false\n }\n }\n\n // filter out data from fields that look like sensitive fields\n const name = (el as HTMLInputElement).name || el.id || ''\n // See https://github.com/posthog/posthog-js/issues/165\n // Under specific circumstances a bug caused .replace to be called on a DOM element\n // instead of a string, removing the element from the page. Ensure this issue is mitigated.\n if (typeof name === 'string') {\n // it's possible for el.name or el.id to be a DOM element if el is a form with a child input[name=\"name\"]\n const sensitiveNameRegex =\n /^cc|cardnum|ccnum|creditcard|csc|cvc|cvv|exp|pass|pwd|routing|seccode|securitycode|securitynum|socialsec|socsec|ssn/i\n if (sensitiveNameRegex.test(name.replace(/[^a-zA-Z0-9]/g, ''))) {\n return false\n }\n }\n\n return true\n}\n\n/*\n * Check whether a DOM element is 'sensitive' and we should only capture limited data\n * @param {Element} el - element to check\n * @returns {boolean} whether the element should be captured\n */\nexport function isSensitiveElement(el: Element): boolean {\n // don't send data from inputs or similar elements since there will always be\n // a risk of clientside javascript placing sensitive data in attributes\n const allowedInputTypes = ['button', 'checkbox', 'submit', 'reset']\n if (\n (isTag(el, 'input') && !allowedInputTypes.includes((el as HTMLInputElement).type)) ||\n isTag(el, 'select') ||\n isTag(el, 'textarea') ||\n el.getAttribute('contenteditable') === 'true'\n ) {\n return true\n }\n return false\n}\n\n/*\n * Check whether a string value should be \"captured\" or if it may contain sentitive data\n * using a variety of heuristics.\n * @param {string} value - string value to check\n * @returns {boolean} whether the element should be captured\n */\nexport function shouldCaptureValue(value: string): boolean {\n if (value === null || _isUndefined(value)) {\n return false\n }\n\n if (typeof value === 'string') {\n value = _trim(value)\n\n // check to see if input value looks like a credit card number\n // see: https://www.safaribooksonline.com/library/view/regular-expressions-cookbook/9781449327453/ch04s20.html\n const ccRegex =\n /^(?:(4[0-9]{12}(?:[0-9]{3})?)|(5[1-5][0-9]{14})|(6(?:011|5[0-9]{2})[0-9]{12})|(3[47][0-9]{13})|(3(?:0[0-5]|[68][0-9])[0-9]{11})|((?:2131|1800|35[0-9]{3})[0-9]{11}))$/\n if (ccRegex.test((value || '').replace(/[- ]/g, ''))) {\n return false\n }\n\n // check to see if input value looks like a social security number\n const ssnRegex = /(^\\d{3}-?\\d{2}-?\\d{4}$)/\n if (ssnRegex.test(value)) {\n return false\n }\n }\n\n return true\n}\n\n/*\n * Check whether an attribute name is an Angular style attr (either _ngcontent or _nghost)\n * These update on each build and lead to noise in the element chain\n * More details on the attributes here: https://angular.io/guide/view-encapsulation\n * @param {string} attributeName - string value to check\n * @returns {boolean} whether the element is an angular tag\n */\nexport function isAngularStyleAttr(attributeName: string): boolean {\n if (typeof attributeName === 'string') {\n return attributeName.substring(0, 10) === '_ngcontent' || attributeName.substring(0, 7) === '_nghost'\n }\n return false\n}\n\n/*\n * Iterate through children of a target element looking for span tags\n * and return the text content of the span tags, separated by spaces,\n * along with the direct text content of the target element\n * @param {Element} target - element to check\n * @returns {string} text content of the target element and its child span tags\n */\nexport function getDirectAndNestedSpanText(target: Element): string {\n let text = getSafeText(target)\n text = `${text} ${getNestedSpanText(target)}`.trim()\n return shouldCaptureValue(text) ? text : ''\n}\n\n/*\n * Iterate through children of a target element looking for span tags\n * and return the text content of the span tags, separated by spaces\n * @param {Element} target - element to check\n * @returns {string} text content of span tags\n */\nexport function getNestedSpanText(target: Element): string {\n let text = ''\n if (target && target.childNodes && target.childNodes.length) {\n _each(target.childNodes, function (child) {\n if (child && child.tagName?.toLowerCase() === 'span') {\n try {\n const spanText = getSafeText(child)\n text = `${text} ${spanText}`.trim()\n\n if (child.childNodes && child.childNodes.length) {\n text = `${text} ${getNestedSpanText(child)}`.trim()\n }\n } catch (e) {\n console.error(e)\n }\n }\n })\n }\n return text\n}\n","// Naive rage click implementation: If mouse has not moved than RAGE_CLICK_THRESHOLD_PX\n// over RAGE_CLICK_CLICK_COUNT clicks with max RAGE_CLICK_TIMEOUT_MS between clicks, it's\n// counted as a rage click\n\nconst RAGE_CLICK_THRESHOLD_PX = 30\nconst RAGE_CLICK_TIMEOUT_MS = 1000\nconst RAGE_CLICK_CLICK_COUNT = 3\n\nexport default class RageClick {\n clicks: { x: number; y: number; timestamp: number }[]\n enabled: boolean\n\n constructor(enabled: boolean) {\n this.clicks = []\n this.enabled = enabled\n }\n\n isRageClick(x: number, y: number, timestamp: number): boolean {\n if (!this.enabled) {\n return false\n }\n\n const lastClick = this.clicks[this.clicks.length - 1]\n if (\n lastClick &&\n Math.abs(x - lastClick.x) + Math.abs(y - lastClick.y) < RAGE_CLICK_THRESHOLD_PX &&\n timestamp - lastClick.timestamp < RAGE_CLICK_TIMEOUT_MS\n ) {\n this.clicks.push({ x, y, timestamp })\n\n if (this.clicks.length === RAGE_CLICK_CLICK_COUNT) {\n return true\n }\n } else {\n this.clicks = [{ x, y, timestamp }]\n }\n\n return false\n }\n}\n","import { _extend, logger } from './utils'\nimport { PersistentStore, Properties } from './types'\nimport Config from './config'\n\nconst DOMAIN_MATCH_REGEX = /[a-z0-9][a-z0-9-]+\\.[a-z.]{2,6}$/i\n\n// Methods partially borrowed from quirksmode.org/js/cookies.html\nexport const cookieStore: PersistentStore = {\n is_supported: () => true,\n\n error: function (msg) {\n logger.error('cookieStore error: ' + msg)\n },\n\n get: function (name) {\n try {\n const nameEQ = name + '='\n const ca = document.cookie.split(';')\n for (let i = 0; i < ca.length; i++) {\n let c = ca[i]\n while (c.charAt(0) == ' ') {\n c = c.substring(1, c.length)\n }\n if (c.indexOf(nameEQ) === 0) {\n return decodeURIComponent(c.substring(nameEQ.length, c.length))\n }\n }\n } catch (err) {}\n return null\n },\n\n parse: function (name) {\n let cookie\n try {\n cookie = JSON.parse(cookieStore.get(name)) || {}\n } catch (err) {\n // noop\n }\n return cookie\n },\n\n set: function (name, value, days, cross_subdomain, is_secure) {\n try {\n let cdomain = '',\n expires = '',\n secure = ''\n\n if (cross_subdomain) {\n const matches = document.location.hostname.match(DOMAIN_MATCH_REGEX),\n domain = matches ? matches[0] : ''\n\n cdomain = domain ? '; domain=.' + domain : ''\n }\n\n if (days) {\n const date = new Date()\n date.setTime(date.getTime() + days * 24 * 60 * 60 * 1000)\n expires = '; expires=' + date.toUTCString()\n }\n\n if (is_secure) {\n secure = '; secure'\n }\n\n const new_cookie_val =\n name +\n '=' +\n encodeURIComponent(JSON.stringify(value)) +\n expires +\n '; SameSite=Lax; path=/' +\n cdomain +\n secure\n document.cookie = new_cookie_val\n return new_cookie_val\n } catch (err) {\n return\n }\n },\n\n remove: function (name, cross_subdomain) {\n try {\n cookieStore.set(name, '', -1, cross_subdomain)\n } catch (err) {\n return\n }\n },\n}\n\nlet _localStorage_supported: boolean | null = null\n\nexport const localStore: PersistentStore = {\n is_supported: function () {\n if (_localStorage_supported !== null) {\n return _localStorage_supported\n }\n\n let supported = true\n if (typeof window !== 'undefined') {\n try {\n const key = '__mplssupport__',\n val = 'xyz'\n localStore.set(key, val)\n if (localStore.get(key) !== '\"xyz\"') {\n supported = false\n }\n localStore.remove(key)\n } catch (err) {\n supported = false\n }\n } else {\n supported = false\n }\n if (!supported) {\n logger.error('localStorage unsupported; falling back to cookie store')\n }\n\n _localStorage_supported = supported\n return supported\n },\n\n error: function (msg) {\n logger.error('localStorage error: ' + msg)\n },\n\n get: function (name) {\n try {\n return window.localStorage.getItem(name)\n } catch (err) {\n localStore.error(err)\n }\n return null\n },\n\n parse: function (name) {\n try {\n return JSON.parse(localStore.get(name)) || {}\n } catch (err) {\n // noop\n }\n return null\n },\n\n set: function (name, value) {\n try {\n window.localStorage.setItem(name, JSON.stringify(value))\n } catch (err) {\n localStore.error(err)\n }\n },\n\n remove: function (name) {\n try {\n window.localStorage.removeItem(name)\n } catch (err) {\n localStore.error(err)\n }\n },\n}\n\n// Use localstorage for most data but still use cookie for distinct_id\n// This solves issues with cookies having too much data in them causing headers too large\n// Also makes sure we don't have to send a ton of data to the server\nexport const localPlusCookieStore: PersistentStore = {\n ...localStore,\n parse: function (name) {\n try {\n let extend: Properties = {}\n try {\n // See if there's a cookie stored with data.\n extend = cookieStore.parse(name) || {}\n if (extend['distinct_id']) {\n cookieStore.set(name, { distinct_id: extend['distinct_id'] })\n }\n } catch (err) {}\n const value = _extend(extend, JSON.parse(localStore.get(name) || '{}'))\n localStore.set(name, value)\n return value\n } catch (err) {\n // noop\n }\n return null\n },\n\n set: function (name, value, days, cross_subdomain, is_secure) {\n try {\n localStore.set(name, value)\n if (value.distinct_id) {\n cookieStore.set(name, { distinct_id: value.distinct_id }, days, cross_subdomain, is_secure)\n }\n } catch (err) {\n localStore.error(err)\n }\n },\n\n remove: function (name, cross_subdomain) {\n try {\n window.localStorage.removeItem(name)\n cookieStore.remove(name, cross_subdomain)\n } catch (err) {\n localStore.error(err)\n }\n },\n}\n\nconst memoryStorage: Properties = {}\n\n// Storage that only lasts the length of the pageview if we don't want to use cookies\nexport const memoryStore: PersistentStore = {\n is_supported: function () {\n return true\n },\n\n error: function (msg) {\n logger.error('memoryStorage error: ' + msg)\n },\n\n get: function (name) {\n return memoryStorage[name] || null\n },\n\n parse: function (name) {\n return memoryStorage[name] || null\n },\n\n set: function (name, value) {\n memoryStorage[name] = value\n },\n\n remove: function (name) {\n delete memoryStorage[name]\n },\n}\n\nlet sessionStorageSupported: boolean | null = null\nexport const resetSessionStorageSupported = () => {\n sessionStorageSupported = null\n}\n// Storage that only lasts the length of a tab/window. Survives page refreshes\nexport const sessionStore: PersistentStore = {\n is_supported: function () {\n if (sessionStorageSupported !== null) {\n return sessionStorageSupported\n }\n sessionStorageSupported = true\n if (typeof window !== 'undefined') {\n try {\n const key = '__support__',\n val = 'xyz'\n sessionStore.set(key, val)\n if (sessionStore.get(key) !== '\"xyz\"') {\n sessionStorageSupported = false\n }\n sessionStore.remove(key)\n } catch (err) {\n sessionStorageSupported = false\n }\n } else {\n sessionStorageSupported = false\n }\n return sessionStorageSupported\n },\n\n error: function (msg) {\n if (Config.DEBUG) {\n logger.error('sessionStorage error: ', msg)\n }\n },\n\n get: function (name) {\n try {\n return window.sessionStorage.getItem(name)\n } catch (err) {\n sessionStore.error(err)\n }\n return null\n },\n\n parse: function (name) {\n try {\n return JSON.parse(sessionStore.get(name)) || null\n } catch (err) {\n // noop\n }\n return null\n },\n\n set: function (name, value) {\n try {\n window.sessionStorage.setItem(name, JSON.stringify(value))\n } catch (err) {\n sessionStore.error(err)\n }\n },\n\n remove: function (name) {\n try {\n window.sessionStorage.removeItem(name)\n } catch (err) {\n sessionStore.error(err)\n }\n },\n}\n","/* eslint camelcase: \"off\" */\n\nimport { _each, _extend, _include, _info, _isObject, _isUndefined, _strip_empty_properties, logger } from './utils'\nimport { cookieStore, localStore, localPlusCookieStore, memoryStore, sessionStore } from './storage'\nimport { PersistentStore, PostHogConfig, Properties } from './types'\n\n/*\n * Constants\n */\n// This key is deprecated, but we want to check for it to see whether aliasing is allowed.\nexport const PEOPLE_DISTINCT_ID_KEY = '$people_distinct_id'\nexport const ALIAS_ID_KEY = '__alias'\nexport const CAMPAIGN_IDS_KEY = '__cmpns'\nexport const EVENT_TIMERS_KEY = '__timers'\nexport const AUTOCAPTURE_DISABLED_SERVER_SIDE = '$autocapture_disabled_server_side'\nexport const SESSION_RECORDING_ENABLED_SERVER_SIDE = '$session_recording_enabled_server_side'\nexport const CONSOLE_LOG_RECORDING_ENABLED_SERVER_SIDE = '$console_log_recording_enabled_server_side'\nexport const SESSION_RECORDING_RECORDER_VERSION_SERVER_SIDE = '$session_recording_recorder_version_server_side' // follows rrweb versioning\nexport const SESSION_ID = '$sesid'\nexport const ENABLED_FEATURE_FLAGS = '$enabled_feature_flags'\nexport const PERSISTENCE_EARLY_ACCESS_FEATURES = '$early_access_features'\nexport const STORED_PERSON_PROPERTIES_KEY = '$stored_person_properties'\nexport const STORED_GROUP_PROPERTIES_KEY = '$stored_group_properties'\nexport const SURVEYS = '$surveys'\n\nconst USER_STATE = '$user_state'\n\nexport const RESERVED_PROPERTIES = [\n PEOPLE_DISTINCT_ID_KEY,\n ALIAS_ID_KEY,\n CAMPAIGN_IDS_KEY,\n EVENT_TIMERS_KEY,\n SESSION_RECORDING_ENABLED_SERVER_SIDE,\n SESSION_ID,\n ENABLED_FEATURE_FLAGS,\n USER_STATE,\n PERSISTENCE_EARLY_ACCESS_FEATURES,\n STORED_GROUP_PROPERTIES_KEY,\n STORED_PERSON_PROPERTIES_KEY,\n SURVEYS,\n]\n\nconst CASE_INSENSITIVE_PERSISTENCE_TYPES: readonly Lowercase[] = [\n 'cookie',\n 'localstorage',\n 'localstorage+cookie',\n 'sessionstorage',\n 'memory',\n]\n\n/**\n * PostHog Persistence Object\n * @constructor\n */\nexport class PostHogPersistence {\n props: Properties\n storage: PersistentStore\n campaign_params_saved: boolean\n custom_campaign_params: string[]\n name: string\n disabled: boolean | undefined\n secure: boolean | undefined\n expire_days: number | undefined\n default_expiry: number | undefined\n cross_subdomain: boolean | undefined\n user_state: 'anonymous' | 'identified'\n\n constructor(config: PostHogConfig) {\n // clean chars that aren't accepted by the http spec for cookie values\n // https://datatracker.ietf.org/doc/html/rfc2616#section-2.2\n let token = ''\n\n if (config['token']) {\n token = config['token'].replace(/\\+/g, 'PL').replace(/\\//g, 'SL').replace(/=/g, 'EQ')\n }\n\n this.props = {}\n this.campaign_params_saved = false\n this.custom_campaign_params = config['custom_campaign_params'] || []\n\n if (config['persistence_name']) {\n this.name = 'ph_' + config['persistence_name']\n } else {\n this.name = 'ph_' + token + '_posthog'\n }\n\n if (\n CASE_INSENSITIVE_PERSISTENCE_TYPES.indexOf(\n config['persistence'].toLowerCase() as Lowercase\n ) === -1\n ) {\n logger.critical('Unknown persistence type ' + config['persistence'] + '; falling back to cookie')\n config['persistence'] = 'cookie'\n }\n // We handle storage type in a case-insensitive way for backwards compatibility\n const storage_type = config['persistence'].toLowerCase() as Lowercase\n if (storage_type === 'localstorage' && localStore.is_supported()) {\n this.storage = localStore\n } else if (storage_type === 'localstorage+cookie' && localPlusCookieStore.is_supported()) {\n this.storage = localPlusCookieStore\n } else if (storage_type === 'sessionstorage' && sessionStore.is_supported()) {\n this.storage = sessionStore\n } else if (storage_type === 'memory') {\n this.storage = memoryStore\n } else {\n this.storage = cookieStore\n }\n\n this.user_state = 'anonymous'\n\n this.load()\n this.update_config(config)\n this.save()\n }\n\n properties(): Properties {\n const p: Properties = {}\n // Filter out reserved properties\n _each(this.props, function (v, k) {\n if (k === ENABLED_FEATURE_FLAGS && typeof v === 'object') {\n const keys = Object.keys(v)\n for (let i = 0; i < keys.length; i++) {\n p[`$feature/${keys[i]}`] = v[keys[i]]\n }\n } else if (!_include(RESERVED_PROPERTIES, k)) {\n p[k] = v\n }\n })\n return p\n }\n\n load(): void {\n if (this.disabled) {\n return\n }\n\n const entry = this.storage.parse(this.name)\n\n if (entry) {\n this.props = _extend({}, entry)\n }\n }\n\n /**\n * NOTE: Saving frequently causes issues with Recordings and Consent Management Platform (CMP) tools which\n * observe cookie changes, and modify their UI, often causing infinite loops.\n * As such callers of this should ideally check that the data has changed beforehand\n */\n save(): void {\n if (this.disabled) {\n return\n }\n this.storage.set(this.name, this.props, this.expire_days, this.cross_subdomain, this.secure)\n }\n\n remove(): void {\n // remove both domain and subdomain cookies\n this.storage.remove(this.name, false)\n this.storage.remove(this.name, true)\n }\n\n // removes the storage entry and deletes all loaded data\n // forced name for tests\n\n clear(): void {\n this.remove()\n this.props = {}\n }\n\n /**\n * @param {Object} props\n * @param {*=} default_value\n * @param {number=} days\n */\n\n register_once(props: Properties, default_value: any, days?: number): boolean {\n if (_isObject(props)) {\n if (typeof default_value === 'undefined') {\n default_value = 'None'\n }\n this.expire_days = typeof days === 'undefined' ? this.default_expiry : days\n\n let hasChanges = false\n\n _each(props, (val, prop) => {\n if (!this.props.hasOwnProperty(prop) || this.props[prop] === default_value) {\n this.props[prop] = val\n hasChanges = true\n }\n })\n\n if (hasChanges) {\n this.save()\n return true\n }\n }\n return false\n }\n\n /**\n * @param {Object} props\n * @param {number=} days\n */\n\n register(props: Properties, days?: number): boolean {\n if (_isObject(props)) {\n this.expire_days = typeof days === 'undefined' ? this.default_expiry : days\n\n let hasChanges = false\n\n _each(props, (val, prop) => {\n if (props.hasOwnProperty(prop) && this.props[prop] !== val) {\n this.props[prop] = val\n hasChanges = true\n }\n })\n\n if (hasChanges) {\n this.save()\n return true\n }\n }\n return false\n }\n\n unregister(prop: string): void {\n if (prop in this.props) {\n delete this.props[prop]\n this.save()\n }\n }\n\n update_campaign_params(): void {\n if (!this.campaign_params_saved) {\n this.register(_info.campaignParams(this.custom_campaign_params))\n this.campaign_params_saved = true\n }\n }\n\n update_search_keyword(): void {\n this.register(_info.searchInfo())\n }\n\n update_referrer_info(): void {\n this.register({\n $referrer: this.props['$referrer'] || _info.referrer(),\n $referring_domain: this.props['$referring_domain'] || _info.referringDomain(),\n })\n }\n\n get_referrer_info(): Properties {\n return _strip_empty_properties({\n $referrer: this['props']['$referrer'],\n $referring_domain: this['props']['$referring_domain'],\n })\n }\n\n // safely fills the passed in object with stored properties,\n // does not override any properties defined in both\n // returns the passed in object\n\n safe_merge(props: Properties): Properties {\n _each(this.props, function (val, prop) {\n if (!(prop in props)) {\n props[prop] = val\n }\n })\n\n return props\n }\n\n update_config(config: PostHogConfig): void {\n this.default_expiry = this.expire_days = config['cookie_expiration']\n this.set_disabled(config['disable_persistence'])\n this.set_cross_subdomain(config['cross_subdomain_cookie'])\n this.set_secure(config['secure_cookie'])\n }\n\n set_disabled(disabled: boolean): void {\n this.disabled = disabled\n if (this.disabled) {\n this.remove()\n } else {\n this.save()\n }\n }\n\n set_cross_subdomain(cross_subdomain: boolean): void {\n if (cross_subdomain !== this.cross_subdomain) {\n this.cross_subdomain = cross_subdomain\n this.remove()\n this.save()\n }\n }\n\n get_cross_subdomain(): boolean {\n return !!this.cross_subdomain\n }\n\n set_secure(secure: boolean): void {\n if (secure !== this.secure) {\n this.secure = secure\n this.remove()\n this.save()\n }\n }\n\n set_event_timer(event_name: string, timestamp: number): void {\n const timers = this.props[EVENT_TIMERS_KEY] || {}\n timers[event_name] = timestamp\n this.props[EVENT_TIMERS_KEY] = timers\n this.save()\n }\n\n remove_event_timer(event_name: string): number {\n const timers = this.props[EVENT_TIMERS_KEY] || {}\n const timestamp = timers[event_name]\n if (!_isUndefined(timestamp)) {\n delete this.props[EVENT_TIMERS_KEY][event_name]\n this.save()\n }\n return timestamp\n }\n\n get_user_state(): 'anonymous' | 'identified' {\n return this.props[USER_STATE] || 'anonymous'\n }\n\n set_user_state(state: 'anonymous' | 'identified'): void {\n this.props[USER_STATE] = state\n this.save()\n }\n}\n","import {\n _bind_instance_methods,\n _each,\n _extend,\n _includes,\n _isFunction,\n _isUndefined,\n _register_event,\n _safewrap_instance_methods,\n logger,\n} from './utils'\nimport {\n getClassName,\n getSafeText,\n isElementNode,\n isSensitiveElement,\n isTag,\n isTextNode,\n shouldCaptureDomEvent,\n shouldCaptureElement,\n shouldCaptureValue,\n autocaptureCompatibleElements,\n isAngularStyleAttr,\n isDocumentFragment,\n getDirectAndNestedSpanText,\n} from './autocapture-utils'\nimport RageClick from './extensions/rageclick'\nimport { AutocaptureConfig, AutoCaptureCustomProperty, DecideResponse, Properties } from './types'\nimport { PostHog } from './posthog-core'\nimport { AUTOCAPTURE_DISABLED_SERVER_SIDE } from './posthog-persistence'\n\nconst autocapture = {\n _initializedTokens: [] as string[],\n\n _isAutocaptureEnabled: false as boolean,\n\n _setIsAutocaptureEnabled: function (instance: PostHog): void {\n const disabled_server_side = !!instance.get_property(AUTOCAPTURE_DISABLED_SERVER_SIDE)\n const enabled_client_side = !!instance.get_config('autocapture')\n this._isAutocaptureEnabled = enabled_client_side && !disabled_server_side\n },\n\n _previousElementSibling: function (el: Element): Element | null {\n if (el.previousElementSibling) {\n return el.previousElementSibling\n } else {\n let _el: Element | null = el\n do {\n _el = _el.previousSibling as Element | null // resolves to ChildNode->Node, which is Element's parent class\n } while (_el && !isElementNode(_el))\n return _el\n }\n },\n\n _getAugmentPropertiesFromElement: function (elem: Element): Properties {\n const shouldCaptureEl = shouldCaptureElement(elem)\n if (!shouldCaptureEl) {\n return {}\n }\n\n const props: Properties = {}\n\n _each(elem.attributes, function (attr: Attr) {\n if (attr.name.indexOf('data-ph-capture-attribute') === 0) {\n const propertyKey = attr.name.replace('data-ph-capture-attribute-', '')\n const propertyValue = attr.value\n if (propertyKey && propertyValue && shouldCaptureValue(propertyValue)) {\n props[propertyKey] = propertyValue\n }\n }\n })\n return props\n },\n\n _getPropertiesFromElement: function (elem: Element, maskInputs: boolean, maskText: boolean): Properties {\n const tag_name = elem.tagName.toLowerCase()\n const props: Properties = {\n tag_name: tag_name,\n }\n if (autocaptureCompatibleElements.indexOf(tag_name) > -1 && !maskText) {\n if (tag_name.toLowerCase() === 'a' || tag_name.toLowerCase() === 'button') {\n props['$el_text'] = getDirectAndNestedSpanText(elem)\n } else {\n props['$el_text'] = getSafeText(elem)\n }\n }\n\n const classes = getClassName(elem)\n if (classes.length > 0)\n props['classes'] = classes.split(' ').filter(function (c) {\n return c !== ''\n })\n\n _each(elem.attributes, function (attr: Attr) {\n // Only capture attributes we know are safe\n if (isSensitiveElement(elem) && ['name', 'id', 'class'].indexOf(attr.name) === -1) return\n\n if (!maskInputs && shouldCaptureValue(attr.value) && !isAngularStyleAttr(attr.name)) {\n props['attr__' + attr.name] = attr.value\n }\n })\n\n let nthChild = 1\n let nthOfType = 1\n let currentElem: Element | null = elem\n while ((currentElem = this._previousElementSibling(currentElem))) {\n // eslint-disable-line no-cond-assign\n nthChild++\n if (currentElem.tagName === elem.tagName) {\n nthOfType++\n }\n }\n props['nth_child'] = nthChild\n props['nth_of_type'] = nthOfType\n\n return props\n },\n\n _getDefaultProperties: function (eventType: string): Properties {\n return {\n $event_type: eventType,\n $ce_version: 1,\n }\n },\n\n _extractCustomPropertyValue: function (customProperty: AutoCaptureCustomProperty): string {\n const propValues: string[] = []\n _each(document.querySelectorAll(customProperty['css_selector']), function (matchedElem) {\n let value\n\n if (['input', 'select'].indexOf(matchedElem.tagName.toLowerCase()) > -1) {\n value = matchedElem['value']\n } else if (matchedElem['textContent']) {\n value = matchedElem['textContent']\n }\n\n if (shouldCaptureValue(value)) {\n propValues.push(value)\n }\n })\n return propValues.join(', ')\n },\n\n // TODO: delete custom_properties after changeless typescript refactor\n _getCustomProperties: function (targetElementList: Element[]): Properties {\n const props: Properties = {} // will be deleted\n _each(this._customProperties, (customProperty) => {\n _each(customProperty['event_selectors'], (eventSelector) => {\n const eventElements = document.querySelectorAll(eventSelector)\n _each(eventElements, (eventElement) => {\n if (_includes(targetElementList, eventElement) && shouldCaptureElement(eventElement)) {\n props[customProperty['name']] = this._extractCustomPropertyValue(customProperty)\n }\n })\n })\n })\n return props\n },\n\n _getEventTarget: function (e: Event): Element | null {\n // https://developer.mozilla.org/en-US/docs/Web/API/Event/target#Compatibility_notes\n if (typeof e.target === 'undefined') {\n return (e.srcElement as Element) || null\n } else {\n if ((e.target as HTMLElement)?.shadowRoot) {\n return (e.composedPath()[0] as Element) || null\n }\n return (e.target as Element) || null\n }\n },\n\n _captureEvent: function (e: Event, instance: PostHog, eventName = '$autocapture'): boolean | void {\n /*** Don't mess with this code without running IE8 tests on it ***/\n let target = this._getEventTarget(e)\n if (isTextNode(target)) {\n // defeat Safari bug (see: http://www.quirksmode.org/js/events_properties.html)\n target = (target.parentNode || null) as Element | null\n }\n\n if (eventName === '$autocapture' && e.type === 'click' && e instanceof MouseEvent) {\n if (this.rageclicks?.isRageClick(e.clientX, e.clientY, new Date().getTime())) {\n this._captureEvent(e, instance, '$rageclick')\n }\n }\n\n if (target && shouldCaptureDomEvent(target, e, this.config)) {\n const targetElementList = [target]\n let curEl = target\n while (curEl.parentNode && !isTag(curEl, 'body')) {\n if (isDocumentFragment(curEl.parentNode)) {\n targetElementList.push((curEl.parentNode as any).host)\n curEl = (curEl.parentNode as any).host\n continue\n }\n targetElementList.push(curEl.parentNode as Element)\n curEl = curEl.parentNode as Element\n }\n\n const elementsJson: Properties[] = []\n const autocaptureAugmentProperties: Properties = {}\n let href,\n explicitNoCapture = false\n _each(targetElementList, (el) => {\n const shouldCaptureEl = shouldCaptureElement(el)\n\n // if the element or a parent element is an anchor tag\n // include the href as a property\n if (el.tagName.toLowerCase() === 'a') {\n href = el.getAttribute('href')\n href = shouldCaptureEl && shouldCaptureValue(href) && href\n }\n\n // allow users to programmatically prevent capturing of elements by adding class 'ph-no-capture'\n const classes = getClassName(el).split(' ')\n if (_includes(classes, 'ph-no-capture')) {\n explicitNoCapture = true\n }\n\n elementsJson.push(\n this._getPropertiesFromElement(\n el,\n instance.get_config('mask_all_element_attributes'),\n instance.get_config('mask_all_text')\n )\n )\n\n const augmentProperties = this._getAugmentPropertiesFromElement(el)\n _extend(autocaptureAugmentProperties, augmentProperties)\n })\n\n if (!instance.get_config('mask_all_text')) {\n // if the element is a button or anchor tag get the span text from any\n // children and include it as/with the text property on the parent element\n if (target.tagName.toLowerCase() === 'a' || target.tagName.toLowerCase() === 'button') {\n elementsJson[0]['$el_text'] = getDirectAndNestedSpanText(target)\n } else {\n elementsJson[0]['$el_text'] = getSafeText(target)\n }\n }\n\n if (href) {\n elementsJson[0]['attr__href'] = href\n }\n\n if (explicitNoCapture) {\n return false\n }\n\n const props = _extend(\n this._getDefaultProperties(e.type),\n {\n $elements: elementsJson,\n },\n this._getCustomProperties(targetElementList),\n autocaptureAugmentProperties\n )\n\n instance.capture(eventName, props)\n return true\n }\n },\n\n // only reason is to stub for unit tests\n // since you can't override window.location props\n _navigate: function (href: string): void {\n window.location.href = href\n },\n\n _addDomEventHandlers: function (instance: PostHog): void {\n const handler = (e: Event) => {\n e = e || window.event\n this._captureEvent(e, instance)\n }\n _register_event(document, 'submit', handler, false, true)\n _register_event(document, 'change', handler, false, true)\n _register_event(document, 'click', handler, false, true)\n },\n\n _customProperties: [] as AutoCaptureCustomProperty[],\n rageclicks: null as RageClick | null,\n config: undefined as AutocaptureConfig | undefined,\n\n init: function (instance: PostHog): void {\n if (typeof instance.__autocapture !== 'boolean') {\n this.config = instance.__autocapture\n }\n\n // precompile the regex\n if (this.config?.url_allowlist) {\n this.config.url_allowlist = this.config.url_allowlist.map((url) => new RegExp(url))\n }\n\n this.rageclicks = new RageClick(instance.get_config('rageclick'))\n },\n\n afterDecideResponse: function (response: DecideResponse, instance: PostHog): void {\n this._setIsAutocaptureEnabled(instance)\n const token = instance.get_config('token')\n if (this._initializedTokens.indexOf(token) > -1) {\n logger.log('autocapture already initialized for token \"' + token + '\"')\n return\n }\n\n if (instance.persistence) {\n instance.persistence.register({\n [AUTOCAPTURE_DISABLED_SERVER_SIDE]: !!response['autocapture_opt_out'],\n })\n }\n\n this._initializedTokens.push(token)\n\n if (\n response &&\n response['config'] &&\n response['config']['enable_collect_everything'] &&\n this._isAutocaptureEnabled\n ) {\n // TODO: delete custom_properties after changeless typescript refactor\n if (response['custom_properties']) {\n this._customProperties = response['custom_properties']\n }\n this._addDomEventHandlers(instance)\n } else {\n instance['__autocapture'] = false\n }\n },\n\n // this is a mechanism to ramp up CE with no server-side interaction.\n // when CE is active, every page load results in a decide request. we\n // need to gently ramp this up so we don't overload decide. this decides\n // deterministically if CE is enabled for this project by modding the char\n // value of the project token.\n enabledForProject: function (\n token: string | null | undefined,\n numBuckets: number,\n numEnabledBuckets: number\n ): boolean {\n if (!token) {\n return true\n }\n numBuckets = !_isUndefined(numBuckets) ? numBuckets : 10\n numEnabledBuckets = !_isUndefined(numEnabledBuckets) ? numEnabledBuckets : 10\n let charCodeSum = 0\n for (let i = 0; i < token.length; i++) {\n charCodeSum += token.charCodeAt(i)\n }\n return charCodeSum % numBuckets < numEnabledBuckets\n },\n\n isBrowserSupported: function (): boolean {\n return _isFunction(document.querySelectorAll)\n },\n}\n\n_bind_instance_methods(autocapture)\n_safewrap_instance_methods(autocapture)\n\nexport { autocapture }\n","/**\n * GDPR utils\n *\n * The General Data Protection Regulation (GDPR) is a regulation in EU law on data protection\n * and privacy for all individuals within the European Union. It addresses the export of personal\n * data outside the EU. The GDPR aims primarily to give control back to citizens and residents\n * over their personal data and to simplify the regulatory environment for international business\n * by unifying the regulation within the EU.\n *\n * This set of utilities is intended to enable opt in/out functionality in the PostHog JS SDK.\n * These functions are used internally by the SDK and are not intended to be publicly exposed.\n */\n\nimport { _each, _includes, _isNumber, _isString, window } from './utils'\nimport { cookieStore, localStore, localPlusCookieStore } from './storage'\nimport { GDPROptions, PersistentStore } from './types'\nimport { PostHog } from './posthog-core'\n\n/**\n * A function used to capture a PostHog event (e.g. PostHogLib.capture)\n * @callback captureFunction\n * @param {String} event_name The name of the event. This can be anything the user does - 'Button Click', 'Sign Up', 'Item Purchased', etc.\n * @param {Object} [properties] A set of properties to include with the event you're sending. These describe the user who did the event or details about the event itself.\n * @param {Function} [callback] If provided, the callback function will be called after capturing the event.\n */\n\n/** Public **/\n\nconst GDPR_DEFAULT_PERSISTENCE_PREFIX = '__ph_opt_in_out_'\n\n/**\n * Opt the user in to data capturing and cookies/localstorage for the given token\n * @param {string} token - PostHog project capturing token\n * @param {Object} [options]\n * @param {captureFunction} [options.capture] - function used for capturing a PostHog event to record the opt-in action\n * @param {string} [options.captureEventName] - event name to be used for capturing the opt-in action\n * @param {Object} [options.captureProperties] - set of properties to be captured along with the opt-in action\n * @param {string} [options.persistenceType] Persistence mechanism used - cookie or localStorage\n * @param {string} [options.persistencePrefix=__ph_opt_in_out] - custom prefix to be used in the cookie/localstorage name\n * @param {Number} [options.cookieExpiration] - number of days until the opt-in cookie expires\n * @param {boolean} [options.crossSubdomainCookie] - whether the opt-in cookie is set as cross-subdomain or not\n * @param {boolean} [options.secureCookie] - whether the opt-in cookie is set as secure or not\n */\nexport function optIn(token: string, options: GDPROptions): void {\n _optInOut(true, token, options)\n}\n\n/**\n * Opt the user out of data capturing and cookies/localstorage for the given token\n * @param {string} token - PostHog project capturing token\n * @param {Object} [options]\n * @param {string} [options.persistenceType] Persistence mechanism used - cookie or localStorage\n * @param {string} [options.persistencePrefix=__ph_opt_in_out] - custom prefix to be used in the cookie/localstorage name\n * @param {Number} [options.cookieExpiration] - number of days until the opt-out cookie expires\n * @param {boolean} [options.crossSubdomainCookie] - whether the opt-out cookie is set as cross-subdomain or not\n * @param {boolean} [options.secureCookie] - whether the opt-out cookie is set as secure or not\n */\nexport function optOut(token: string, options: GDPROptions): void {\n _optInOut(false, token, options)\n}\n\n/**\n * Check whether the user has opted in to data capturing and cookies/localstorage for the given token\n * @param {string} token - PostHog project capturing token\n * @param {Object} [options]\n * @param {string} [options.persistenceType] Persistence mechanism used - cookie or localStorage\n * @param {string} [options.persistencePrefix=__ph_opt_in_out] - custom prefix to be used in the cookie/localstorage name\n * @returns {boolean} whether the user has opted in to the given opt type\n */\nexport function hasOptedIn(token: string, options: GDPROptions): boolean {\n return _getStorageValue(token, options) === '1'\n}\n\n/**\n * Check whether the user has opted out of data capturing and cookies/localstorage for the given token\n * @param {string} token - PostHog project capturing token\n * @param {Object} [options]\n * @param {string} [options.persistenceType] Persistence mechanism used - cookie or localStorage\n * @param {string} [options.persistencePrefix=__ph_opt_in_out] - custom prefix to be used in the cookie/localstorage name\n * @param {boolean} [options.respectDnt] - flag to take browser DNT setting into account\n * @returns {boolean} whether the user has opted out of the given opt type\n */\nexport function hasOptedOut(token: string, options: Partial): boolean {\n if (_hasDoNotTrackFlagOn(options)) {\n return true\n }\n return _getStorageValue(token, options) === '0'\n}\n\n/**\n * Clear the user's opt in/out status of data capturing and cookies/localstorage for the given token\n * @param {string} token - PostHog project capturing token\n * @param {Object} [options]\n * @param {string} [options.persistenceType] Persistence mechanism used - cookie or localStorage\n * @param {string} [options.persistencePrefix=__ph_opt_in_out] - custom prefix to be used in the cookie/localstorage name\n * @param {Number} [options.cookieExpiration] - number of days until the opt-in cookie expires\n * @param {boolean} [options.crossSubdomainCookie] - whether the opt-in cookie is set as cross-subdomain or not\n * @param {boolean} [options.secureCookie] - whether the opt-in cookie is set as secure or not\n */\nexport function clearOptInOut(token: string, options: GDPROptions) {\n options = options || {}\n _getStorage(options).remove(_getStorageKey(token, options), !!options.crossSubdomainCookie)\n}\n\n/** Private **/\n\n/**\n * Get storage util\n * @param {Object} [options]\n * @param {string} [options.persistenceType]\n * @returns {object} either cookieStore or localStore\n */\nfunction _getStorage(options: GDPROptions): PersistentStore {\n options = options || {}\n if (options.persistenceType === 'localStorage') {\n return localStore\n }\n if (options.persistenceType === 'localStorage+cookie') {\n return localPlusCookieStore\n }\n return cookieStore\n}\n\n/**\n * Get the name of the cookie that is used for the given opt type (capturing, cookie, etc.)\n * @param {string} token - PostHog project capturing token\n * @param {Object} [options]\n * @param {string} [options.persistencePrefix=__ph_opt_in_out] - custom prefix to be used in the cookie/localstorage name\n * @returns {string} the name of the cookie for the given opt type\n */\nfunction _getStorageKey(token: string, options: GDPROptions) {\n options = options || {}\n return (options.persistencePrefix || GDPR_DEFAULT_PERSISTENCE_PREFIX) + token\n}\n\n/**\n * Get the value of the cookie that is used for the given opt type (capturing, cookie, etc.)\n * @param {string} token - PostHog project capturing token\n * @param {Object} [options]\n * @param {string} [options.persistencePrefix=__ph_opt_in_out] - custom prefix to be used in the cookie/localstorage name\n * @returns {string} the value of the cookie for the given opt type\n */\nfunction _getStorageValue(token: string, options: GDPROptions) {\n return _getStorage(options).get(_getStorageKey(token, options))\n}\n\n/**\n * Check whether the user has set the DNT/doNotTrack setting to true in their browser\n * @param {Object} [options]\n * @param {string} [options.window] - alternate window object to check; used to force various DNT settings in browser tests\n * @param {boolean} [options.respectDnt] - flag to take browser DNT setting into account\n * @returns {boolean} whether the DNT setting is true\n */\nfunction _hasDoNotTrackFlagOn(options: GDPROptions) {\n if (options && options.respectDnt) {\n const win = (options && options.window) || window\n const nav = win['navigator'] || {}\n let hasDntOn = false\n _each(\n [\n nav['doNotTrack'], // standard\n (nav as any)['msDoNotTrack'],\n (win as any)['doNotTrack'],\n ],\n function (dntValue) {\n if (_includes([true, 1, '1', 'yes'], dntValue)) {\n hasDntOn = true\n }\n }\n )\n return hasDntOn\n }\n return false\n}\n\n/**\n * Set cookie/localstorage for the user indicating that they are opted in or out for the given opt type\n * @param {boolean} optValue - whether to opt the user in or out for the given opt type\n * @param {string} token - PostHog project capturing token\n * @param {Object} [options]\n * @param {captureFunction} [options.capture] - function used for capturing a PostHog event to record the opt-in action\n * @param {string} [options.captureEventName] - event name to be used for capturing the opt-in action\n * @param {Object} [options.captureProperties] - set of properties to be captured along with the opt-in action\n * @param {string} [options.persistencePrefix=__ph_opt_in_out] - custom prefix to be used in the cookie/localstorage name\n * @param {Number} [options.cookieExpiration] - number of days until the opt-in cookie expires\n * @param {boolean} [options.crossSubdomainCookie] - whether the opt-in cookie is set as cross-subdomain or not\n * @param {boolean} [options.secureCookie] - whether the opt-in cookie is set as secure or not\n */\nfunction _optInOut(optValue: boolean, token: string, options: GDPROptions) {\n if (!_isString(token) || !token.length) {\n console.error('gdpr.' + (optValue ? 'optIn' : 'optOut') + ' called with an invalid token')\n return\n }\n\n options = options || {}\n\n _getStorage(options).set(\n _getStorageKey(token, options),\n optValue ? 1 : 0,\n _isNumber(options.cookieExpiration) ? options.cookieExpiration : null,\n options.crossSubdomainCookie,\n options.secureCookie\n )\n\n if (options.capture && optValue) {\n // only capture event if opting in (optValue=true)\n options.capture(options.captureEventName || '$opt_in', options.captureProperties || {}, {\n send_instantly: true,\n })\n }\n}\n\nexport function userOptedOut(posthog: PostHog, silenceErrors: boolean | undefined) {\n let optedOut = false\n\n try {\n const token = posthog.get_config('token')\n const respectDnt = posthog.get_config('respect_dnt')\n const persistenceType = posthog.get_config('opt_out_capturing_persistence_type')\n const persistencePrefix = posthog.get_config('opt_out_capturing_cookie_prefix') || undefined\n const win = posthog.get_config('window' as any) as Window | undefined // used to override window during browser tests\n\n if (token) {\n // if there was an issue getting the token, continue method execution as normal\n optedOut = hasOptedOut(token, {\n respectDnt,\n persistenceType,\n persistencePrefix,\n window: win,\n })\n }\n } catch (err) {\n if (!silenceErrors) {\n console.error('Unexpected error when checking capturing opt-out status: ' + err)\n }\n }\n return optedOut\n}\n\n/**\n * Wrap a method with a check for whether the user is opted out of data capturing and cookies/localstorage for the given token\n * If the user has opted out, return early instead of executing the method.\n * If a callback argument was provided, execute it passing the 0 error code.\n * @param {PostHog} posthog - the posthog instance\n * @param {function} method - wrapped method to be executed if the user has not opted out\n * @param silenceErrors\n * @returns {*} the result of executing method OR undefined if the user has opted out\n */\nexport function addOptOutCheck any = (...args: any[]) => any>(\n posthog: PostHog,\n method: M,\n silenceErrors?: boolean\n): M {\n return function (...args) {\n const optedOut = userOptedOut(posthog, silenceErrors)\n\n if (!optedOut) {\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n return method.apply(this, args)\n }\n\n const callback = args[args.length - 1]\n if (typeof callback === 'function') {\n callback(0)\n }\n\n return\n } as M\n}\n","/* eslint camelcase: \"off\" */\nimport { addOptOutCheck } from './gdpr-utils'\nimport { _base64Encode, _copyAndTruncateStrings, _each, _encodeDates, _extend, _info, _isObject } from './utils'\nimport { PostHogConfig, Properties, RequestCallback } from './types'\nimport { PostHog } from './posthog-core'\n\nconst SET_ACTION = '$set'\nconst SET_ONCE_ACTION = '$set_once'\n\n/**\n * PostHog People Object\n * @constructor\n */\nclass PostHogPeople {\n _posthog: PostHog\n\n set: (prop: string | Properties, to?: string, callback?: RequestCallback) => void\n set_once: (prop: string | Properties, to?: string, callback?: RequestCallback) => void\n\n constructor(posthog: PostHog) {\n this._posthog = posthog\n\n /*\n * Set properties on a user record.\n *\n * ### Usage:\n *\n * posthog.people.set('gender', 'm');\n *\n * // or set multiple properties at once\n * posthog.people.set({\n * 'Company': 'Acme',\n * 'Plan': 'Premium',\n * 'Upgrade date': new Date()\n * });\n * // properties can be strings, integers, dates, or lists\n *\n * @param {Object|String} prop If a string, this is the name of the property. If an object, this is an associative array of names and values.\n * @param {*} [to] A value to set on the given property name\n * @param {Function} [callback] If provided, the callback will be called after capturing the event.\n */\n this.set = addOptOutCheck(posthog, (prop: string | Properties, to?: string, callback?: RequestCallback) => {\n const data = this.set_action(prop, to)\n\n // Update current user properties\n this._posthog.setPersonPropertiesForFlags(data['$set'] || {})\n\n if (_isObject(prop)) {\n callback = to as any\n }\n // make sure that the referrer info has been updated and saved\n if (this._get_config('save_referrer')) {\n this._posthog.sessionPersistence.update_referrer_info()\n }\n\n // update $set object with default people properties\n data[SET_ACTION] = _extend(\n {},\n _info.people_properties(),\n this._posthog.sessionPersistence.get_referrer_info(),\n data[SET_ACTION]\n )\n return this._send_request(data, callback)\n })\n\n /*\n * Set properties on a user record, only if they do not yet exist.\n * This will not overwrite previous people property values, unlike\n * people.set().\n *\n * ### Usage:\n *\n * posthog.people.set_once('First Login Date', new Date());\n *\n * // or set multiple properties at once\n * posthog.people.set_once({\n * 'First Login Date': new Date(),\n * 'Starting Plan': 'Premium'\n * });\n *\n * // properties can be strings, integers or dates\n *\n * @param {Object|String} prop If a string, this is the name of the property. If an object, this is an associative array of names and values.\n * @param {*} [to] A value to set on the given property name\n * @param {Function} [callback] If provided, the callback will be called after capturing the event.\n */\n this.set_once = addOptOutCheck(\n posthog,\n (prop: string | Properties, to?: string, callback?: RequestCallback) => {\n const data = this.set_once_action(prop, to)\n if (_isObject(prop)) {\n callback = to as any\n }\n return this._send_request(data, callback)\n }\n )\n }\n\n toString(): string {\n return this._posthog.toString() + '.people'\n }\n\n _send_request(data: Properties, callback?: RequestCallback): Properties {\n data['$token'] = this._get_config('token')\n data['$distinct_id'] = this._posthog.get_distinct_id()\n const device_id = this._posthog.get_property('$device_id')\n const user_id = this._posthog.get_property('$user_id')\n const had_persisted_distinct_id = this._posthog.get_property('$had_persisted_distinct_id')\n if (device_id) {\n data['$device_id'] = device_id\n }\n if (user_id) {\n data['$user_id'] = user_id\n }\n if (had_persisted_distinct_id) {\n data['$had_persisted_distinct_id'] = had_persisted_distinct_id\n }\n\n const date_encoded_data = _encodeDates(data)\n const truncated_data = _copyAndTruncateStrings(\n date_encoded_data,\n this._get_config('properties_string_max_length')\n )\n const json_data = JSON.stringify(date_encoded_data)\n const encoded_data = _base64Encode(json_data)\n\n this._posthog._send_request(\n this._get_config('api_host') + '/engage/',\n { data: encoded_data },\n {},\n this._posthog._prepare_callback(callback, truncated_data) as RequestCallback\n )\n\n return truncated_data\n }\n\n _get_config(conf_var: K): PostHogConfig[K] {\n return this._posthog.get_config(conf_var)\n }\n\n _is_reserved_property(prop: string): boolean {\n return (\n prop === '$distinct_id' ||\n prop === '$token' ||\n prop === '$device_id' ||\n prop === '$user_id' ||\n prop === '$had_persisted_distinct_id'\n )\n }\n\n // Internal methods for posthog.people API.\n // These methods shouldn't involve network I/O.\n private set_action(prop: string | Properties, to?: string): Properties {\n return this.apiActionParser(SET_ACTION, prop, to)\n }\n\n private set_once_action(prop: string | Properties, to?: string): Properties {\n return this.apiActionParser(SET_ONCE_ACTION, prop, to)\n }\n\n private apiActionParser(actionType: '$set' | '$set_once', prop: string | Properties, to?: string): Properties {\n const data: Properties = {}\n const props: Properties = {}\n\n if (_isObject(prop)) {\n _each(prop, (v, k: string) => {\n if (!(this as any)._is_reserved_property(k)) {\n props[k] = v\n }\n })\n } else {\n props[prop] = to\n }\n\n data[actionType] = props\n return data\n }\n}\n\nexport { PostHogPeople }\n","import {\n CONSOLE_LOG_RECORDING_ENABLED_SERVER_SIDE,\n SESSION_RECORDING_ENABLED_SERVER_SIDE,\n SESSION_RECORDING_RECORDER_VERSION_SERVER_SIDE,\n} from '../posthog-persistence'\nimport {\n filterDataURLsFromLargeDataObjects,\n FULL_SNAPSHOT_EVENT_TYPE,\n INCREMENTAL_SNAPSHOT_EVENT_TYPE,\n META_EVENT_TYPE,\n truncateLargeConsoleLogs,\n} from './sessionrecording-utils'\nimport { PostHog } from '../posthog-core'\nimport { DecideResponse, Properties } from '../types'\nimport type {\n KeepIframeSrcFn,\n RecordPlugin,\n SamplingStrategy,\n blockClass,\n eventWithTime,\n hooksParam,\n listenerHandler,\n maskTextClass,\n pluginEvent,\n} from '@rrweb/types'\nimport Config from '../config'\nimport { logger, loadScript } from '../utils'\nimport type { DataURLOptions, MaskInputFn, MaskInputOptions, MaskTextFn, SlimDOMOptions } from 'rrweb-snapshot'\n\nconst BASE_ENDPOINT = '/s/'\n\nexport const RECORDING_IDLE_ACTIVITY_TIMEOUT_MS = 5 * 60 * 1000 // 5 minutes\n\n// NOTE: Importing this type is problematic as we can't safely bundle it to a TS definition so, instead we redefine.\n// import type { record } from 'rrweb2/typings'\n// import type { recordOptions } from 'rrweb/typings/types'\n\nexport type rrwebRecord = {\n (options: recordOptions): listenerHandler\n addCustomEvent: (tag: string, payload: any) => void\n takeFullSnapshot: () => void\n}\n\nexport declare type recordOptions = {\n emit?: (e: T, isCheckout?: boolean) => void\n checkoutEveryNth?: number\n checkoutEveryNms?: number\n blockClass?: blockClass\n blockSelector?: string\n ignoreClass?: string\n maskTextClass?: maskTextClass\n maskTextSelector?: string\n maskAllInputs?: boolean\n maskInputOptions?: MaskInputOptions\n maskInputFn?: MaskInputFn\n maskTextFn?: MaskTextFn\n slimDOMOptions?: SlimDOMOptions | 'all' | true\n ignoreCSSAttributes?: Set\n inlineStylesheet?: boolean\n hooks?: hooksParam\n // packFn?: PackFn\n sampling?: SamplingStrategy\n dataURLOptions?: DataURLOptions\n recordCanvas?: boolean\n recordCrossOriginIframes?: boolean\n recordAfter?: 'DOMContentLoaded' | 'load'\n userTriggeredOnInput?: boolean\n collectFonts?: boolean\n inlineImages?: boolean\n plugins?: RecordPlugin[]\n mousemoveWait?: number\n keepIframeSrcFn?: KeepIframeSrcFn\n // errorHandler?: ErrorHandler\n}\n\n// Copied from rrweb typings to avoid import\nenum IncrementalSource {\n Mutation = 0,\n MouseMove = 1,\n MouseInteraction = 2,\n Scroll = 3,\n ViewportResize = 4,\n Input = 5,\n TouchMove = 6,\n MediaInteraction = 7,\n StyleSheetRule = 8,\n CanvasMutation = 9,\n Font = 10,\n Log = 11,\n Drag = 12,\n StyleDeclaration = 13,\n Selection = 14,\n AdoptedStyleSheet = 15,\n}\n\nconst ACTIVE_SOURCES = [\n IncrementalSource.MouseMove,\n IncrementalSource.MouseInteraction,\n IncrementalSource.Scroll,\n IncrementalSource.ViewportResize,\n IncrementalSource.Input,\n IncrementalSource.TouchMove,\n IncrementalSource.MediaInteraction,\n IncrementalSource.Drag,\n]\n\nexport class SessionRecording {\n instance: PostHog\n captureStarted: boolean\n snapshots: any[]\n emit: boolean\n endpoint: string\n stopRrweb: listenerHandler | undefined\n windowId: string | null\n sessionId: string | null\n receivedDecide: boolean\n rrwebRecord: rrwebRecord | undefined\n recorderVersion?: string\n lastActivityTimestamp: number = Date.now()\n isIdle = false\n\n constructor(instance: PostHog) {\n this.instance = instance\n this.captureStarted = false\n this.snapshots = []\n this.emit = false // Controls whether data is sent to the server or not\n this.endpoint = BASE_ENDPOINT\n this.stopRrweb = undefined\n this.windowId = null\n this.sessionId = null\n this.receivedDecide = false\n }\n\n startRecordingIfEnabled() {\n if (this.isRecordingEnabled()) {\n this.startCaptureAndTrySendingQueuedSnapshots()\n } else {\n this.stopRecording()\n }\n }\n\n started() {\n return this.captureStarted\n }\n\n stopRecording() {\n if (this.captureStarted && this.stopRrweb) {\n this.stopRrweb()\n this.stopRrweb = undefined\n this.captureStarted = false\n }\n }\n\n isRecordingEnabled() {\n const enabled_server_side = !!this.instance.get_property(SESSION_RECORDING_ENABLED_SERVER_SIDE)\n const enabled_client_side = !this.instance.get_config('disable_session_recording')\n return enabled_server_side && enabled_client_side\n }\n\n isConsoleLogCaptureEnabled() {\n const enabled_server_side = !!this.instance.get_property(CONSOLE_LOG_RECORDING_ENABLED_SERVER_SIDE)\n const enabled_client_side = this.instance.get_config('enable_recording_console_log')\n return enabled_client_side ?? enabled_server_side\n }\n\n getRecordingVersion() {\n const recordingVersion_server_side = this.instance.get_property(SESSION_RECORDING_RECORDER_VERSION_SERVER_SIDE)\n const recordingVersion_client_side = this.instance.get_config('session_recording')?.recorderVersion\n return recordingVersion_client_side || recordingVersion_server_side || 'v1'\n }\n\n afterDecideResponse(response: DecideResponse) {\n this.receivedDecide = true\n if (this.instance.persistence) {\n this.instance.persistence.register({\n [SESSION_RECORDING_ENABLED_SERVER_SIDE]: !!response['sessionRecording'],\n [CONSOLE_LOG_RECORDING_ENABLED_SERVER_SIDE]: response.sessionRecording?.consoleLogRecordingEnabled,\n [SESSION_RECORDING_RECORDER_VERSION_SERVER_SIDE]: response.sessionRecording?.recorderVersion,\n })\n }\n if (response.sessionRecording?.endpoint) {\n this.endpoint = response.sessionRecording?.endpoint\n }\n\n if (response.sessionRecording?.recorderVersion) {\n this.recorderVersion = response.sessionRecording.recorderVersion\n }\n this.startRecordingIfEnabled()\n }\n\n startCaptureAndTrySendingQueuedSnapshots() {\n // Only submit data after we've received a decide response to account for\n // changing endpoints and the feature being disabled on the server side.\n if (this.receivedDecide) {\n this.emit = true\n this.snapshots.forEach((properties) => this._captureSnapshot(properties))\n }\n this._startCapture()\n }\n\n _startCapture() {\n // According to the rrweb docs, rrweb is not supported on IE11 and below:\n // \"rrweb does not support IE11 and below because it uses the MutationObserver API which was supported by these browsers.\"\n // https://github.com/rrweb-io/rrweb/blob/master/guide.md#compatibility-note\n //\n // However, MutationObserver does exist on IE11, it just doesn't work well and does not detect all changes.\n // Instead, when we load \"recorder.js\", the first JS error is about \"Object.assign\" being undefined.\n // Thus instead of MutationObserver, we look for this function and block recording if it's undefined.\n if (typeof Object.assign === 'undefined') {\n return\n }\n\n // We do not switch recorder versions midway through a recording.\n if (this.captureStarted || this.instance.get_config('disable_session_recording')) {\n return\n }\n\n this.captureStarted = true\n // We want to ensure the sessionManager is reset if necessary on load of the recorder\n this.instance.sessionManager.checkAndGetSessionAndWindowId()\n\n const recorderJS = this.getRecordingVersion() === 'v2' ? 'recorder-v2.js' : 'recorder.js'\n\n // If recorder.js is already loaded (if array.full.js snippet is used or posthog-js/dist/recorder is\n // imported) or matches the requested recorder version, don't load script. Otherwise, remotely import\n // recorder.js from cdn since it hasn't been loaded.\n if (this.instance.__loaded_recorder_version !== this.getRecordingVersion()) {\n loadScript(\n this.instance.get_config('api_host') + `/static/${recorderJS}?v=${Config.LIB_VERSION}`,\n (err) => {\n if (err) {\n return logger.error(`Could not load ${recorderJS}`, err)\n }\n\n this._onScriptLoaded()\n }\n )\n } else {\n this._onScriptLoaded()\n }\n }\n\n _isInteractiveEvent(event: eventWithTime) {\n return event.type === INCREMENTAL_SNAPSHOT_EVENT_TYPE && ACTIVE_SOURCES.indexOf(event.data?.source) !== -1\n }\n\n _updateWindowAndSessionIds(event: eventWithTime) {\n // Some recording events are triggered by non-user events (e.g. \"X minutes ago\" text updating on the screen).\n // We don't want to extend the session or trigger a new session in these cases. These events are designated by event\n // type -> incremental update, and source -> mutation.\n\n const isUserInteraction = this._isInteractiveEvent(event)\n\n if (!isUserInteraction && !this.isIdle) {\n // We check if the lastActivityTimestamp is old enough to go idle\n if (event.timestamp - this.lastActivityTimestamp > RECORDING_IDLE_ACTIVITY_TIMEOUT_MS) {\n this.isIdle = true\n }\n }\n\n if (isUserInteraction) {\n this.lastActivityTimestamp = event.timestamp\n if (this.isIdle) {\n // Remove the idle state if set and trigger a full snapshot as we will have ingored previous mutations\n this.isIdle = false\n this._tryTakeFullSnapshot()\n }\n }\n\n if (this.isIdle) {\n return\n }\n\n // We only want to extend the session if it is an interactive event.\n const { windowId, sessionId } = this.instance.sessionManager.checkAndGetSessionAndWindowId(\n !isUserInteraction,\n event.timestamp\n )\n\n if (\n [FULL_SNAPSHOT_EVENT_TYPE, META_EVENT_TYPE].indexOf(event.type) === -1 &&\n (this.windowId !== windowId || this.sessionId !== sessionId)\n ) {\n this._tryTakeFullSnapshot()\n }\n this.windowId = windowId\n this.sessionId = sessionId\n }\n\n _tryTakeFullSnapshot(): boolean {\n if (!this.captureStarted) {\n return false\n }\n try {\n this.rrwebRecord?.takeFullSnapshot()\n return true\n } catch (e) {\n // Sometimes a race can occur where the recorder is not fully started yet, so we can't take a full snapshot.\n logger.error('Error taking full snapshot.', e)\n return false\n }\n }\n\n _onScriptLoaded() {\n // rrweb config info: https://github.com/rrweb-io/rrweb/blob/7d5d0033258d6c29599fb08412202d9a2c7b9413/src/record/index.ts#L28\n const sessionRecordingOptions: recordOptions = {\n // select set of rrweb config options we expose to our users\n // see https://github.com/rrweb-io/rrweb/blob/master/guide.md\n blockClass: 'ph-no-capture',\n blockSelector: undefined,\n ignoreClass: 'ph-ignore-input',\n maskTextClass: 'ph-mask',\n maskTextSelector: undefined,\n maskTextFn: undefined,\n maskAllInputs: true,\n maskInputOptions: {},\n maskInputFn: undefined,\n slimDOMOptions: {},\n collectFonts: false,\n inlineStylesheet: true,\n recordCrossOriginIframes: false,\n }\n // We switched from loading all of rrweb to just the record part, but\n // keep backwards compatibility if someone hasn't upgraded PostHog\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n this.rrwebRecord = window.rrweb ? window.rrweb.record : window.rrwebRecord\n\n // only allows user to set our 'allowlisted' options\n const userSessionRecordingOptions = this.instance.get_config('session_recording')\n for (const [key, value] of Object.entries(userSessionRecordingOptions || {})) {\n if (key in sessionRecordingOptions) {\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n sessionRecordingOptions[key] = value\n }\n }\n\n if (!this.rrwebRecord) {\n logger.error(\n 'onScriptLoaded was called but rrwebRecord is not available. This indicates something has gone wrong.'\n )\n return\n }\n\n this.stopRrweb = this.rrwebRecord({\n emit: (event) => {\n this.onRRwebEmit(event)\n },\n plugins:\n (window as any).rrwebConsoleRecord && this.isConsoleLogCaptureEnabled()\n ? [(window as any).rrwebConsoleRecord.getRecordConsolePlugin()]\n : [],\n ...sessionRecordingOptions,\n })\n\n // :TRICKY: rrweb does not capture navigation within SPA-s, so hook into our $pageview events to get access to all events.\n // Dropping the initial event is fine (it's always captured by rrweb).\n this.instance._addCaptureHook((eventName) => {\n // If anything could go wrong here it has the potential to block the main loop so we catch all errors.\n try {\n if (eventName === '$pageview') {\n this.rrwebRecord?.addCustomEvent('$pageview', { href: window.location.href })\n }\n } catch (e) {\n logger.error('Could not add $pageview to rrweb session', e)\n }\n })\n\n // We reset the last activity timestamp, resetting the idle timer\n this.lastActivityTimestamp = Date.now()\n this.isIdle = false\n }\n\n onRRwebEmit(event: eventWithTime) {\n event = truncateLargeConsoleLogs(\n filterDataURLsFromLargeDataObjects(event) as pluginEvent<{ payload: string[] }>\n ) as eventWithTime\n\n this._updateWindowAndSessionIds(event)\n\n if (this.isIdle) {\n // When in an idle state we keep recording, but don't capture the events\n return\n }\n\n const properties = {\n $snapshot_data: event,\n $session_id: this.sessionId,\n $window_id: this.windowId,\n }\n\n this.instance._captureMetrics.incr('rrweb-record')\n this.instance._captureMetrics.incr(`rrweb-record-${event.type}`)\n\n if (this.emit) {\n this._captureSnapshot(properties)\n } else {\n this.snapshots.push(properties)\n }\n }\n\n _captureSnapshot(properties: Properties) {\n // :TRICKY: Make sure we batch these requests, use a custom endpoint and don't truncate the strings.\n this.instance.capture('$snapshot', properties, {\n transport: 'XHR',\n method: 'POST',\n endpoint: this.endpoint,\n _noTruncate: true,\n _batchKey: 'sessionRecording',\n _metrics: {\n rrweb_full_snapshot: properties.$snapshot_data.type === FULL_SNAPSHOT_EVENT_TYPE,\n },\n })\n }\n}\n","import { _base64Encode, _entries, _extend } from './utils'\nimport { PostHog } from './posthog-core'\nimport {\n DecideResponse,\n FeatureFlagsCallback,\n EarlyAccessFeatureCallback,\n EarlyAccessFeatureResponse,\n Properties,\n JsonType,\n RequestCallback,\n} from './types'\nimport {\n PERSISTENCE_EARLY_ACCESS_FEATURES,\n PostHogPersistence,\n ENABLED_FEATURE_FLAGS,\n STORED_GROUP_PROPERTIES_KEY,\n STORED_PERSON_PROPERTIES_KEY,\n} from './posthog-persistence'\n\nconst PERSISTENCE_ACTIVE_FEATURE_FLAGS = '$active_feature_flags'\nconst PERSISTENCE_OVERRIDE_FEATURE_FLAGS = '$override_feature_flags'\nconst PERSISTENCE_FEATURE_FLAG_PAYLOADS = '$feature_flag_payloads'\n\nexport const filterActiveFeatureFlags = (featureFlags?: Record) => {\n const activeFeatureFlags: Record = {}\n for (const [key, value] of _entries(featureFlags || {})) {\n if (value) {\n activeFeatureFlags[key] = value\n }\n }\n return activeFeatureFlags\n}\n\nexport const parseFeatureFlagDecideResponse = (\n response: Partial,\n persistence: PostHogPersistence,\n currentFlags: Record = {},\n currentFlagPayloads: Record = {}\n) => {\n const flags = response['featureFlags']\n const flagPayloads = response['featureFlagPayloads']\n if (flags) {\n // using the v1 api\n if (Array.isArray(flags)) {\n const $enabled_feature_flags: Record = {}\n if (flags) {\n for (let i = 0; i < flags.length; i++) {\n $enabled_feature_flags[flags[i]] = true\n }\n }\n persistence &&\n persistence.register({\n [PERSISTENCE_ACTIVE_FEATURE_FLAGS]: flags,\n [ENABLED_FEATURE_FLAGS]: $enabled_feature_flags,\n })\n } else {\n // using the v2+ api\n let newFeatureFlags = flags\n let newFeatureFlagPayloads = flagPayloads\n if (response.errorsWhileComputingFlags) {\n // if not all flags were computed, we upsert flags instead of replacing them\n newFeatureFlags = { ...currentFlags, ...newFeatureFlags }\n newFeatureFlagPayloads = { ...currentFlagPayloads, ...newFeatureFlagPayloads }\n }\n persistence &&\n persistence.register({\n [PERSISTENCE_ACTIVE_FEATURE_FLAGS]: Object.keys(filterActiveFeatureFlags(newFeatureFlags)),\n [ENABLED_FEATURE_FLAGS]: newFeatureFlags || {},\n [PERSISTENCE_FEATURE_FLAG_PAYLOADS]: newFeatureFlagPayloads || {},\n })\n }\n }\n}\n\nexport class PostHogFeatureFlags {\n instance: PostHog\n _override_warning: boolean\n flagCallReported: Record\n featureFlagEventHandlers: FeatureFlagsCallback[]\n reloadFeatureFlagsQueued: boolean\n reloadFeatureFlagsInAction: boolean\n $anon_distinct_id: string | undefined\n\n constructor(instance: PostHog) {\n this.instance = instance\n this._override_warning = false\n this.flagCallReported = {}\n this.featureFlagEventHandlers = []\n\n this.reloadFeatureFlagsQueued = false\n this.reloadFeatureFlagsInAction = false\n }\n\n getFlags(): string[] {\n return Object.keys(this.getFlagVariants())\n }\n\n getFlagVariants(): Record {\n const enabledFlags = this.instance.get_property(ENABLED_FEATURE_FLAGS)\n const overriddenFlags = this.instance.get_property(PERSISTENCE_OVERRIDE_FEATURE_FLAGS)\n if (!overriddenFlags) {\n return enabledFlags || {}\n }\n\n const finalFlags = _extend({}, enabledFlags)\n const overriddenKeys = Object.keys(overriddenFlags)\n for (let i = 0; i < overriddenKeys.length; i++) {\n if (overriddenFlags[overriddenKeys[i]] === false) {\n delete finalFlags[overriddenKeys[i]]\n } else {\n finalFlags[overriddenKeys[i]] = overriddenFlags[overriddenKeys[i]]\n }\n }\n if (!this._override_warning) {\n console.warn('[PostHog] Overriding feature flags!', {\n enabledFlags,\n overriddenFlags,\n finalFlags,\n })\n this._override_warning = true\n }\n return finalFlags\n }\n\n getFlagPayloads(): Record {\n const flagPayloads = this.instance.get_property(PERSISTENCE_FEATURE_FLAG_PAYLOADS)\n return flagPayloads || {}\n }\n\n /**\n * Reloads feature flags asynchronously.\n *\n * Constraints:\n *\n * 1. Avoid parallel requests\n * 2. Delay a few milliseconds after each reloadFeatureFlags call to batch subsequent changes together\n * 3. Don't call this during initial load (as /decide will be called instead), see posthog-core.js\n */\n reloadFeatureFlags(): void {\n if (!this.reloadFeatureFlagsQueued) {\n this.reloadFeatureFlagsQueued = true\n this._startReloadTimer()\n }\n }\n\n setAnonymousDistinctId(anon_distinct_id: string): void {\n this.$anon_distinct_id = anon_distinct_id\n }\n\n setReloadingPaused(isPaused: boolean): void {\n this.reloadFeatureFlagsInAction = isPaused\n }\n\n resetRequestQueue(): void {\n this.reloadFeatureFlagsQueued = false\n }\n\n _startReloadTimer(): void {\n if (this.reloadFeatureFlagsQueued && !this.reloadFeatureFlagsInAction) {\n setTimeout(() => {\n if (!this.reloadFeatureFlagsInAction && this.reloadFeatureFlagsQueued) {\n this.reloadFeatureFlagsQueued = false\n this._reloadFeatureFlagsRequest()\n }\n }, 5)\n }\n }\n\n _reloadFeatureFlagsRequest(): void {\n this.setReloadingPaused(true)\n const token = this.instance.get_config('token')\n const personProperties = this.instance.get_property(STORED_PERSON_PROPERTIES_KEY)\n const groupProperties = this.instance.get_property(STORED_GROUP_PROPERTIES_KEY)\n const json_data = JSON.stringify({\n token: token,\n distinct_id: this.instance.get_distinct_id(),\n groups: this.instance.getGroups(),\n $anon_distinct_id: this.$anon_distinct_id,\n person_properties: personProperties,\n group_properties: groupProperties,\n })\n\n const encoded_data = _base64Encode(json_data)\n this.instance._send_request(\n this.instance.get_config('api_host') + '/decide/?v=3',\n { data: encoded_data },\n { method: 'POST' },\n this.instance._prepare_callback((response) => {\n // reset anon_distinct_id after at least a single request with it\n // makes it through\n this.$anon_distinct_id = undefined\n this.receivedFeatureFlags(response as DecideResponse)\n\n // :TRICKY: Reload - start another request if queued!\n this.setReloadingPaused(false)\n this._startReloadTimer()\n }) as RequestCallback\n )\n }\n\n /*\n * Get feature flag's value for user.\n *\n * ### Usage:\n *\n * if(posthog.getFeatureFlag('my-flag') === 'some-variant') { // do something }\n *\n * @param {Object|String} key Key of the feature flag.\n * @param {Object|String} options (optional) If {send_event: false}, we won't send an $feature_flag_call event to PostHog.\n */\n getFeatureFlag(key: string, options: { send_event?: boolean } = {}): boolean | string {\n if (!this.getFlags()) {\n console.warn('getFeatureFlag for key \"' + key + '\" failed. Feature flags didn\\'t load in time.')\n return false\n }\n const flagValue = this.getFlagVariants()[key]\n if ((options.send_event || !('send_event' in options)) && !this.flagCallReported[key]) {\n this.flagCallReported[key] = true\n this.instance.capture('$feature_flag_called', { $feature_flag: key, $feature_flag_response: flagValue })\n }\n return flagValue\n }\n\n getFeatureFlagPayload(key: string): JsonType {\n const payloads = this.getFlagPayloads()\n return payloads[key]\n }\n\n /*\n * See if feature flag is enabled for user.\n *\n * ### Usage:\n *\n * if(posthog.isFeatureEnabled('beta-feature')) { // do something }\n *\n * @param {Object|String} key Key of the feature flag.\n * @param {Object|String} options (optional) If {send_event: false}, we won't send an $feature_flag_call event to PostHog.\n */\n isFeatureEnabled(key: string, options: { send_event?: boolean } = {}): boolean {\n if (!this.getFlags()) {\n console.warn('isFeatureEnabled for key \"' + key + '\" failed. Feature flags didn\\'t load in time.')\n return false\n }\n return !!this.getFeatureFlag(key, options)\n }\n\n addFeatureFlagsHandler(handler: FeatureFlagsCallback): void {\n this.featureFlagEventHandlers.push(handler)\n }\n\n removeFeatureFlagsHandler(handler: FeatureFlagsCallback): void {\n this.featureFlagEventHandlers = this.featureFlagEventHandlers.filter((h) => h !== handler)\n }\n\n receivedFeatureFlags(response: Partial): void {\n this.instance.decideEndpointWasHit = true\n const currentFlags = this.getFlagVariants()\n const currentFlagPayloads = this.getFlagPayloads()\n parseFeatureFlagDecideResponse(response, this.instance.persistence, currentFlags, currentFlagPayloads)\n this._fireFeatureFlagsCallbacks()\n }\n\n /*\n * Override feature flags for debugging.\n *\n * ### Usage:\n *\n * - posthog.feature_flags.override(false)\n * - posthog.feature_flags.override(['beta-feature'])\n * - posthog.feature_flags.override({'beta-feature': 'variant', 'other-feature': True})\n *\n * @param {Object|Array|String} flags Flags to override with.\n */\n override(flags: boolean | string[] | Record): void {\n this._override_warning = false\n\n if (flags === false) {\n this.instance.persistence.unregister(PERSISTENCE_OVERRIDE_FEATURE_FLAGS)\n } else if (Array.isArray(flags)) {\n const flagsObj: Record = {}\n for (let i = 0; i < flags.length; i++) {\n flagsObj[flags[i]] = true\n }\n this.instance.persistence.register({ [PERSISTENCE_OVERRIDE_FEATURE_FLAGS]: flagsObj })\n } else {\n this.instance.persistence.register({ [PERSISTENCE_OVERRIDE_FEATURE_FLAGS]: flags })\n }\n }\n /*\n * Register an event listener that runs when feature flags become available or when they change.\n * If there are flags, the listener is called immediately in addition to being called on future changes.\n *\n * ### Usage:\n *\n * posthog.onFeatureFlags(function(featureFlags) { // do something })\n *\n * @param {Function} [callback] The callback function will be called once the feature flags are ready or when they are updated.\n * It'll return a list of feature flags enabled for the user.\n * @returns {Function} A function that can be called to unsubscribe the listener. Used by useEffect when the component unmounts.\n */\n onFeatureFlags(callback: FeatureFlagsCallback): () => void {\n this.addFeatureFlagsHandler(callback)\n if (this.instance.decideEndpointWasHit) {\n const { flags, flagVariants } = this._prepareFeatureFlagsForCallbacks()\n callback(flags, flagVariants)\n }\n return () => this.removeFeatureFlagsHandler(callback)\n }\n\n updateEarlyAccessFeatureEnrollment(key: string, isEnrolled: boolean): void {\n const enrollmentPersonProp = {\n [`$feature_enrollment/${key}`]: isEnrolled,\n }\n this.instance.capture('$feature_enrollment_update', {\n $feature_flag: key,\n $feature_enrollment: isEnrolled,\n $set: enrollmentPersonProp,\n })\n this.setPersonPropertiesForFlags(enrollmentPersonProp, false)\n\n const newFlags = { ...this.getFlagVariants(), [key]: isEnrolled }\n this.instance.persistence.register({\n [PERSISTENCE_ACTIVE_FEATURE_FLAGS]: Object.keys(filterActiveFeatureFlags(newFlags)),\n [ENABLED_FEATURE_FLAGS]: newFlags,\n })\n this._fireFeatureFlagsCallbacks()\n }\n\n getEarlyAccessFeatures(callback: EarlyAccessFeatureCallback, force_reload = false): void {\n const existing_early_access_features = this.instance.get_property(PERSISTENCE_EARLY_ACCESS_FEATURES)\n\n if (!existing_early_access_features || force_reload) {\n this.instance._send_request(\n `${this.instance.get_config('api_host')}/api/early_access_features/?token=${this.instance.get_config(\n 'token'\n )}`,\n {},\n { method: 'GET' },\n (response) => {\n const earlyAccessFeatures = (response as EarlyAccessFeatureResponse).earlyAccessFeatures\n this.instance.persistence.register({ [PERSISTENCE_EARLY_ACCESS_FEATURES]: earlyAccessFeatures })\n return callback(earlyAccessFeatures)\n }\n )\n } else {\n return callback(existing_early_access_features)\n }\n }\n\n _prepareFeatureFlagsForCallbacks(): { flags: string[]; flagVariants: Record } {\n const flags = this.getFlags()\n const flagVariants = this.getFlagVariants()\n\n // Return truthy\n const truthyFlags = flags.filter((flag) => flagVariants[flag])\n const truthyFlagVariants = Object.keys(flagVariants)\n .filter((variantKey) => flagVariants[variantKey])\n .reduce((res: Record, key) => {\n res[key] = flagVariants[key]\n return res\n }, {})\n\n return {\n flags: truthyFlags,\n flagVariants: truthyFlagVariants,\n }\n }\n\n _fireFeatureFlagsCallbacks(): void {\n const { flags, flagVariants } = this._prepareFeatureFlagsForCallbacks()\n this.featureFlagEventHandlers.forEach((handler) => handler(flags, flagVariants))\n }\n\n /**\n * Set override person properties for feature flags.\n * This is used when dealing with new persons / where you don't want to wait for ingestion\n * to update user properties.\n */\n setPersonPropertiesForFlags(properties: Properties, reloadFeatureFlags = true): void {\n // Get persisted person properties\n const existingProperties = this.instance.get_property(STORED_PERSON_PROPERTIES_KEY) || {}\n\n this.instance.register({\n [STORED_PERSON_PROPERTIES_KEY]: {\n ...existingProperties,\n ...properties,\n },\n })\n\n if (reloadFeatureFlags) {\n this.instance.reloadFeatureFlags()\n }\n }\n\n resetPersonPropertiesForFlags(): void {\n this.instance.unregister(STORED_PERSON_PROPERTIES_KEY)\n }\n\n /**\n * Set override group properties for feature flags.\n * This is used when dealing with new groups / where you don't want to wait for ingestion\n * to update properties.\n * Takes in an object, the key of which is the group type.\n * For example:\n * setGroupPropertiesForFlags({'organization': { name: 'CYZ', employees: '11' } })\n */\n setGroupPropertiesForFlags(properties: { [type: string]: Properties }, reloadFeatureFlags = true): void {\n // Get persisted group properties\n const existingProperties = this.instance.get_property(STORED_GROUP_PROPERTIES_KEY) || {}\n\n if (Object.keys(existingProperties).length !== 0) {\n Object.keys(existingProperties).forEach((groupType) => {\n existingProperties[groupType] = {\n ...existingProperties[groupType],\n ...properties[groupType],\n }\n delete properties[groupType]\n })\n }\n\n this.instance.register({\n [STORED_GROUP_PROPERTIES_KEY]: {\n ...existingProperties,\n ...properties,\n },\n })\n\n if (reloadFeatureFlags) {\n this.instance.reloadFeatureFlags()\n }\n }\n\n resetGroupPropertiesForFlags(group_type?: string): void {\n if (group_type) {\n const existingProperties = this.instance.get_property(STORED_GROUP_PROPERTIES_KEY) || {}\n this.instance.register({\n [STORED_GROUP_PROPERTIES_KEY]: { ...existingProperties, [group_type]: {} },\n })\n } else {\n this.instance.unregister(STORED_GROUP_PROPERTIES_KEY)\n }\n }\n}\n","import type { pluginEvent } from '@rrweb/types'\n\nexport const replacementImageURI =\n 'data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTYiIGhlaWdodD0iMTYiIHZpZXdCb3g9IjAgMCAxNiAxNiIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHJlY3Qgd2lkdGg9IjE2IiBoZWlnaHQ9IjE2IiBmaWxsPSJibGFjayIvPgo8cGF0aCBkPSJNOCAwSDE2TDAgMTZWOEw4IDBaIiBmaWxsPSIjMkQyRDJEIi8+CjxwYXRoIGQ9Ik0xNiA4VjE2SDhMMTYgOFoiIGZpbGw9IiMyRDJEMkQiLz4KPC9zdmc+Cg=='\n\nexport const FULL_SNAPSHOT_EVENT_TYPE = 2\nexport const META_EVENT_TYPE = 4\nexport const INCREMENTAL_SNAPSHOT_EVENT_TYPE = 3\nexport const PLUGIN_EVENT_TYPE = 6\nexport const MUTATION_SOURCE_TYPE = 0\n\n/*\n * Check whether a data payload is nearing 5mb. If it is, it checks the data for\n * data URIs (the likely culprit for large payloads). If it finds data URIs, it either replaces\n * it with a generic image (if it's an image) or removes it.\n * @data {object} the rr-web data object\n * @returns {object} the rr-web data object with data uris filtered out\n */\nexport function filterDataURLsFromLargeDataObjects(data: Record): Record {\n if (data && typeof data === 'object') {\n let stringifiedData = JSON.stringify(data)\n // String length of 5000000 is an approximation of 5mb\n // Note: with compression, this limit may be able to be increased\n // but we're assuming most of the size is from a data uri which\n // is unlikely to be compressed further\n if (stringifiedData.length > 5000000) {\n // Regex that matches the pattern for a dataURI with the shape 'data:{mime type};{encoding},{data}'. It:\n // 1) Checks if the pattern starts with 'data:' (potentially, not at the start of the string)\n // 2) Extracts the mime type of the data uri in the first group\n // 3) Determines when the data URI ends.Depending on if it's used in the src tag or css, it can end with a ) or \"\n const dataURIRegex = /data:([\\w\\/\\-\\.]+);(\\w+),([^)\"]*)/gim\n const matches = stringifiedData.matchAll(dataURIRegex)\n for (const match of matches) {\n if (match[1].toLocaleLowerCase().slice(0, 6) === 'image/') {\n stringifiedData = stringifiedData.replace(match[0], replacementImageURI)\n } else {\n stringifiedData = stringifiedData.replace(match[0], '')\n }\n }\n }\n return JSON.parse(stringifiedData)\n }\n return data\n}\n\nexport const CONSOLE_LOG_PLUGIN_NAME = 'rrweb/console@1' // The name of the rr-web plugin that emits console logs\n\n// Console logs can be really large. This function truncates large logs\n// It's a simple function that just truncates long strings.\n// TODO: Ideally this function would have better handling of objects + lists,\n// so they could still be rendered in a pretty way after truncation.\nexport function truncateLargeConsoleLogs(event: pluginEvent<{ payload: string[] }>) {\n const MAX_STRING_SIZE = 2000 // Maximum number of characters allowed in a string\n const MAX_STRINGS_PER_LOG = 10 // A log can consist of multiple strings (e.g. consol.log('string1', 'string2'))\n\n if (\n event &&\n typeof event === 'object' &&\n event.type === PLUGIN_EVENT_TYPE &&\n typeof event.data === 'object' &&\n event.data.plugin === CONSOLE_LOG_PLUGIN_NAME\n ) {\n // Note: event.data.payload.payload comes from rr-web, and is an array of strings\n if (event.data.payload.payload.length > MAX_STRINGS_PER_LOG) {\n event.data.payload.payload = event.data.payload.payload.slice(0, MAX_STRINGS_PER_LOG)\n event.data.payload.payload.push('...[truncated]')\n }\n const updatedPayload = []\n for (let i = 0; i < event.data.payload.payload.length; i++) {\n if (\n event.data.payload.payload[i] && // Value can be null\n event.data.payload.payload[i].length > MAX_STRING_SIZE\n ) {\n updatedPayload.push(event.data.payload.payload[i].slice(0, MAX_STRING_SIZE) + '...[truncated]')\n } else {\n updatedPayload.push(event.data.payload.payload[i])\n }\n }\n event.data.payload.payload = updatedPayload\n return event\n }\n return event\n}\n","import { isLocalhost, logger } from '../utils'\nimport { PostHog } from '../posthog-core'\nimport { DecideResponse, NetworkRequest } from '../types'\n\nconst PERFORMANCE_EVENTS_MAPPING: { [key: string]: number } = {\n // BASE_PERFORMANCE_EVENT_COLUMNS\n entryType: 0,\n timeOrigin: 1,\n name: 2,\n\n // RESOURCE_EVENT_COLUMNS\n startTime: 3,\n redirectStart: 4,\n redirectEnd: 5,\n workerStart: 6,\n fetchStart: 7,\n domainLookupStart: 8,\n domainLookupEnd: 9,\n connectStart: 10,\n secureConnectionStart: 11,\n connectEnd: 12,\n requestStart: 13,\n responseStart: 14,\n responseEnd: 15,\n decodedBodySize: 16,\n encodedBodySize: 17,\n initiatorType: 18,\n nextHopProtocol: 19,\n renderBlockingStatus: 20,\n responseStatus: 21,\n transferSize: 22,\n\n // LARGEST_CONTENTFUL_PAINT_EVENT_COLUMNS\n element: 23,\n renderTime: 24,\n loadTime: 25,\n size: 26,\n id: 27,\n url: 28,\n\n // NAVIGATION_EVENT_COLUMNS\n domComplete: 29,\n domContentLoadedEvent: 30,\n domInteractive: 31,\n loadEventEnd: 32,\n loadEventStart: 33,\n redirectCount: 34,\n navigationType: 35,\n unloadEventEnd: 36,\n unloadEventStart: 37,\n\n // Added after v1\n duration: 39,\n timestamp: 40,\n\n // NOTE: CURRENTLY UNSUPPORTED\n // EVENT_TIMING_EVENT_COLUMNS\n // processingStart: null,\n // processingEnd: null,\n\n // MARK_AND_MEASURE_EVENT_COLUMNS\n // detail: null,\n}\n\nconst ENTRY_TYPES_TO_OBSERVE = [\n // 'event', // This is too noisy as it covers all browser events\n 'first-input',\n // 'mark', // Mark is used too liberally. We would need to filter for specific marks\n // 'measure', // Measure is used too liberally. We would need to filter for specific measures\n 'navigation',\n 'paint',\n 'resource',\n]\n\nconst PERFORMANCE_INGESTION_ENDPOINT = '/e/'\n// Don't monitor posthog paths because then events cause performance events which are events and the snake eats its tail 😱\nconst POSTHOG_PATHS_TO_IGNORE = ['/s/', PERFORMANCE_INGESTION_ENDPOINT]\n\nexport class WebPerformanceObserver {\n instance: PostHog\n remoteEnabled: boolean | undefined\n observer: PerformanceObserver | undefined\n\n // Util to help developers working on this feature manually override\n _forceAllowLocalhost = false\n\n constructor(instance: PostHog) {\n this.instance = instance\n }\n\n startObservingIfEnabled() {\n if (this.isEnabled()) {\n this.startObserving()\n } else {\n this.stopObserving()\n }\n }\n\n startObserving() {\n if (this.observer) {\n return\n }\n\n if (window?.PerformanceObserver?.supportedEntryTypes === undefined) {\n logger.log(\n 'PostHog Performance observer not started because PerformanceObserver is not supported by this browser.'\n )\n return\n }\n\n if (isLocalhost() && !this._forceAllowLocalhost) {\n logger.log('PostHog Peformance observer not started because we are on localhost.')\n return\n }\n\n try {\n // compat checked above with early return\n // eslint-disable-next-line compat/compat\n this.observer = new PerformanceObserver((list) => {\n list.getEntries().forEach((entry) => {\n this._capturePerformanceEvent(entry)\n })\n })\n\n // compat checked above with early return\n // eslint-disable-next-line compat/compat\n const entryTypes = PerformanceObserver.supportedEntryTypes.filter((x) => ENTRY_TYPES_TO_OBSERVE.includes(x))\n\n entryTypes.forEach((entryType) => {\n this.observer?.observe({ type: entryType, buffered: true })\n })\n } catch (e) {\n console.error('PostHog failed to start performance observer', e)\n this.stopObserving()\n }\n }\n\n stopObserving() {\n if (this.observer) {\n this.observer.disconnect()\n this.observer = undefined\n }\n }\n\n isObserving() {\n return !!this.observer\n }\n\n isEnabled() {\n return this.instance.get_config('capture_performance') ?? this.remoteEnabled ?? false\n }\n\n afterDecideResponse(response: DecideResponse) {\n this.remoteEnabled = response.capturePerformance || false\n if (this.isEnabled()) {\n this.startObserving()\n }\n }\n\n _capturePerformanceEvent(event: PerformanceEntry) {\n // NOTE: We don't want to capture our own request events.\n\n if (event.name.indexOf(this.instance.get_config('api_host')) === 0) {\n const path = event.name.replace(this.instance.get_config('api_host'), '')\n\n if (POSTHOG_PATHS_TO_IGNORE.find((x) => path.indexOf(x) === 0)) {\n return\n }\n }\n\n // NOTE: This is minimal atm but will include more options when we move to the\n // built-in rrweb network recorder\n let networkRequest: NetworkRequest | null | undefined = {\n url: event.name,\n }\n\n const userSessionRecordingOptions = this.instance.get_config('session_recording')\n\n if (userSessionRecordingOptions.maskNetworkRequestFn) {\n networkRequest = userSessionRecordingOptions.maskNetworkRequestFn(networkRequest)\n }\n\n if (!networkRequest) {\n return\n }\n\n const eventJson = event.toJSON()\n eventJson.name = networkRequest.url\n const properties: { [key: number]: any } = {}\n // kudos to sentry javascript sdk for excellent background on why to use Date.now() here\n // https://github.com/getsentry/sentry-javascript/blob/e856e40b6e71a73252e788cd42b5260f81c9c88e/packages/utils/src/time.ts#L70\n // can't start observer if performance.now() is not available\n // eslint-disable-next-line compat/compat\n const timeOrigin = Math.floor(Date.now() - performance.now())\n properties[PERFORMANCE_EVENTS_MAPPING['timeOrigin']] = timeOrigin\n // clickhouse can't ingest timestamps that are floats\n // (in this case representing fractions of a millisecond we don't care about anyway)\n properties[PERFORMANCE_EVENTS_MAPPING['timestamp']] = Math.floor(timeOrigin + event.startTime)\n for (const key in PERFORMANCE_EVENTS_MAPPING) {\n if (eventJson[key] !== undefined) {\n properties[PERFORMANCE_EVENTS_MAPPING[key]] = eventJson[key]\n }\n }\n\n this.capturePerformanceEvent(properties)\n\n if (exposesServerTiming(event)) {\n for (const timing of event.serverTiming || []) {\n this.capturePerformanceEvent({\n [PERFORMANCE_EVENTS_MAPPING['timeOrigin']]: timeOrigin,\n [PERFORMANCE_EVENTS_MAPPING['timestamp']]: Math.floor(timeOrigin + event.startTime),\n [PERFORMANCE_EVENTS_MAPPING['name']]: timing.name,\n [PERFORMANCE_EVENTS_MAPPING['duration']]: timing.duration,\n // the spec has a closed list of possible types\n // https://developer.mozilla.org/en-US/docs/Web/API/PerformanceEntry/entryType\n // but, we need to know this was a server timing so that we know to\n // match it to the appropriate navigation or resource timing\n // that matching will have to be on timestamp and $current_url\n [PERFORMANCE_EVENTS_MAPPING['entryType']]: 'serverTiming',\n })\n }\n }\n }\n\n /**\n * :TRICKY: Make sure we batch these requests, and don't truncate the strings.\n */\n private capturePerformanceEvent(properties: { [key: number]: any }) {\n const timestamp = properties[PERFORMANCE_EVENTS_MAPPING['timestamp']]\n\n this.instance.sessionRecording?.onRRwebEmit({\n type: 6, // EventType.Plugin,\n data: {\n plugin: 'posthog/network@1',\n payload: properties,\n },\n timestamp,\n })\n\n // this.instance.capture('$performance_event', properties, {\n // transport: 'XHR',\n // method: 'POST',\n // endpoint: PERFORMANCE_INGESTION_ENDPOINT,\n // _noTruncate: true,\n // _batchKey: 'performanceEvent',\n // })\n }\n}\n\n/**\n * Check if this PerformanceEntry is either a PerformanceResourceTiming or a PerformanceNavigationTiming\n * NB PerformanceNavigationTiming extends PerformanceResourceTiming\n * Here we don't care which interface it implements as both expose `serverTimings`\n */\nconst exposesServerTiming = (event: PerformanceEntry): event is PerformanceResourceTiming =>\n event.entryType === 'navigation' || event.entryType === 'resource'\n","import { autocapture } from './autocapture'\nimport { _base64Encode, loadScript } from './utils'\nimport { PostHog } from './posthog-core'\nimport { Compression, DecideResponse } from './types'\nimport { STORED_GROUP_PROPERTIES_KEY, STORED_PERSON_PROPERTIES_KEY } from './posthog-persistence'\n\nexport class Decide {\n instance: PostHog\n\n constructor(instance: PostHog) {\n this.instance = instance\n // don't need to wait for `decide` to return if flags were provided on initialisation\n this.instance.decideEndpointWasHit = this.instance._hasBootstrappedFeatureFlags()\n }\n\n call(): void {\n /*\n Calls /decide endpoint to fetch options for autocapture, session recording, feature flags & compression.\n */\n const json_data = JSON.stringify({\n token: this.instance.get_config('token'),\n distinct_id: this.instance.get_distinct_id(),\n groups: this.instance.getGroups(),\n person_properties: this.instance.get_property(STORED_PERSON_PROPERTIES_KEY),\n group_properties: this.instance.get_property(STORED_GROUP_PROPERTIES_KEY),\n })\n\n const encoded_data = _base64Encode(json_data)\n this.instance._send_request(\n `${this.instance.get_config('api_host')}/decide/?v=3`,\n { data: encoded_data, verbose: true },\n { method: 'POST' },\n (response) => this.parseDecideResponse(response as DecideResponse)\n )\n }\n\n parseDecideResponse(response: DecideResponse): void {\n if (response?.status === 0) {\n console.error('Failed to fetch feature flags from PostHog.')\n return\n }\n this.instance.decideEndpointWasHit = true\n if (!(document && document.body)) {\n console.log('document not ready yet, trying again in 500 milliseconds...')\n setTimeout(() => {\n this.parseDecideResponse(response)\n }, 500)\n return\n }\n\n this.instance.toolbar.afterDecideResponse(response)\n this.instance.sessionRecording?.afterDecideResponse(response)\n autocapture.afterDecideResponse(response, this.instance)\n this.instance.webPerformance?.afterDecideResponse(response)\n this.instance.exceptionAutocapture?.afterDecideResponse(response)\n\n this.instance.featureFlags.receivedFeatureFlags(response)\n\n this.instance['compression'] = {}\n if (response['supportedCompression'] && !this.instance.get_config('disable_compression')) {\n const compression: Partial> = {}\n for (const method of response['supportedCompression']) {\n compression[method] = true\n }\n this.instance['compression'] = compression\n }\n\n if (response['siteApps']) {\n if (this.instance.get_config('opt_in_site_apps')) {\n const apiHost = this.instance.get_config('api_host')\n for (const { id, url } of response['siteApps']) {\n const scriptUrl = [\n apiHost,\n apiHost[apiHost.length - 1] === '/' && url[0] === '/' ? url.substring(1) : url,\n ].join('')\n\n ;(window as any)[`__$$ph_site_app_${id}`] = this.instance\n\n loadScript(scriptUrl, (err) => {\n if (err) {\n console.error(`Error while initializing PostHog app with config id ${id}`, err)\n }\n })\n }\n } else if (response['siteApps'].length > 0) {\n console.error('PostHog site apps are disabled. Enable the \"opt_in_site_apps\" config to proceed.')\n }\n }\n }\n}\n","export const POSTHOG_MANAGED_HOSTS = ['https://app.posthog.com', 'https://eu.posthog.com']\n","import { _getHashParam, _register_event, loadScript, logger } from '../utils'\nimport { PostHog } from '../posthog-core'\nimport { DecideResponse, ToolbarParams } from '../types'\nimport { POSTHOG_MANAGED_HOSTS } from './cloud'\n\nexport class Toolbar {\n instance: PostHog\n constructor(instance: PostHog) {\n this.instance = instance\n }\n\n afterDecideResponse(response: DecideResponse) {\n const toolbarParams: ToolbarParams =\n response['toolbarParams'] ||\n response['editorParams'] ||\n (response['toolbarVersion'] ? { toolbarVersion: response['toolbarVersion'] } : {})\n if (\n response['isAuthenticated'] &&\n toolbarParams['toolbarVersion'] &&\n toolbarParams['toolbarVersion'].indexOf('toolbar') === 0\n ) {\n this.loadToolbar({\n ...toolbarParams,\n })\n }\n }\n\n /**\n * To load the toolbar, we need an access token and other state. That state comes from one of three places:\n * 1. In the URL hash params\n * 2. From session storage under the key `toolbarParams` if the toolbar was initialized on a previous page\n */\n maybeLoadToolbar(\n location = window.location,\n localStorage: Storage | undefined = undefined,\n history = window.history\n ): boolean {\n try {\n // Before running the code we check if we can access localStorage, if not we opt-out\n if (!localStorage) {\n try {\n window.localStorage.setItem('test', 'test')\n window.localStorage.removeItem('test')\n } catch (error) {\n return false\n }\n\n // If localStorage was undefined, and localStorage is supported we set the default value\n localStorage = window.localStorage\n }\n\n const stateHash = _getHashParam(location.hash, '__posthog') || _getHashParam(location.hash, 'state')\n const state = stateHash ? JSON.parse(decodeURIComponent(stateHash)) : null\n const parseFromUrl = state && state['action'] === 'ph_authorize'\n let toolbarParams: ToolbarParams\n\n if (parseFromUrl) {\n // happens if they are initializing the toolbar using an old snippet\n toolbarParams = state\n toolbarParams.source = 'url'\n\n if (toolbarParams && Object.keys(toolbarParams).length > 0) {\n if (state['desiredHash']) {\n // hash that was in the url before the redirect\n location.hash = state['desiredHash']\n } else if (history) {\n history.replaceState('', document.title, location.pathname + location.search) // completely remove hash\n } else {\n location.hash = '' // clear hash (but leaves # unfortunately)\n }\n }\n } else {\n // get credentials from localStorage from a previous initialzation\n toolbarParams = JSON.parse(localStorage.getItem('_postHogToolbarParams') || '{}')\n toolbarParams.source = 'localstorage'\n\n // delete \"add-action\" or other intent from toolbarParams, otherwise we'll have the same intent\n // every time we open the page (e.g. you just visiting your own site an hour later)\n delete toolbarParams.userIntent\n }\n\n if (toolbarParams['token'] && this.instance.get_config('token') === toolbarParams['token']) {\n this.loadToolbar(toolbarParams)\n return true\n } else {\n return false\n }\n } catch (e) {\n return false\n }\n }\n\n loadToolbar(params?: ToolbarParams): boolean {\n if ((window as any)['_postHogToolbarLoaded']) {\n return false\n }\n // only load the toolbar once, even if there are multiple instances of PostHogLib\n ;(window as any)['_postHogToolbarLoaded'] = true\n\n // By design array.js, recorder.js, and toolbar.js are served from Django with no or limited caching, not from our CDN\n // Django respects the query params for caching, returning a 304 if appropriate\n const host = this.instance.get_config('api_host')\n const timestampToNearestThirtySeconds = Math.floor(Date.now() / 30000) * 30000\n const toolbarUrl = `${host}${\n host.endsWith('/') ? '' : '/'\n }static/toolbar.js?_ts=${timestampToNearestThirtySeconds}`\n const disableToolbarMetrics =\n !POSTHOG_MANAGED_HOSTS.includes(this.instance.get_config('api_host')) &&\n this.instance.get_config('advanced_disable_toolbar_metrics')\n\n const toolbarParams = {\n token: this.instance.get_config('token'),\n ...params,\n apiURL: host, // defaults to api_host from the instance config if nothing else set\n ...(disableToolbarMetrics ? { instrument: false } : {}),\n }\n\n const { source: _discard, ...paramsToPersist } = toolbarParams // eslint-disable-line\n window.localStorage.setItem('_postHogToolbarParams', JSON.stringify(paramsToPersist))\n\n loadScript(toolbarUrl, (err) => {\n if (err) {\n logger.error('Failed to load toolbar', err)\n return\n }\n ;((window as any)['ph_load_toolbar'] || (window as any)['ph_load_editor'])(toolbarParams, this.instance)\n })\n // Turbolinks doesn't fire an onload event but does replace the entire body, including the toolbar.\n // Thus, we ensure the toolbar is only loaded inside the body, and then reloaded on turbolinks:load.\n _register_event(window, 'turbolinks:load', () => {\n ;(window as any)['_postHogToolbarLoaded'] = false\n this.loadToolbar(toolbarParams)\n })\n return true\n }\n\n /** @deprecated Use \"loadToolbar\" instead. */\n _loadEditor(params: ToolbarParams): boolean {\n return this.loadToolbar(params)\n }\n\n /** @deprecated Use \"maybeLoadToolbar\" instead. */\n maybeLoadEditor(\n location = window.location,\n localStorage: Storage | undefined = undefined,\n history = window.history\n ): boolean {\n return this.maybeLoadToolbar(location, localStorage, history)\n }\n}\n","export class RequestQueueScaffold {\n isPolling: boolean // flag to continue to recursively poll or not\n _event_queue: any[]\n _empty_queue_count: number // to track empty polls\n _poller: number | undefined // to become interval for reference to clear later\n _pollInterval: number\n\n constructor(pollInterval = 3000) {\n this.isPolling = true // flag to continue to recursively poll or not\n this._event_queue = []\n this._empty_queue_count = 0 // to track empty polls\n this._poller = undefined // to become interval for reference to clear later\n this._pollInterval = pollInterval\n }\n\n setPollInterval(interval: number): void {\n this._pollInterval = interval\n // Reset interval if running already\n if (this.isPolling) {\n this.poll()\n }\n }\n\n // // eslint-disable-next-line no-unused-vars\n // enqueue(_requestData: Record): void {\n // return\n // }\n\n poll(): void {\n return\n }\n\n unload(): void {\n return\n }\n\n getTime(): number {\n return new Date().getTime()\n }\n}\n","import { RequestQueueScaffold } from './base-request-queue'\nimport { _each } from './utils'\nimport { CaptureMetrics } from './capture-metrics'\nimport { Properties, QueuedRequestData, XHROptions } from './types'\n\nexport class RequestQueue extends RequestQueueScaffold {\n captureMetrics: CaptureMetrics\n handlePollRequest: (url: string, data: Properties, options?: XHROptions) => void\n\n constructor(\n captureMetrics: CaptureMetrics,\n handlePollRequest: (url: string, data: Properties, options?: XHROptions) => void,\n pollInterval = 3000\n ) {\n super(pollInterval)\n this.handlePollRequest = handlePollRequest\n this.captureMetrics = captureMetrics\n }\n\n enqueue(url: string, data: Properties, options: XHROptions): void {\n this.captureMetrics.incr('batch-enqueue')\n\n this._event_queue.push({ url, data, options })\n\n if (!this.isPolling) {\n this.isPolling = true\n this.poll()\n }\n }\n\n poll(): void {\n clearTimeout(this._poller)\n this._poller = setTimeout(() => {\n if (this._event_queue.length > 0) {\n const requests = this.formatQueue()\n for (const key in requests) {\n const { url, data, options } = requests[key]\n _each(data, (_, dataKey) => {\n data[dataKey]['offset'] = Math.abs(data[dataKey]['timestamp'] - this.getTime())\n delete data[dataKey]['timestamp']\n })\n this.handlePollRequest(url, data, options)\n\n this.captureMetrics.incr('batch-requests')\n this.captureMetrics.incr(`batch-requests-${url.slice(url.length - 2)}`)\n this.captureMetrics.incr('batch-handle', data.length)\n this.captureMetrics.incr(`batch-handle-${url.slice(url.length - 2)}`, data.length)\n }\n this._event_queue.length = 0 // flush the _event_queue\n this._empty_queue_count = 0\n } else {\n this._empty_queue_count++\n }\n\n /**\n * _empty_queue_count will increment each time the queue is polled\n * and it is empty. To avoid empty polling (user went idle, stepped away from comp)\n * we can turn it off with the isPolling flag.\n *\n * Polling will be re enabled when the next time PostHogLib.capture is called with\n * an event that should be added to the event queue.\n */\n if (this._empty_queue_count > 4) {\n this.isPolling = false\n this._empty_queue_count = 0\n }\n if (this.isPolling) {\n this.poll()\n }\n }, this._pollInterval) as any as number\n }\n\n updateUnloadMetrics(): void {\n const requests = this.formatQueue()\n for (const key in requests) {\n const { url, data } = requests[key]\n\n this.captureMetrics.incr('batch-unload-requests')\n this.captureMetrics.incr(`batch-unload-requests-${url.slice(url.length - 2)}`)\n this.captureMetrics.incr('batch-unload', data.length)\n this.captureMetrics.incr(`batch-unload-${url.slice(url.length - 2)}`, data.length)\n }\n }\n\n unload(): void {\n clearTimeout(this._poller)\n const requests = this._event_queue.length > 0 ? this.formatQueue() : {}\n this._event_queue.length = 0\n const requestValues = Object.values(requests)\n\n // Always force events to be sent before recordings, as events are more important, and recordings are bigger and thus less likely to arrive\n const sortedRequests = [\n ...requestValues.filter((r) => r.url.indexOf('/e') === 0),\n ...requestValues.filter((r) => r.url.indexOf('/e') !== 0),\n ]\n sortedRequests.map(({ url, data, options }) => {\n this.handlePollRequest(url, data, { ...options, transport: 'sendBeacon' })\n })\n }\n\n formatQueue(): Record {\n const requests: Record = {}\n _each(this._event_queue, (request) => {\n const { url, data, options } = request\n const key = (options ? options._batchKey : null) || url\n if (requests[key] === undefined) {\n requests[key] = { data: [], url, options }\n }\n\n // :TRICKY: Metrics-only code\n if (\n options &&\n requests[key].options &&\n requests[key].options._metrics &&\n !(requests[key].options._metrics as any)['rrweb_full_snapshot']\n ) {\n ;(requests[key].options._metrics as any)['rrweb_full_snapshot'] =\n options._metrics['rrweb_full_snapshot']\n }\n requests[key].data.push(data)\n })\n return requests\n }\n}\n","export class CaptureMetrics {\n enabled: boolean\n metrics: Record\n\n constructor(enabled: boolean) {\n this.enabled = enabled\n this.metrics = {}\n }\n\n incr(key: string, by = 1): void {\n if (this.enabled) {\n key = `phjs-${key}`\n this.metrics[key] = (this.metrics[key] || 0) + by\n }\n }\n\n decr(key: string): void {\n if (this.enabled) {\n key = `phjs-${key}`\n this.metrics[key] = (this.metrics[key] || 0) - 1\n }\n }\n}\n","// DEFLATE is a complex format; to read this code, you should probably check the RFC first:\n// https://tools.ietf.org/html/rfc1951\n// You may also wish to take a look at the guide I made about this program:\n// https://gist.github.com/101arrowz/253f31eb5abc3d9275ab943003ffecad\n// Much of the following code is similar to that of UZIP.js:\n// https://github.com/photopea/UZIP.js\n// Many optimizations have been made, so the bundle size is ultimately smaller but performance is similar.\n// Sometimes 0 will appear where -1 would be more appropriate. This is because using a uint\n// is better for memory in most engines (I *think*).\nvar ch2 = {};\nvar wk = (function (c, id, msg, transfer, cb) {\n var u = ch2[id] || (ch2[id] = URL.createObjectURL(new Blob([c], { type: 'text/javascript' })));\n var w = new Worker(u);\n w.onerror = function (e) { return cb(e.error, null); };\n w.onmessage = function (e) { return cb(null, e.data); };\n w.postMessage(msg, transfer);\n return w;\n});\n\n// aliases for shorter compressed code (most minifers don't do this)\nvar u8 = Uint8Array, u16 = Uint16Array, u32 = Uint32Array;\n// fixed length extra bits\nvar fleb = new u8([0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 2, 2, 2, 2, 3, 3, 3, 3, 4, 4, 4, 4, 5, 5, 5, 5, 0, /* unused */ 0, 0, /* impossible */ 0]);\n// fixed distance extra bits\n// see fleb note\nvar fdeb = new u8([0, 0, 0, 0, 1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6, 7, 7, 8, 8, 9, 9, 10, 10, 11, 11, 12, 12, 13, 13, /* unused */ 0, 0]);\n// code length index map\nvar clim = new u8([16, 17, 18, 0, 8, 7, 9, 6, 10, 5, 11, 4, 12, 3, 13, 2, 14, 1, 15]);\n// get base, reverse index map from extra bits\nvar freb = function (eb, start) {\n var b = new u16(31);\n for (var i = 0; i < 31; ++i) {\n b[i] = start += 1 << eb[i - 1];\n }\n // numbers here are at max 18 bits\n var r = new u32(b[30]);\n for (var i = 1; i < 30; ++i) {\n for (var j = b[i]; j < b[i + 1]; ++j) {\n r[j] = ((j - b[i]) << 5) | i;\n }\n }\n return [b, r];\n};\nvar _a = freb(fleb, 2), fl = _a[0], revfl = _a[1];\n// we can ignore the fact that the other numbers are wrong; they never happen anyway\nfl[28] = 258, revfl[258] = 28;\nvar _b = freb(fdeb, 0), fd = _b[0], revfd = _b[1];\n// map of value to reverse (assuming 16 bits)\nvar rev = new u16(32768);\nfor (var i = 0; i < 32768; ++i) {\n // reverse table algorithm from SO\n var x = ((i & 0xAAAA) >>> 1) | ((i & 0x5555) << 1);\n x = ((x & 0xCCCC) >>> 2) | ((x & 0x3333) << 2);\n x = ((x & 0xF0F0) >>> 4) | ((x & 0x0F0F) << 4);\n rev[i] = (((x & 0xFF00) >>> 8) | ((x & 0x00FF) << 8)) >>> 1;\n}\n// create huffman tree from u8 \"map\": index -> code length for code index\n// mb (max bits) must be at most 15\n// TODO: optimize/split up?\nvar hMap = (function (cd, mb, r) {\n var s = cd.length;\n // index\n var i = 0;\n // u16 \"map\": index -> # of codes with bit length = index\n var l = new u16(mb);\n // length of cd must be 288 (total # of codes)\n for (; i < s; ++i)\n ++l[cd[i] - 1];\n // u16 \"map\": index -> minimum code for bit length = index\n var le = new u16(mb);\n for (i = 0; i < mb; ++i) {\n le[i] = (le[i - 1] + l[i - 1]) << 1;\n }\n var co;\n if (r) {\n // u16 \"map\": index -> number of actual bits, symbol for code\n co = new u16(1 << mb);\n // bits to remove for reverser\n var rvb = 15 - mb;\n for (i = 0; i < s; ++i) {\n // ignore 0 lengths\n if (cd[i]) {\n // num encoding both symbol and bits read\n var sv = (i << 4) | cd[i];\n // free bits\n var r_1 = mb - cd[i];\n // start value\n var v = le[cd[i] - 1]++ << r_1;\n // m is end value\n for (var m = v | ((1 << r_1) - 1); v <= m; ++v) {\n // every 16 bit value starting with the code yields the same result\n co[rev[v] >>> rvb] = sv;\n }\n }\n }\n }\n else {\n co = new u16(s);\n for (i = 0; i < s; ++i)\n co[i] = rev[le[cd[i] - 1]++] >>> (15 - cd[i]);\n }\n return co;\n});\n// fixed length tree\nvar flt = new u8(288);\nfor (var i = 0; i < 144; ++i)\n flt[i] = 8;\nfor (var i = 144; i < 256; ++i)\n flt[i] = 9;\nfor (var i = 256; i < 280; ++i)\n flt[i] = 7;\nfor (var i = 280; i < 288; ++i)\n flt[i] = 8;\n// fixed distance tree\nvar fdt = new u8(32);\nfor (var i = 0; i < 32; ++i)\n fdt[i] = 5;\n// fixed length map\nvar flm = /*#__PURE__*/ hMap(flt, 9, 0), flrm = /*#__PURE__*/ hMap(flt, 9, 1);\n// fixed distance map\nvar fdm = /*#__PURE__*/ hMap(fdt, 5, 0), fdrm = /*#__PURE__*/ hMap(fdt, 5, 1);\n// find max of array\nvar max = function (a) {\n var m = a[0];\n for (var i = 1; i < a.length; ++i) {\n if (a[i] > m)\n m = a[i];\n }\n return m;\n};\n// read d, starting at bit p and mask with m\nvar bits = function (d, p, m) {\n var o = (p / 8) >> 0;\n return ((d[o] | (d[o + 1] << 8)) >>> (p & 7)) & m;\n};\n// read d, starting at bit p continuing for at least 16 bits\nvar bits16 = function (d, p) {\n var o = (p / 8) >> 0;\n return ((d[o] | (d[o + 1] << 8) | (d[o + 2] << 16)) >>> (p & 7));\n};\n// get end of byte\nvar shft = function (p) { return ((p / 8) >> 0) + (p & 7 && 1); };\n// typed array slice - allows garbage collector to free original reference,\n// while being more compatible than .slice\nvar slc = function (v, s, e) {\n if (s == null || s < 0)\n s = 0;\n if (e == null || e > v.length)\n e = v.length;\n // can't use .constructor in case user-supplied\n var n = new (v instanceof u16 ? u16 : v instanceof u32 ? u32 : u8)(e - s);\n n.set(v.subarray(s, e));\n return n;\n};\n// expands raw DEFLATE data\nvar inflt = function (dat, buf, st) {\n // source length\n var sl = dat.length;\n // have to estimate size\n var noBuf = !buf || st;\n // no state\n var noSt = !st || st.i;\n if (!st)\n st = {};\n // Assumes roughly 33% compression ratio average\n if (!buf)\n buf = new u8(sl * 3);\n // ensure buffer can fit at least l elements\n var cbuf = function (l) {\n var bl = buf.length;\n // need to increase size to fit\n if (l > bl) {\n // Double or set to necessary, whichever is greater\n var nbuf = new u8(Math.max(bl * 2, l));\n nbuf.set(buf);\n buf = nbuf;\n }\n };\n // last chunk bitpos bytes\n var final = st.f || 0, pos = st.p || 0, bt = st.b || 0, lm = st.l, dm = st.d, lbt = st.m, dbt = st.n;\n // total bits\n var tbts = sl * 8;\n do {\n if (!lm) {\n // BFINAL - this is only 1 when last chunk is next\n st.f = final = bits(dat, pos, 1);\n // type: 0 = no compression, 1 = fixed huffman, 2 = dynamic huffman\n var type = bits(dat, pos + 1, 3);\n pos += 3;\n if (!type) {\n // go to end of byte boundary\n var s = shft(pos) + 4, l = dat[s - 4] | (dat[s - 3] << 8), t = s + l;\n if (t > sl) {\n if (noSt)\n throw 'unexpected EOF';\n break;\n }\n // ensure size\n if (noBuf)\n cbuf(bt + l);\n // Copy over uncompressed data\n buf.set(dat.subarray(s, t), bt);\n // Get new bitpos, update byte count\n st.b = bt += l, st.p = pos = t * 8;\n continue;\n }\n else if (type == 1)\n lm = flrm, dm = fdrm, lbt = 9, dbt = 5;\n else if (type == 2) {\n // literal lengths\n var hLit = bits(dat, pos, 31) + 257, hcLen = bits(dat, pos + 10, 15) + 4;\n var tl = hLit + bits(dat, pos + 5, 31) + 1;\n pos += 14;\n // length+distance tree\n var ldt = new u8(tl);\n // code length tree\n var clt = new u8(19);\n for (var i = 0; i < hcLen; ++i) {\n // use index map to get real code\n clt[clim[i]] = bits(dat, pos + i * 3, 7);\n }\n pos += hcLen * 3;\n // code lengths bits\n var clb = max(clt), clbmsk = (1 << clb) - 1;\n if (!noSt && pos + tl * (clb + 7) > tbts)\n break;\n // code lengths map\n var clm = hMap(clt, clb, 1);\n for (var i = 0; i < tl;) {\n var r = clm[bits(dat, pos, clbmsk)];\n // bits read\n pos += r & 15;\n // symbol\n var s = r >>> 4;\n // code length to copy\n if (s < 16) {\n ldt[i++] = s;\n }\n else {\n // copy count\n var c = 0, n = 0;\n if (s == 16)\n n = 3 + bits(dat, pos, 3), pos += 2, c = ldt[i - 1];\n else if (s == 17)\n n = 3 + bits(dat, pos, 7), pos += 3;\n else if (s == 18)\n n = 11 + bits(dat, pos, 127), pos += 7;\n while (n--)\n ldt[i++] = c;\n }\n }\n // length tree distance tree\n var lt = ldt.subarray(0, hLit), dt = ldt.subarray(hLit);\n // max length bits\n lbt = max(lt);\n // max dist bits\n dbt = max(dt);\n lm = hMap(lt, lbt, 1);\n dm = hMap(dt, dbt, 1);\n }\n else\n throw 'invalid block type';\n if (pos > tbts)\n throw 'unexpected EOF';\n }\n // Make sure the buffer can hold this + the largest possible addition\n // Maximum chunk size (practically, theoretically infinite) is 2^17;\n if (noBuf)\n cbuf(bt + 131072);\n var lms = (1 << lbt) - 1, dms = (1 << dbt) - 1;\n var mxa = lbt + dbt + 18;\n while (noSt || pos + mxa < tbts) {\n // bits read, code\n var c = lm[bits16(dat, pos) & lms], sym = c >>> 4;\n pos += c & 15;\n if (pos > tbts)\n throw 'unexpected EOF';\n if (!c)\n throw 'invalid length/literal';\n if (sym < 256)\n buf[bt++] = sym;\n else if (sym == 256) {\n lm = null;\n break;\n }\n else {\n var add = sym - 254;\n // no extra bits needed if less\n if (sym > 264) {\n // index\n var i = sym - 257, b = fleb[i];\n add = bits(dat, pos, (1 << b) - 1) + fl[i];\n pos += b;\n }\n // dist\n var d = dm[bits16(dat, pos) & dms], dsym = d >>> 4;\n if (!d)\n throw 'invalid distance';\n pos += d & 15;\n var dt = fd[dsym];\n if (dsym > 3) {\n var b = fdeb[dsym];\n dt += bits16(dat, pos) & ((1 << b) - 1), pos += b;\n }\n if (pos > tbts)\n throw 'unexpected EOF';\n if (noBuf)\n cbuf(bt + 131072);\n var end = bt + add;\n for (; bt < end; bt += 4) {\n buf[bt] = buf[bt - dt];\n buf[bt + 1] = buf[bt + 1 - dt];\n buf[bt + 2] = buf[bt + 2 - dt];\n buf[bt + 3] = buf[bt + 3 - dt];\n }\n bt = end;\n }\n }\n st.l = lm, st.p = pos, st.b = bt;\n if (lm)\n final = 1, st.m = lbt, st.d = dm, st.n = dbt;\n } while (!final);\n return bt == buf.length ? buf : slc(buf, 0, bt);\n};\n// starting at p, write the minimum number of bits that can hold v to d\nvar wbits = function (d, p, v) {\n v <<= p & 7;\n var o = (p / 8) >> 0;\n d[o] |= v;\n d[o + 1] |= v >>> 8;\n};\n// starting at p, write the minimum number of bits (>8) that can hold v to d\nvar wbits16 = function (d, p, v) {\n v <<= p & 7;\n var o = (p / 8) >> 0;\n d[o] |= v;\n d[o + 1] |= v >>> 8;\n d[o + 2] |= v >>> 16;\n};\n// creates code lengths from a frequency table\nvar hTree = function (d, mb) {\n // Need extra info to make a tree\n var t = [];\n for (var i = 0; i < d.length; ++i) {\n if (d[i])\n t.push({ s: i, f: d[i] });\n }\n var s = t.length;\n var t2 = t.slice();\n if (!s)\n return [new u8(0), 0];\n if (s == 1) {\n var v = new u8(t[0].s + 1);\n v[t[0].s] = 1;\n return [v, 1];\n }\n t.sort(function (a, b) { return a.f - b.f; });\n // after i2 reaches last ind, will be stopped\n // freq must be greater than largest possible number of symbols\n t.push({ s: -1, f: 25001 });\n var l = t[0], r = t[1], i0 = 0, i1 = 1, i2 = 2;\n t[0] = { s: -1, f: l.f + r.f, l: l, r: r };\n // efficient algorithm from UZIP.js\n // i0 is lookbehind, i2 is lookahead - after processing two low-freq\n // symbols that combined have high freq, will start processing i2 (high-freq,\n // non-composite) symbols instead\n // see https://reddit.com/r/photopea/comments/ikekht/uzipjs_questions/\n while (i1 != s - 1) {\n l = t[t[i0].f < t[i2].f ? i0++ : i2++];\n r = t[i0 != i1 && t[i0].f < t[i2].f ? i0++ : i2++];\n t[i1++] = { s: -1, f: l.f + r.f, l: l, r: r };\n }\n var maxSym = t2[0].s;\n for (var i = 1; i < s; ++i) {\n if (t2[i].s > maxSym)\n maxSym = t2[i].s;\n }\n // code lengths\n var tr = new u16(maxSym + 1);\n // max bits in tree\n var mbt = ln(t[i1 - 1], tr, 0);\n if (mbt > mb) {\n // more algorithms from UZIP.js\n // TODO: find out how this code works (debt)\n // ind debt\n var i = 0, dt = 0;\n // left cost\n var lft = mbt - mb, cst = 1 << lft;\n t2.sort(function (a, b) { return tr[b.s] - tr[a.s] || a.f - b.f; });\n for (; i < s; ++i) {\n var i2_1 = t2[i].s;\n if (tr[i2_1] > mb) {\n dt += cst - (1 << (mbt - tr[i2_1]));\n tr[i2_1] = mb;\n }\n else\n break;\n }\n dt >>>= lft;\n while (dt > 0) {\n var i2_2 = t2[i].s;\n if (tr[i2_2] < mb)\n dt -= 1 << (mb - tr[i2_2]++ - 1);\n else\n ++i;\n }\n for (; i >= 0 && dt; --i) {\n var i2_3 = t2[i].s;\n if (tr[i2_3] == mb) {\n --tr[i2_3];\n ++dt;\n }\n }\n mbt = mb;\n }\n return [new u8(tr), mbt];\n};\n// get the max length and assign length codes\nvar ln = function (n, l, d) {\n return n.s == -1\n ? Math.max(ln(n.l, l, d + 1), ln(n.r, l, d + 1))\n : (l[n.s] = d);\n};\n// length codes generation\nvar lc = function (c) {\n var s = c.length;\n // Note that the semicolon was intentional\n while (s && !c[--s])\n ;\n var cl = new u16(++s);\n // ind num streak\n var cli = 0, cln = c[0], cls = 1;\n var w = function (v) { cl[cli++] = v; };\n for (var i = 1; i <= s; ++i) {\n if (c[i] == cln && i != s)\n ++cls;\n else {\n if (!cln && cls > 2) {\n for (; cls > 138; cls -= 138)\n w(32754);\n if (cls > 2) {\n w(cls > 10 ? ((cls - 11) << 5) | 28690 : ((cls - 3) << 5) | 12305);\n cls = 0;\n }\n }\n else if (cls > 3) {\n w(cln), --cls;\n for (; cls > 6; cls -= 6)\n w(8304);\n if (cls > 2)\n w(((cls - 3) << 5) | 8208), cls = 0;\n }\n while (cls--)\n w(cln);\n cls = 1;\n cln = c[i];\n }\n }\n return [cl.subarray(0, cli), s];\n};\n// calculate the length of output from tree, code lengths\nvar clen = function (cf, cl) {\n var l = 0;\n for (var i = 0; i < cl.length; ++i)\n l += cf[i] * cl[i];\n return l;\n};\n// writes a fixed block\n// returns the new bit pos\nvar wfblk = function (out, pos, dat) {\n // no need to write 00 as type: TypedArray defaults to 0\n var s = dat.length;\n var o = shft(pos + 2);\n out[o] = s & 255;\n out[o + 1] = s >>> 8;\n out[o + 2] = out[o] ^ 255;\n out[o + 3] = out[o + 1] ^ 255;\n for (var i = 0; i < s; ++i)\n out[o + i + 4] = dat[i];\n return (o + 4 + s) * 8;\n};\n// writes a block\nvar wblk = function (dat, out, final, syms, lf, df, eb, li, bs, bl, p) {\n wbits(out, p++, final);\n ++lf[256];\n var _a = hTree(lf, 15), dlt = _a[0], mlb = _a[1];\n var _b = hTree(df, 15), ddt = _b[0], mdb = _b[1];\n var _c = lc(dlt), lclt = _c[0], nlc = _c[1];\n var _d = lc(ddt), lcdt = _d[0], ndc = _d[1];\n var lcfreq = new u16(19);\n for (var i = 0; i < lclt.length; ++i)\n lcfreq[lclt[i] & 31]++;\n for (var i = 0; i < lcdt.length; ++i)\n lcfreq[lcdt[i] & 31]++;\n var _e = hTree(lcfreq, 7), lct = _e[0], mlcb = _e[1];\n var nlcc = 19;\n for (; nlcc > 4 && !lct[clim[nlcc - 1]]; --nlcc)\n ;\n var flen = (bl + 5) << 3;\n var ftlen = clen(lf, flt) + clen(df, fdt) + eb;\n var dtlen = clen(lf, dlt) + clen(df, ddt) + eb + 14 + 3 * nlcc + clen(lcfreq, lct) + (2 * lcfreq[16] + 3 * lcfreq[17] + 7 * lcfreq[18]);\n if (flen <= ftlen && flen <= dtlen)\n return wfblk(out, p, dat.subarray(bs, bs + bl));\n var lm, ll, dm, dl;\n wbits(out, p, 1 + (dtlen < ftlen)), p += 2;\n if (dtlen < ftlen) {\n lm = hMap(dlt, mlb, 0), ll = dlt, dm = hMap(ddt, mdb, 0), dl = ddt;\n var llm = hMap(lct, mlcb, 0);\n wbits(out, p, nlc - 257);\n wbits(out, p + 5, ndc - 1);\n wbits(out, p + 10, nlcc - 4);\n p += 14;\n for (var i = 0; i < nlcc; ++i)\n wbits(out, p + 3 * i, lct[clim[i]]);\n p += 3 * nlcc;\n var lcts = [lclt, lcdt];\n for (var it = 0; it < 2; ++it) {\n var clct = lcts[it];\n for (var i = 0; i < clct.length; ++i) {\n var len = clct[i] & 31;\n wbits(out, p, llm[len]), p += lct[len];\n if (len > 15)\n wbits(out, p, (clct[i] >>> 5) & 127), p += clct[i] >>> 12;\n }\n }\n }\n else {\n lm = flm, ll = flt, dm = fdm, dl = fdt;\n }\n for (var i = 0; i < li; ++i) {\n if (syms[i] > 255) {\n var len = (syms[i] >>> 18) & 31;\n wbits16(out, p, lm[len + 257]), p += ll[len + 257];\n if (len > 7)\n wbits(out, p, (syms[i] >>> 23) & 31), p += fleb[len];\n var dst = syms[i] & 31;\n wbits16(out, p, dm[dst]), p += dl[dst];\n if (dst > 3)\n wbits16(out, p, (syms[i] >>> 5) & 8191), p += fdeb[dst];\n }\n else {\n wbits16(out, p, lm[syms[i]]), p += ll[syms[i]];\n }\n }\n wbits16(out, p, lm[256]);\n return p + ll[256];\n};\n// deflate options (nice << 13) | chain\nvar deo = /*#__PURE__*/ new u32([65540, 131080, 131088, 131104, 262176, 1048704, 1048832, 2114560, 2117632]);\n// empty\nvar et = /*#__PURE__*/ new u8(0);\n// compresses data into a raw DEFLATE buffer\nvar dflt = function (dat, lvl, plvl, pre, post, lst) {\n var s = dat.length;\n var o = new u8(pre + s + 5 * (1 + Math.floor(s / 7000)) + post);\n // writing to this writes to the output buffer\n var w = o.subarray(pre, o.length - post);\n var pos = 0;\n if (!lvl || s < 8) {\n for (var i = 0; i <= s; i += 65535) {\n // end\n var e = i + 65535;\n if (e < s) {\n // write full block\n pos = wfblk(w, pos, dat.subarray(i, e));\n }\n else {\n // write final block\n w[i] = lst;\n pos = wfblk(w, pos, dat.subarray(i, s));\n }\n }\n }\n else {\n var opt = deo[lvl - 1];\n var n = opt >>> 13, c = opt & 8191;\n var msk_1 = (1 << plvl) - 1;\n // prev 2-byte val map curr 2-byte val map\n var prev = new u16(32768), head = new u16(msk_1 + 1);\n var bs1_1 = Math.ceil(plvl / 3), bs2_1 = 2 * bs1_1;\n var hsh = function (i) { return (dat[i] ^ (dat[i + 1] << bs1_1) ^ (dat[i + 2] << bs2_1)) & msk_1; };\n // 24576 is an arbitrary number of maximum symbols per block\n // 424 buffer for last block\n var syms = new u32(25000);\n // length/literal freq distance freq\n var lf = new u16(288), df = new u16(32);\n // l/lcnt exbits index l/lind waitdx bitpos\n var lc_1 = 0, eb = 0, i = 0, li = 0, wi = 0, bs = 0;\n for (; i < s; ++i) {\n // hash value\n var hv = hsh(i);\n // index mod 32768\n var imod = i & 32767;\n // previous index with this value\n var pimod = head[hv];\n prev[imod] = pimod;\n head[hv] = imod;\n // We always should modify head and prev, but only add symbols if\n // this data is not yet processed (\"wait\" for wait index)\n if (wi <= i) {\n // bytes remaining\n var rem = s - i;\n if ((lc_1 > 7000 || li > 24576) && rem > 423) {\n pos = wblk(dat, w, 0, syms, lf, df, eb, li, bs, i - bs, pos);\n li = lc_1 = eb = 0, bs = i;\n for (var j = 0; j < 286; ++j)\n lf[j] = 0;\n for (var j = 0; j < 30; ++j)\n df[j] = 0;\n }\n // len dist chain\n var l = 2, d = 0, ch_1 = c, dif = (imod - pimod) & 32767;\n if (rem > 2 && hv == hsh(i - dif)) {\n var maxn = Math.min(n, rem) - 1;\n var maxd = Math.min(32767, i);\n // max possible length\n // not capped at dif because decompressors implement \"rolling\" index population\n var ml = Math.min(258, rem);\n while (dif <= maxd && --ch_1 && imod != pimod) {\n if (dat[i + l] == dat[i + l - dif]) {\n var nl = 0;\n for (; nl < ml && dat[i + nl] == dat[i + nl - dif]; ++nl)\n ;\n if (nl > l) {\n l = nl, d = dif;\n // break out early when we reach \"nice\" (we are satisfied enough)\n if (nl > maxn)\n break;\n // now, find the rarest 2-byte sequence within this\n // length of literals and search for that instead.\n // Much faster than just using the start\n var mmd = Math.min(dif, nl - 2);\n var md = 0;\n for (var j = 0; j < mmd; ++j) {\n var ti = (i - dif + j + 32768) & 32767;\n var pti = prev[ti];\n var cd = (ti - pti + 32768) & 32767;\n if (cd > md)\n md = cd, pimod = ti;\n }\n }\n }\n // check the previous match\n imod = pimod, pimod = prev[imod];\n dif += (imod - pimod + 32768) & 32767;\n }\n }\n // d will be nonzero only when a match was found\n if (d) {\n // store both dist and len data in one Uint32\n // Make sure this is recognized as a len/dist with 28th bit (2^28)\n syms[li++] = 268435456 | (revfl[l] << 18) | revfd[d];\n var lin = revfl[l] & 31, din = revfd[d] & 31;\n eb += fleb[lin] + fdeb[din];\n ++lf[257 + lin];\n ++df[din];\n wi = i + l;\n ++lc_1;\n }\n else {\n syms[li++] = dat[i];\n ++lf[dat[i]];\n }\n }\n }\n pos = wblk(dat, w, lst, syms, lf, df, eb, li, bs, i - bs, pos);\n // this is the easiest way to avoid needing to maintain state\n if (!lst)\n pos = wfblk(w, pos, et);\n }\n return slc(o, 0, pre + shft(pos) + post);\n};\n// CRC32 table\nvar crct = /*#__PURE__*/ (function () {\n var t = new u32(256);\n for (var i = 0; i < 256; ++i) {\n var c = i, k = 9;\n while (--k)\n c = ((c & 1) && 0xEDB88320) ^ (c >>> 1);\n t[i] = c;\n }\n return t;\n})();\n// CRC32\nvar crc = function () {\n var c = 0xFFFFFFFF;\n return {\n p: function (d) {\n // closures have awful performance\n var cr = c;\n for (var i = 0; i < d.length; ++i)\n cr = crct[(cr & 255) ^ d[i]] ^ (cr >>> 8);\n c = cr;\n },\n d: function () { return c ^ 0xFFFFFFFF; }\n };\n};\n// Alder32\nvar adler = function () {\n var a = 1, b = 0;\n return {\n p: function (d) {\n // closures have awful performance\n var n = a, m = b;\n var l = d.length;\n for (var i = 0; i != l;) {\n var e = Math.min(i + 5552, l);\n for (; i < e; ++i)\n n += d[i], m += n;\n n %= 65521, m %= 65521;\n }\n a = n, b = m;\n },\n d: function () { return ((a >>> 8) << 16 | (b & 255) << 8 | (b >>> 8)) + ((a & 255) << 23) * 2; }\n };\n};\n;\n// deflate with opts\nvar dopt = function (dat, opt, pre, post, st) {\n return dflt(dat, opt.level == null ? 6 : opt.level, opt.mem == null ? Math.ceil(Math.max(8, Math.min(13, Math.log(dat.length))) * 1.5) : (12 + opt.mem), pre, post, !st);\n};\n// Walmart object spread\nvar mrg = function (a, b) {\n var o = {};\n for (var k in a)\n o[k] = a[k];\n for (var k in b)\n o[k] = b[k];\n return o;\n};\n// worker clone\n// This is possibly the craziest part of the entire codebase, despite how simple it may seem.\n// The only parameter to this function is a closure that returns an array of variables outside of the function scope.\n// We're going to try to figure out the variable names used in the closure as strings because that is crucial for workerization.\n// We will return an object mapping of true variable name to value (basically, the current scope as a JS object).\n// The reason we can't just use the original variable names is minifiers mangling the toplevel scope.\n// This took me three weeks to figure out how to do.\nvar wcln = function (fn, fnStr, td) {\n var dt = fn();\n var st = fn.toString();\n var ks = st.slice(st.indexOf('[') + 1, st.lastIndexOf(']')).replace(/ /g, '').split(',');\n for (var i = 0; i < dt.length; ++i) {\n var v = dt[i], k = ks[i];\n if (typeof v == 'function') {\n fnStr += ';' + k + '=';\n var st_1 = v.toString();\n if (v.prototype) {\n // for global objects\n if (st_1.indexOf('[native code]') != -1) {\n var spInd = st_1.indexOf(' ', 8) + 1;\n fnStr += st_1.slice(spInd, st_1.indexOf('(', spInd));\n }\n else {\n fnStr += st_1;\n for (var t in v.prototype)\n fnStr += ';' + k + '.prototype.' + t + '=' + v.prototype[t].toString();\n }\n }\n else\n fnStr += st_1;\n }\n else\n td[k] = v;\n }\n return [fnStr, td];\n};\nvar ch = [];\n// clone bufs\nvar cbfs = function (v) {\n var tl = [];\n for (var k in v) {\n if (v[k] instanceof u8 || v[k] instanceof u16 || v[k] instanceof u32)\n tl.push((v[k] = new v[k].constructor(v[k])).buffer);\n }\n return tl;\n};\n// use a worker to execute code\nvar wrkr = function (fns, init, id, cb) {\n var _a;\n if (!ch[id]) {\n var fnStr = '', td_1 = {}, m = fns.length - 1;\n for (var i = 0; i < m; ++i)\n _a = wcln(fns[i], fnStr, td_1), fnStr = _a[0], td_1 = _a[1];\n ch[id] = wcln(fns[m], fnStr, td_1);\n }\n var td = mrg({}, ch[id][1]);\n return wk(ch[id][0] + ';onmessage=function(e){for(var k in e.data)self[k]=e.data[k];onmessage=' + init.toString() + '}', id, td, cbfs(td), cb);\n};\n// base async inflate fn\nvar bInflt = function () { return [u8, u16, u32, fleb, fdeb, clim, fl, fd, flrm, fdrm, rev, hMap, max, bits, bits16, shft, slc, inflt, inflateSync, pbf, gu8]; };\nvar bDflt = function () { return [u8, u16, u32, fleb, fdeb, clim, revfl, revfd, flm, flt, fdm, fdt, rev, deo, et, hMap, wbits, wbits16, hTree, ln, lc, clen, wfblk, wblk, shft, slc, dflt, dopt, deflateSync, pbf]; };\n// gzip extra\nvar gze = function () { return [gzh, gzhl, wbytes, crc, crct]; };\n// gunzip extra\nvar guze = function () { return [gzs, gzl]; };\n// zlib extra\nvar zle = function () { return [zlh, wbytes, adler]; };\n// unzlib extra\nvar zule = function () { return [zlv]; };\n// post buf\nvar pbf = function (msg) { return postMessage(msg, [msg.buffer]); };\n// get u8\nvar gu8 = function (o) { return o && o.size && new u8(o.size); };\n// async helper\nvar cbify = function (dat, opts, fns, init, id, cb) {\n var w = wrkr(fns, init, id, function (err, dat) {\n w.terminate();\n cb(err, dat);\n });\n if (!opts.consume)\n dat = new u8(dat);\n w.postMessage([dat, opts], [dat.buffer]);\n return function () { w.terminate(); };\n};\n// auto stream\nvar astrm = function (strm) {\n strm.ondata = function (dat, final) { return postMessage([dat, final], [dat.buffer]); };\n return function (ev) { return strm.push(ev.data[0], ev.data[1]); };\n};\n// async stream attach\nvar astrmify = function (fns, strm, opts, init, id) {\n var t;\n var w = wrkr(fns, init, id, function (err, dat) {\n if (err)\n w.terminate(), strm.ondata.call(strm, err);\n else {\n if (dat[1])\n w.terminate();\n strm.ondata.call(strm, err, dat[0], dat[1]);\n }\n });\n w.postMessage(opts);\n strm.push = function (d, f) {\n if (t)\n throw 'stream finished';\n if (!strm.ondata)\n throw 'no stream handler';\n w.postMessage([d, t = f], [d.buffer]);\n };\n strm.terminate = function () { w.terminate(); };\n};\n// read 2 bytes\nvar b2 = function (d, b) { return d[b] | (d[b + 1] << 8); };\n// read 4 bytes\nvar b4 = function (d, b) { return (d[b] | (d[b + 1] << 8) | (d[b + 2] << 16)) + (d[b + 3] << 23) * 2; };\n// write bytes\nvar wbytes = function (d, b, v) {\n for (; v; ++b)\n d[b] = v, v >>>= 8;\n};\n// gzip header\nvar gzh = function (c, o) {\n var fn = o.filename;\n c[0] = 31, c[1] = 139, c[2] = 8, c[8] = o.level < 2 ? 4 : o.level == 9 ? 2 : 0, c[9] = 3; // assume Unix\n if (o.mtime != 0)\n wbytes(c, 4, Math.floor(new Date(o.mtime || Date.now()) / 1000));\n if (fn) {\n c[3] = 8;\n for (var i = 0; i <= fn.length; ++i)\n c[i + 10] = fn.charCodeAt(i);\n }\n};\n// gzip footer: -8 to -4 = CRC, -4 to -0 is length\n// gzip start\nvar gzs = function (d) {\n if (d[0] != 31 || d[1] != 139 || d[2] != 8)\n throw 'invalid gzip data';\n var flg = d[3];\n var st = 10;\n if (flg & 4)\n st += d[10] | (d[11] << 8) + 2;\n for (var zs = (flg >> 3 & 1) + (flg >> 4 & 1); zs > 0; zs -= !d[st++])\n ;\n return st + (flg & 2);\n};\n// gzip length\nvar gzl = function (d) {\n var l = d.length;\n return (d[l - 4] | d[l - 3] << 8 | d[l - 2] << 16) + (2 * (d[l - 1] << 23));\n};\n// gzip header length\nvar gzhl = function (o) { return 10 + ((o.filename && (o.filename.length + 1)) || 0); };\n// zlib header\nvar zlh = function (c, o) {\n var lv = o.level, fl = lv == 0 ? 0 : lv < 6 ? 1 : lv == 9 ? 3 : 2;\n c[0] = 120, c[1] = (fl << 6) | (fl ? (32 - 2 * fl) : 1);\n};\n// zlib valid\nvar zlv = function (d) {\n if ((d[0] & 15) != 8 || (d[0] >>> 4) > 7 || ((d[0] << 8 | d[1]) % 31))\n throw 'invalid zlib data';\n if (d[1] & 32)\n throw 'invalid zlib data: preset dictionaries not supported';\n};\nfunction AsyncCmpStrm(opts, cb) {\n if (!cb && typeof opts == 'function')\n cb = opts, opts = {};\n this.ondata = cb;\n return opts;\n}\n// zlib footer: -4 to -0 is Adler32\n/**\n * Streaming DEFLATE compression\n */\nvar Deflate = /*#__PURE__*/ (function () {\n function Deflate(opts, cb) {\n if (!cb && typeof opts == 'function')\n cb = opts, opts = {};\n this.ondata = cb;\n this.o = opts || {};\n }\n Deflate.prototype.p = function (c, f) {\n this.ondata(dopt(c, this.o, 0, 0, !f), f);\n };\n /**\n * Pushes a chunk to be deflated\n * @param chunk The chunk to push\n * @param final Whether this is the last chunk\n */\n Deflate.prototype.push = function (chunk, final) {\n if (this.d)\n throw 'stream finished';\n if (!this.ondata)\n throw 'no stream handler';\n this.d = final;\n this.p(chunk, final || false);\n };\n return Deflate;\n}());\nexport { Deflate };\n/**\n * Asynchronous streaming DEFLATE compression\n */\nvar AsyncDeflate = /*#__PURE__*/ (function () {\n function AsyncDeflate(opts, cb) {\n astrmify([\n bDflt,\n function () { return [astrm, Deflate]; }\n ], this, AsyncCmpStrm.call(this, opts, cb), function (ev) {\n var strm = new Deflate(ev.data);\n onmessage = astrm(strm);\n }, 6);\n }\n return AsyncDeflate;\n}());\nexport { AsyncDeflate };\nexport function deflate(data, opts, cb) {\n if (!cb)\n cb = opts, opts = {};\n if (typeof cb != 'function')\n throw 'no callback';\n return cbify(data, opts, [\n bDflt,\n ], function (ev) { return pbf(deflateSync(ev.data[0], ev.data[1])); }, 0, cb);\n}\n/**\n * Compresses data with DEFLATE without any wrapper\n * @param data The data to compress\n * @param opts The compression options\n * @returns The deflated version of the data\n */\nexport function deflateSync(data, opts) {\n if (opts === void 0) { opts = {}; }\n return dopt(data, opts, 0, 0);\n}\n/**\n * Streaming DEFLATE decompression\n */\nvar Inflate = /*#__PURE__*/ (function () {\n /**\n * Creates an inflation stream\n * @param cb The callback to call whenever data is inflated\n */\n function Inflate(cb) {\n this.s = {};\n this.p = new u8(0);\n this.ondata = cb;\n }\n Inflate.prototype.e = function (c) {\n if (this.d)\n throw 'stream finished';\n if (!this.ondata)\n throw 'no stream handler';\n var l = this.p.length;\n var n = new u8(l + c.length);\n n.set(this.p), n.set(c, l), this.p = n;\n };\n Inflate.prototype.c = function (final) {\n this.d = this.s.i = final || false;\n var bts = this.s.b;\n var dt = inflt(this.p, this.o, this.s);\n this.ondata(slc(dt, bts, this.s.b), this.d);\n this.o = slc(dt, this.s.b - 32768), this.s.b = this.o.length;\n this.p = slc(this.p, (this.s.p / 8) >> 0), this.s.p &= 7;\n };\n /**\n * Pushes a chunk to be inflated\n * @param chunk The chunk to push\n * @param final Whether this is the final chunk\n */\n Inflate.prototype.push = function (chunk, final) {\n this.e(chunk), this.c(final);\n };\n return Inflate;\n}());\nexport { Inflate };\n/**\n * Asynchronous streaming DEFLATE decompression\n */\nvar AsyncInflate = /*#__PURE__*/ (function () {\n /**\n * Creates an asynchronous inflation stream\n * @param cb The callback to call whenever data is deflated\n */\n function AsyncInflate(cb) {\n this.ondata = cb;\n astrmify([\n bInflt,\n function () { return [astrm, Inflate]; }\n ], this, 0, function () {\n var strm = new Inflate();\n onmessage = astrm(strm);\n }, 7);\n }\n return AsyncInflate;\n}());\nexport { AsyncInflate };\nexport function inflate(data, opts, cb) {\n if (!cb)\n cb = opts, opts = {};\n if (typeof cb != 'function')\n throw 'no callback';\n return cbify(data, opts, [\n bInflt\n ], function (ev) { return pbf(inflateSync(ev.data[0], gu8(ev.data[1]))); }, 1, cb);\n}\n/**\n * Expands DEFLATE data with no wrapper\n * @param data The data to decompress\n * @param out Where to write the data. Saves memory if you know the decompressed size and provide an output buffer of that length.\n * @returns The decompressed version of the data\n */\nexport function inflateSync(data, out) {\n return inflt(data, out);\n}\n// before you yell at me for not just using extends, my reason is that TS inheritance is hard to workerize.\n/**\n * Streaming GZIP compression\n */\nvar Gzip = /*#__PURE__*/ (function () {\n function Gzip(opts, cb) {\n this.c = crc();\n this.l = 0;\n this.v = 1;\n Deflate.call(this, opts, cb);\n }\n /**\n * Pushes a chunk to be GZIPped\n * @param chunk The chunk to push\n * @param final Whether this is the last chunk\n */\n Gzip.prototype.push = function (chunk, final) {\n Deflate.prototype.push.call(this, chunk, final);\n };\n Gzip.prototype.p = function (c, f) {\n this.c.p(c);\n this.l += c.length;\n var raw = dopt(c, this.o, this.v && gzhl(this.o), f && 8, !f);\n if (this.v)\n gzh(raw, this.o), this.v = 0;\n if (f)\n wbytes(raw, raw.length - 8, this.c.d()), wbytes(raw, raw.length - 4, this.l);\n this.ondata(raw, f);\n };\n return Gzip;\n}());\nexport { Gzip };\n/**\n * Asynchronous streaming GZIP compression\n */\nvar AsyncGzip = /*#__PURE__*/ (function () {\n function AsyncGzip(opts, cb) {\n astrmify([\n bDflt,\n gze,\n function () { return [astrm, Deflate, Gzip]; }\n ], this, AsyncCmpStrm.call(this, opts, cb), function (ev) {\n var strm = new Gzip(ev.data);\n onmessage = astrm(strm);\n }, 8);\n }\n return AsyncGzip;\n}());\nexport { AsyncGzip };\nexport function gzip(data, opts, cb) {\n if (!cb)\n cb = opts, opts = {};\n if (typeof cb != 'function')\n throw 'no callback';\n return cbify(data, opts, [\n bDflt,\n gze,\n function () { return [gzipSync]; }\n ], function (ev) { return pbf(gzipSync(ev.data[0], ev.data[1])); }, 2, cb);\n}\n/**\n * Compresses data with GZIP\n * @param data The data to compress\n * @param opts The compression options\n * @returns The gzipped version of the data\n */\nexport function gzipSync(data, opts) {\n if (opts === void 0) { opts = {}; }\n var c = crc(), l = data.length;\n c.p(data);\n var d = dopt(data, opts, gzhl(opts), 8), s = d.length;\n return gzh(d, opts), wbytes(d, s - 8, c.d()), wbytes(d, s - 4, l), d;\n}\n/**\n * Streaming GZIP decompression\n */\nvar Gunzip = /*#__PURE__*/ (function () {\n /**\n * Creates a GUNZIP stream\n * @param cb The callback to call whenever data is inflated\n */\n function Gunzip(cb) {\n this.v = 1;\n Inflate.call(this, cb);\n }\n /**\n * Pushes a chunk to be GUNZIPped\n * @param chunk The chunk to push\n * @param final Whether this is the last chunk\n */\n Gunzip.prototype.push = function (chunk, final) {\n Inflate.prototype.e.call(this, chunk);\n if (this.v) {\n var s = gzs(this.p);\n if (s >= this.p.length && !final)\n return;\n this.p = this.p.subarray(s), this.v = 0;\n }\n if (final) {\n if (this.p.length < 8)\n throw 'invalid gzip stream';\n this.p = this.p.subarray(0, -8);\n }\n // necessary to prevent TS from using the closure value\n // This allows for workerization to function correctly\n Inflate.prototype.c.call(this, final);\n };\n return Gunzip;\n}());\nexport { Gunzip };\n/**\n * Asynchronous streaming GZIP decompression\n */\nvar AsyncGunzip = /*#__PURE__*/ (function () {\n /**\n * Creates an asynchronous GUNZIP stream\n * @param cb The callback to call whenever data is deflated\n */\n function AsyncGunzip(cb) {\n this.ondata = cb;\n astrmify([\n bInflt,\n guze,\n function () { return [astrm, Inflate, Gunzip]; }\n ], this, 0, function () {\n var strm = new Gunzip();\n onmessage = astrm(strm);\n }, 9);\n }\n return AsyncGunzip;\n}());\nexport { AsyncGunzip };\nexport function gunzip(data, opts, cb) {\n if (!cb)\n cb = opts, opts = {};\n if (typeof cb != 'function')\n throw 'no callback';\n return cbify(data, opts, [\n bInflt,\n guze,\n function () { return [gunzipSync]; }\n ], function (ev) { return pbf(gunzipSync(ev.data[0])); }, 3, cb);\n}\n/**\n * Expands GZIP data\n * @param data The data to decompress\n * @param out Where to write the data. GZIP already encodes the output size, so providing this doesn't save memory.\n * @returns The decompressed version of the data\n */\nexport function gunzipSync(data, out) {\n return inflt(data.subarray(gzs(data), -8), out || new u8(gzl(data)));\n}\n/**\n * Streaming Zlib compression\n */\nvar Zlib = /*#__PURE__*/ (function () {\n function Zlib(opts, cb) {\n this.c = adler();\n this.v = 1;\n Deflate.call(this, opts, cb);\n }\n /**\n * Pushes a chunk to be zlibbed\n * @param chunk The chunk to push\n * @param final Whether this is the last chunk\n */\n Zlib.prototype.push = function (chunk, final) {\n Deflate.prototype.push.call(this, chunk, final);\n };\n Zlib.prototype.p = function (c, f) {\n this.c.p(c);\n var raw = dopt(c, this.o, this.v && 2, f && 4, !f);\n if (this.v)\n zlh(raw, this.o), this.v = 0;\n if (f)\n wbytes(raw, raw.length - 4, this.c.d());\n this.ondata(raw, f);\n };\n return Zlib;\n}());\nexport { Zlib };\n/**\n * Asynchronous streaming Zlib compression\n */\nvar AsyncZlib = /*#__PURE__*/ (function () {\n function AsyncZlib(opts, cb) {\n astrmify([\n bDflt,\n zle,\n function () { return [astrm, Deflate, Zlib]; }\n ], this, AsyncCmpStrm.call(this, opts, cb), function (ev) {\n var strm = new Zlib(ev.data);\n onmessage = astrm(strm);\n }, 10);\n }\n return AsyncZlib;\n}());\nexport { AsyncZlib };\nexport function zlib(data, opts, cb) {\n if (!cb)\n cb = opts, opts = {};\n if (typeof cb != 'function')\n throw 'no callback';\n return cbify(data, opts, [\n bDflt,\n zle,\n function () { return [zlibSync]; }\n ], function (ev) { return pbf(zlibSync(ev.data[0], ev.data[1])); }, 4, cb);\n}\n/**\n * Compress data with Zlib\n * @param data The data to compress\n * @param opts The compression options\n * @returns The zlib-compressed version of the data\n */\nexport function zlibSync(data, opts) {\n if (opts === void 0) { opts = {}; }\n var a = adler();\n a.p(data);\n var d = dopt(data, opts, 2, 4);\n return zlh(d, opts), wbytes(d, d.length - 4, a.d()), d;\n}\n/**\n * Streaming Zlib decompression\n */\nvar Unzlib = /*#__PURE__*/ (function () {\n /**\n * Creates a Zlib decompression stream\n * @param cb The callback to call whenever data is inflated\n */\n function Unzlib(cb) {\n this.v = 1;\n Inflate.call(this, cb);\n }\n /**\n * Pushes a chunk to be unzlibbed\n * @param chunk The chunk to push\n * @param final Whether this is the last chunk\n */\n Unzlib.prototype.push = function (chunk, final) {\n Inflate.prototype.e.call(this, chunk);\n if (this.v) {\n if (this.p.length < 2 && !final)\n return;\n this.p = this.p.subarray(2), this.v = 0;\n }\n if (final) {\n if (this.p.length < 4)\n throw 'invalid zlib stream';\n this.p = this.p.subarray(0, -4);\n }\n // necessary to prevent TS from using the closure value\n // This allows for workerization to function correctly\n Inflate.prototype.c.call(this, final);\n };\n return Unzlib;\n}());\nexport { Unzlib };\n/**\n * Asynchronous streaming Zlib decompression\n */\nvar AsyncUnzlib = /*#__PURE__*/ (function () {\n /**\n * Creates an asynchronous Zlib decompression stream\n * @param cb The callback to call whenever data is deflated\n */\n function AsyncUnzlib(cb) {\n this.ondata = cb;\n astrmify([\n bInflt,\n zule,\n function () { return [astrm, Inflate, Unzlib]; }\n ], this, 0, function () {\n var strm = new Unzlib();\n onmessage = astrm(strm);\n }, 11);\n }\n return AsyncUnzlib;\n}());\nexport { AsyncUnzlib };\nexport function unzlib(data, opts, cb) {\n if (!cb)\n cb = opts, opts = {};\n if (typeof cb != 'function')\n throw 'no callback';\n return cbify(data, opts, [\n bInflt,\n zule,\n function () { return [unzlibSync]; }\n ], function (ev) { return pbf(unzlibSync(ev.data[0], gu8(ev.data[1]))); }, 5, cb);\n}\n/**\n * Expands Zlib data\n * @param data The data to decompress\n * @param out Where to write the data. Saves memory if you know the decompressed size and provide an output buffer of that length.\n * @returns The decompressed version of the data\n */\nexport function unzlibSync(data, out) {\n return inflt((zlv(data), data.subarray(2, -4)), out);\n}\n// Default algorithm for compression (used because having a known output size allows faster decompression)\nexport { gzip as compress, AsyncGzip as AsyncCompress };\n// Default algorithm for compression (used because having a known output size allows faster decompression)\nexport { gzipSync as compressSync, Gzip as Compress };\n/**\n * Streaming GZIP, Zlib, or raw DEFLATE decompression\n */\nvar Decompress = /*#__PURE__*/ (function () {\n /**\n * Creates a decompression stream\n * @param cb The callback to call whenever data is decompressed\n */\n function Decompress(cb) {\n this.G = Gunzip;\n this.I = Inflate;\n this.Z = Unzlib;\n this.ondata = cb;\n }\n /**\n * Pushes a chunk to be decompressed\n * @param chunk The chunk to push\n * @param final Whether this is the last chunk\n */\n Decompress.prototype.push = function (chunk, final) {\n if (!this.ondata)\n throw 'no stream handler';\n if (!this.s) {\n if (this.p && this.p.length) {\n var n = new u8(this.p.length + chunk.length);\n n.set(this.p), n.set(chunk, this.p.length);\n }\n else\n this.p = chunk;\n if (this.p.length > 2) {\n var _this_1 = this;\n var cb = function () { _this_1.ondata.apply(_this_1, arguments); };\n this.s = (this.p[0] == 31 && this.p[1] == 139 && this.p[2] == 8)\n ? new this.G(cb)\n : ((this.p[0] & 15) != 8 || (this.p[0] >> 4) > 7 || ((this.p[0] << 8 | this.p[1]) % 31))\n ? new this.I(cb)\n : new this.Z(cb);\n this.s.push(this.p, final);\n this.p = null;\n }\n }\n else\n this.s.push(chunk, final);\n };\n return Decompress;\n}());\nexport { Decompress };\n/**\n * Asynchronous streaming GZIP, Zlib, or raw DEFLATE decompression\n */\nvar AsyncDecompress = /*#__PURE__*/ (function () {\n /**\n * Creates an asynchronous decompression stream\n * @param cb The callback to call whenever data is decompressed\n */\n function AsyncDecompress(cb) {\n this.G = AsyncGunzip;\n this.I = AsyncInflate;\n this.Z = AsyncUnzlib;\n this.ondata = cb;\n }\n /**\n * Pushes a chunk to be decompressed\n * @param chunk The chunk to push\n * @param final Whether this is the last chunk\n */\n AsyncDecompress.prototype.push = function (chunk, final) {\n Decompress.prototype.push.call(this, chunk, final);\n };\n return AsyncDecompress;\n}());\nexport { AsyncDecompress };\nexport function decompress(data, opts, cb) {\n if (!cb)\n cb = opts, opts = {};\n if (typeof cb != 'function')\n throw 'no callback';\n return (data[0] == 31 && data[1] == 139 && data[2] == 8)\n ? gunzip(data, opts, cb)\n : ((data[0] & 15) != 8 || (data[0] >> 4) > 7 || ((data[0] << 8 | data[1]) % 31))\n ? inflate(data, opts, cb)\n : unzlib(data, opts, cb);\n}\n/**\n * Expands compressed GZIP, Zlib, or raw DEFLATE data, automatically detecting the format\n * @param data The data to decompress\n * @param out Where to write the data. Saves memory if you know the decompressed size and provide an output buffer of that length.\n * @returns The decompressed version of the data\n */\nexport function decompressSync(data, out) {\n return (data[0] == 31 && data[1] == 139 && data[2] == 8)\n ? gunzipSync(data, out)\n : ((data[0] & 15) != 8 || (data[0] >> 4) > 7 || ((data[0] << 8 | data[1]) % 31))\n ? inflateSync(data, out)\n : unzlibSync(data, out);\n}\n// flatten a directory structure\nvar fltn = function (d, p, t, o) {\n for (var k in d) {\n var val = d[k], n = p + k;\n if (val instanceof u8)\n t[n] = [val, o];\n else if (Array.isArray(val))\n t[n] = [val[0], mrg(o, val[1])];\n else\n fltn(val, n + '/', t, o);\n }\n};\n/**\n * Converts a string into a Uint8Array for use with compression/decompression methods\n * @param str The string to encode\n * @param latin1 Whether or not to interpret the data as Latin-1. This should\n * not need to be true unless decoding a binary string.\n * @returns The string encoded in UTF-8/Latin-1 binary\n */\nexport function strToU8(str, latin1) {\n var l = str.length;\n if (!latin1 && typeof TextEncoder != 'undefined')\n return new TextEncoder().encode(str);\n var ar = new u8(str.length + (str.length >>> 1));\n var ai = 0;\n var w = function (v) { ar[ai++] = v; };\n for (var i = 0; i < l; ++i) {\n if (ai + 5 > ar.length) {\n var n = new u8(ai + 8 + ((l - i) << 1));\n n.set(ar);\n ar = n;\n }\n var c = str.charCodeAt(i);\n if (c < 128 || latin1)\n w(c);\n else if (c < 2048)\n w(192 | (c >>> 6)), w(128 | (c & 63));\n else if (c > 55295 && c < 57344)\n c = 65536 + (c & 1023 << 10) | (str.charCodeAt(++i) & 1023),\n w(240 | (c >>> 18)), w(128 | ((c >>> 12) & 63)), w(128 | ((c >>> 6) & 63)), w(128 | (c & 63));\n else\n w(224 | (c >>> 12)), w(128 | ((c >>> 6) & 63)), w(128 | (c & 63));\n }\n return slc(ar, 0, ai);\n}\n/**\n * Converts a Uint8Array to a string\n * @param dat The data to decode to string\n * @param latin1 Whether or not to interpret the data as Latin-1. This should\n * not need to be true unless encoding to binary string.\n * @returns The original UTF-8/Latin-1 string\n */\nexport function strFromU8(dat, latin1) {\n var r = '';\n if (!latin1 && typeof TextDecoder != 'undefined')\n return new TextDecoder().decode(dat);\n for (var i = 0; i < dat.length;) {\n var c = dat[i++];\n if (c < 128 || latin1)\n r += String.fromCharCode(c);\n else if (c < 224)\n r += String.fromCharCode((c & 31) << 6 | (dat[i++] & 63));\n else if (c < 240)\n r += String.fromCharCode((c & 15) << 12 | (dat[i++] & 63) << 6 | (dat[i++] & 63));\n else\n c = ((c & 15) << 18 | (dat[i++] & 63) << 12 | (dat[i++] & 63) << 6 | (dat[i++] & 63)) - 65536,\n r += String.fromCharCode(55296 | (c >> 10), 56320 | (c & 1023));\n }\n return r;\n}\n;\n// skip local zip header\nvar slzh = function (d, b) { return b + 30 + b2(d, b + 26) + b2(d, b + 28); };\n// read zip header\nvar zh = function (d, b, z) {\n var fnl = b2(d, b + 28), fn = strFromU8(d.subarray(b + 46, b + 46 + fnl), !(b2(d, b + 8) & 2048)), es = b + 46 + fnl;\n var _a = z ? z64e(d, es) : [b4(d, b + 20), b4(d, b + 24), b4(d, b + 42)], sc = _a[0], su = _a[1], off = _a[2];\n return [b2(d, b + 10), sc, su, fn, es + b2(d, b + 30) + b2(d, b + 32), off];\n};\n// read zip64 extra field\nvar z64e = function (d, b) {\n for (; b2(d, b) != 1; b += 4 + b2(d, b + 2))\n ;\n return [b4(d, b + 12), b4(d, b + 4), b4(d, b + 20)];\n};\n// write zip header\nvar wzh = function (d, b, c, cmp, su, fn, u, o, ce, t) {\n var fl = fn.length, l = cmp.length;\n wbytes(d, b, ce != null ? 0x2014B50 : 0x4034B50), b += 4;\n if (ce != null)\n d[b] = 20, b += 2;\n d[b] = 20, b += 2; // spec compliance? what's that?\n d[b++] = (t == 8 && (o.level == 1 ? 6 : o.level < 6 ? 4 : o.level == 9 ? 2 : 0)), d[b++] = u && 8;\n d[b] = t, b += 2;\n var dt = new Date(o.mtime || Date.now()), y = dt.getFullYear() - 1980;\n if (y < 0 || y > 119)\n throw 'date not in range 1980-2099';\n wbytes(d, b, ((y << 24) * 2) | ((dt.getMonth() + 1) << 21) | (dt.getDate() << 16) | (dt.getHours() << 11) | (dt.getMinutes() << 5) | (dt.getSeconds() >>> 1));\n b += 4;\n wbytes(d, b, c);\n wbytes(d, b + 4, l);\n wbytes(d, b + 8, su);\n wbytes(d, b + 12, fl), b += 16; // skip extra field, comment\n if (ce != null)\n wbytes(d, b += 10, ce), b += 4;\n d.set(fn, b);\n b += fl;\n if (ce == null)\n d.set(cmp, b);\n};\n// write zip footer (end of central directory)\nvar wzf = function (o, b, c, d, e) {\n wbytes(o, b, 0x6054B50); // skip disk\n wbytes(o, b + 8, c);\n wbytes(o, b + 10, c);\n wbytes(o, b + 12, d);\n wbytes(o, b + 16, e);\n};\nexport function zip(data, opts, cb) {\n if (!cb)\n cb = opts, opts = {};\n if (typeof cb != 'function')\n throw 'no callback';\n var r = {};\n fltn(data, '', r, opts);\n var k = Object.keys(r);\n var lft = k.length, o = 0, tot = 0;\n var slft = lft, files = new Array(lft);\n var term = [];\n var tAll = function () {\n for (var i = 0; i < term.length; ++i)\n term[i]();\n };\n var cbf = function () {\n var out = new u8(tot + 22), oe = o, cdl = tot - o;\n tot = 0;\n for (var i = 0; i < slft; ++i) {\n var f = files[i];\n try {\n wzh(out, tot, f.c, f.d, f.m, f.n, f.u, f.p, null, f.t);\n wzh(out, o, f.c, f.d, f.m, f.n, f.u, f.p, tot, f.t), o += 46 + f.n.length, tot += 30 + f.n.length + f.d.length;\n }\n catch (e) {\n return cb(e, null);\n }\n }\n wzf(out, o, files.length, cdl, oe);\n cb(null, out);\n };\n if (!lft)\n cbf();\n var _loop_1 = function (i) {\n var fn = k[i];\n var _a = r[fn], file = _a[0], p = _a[1];\n var c = crc(), m = file.length;\n c.p(file);\n var n = strToU8(fn), s = n.length;\n var t = p.level == 0 ? 0 : 8;\n var cbl = function (e, d) {\n if (e) {\n tAll();\n cb(e, null);\n }\n else {\n var l = d.length;\n files[i] = {\n t: t,\n d: d,\n m: m,\n c: c.d(),\n u: fn.length != l,\n n: n,\n p: p\n };\n o += 30 + s + l;\n tot += 76 + 2 * s + l;\n if (!--lft)\n cbf();\n }\n };\n if (n.length > 65535)\n cbl('filename too long', null);\n if (!t)\n cbl(null, file);\n else if (m < 160000) {\n try {\n cbl(null, deflateSync(file, p));\n }\n catch (e) {\n cbl(e, null);\n }\n }\n else\n term.push(deflate(file, p, cbl));\n };\n // Cannot use lft because it can decrease\n for (var i = 0; i < slft; ++i) {\n _loop_1(i);\n }\n return tAll;\n}\n/**\n * Synchronously creates a ZIP file. Prefer using `zip` for better performance\n * with more than one file.\n * @param data The directory structure for the ZIP archive\n * @param opts The main options, merged with per-file options\n * @returns The generated ZIP archive\n */\nexport function zipSync(data, opts) {\n if (opts === void 0) { opts = {}; }\n var r = {};\n var files = [];\n fltn(data, '', r, opts);\n var o = 0;\n var tot = 0;\n for (var fn in r) {\n var _a = r[fn], file = _a[0], p = _a[1];\n var t = p.level == 0 ? 0 : 8;\n var n = strToU8(fn), s = n.length;\n if (n.length > 65535)\n throw 'filename too long';\n var d = t ? deflateSync(file, p) : file, l = d.length;\n var c = crc();\n c.p(file);\n files.push({\n t: t,\n d: d,\n m: file.length,\n c: c.d(),\n u: fn.length != s,\n n: n,\n o: o,\n p: p\n });\n o += 30 + s + l;\n tot += 76 + 2 * s + l;\n }\n var out = new u8(tot + 22), oe = o, cdl = tot - o;\n for (var i = 0; i < files.length; ++i) {\n var f = files[i];\n wzh(out, f.o, f.c, f.d, f.m, f.n, f.u, f.p, null, f.t);\n wzh(out, o, f.c, f.d, f.m, f.n, f.u, f.p, f.o, f.t), o += 46 + f.n.length;\n }\n wzf(out, o, files.length, cdl, oe);\n return out;\n}\n/**\n * Asynchronously decompresses a ZIP archive\n * @param data The raw compressed ZIP file\n * @param cb The callback to call with the decompressed files\n * @returns A function that can be used to immediately terminate the unzipping\n */\nexport function unzip(data, cb) {\n if (typeof cb != 'function')\n throw 'no callback';\n var term = [];\n var tAll = function () {\n for (var i = 0; i < term.length; ++i)\n term[i]();\n };\n var files = {};\n var e = data.length - 22;\n for (; b4(data, e) != 0x6054B50; --e) {\n if (!e || data.length - e > 65558) {\n cb('invalid zip file', null);\n return;\n }\n }\n ;\n var lft = b2(data, e + 8);\n if (!lft)\n cb(null, {});\n var c = lft;\n var o = b4(data, e + 16);\n var z = o == 4294967295;\n if (z) {\n e = b4(data, e - 12);\n if (b4(data, e) != 0x6064B50)\n throw 'invalid zip file';\n c = lft = b4(data, e + 32);\n o = b4(data, e + 48);\n }\n var _loop_2 = function (i) {\n var _a = zh(data, o, z), c_1 = _a[0], sc = _a[1], su = _a[2], fn = _a[3], no = _a[4], off = _a[5], b = slzh(data, off);\n o = no;\n var cbl = function (e, d) {\n if (e) {\n tAll();\n cb(e, null);\n }\n else {\n files[fn] = d;\n if (!--lft)\n cb(null, files);\n }\n };\n if (!c_1)\n cbl(null, slc(data, b, b + sc));\n else if (c_1 == 8) {\n var infl = data.subarray(b, b + sc);\n if (sc < 320000) {\n try {\n cbl(null, inflateSync(infl, new u8(su)));\n }\n catch (e) {\n cbl(e, null);\n }\n }\n else\n term.push(inflate(infl, { size: su }, cbl));\n }\n else\n cbl('unknown compression type ' + c_1, null);\n };\n for (var i = 0; i < c; ++i) {\n _loop_2(i);\n }\n return tAll;\n}\n/**\n * Synchronously decompresses a ZIP archive. Prefer using `unzip` for better\n * performance with more than one file.\n * @param data The raw compressed ZIP file\n * @returns The decompressed files\n */\nexport function unzipSync(data) {\n var files = {};\n var e = data.length - 22;\n for (; b4(data, e) != 0x6054B50; --e) {\n if (!e || data.length - e > 65558)\n throw 'invalid zip file';\n }\n ;\n var c = b2(data, e + 8);\n if (!c)\n return {};\n var o = b4(data, e + 16);\n var z = o == 4294967295;\n if (z) {\n e = b4(data, e - 12);\n if (b4(data, e) != 0x6064B50)\n throw 'invalid zip file';\n c = b4(data, e + 32);\n o = b4(data, e + 48);\n }\n for (var i = 0; i < c; ++i) {\n var _a = zh(data, o, z), c_2 = _a[0], sc = _a[1], su = _a[2], fn = _a[3], no = _a[4], off = _a[5], b = slzh(data, off);\n o = no;\n if (!c_2)\n files[fn] = slc(data, b, b + sc);\n else if (c_2 == 8)\n files[fn] = inflateSync(data.subarray(b, b + sc), new u8(su));\n else\n throw 'unknown compression type ' + c_2;\n }\n return files;\n}\n","import type { MaskInputOptions, SlimDOMOptions } from 'rrweb-snapshot'\nimport { PostHog } from './posthog-core'\nimport { CaptureMetrics } from './capture-metrics'\nimport { RetryQueue } from './retry-queue'\n\nexport type Property = any\nexport type Properties = Record\nexport interface CaptureResult {\n uuid: string\n event: string\n properties: Properties\n $set?: Properties\n $set_once?: Properties\n timestamp?: Date\n}\nexport type CaptureCallback = (response: any, data: any) => void\n\nexport type AutocaptureCompatibleElement = 'a' | 'button' | 'form' | 'input' | 'select' | 'textarea' | 'label'\nexport type DomAutocaptureEvents = 'click' | 'change' | 'submit'\n\n/**\n * If an array is passed for an allowlist, autocapture events will only be sent for elements matching\n * at least one of the elements in the array. Multiple allowlists can be used\n */\nexport interface AutocaptureConfig {\n /**\n * List of URLs to allow autocapture on, can be strings to match\n * or regexes e.g. ['https://example.com', 'test.com/.*']\n */\n url_allowlist?: (string | RegExp)[]\n\n /**\n * List of DOM events to allow autocapture on e.g. ['click', 'change', 'submit']\n */\n dom_event_allowlist?: DomAutocaptureEvents[]\n\n /**\n * List of DOM elements to allow autocapture on\n * e.g. ['a', 'button', 'form', 'input', 'select', 'textarea', 'label']\n */\n element_allowlist?: AutocaptureCompatibleElement[]\n\n /**\n * List of CSS selectors to allow autocapture on\n * e.g. ['[ph-capture]']\n */\n css_selector_allowlist?: string[]\n}\n\nexport interface PostHogConfig {\n api_host: string\n api_method: string\n api_transport: string\n ui_host: string | null\n token: string\n autocapture: boolean | AutocaptureConfig\n rageclick: boolean\n cross_subdomain_cookie: boolean\n persistence: 'localStorage' | 'cookie' | 'memory' | 'localStorage+cookie' | 'sessionStorage'\n persistence_name: string\n cookie_name: string\n loaded: (posthog_instance: PostHog) => void\n store_google: boolean\n custom_campaign_params: string[]\n save_referrer: boolean\n test: boolean\n verbose: boolean\n capture_pageview: boolean\n capture_pageleave: boolean\n debug: boolean\n cookie_expiration: number\n upgrade: boolean\n disable_session_recording: boolean\n disable_persistence: boolean\n disable_cookie: boolean\n enable_recording_console_log?: boolean\n secure_cookie: boolean\n ip: boolean\n opt_out_capturing_by_default: boolean\n opt_out_persistence_by_default: boolean\n opt_out_capturing_persistence_type: 'localStorage' | 'cookie'\n opt_out_capturing_cookie_prefix: string | null\n opt_in_site_apps: boolean\n respect_dnt: boolean\n property_blacklist: string[]\n xhr_headers: { [header_name: string]: string }\n on_xhr_error: (failedRequest: XMLHttpRequest) => void\n inapp_protocol: string\n inapp_link_new_window: boolean\n request_batching: boolean\n sanitize_properties: ((properties: Properties, event_name: string) => Properties) | null\n properties_string_max_length: number\n session_recording: SessionRecordingOptions\n mask_all_element_attributes: boolean\n mask_all_text: boolean\n advanced_disable_decide: boolean\n advanced_disable_toolbar_metrics: boolean\n get_device_id: (uuid: string) => string\n name: string\n callback_fn: string\n _onCapture: (eventName: string, eventData: CaptureResult) => void\n _capture_metrics: boolean\n capture_performance?: boolean\n // Should only be used for testing. Could negatively impact performance.\n disable_compression: boolean\n bootstrap: {\n distinctID?: string\n isIdentifiedID?: boolean\n featureFlags?: Record\n featureFlagPayloads?: Record\n }\n segment?: any\n}\n\nexport interface OptInOutCapturingOptions {\n capture: (event: string, properties: Properties, options: CaptureOptions) => void\n capture_event_name: string\n capture_properties: Properties\n enable_persistence: boolean\n clear_persistence: boolean\n persistence_type: 'cookie' | 'localStorage' | 'localStorage+cookie'\n cookie_prefix: string\n cookie_expiration: number\n cross_subdomain_cookie: boolean\n secure_cookie: boolean\n}\n\nexport interface isFeatureEnabledOptions {\n send_event: boolean\n}\n\nexport interface SessionRecordingOptions {\n blockClass?: string | RegExp\n blockSelector?: string | null\n ignoreClass?: string\n maskTextClass?: string | RegExp\n maskTextSelector?: string | null\n maskTextFn?: ((text: string) => string) | null\n maskAllInputs?: boolean\n maskInputOptions?: MaskInputOptions\n maskInputFn?: ((text: string, element?: HTMLElement) => string) | null\n /** Modify the network request before it is captured. Returning null stops it being captured */\n maskNetworkRequestFn?: ((url: NetworkRequest) => NetworkRequest | null | undefined) | null\n slimDOMOptions?: SlimDOMOptions | 'all' | true\n collectFonts?: boolean\n inlineStylesheet?: boolean\n recorderVersion?: 'v1' | 'v2'\n recordCrossOriginIframes?: boolean\n}\n\nexport enum Compression {\n GZipJS = 'gzip-js',\n Base64 = 'base64',\n}\n\nexport interface XHROptions {\n transport?: 'XHR' | 'sendBeacon'\n method?: 'POST' | 'GET'\n urlQueryArgs?: { compression: Compression }\n verbose?: boolean\n blob?: boolean\n sendBeacon?: boolean\n}\n\nexport interface CaptureOptions extends XHROptions {\n $set?: Properties /** used with $identify */\n $set_once?: Properties /** used with $identify */\n _batchKey?: string /** key of queue, e.g. 'sessionRecording' vs 'event' */\n _metrics?: Properties\n _noTruncate?: boolean /** if set, overrides and disables config.properties_string_max_length */\n endpoint?: string /** defaults to '/e/' */\n send_instantly?: boolean /** if set skips the batched queue */\n timestamp?: Date\n}\n\nexport interface RetryQueueElement {\n retryAt: Date\n requestData: QueuedRequestData\n}\nexport interface QueuedRequestData {\n url: string\n data: Properties\n options: CaptureOptions\n headers?: Properties\n callback?: RequestCallback\n retriesPerformedSoFar?: number\n}\n\nexport interface XHRParams extends QueuedRequestData {\n captureMetrics: CaptureMetrics\n retryQueue: RetryQueue\n onXHRError: (req: XMLHttpRequest) => void\n timeout?: number\n}\n\nexport interface DecideResponse {\n status: number\n supportedCompression: Compression[]\n config: {\n enable_collect_everything: boolean\n }\n custom_properties: AutoCaptureCustomProperty[] // TODO: delete, not sent\n featureFlags: Record\n featureFlagPayloads: Record\n errorsWhileComputingFlags: boolean\n autocapture_opt_out?: boolean\n capturePerformance?: boolean\n // this is currently in development and may have breaking changes without a major version bump\n autocaptureExceptions?: boolean\n sessionRecording?: {\n endpoint?: string\n consoleLogRecordingEnabled?: boolean\n recorderVersion?: 'v1' | 'v2'\n }\n toolbarParams: ToolbarParams\n editorParams?: ToolbarParams /** @deprecated, renamed to toolbarParams, still present on older API responses */\n toolbarVersion: 'toolbar' /** @deprecated, moved to toolbarParams */\n isAuthenticated: boolean\n siteApps: { id: number; url: string }[]\n}\n\nexport type FeatureFlagsCallback = (flags: string[], variants: Record) => void\n\n// TODO: delete custom_properties after changeless typescript refactor\nexport interface AutoCaptureCustomProperty {\n name: string\n css_selector: string\n event_selectors: string[]\n}\n\nexport interface CompressionData {\n data: string\n compression?: Compression\n}\n\nexport interface GDPROptions {\n capture?: (\n event: string,\n properties: Properties,\n options: CaptureOptions\n ) => void /** function used for capturing a PostHog event to record the opt-in action */\n captureEventName?: string /** event name to be used for capturing the opt-in action */\n captureProperties?: Properties /** set of properties to be captured along with the opt-in action */\n /** persistence mechanism used */\n persistenceType?: 'cookie' | 'localStorage' | 'localStorage+cookie'\n persistencePrefix?: string /** [__ph_opt_in_out] - custom prefix to be used in the cookie/localstorage name */\n cookieExpiration?: number /** number of days until the opt-in cookie expires */\n crossSubdomainCookie?: boolean /** whether the opt-in cookie is set as cross-subdomain or not */\n secureCookie?: boolean /** whether the opt-in cookie is set as secure or not */\n respectDnt?: boolean\n window?: Window\n}\n\nexport type RequestCallback = (response: Record, data?: Properties) => void\n\nexport interface PersistentStore {\n is_supported: () => boolean\n error: (error: any) => void\n parse: (name: string) => any\n get: (name: string) => any\n set: (name: string, value: any, expire_days?: number | null, cross_subdomain?: boolean, secure?: boolean) => void\n remove: (name: string, cross_subdomain?: boolean) => void\n}\n\n// eslint-disable-next-line @typescript-eslint/ban-types\nexport type Breaker = {}\nexport type EventHandler = (event: Event) => boolean | void\n\nexport type ToolbarUserIntent = 'add-action' | 'edit-action'\nexport type ToolbarSource = 'url' | 'localstorage'\nexport type ToolbarVersion = 'toolbar'\n\n/* sync with posthog */\nexport interface ToolbarParams {\n token?: string /** public posthog-js token */\n temporaryToken?: string /** private temporary user token */\n actionId?: number\n userIntent?: ToolbarUserIntent\n source?: ToolbarSource\n toolbarVersion?: ToolbarVersion\n instrument?: boolean\n distinctId?: string\n userEmail?: string\n dataAttributes?: string[]\n featureFlags?: Record\n}\n\nexport interface PostData {\n buffer?: BlobPart\n compression?: Compression\n data?: string\n}\n\nexport interface JSC {\n (): void\n [key: string]: (response: any) => void\n}\n\nexport type SnippetArrayItem = [method: string, ...args: any[]]\n\nexport type JsonType = string | number | boolean | null | { [key: string]: JsonType } | Array\n\n/** A feature that isn't publicly available yet.*/\nexport interface EarlyAccessFeature {\n // Sync this with the backend's EarlyAccessFeatureSerializer!\n name: string\n description: string\n stage: 'concept' | 'alpha' | 'beta'\n documentationUrl: string | null\n flagKey: string | null\n}\n\nexport type EarlyAccessFeatureCallback = (earlyAccessFeatures: EarlyAccessFeature[]) => void\n\nexport interface EarlyAccessFeatureResponse {\n earlyAccessFeatures: EarlyAccessFeature[]\n}\n\nexport type NetworkRequest = {\n url: string\n}\n\nexport interface Survey {\n // Sync this with the backend's SurveySerializer!\n name: string\n description: string\n type: SurveyType\n linked_flag_key?: string | null\n targeting_flag_key?: string | null\n questions: SurveyQuestion[]\n appearance?: SurveyAppearance | null\n conditions?: { url?: string; selector?: string } | null\n start_date?: string | null\n end_date?: string | null\n}\n\nexport interface SurveyAppearance {\n background_color?: string\n button_color?: string\n text_color?: string\n}\n\nexport enum SurveyType {\n Popover = 'Popover',\n Button = 'Button',\n Email = 'Email',\n FullScreen = 'Fullscreen',\n}\n\nexport interface SurveyQuestion {\n type: SurveyQuestionType\n question: string\n required?: boolean\n link?: boolean\n choices?: string[]\n}\n\nexport enum SurveyQuestionType {\n Open = 'open',\n MultipleChoiceSingle = 'multiple_single',\n MultipleChoiceMulti = 'multiple_multi',\n NPS = 'nps',\n Rating = 'rating',\n Link = 'link',\n}\n\nexport type SurveyCallback = (surveys: Survey[]) => void\n\nexport interface SurveyResponse {\n surveys: Survey[]\n}\n","import { _each, _HTTPBuildQuery, logger } from './utils'\nimport Config from './config'\nimport { PostData, XHROptions, XHRParams } from './types'\n\nexport const addParamsToURL = (\n url: string,\n urlQueryArgs: Record | undefined,\n parameterOptions: { ip?: boolean }\n): string => {\n const args = urlQueryArgs || {}\n args['ip'] = parameterOptions['ip'] ? 1 : 0\n args['_'] = new Date().getTime().toString()\n args['ver'] = Config.LIB_VERSION\n\n const halves = url.split('?')\n if (halves.length > 1) {\n const params = halves[1].split('&')\n for (const p of params) {\n const key = p.split('=')[0]\n if (args[key]) {\n delete args[key]\n }\n }\n }\n\n const argSeparator = url.indexOf('?') > -1 ? '&' : '?'\n return url + argSeparator + _HTTPBuildQuery(args)\n}\n\nexport const encodePostData = (data: PostData | Uint8Array, options: Partial): string | BlobPart | null => {\n if (options.blob && data.buffer) {\n return new Blob([data.buffer], { type: 'text/plain' })\n }\n\n if (options.sendBeacon || options.blob) {\n const body = encodePostData(data, { method: 'POST' }) as BlobPart\n return new Blob([body], { type: 'application/x-www-form-urlencoded' })\n }\n\n if (options.method !== 'POST') {\n return null\n }\n\n let body_data\n const isUint8Array = (d: unknown): d is Uint8Array => Object.prototype.toString.call(d) === '[object Uint8Array]'\n if (Array.isArray(data) || isUint8Array(data)) {\n // TODO: eh? passing an Array here?\n body_data = 'data=' + encodeURIComponent(data as any)\n } else {\n body_data = 'data=' + encodeURIComponent(data.data as string)\n }\n\n if ('compression' in data && data.compression) {\n body_data += '&compression=' + data.compression\n }\n\n return body_data\n}\n\nexport const xhr = ({\n url,\n data,\n headers,\n options,\n captureMetrics,\n callback,\n retriesPerformedSoFar,\n retryQueue,\n onXHRError,\n timeout = 10000,\n}: XHRParams) => {\n const req = new XMLHttpRequest()\n req.open(options.method || 'GET', url, true)\n\n const body = encodePostData(data, options)\n\n captureMetrics.incr('_send_request')\n captureMetrics.incr('_send_request_inflight')\n\n _each(headers, function (headerValue, headerName) {\n req.setRequestHeader(headerName, headerValue)\n })\n\n if (options.method === 'POST' && !options.blob) {\n req.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded')\n }\n\n req.timeout = timeout\n // send the ph_optout cookie\n // withCredentials cannot be modified until after calling .open on Android and Mobile Safari\n req.withCredentials = true\n req.onreadystatechange = () => {\n if (req.readyState === 4) {\n captureMetrics.incr(`xhr-response`)\n captureMetrics.incr(`xhr-response-${req.status}`)\n captureMetrics.decr('_send_request_inflight')\n\n // XMLHttpRequest.DONE == 4, except in safari 4\n if (req.status === 200) {\n if (callback) {\n let response\n try {\n response = JSON.parse(req.responseText)\n } catch (e) {\n logger.error(e)\n return\n }\n callback(response)\n }\n } else {\n if (typeof onXHRError === 'function') {\n onXHRError(req)\n }\n\n // don't retry certain errors\n if ([401, 403, 404, 500].indexOf(req.status) < 0) {\n retryQueue.enqueue({\n url,\n data,\n options,\n headers,\n retriesPerformedSoFar: (retriesPerformedSoFar || 0) + 1,\n callback,\n })\n }\n\n if (callback) {\n callback({ status: 0 })\n }\n }\n }\n }\n req.send(body)\n}\n","import { RequestQueueScaffold } from './base-request-queue'\nimport { encodePostData, xhr } from './send-request'\nimport { CaptureMetrics } from './capture-metrics'\nimport { QueuedRequestData, RetryQueueElement } from './types'\nimport Config from './config'\n\nconst thirtyMinutes = 30 * 60 * 1000\n\n/**\n * Generates a jitter-ed exponential backoff delay in milliseconds\n *\n * The base value is 6 seconds, which is doubled with each retry\n * up to the maximum of 30 minutes\n *\n * Each value then has +/- 50% jitter\n *\n * Giving a range of 6 seconds up to 45 minutes\n */\nexport function pickNextRetryDelay(retriesPerformedSoFar: number): number {\n const rawBackoffTime = 3000 * 2 ** retriesPerformedSoFar\n const minBackoff = rawBackoffTime / 2\n const cappedBackoffTime = Math.min(thirtyMinutes, rawBackoffTime)\n const jitterFraction = Math.random() - 0.5 // A random number between -0.5 and 0.5\n const jitter = jitterFraction * (cappedBackoffTime - minBackoff)\n return Math.ceil(cappedBackoffTime + jitter)\n}\n\nexport class RetryQueue extends RequestQueueScaffold {\n captureMetrics: CaptureMetrics\n queue: RetryQueueElement[]\n isPolling: boolean\n areWeOnline: boolean\n onXHRError: (failedRequest: XMLHttpRequest) => void\n\n constructor(captureMetrics: CaptureMetrics, onXHRError: (failedRequest: XMLHttpRequest) => void) {\n super()\n this.captureMetrics = captureMetrics\n this.isPolling = false\n this.queue = []\n this.areWeOnline = true\n this.onXHRError = onXHRError\n\n if (typeof window !== 'undefined' && 'onLine' in window.navigator) {\n this.areWeOnline = window.navigator.onLine\n window.addEventListener('online', () => {\n this._handleWeAreNowOnline()\n })\n window.addEventListener('offline', () => {\n this.areWeOnline = false\n })\n }\n }\n\n enqueue(requestData: QueuedRequestData): void {\n const retriesPerformedSoFar = requestData.retriesPerformedSoFar || 0\n if (retriesPerformedSoFar >= 10) {\n return\n }\n const msToNextRetry = pickNextRetryDelay(retriesPerformedSoFar)\n const retryAt = new Date(Date.now() + msToNextRetry)\n\n this.queue.push({ retryAt, requestData })\n console.warn(`Enqueued failed request for retry in ${msToNextRetry}`)\n if (!this.isPolling) {\n this.isPolling = true\n this.poll()\n }\n }\n\n poll(): void {\n this._poller && clearTimeout(this._poller)\n this._poller = setTimeout(() => {\n if (this.areWeOnline && this.queue.length > 0) {\n this.flush()\n }\n this.poll()\n }, this._pollInterval) as any as number\n }\n\n flush(): void {\n // using Date.now to make tests easier as recommended here https://codewithhugo.com/mocking-the-current-date-in-jest-tests/\n const now = new Date(Date.now())\n const toFlush = this.queue.filter(({ retryAt }) => retryAt < now)\n if (toFlush.length > 0) {\n this.queue = this.queue.filter(({ retryAt }) => retryAt >= now)\n for (const { requestData } of toFlush) {\n this._executeXhrRequest(requestData)\n }\n }\n }\n\n unload(): void {\n if (this._poller) {\n clearTimeout(this._poller)\n this._poller = undefined\n }\n for (const { requestData } of this.queue) {\n const { url, data, options } = requestData\n try {\n // we've had send beacon in place for at least 2 years\n // eslint-disable-next-line compat/compat\n window.navigator.sendBeacon(url, encodePostData(data, { ...options, sendBeacon: true }))\n } catch (e) {\n // Note sendBeacon automatically retries, and after the first retry it will loose reference to contextual `this`.\n // This means in some cases `this.getConfig` will be undefined.\n if (Config.DEBUG) {\n console.error(e)\n }\n }\n }\n this.queue = []\n }\n\n _executeXhrRequest({ url, data, options, headers, callback, retriesPerformedSoFar }: QueuedRequestData): void {\n xhr({\n url,\n data: data || {},\n options: options || {},\n headers: headers || {},\n retriesPerformedSoFar: retriesPerformedSoFar || 0,\n callback,\n captureMetrics: this.captureMetrics,\n retryQueue: this,\n onXHRError: this.onXHRError,\n })\n }\n\n _handleWeAreNowOnline(): void {\n this.areWeOnline = true\n this.flush()\n }\n}\n","import { PostHogPersistence, SESSION_ID } from './posthog-persistence'\nimport { sessionStore } from './storage'\nimport { _UUID } from './utils'\nimport { PostHogConfig } from './types'\n\nconst SESSION_CHANGE_THRESHOLD = 30 * 60 * 1000 // 30 mins\nconst SESSION_LENGTH_LIMIT = 24 * 3600 * 1000 // 24 hours\n\nexport class SessionIdManager {\n config: Partial\n persistence: PostHogPersistence\n _windowId: string | null | undefined\n _sessionId: string | null | undefined\n window_id_storage_key: string\n primary_window_exists_storage_key: string\n _sessionStartTimestamp: number | null\n _sessionActivityTimestamp: number | null\n\n constructor(config: Partial, persistence: PostHogPersistence) {\n this.config = config\n this.persistence = persistence\n this._windowId = undefined\n this._sessionId = undefined\n this._sessionStartTimestamp = null\n this._sessionActivityTimestamp = null\n\n const persistenceName = config['persistence_name'] || config['token']\n\n this.window_id_storage_key = 'ph_' + persistenceName + '_window_id'\n this.primary_window_exists_storage_key = 'ph_' + persistenceName + '_primary_window_exists'\n\n // primary_window_exists is set when the DOM has been loaded and is cleared on unload\n // if it exists here it means there was no unload which suggests this window is opened as a tab duplication, window.open, etc.\n if (this._canUseSessionStorage()) {\n const lastWindowId = sessionStore.parse(this.window_id_storage_key)\n\n const primaryWindowExists = sessionStore.parse(this.primary_window_exists_storage_key)\n if (lastWindowId && !primaryWindowExists) {\n // Persist window from previous storage state\n this._windowId = lastWindowId\n } else {\n // Wipe any reference to previous window id\n sessionStore.remove(this.window_id_storage_key)\n }\n // Flag this session as having a primary window\n sessionStore.set(this.primary_window_exists_storage_key, true)\n }\n\n this._listenToReloadWindow()\n }\n\n _canUseSessionStorage(): boolean {\n // We only want to use sessionStorage if persistence is enabled and not memory storage\n return this.config.persistence !== 'memory' && !this.persistence.disabled && sessionStore.is_supported()\n }\n\n // Note: this tries to store the windowId in sessionStorage. SessionStorage is unique to the current window/tab,\n // and persists page loads/reloads. So it's uniquely suited for storing the windowId. This function also respects\n // when persistence is disabled (by user config) and when sessionStorage is not supported (it *should* be supported on all browsers),\n // and in that case, it falls back to memory (which sadly, won't persist page loads)\n _setWindowId(windowId: string): void {\n if (windowId !== this._windowId) {\n this._windowId = windowId\n if (this._canUseSessionStorage()) {\n sessionStore.set(this.window_id_storage_key, windowId)\n }\n }\n }\n\n _getWindowId(): string | null {\n if (this._windowId) {\n return this._windowId\n }\n if (this._canUseSessionStorage()) {\n return sessionStore.parse(this.window_id_storage_key)\n }\n // New window id will be generated\n return null\n }\n\n // Note: 'this.persistence.register' can be disabled in the config.\n // In that case, this works by storing sessionId and the timestamp in memory.\n _setSessionId(\n sessionId: string | null,\n sessionActivityTimestamp: number | null,\n sessionStartTimestamp: number | null\n ): void {\n if (\n sessionId !== this._sessionId ||\n sessionActivityTimestamp !== this._sessionActivityTimestamp ||\n sessionStartTimestamp !== this._sessionStartTimestamp\n ) {\n this._sessionStartTimestamp = sessionStartTimestamp\n this._sessionActivityTimestamp = sessionActivityTimestamp\n this._sessionId = sessionId\n this.persistence.register({\n [SESSION_ID]: [sessionActivityTimestamp, sessionId, sessionStartTimestamp],\n })\n }\n }\n\n _getSessionId(): [number, string, number] {\n if (this._sessionId && this._sessionActivityTimestamp && this._sessionStartTimestamp) {\n return [this._sessionActivityTimestamp, this._sessionId, this._sessionStartTimestamp]\n }\n const sessionId = this.persistence.props[SESSION_ID]\n\n if (Array.isArray(sessionId) && sessionId.length === 2) {\n // Storage does not yet have a session start time. Add the last activity timestamp as the start time\n sessionId.push(sessionId[0])\n }\n\n return sessionId || [0, null, 0]\n }\n\n // Resets the session id by setting it to null. On the subsequent call to checkAndGetSessionAndWindowId,\n // new ids will be generated.\n resetSessionId(): void {\n this._setSessionId(null, null, null)\n }\n\n /*\n * Listens to window unloads and removes the primaryWindowExists key from sessionStorage.\n * Reloaded or fresh tabs created after a DOM unloads (reloading the same tab) WILL NOT have this primaryWindowExists flag in session storage.\n * Cloned sessions (new tab, tab duplication, window.open(), ...) WILL have this primaryWindowExists flag in their copied session storage.\n * We conditionally check the primaryWindowExists value in the constructor to decide if the window id in the last session storage should be carried over.\n */\n _listenToReloadWindow(): void {\n window.addEventListener('beforeunload', () => {\n if (this._canUseSessionStorage()) {\n sessionStore.remove(this.primary_window_exists_storage_key)\n }\n })\n }\n\n /*\n * This function returns the current sessionId and windowId. It should be used to\n * access these values over directly calling `._sessionId` or `._windowId`. In addition\n * to returning the sessionId and windowId, this function also manages cycling the\n * sessionId and windowId when appropriate by doing the following:\n *\n * 1. If the sessionId or windowId is not set, it will generate a new one and store it.\n * 2. If the readOnly param is set to false, it will:\n * a. Check if it has been > SESSION_CHANGE_THRESHOLD since the last call with this flag set.\n * If so, it will generate a new sessionId and store it.\n * b. Update the timestamp stored with the sessionId to ensure the current session is extended\n * for the appropriate amount of time.\n *\n * @param {boolean} readOnly (optional) Defaults to False. Should be set to True when the call to the function should not extend or cycle the session (e.g. being called for non-user generated events)\n * @param {Number} timestamp (optional) Defaults to the current time. The timestamp to be stored with the sessionId (used when determining if a new sessionId should be generated)\n */\n checkAndGetSessionAndWindowId(readOnly = false, _timestamp: number | null = null) {\n const timestamp = _timestamp || new Date().getTime()\n\n // eslint-disable-next-line prefer-const\n let [lastTimestamp, sessionId, startTimestamp] = this._getSessionId()\n let windowId = this._getWindowId()\n\n const sessionPastMaximumLength =\n startTimestamp && startTimestamp > 0 && Math.abs(timestamp - startTimestamp) > SESSION_LENGTH_LIMIT\n\n if (\n !sessionId ||\n (!readOnly && Math.abs(timestamp - lastTimestamp) > SESSION_CHANGE_THRESHOLD) ||\n sessionPastMaximumLength\n ) {\n sessionId = _UUID()\n windowId = _UUID()\n startTimestamp = timestamp\n } else if (!windowId) {\n windowId = _UUID()\n }\n\n const newTimestamp = lastTimestamp === 0 || !readOnly || sessionPastMaximumLength ? timestamp : lastTimestamp\n const sessionStartTimestamp = startTimestamp === 0 ? new Date().getTime() : startTimestamp\n\n this._setWindowId(windowId)\n this._setSessionId(sessionId, newTimestamp, sessionStartTimestamp)\n\n return {\n sessionId: sessionId,\n windowId: windowId,\n }\n }\n}\n","/**\n * Integrate Sentry with PostHog. This will add a direct link to the person in Sentry, and an $exception event in PostHog\n *\n * ### Usage\n *\n * Sentry.init({\n * dsn: 'https://example',\n * integrations: [\n * new posthog.SentryIntegration(posthog)\n * ]\n * })\n *\n * @param {Object} [posthog] The posthog object\n * @param {string} [organization] Optional: The Sentry organization, used to send a direct link from PostHog to Sentry\n * @param {Number} [projectId] Optional: The Sentry project id, used to send a direct link from PostHog to Sentry\n * @param {string} [prefix] Optional: Url of a self-hosted sentry instance (default: https://sentry.io/organizations/)\n */\n\nimport { PostHog } from '../posthog-core'\nimport { ErrorProperties } from './exceptions/error-conversion'\n\n// NOTE - we can't import from @sentry/types because it changes frequently and causes clashes\n// We only use a small subset of the types, so we can just define the integration overall and use any for the rest\n\n// import {\n// Event as _SentryEvent,\n// EventProcessor as _SentryEventProcessor,\n// Hub as _SentryHub,\n// Integration as _SentryIntegration,\n// } from '@sentry/types'\n\n// Uncomment the above and comment the below to get type checking for development\n\ntype _SentryEvent = any\ntype _SentryEventProcessor = any\ntype _SentryHub = any\n\ninterface _SentryIntegration {\n name: string\n setupOnce(addGlobalEventProcessor: (callback: _SentryEventProcessor) => void, getCurrentHub: () => _SentryHub): void\n}\n\ninterface SentryExceptionProperties {\n $sentry_event_id: any\n $sentry_exception: any\n $sentry_exception_message: any\n $sentry_exception_type: any\n $sentry_tags: any\n $sentry_url?: string\n}\n\nexport class SentryIntegration implements _SentryIntegration {\n name: string\n\n setupOnce: (\n addGlobalEventProcessor: (callback: _SentryEventProcessor) => void,\n getCurrentHub: () => _SentryHub\n ) => void\n\n constructor(_posthog: PostHog, organization?: string, projectId?: number, prefix?: string) {\n // setupOnce gets called by Sentry when it intializes the plugin\n this.name = 'posthog-js'\n this.setupOnce = function (addGlobalEventProcessor: (callback: _SentryEventProcessor) => void) {\n addGlobalEventProcessor((event: _SentryEvent) => {\n if (event.level !== 'error' || !_posthog.__loaded) return event\n if (!event.tags) event.tags = {}\n\n const host = _posthog.config.ui_host || _posthog.config.api_host\n event.tags['PostHog Person URL'] = host + '/person/' + _posthog.get_distinct_id()\n if (_posthog.sessionRecordingStarted()) {\n event.tags['PostHog Recording URL'] = _posthog.get_session_replay_url({ withTimestamp: true })\n }\n\n const exceptions = event.exception?.values || []\n\n const data: SentryExceptionProperties & ErrorProperties = {\n // PostHog Exception Properties,\n $exception_message: exceptions[0]?.value,\n $exception_type: exceptions[0]?.type,\n $exception_personURL: host + '/person/' + _posthog.get_distinct_id(),\n // Sentry Exception Properties\n $sentry_event_id: event.event_id,\n $sentry_exception: event.exception,\n $sentry_exception_message: exceptions[0]?.value,\n $sentry_exception_type: exceptions[0]?.type,\n $sentry_tags: event.tags,\n }\n\n if (organization && projectId)\n data['$sentry_url'] =\n (prefix || 'https://sentry.io/organizations/') +\n organization +\n '/issues/?project=' +\n projectId +\n '&query=' +\n event.event_id\n _posthog.capture('$exception', data)\n return event\n })\n }\n }\n}\n","import { _UUID } from './utils'\n\nexport class PageViewIdManager {\n _pageViewId: string | undefined\n\n _seenFirstPageView = false\n\n onPageview(): void {\n // As the first $pageview event may come after a different event,\n // we only reset the ID _after_ the second $pageview event.\n if (this._seenFirstPageView) {\n this._pageViewId = _UUID()\n }\n this._seenFirstPageView = true\n }\n\n getPageViewId(): string {\n if (!this._pageViewId) {\n this._pageViewId = _UUID()\n }\n\n return this._pageViewId\n }\n}\n","export function isEvent(candidate: unknown): candidate is Event {\n return typeof Event !== 'undefined' && isInstanceOf(candidate, Event)\n}\n\nexport function isPlainObject(candidate: unknown): candidate is Record {\n return isBuiltin(candidate, 'Object')\n}\n\nexport function isInstanceOf(candidate: unknown, base: any): boolean {\n try {\n return candidate instanceof base\n } catch (_e) {\n return false\n }\n}\n\nexport function isPrimitive(\n candidate: unknown\n): candidate is number | string | boolean | bigint | symbol | null | undefined {\n return candidate === null || (typeof candidate !== 'object' && typeof candidate !== 'function')\n}\n\nexport function isError(candidate: unknown): candidate is Error {\n switch (Object.prototype.toString.call(candidate)) {\n case '[object Error]':\n case '[object Exception]':\n case '[object DOMException]':\n return true\n default:\n return isInstanceOf(candidate, Error)\n }\n}\n\nexport function isErrorEvent(event: string | Error | Event): event is ErrorEvent {\n return isBuiltin(event, 'ErrorEvent')\n}\n\nexport function isErrorWithStack(candidate: unknown): candidate is Error {\n return 'stack' in (candidate as Error)\n}\n\nexport function isBuiltin(candidate: unknown, className: string): boolean {\n return Object.prototype.toString.call(candidate) === `[object ${className}]`\n}\n\nexport function isDOMException(candidate: unknown): boolean {\n return isBuiltin(candidate, 'DOMException')\n}\n\nexport function isDOMError(candidate: unknown): boolean {\n return isBuiltin(candidate, 'DOMError')\n}\n","// copied and adapted from https://github.com/getsentry/sentry-javascript/blob/41fef4b10f3a644179b77985f00f8696c908539f/packages/browser/src/stack-parsers.ts\n// 💖open source\n\n// This was originally forked from https://github.com/csnover/TraceKit, and was largely\n// re-written as part of raven - js.\n//\n// This code was later copied to the JavaScript mono - repo and further modified and\n// refactored over the years.\n\n// Copyright (c) 2013 Onur Can Cakmak onur.cakmak@gmail.com and all TraceKit contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy of this\n// software and associated documentation files(the 'Software'), to deal in the Software\n// without restriction, including without limitation the rights to use, copy, modify,\n// merge, publish, 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 the following\n// conditions:\n//\n// The above copyright notice and this permission notice shall be included in all copies\n// or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,\n// INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A\n// PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT\n// HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF\n// CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE\n// OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n\nconst WEBPACK_ERROR_REGEXP = /\\(error: (.*)\\)/\nconst STACKTRACE_FRAME_LIMIT = 50\n\nconst UNKNOWN_FUNCTION = '?'\n\nconst OPERA10_PRIORITY = 10\nconst OPERA11_PRIORITY = 20\nconst CHROME_PRIORITY = 30\nconst WINJS_PRIORITY = 40\nconst GECKO_PRIORITY = 50\n\nexport interface StackFrame {\n filename?: string\n function?: string\n module?: string\n platform?: string\n lineno?: number\n colno?: number\n abs_path?: string\n context_line?: string\n pre_context?: string[]\n post_context?: string[]\n in_app?: boolean\n instruction_addr?: string\n addr_mode?: string\n vars?: { [key: string]: any }\n debug_id?: string\n}\n\nfunction createFrame(filename: string, func: string, lineno?: number, colno?: number): StackFrame {\n const frame: StackFrame = {\n filename,\n function: func,\n in_app: true, // All browser frames are considered in_app\n }\n\n if (lineno !== undefined) {\n frame.lineno = lineno\n }\n\n if (colno !== undefined) {\n frame.colno = colno\n }\n\n return frame\n}\n\nexport type StackParser = (stack: string, skipFirst?: number) => StackFrame[]\nexport type StackLineParserFn = (line: string) => StackFrame | undefined\nexport type StackLineParser = [number, StackLineParserFn]\n\n// Chromium based browsers: Chrome, Brave, new Opera, new Edge\nconst chromeRegex =\n /^\\s*at (?:(.+?\\)(?: \\[.+\\])?|.*?) ?\\((?:address at )?)?(?:async )?((?:|[-a-z]+:|.*bundle|\\/)?.*?)(?::(\\d+))?(?::(\\d+))?\\)?\\s*$/i\nconst chromeEvalRegex = /\\((\\S*)(?::(\\d+))(?::(\\d+))\\)/\n\nconst chrome: StackLineParserFn = (line) => {\n const parts = chromeRegex.exec(line)\n\n if (parts) {\n const isEval = parts[2] && parts[2].indexOf('eval') === 0 // start of line\n\n if (isEval) {\n const subMatch = chromeEvalRegex.exec(parts[2])\n\n if (subMatch) {\n // throw out eval line/column and use top-most line/column number\n parts[2] = subMatch[1] // url\n parts[3] = subMatch[2] // line\n parts[4] = subMatch[3] // column\n }\n }\n\n // Kamil: One more hack won't hurt us right? Understanding and adding more rules on top of these regexps right now\n // would be way too time consuming. (TODO: Rewrite whole RegExp to be more readable)\n const [func, filename] = extractSafariExtensionDetails(parts[1] || UNKNOWN_FUNCTION, parts[2])\n\n return createFrame(filename, func, parts[3] ? +parts[3] : undefined, parts[4] ? +parts[4] : undefined)\n }\n\n return\n}\n\nexport const chromeStackLineParser: StackLineParser = [CHROME_PRIORITY, chrome]\n\n// gecko regex: `(?:bundle|\\d+\\.js)`: `bundle` is for react native, `\\d+\\.js` also but specifically for ram bundles because it\n// generates filenames without a prefix like `file://` the filenames in the stacktrace are just 42.js\n// We need this specific case for now because we want no other regex to match.\nconst geckoREgex =\n /^\\s*(.*?)(?:\\((.*?)\\))?(?:^|@)?((?:[-a-z]+)?:\\/.*?|\\[native code\\]|[^@]*(?:bundle|\\d+\\.js)|\\/[\\w\\-. /=]+)(?::(\\d+))?(?::(\\d+))?\\s*$/i\nconst geckoEvalRegex = /(\\S+) line (\\d+)(?: > eval line \\d+)* > eval/i\n\nconst gecko: StackLineParserFn = (line) => {\n const parts = geckoREgex.exec(line)\n\n if (parts) {\n const isEval = parts[3] && parts[3].indexOf(' > eval') > -1\n if (isEval) {\n const subMatch = geckoEvalRegex.exec(parts[3])\n\n if (subMatch) {\n // throw out eval line/column and use top-most line number\n parts[1] = parts[1] || 'eval'\n parts[3] = subMatch[1]\n parts[4] = subMatch[2]\n parts[5] = '' // no column when eval\n }\n }\n\n let filename = parts[3]\n let func = parts[1] || UNKNOWN_FUNCTION\n ;[func, filename] = extractSafariExtensionDetails(func, filename)\n\n return createFrame(filename, func, parts[4] ? +parts[4] : undefined, parts[5] ? +parts[5] : undefined)\n }\n\n return\n}\n\nexport const geckoStackLineParser: StackLineParser = [GECKO_PRIORITY, gecko]\n\nconst winjsRegex = /^\\s*at (?:((?:\\[object object\\])?.+) )?\\(?((?:[-a-z]+):.*?):(\\d+)(?::(\\d+))?\\)?\\s*$/i\n\nconst winjs: StackLineParserFn = (line) => {\n const parts = winjsRegex.exec(line)\n\n return parts\n ? createFrame(parts[2], parts[1] || UNKNOWN_FUNCTION, +parts[3], parts[4] ? +parts[4] : undefined)\n : undefined\n}\n\nexport const winjsStackLineParser: StackLineParser = [WINJS_PRIORITY, winjs]\n\nconst opera10Regex = / line (\\d+).*script (?:in )?(\\S+)(?:: in function (\\S+))?$/i\n\nconst opera10: StackLineParserFn = (line) => {\n const parts = opera10Regex.exec(line)\n return parts ? createFrame(parts[2], parts[3] || UNKNOWN_FUNCTION, +parts[1]) : undefined\n}\n\nexport const opera10StackLineParser: StackLineParser = [OPERA10_PRIORITY, opera10]\n\nconst opera11Regex = / line (\\d+), column (\\d+)\\s*(?:in (?:]+)>|([^)]+))\\(.*\\))? in (.*):\\s*$/i\n\nconst opera11: StackLineParserFn = (line) => {\n const parts = opera11Regex.exec(line)\n return parts ? createFrame(parts[5], parts[3] || parts[4] || UNKNOWN_FUNCTION, +parts[1], +parts[2]) : undefined\n}\n\nexport const opera11StackLineParser: StackLineParser = [OPERA11_PRIORITY, opera11]\n\nexport const defaultStackLineParsers = [chromeStackLineParser, geckoStackLineParser, winjsStackLineParser]\n\nexport function reverse(stack: ReadonlyArray): StackFrame[] {\n if (!stack.length) {\n return []\n }\n\n const localStack = stack.slice(0, STACKTRACE_FRAME_LIMIT)\n\n localStack.reverse()\n\n return localStack.map((frame) => ({\n ...frame,\n filename: frame.filename || localStack[localStack.length - 1].filename,\n function: frame.function || '?',\n }))\n}\n\nexport function createStackParser(...parsers: StackLineParser[]): StackParser {\n const sortedParsers = parsers.sort((a, b) => a[0] - b[0]).map((p) => p[1])\n\n return (stack: string, skipFirst = 0): StackFrame[] => {\n const frames: StackFrame[] = []\n const lines = stack.split('\\n')\n\n for (let i = skipFirst; i < lines.length; i++) {\n const line = lines[i]\n // Ignore lines over 1kb as they are unlikely to be stack frames.\n // Many of the regular expressions use backtracking which results in run time that increases exponentially with\n // input size. Huge strings can result in hangs/Denial of Service:\n // https://github.com/getsentry/sentry-javascript/issues/2286\n if (line.length > 1024) {\n continue\n }\n\n // https://github.com/getsentry/sentry-javascript/issues/5459\n // Remove webpack (error: *) wrappers\n const cleanedLine = WEBPACK_ERROR_REGEXP.test(line) ? line.replace(WEBPACK_ERROR_REGEXP, '$1') : line\n\n // https://github.com/getsentry/sentry-javascript/issues/7813\n // Skip Error: lines\n if (cleanedLine.match(/\\S*Error: /)) {\n continue\n }\n\n for (const parser of sortedParsers) {\n const frame = parser(cleanedLine)\n\n if (frame) {\n frames.push(frame)\n break\n }\n }\n\n if (frames.length >= STACKTRACE_FRAME_LIMIT) {\n break\n }\n }\n\n return reverse(frames)\n }\n}\n\nexport const defaultStackParser = createStackParser(...defaultStackLineParsers)\n\n/**\n * Safari web extensions, starting version unknown, can produce \"frames-only\" stacktraces.\n * What it means, is that instead of format like:\n *\n * Error: wat\n * at function@url:row:col\n * at function@url:row:col\n * at function@url:row:col\n *\n * it produces something like:\n *\n * function@url:row:col\n * function@url:row:col\n * function@url:row:col\n *\n * Because of that, it won't be captured by `chrome` RegExp and will fall into `Gecko` branch.\n * This function is extracted so that we can use it in both places without duplicating the logic.\n * Unfortunately \"just\" changing RegExp is too complicated now and making it pass all tests\n * and fix this case seems like an impossible, or at least way too time-consuming task.\n */\nconst extractSafariExtensionDetails = (func: string, filename: string): [string, string] => {\n const isSafariExtension = func.indexOf('safari-extension') !== -1\n const isSafariWebExtension = func.indexOf('safari-web-extension') !== -1\n\n return isSafariExtension || isSafariWebExtension\n ? [\n func.indexOf('@') !== -1 ? func.split('@')[0] : UNKNOWN_FUNCTION,\n isSafariExtension ? `safari-extension:${filename}` : `safari-web-extension:${filename}`,\n ]\n : [func, filename]\n}\n","import {\n isDOMError,\n isDOMException,\n isError,\n isErrorEvent,\n isErrorWithStack,\n isEvent,\n isPlainObject,\n isPrimitive,\n} from './type-checking'\nimport { defaultStackParser, StackFrame } from './stack-trace'\n\n/**\n * based on the very wonderful MIT licensed Sentry SDK\n */\n\nconst ERROR_TYPES_PATTERN =\n /^(?:[Uu]ncaught (?:exception: )?)?(?:((?:Eval|Internal|Range|Reference|Syntax|Type|URI|)Error): )?(.*)$/i\n\nexport type ErrorEventArgs = [\n event: string | Event,\n source?: string | undefined,\n lineno?: number | undefined,\n colno?: number | undefined,\n error?: Error | undefined\n]\n\nexport interface ErrorProperties {\n $exception_type: string\n $exception_message: string\n $exception_source?: string\n $exception_lineno?: number\n $exception_colno?: number\n $exception_DOMException_code?: string\n $exception_is_synthetic?: boolean\n $exception_stack_trace_raw?: string\n $exception_handled?: boolean\n $exception_personURL?: string\n}\n\nconst reactMinifiedRegexp = /Minified React error #\\d+;/i\n\nfunction getPopSize(ex: Error & { framesToPop?: number }): number {\n if (ex) {\n if (typeof ex.framesToPop === 'number') {\n return ex.framesToPop\n }\n\n if (reactMinifiedRegexp.test(ex.message)) {\n return 1\n }\n }\n\n return 0\n}\n\nexport function parseStackFrames(ex: Error & { framesToPop?: number; stacktrace?: string }): StackFrame[] {\n // Access and store the stacktrace property before doing ANYTHING\n // else to it because Opera is not very good at providing it\n // reliably in other circumstances.\n const stacktrace = ex.stacktrace || ex.stack || ''\n\n const popSize = getPopSize(ex)\n\n try {\n return defaultStackParser(stacktrace, popSize)\n } catch (e) {\n // no-empty\n }\n\n return []\n}\n\nfunction errorPropertiesFromError(error: Error): ErrorProperties {\n const frames = parseStackFrames(error)\n\n return {\n $exception_type: error.name,\n $exception_message: error.message,\n $exception_stack_trace_raw: JSON.stringify(frames),\n }\n}\n\nfunction errorPropertiesFromString(candidate: string): ErrorProperties {\n return {\n $exception_type: 'Error',\n $exception_message: candidate,\n }\n}\n\n/**\n * Given any captured exception, extract its keys and create a sorted\n * and truncated list that will be used inside the event message.\n * eg. `Non-error exception captured with keys: foo, bar, baz`\n */\nfunction extractExceptionKeysForMessage(exception: Record, maxLength = 40): string {\n const keys = Object.keys(exception)\n keys.sort()\n\n if (!keys.length) {\n return '[object has no keys]'\n }\n\n for (let i = keys.length; i > 0; i--) {\n const serialized = keys.slice(0, i).join(', ')\n if (serialized.length > maxLength) {\n continue\n }\n if (i === keys.length) {\n return serialized\n }\n return serialized.length <= maxLength ? serialized : `${serialized.slice(0, maxLength)}...`\n }\n\n return ''\n}\n\nfunction errorPropertiesFromObject(candidate: Record): ErrorProperties {\n return {\n $exception_type: isEvent(candidate) ? candidate.constructor.name : 'Error',\n $exception_message: `Non-Error ${'exception'} captured with keys: ${extractExceptionKeysForMessage(candidate)}`,\n }\n}\n\nexport function errorToProperties([event, source, lineno, colno, error]: ErrorEventArgs): ErrorProperties {\n // exception type and message are not optional but, it's useful to start off without them enforced\n let errorProperties: Omit & {\n $exception_type?: string\n $exception_message?: string\n } = {}\n\n if (error === undefined && typeof event === 'string') {\n let name = 'Error'\n let message = event\n const groups = event.match(ERROR_TYPES_PATTERN)\n if (groups) {\n name = groups[1]\n message = groups[2]\n }\n errorProperties = {\n $exception_type: name,\n $exception_message: message,\n }\n }\n\n const candidate = error || event\n\n if (isDOMError(candidate) || isDOMException(candidate)) {\n // https://developer.mozilla.org/en-US/docs/Web/API/DOMError\n // https://developer.mozilla.org/en-US/docs/Web/API/DOMException\n\n const domException = candidate as unknown as DOMException\n\n if (isErrorWithStack(candidate)) {\n errorProperties = errorPropertiesFromError(candidate as Error)\n } else {\n const name = domException.name || (isDOMError(domException) ? 'DOMError' : 'DOMException')\n const message = domException.message ? `${name}: ${domException.message}` : name\n errorProperties = errorPropertiesFromString(message)\n errorProperties.$exception_type = isDOMError(domException) ? 'DOMError' : 'DOMException'\n errorProperties.$exception_message = errorProperties.$exception_message || message\n }\n if ('code' in domException) {\n errorProperties['$exception_DOMException_code'] = `${domException.code}`\n }\n } else if (isErrorEvent(candidate as ErrorEvent) && (candidate as ErrorEvent).error) {\n errorProperties = errorPropertiesFromError((candidate as ErrorEvent).error as Error)\n } else if (isError(candidate)) {\n errorProperties = errorPropertiesFromError(candidate)\n } else if (isPlainObject(candidate) || isEvent(candidate)) {\n // group these by using the keys available on the object\n const objectException = candidate as Record\n errorProperties = errorPropertiesFromObject(objectException)\n errorProperties.$exception_is_synthetic = true\n } else {\n // If none of previous checks were valid, then it must be a string\n errorProperties.$exception_type = errorProperties.$exception_type || 'Error'\n errorProperties.$exception_message = errorProperties.$exception_message || candidate\n errorProperties.$exception_is_synthetic = true\n }\n\n return {\n ...errorProperties,\n // now we make sure the mandatory fields that were made optional are present\n $exception_type: errorProperties.$exception_type || 'UnknownErrorType',\n $exception_message: errorProperties.$exception_message || '',\n ...(source\n ? {\n $exception_source: source, // TODO get this from URL if not present\n }\n : {}),\n ...(lineno ? { $exception_lineno: lineno } : {}),\n ...(colno ? { $exception_colno: colno } : {}),\n }\n}\n\nexport function unhandledRejectionToProperties([ev]: [ev: PromiseRejectionEvent]): ErrorProperties {\n // dig the object of the rejection out of known event types\n let error: unknown = ev\n try {\n // PromiseRejectionEvents store the object of the rejection under 'reason'\n // see https://developer.mozilla.org/en-US/docs/Web/API/PromiseRejectionEvent\n if ('reason' in ev) {\n error = ev.reason\n }\n // something, somewhere, (likely a browser extension) effectively casts PromiseRejectionEvents\n // to CustomEvents, moving the `promise` and `reason` attributes of the PRE into\n // the CustomEvent's `detail` attribute, since they're not part of CustomEvent's spec\n // see https://developer.mozilla.org/en-US/docs/Web/API/CustomEvent and\n // https://github.com/getsentry/sentry-javascript/issues/2380\n else if ('detail' in ev && 'reason' in (ev as any).detail) {\n error = (ev as any).detail.reason\n }\n } catch (_oO) {\n // no-empty\n }\n\n // exception type and message are not optional but, it's useful to start off without them enforced\n let errorProperties: Omit & {\n $exception_type?: string\n $exception_message?: string\n } = {}\n if (isPrimitive(error)) {\n errorProperties = {\n $exception_message: `Non-Error promise rejection captured with value: ${String(error)}`,\n }\n } else {\n errorProperties = errorToProperties([error as string | Event])\n }\n errorProperties.$exception_handled = false\n\n return {\n ...errorProperties,\n // now we make sure the mandatory fields that were made optional are present\n $exception_type: (errorProperties.$exception_type = 'UnhandledRejection'),\n $exception_message: (errorProperties.$exception_message =\n errorProperties.$exception_message || (ev as any).reason || String(error)),\n }\n}\n","import { window } from '../../utils'\nimport { PostHog } from '../../posthog-core'\nimport { DecideResponse, Properties } from '../../types'\nimport { ErrorEventArgs, ErrorProperties, errorToProperties, unhandledRejectionToProperties } from './error-conversion'\n\nconst EXCEPTION_INGESTION_ENDPOINT = '/e/'\n\nexport class ExceptionObserver {\n instance: PostHog\n remoteEnabled: boolean | undefined\n private originalOnErrorHandler: typeof window['onerror'] | null | undefined = undefined\n private originalOnUnhandledRejectionHandler: typeof window['onunhandledrejection'] | null | undefined = undefined\n\n constructor(instance: PostHog) {\n this.instance = instance\n }\n\n startCapturing() {\n if (!this.isEnabled() || (window.onerror as any)?.__POSTHOG_INSTRUMENTED__) {\n return\n }\n\n try {\n this.originalOnErrorHandler = window.onerror\n\n window.onerror = function (this: ExceptionObserver, ...args: ErrorEventArgs): boolean {\n this.captureException(args)\n\n if (this.originalOnErrorHandler) {\n // eslint-disable-next-line prefer-rest-params\n return this.originalOnErrorHandler.apply(this, args)\n }\n\n return false\n }.bind(this)\n ;(window.onerror as any).__POSTHOG_INSTRUMENTED__ = true\n\n this.originalOnUnhandledRejectionHandler = window.onunhandledrejection\n\n window.onunhandledrejection = function (\n this: ExceptionObserver,\n ...args: [ev: PromiseRejectionEvent]\n ): boolean {\n const errorProperties: ErrorProperties = unhandledRejectionToProperties(args)\n this.sendExceptionEvent(errorProperties)\n\n if (this.originalOnUnhandledRejectionHandler) {\n // eslint-disable-next-line prefer-rest-params\n return this.originalOnUnhandledRejectionHandler.apply(window, args)\n }\n\n return true\n }.bind(this)\n ;(window.onunhandledrejection as any).__POSTHOG_INSTRUMENTED__ = true\n } catch (e) {\n console.error('PostHog failed to start exception autocapture', e)\n this.stopCapturing()\n }\n }\n\n stopCapturing() {\n if (this.originalOnErrorHandler !== undefined) {\n window.onerror = this.originalOnErrorHandler\n this.originalOnErrorHandler = null\n }\n delete (window.onerror as any)?.__POSTHOG_INSTRUMENTED__\n\n if (this.originalOnUnhandledRejectionHandler !== undefined) {\n window.onunhandledrejection = this.originalOnUnhandledRejectionHandler\n this.originalOnUnhandledRejectionHandler = null\n }\n delete (window.onunhandledrejection as any)?.__POSTHOG_INSTRUMENTED__\n }\n\n isCapturing() {\n return !!(window.onerror as any)?.__POSTHOG_INSTRUMENTED__\n }\n\n isEnabled() {\n return this.remoteEnabled ?? false\n }\n\n afterDecideResponse(response: DecideResponse) {\n this.remoteEnabled = response.autocaptureExceptions || false\n if (this.isEnabled()) {\n this.startCapturing()\n }\n }\n\n captureException(args: ErrorEventArgs, properties?: Properties) {\n const errorProperties = errorToProperties(args)\n const propertiesToSend = { ...properties, ...errorProperties }\n\n const posthogHost = this.instance.config.ui_host || this.instance.config.api_host\n errorProperties.$exception_personURL = posthogHost + '/person/' + this.instance.get_distinct_id()\n\n this.sendExceptionEvent(propertiesToSend)\n }\n\n /**\n * :TRICKY: Make sure we batch these requests\n */\n sendExceptionEvent(properties: { [key: string]: any }) {\n this.instance.capture('$exception', properties, {\n transport: 'XHR',\n method: 'POST',\n endpoint: EXCEPTION_INGESTION_ENDPOINT,\n _noTruncate: true,\n _batchKey: 'exceptionEvent',\n })\n }\n}\n","import Config from './config'\nimport {\n logger,\n document,\n userAgent,\n window,\n _isUndefined,\n _extend,\n _each,\n _isObject,\n _isBlockedUA,\n _copyAndTruncateStrings,\n _isArray,\n _safewrap_class,\n _register_event,\n _UUID,\n _info,\n _eachArray,\n} from './utils'\nimport { autocapture } from './autocapture'\nimport { PostHogPeople } from './posthog-people'\nimport { PostHogFeatureFlags } from './posthog-featureflags'\nimport { ALIAS_ID_KEY, PEOPLE_DISTINCT_ID_KEY, PostHogPersistence } from './posthog-persistence'\nimport { SessionRecording } from './extensions/sessionrecording'\nimport { WebPerformanceObserver } from './extensions/web-performance'\nimport { Decide } from './decide'\nimport { Toolbar } from './extensions/toolbar'\nimport { clearOptInOut, hasOptedIn, hasOptedOut, optIn, optOut, userOptedOut } from './gdpr-utils'\nimport { cookieStore, localStore } from './storage'\nimport { RequestQueue } from './request-queue'\nimport { CaptureMetrics } from './capture-metrics'\nimport { compressData, decideCompression } from './compression'\nimport { addParamsToURL, encodePostData, xhr } from './send-request'\nimport { RetryQueue } from './retry-queue'\nimport { SessionIdManager } from './sessionid'\nimport {\n CaptureOptions,\n CaptureResult,\n Compression,\n ToolbarParams,\n GDPROptions,\n isFeatureEnabledOptions,\n JSC,\n OptInOutCapturingOptions,\n PostHogConfig,\n Properties,\n Property,\n RequestCallback,\n SnippetArrayItem,\n XHROptions,\n AutocaptureConfig,\n JsonType,\n EarlyAccessFeatureCallback,\n SurveyCallback,\n} from './types'\nimport { SentryIntegration } from './extensions/sentry-integration'\nimport { createSegmentIntegration } from './extensions/segment-integration'\nimport { PageViewIdManager } from './page-view-id'\nimport { ExceptionObserver } from './extensions/exceptions/exception-autocapture'\nimport { PostHogSurveys } from './posthog-surveys'\n\n/*\nSIMPLE STYLE GUIDE:\n\nthis.x === public function\nthis._x === internal - only use within this file\nthis.__x === private - only use within the class\n\nGlobals should be all caps\n*/\n\nenum InitType {\n INIT_MODULE = 0,\n INIT_SNIPPET = 1,\n}\n\nlet init_type: InitType\n\n// TODO: the type of this is very loose. Sometimes it's also PostHogLib itself\nlet posthog_master: Record & {\n init: (token: string, config: Partial, name: string) => void\n}\n\n// some globals for comparisons\nconst __NOOP = () => {}\nconst __NOOPTIONS = {}\n\nconst PRIMARY_INSTANCE_NAME = 'posthog'\n\n/*\n * Dynamic... constants? Is that an oxymoron?\n */\n// http://hacks.mozilla.org/2009/07/cross-site-xmlhttprequest-with-cors/\n// https://developer.mozilla.org/en-US/docs/DOM/XMLHttpRequest#withCredentials\nconst USE_XHR = window.XMLHttpRequest && 'withCredentials' in new XMLHttpRequest()\n\n// IE<10 does not support cross-origin XHR's but script tags\n// with defer won't block window.onload; ENQUEUE_REQUESTS\n// should only be true for Opera<12\nlet ENQUEUE_REQUESTS = !USE_XHR && userAgent.indexOf('MSIE') === -1 && userAgent.indexOf('Mozilla') === -1\n\nconst defaultConfig = (): PostHogConfig => ({\n api_host: 'https://app.posthog.com',\n api_method: 'POST',\n api_transport: 'XHR',\n ui_host: null,\n token: '',\n autocapture: true,\n rageclick: true,\n cross_subdomain_cookie: document?.location?.hostname?.indexOf('herokuapp.com') === -1,\n persistence: 'cookie',\n persistence_name: '',\n cookie_name: '',\n loaded: __NOOP,\n store_google: true,\n custom_campaign_params: [],\n save_referrer: true,\n test: false,\n verbose: false,\n capture_pageview: true,\n capture_pageleave: true, // We'll only capture pageleave events if capture_pageview is also true\n debug: false,\n cookie_expiration: 365,\n upgrade: false,\n disable_session_recording: false,\n disable_persistence: false,\n disable_cookie: false,\n enable_recording_console_log: undefined, // When undefined, it falls back to the server-side setting\n secure_cookie: window?.location?.protocol === 'https:',\n ip: true,\n opt_out_capturing_by_default: false,\n opt_out_persistence_by_default: false,\n opt_out_capturing_persistence_type: 'localStorage',\n opt_out_capturing_cookie_prefix: null,\n opt_in_site_apps: false,\n property_blacklist: [],\n respect_dnt: false,\n sanitize_properties: null,\n xhr_headers: {}, // { header: value, header2: value }\n inapp_protocol: '//',\n inapp_link_new_window: false,\n request_batching: true,\n properties_string_max_length: 65535,\n session_recording: {},\n mask_all_element_attributes: false,\n mask_all_text: false,\n advanced_disable_decide: false,\n advanced_disable_toolbar_metrics: false,\n on_xhr_error: (req) => {\n const error = 'Bad HTTP status: ' + req.status + ' ' + req.statusText\n console.error(error)\n },\n get_device_id: (uuid) => uuid,\n // Used for internal testing\n _onCapture: __NOOP,\n _capture_metrics: false,\n capture_performance: undefined,\n name: 'posthog',\n callback_fn: 'posthog._jsc',\n bootstrap: {},\n disable_compression: false,\n})\n\n/**\n * create_phlib(token:string, config:object, name:string)\n *\n * This function is used by the init method of PostHogLib objects\n * as well as the main initializer at the end of the JSLib (that\n * initializes document.posthog as well as any additional instances\n * declared before this file has loaded).\n */\nconst create_phlib = function (\n token: string,\n config?: Partial,\n name?: string,\n createComplete?: (instance: PostHog) => void\n): PostHog {\n let instance: PostHog\n const target =\n name === PRIMARY_INSTANCE_NAME || !posthog_master ? posthog_master : name ? posthog_master[name] : undefined\n const callbacksHandled = {\n initComplete: false,\n syncCode: false,\n }\n const handleCallback = (callbackName: keyof typeof callbacksHandled) => (instance: PostHog) => {\n if (!callbacksHandled[callbackName]) {\n callbacksHandled[callbackName] = true\n if (callbacksHandled.initComplete && callbacksHandled.syncCode) {\n createComplete?.(instance)\n }\n }\n }\n\n if (target && init_type === InitType.INIT_MODULE) {\n instance = target as any\n } else {\n if (target && !_isArray(target)) {\n console.error('You have already initialized ' + name)\n // TODO: throw something instead?\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n return\n }\n instance = new PostHog()\n }\n\n instance._init(token, config, name, handleCallback('initComplete'))\n instance.toolbar.maybeLoadToolbar()\n\n instance.sessionRecording = new SessionRecording(instance)\n instance.sessionRecording.startRecordingIfEnabled()\n\n instance.webPerformance = new WebPerformanceObserver(instance)\n instance.webPerformance.startObservingIfEnabled()\n\n instance.exceptionAutocapture = new ExceptionObserver(instance)\n\n instance.__autocapture = instance.get_config('autocapture')\n autocapture._setIsAutocaptureEnabled(instance)\n if (autocapture._isAutocaptureEnabled) {\n instance.__autocapture = instance.get_config('autocapture')\n const num_buckets = 100\n const num_enabled_buckets = 100\n if (!autocapture.enabledForProject(instance.get_config('token'), num_buckets, num_enabled_buckets)) {\n instance.__autocapture = false\n logger.log('Not in active bucket: disabling Automatic Event Collection.')\n } else if (!autocapture.isBrowserSupported()) {\n instance.__autocapture = false\n logger.log('Disabling Automatic Event Collection because this browser is not supported')\n } else {\n autocapture.init(instance)\n }\n }\n\n // if any instance on the page has debug = true, we set the\n // global debug to be true\n Config.DEBUG = Config.DEBUG || instance.get_config('debug')\n\n // if target is not defined, we called init after the lib already\n // loaded, so there won't be an array of things to execute\n if (typeof target !== 'undefined' && _isArray(target)) {\n // Crunch through the people queue first - we queue this data up &\n // flush on identify, so it's better to do all these operations first\n instance._execute_array.call(instance.people, (target as any).people)\n instance._execute_array(target)\n }\n\n handleCallback('syncCode')(instance)\n return instance\n}\n\n/**\n * PostHog Library Object\n * @constructor\n */\nexport class PostHog {\n __loaded: boolean\n __loaded_recorder_version: 'v1' | 'v2' | undefined // flag that keeps track of which version of recorder is loaded\n config: PostHogConfig\n\n persistence: PostHogPersistence\n sessionPersistence: PostHogPersistence\n sessionManager: SessionIdManager\n pageViewIdManager: PageViewIdManager\n people: PostHogPeople\n featureFlags: PostHogFeatureFlags\n feature_flags: PostHogFeatureFlags\n surveys: PostHogSurveys\n toolbar: Toolbar\n sessionRecording: SessionRecording | undefined\n webPerformance: WebPerformanceObserver | undefined\n exceptionAutocapture: ExceptionObserver | undefined\n\n _captureMetrics: CaptureMetrics\n _requestQueue: RequestQueue\n _retryQueue: RetryQueue\n\n _triggered_notifs: any\n compression: Partial>\n _jsc: JSC\n __captureHooks: ((eventName: string) => void)[]\n __request_queue: [url: string, data: Record, options: XHROptions, callback?: RequestCallback][]\n __autocapture: boolean | AutocaptureConfig | undefined\n decideEndpointWasHit: boolean\n\n SentryIntegration: typeof SentryIntegration\n segmentIntegration: () => any\n\n constructor() {\n this.config = defaultConfig()\n this.compression = {}\n this.decideEndpointWasHit = false\n this.SentryIntegration = SentryIntegration\n this.segmentIntegration = () => createSegmentIntegration(this)\n this.__captureHooks = []\n this.__request_queue = []\n this.__loaded = false\n this.__loaded_recorder_version = undefined\n this.__autocapture = undefined\n this._jsc = function () {} as JSC\n this.people = new PostHogPeople(this)\n this.featureFlags = new PostHogFeatureFlags(this)\n this.feature_flags = this.featureFlags\n this.toolbar = new Toolbar(this)\n this.pageViewIdManager = new PageViewIdManager()\n this.surveys = new PostHogSurveys(this)\n\n // these are created in _init() after we have the config\n this._captureMetrics = undefined as any\n this._requestQueue = undefined as any\n this._retryQueue = undefined as any\n this.persistence = undefined as any\n this.sessionPersistence = undefined as any\n this.sessionManager = undefined as any\n }\n\n // Initialization methods\n\n /**\n * This function initializes a new instance of the PostHog capturing object.\n * All new instances are added to the main posthog object as sub properties (such as\n * posthog.library_name) and also returned by this function. To define a\n * second instance on the page, you would call:\n *\n * posthog.init('new token', { your: 'config' }, 'library_name');\n *\n * and use it like so:\n *\n * posthog.library_name.capture(...);\n *\n * @param {String} token Your PostHog API token\n * @param {Object} [config] A dictionary of config options to override. See a list of default config options.\n * @param {String} [name] The name for the new posthog instance that you want created\n */\n init(token: string, config?: Partial, name?: string): PostHog | void {\n if (_isUndefined(name)) {\n console.error('You must name your new library: init(token, config, name)')\n return\n }\n if (name === PRIMARY_INSTANCE_NAME) {\n console.error('You must initialize the main posthog object right after you include the PostHog js snippet')\n return\n }\n\n const instance: PostHog = create_phlib(token, config, name, (instance: PostHog) => {\n posthog_master[name] = instance\n instance._loaded()\n })\n posthog_master[name] = instance\n\n return instance\n }\n\n // posthog._init(token:string, config:object, name:string)\n //\n // This function sets up the current instance of the posthog\n // library. The difference between this method and the init(...)\n // method is this one initializes the actual instance, whereas the\n // init(...) method sets up a new library and calls _init on it.\n //\n // Note that there are operations that can be asynchronous, so we\n // accept a callback that is called when all the asynchronous work\n // is done. Note that we do not use promises because we want to be\n // IE11 compatible. We could use polyfills, which would make the\n // code a bit cleaner, but will add some overhead.\n //\n _init(\n token: string,\n config: Partial = {},\n name?: string,\n initComplete?: (instance: PostHog) => void\n ): void {\n this.__loaded = true\n this.config = {} as PostHogConfig // will be set right below\n this._triggered_notifs = []\n\n // To avoid using Promises and their helper functions, we instead keep\n // track of which callbacks have been called, and then call initComplete\n // when all of them have been called. To add additional async code, add\n // to `callbacksHandled` and pass updateInitComplete as a callback to\n // the async code.\n const callbacksHandled = { segmentRegister: false, syncCode: false }\n const updateInitComplete = (callbackName: keyof typeof callbacksHandled) => () => {\n // Update the register of callbacks that have been called, and if\n // they have all been called, then we are ready to call\n // initComplete.\n if (!callbacksHandled[callbackName]) {\n callbacksHandled[callbackName] = true\n if (callbacksHandled.segmentRegister && callbacksHandled.syncCode) {\n initComplete?.(this)\n }\n }\n }\n\n this.set_config(\n _extend({}, defaultConfig(), config, {\n name: name,\n token: token,\n callback_fn: (name === PRIMARY_INSTANCE_NAME ? name : PRIMARY_INSTANCE_NAME + '.' + name) + '._jsc',\n })\n )\n\n this._jsc = function () {} as JSC\n\n // Check if recorder.js is already loaded\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n if (window?.rrweb?.record || window?.rrwebRecord) {\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n this.__loaded_recorder_version = window?.rrweb?.version\n }\n\n this._captureMetrics = new CaptureMetrics(this.get_config('_capture_metrics'))\n this._requestQueue = new RequestQueue(this._captureMetrics, this._handle_queued_event.bind(this))\n this._retryQueue = new RetryQueue(this._captureMetrics, this.get_config('on_xhr_error'))\n this.__captureHooks = []\n this.__request_queue = []\n\n this.persistence = new PostHogPersistence(this.config)\n this.sessionManager = new SessionIdManager(this.config, this.persistence)\n this.sessionPersistence =\n this.config.persistence === 'sessionStorage'\n ? this.persistence\n : new PostHogPersistence({ ...this.config, persistence: 'sessionStorage' })\n\n this._gdpr_init()\n\n if (config.segment) {\n // Use segments anonymousId instead\n this.config.get_device_id = () => config.segment.user().anonymousId()\n\n // If a segment user ID exists, set it as the distinct_id\n if (config.segment.user().id()) {\n this.register({\n distinct_id: config.segment.user().id(),\n })\n this.persistence.set_user_state('identified')\n }\n\n config.segment.register(this.segmentIntegration()).then(updateInitComplete('segmentRegister'))\n } else {\n updateInitComplete('segmentRegister')()\n }\n\n if (config.bootstrap?.distinctID !== undefined) {\n const uuid = this.get_config('get_device_id')(_UUID())\n const deviceID = config.bootstrap?.isIdentifiedID ? uuid : config.bootstrap.distinctID\n this.persistence.set_user_state(config.bootstrap?.isIdentifiedID ? 'identified' : 'anonymous')\n this.register({\n distinct_id: config.bootstrap.distinctID,\n $device_id: deviceID,\n })\n }\n\n if (this._hasBootstrappedFeatureFlags()) {\n const activeFlags = Object.keys(config.bootstrap?.featureFlags || {})\n .filter((flag) => !!config.bootstrap?.featureFlags?.[flag])\n .reduce(\n (res: Record, key) => (\n (res[key] = config.bootstrap?.featureFlags?.[key] || false), res\n ),\n {}\n )\n const featureFlagPayloads = Object.keys(config.bootstrap?.featureFlagPayloads || {})\n .filter((key) => activeFlags[key])\n .reduce((res: Record, key) => {\n if (config.bootstrap?.featureFlagPayloads?.[key]) {\n res[key] = config.bootstrap?.featureFlagPayloads?.[key]\n }\n return res\n }, {})\n\n this.featureFlags.receivedFeatureFlags({ featureFlags: activeFlags, featureFlagPayloads })\n }\n\n if (!this.get_distinct_id()) {\n // There is no need to set the distinct id\n // or the device id if something was already stored\n // in the persitence\n const uuid = this.get_config('get_device_id')(_UUID())\n this.register_once(\n {\n distinct_id: uuid,\n $device_id: uuid,\n },\n ''\n )\n // distinct id == $device_id is a proxy for anonymous user\n this.persistence.set_user_state('anonymous')\n }\n // Set up event handler for pageleave\n // Use `onpagehide` if available, see https://calendar.perfplanet.com/2020/beaconing-in-practice/#beaconing-reliability-avoiding-abandons\n window.addEventListener &&\n window.addEventListener('onpagehide' in self ? 'pagehide' : 'unload', this._handle_unload.bind(this))\n\n // Make sure that we also call the initComplete callback at the end of\n // the synchronous code as well.\n updateInitComplete('syncCode')()\n }\n\n // Private methods\n\n _loaded(): void {\n // Pause `reloadFeatureFlags` calls in config.loaded callback.\n // These feature flags are loaded in the decide call made right\n // afterwards\n this.featureFlags.setReloadingPaused(true)\n\n try {\n this.get_config('loaded')(this)\n } catch (err) {\n console.error('`loaded` function failed', err)\n }\n\n this._start_queue_if_opted_in()\n\n // this happens after so a user can call identify in\n // the loaded callback\n if (this.get_config('capture_pageview')) {\n this.capture('$pageview', {}, { send_instantly: true })\n }\n\n // Call decide to get what features are enabled and other settings.\n // As a reminder, if the /decide endpoint is disabled, feature flags, toolbar, session recording, autocapture,\n // and compression will not be available.\n if (!this.get_config('advanced_disable_decide')) {\n new Decide(this).call()\n }\n\n this.featureFlags.resetRequestQueue()\n this.featureFlags.setReloadingPaused(false)\n }\n\n _start_queue_if_opted_in(): void {\n if (!this.has_opted_out_capturing()) {\n if (this.get_config('request_batching')) {\n this._requestQueue.poll()\n }\n }\n }\n\n _dom_loaded(): void {\n if (!this.has_opted_out_capturing()) {\n _eachArray(this.__request_queue, (item) => {\n this._send_request(...item)\n })\n }\n\n this.__request_queue = []\n\n this._start_queue_if_opted_in()\n }\n\n /**\n * _prepare_callback() should be called by callers of _send_request for use\n * as the callback argument.\n *\n * If there is no callback, this returns null.\n * If we are going to make XHR/XDR requests, this returns a function.\n * If we are going to use script tags, this returns a string to use as the\n * callback GET param.\n */\n // TODO: get rid of the \"| string\"\n _prepare_callback(callback?: RequestCallback, data?: Properties): RequestCallback | null | string {\n if (_isUndefined(callback)) {\n return null\n }\n\n if (USE_XHR) {\n return function (response) {\n callback(response, data)\n }\n } else {\n // if the user gives us a callback, we store as a random\n // property on this instances jsc function and update our\n // callback string to reflect that.\n const jsc = this._jsc\n const randomized_cb = '' + Math.floor(Math.random() * 100000000)\n const callback_string = this.get_config('callback_fn') + '[' + randomized_cb + ']'\n jsc[randomized_cb] = function (response: any) {\n delete jsc[randomized_cb]\n callback(response, data)\n }\n return callback_string\n }\n }\n\n _handle_unload(): void {\n if (!this.get_config('request_batching')) {\n if (this.get_config('capture_pageview') && this.get_config('capture_pageleave')) {\n this.capture('$pageleave', null, { transport: 'sendBeacon' })\n }\n return\n }\n\n if (this.get_config('capture_pageview') && this.get_config('capture_pageleave')) {\n this.capture('$pageleave')\n }\n if (this.get_config('_capture_metrics')) {\n this._requestQueue.updateUnloadMetrics()\n this.capture('$capture_metrics', this._captureMetrics.metrics)\n }\n this._requestQueue.unload()\n this._retryQueue.unload()\n }\n\n _handle_queued_event(url: string, data: Record, options?: XHROptions): void {\n const jsonData = JSON.stringify(data)\n this.__compress_and_send_json_request(url, jsonData, options || __NOOPTIONS, __NOOP)\n }\n\n __compress_and_send_json_request(\n url: string,\n jsonData: string,\n options: XHROptions,\n callback?: RequestCallback\n ): void {\n const [data, _options] = compressData(decideCompression(this.compression), jsonData, options)\n this._send_request(url, data, _options, callback)\n }\n\n _send_request(url: string, data: Record, options: XHROptions, callback?: RequestCallback): void {\n if (ENQUEUE_REQUESTS) {\n this.__request_queue.push([url, data, options, callback])\n return\n }\n\n const DEFAULT_OPTIONS = {\n method: this.get_config('api_method'),\n transport: this.get_config('api_transport'),\n verbose: this.get_config('verbose'),\n }\n\n options = _extend(DEFAULT_OPTIONS, options || {})\n if (!USE_XHR) {\n options.method = 'GET'\n }\n\n const useSendBeacon = 'sendBeacon' in window.navigator && options.transport === 'sendBeacon'\n url = addParamsToURL(url, options.urlQueryArgs || {}, {\n ip: this.get_config('ip'),\n })\n\n if (useSendBeacon) {\n // beacon documentation https://w3c.github.io/beacon/\n // beacons format the message and use the type property\n // also no need to try catch as sendBeacon does not report errors\n // and is defined as best effort attempt\n try {\n window.navigator.sendBeacon(url, encodePostData(data, { ...options, sendBeacon: true }))\n } catch (e) {\n if (this.get_config('debug')) {\n console.error(e)\n }\n }\n } else if (USE_XHR) {\n try {\n xhr({\n url: url,\n data: data,\n headers: this.get_config('xhr_headers'),\n options: options,\n captureMetrics: this._captureMetrics,\n callback,\n retriesPerformedSoFar: 0,\n retryQueue: this._retryQueue,\n onXHRError: this.get_config('on_xhr_error'),\n })\n } catch (e) {\n console.error(e)\n }\n } else {\n const script = document.createElement('script')\n script.type = 'text/javascript'\n script.async = true\n script.defer = true\n script.src = url\n const s = document.getElementsByTagName('script')[0]\n s.parentNode?.insertBefore(script, s)\n }\n }\n\n /**\n * _execute_array() deals with processing any posthog function\n * calls that were called before the PostHog library were loaded\n * (and are thus stored in an array so they can be called later)\n *\n * Note: we fire off all the posthog function calls && user defined\n * functions BEFORE we fire off posthog capturing calls. This is so\n * identify/register/set_config calls can properly modify early\n * capturing calls.\n *\n * @param {Array} array\n */\n _execute_array(array: SnippetArrayItem[]): void {\n let fn_name\n const alias_calls: SnippetArrayItem[] = []\n const other_calls: SnippetArrayItem[] = []\n const capturing_calls: SnippetArrayItem[] = []\n _eachArray(array, (item) => {\n if (item) {\n fn_name = item[0]\n if (_isArray(fn_name)) {\n capturing_calls.push(item) // chained call e.g. posthog.get_group().set()\n } else if (typeof item === 'function') {\n ;(item as any).call(this)\n } else if (_isArray(item) && fn_name === 'alias') {\n alias_calls.push(item)\n } else if (\n _isArray(item) &&\n fn_name.indexOf('capture') !== -1 &&\n typeof (this as any)[fn_name] === 'function'\n ) {\n capturing_calls.push(item)\n } else {\n other_calls.push(item)\n }\n }\n })\n\n const execute = function (calls: SnippetArrayItem[], thisArg: any) {\n _eachArray(\n calls,\n function (item) {\n if (_isArray(item[0])) {\n // chained call\n let caller = thisArg\n _each(item, function (call) {\n caller = caller[call[0]].apply(caller, call.slice(1))\n })\n } else {\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n this[item[0]].apply(this, item.slice(1))\n }\n },\n thisArg\n )\n }\n\n execute(alias_calls, this)\n execute(other_calls, this)\n execute(capturing_calls, this)\n }\n\n _hasBootstrappedFeatureFlags(): boolean {\n return (\n (this.config.bootstrap?.featureFlags && Object.keys(this.config.bootstrap?.featureFlags).length > 0) ||\n false\n )\n }\n\n /**\n * push() keeps the standard async-array-push\n * behavior around after the lib is loaded.\n * This is only useful for external integrations that\n * do not wish to rely on our convenience methods\n * (created in the snippet).\n *\n * ### Usage:\n * posthog.push(['register', { a: 'b' }]);\n *\n * @param {Array} item A [function_name, args...] array to be executed\n */\n push(item: SnippetArrayItem): void {\n this._execute_array([item])\n }\n\n /*\n * PostHog supports exception autocapture, however, this function\n * is used to manually capture an exception\n * and can be used to add more context to that exception\n *\n * Properties passed as the second option will be merged with the properties\n * of the exception event.\n * Where there is a key in both generated exception and passed properties,\n * the generated exception property takes precedence.\n */\n captureException(exception: Error, properties?: Properties): void {\n this.exceptionAutocapture?.captureException(\n [exception.name, undefined, undefined, undefined, exception],\n properties\n )\n }\n\n /**\n * Capture an event. This is the most important and\n * frequently used PostHog function.\n *\n * ### Usage:\n *\n * // capture an event named 'Registered'\n * posthog.capture('Registered', {'Gender': 'Male', 'Age': 21});\n *\n * // capture an event using navigator.sendBeacon\n * posthog.capture('Left page', {'duration_seconds': 35}, {transport: 'sendBeacon'});\n *\n * @param {String} event_name The name of the event. This can be anything the user does - 'Button Click', 'Sign Up', 'Item Purchased', etc.\n * @param {Object} [properties] A set of properties to include with the event you're sending. These describe the user who did the event or details about the event itself.\n * @param {Object} [options] Optional configuration for this capture request.\n * @param {String} [options.transport] Transport method for network request ('XHR' or 'sendBeacon').\n * @param {Date} [options.timestamp] Timestamp is a Date object. If not set, it'll automatically be set to the current time.\n */\n capture(\n event_name: string,\n properties?: Properties | null,\n options: CaptureOptions = __NOOPTIONS\n ): CaptureResult | void {\n // While developing, a developer might purposefully _not_ call init(),\n // in this case, we would like capture to be a noop.\n if (!this.__loaded) {\n return\n }\n\n if (userOptedOut(this, false)) {\n return\n }\n\n this._captureMetrics.incr('capture')\n if (event_name === '$snapshot') {\n this._captureMetrics.incr('snapshot')\n }\n\n options = options || __NOOPTIONS\n const transport = options['transport'] // external API, don't minify 'transport' prop\n if (transport) {\n options.transport = transport // 'transport' prop name can be minified internally\n }\n\n // typing doesn't prevent interesting data\n if (_isUndefined(event_name) || typeof event_name !== 'string') {\n console.error('No event name provided to posthog.capture')\n return\n }\n\n if (_isBlockedUA(userAgent)) {\n return\n }\n\n // update persistence\n this.sessionPersistence.update_search_keyword()\n\n if (this.get_config('store_google')) {\n this.sessionPersistence.update_campaign_params()\n }\n if (this.get_config('save_referrer')) {\n this.sessionPersistence.update_referrer_info()\n }\n\n let data: CaptureResult = {\n uuid: _UUID('v7'),\n event: event_name,\n properties: this._calculate_event_properties(event_name, properties || {}),\n }\n\n if (event_name === '$identify') {\n data['$set'] = options['$set']\n data['$set_once'] = options['$set_once']\n }\n\n data = _copyAndTruncateStrings(\n data,\n options._noTruncate ? null : this.get_config('properties_string_max_length')\n )\n data.timestamp = options.timestamp || new Date()\n\n if (this.get_config('debug')) {\n logger.log('PostHog.js send', data)\n }\n const jsonData = JSON.stringify(data)\n\n const url = this.get_config('api_host') + (options.endpoint || '/e/')\n\n const has_unique_traits = options !== __NOOPTIONS\n\n if (\n this.get_config('request_batching') &&\n (!has_unique_traits || options._batchKey) &&\n !options.send_instantly\n ) {\n this._requestQueue.enqueue(url, data, options)\n } else {\n this.__compress_and_send_json_request(url, jsonData, options)\n }\n\n this._invokeCaptureHooks(event_name, data)\n\n return data\n }\n\n _addCaptureHook(callback: (eventName: string) => void): void {\n this.__captureHooks.push(callback)\n }\n\n _invokeCaptureHooks(eventName: string, eventData: CaptureResult): void {\n this.config._onCapture(eventName, eventData)\n _each(this.__captureHooks, (callback) => callback(eventName))\n }\n\n _calculate_event_properties(event_name: string, event_properties: Properties): Properties {\n // set defaults\n const start_timestamp = this.persistence.remove_event_timer(event_name)\n let properties = { ...event_properties }\n properties['token'] = this.get_config('token')\n\n if (event_name === '$snapshot') {\n const persistenceProps = { ...this.persistence.properties(), ...this.sessionPersistence.properties() }\n properties['distinct_id'] = persistenceProps.distinct_id\n return properties\n }\n\n const infoProperties = _info.properties()\n\n if (this.sessionManager) {\n const { sessionId, windowId } = this.sessionManager.checkAndGetSessionAndWindowId()\n properties['$session_id'] = sessionId\n properties['$window_id'] = windowId\n }\n\n if (this.webPerformance?.isEnabled) {\n if (event_name === '$pageview') {\n this.pageViewIdManager.onPageview()\n }\n properties = _extend(properties, { $pageview_id: this.pageViewIdManager.getPageViewId() })\n }\n\n if (event_name === '$performance_event') {\n const persistenceProps = this.persistence.properties()\n // Early exit for $performance_event as we only need session and $current_url\n properties['distinct_id'] = persistenceProps.distinct_id\n properties['$current_url'] = infoProperties.$current_url\n return properties\n }\n\n // set $duration if time_event was previously called for this event\n if (typeof start_timestamp !== 'undefined') {\n const duration_in_ms = new Date().getTime() - start_timestamp\n properties['$duration'] = parseFloat((duration_in_ms / 1000).toFixed(3))\n }\n\n // note: extend writes to the first object, so lets make sure we\n // don't write to the persistence properties object and info\n // properties object by passing in a new object\n\n // update properties with pageview info and super-properties\n properties = _extend(\n {},\n _info.properties(),\n this.persistence.properties(),\n this.sessionPersistence.properties(),\n properties\n )\n\n const property_blacklist = this.get_config('property_blacklist')\n if (_isArray(property_blacklist)) {\n _each(property_blacklist, function (blacklisted_prop) {\n delete properties[blacklisted_prop]\n })\n } else {\n console.error('Invalid value for property_blacklist config: ' + property_blacklist)\n }\n\n const sanitize_properties = this.get_config('sanitize_properties')\n if (sanitize_properties) {\n properties = sanitize_properties(properties, event_name)\n }\n\n return properties\n }\n\n /**\n * Register a set of super properties, which are included with all\n * events. This will overwrite previous super property values, except\n * for session properties (see `register_for_session(properties)`).\n *\n * ### Usage:\n *\n * // register 'Gender' as a super property\n * posthog.register({'Gender': 'Female'});\n *\n * // register several super properties when a user signs up\n * posthog.register({\n * 'Email': 'jdoe@example.com',\n * 'Account Type': 'Free'\n * });\n *\n * // Display the properties\n * console.log(posthog.persistence.properties())\n *\n * @param {Object} properties An associative array of properties to store about the user\n * @param {Number} [days] How many days since the user's last visit to store the super properties\n */\n register(properties: Properties, days?: number): void {\n this.persistence.register(properties, days)\n }\n\n /**\n * Register a set of super properties only once. These will not\n * overwrite previous super property values, unlike register().\n *\n * ### Usage:\n *\n * // register a super property for the first time only\n * posthog.register_once({\n * 'First Login Date': new Date().toISOString()\n * });\n *\n * // Display the properties\n * console.log(posthog.persistence.properties())\n *\n * ### Notes:\n *\n * If default_value is specified, current super properties\n * with that value will be overwritten.\n *\n * @param {Object} properties An associative array of properties to store about the user\n * @param {*} [default_value] Value to override if already set in super properties (ex: 'False') Default: 'None'\n * @param {Number} [days] How many days since the users last visit to store the super properties\n */\n register_once(properties: Properties, default_value?: Property, days?: number): void {\n this.persistence.register_once(properties, default_value, days)\n }\n\n /**\n * Register a set of super properties, which are included with all events, but only\n * for THIS SESSION. These will overwrite all other super property values.\n *\n * Unlike regular super properties, which last in LocalStorage for a long time,\n * session super properties get cleared after a session ends.\n *\n * ### Usage:\n *\n * // register on all events this session\n * posthog.register_for_session({'referer': customGetReferer()});\n *\n * // register several session super properties when a user signs up\n * posthog.register_for_session({\n * 'selectedPlan': 'pro',\n * 'completedSteps': 4,\n * });\n *\n * // Display the properties\n * console.log(posthog.sessionPersistence.properties())\n *\n * @param {Object} properties An associative array of properties to store about the user\n */\n register_for_session(properties: Properties): void {\n this.sessionPersistence.register(properties)\n }\n\n /**\n * Delete a super property stored with the current user.\n *\n * @param {String} property The name of the super property to remove\n */\n unregister(property: string): void {\n this.persistence.unregister(property)\n }\n\n /**\n * Delete a session super property stored with the current user.\n *\n * @param {String} property The name of the session super property to remove\n */\n unregister_for_session(property: string): void {\n this.sessionPersistence.unregister(property)\n }\n\n _register_single(prop: string, value: Property) {\n this.register({ [prop]: value })\n }\n\n /*\n * Get feature flag value for user (supports multivariate flags).\n *\n * ### Usage:\n *\n * if(posthog.getFeatureFlag('beta-feature') === 'some-value') { // do something }\n *\n * @param {Object|String} prop Key of the feature flag.\n * @param {Object|String} options (optional) If {send_event: false}, we won't send an $feature_flag_call event to PostHog.\n */\n getFeatureFlag(key: string, options?: { send_event?: boolean }): boolean | string | undefined {\n return this.featureFlags.getFeatureFlag(key, options)\n }\n\n /*\n * Get feature flag payload value matching key for user (supports multivariate flags).\n *\n * ### Usage:\n *\n * if(posthog.getFeatureFlag('beta-feature') === 'some-value') {\n * const someValue = posthog.getFeatureFlagPayload('beta-feature')\n * // do something\n * }\n *\n * @param {Object|String} prop Key of the feature flag.\n */\n getFeatureFlagPayload(key: string): JsonType {\n const payload = this.featureFlags.getFeatureFlagPayload(key)\n try {\n return JSON.parse(payload as any)\n } catch {\n return payload\n }\n }\n\n /*\n * See if feature flag is enabled for user.\n *\n * ### Usage:\n *\n * if(posthog.isFeatureEnabled('beta-feature')) { // do something }\n *\n * @param {Object|String} prop Key of the feature flag.\n * @param {Object|String} options (optional) If {send_event: false}, we won't send an $feature_flag_call event to PostHog.\n */\n isFeatureEnabled(key: string, options?: isFeatureEnabledOptions): boolean {\n return this.featureFlags.isFeatureEnabled(key, options)\n }\n\n reloadFeatureFlags(): void {\n this.featureFlags.reloadFeatureFlags()\n }\n\n /** Opt the user in or out of an early access feature. */\n updateEarlyAccessFeatureEnrollment(key: string, isEnrolled: boolean): void {\n this.featureFlags.updateEarlyAccessFeatureEnrollment(key, isEnrolled)\n }\n\n /** Get the list of early access features. To check enrollment status, use `isFeatureEnabled`. */\n getEarlyAccessFeatures(callback: EarlyAccessFeatureCallback, force_reload = false): void {\n return this.featureFlags.getEarlyAccessFeatures(callback, force_reload)\n }\n\n /*\n * Register an event listener that runs when feature flags become available or when they change.\n * If there are flags, the listener is called immediately in addition to being called on future changes.\n *\n * ### Usage:\n *\n * posthog.onFeatureFlags(function(featureFlags) { // do something })\n *\n * @param {Function} [callback] The callback function will be called once the feature flags are ready or when they are updated.\n * It'll return a list of feature flags enabled for the user.\n * @returns {Function} A function that can be called to unsubscribe the listener. Used by useEffect when the component unmounts.\n */\n onFeatureFlags(callback: (flags: string[], variants: Record) => void): () => void {\n return this.featureFlags.onFeatureFlags(callback)\n }\n\n /** Get list of all surveys. */\n getSurveys(callback: SurveyCallback, forceReload = false): void {\n this.surveys.getSurveys(callback, forceReload)\n }\n\n /** Get surveys that should be enabled for the current user. */\n getActiveMatchingSurveys(callback: SurveyCallback, forceReload = false): void {\n this.surveys.getActiveMatchingSurveys(callback, forceReload)\n }\n\n /**\n * Identify a user with a unique ID instead of a PostHog\n * randomly generated distinct_id. If the method is never called,\n * then unique visitors will be identified by a UUID that is generated\n * the first time they visit the site.\n *\n * If user properties are passed, they are also sent to posthog.\n *\n * ### Usage:\n *\n * posthog.identify('[user unique id]')\n * posthog.identify('[user unique id]', { email: 'john@example.com' })\n * posthog.identify('[user unique id]', {}, { referral_code: '12345' })\n *\n * ### Notes:\n *\n * You can call this function to overwrite a previously set\n * unique ID for the current user.\n *\n * If the user has been identified ($user_state in persistence is set to 'identified'),\n * then capture of $identify is skipped to avoid merging users. For example,\n * if your system allows an admin user to impersonate another user.\n *\n * Then a single browser instance can have:\n *\n * `identify('a') -> capture(1) -> identify('b') -> capture(2)`\n *\n * and capture 1 and capture 2 will have the correct distinct_id.\n * but users a and b will NOT be merged in posthog.\n *\n * However, if reset is called then:\n *\n * `identify('a') -> capture(1) -> reset() -> capture(2) -> identify('b') -> capture(3)`\n *\n * users a and b are not merged.\n * Capture 1 is associated with user a.\n * A new distinct id is generated for capture 2.\n * which is merged with user b.\n * So, capture 2 and 3 are associated with user b.\n *\n * If you want to merge two identified users, you can call posthog.alias\n *\n * @param {String} [new_distinct_id] A string that uniquely identifies a user. If not provided, the distinct_id currently in the persistent store (cookie or localStorage) will be used.\n * @param {Object} [userPropertiesToSet] Optional: An associative array of properties to store about the user\n * @param {Object} [userPropertiesToSetOnce] Optional: An associative array of properties to store about the user. If property is previously set, this does not override that value.\n */\n identify(new_distinct_id?: string, userPropertiesToSet?: Properties, userPropertiesToSetOnce?: Properties): void {\n //if the new_distinct_id has not been set ignore the identify event\n if (!new_distinct_id) {\n console.error('Unique user id has not been set in posthog.identify')\n return\n }\n\n this._captureMetrics.incr('identify')\n\n const previous_distinct_id = this.get_distinct_id()\n this.register({ $user_id: new_distinct_id })\n\n if (!this.get_property('$device_id')) {\n // The persisted distinct id might not actually be a device id at all\n // it might be a distinct id of the user from before\n const device_id = previous_distinct_id\n this.register_once(\n {\n $had_persisted_distinct_id: true,\n $device_id: device_id,\n },\n ''\n )\n }\n\n // if the previous distinct id had an alias stored, then we clear it\n if (new_distinct_id !== previous_distinct_id && new_distinct_id !== this.get_property(ALIAS_ID_KEY)) {\n this.unregister(ALIAS_ID_KEY)\n this.register({ distinct_id: new_distinct_id })\n }\n\n const isKnownAnonymous = this.persistence.get_user_state() === 'anonymous'\n\n // send an $identify event any time the distinct_id is changing and the old ID is an anoymous ID\n // - logic on the server will determine whether or not to do anything with it.\n if (new_distinct_id !== previous_distinct_id && isKnownAnonymous) {\n this.persistence.set_user_state('identified')\n this.capture(\n '$identify',\n {\n distinct_id: new_distinct_id,\n $anon_distinct_id: previous_distinct_id,\n },\n { $set: userPropertiesToSet || {}, $set_once: userPropertiesToSetOnce || {} }\n )\n // let the reload feature flag request know to send this previous distinct id\n // for flag consistency\n this.featureFlags.setAnonymousDistinctId(previous_distinct_id)\n } else {\n if (userPropertiesToSet) {\n this.people.set(userPropertiesToSet)\n }\n if (userPropertiesToSetOnce) {\n this.people.set_once(userPropertiesToSetOnce)\n }\n }\n\n // Reload active feature flags if the user identity changes.\n // Note we don't reload this on property changes as these get processed async\n if (new_distinct_id !== previous_distinct_id) {\n this.reloadFeatureFlags()\n }\n }\n\n /**\n * Alpha feature: don't use unless you know what you're doing!\n *\n * Sets group analytics information for subsequent events and reloads feature flags.\n *\n * @param {String} groupType Group type (example: 'organization')\n * @param {String} groupKey Group key (example: 'org::5')\n * @param {Object} groupPropertiesToSet Optional properties to set for group\n */\n group(groupType: string, groupKey: string, groupPropertiesToSet?: Properties): void {\n if (!groupType || !groupKey) {\n console.error('posthog.group requires a group type and group key')\n return\n }\n\n this._captureMetrics.incr('group')\n\n const existingGroups = this.getGroups()\n\n // if group key changes, remove stored group properties\n if (existingGroups[groupType] !== groupKey) {\n this.resetGroupPropertiesForFlags(groupType)\n }\n\n this.register({ $groups: { ...existingGroups, [groupType]: groupKey } })\n\n if (groupPropertiesToSet) {\n this.capture('$groupidentify', {\n $group_type: groupType,\n $group_key: groupKey,\n $group_set: groupPropertiesToSet,\n })\n this.setGroupPropertiesForFlags({ [groupType]: groupPropertiesToSet })\n }\n\n // If groups change and no properties change, reload feature flags.\n // The property change reload case is handled in setGroupPropertiesForFlags.\n if (existingGroups[groupType] !== groupKey && !groupPropertiesToSet) {\n this.reloadFeatureFlags()\n }\n }\n\n /**\n * Resets only the group properties of the user currently logged in.\n */\n resetGroups(): void {\n this.register({ $groups: {} })\n this.resetGroupPropertiesForFlags()\n\n // If groups changed, reload feature flags.\n this.reloadFeatureFlags()\n }\n\n /**\n * Set override person properties for feature flags.\n * This is used when dealing with new persons / where you don't want to wait for ingestion\n * to update user properties.\n */\n setPersonPropertiesForFlags(properties: Properties, reloadFeatureFlags = true): void {\n this.featureFlags.setPersonPropertiesForFlags(properties, reloadFeatureFlags)\n }\n\n resetPersonPropertiesForFlags(): void {\n this.featureFlags.resetPersonPropertiesForFlags()\n }\n\n /**\n * Set override group properties for feature flags.\n * This is used when dealing with new groups / where you don't want to wait for ingestion\n * to update properties.\n * Takes in an object, the key of which is the group type.\n * For example:\n * setGroupPropertiesForFlags({'organization': { name: 'CYZ', employees: '11' } })\n */\n setGroupPropertiesForFlags(properties: { [type: string]: Properties }, reloadFeatureFlags = true): void {\n this.featureFlags.setGroupPropertiesForFlags(properties, reloadFeatureFlags)\n }\n\n resetGroupPropertiesForFlags(group_type?: string): void {\n this.featureFlags.resetGroupPropertiesForFlags(group_type)\n }\n\n /**\n * Clears super properties and generates a new random distinct_id for this instance.\n * Useful for clearing data when a user logs out.\n */\n reset(reset_device_id?: boolean): void {\n const device_id = this.get_property('$device_id')\n this.persistence.clear()\n this.sessionPersistence.clear()\n this.persistence.set_user_state('anonymous')\n this.sessionManager.resetSessionId()\n const uuid = this.get_config('get_device_id')(_UUID())\n this.register_once(\n {\n distinct_id: uuid,\n $device_id: reset_device_id ? uuid : device_id,\n },\n ''\n )\n }\n\n /**\n * Returns the current distinct id of the user. This is either the id automatically\n * generated by the library or the id that has been passed by a call to identify().\n *\n * ### Notes:\n *\n * get_distinct_id() can only be called after the PostHog library has finished loading.\n * init() has a loaded function available to handle this automatically. For example:\n *\n * // set distinct_id after the posthog library has loaded\n * posthog.init('YOUR PROJECT TOKEN', {\n * loaded: function(posthog) {\n * distinct_id = posthog.get_distinct_id();\n * }\n * });\n */\n get_distinct_id(): string {\n return this.get_property('distinct_id')\n }\n\n getGroups(): Record {\n return this.get_property('$groups') || {}\n }\n\n /**\n * Returns the current session_id.\n *\n * NOTE: This should only be used for informative purposes.\n * Any actual internal use case for the session_id should be handled by the sessionManager.\n */\n\n get_session_id(): string {\n return this.sessionManager.checkAndGetSessionAndWindowId(true).sessionId\n }\n\n /**\n * Returns the Replay url for the current session.\n *\n * @param options Options for the url\n * @param options.withTimestamp Whether to include the timestamp in the url (defaults to false)\n * @param options.timestampLookBack How many seconds to look back for the timestamp (defaults to 10)\n */\n get_session_replay_url(options?: { withTimestamp?: boolean; timestampLookBack?: number }): string {\n const host = this.config.ui_host || this.config.api_host\n let url = host + '/replay/' + this.get_session_id()\n if (options?.withTimestamp && this.sessionManager._sessionStartTimestamp) {\n const LOOK_BACK = options.timestampLookBack ?? 10\n if (!this.sessionManager._sessionStartTimestamp) {\n return url\n }\n const recordingStartTime = Math.max(\n Math.floor((new Date().getTime() - (this.sessionManager._sessionStartTimestamp || 0)) / 1000) -\n LOOK_BACK,\n 0\n )\n url += `?t=${recordingStartTime}`\n }\n\n return url\n }\n\n /**\n * Create an alias, which PostHog will use to link two distinct_ids going forward (not retroactively).\n * Multiple aliases can map to the same original ID, but not vice-versa. Aliases can also be chained - the\n * following is a valid scenario:\n *\n * posthog.alias('new_id', 'existing_id');\n * ...\n * posthog.alias('newer_id', 'new_id');\n *\n * If the original ID is not passed in, we will use the current distinct_id - probably the auto-generated GUID.\n *\n * ### Notes:\n *\n * The best practice is to call alias() when a unique ID is first created for a user\n * (e.g., when a user first registers for an account and provides an email address).\n * alias() should never be called more than once for a given user, except to\n * chain a newer ID to a previously new ID, as described above.\n *\n * @param {String} alias A unique identifier that you want to use for this user in the future.\n * @param {String} [original] The current identifier being used for this user.\n */\n alias(alias: string, original?: string): CaptureResult | void | number {\n // If the $people_distinct_id key exists in persistence, there has been a previous\n // posthog.people.identify() call made for this user. It is VERY BAD to make an alias with\n // this ID, as it will duplicate users.\n if (alias === this.get_property(PEOPLE_DISTINCT_ID_KEY)) {\n logger.critical('Attempting to create alias for existing People user - aborting.')\n return -2\n }\n\n if (_isUndefined(original)) {\n original = this.get_distinct_id()\n }\n if (alias !== original) {\n this._register_single(ALIAS_ID_KEY, alias)\n return this.capture('$create_alias', { alias: alias, distinct_id: original })\n } else {\n console.error('alias matches current distinct_id - skipping api call.')\n this.identify(alias)\n return -1\n }\n }\n\n /**\n * Update the configuration of a posthog library instance.\n *\n * The default config is:\n *\n * {\n * // PostHog API host\n * api_host: 'https://app.posthog.com',\n *\n * // HTTP method for capturing requests\n * api_method: 'POST'\n *\n * // PostHog web app host, currently only used by the Sentry integration.\n * // This will only be different from api_host when using a reverse-proxied API host – in that case\n * // the original web app host needs to be passed here so that links to the web app are still convenient.\n * ui_host: 'https://app.posthog.com',\n *\n * // Automatically capture clicks, form submissions and change events\n * autocapture: true\n *\n * // Capture rage clicks\n * rageclick: true\n *\n * // transport for sending requests ('XHR' or 'sendBeacon')\n * // NB: sendBeacon should only be used for scenarios such as\n * // page unload where a \"best-effort\" attempt to send is\n * // acceptable; the sendBeacon API does not support callbacks\n * // or any way to know the result of the request. PostHog\n * // capturing via sendBeacon will not support any event-\n * // batching or retry mechanisms.\n * api_transport: 'XHR'\n *\n * // super properties cookie expiration (in days)\n * cookie_expiration: 365\n *\n * // super properties span subdomains\n * cross_subdomain_cookie: true\n *\n * // debug mode\n * debug: false\n *\n * // if this is true, the posthog cookie or localStorage entry\n * // will be deleted, and no user persistence will take place\n * disable_persistence: false\n *\n * // if this is true, PostHog will automatically determine\n * // City, Region and Country data using the IP address of\n * //the client\n * ip: true\n *\n * // opt users out of capturing by this PostHog instance by default\n * opt_out_capturing_by_default: false\n *\n * // opt users out of browser data storage by this PostHog instance by default\n * opt_out_persistence_by_default: false\n *\n * // persistence mechanism used by opt-in/opt-out methods - cookie\n * // or localStorage - falls back to cookie if localStorage is unavailable\n * opt_out_capturing_persistence_type: 'localStorage'\n *\n * // customize the name of cookie/localStorage set by opt-in/opt-out methods\n * opt_out_capturing_cookie_prefix: null\n *\n * // type of persistent store for super properties (cookie/\n * // localStorage) if set to 'localStorage', any existing\n * // posthog cookie value with the same persistence_name\n * // will be transferred to localStorage and deleted\n * persistence: 'cookie'\n *\n * // name for super properties persistent store\n * persistence_name: ''\n *\n * // names of properties/superproperties which should never\n * // be sent with capture() calls\n * property_blacklist: []\n *\n * // if this is true, posthog cookies will be marked as\n * // secure, meaning they will only be transmitted over https\n * secure_cookie: false\n *\n * // should we capture a page view on page load\n * capture_pageview: true\n *\n * // if you set upgrade to be true, the library will check for\n * // a cookie from our old js library and import super\n * // properties from it, then the old cookie is deleted\n * // The upgrade config option only works in the initialization,\n * // so make sure you set it when you create the library.\n * upgrade: false\n *\n * // if this is true, session recording is always disabled.\n * disable_session_recording: false,\n *\n * // extra HTTP request headers to set for each API request, in\n * // the format {'Header-Name': value}\n * xhr_headers: {}\n *\n * // protocol for fetching in-app message resources, e.g.\n * // 'https://' or 'http://'; defaults to '//' (which defers to the\n * // current page's protocol)\n * inapp_protocol: '//'\n *\n * // whether to open in-app message link in new tab/window\n * inapp_link_new_window: false\n *\n * // a set of rrweb config options that PostHog users can configure\n * // see https://github.com/rrweb-io/rrweb/blob/master/guide.md\n * session_recording: {\n * blockClass: 'ph-no-capture',\n * blockSelector: null,\n * ignoreClass: 'ph-ignore-input',\n * maskAllInputs: true,\n * maskInputOptions: {},\n * maskInputFn: null,\n * slimDOMOptions: {},\n * collectFonts: false\n * }\n *\n * // prevent autocapture from capturing any attribute names on elements\n * mask_all_element_attributes: false\n *\n * // prevent autocapture from capturing textContent on all elements\n * mask_all_text: false\n *\n * // Anonymous users get a random UUID as their device by default.\n * // This option allows overriding that option.\n * get_device_id: (uuid) => uuid\n * }\n *\n *\n * @param {Object} config A dictionary of new configuration values to update\n */\n\n set_config(config: Partial): void {\n const oldConfig = { ...this.config }\n if (_isObject(config)) {\n _extend(this.config, config)\n\n if (!this.get_config('persistence_name')) {\n this.config.persistence_name = this.config.cookie_name\n }\n if (!this.get_config('disable_persistence')) {\n this.config.disable_persistence = this.config.disable_cookie\n }\n\n if (this.persistence) {\n this.persistence.update_config(this.config)\n }\n if (this.sessionPersistence) {\n this.sessionPersistence.update_config(this.config)\n }\n if (localStore.is_supported() && localStore.get('ph_debug') === 'true') {\n this.config.debug = true\n }\n if (this.get_config('debug')) {\n Config.DEBUG = true\n }\n\n if (this.sessionRecording && typeof config.disable_session_recording !== 'undefined') {\n if (oldConfig.disable_session_recording !== config.disable_session_recording) {\n if (config.disable_session_recording) {\n this.sessionRecording.stopRecording()\n } else {\n this.sessionRecording.startRecordingIfEnabled()\n }\n }\n }\n }\n }\n\n /**\n * turns session recording on, and updates the config option\n * disable_session_recording to false\n */\n startSessionRecording(): void {\n this.set_config({ disable_session_recording: false })\n }\n\n /**\n * turns session recording off, and updates the config option\n * disable_session_recording to true\n */\n stopSessionRecording(): void {\n this.set_config({ disable_session_recording: true })\n }\n\n /**\n * returns a boolean indicating whether session recording\n * is currently running\n */\n sessionRecordingStarted(): boolean {\n return !!this.sessionRecording?.started()\n }\n\n /**\n * returns a boolean indicating whether the toolbar loaded\n * @param toolbarParams\n */\n\n loadToolbar(params: ToolbarParams): boolean {\n return this.toolbar.loadToolbar(params)\n }\n\n /**\n * returns the current config object for the library.\n */\n get_config(prop_name: K): PostHogConfig[K] {\n return this.config?.[prop_name]\n }\n\n /**\n * Returns the value of the super property named property_name. If no such\n * property is set, get_property() will return the undefined value.\n *\n * ### Notes:\n *\n * get_property() can only be called after the PostHog library has finished loading.\n * init() has a loaded function available to handle this automatically. For example:\n *\n * // grab value for '$user_id' after the posthog library has loaded\n * posthog.init('YOUR PROJECT TOKEN', {\n * loaded: function(posthog) {\n * user_id = posthog.get_property('$user_id');\n * }\n * });\n *\n * @param {String} property_name The name of the super property you want to retrieve\n */\n get_property(property_name: string): Property | undefined {\n return this.persistence['props'][property_name]\n }\n\n /**\n * Returns the value of the session super property named property_name. If no such\n * property is set, getSessionProperty() will return the undefined value.\n *\n * ### Notes:\n *\n * This is based on browser-level `sessionStorage`, NOT the PostHog session.\n * getSessionProperty() can only be called after the PostHog library has finished loading.\n * init() has a loaded function available to handle this automatically. For example:\n *\n * // grab value for 'user_id' after the posthog library has loaded\n * posthog.init('YOUR PROJECT TOKEN', {\n * loaded: function(posthog) {\n * user_id = posthog.getSessionProperty('user_id');\n * }\n * });\n *\n * @param {String} property_name The name of the session super property you want to retrieve\n */\n getSessionProperty(property_name: string): Property | undefined {\n return this.sessionPersistence['props'][property_name]\n }\n\n toString(): string {\n let name = this.get_config('name') ?? PRIMARY_INSTANCE_NAME\n if (name !== PRIMARY_INSTANCE_NAME) {\n name = PRIMARY_INSTANCE_NAME + '.' + name\n }\n return name\n }\n\n // perform some housekeeping around GDPR opt-in/out state\n _gdpr_init(): void {\n const is_localStorage_requested = this.get_config('opt_out_capturing_persistence_type') === 'localStorage'\n\n // try to convert opt-in/out cookies to localStorage if possible\n if (is_localStorage_requested && localStore.is_supported()) {\n if (!this.has_opted_in_capturing() && this.has_opted_in_capturing({ persistence_type: 'cookie' })) {\n this.opt_in_capturing({ enable_persistence: false })\n }\n if (!this.has_opted_out_capturing() && this.has_opted_out_capturing({ persistence_type: 'cookie' })) {\n this.opt_out_capturing({ clear_persistence: false })\n }\n this.clear_opt_in_out_capturing({\n persistence_type: 'cookie',\n enable_persistence: false,\n })\n }\n\n // check whether the user has already opted out - if so, clear & disable persistence\n if (this.has_opted_out_capturing()) {\n this._gdpr_update_persistence({ clear_persistence: true })\n\n // check whether we should opt out by default\n // note: we don't clear persistence here by default since opt-out default state is often\n // used as an initial state while GDPR information is being collected\n } else if (\n !this.has_opted_in_capturing() &&\n (this.get_config('opt_out_capturing_by_default') || cookieStore.get('ph_optout'))\n ) {\n cookieStore.remove('ph_optout')\n this.opt_out_capturing({\n clear_persistence: this.get_config('opt_out_persistence_by_default'),\n })\n }\n }\n\n /**\n * Enable or disable persistence based on options\n * only enable/disable if persistence is not already in this state\n * @param {boolean} [options.clear_persistence] If true, will delete all data stored by the sdk in persistence and disable it\n * @param {boolean} [options.enable_persistence] If true, will re-enable sdk persistence\n */\n _gdpr_update_persistence(options: Partial): void {\n let disabled\n if (options && options['clear_persistence']) {\n disabled = true\n } else if (options && options['enable_persistence']) {\n disabled = false\n } else {\n return\n }\n\n if (!this.get_config('disable_persistence') && this.persistence.disabled !== disabled) {\n this.persistence.set_disabled(disabled)\n }\n if (!this.get_config('disable_persistence') && this.sessionPersistence.disabled !== disabled) {\n this.sessionPersistence.set_disabled(disabled)\n }\n }\n\n // call a base gdpr function after constructing the appropriate token and options args\n _gdpr_call_func(\n func: (token: string, options: GDPROptions) => R,\n options?: Partial\n ): R {\n options = _extend(\n {\n capture: this.capture.bind(this),\n persistence_type: this.get_config('opt_out_capturing_persistence_type'),\n cookie_prefix: this.get_config('opt_out_capturing_cookie_prefix'),\n cookie_expiration: this.get_config('cookie_expiration'),\n cross_subdomain_cookie: this.get_config('cross_subdomain_cookie'),\n secure_cookie: this.get_config('secure_cookie'),\n },\n options || {}\n )\n\n // check if localStorage can be used for recording opt out status, fall back to cookie if not\n if (!localStore.is_supported() && options['persistence_type'] === 'localStorage') {\n options['persistence_type'] = 'cookie'\n }\n\n return func(this.get_config('token'), {\n capture: options['capture'],\n captureEventName: options['capture_event_name'],\n captureProperties: options['capture_properties'],\n persistenceType: options['persistence_type'],\n persistencePrefix: options['cookie_prefix'],\n cookieExpiration: options['cookie_expiration'],\n crossSubdomainCookie: options['cross_subdomain_cookie'],\n secureCookie: options['secure_cookie'],\n })\n }\n\n /**\n * Opt the user in to data capturing and cookies/localstorage for this PostHog instance\n *\n * ### Usage\n *\n * // opt user in\n * posthog.opt_in_capturing();\n *\n * // opt user in with specific event name, properties, cookie configuration\n * posthog.opt_in_capturing({\n * capture_event_name: 'User opted in',\n * capture_event_properties: {\n * 'Email': 'jdoe@example.com'\n * },\n * cookie_expiration: 30,\n * secure_cookie: true\n * });\n *\n * @param {Object} [options] A dictionary of config options to override\n * @param {function} [options.capture] Function used for capturing a PostHog event to record the opt-in action (default is this PostHog instance's capture method)\n * @param {string} [options.capture_event_name=$opt_in] Event name to be used for capturing the opt-in action\n * @param {Object} [options.capture_properties] Set of properties to be captured along with the opt-in action\n * @param {boolean} [options.enable_persistence=true] If true, will re-enable sdk persistence\n * @param {string} [options.persistence_type=localStorage] Persistence mechanism used - cookie or localStorage - falls back to cookie if localStorage is unavailable\n * @param {string} [options.cookie_prefix=__ph_opt_in_out] Custom prefix to be used in the cookie/localstorage name\n * @param {Number} [options.cookie_expiration] Number of days until the opt-in cookie expires (overrides value specified in this PostHog instance's config)\n * @param {boolean} [options.cross_subdomain_cookie] Whether the opt-in cookie is set as cross-subdomain or not (overrides value specified in this PostHog instance's config)\n * @param {boolean} [options.secure_cookie] Whether the opt-in cookie is set as secure or not (overrides value specified in this PostHog instance's config)\n */\n opt_in_capturing(options?: Partial): void {\n options = _extend(\n {\n enable_persistence: true,\n },\n options || {}\n )\n\n this._gdpr_call_func(optIn, options)\n this._gdpr_update_persistence(options)\n }\n\n /**\n * Opt the user out of data capturing and cookies/localstorage for this PostHog instance\n *\n * ### Usage\n *\n * // opt user out\n * posthog.opt_out_capturing();\n *\n * // opt user out with different cookie configuration from PostHog instance\n * posthog.opt_out_capturing({\n * cookie_expiration: 30,\n * secure_cookie: true\n * });\n *\n * @param {Object} [options] A dictionary of config options to override\n * @param {boolean} [options.clear_persistence=true] If true, will delete all data stored by the sdk in persistence\n * @param {string} [options.persistence_type=localStorage] Persistence mechanism used - cookie or localStorage - falls back to cookie if localStorage is unavailable\n * @param {string} [options.cookie_prefix=__ph_opt_in_out] Custom prefix to be used in the cookie/localstorage name\n * @param {Number} [options.cookie_expiration] Number of days until the opt-in cookie expires (overrides value specified in this PostHog instance's config)\n * @param {boolean} [options.cross_subdomain_cookie] Whether the opt-in cookie is set as cross-subdomain or not (overrides value specified in this PostHog instance's config)\n * @param {boolean} [options.secure_cookie] Whether the opt-in cookie is set as secure or not (overrides value specified in this PostHog instance's config)\n */\n opt_out_capturing(options?: Partial): void {\n const _options = _extend(\n {\n clear_persistence: true,\n },\n options || {}\n )\n\n this._gdpr_call_func(optOut, _options)\n this._gdpr_update_persistence(_options)\n }\n\n /**\n * Check whether the user has opted in to data capturing and cookies/localstorage for this PostHog instance\n *\n * ### Usage\n *\n * const has_opted_in = posthog.has_opted_in_capturing();\n * // use has_opted_in value\n *\n * @param {Object} [options] A dictionary of config options to override\n * @param {string} [options.persistence_type=localStorage] Persistence mechanism used - cookie or localStorage - falls back to cookie if localStorage is unavailable\n * @param {string} [options.cookie_prefix=__ph_opt_in_out] Custom prefix to be used in the cookie/localstorage name\n * @returns {boolean} current opt-in status\n */\n has_opted_in_capturing(options?: Partial): boolean {\n return this._gdpr_call_func(hasOptedIn, options)\n }\n\n /**\n * Check whether the user has opted out of data capturing and cookies/localstorage for this PostHog instance\n *\n * ### Usage\n *\n * const has_opted_out = posthog.has_opted_out_capturing();\n * // use has_opted_out value\n *\n * @param {Object} [options] A dictionary of config options to override\n * @param {string} [options.persistence_type=localStorage] Persistence mechanism used - cookie or localStorage - falls back to cookie if localStorage is unavailable\n * @param {string} [options.cookie_prefix=__ph_opt_in_out] Custom prefix to be used in the cookie/localstorage name\n * @returns {boolean} current opt-out status\n */\n has_opted_out_capturing(options?: Partial): boolean {\n return this._gdpr_call_func(hasOptedOut, options)\n }\n\n /**\n * Clear the user's opt in/out status of data capturing and cookies/localstorage for this PostHog instance\n *\n * ### Usage\n *\n * // clear user's opt-in/out status\n * posthog.clear_opt_in_out_capturing();\n *\n * // clear user's opt-in/out status with specific cookie configuration - should match\n * // configuration used when opt_in_capturing/opt_out_capturing methods were called.\n * posthog.clear_opt_in_out_capturing({\n * cookie_expiration: 30,\n * secure_cookie: true\n * });\n *\n * @param {Object} [options] A dictionary of config options to override\n * @param {boolean} [options.enable_persistence=true] If true, will re-enable sdk persistence\n * @param {string} [options.persistence_type=localStorage] Persistence mechanism used - cookie or localStorage - falls back to cookie if localStorage is unavailable\n * @param {string} [options.cookie_prefix=__ph_opt_in_out] Custom prefix to be used in the cookie/localstorage name\n * @param {Number} [options.cookie_expiration] Number of days until the opt-in cookie expires (overrides value specified in this PostHog instance's config)\n * @param {boolean} [options.cross_subdomain_cookie] Whether the opt-in cookie is set as cross-subdomain or not (overrides value specified in this PostHog instance's config)\n * @param {boolean} [options.secure_cookie] Whether the opt-in cookie is set as secure or not (overrides value specified in this PostHog instance's config)\n */\n clear_opt_in_out_capturing(options?: Partial): void {\n const _options: Partial = _extend(\n {\n enable_persistence: true,\n },\n options ?? {}\n )\n this._gdpr_call_func(clearOptInOut, _options)\n this._gdpr_update_persistence(_options)\n }\n\n debug(debug?: boolean): void {\n if (debug === false) {\n window.console.log(\"You've disabled debug mode.\")\n localStorage && localStorage.removeItem('ph_debug')\n this.set_config({ debug: false })\n } else {\n window.console.log(\n \"You're now in debug mode. All calls to PostHog will be logged in your console.\\nYou can disable this with `posthog.debug(false)`.\"\n )\n localStorage && localStorage.setItem('ph_debug', 'true')\n this.set_config({ debug: true })\n }\n }\n}\n\n_safewrap_class(PostHog, ['identify'])\n\nconst instances: Record = {}\nconst extend_mp = function () {\n // add all the sub posthog instances\n _each(instances, function (instance, name) {\n if (name !== PRIMARY_INSTANCE_NAME) {\n posthog_master[name] = instance\n }\n })\n}\n\nconst override_ph_init_func = function () {\n // we override the snippets init function to handle the case where a\n // user initializes the posthog library after the script loads & runs\n posthog_master['init'] = function (token?: string, config?: Partial, name?: string) {\n if (name) {\n // initialize a sub library\n if (!posthog_master[name]) {\n posthog_master[name] = instances[name] = create_phlib(\n token || '',\n config || {},\n name,\n (instance: PostHog) => {\n posthog_master[name] = instances[name] = instance\n instance._loaded()\n }\n )\n }\n return posthog_master[name]\n } else {\n let instance: PostHog = posthog_master as any as PostHog\n\n if (instances[PRIMARY_INSTANCE_NAME]) {\n // main posthog lib already initialized\n instance = instances[PRIMARY_INSTANCE_NAME]\n } else if (token) {\n // intialize the main posthog lib\n instance = create_phlib(token, config || {}, PRIMARY_INSTANCE_NAME, (instance: PostHog) => {\n instances[PRIMARY_INSTANCE_NAME] = instance\n instance._loaded()\n })\n instances[PRIMARY_INSTANCE_NAME] = instance\n }\n\n ;(posthog_master as any) = instance\n if (init_type === InitType.INIT_SNIPPET) {\n ;(window as any)[PRIMARY_INSTANCE_NAME] = posthog_master\n }\n extend_mp()\n return instance\n }\n }\n}\n\nconst add_dom_loaded_handler = function () {\n // Cross browser DOM Loaded support\n function dom_loaded_handler() {\n // function flag since we only want to execute this once\n if ((dom_loaded_handler as any).done) {\n return\n }\n ;(dom_loaded_handler as any).done = true\n\n ENQUEUE_REQUESTS = false\n\n _each(instances, function (inst: PostHog) {\n inst._dom_loaded()\n })\n }\n\n if (document.addEventListener) {\n if (document.readyState === 'complete') {\n // safari 4 can fire the DOMContentLoaded event before loading all\n // external JS (including this file). you will see some copypasta\n // on the internet that checks for 'complete' and 'loaded', but\n // 'loaded' is an IE thing\n dom_loaded_handler()\n } else {\n document.addEventListener('DOMContentLoaded', dom_loaded_handler, false)\n }\n }\n\n // fallback handler, always will work\n _register_event(window, 'load', dom_loaded_handler, true)\n}\n\nexport function init_from_snippet(): void {\n init_type = InitType.INIT_SNIPPET\n if (_isUndefined((window as any).posthog)) {\n ;(window as any).posthog = []\n }\n posthog_master = (window as any).posthog\n\n if (posthog_master['__loaded'] || (posthog_master['config'] && posthog_master['persistence'])) {\n // lib has already been loaded at least once; we don't want to override the global object this time so bomb early\n console.error('PostHog library has already been downloaded at least once.')\n return\n }\n\n // Load instances of the PostHog Library\n _each(posthog_master['_i'], function (item: [token: string, config: Partial, name: string]) {\n if (item && _isArray(item)) {\n instances[item[2]] = create_phlib(...item)\n }\n })\n\n override_ph_init_func()\n ;(posthog_master['init'] as any)()\n\n // Fire loaded events after updating the window's posthog object\n _each(instances, function (instance) {\n instance._loaded()\n })\n\n add_dom_loaded_handler()\n}\n\nexport function init_as_module(): PostHog {\n init_type = InitType.INIT_MODULE\n ;(posthog_master as any) = new PostHog()\n\n override_ph_init_func()\n ;(posthog_master['init'] as any)()\n add_dom_loaded_handler()\n\n return posthog_master as any\n}\n","import { PostHog } from './posthog-core'\nimport { SURVEYS } from './posthog-persistence'\nimport { SurveyCallback } from 'types'\n\nexport class PostHogSurveys {\n instance: PostHog\n\n constructor(instance: PostHog) {\n this.instance = instance\n }\n\n getSurveys(callback: SurveyCallback, forceReload = false) {\n const existingSurveys = this.instance.get_property(SURVEYS)\n if (!existingSurveys || forceReload) {\n this.instance._send_request(\n `${this.instance.get_config('api_host')}/api/surveys/?token=${this.instance.get_config('token')}`,\n {},\n { method: 'GET' },\n (response) => {\n const surveys = response.surveys\n this.instance.persistence.register({ [SURVEYS]: surveys })\n return callback(surveys)\n }\n )\n } else {\n return callback(existingSurveys)\n }\n }\n\n getActiveMatchingSurveys(callback: SurveyCallback, forceReload = false) {\n this.getSurveys((surveys) => {\n const activeSurveys = surveys.filter((survey) => {\n return !!(survey.start_date && !survey.end_date)\n })\n const conditionMatchedSurveys = activeSurveys.filter((survey) => {\n if (!survey.conditions) {\n return true\n }\n const urlCheck = survey.conditions?.url\n ? window.location.href.indexOf(survey.conditions.url) > -1\n : true\n const selectorCheck = survey.conditions?.selector\n ? document.querySelector(survey.conditions.selector)\n : true\n return urlCheck && selectorCheck\n })\n const targetingMatchedSurveys = conditionMatchedSurveys.filter((survey) => {\n if (!survey.linked_flag_key && !survey.targeting_flag_key) {\n return true\n }\n const linkedFlagCheck = survey.linked_flag_key\n ? this.instance.featureFlags.isFeatureEnabled(survey.linked_flag_key)\n : true\n const targetingFlagCheck = survey.targeting_flag_key\n ? this.instance.featureFlags.isFeatureEnabled(survey.targeting_flag_key)\n : true\n return linkedFlagCheck && targetingFlagCheck\n })\n\n return callback(targetingMatchedSurveys)\n }, forceReload)\n }\n}\n","/**\n * Extend Segment with extra PostHog JS functionality. Required for things like Recordings and feature flags to work correctly.\n *\n * ### Usage\n *\n * ```js\n * // After your standard segment anyalytics install\n * analytics.load(\"GOEDfA21zZTtR7clsBuDvmBKAtAdZ6Np\");\n *\n * analytics.ready(() => {\n * posthog.init('', {\n * capture_pageview: false,\n * segment: window.analytics, // NOTE: Be sure to use window.analytics here!\n * });\n * window.analytics.page();\n * })\n * ```\n */\nimport { PostHog } from '../posthog-core'\n\n// Loosely based on https://github.com/segmentio/analytics-next/blob/master/packages/core/src/plugins/index.ts\ninterface SegmentPluginContext {\n event: {\n event: string\n userId?: string\n anonymousId?: string\n properties: any\n }\n}\n\ninterface SegmentPlugin {\n name: string\n version: string\n type: 'enrichment'\n isLoaded: () => boolean\n load: (ctx: SegmentPluginContext, instance: any, config?: any) => Promise\n unload?: (ctx: SegmentPluginContext, instance: any) => Promise | unknown\n ready?: () => Promise\n track?: (ctx: SegmentPluginContext) => Promise | SegmentPluginContext\n identify?: (ctx: SegmentPluginContext) => Promise | SegmentPluginContext\n page?: (ctx: SegmentPluginContext) => Promise | SegmentPluginContext\n group?: (ctx: SegmentPluginContext) => Promise | SegmentPluginContext\n alias?: (ctx: SegmentPluginContext) => Promise | SegmentPluginContext\n screen?: (ctx: SegmentPluginContext) => Promise | SegmentPluginContext\n}\n\nexport const createSegmentIntegration = (posthog: PostHog): SegmentPlugin => {\n if (!Promise || !Promise.resolve) {\n console.warn('This browser does not have Promise support, and can not use the segment integration')\n }\n\n const enrichEvent = (ctx: SegmentPluginContext, eventName: string) => {\n if (!ctx.event.userId && ctx.event.anonymousId !== posthog.get_distinct_id()) {\n // This is our only way of detecting that segment's analytics.reset() has been called so we also call it\n posthog.reset()\n }\n if (ctx.event.userId && ctx.event.userId !== posthog.get_distinct_id()) {\n posthog.register({\n distinct_id: ctx.event.userId,\n })\n posthog.reloadFeatureFlags()\n }\n\n const additionalProperties = posthog._calculate_event_properties(eventName, ctx.event.properties)\n ctx.event.properties = Object.assign({}, additionalProperties, ctx.event.properties)\n return ctx\n }\n\n return {\n name: 'PostHog JS',\n type: 'enrichment',\n version: '1.0.0',\n isLoaded: () => true,\n // check and early return above\n // eslint-disable-next-line compat/compat\n load: () => Promise.resolve(),\n track: (ctx) => enrichEvent(ctx, ctx.event.event),\n page: (ctx) => enrichEvent(ctx, '$pageview'),\n identify: (ctx) => enrichEvent(ctx, '$identify'),\n screen: (ctx) => enrichEvent(ctx, '$screen'),\n }\n}\n","import { gzipSync, strToU8 } from 'fflate'\nimport { _base64Encode } from './utils'\nimport { Compression, CompressionData, XHROptions } from './types'\n\nexport function decideCompression(compressionSupport: Partial>): Compression {\n if (compressionSupport[Compression.GZipJS]) {\n return Compression.GZipJS\n } else {\n return Compression.Base64\n }\n}\n\nexport function compressData(\n compression: Compression,\n jsonData: string,\n options: XHROptions\n): [CompressionData | Uint8Array, XHROptions] {\n if (compression === Compression.GZipJS) {\n // :TRICKY: This returns an UInt8Array. We don't encode this to a string - returning a blob will do this for us.\n return [\n gzipSync(strToU8(jsonData), { mtime: 0 }),\n { ...options, blob: true, urlQueryArgs: { compression: Compression.GZipJS } },\n ]\n } else {\n return [{ data: _base64Encode(jsonData) }, options]\n }\n}\n","import { init_as_module } from './posthog-core'\nexport { PostHog } from './posthog-core'\nexport * from './types'\nexport const posthog = init_as_module()\nexport default posthog\n","export const SDK_VERSION = '6.19.7';\n","/*\n * This file defines flags and constants that can be modified during compile time in order to facilitate tree shaking\n * for users.\n *\n * Debug flags need to be declared in each package individually and must not be imported across package boundaries,\n * because some build tools have trouble tree-shaking imported guards.\n *\n * As a convention, we define debug flags in a `flags.ts` file in the root of a package's `src` folder.\n *\n * Debug flag files will contain \"magic strings\" like `__SENTRY_DEBUG__` that may get replaced with actual values during\n * our, or the user's build process. Take care when introducing new flags - they must not throw if they are not\n * replaced.\n */\n\ndeclare const __SENTRY_DEBUG__: boolean;\n\n/** Flag that is true for debug builds, false otherwise. */\nexport const IS_DEBUG_BUILD = typeof __SENTRY_DEBUG__ === 'undefined' ? true : __SENTRY_DEBUG__;\n","import { Event, EventProcessor, Hub, Integration, StackFrame } from '@sentry/types';\nimport { getEventDescription, isMatchingPattern, logger } from '@sentry/utils';\n\nimport { IS_DEBUG_BUILD } from '../flags';\n\n// \"Script error.\" is hard coded into browsers for errors that it can't read.\n// this is the result of a script being pulled in from an external domain and CORS.\nconst DEFAULT_IGNORE_ERRORS = [/^Script error\\.?$/, /^Javascript error: Script error\\.? on line 0$/];\n\n/** Options for the InboundFilters integration */\nexport interface InboundFiltersOptions {\n allowUrls: Array;\n denyUrls: Array;\n ignoreErrors: Array;\n ignoreInternal: boolean;\n\n /** @deprecated use {@link InboundFiltersOptions.allowUrls} instead. */\n whitelistUrls: Array;\n /** @deprecated use {@link InboundFiltersOptions.denyUrls} instead. */\n blacklistUrls: Array;\n}\n\n/** Inbound filters configurable by the user */\nexport class InboundFilters implements Integration {\n /**\n * @inheritDoc\n */\n public static id: string = 'InboundFilters';\n\n /**\n * @inheritDoc\n */\n public name: string = InboundFilters.id;\n\n public constructor(private readonly _options: Partial = {}) {}\n\n /**\n * @inheritDoc\n */\n public setupOnce(addGlobalEventProcessor: (processor: EventProcessor) => void, getCurrentHub: () => Hub): void {\n addGlobalEventProcessor((event: Event) => {\n const hub = getCurrentHub();\n if (hub) {\n const self = hub.getIntegration(InboundFilters);\n if (self) {\n const client = hub.getClient();\n const clientOptions = client ? client.getOptions() : {};\n const options = _mergeOptions(self._options, clientOptions);\n return _shouldDropEvent(event, options) ? null : event;\n }\n }\n return event;\n });\n }\n}\n\n/** JSDoc */\nexport function _mergeOptions(\n internalOptions: Partial = {},\n clientOptions: Partial = {},\n): Partial {\n return {\n allowUrls: [\n // eslint-disable-next-line deprecation/deprecation\n ...(internalOptions.whitelistUrls || []),\n ...(internalOptions.allowUrls || []),\n // eslint-disable-next-line deprecation/deprecation\n ...(clientOptions.whitelistUrls || []),\n ...(clientOptions.allowUrls || []),\n ],\n denyUrls: [\n // eslint-disable-next-line deprecation/deprecation\n ...(internalOptions.blacklistUrls || []),\n ...(internalOptions.denyUrls || []),\n // eslint-disable-next-line deprecation/deprecation\n ...(clientOptions.blacklistUrls || []),\n ...(clientOptions.denyUrls || []),\n ],\n ignoreErrors: [\n ...(internalOptions.ignoreErrors || []),\n ...(clientOptions.ignoreErrors || []),\n ...DEFAULT_IGNORE_ERRORS,\n ],\n ignoreInternal: internalOptions.ignoreInternal !== undefined ? internalOptions.ignoreInternal : true,\n };\n}\n\n/** JSDoc */\nexport function _shouldDropEvent(event: Event, options: Partial): boolean {\n if (options.ignoreInternal && _isSentryError(event)) {\n IS_DEBUG_BUILD &&\n logger.warn(`Event dropped due to being internal Sentry Error.\\nEvent: ${getEventDescription(event)}`);\n return true;\n }\n if (_isIgnoredError(event, options.ignoreErrors)) {\n IS_DEBUG_BUILD &&\n logger.warn(\n `Event dropped due to being matched by \\`ignoreErrors\\` option.\\nEvent: ${getEventDescription(event)}`,\n );\n return true;\n }\n if (_isDeniedUrl(event, options.denyUrls)) {\n IS_DEBUG_BUILD &&\n logger.warn(\n `Event dropped due to being matched by \\`denyUrls\\` option.\\nEvent: ${getEventDescription(\n event,\n )}.\\nUrl: ${_getEventFilterUrl(event)}`,\n );\n return true;\n }\n if (!_isAllowedUrl(event, options.allowUrls)) {\n IS_DEBUG_BUILD &&\n logger.warn(\n `Event dropped due to not being matched by \\`allowUrls\\` option.\\nEvent: ${getEventDescription(\n event,\n )}.\\nUrl: ${_getEventFilterUrl(event)}`,\n );\n return true;\n }\n return false;\n}\n\nfunction _isIgnoredError(event: Event, ignoreErrors?: Array): boolean {\n if (!ignoreErrors || !ignoreErrors.length) {\n return false;\n }\n\n return _getPossibleEventMessages(event).some(message =>\n ignoreErrors.some(pattern => isMatchingPattern(message, pattern)),\n );\n}\n\nfunction _isDeniedUrl(event: Event, denyUrls?: Array): boolean {\n // TODO: Use Glob instead?\n if (!denyUrls || !denyUrls.length) {\n return false;\n }\n const url = _getEventFilterUrl(event);\n return !url ? false : denyUrls.some(pattern => isMatchingPattern(url, pattern));\n}\n\nfunction _isAllowedUrl(event: Event, allowUrls?: Array): boolean {\n // TODO: Use Glob instead?\n if (!allowUrls || !allowUrls.length) {\n return true;\n }\n const url = _getEventFilterUrl(event);\n return !url ? true : allowUrls.some(pattern => isMatchingPattern(url, pattern));\n}\n\nfunction _getPossibleEventMessages(event: Event): string[] {\n if (event.message) {\n return [event.message];\n }\n if (event.exception) {\n try {\n const { type = '', value = '' } = (event.exception.values && event.exception.values[0]) || {};\n return [`${value}`, `${type}: ${value}`];\n } catch (oO) {\n IS_DEBUG_BUILD && logger.error(`Cannot extract message for event ${getEventDescription(event)}`);\n return [];\n }\n }\n return [];\n}\n\nfunction _isSentryError(event: Event): boolean {\n try {\n // @ts-ignore can't be a sentry error if undefined\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n return event.exception.values[0].type === 'SentryError';\n } catch (e) {\n // ignore\n }\n return false;\n}\n\nfunction _getLastValidUrl(frames: StackFrame[] = []): string | null {\n for (let i = frames.length - 1; i >= 0; i--) {\n const frame = frames[i];\n\n if (frame && frame.filename !== '' && frame.filename !== '[native code]') {\n return frame.filename || null;\n }\n }\n\n return null;\n}\n\nfunction _getEventFilterUrl(event: Event): string | null {\n try {\n if (event.stacktrace) {\n return _getLastValidUrl(event.stacktrace.frames);\n }\n let frames;\n try {\n // @ts-ignore we only care about frames if the whole thing here is defined\n frames = event.exception.values[0].stacktrace.frames;\n } catch (e) {\n // ignore\n }\n return frames ? _getLastValidUrl(frames) : null;\n } catch (oO) {\n IS_DEBUG_BUILD && logger.error(`Cannot extract url for event ${getEventDescription(event)}`);\n return null;\n }\n}\n","import { Integration, WrappedFunction } from '@sentry/types';\nimport { getOriginalFunction } from '@sentry/utils';\n\nlet originalFunctionToString: () => void;\n\n/** Patch toString calls to return proper name for wrapped functions */\nexport class FunctionToString implements Integration {\n /**\n * @inheritDoc\n */\n public static id: string = 'FunctionToString';\n\n /**\n * @inheritDoc\n */\n public name: string = FunctionToString.id;\n\n /**\n * @inheritDoc\n */\n public setupOnce(): void {\n // eslint-disable-next-line @typescript-eslint/unbound-method\n originalFunctionToString = Function.prototype.toString;\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n Function.prototype.toString = function (this: WrappedFunction, ...args: any[]): string {\n const context = getOriginalFunction(this) || this;\n return originalFunctionToString.apply(context, args);\n };\n }\n}\n","export const setPrototypeOf =\n Object.setPrototypeOf || ({ __proto__: [] } instanceof Array ? setProtoOf : mixinProperties);\n\n/**\n * setPrototypeOf polyfill using __proto__\n */\n// eslint-disable-next-line @typescript-eslint/ban-types\nfunction setProtoOf(obj: TTarget, proto: TProto): TTarget & TProto {\n // @ts-ignore __proto__ does not exist on obj\n obj.__proto__ = proto;\n return obj as TTarget & TProto;\n}\n\n/**\n * setPrototypeOf polyfill using mixin\n */\n// eslint-disable-next-line @typescript-eslint/ban-types\nfunction mixinProperties(obj: TTarget, proto: TProto): TTarget & TProto {\n for (const prop in proto) {\n if (!Object.prototype.hasOwnProperty.call(obj, prop)) {\n // @ts-ignore typescript complains about indexing so we remove\n obj[prop] = proto[prop];\n }\n }\n\n return obj as TTarget & TProto;\n}\n","import { setPrototypeOf } from './polyfill';\n\n/** An error emitted by Sentry SDKs and related utilities. */\nexport class SentryError extends Error {\n /** Display name of this error instance. */\n public name: string;\n\n public constructor(public message: string) {\n super(message);\n\n this.name = new.target.prototype.constructor.name;\n setPrototypeOf(this, new.target.prototype);\n }\n}\n","import { DsnComponents, DsnLike, DsnProtocol } from '@sentry/types';\n\nimport { SentryError } from './error';\nimport { IS_DEBUG_BUILD } from './flags';\n\n/** Regular expression used to parse a Dsn. */\nconst DSN_REGEX = /^(?:(\\w+):)\\/\\/(?:(\\w+)(?::(\\w+))?@)([\\w.-]+)(?::(\\d+))?\\/(.+)/;\n\nfunction isValidProtocol(protocol?: string): protocol is DsnProtocol {\n return protocol === 'http' || protocol === 'https';\n}\n\n/**\n * Renders the string representation of this Dsn.\n *\n * By default, this will render the public representation without the password\n * component. To get the deprecated private representation, set `withPassword`\n * to true.\n *\n * @param withPassword When set to true, the password will be included.\n */\nexport function dsnToString(dsn: DsnComponents, withPassword: boolean = false): string {\n const { host, path, pass, port, projectId, protocol, publicKey } = dsn;\n return (\n `${protocol}://${publicKey}${withPassword && pass ? `:${pass}` : ''}` +\n `@${host}${port ? `:${port}` : ''}/${path ? `${path}/` : path}${projectId}`\n );\n}\n\nfunction dsnFromString(str: string): DsnComponents {\n const match = DSN_REGEX.exec(str);\n\n if (!match) {\n throw new SentryError(`Invalid Sentry Dsn: ${str}`);\n }\n\n const [protocol, publicKey, pass = '', host, port = '', lastPath] = match.slice(1);\n let path = '';\n let projectId = lastPath;\n\n const split = projectId.split('/');\n if (split.length > 1) {\n path = split.slice(0, -1).join('/');\n projectId = split.pop() as string;\n }\n\n if (projectId) {\n const projectMatch = projectId.match(/^\\d+/);\n if (projectMatch) {\n projectId = projectMatch[0];\n }\n }\n\n return dsnFromComponents({ host, pass, path, projectId, port, protocol: protocol as DsnProtocol, publicKey });\n}\n\nfunction dsnFromComponents(components: DsnComponents): DsnComponents {\n // TODO this is for backwards compatibility, and can be removed in a future version\n if ('user' in components && !('publicKey' in components)) {\n components.publicKey = components.user;\n }\n\n return {\n user: components.publicKey || '',\n protocol: components.protocol,\n publicKey: components.publicKey || '',\n pass: components.pass || '',\n host: components.host,\n port: components.port || '',\n path: components.path || '',\n projectId: components.projectId,\n };\n}\n\nfunction validateDsn(dsn: DsnComponents): boolean | void {\n if (!IS_DEBUG_BUILD) {\n return;\n }\n\n const { port, projectId, protocol } = dsn;\n\n const requiredComponents: ReadonlyArray = ['protocol', 'publicKey', 'host', 'projectId'];\n requiredComponents.forEach(component => {\n if (!dsn[component]) {\n throw new SentryError(`Invalid Sentry Dsn: ${component} missing`);\n }\n });\n\n if (!projectId.match(/^\\d+$/)) {\n throw new SentryError(`Invalid Sentry Dsn: Invalid projectId ${projectId}`);\n }\n\n if (!isValidProtocol(protocol)) {\n throw new SentryError(`Invalid Sentry Dsn: Invalid protocol ${protocol}`);\n }\n\n if (port && isNaN(parseInt(port, 10))) {\n throw new SentryError(`Invalid Sentry Dsn: Invalid port ${port}`);\n }\n\n return true;\n}\n\n/** The Sentry Dsn, identifying a Sentry instance and project. */\nexport function makeDsn(from: DsnLike): DsnComponents {\n const components = typeof from === 'string' ? dsnFromString(from) : dsnFromComponents(from);\n\n validateDsn(components);\n\n return components;\n}\n","import { Primitive } from '@sentry/types';\n\nimport { isError, isEvent, isNaN, isSyntheticEvent } from './is';\nimport { memoBuilder, MemoFunc } from './memo';\nimport { convertToPlainObject } from './object';\nimport { getFunctionName } from './stacktrace';\n\ntype Prototype = { constructor: (...args: unknown[]) => unknown };\n// This is a hack to placate TS, relying on the fact that technically, arrays are objects with integer keys. Normally we\n// think of those keys as actual numbers, but `arr['0']` turns out to work just as well as `arr[0]`, and doing it this\n// way lets us use a single type in the places where behave as if we are only dealing with objects, even if some of them\n// might be arrays.\ntype ObjOrArray = { [key: string]: T };\n\n/**\n * Recursively normalizes the given object.\n *\n * - Creates a copy to prevent original input mutation\n * - Skips non-enumerable properties\n * - When stringifying, calls `toJSON` if implemented\n * - Removes circular references\n * - Translates non-serializable values (`undefined`/`NaN`/functions) to serializable format\n * - Translates known global objects/classes to a string representations\n * - Takes care of `Error` object serialization\n * - Optionally limits depth of final output\n * - Optionally limits number of properties/elements included in any single object/array\n *\n * @param input The object to be normalized.\n * @param depth The max depth to which to normalize the object. (Anything deeper stringified whole.)\n * @param maxProperties The max number of elements or properties to be included in any single array or\n * object in the normallized output..\n * @returns A normalized version of the object, or `\"**non-serializable**\"` if any errors are thrown during normalization.\n */\nexport function normalize(input: unknown, depth: number = +Infinity, maxProperties: number = +Infinity): any {\n try {\n // since we're at the outermost level, there is no key\n return visit('', input, depth, maxProperties);\n } catch (err) {\n return { ERROR: `**non-serializable** (${err})` };\n }\n}\n\n/** JSDoc */\nexport function normalizeToSize(\n object: { [key: string]: any },\n // Default Node.js REPL depth\n depth: number = 3,\n // 100kB, as 200kB is max payload size, so half sounds reasonable\n maxSize: number = 100 * 1024,\n): T {\n const normalized = normalize(object, depth);\n\n if (jsonSize(normalized) > maxSize) {\n return normalizeToSize(object, depth - 1, maxSize);\n }\n\n return normalized as T;\n}\n\n/**\n * Visits a node to perform normalization on it\n *\n * @param key The key corresponding to the given node\n * @param value The node to be visited\n * @param depth Optional number indicating the maximum recursion depth\n * @param maxProperties Optional maximum number of properties/elements included in any single object/array\n * @param memo Optional Memo class handling decycling\n */\nfunction visit(\n key: string,\n value: unknown,\n depth: number = +Infinity,\n maxProperties: number = +Infinity,\n memo: MemoFunc = memoBuilder(),\n): Primitive | ObjOrArray {\n const [memoize, unmemoize] = memo;\n\n // If the value has a `toJSON` method, see if we can bail and let it do the work\n const valueWithToJSON = value as unknown & { toJSON?: () => Primitive | ObjOrArray };\n if (valueWithToJSON && typeof valueWithToJSON.toJSON === 'function') {\n try {\n return valueWithToJSON.toJSON();\n } catch (err) {\n // pass (The built-in `toJSON` failed, but we can still try to do it ourselves)\n }\n }\n\n // Get the simple cases out of the way first\n if (value === null || (['number', 'boolean', 'string'].includes(typeof value) && !isNaN(value))) {\n return value as Primitive;\n }\n\n const stringified = stringifyValue(key, value);\n\n // Anything we could potentially dig into more (objects or arrays) will have come back as `\"[object XXXX]\"`.\n // Everything else will have already been serialized, so if we don't see that pattern, we're done.\n if (!stringified.startsWith('[object ')) {\n return stringified;\n }\n\n // We're also done if we've reached the max depth\n if (depth === 0) {\n // At this point we know `serialized` is a string of the form `\"[object XXXX]\"`. Clean it up so it's just `\"[XXXX]\"`.\n return stringified.replace('object ', '');\n }\n\n // If we've already visited this branch, bail out, as it's circular reference. If not, note that we're seeing it now.\n if (memoize(value)) {\n return '[Circular ~]';\n }\n\n // At this point we know we either have an object or an array, we haven't seen it before, and we're going to recurse\n // because we haven't yet reached the max depth. Create an accumulator to hold the results of visiting each\n // property/entry, and keep track of the number of items we add to it.\n const normalized = (Array.isArray(value) ? [] : {}) as ObjOrArray;\n let numAdded = 0;\n\n // Before we begin, convert`Error` and`Event` instances into plain objects, since some of each of their relevant\n // properties are non-enumerable and otherwise would get missed.\n const visitable = (isError(value) || isEvent(value) ? convertToPlainObject(value) : value) as ObjOrArray;\n\n for (const visitKey in visitable) {\n // Avoid iterating over fields in the prototype if they've somehow been exposed to enumeration.\n if (!Object.prototype.hasOwnProperty.call(visitable, visitKey)) {\n continue;\n }\n\n if (numAdded >= maxProperties) {\n normalized[visitKey] = '[MaxProperties ~]';\n break;\n }\n\n // Recursively visit all the child nodes\n const visitValue = visitable[visitKey];\n normalized[visitKey] = visit(visitKey, visitValue, depth - 1, maxProperties, memo);\n\n numAdded += 1;\n }\n\n // Once we've visited all the branches, remove the parent from memo storage\n unmemoize(value);\n\n // Return accumulated values\n return normalized;\n}\n\n// TODO remove this in v7 (this means the method will no longer be exported, under any name)\nexport { visit as walk };\n\n/**\n * Stringify the given value. Handles various known special values and types.\n *\n * Not meant to be used on simple primitives which already have a string representation, as it will, for example, turn\n * the number 1231 into \"[Object Number]\", nor on `null`, as it will throw.\n *\n * @param value The value to stringify\n * @returns A stringified representation of the given value\n */\nfunction stringifyValue(\n key: unknown,\n // this type is a tiny bit of a cheat, since this function does handle NaN (which is technically a number), but for\n // our internal use, it'll do\n value: Exclude,\n): string {\n try {\n if (key === 'domain' && value && typeof value === 'object' && (value as { _events: unknown })._events) {\n return '[Domain]';\n }\n\n if (key === 'domainEmitter') {\n return '[DomainEmitter]';\n }\n\n // It's safe to use `global`, `window`, and `document` here in this manner, as we are asserting using `typeof` first\n // which won't throw if they are not present.\n\n if (typeof global !== 'undefined' && value === global) {\n return '[Global]';\n }\n\n // eslint-disable-next-line no-restricted-globals\n if (typeof window !== 'undefined' && value === window) {\n return '[Window]';\n }\n\n // eslint-disable-next-line no-restricted-globals\n if (typeof document !== 'undefined' && value === document) {\n return '[Document]';\n }\n\n // React's SyntheticEvent thingy\n if (isSyntheticEvent(value)) {\n return '[SyntheticEvent]';\n }\n\n if (typeof value === 'number' && value !== value) {\n return '[NaN]';\n }\n\n // this catches `undefined` (but not `null`, which is a primitive and can be serialized on its own)\n if (value === void 0) {\n return '[undefined]';\n }\n\n if (typeof value === 'function') {\n return `[Function: ${getFunctionName(value)}]`;\n }\n\n if (typeof value === 'symbol') {\n return `[${String(value)}]`;\n }\n\n // stringified BigInts are indistinguishable from regular numbers, so we need to label them to avoid confusion\n if (typeof value === 'bigint') {\n return `[BigInt: ${String(value)}]`;\n }\n\n // Now that we've knocked out all the special cases and the primitives, all we have left are objects. Simply casting\n // them to strings means that instances of classes which haven't defined their `toStringTag` will just come out as\n // `\"[object Object]\"`. If we instead look at the constructor's name (which is the same as the name of the class),\n // we can make sure that only plain objects come out that way.\n return `[object ${(Object.getPrototypeOf(value) as Prototype).constructor.name}]`;\n } catch (err) {\n return `**non-serializable** (${err})`;\n }\n}\n\n/** Calculates bytes size of input string */\nfunction utf8Length(value: string): number {\n // eslint-disable-next-line no-bitwise\n return ~-encodeURI(value).split(/%..|./).length;\n}\n\n/** Calculates bytes size of input object */\nfunction jsonSize(value: any): number {\n return utf8Length(JSON.stringify(value));\n}\n","/* eslint-disable @typescript-eslint/no-unsafe-member-access */\n/* eslint-disable @typescript-eslint/no-explicit-any */\n\nexport type MemoFunc = [\n // memoize\n (obj: any) => boolean,\n // unmemoize\n (obj: any) => void,\n];\n\n/**\n * Helper to decycle json objects\n */\nexport function memoBuilder(): MemoFunc {\n const hasWeakSet = typeof WeakSet === 'function';\n const inner: any = hasWeakSet ? new WeakSet() : [];\n function memoize(obj: any): boolean {\n if (hasWeakSet) {\n if (inner.has(obj)) {\n return true;\n }\n inner.add(obj);\n return false;\n }\n // eslint-disable-next-line @typescript-eslint/prefer-for-of\n for (let i = 0; i < inner.length; i++) {\n const value = inner[i];\n if (value === obj) {\n return true;\n }\n }\n inner.push(obj);\n return false;\n }\n\n function unmemoize(obj: any): void {\n if (hasWeakSet) {\n inner.delete(obj);\n } else {\n for (let i = 0; i < inner.length; i++) {\n if (inner[i] === obj) {\n inner.splice(i, 1);\n break;\n }\n }\n }\n }\n return [memoize, unmemoize];\n}\n","import { addGlobalEventProcessor, getCurrentHub } from '@sentry/hub';\nimport { Integration, Options } from '@sentry/types';\nimport { addNonEnumerableProperty, logger } from '@sentry/utils';\n\nimport { IS_DEBUG_BUILD } from './flags';\n\nexport const installedIntegrations: string[] = [];\n\n/** Map of integrations assigned to a client */\nexport type IntegrationIndex = {\n [key: string]: Integration;\n} & { initialized?: boolean };\n\n/**\n * @private\n */\nfunction filterDuplicates(integrations: Integration[]): Integration[] {\n return integrations.reduce((acc, integrations) => {\n if (acc.every(accIntegration => integrations.name !== accIntegration.name)) {\n acc.push(integrations);\n }\n return acc;\n }, [] as Integration[]);\n}\n\n/** Gets integration to install */\nexport function getIntegrationsToSetup(options: Options): Integration[] {\n const defaultIntegrations = (options.defaultIntegrations && [...options.defaultIntegrations]) || [];\n const userIntegrations = options.integrations;\n\n let integrations: Integration[] = [...filterDuplicates(defaultIntegrations)];\n\n if (Array.isArray(userIntegrations)) {\n // Filter out integrations that are also included in user options\n integrations = [\n ...integrations.filter(integrations =>\n userIntegrations.every(userIntegration => userIntegration.name !== integrations.name),\n ),\n // And filter out duplicated user options integrations\n ...filterDuplicates(userIntegrations),\n ];\n } else if (typeof userIntegrations === 'function') {\n integrations = userIntegrations(integrations);\n integrations = Array.isArray(integrations) ? integrations : [integrations];\n }\n\n // Make sure that if present, `Debug` integration will always run last\n const integrationsNames = integrations.map(i => i.name);\n const alwaysLastToRun = 'Debug';\n if (integrationsNames.indexOf(alwaysLastToRun) !== -1) {\n integrations.push(...integrations.splice(integrationsNames.indexOf(alwaysLastToRun), 1));\n }\n\n return integrations;\n}\n\n/** Setup given integration */\nexport function setupIntegration(integration: Integration): void {\n if (installedIntegrations.indexOf(integration.name) !== -1) {\n return;\n }\n integration.setupOnce(addGlobalEventProcessor, getCurrentHub);\n installedIntegrations.push(integration.name);\n IS_DEBUG_BUILD && logger.log(`Integration installed: ${integration.name}`);\n}\n\n/**\n * Given a list of integration instances this installs them all. When `withDefaults` is set to `true` then all default\n * integrations are added unless they were already provided before.\n * @param integrations array of integration instances\n * @param withDefault should enable default integrations\n */\nexport function setupIntegrations(options: O): IntegrationIndex {\n const integrations: IntegrationIndex = {};\n getIntegrationsToSetup(options).forEach(integration => {\n integrations[integration.name] = integration;\n setupIntegration(integration);\n });\n // set the `initialized` flag so we don't run through the process again unecessarily; use `Object.defineProperty`\n // because by default it creates a property which is nonenumerable, which we want since `initialized` shouldn't be\n // considered a member of the index the way the actual integrations are\n addNonEnumerableProperty(integrations, 'initialized', true);\n return integrations;\n}\n","/* eslint-disable max-lines */\nimport { Scope, Session } from '@sentry/hub';\nimport {\n Client,\n DsnComponents,\n Event,\n EventHint,\n Integration,\n IntegrationClass,\n Options,\n Severity,\n Transport,\n} from '@sentry/types';\nimport {\n checkOrSetAlreadyCaught,\n dateTimestampInSeconds,\n isPlainObject,\n isPrimitive,\n isThenable,\n logger,\n makeDsn,\n normalize,\n rejectedSyncPromise,\n resolvedSyncPromise,\n SentryError,\n SyncPromise,\n truncate,\n uuid4,\n} from '@sentry/utils';\n\nimport { Backend, BackendClass } from './basebackend';\nimport { IS_DEBUG_BUILD } from './flags';\nimport { IntegrationIndex, setupIntegrations } from './integration';\n\nconst ALREADY_SEEN_ERROR = \"Not capturing exception because it's already been captured.\";\n\n/**\n * Base implementation for all JavaScript SDK clients.\n *\n * Call the constructor with the corresponding backend constructor and options\n * specific to the client subclass. To access these options later, use\n * {@link Client.getOptions}. Also, the Backend instance is available via\n * {@link Client.getBackend}.\n *\n * If a Dsn is specified in the options, it will be parsed and stored. Use\n * {@link Client.getDsn} to retrieve the Dsn at any moment. In case the Dsn is\n * invalid, the constructor will throw a {@link SentryException}. Note that\n * without a valid Dsn, the SDK will not send any events to Sentry.\n *\n * Before sending an event via the backend, it is passed through\n * {@link BaseClient._prepareEvent} to add SDK information and scope data\n * (breadcrumbs and context). To add more custom information, override this\n * method and extend the resulting prepared event.\n *\n * To issue automatically created events (e.g. via instrumentation), use\n * {@link Client.captureEvent}. It will prepare the event and pass it through\n * the callback lifecycle. To issue auto-breadcrumbs, use\n * {@link Client.addBreadcrumb}.\n *\n * @example\n * class NodeClient extends BaseClient {\n * public constructor(options: NodeOptions) {\n * super(NodeBackend, options);\n * }\n *\n * // ...\n * }\n */\nexport abstract class BaseClient implements Client {\n /**\n * The backend used to physically interact in the environment. Usually, this\n * will correspond to the client. When composing SDKs, however, the Backend\n * from the root SDK will be used.\n */\n protected readonly _backend: B;\n\n /** Options passed to the SDK. */\n protected readonly _options: O;\n\n /** The client Dsn, if specified in options. Without this Dsn, the SDK will be disabled. */\n protected readonly _dsn?: DsnComponents;\n\n /** Array of used integrations. */\n protected _integrations: IntegrationIndex = {};\n\n /** Number of calls being processed */\n protected _numProcessing: number = 0;\n\n /**\n * Initializes this client instance.\n *\n * @param backendClass A constructor function to create the backend.\n * @param options Options for the client.\n */\n protected constructor(backendClass: BackendClass, options: O) {\n this._backend = new backendClass(options);\n this._options = options;\n\n if (options.dsn) {\n this._dsn = makeDsn(options.dsn);\n }\n }\n\n /**\n * @inheritDoc\n */\n // eslint-disable-next-line @typescript-eslint/no-explicit-any, @typescript-eslint/explicit-module-boundary-types\n public captureException(exception: any, hint?: EventHint, scope?: Scope): string | undefined {\n // ensure we haven't captured this very object before\n if (checkOrSetAlreadyCaught(exception)) {\n IS_DEBUG_BUILD && logger.log(ALREADY_SEEN_ERROR);\n return;\n }\n\n let eventId: string | undefined = hint && hint.event_id;\n\n this._process(\n this._getBackend()\n .eventFromException(exception, hint)\n .then(event => this._captureEvent(event, hint, scope))\n .then(result => {\n eventId = result;\n }),\n );\n\n return eventId;\n }\n\n /**\n * @inheritDoc\n */\n public captureMessage(message: string, level?: Severity, hint?: EventHint, scope?: Scope): string | undefined {\n let eventId: string | undefined = hint && hint.event_id;\n\n const promisedEvent = isPrimitive(message)\n ? this._getBackend().eventFromMessage(String(message), level, hint)\n : this._getBackend().eventFromException(message, hint);\n\n this._process(\n promisedEvent\n .then(event => this._captureEvent(event, hint, scope))\n .then(result => {\n eventId = result;\n }),\n );\n\n return eventId;\n }\n\n /**\n * @inheritDoc\n */\n public captureEvent(event: Event, hint?: EventHint, scope?: Scope): string | undefined {\n // ensure we haven't captured this very object before\n if (hint && hint.originalException && checkOrSetAlreadyCaught(hint.originalException)) {\n IS_DEBUG_BUILD && logger.log(ALREADY_SEEN_ERROR);\n return;\n }\n\n let eventId: string | undefined = hint && hint.event_id;\n\n this._process(\n this._captureEvent(event, hint, scope).then(result => {\n eventId = result;\n }),\n );\n\n return eventId;\n }\n\n /**\n * @inheritDoc\n */\n public captureSession(session: Session): void {\n if (!this._isEnabled()) {\n IS_DEBUG_BUILD && logger.warn('SDK not enabled, will not capture session.');\n return;\n }\n\n if (!(typeof session.release === 'string')) {\n IS_DEBUG_BUILD && logger.warn('Discarded session because of missing or non-string release');\n } else {\n this._sendSession(session);\n // After sending, we set init false to indicate it's not the first occurrence\n session.update({ init: false });\n }\n }\n\n /**\n * @inheritDoc\n */\n public getDsn(): DsnComponents | undefined {\n return this._dsn;\n }\n\n /**\n * @inheritDoc\n */\n public getOptions(): O {\n return this._options;\n }\n\n /**\n * @inheritDoc\n */\n public getTransport(): Transport {\n return this._getBackend().getTransport();\n }\n\n /**\n * @inheritDoc\n */\n public flush(timeout?: number): PromiseLike {\n return this._isClientDoneProcessing(timeout).then(clientFinished => {\n return this.getTransport()\n .close(timeout)\n .then(transportFlushed => clientFinished && transportFlushed);\n });\n }\n\n /**\n * @inheritDoc\n */\n public close(timeout?: number): PromiseLike {\n return this.flush(timeout).then(result => {\n this.getOptions().enabled = false;\n return result;\n });\n }\n\n /**\n * Sets up the integrations\n */\n public setupIntegrations(): void {\n if (this._isEnabled() && !this._integrations.initialized) {\n this._integrations = setupIntegrations(this._options);\n }\n }\n\n /**\n * @inheritDoc\n */\n public getIntegration(integration: IntegrationClass): T | null {\n try {\n return (this._integrations[integration.id] as T) || null;\n } catch (_oO) {\n IS_DEBUG_BUILD && logger.warn(`Cannot retrieve integration ${integration.id} from the current Client`);\n return null;\n }\n }\n\n /** Updates existing session based on the provided event */\n protected _updateSessionFromEvent(session: Session, event: Event): void {\n let crashed = false;\n let errored = false;\n const exceptions = event.exception && event.exception.values;\n\n if (exceptions) {\n errored = true;\n\n for (const ex of exceptions) {\n const mechanism = ex.mechanism;\n if (mechanism && mechanism.handled === false) {\n crashed = true;\n break;\n }\n }\n }\n\n // A session is updated and that session update is sent in only one of the two following scenarios:\n // 1. Session with non terminal status and 0 errors + an error occurred -> Will set error count to 1 and send update\n // 2. Session with non terminal status and 1 error + a crash occurred -> Will set status crashed and send update\n const sessionNonTerminal = session.status === 'ok';\n const shouldUpdateAndSend = (sessionNonTerminal && session.errors === 0) || (sessionNonTerminal && crashed);\n\n if (shouldUpdateAndSend) {\n session.update({\n ...(crashed && { status: 'crashed' }),\n errors: session.errors || Number(errored || crashed),\n });\n this.captureSession(session);\n }\n }\n\n /** Deliver captured session to Sentry */\n protected _sendSession(session: Session): void {\n this._getBackend().sendSession(session);\n }\n\n /**\n * Determine if the client is finished processing. Returns a promise because it will wait `timeout` ms before saying\n * \"no\" (resolving to `false`) in order to give the client a chance to potentially finish first.\n *\n * @param timeout The time, in ms, after which to resolve to `false` if the client is still busy. Passing `0` (or not\n * passing anything) will make the promise wait as long as it takes for processing to finish before resolving to\n * `true`.\n * @returns A promise which will resolve to `true` if processing is already done or finishes before the timeout, and\n * `false` otherwise\n */\n protected _isClientDoneProcessing(timeout?: number): PromiseLike {\n return new SyncPromise(resolve => {\n let ticked: number = 0;\n const tick: number = 1;\n\n const interval = setInterval(() => {\n if (this._numProcessing == 0) {\n clearInterval(interval);\n resolve(true);\n } else {\n ticked += tick;\n if (timeout && ticked >= timeout) {\n clearInterval(interval);\n resolve(false);\n }\n }\n }, tick);\n });\n }\n\n /** Returns the current backend. */\n protected _getBackend(): B {\n return this._backend;\n }\n\n /** Determines whether this SDK is enabled and a valid Dsn is present. */\n protected _isEnabled(): boolean {\n return this.getOptions().enabled !== false && this._dsn !== undefined;\n }\n\n /**\n * Adds common information to events.\n *\n * The information includes release and environment from `options`,\n * breadcrumbs and context (extra, tags and user) from the scope.\n *\n * Information that is already present in the event is never overwritten. For\n * nested objects, such as the context, keys are merged.\n *\n * @param event The original event.\n * @param hint May contain additional information about the original exception.\n * @param scope A scope containing event metadata.\n * @returns A new event with more information.\n */\n protected _prepareEvent(event: Event, scope?: Scope, hint?: EventHint): PromiseLike {\n const { normalizeDepth = 3, normalizeMaxBreadth = 1_000 } = this.getOptions();\n const prepared: Event = {\n ...event,\n event_id: event.event_id || (hint && hint.event_id ? hint.event_id : uuid4()),\n timestamp: event.timestamp || dateTimestampInSeconds(),\n };\n\n this._applyClientOptions(prepared);\n this._applyIntegrationsMetadata(prepared);\n\n // If we have scope given to us, use it as the base for further modifications.\n // This allows us to prevent unnecessary copying of data if `captureContext` is not provided.\n let finalScope = scope;\n if (hint && hint.captureContext) {\n finalScope = Scope.clone(finalScope).update(hint.captureContext);\n }\n\n // We prepare the result here with a resolved Event.\n let result = resolvedSyncPromise(prepared);\n\n // This should be the last thing called, since we want that\n // {@link Hub.addEventProcessor} gets the finished prepared event.\n if (finalScope) {\n // In case we have a hub we reassign it.\n result = finalScope.applyToEvent(prepared, hint);\n }\n\n return result.then(evt => {\n if (evt) {\n // TODO this is more of the hack trying to solve https://github.com/getsentry/sentry-javascript/issues/2809\n // it is only attached as extra data to the event if the event somehow skips being normalized\n evt.sdkProcessingMetadata = {\n ...evt.sdkProcessingMetadata,\n normalizeDepth: `${normalize(normalizeDepth)} (${typeof normalizeDepth})`,\n };\n }\n if (typeof normalizeDepth === 'number' && normalizeDepth > 0) {\n return this._normalizeEvent(evt, normalizeDepth, normalizeMaxBreadth);\n }\n return evt;\n });\n }\n\n /**\n * Applies `normalize` function on necessary `Event` attributes to make them safe for serialization.\n * Normalized keys:\n * - `breadcrumbs.data`\n * - `user`\n * - `contexts`\n * - `extra`\n * @param event Event\n * @returns Normalized event\n */\n protected _normalizeEvent(event: Event | null, depth: number, maxBreadth: number): Event | null {\n if (!event) {\n return null;\n }\n\n const normalized = {\n ...event,\n ...(event.breadcrumbs && {\n breadcrumbs: event.breadcrumbs.map(b => ({\n ...b,\n ...(b.data && {\n data: normalize(b.data, depth, maxBreadth),\n }),\n })),\n }),\n ...(event.user && {\n user: normalize(event.user, depth, maxBreadth),\n }),\n ...(event.contexts && {\n contexts: normalize(event.contexts, depth, maxBreadth),\n }),\n ...(event.extra && {\n extra: normalize(event.extra, depth, maxBreadth),\n }),\n };\n // event.contexts.trace stores information about a Transaction. Similarly,\n // event.spans[] stores information about child Spans. Given that a\n // Transaction is conceptually a Span, normalization should apply to both\n // Transactions and Spans consistently.\n // For now the decision is to skip normalization of Transactions and Spans,\n // so this block overwrites the normalized event to add back the original\n // Transaction information prior to normalization.\n if (event.contexts && event.contexts.trace) {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n normalized.contexts.trace = event.contexts.trace;\n }\n\n normalized.sdkProcessingMetadata = { ...normalized.sdkProcessingMetadata, baseClientNormalized: true };\n\n return normalized;\n }\n\n /**\n * Enhances event using the client configuration.\n * It takes care of all \"static\" values like environment, release and `dist`,\n * as well as truncating overly long values.\n * @param event event instance to be enhanced\n */\n protected _applyClientOptions(event: Event): void {\n const options = this.getOptions();\n const { environment, release, dist, maxValueLength = 250 } = options;\n\n if (!('environment' in event)) {\n event.environment = 'environment' in options ? environment : 'production';\n }\n\n if (event.release === undefined && release !== undefined) {\n event.release = release;\n }\n\n if (event.dist === undefined && dist !== undefined) {\n event.dist = dist;\n }\n\n if (event.message) {\n event.message = truncate(event.message, maxValueLength);\n }\n\n const exception = event.exception && event.exception.values && event.exception.values[0];\n if (exception && exception.value) {\n exception.value = truncate(exception.value, maxValueLength);\n }\n\n const request = event.request;\n if (request && request.url) {\n request.url = truncate(request.url, maxValueLength);\n }\n }\n\n /**\n * This function adds all used integrations to the SDK info in the event.\n * @param event The event that will be filled with all integrations.\n */\n protected _applyIntegrationsMetadata(event: Event): void {\n const integrationsArray = Object.keys(this._integrations);\n if (integrationsArray.length > 0) {\n event.sdk = event.sdk || {};\n event.sdk.integrations = [...(event.sdk.integrations || []), ...integrationsArray];\n }\n }\n\n /**\n * Tells the backend to send this event\n * @param event The Sentry event to send\n */\n protected _sendEvent(event: Event): void {\n this._getBackend().sendEvent(event);\n }\n\n /**\n * Processes the event and logs an error in case of rejection\n * @param event\n * @param hint\n * @param scope\n */\n protected _captureEvent(event: Event, hint?: EventHint, scope?: Scope): PromiseLike {\n return this._processEvent(event, hint, scope).then(\n finalEvent => {\n return finalEvent.event_id;\n },\n reason => {\n IS_DEBUG_BUILD && logger.error(reason);\n return undefined;\n },\n );\n }\n\n /**\n * Processes an event (either error or message) and sends it to Sentry.\n *\n * This also adds breadcrumbs and context information to the event. However,\n * platform specific meta data (such as the User's IP address) must be added\n * by the SDK implementor.\n *\n *\n * @param event The event to send to Sentry.\n * @param hint May contain additional information about the original exception.\n * @param scope A scope containing event metadata.\n * @returns A SyncPromise that resolves with the event or rejects in case event was/will not be send.\n */\n protected _processEvent(event: Event, hint?: EventHint, scope?: Scope): PromiseLike {\n // eslint-disable-next-line @typescript-eslint/unbound-method\n const { beforeSend, sampleRate } = this.getOptions();\n const transport = this.getTransport();\n\n type RecordLostEvent = NonNullable;\n type RecordLostEventParams = Parameters;\n\n function recordLostEvent(outcome: RecordLostEventParams[0], category: RecordLostEventParams[1]): void {\n if (transport.recordLostEvent) {\n transport.recordLostEvent(outcome, category);\n }\n }\n\n if (!this._isEnabled()) {\n return rejectedSyncPromise(new SentryError('SDK not enabled, will not capture event.'));\n }\n\n const isTransaction = event.type === 'transaction';\n // 1.0 === 100% events are sent\n // 0.0 === 0% events are sent\n // Sampling for transaction happens somewhere else\n if (!isTransaction && typeof sampleRate === 'number' && Math.random() > sampleRate) {\n recordLostEvent('sample_rate', 'event');\n return rejectedSyncPromise(\n new SentryError(\n `Discarding event because it's not included in the random sample (sampling rate = ${sampleRate})`,\n ),\n );\n }\n\n return this._prepareEvent(event, scope, hint)\n .then(prepared => {\n if (prepared === null) {\n recordLostEvent('event_processor', event.type || 'event');\n throw new SentryError('An event processor returned null, will not send event.');\n }\n\n const isInternalException = hint && hint.data && (hint.data as { __sentry__: boolean }).__sentry__ === true;\n if (isInternalException || isTransaction || !beforeSend) {\n return prepared;\n }\n\n const beforeSendResult = beforeSend(prepared, hint);\n return _ensureBeforeSendRv(beforeSendResult);\n })\n .then(processedEvent => {\n if (processedEvent === null) {\n recordLostEvent('before_send', event.type || 'event');\n throw new SentryError('`beforeSend` returned `null`, will not send event.');\n }\n\n const session = scope && scope.getSession && scope.getSession();\n if (!isTransaction && session) {\n this._updateSessionFromEvent(session, processedEvent);\n }\n\n this._sendEvent(processedEvent);\n return processedEvent;\n })\n .then(null, reason => {\n if (reason instanceof SentryError) {\n throw reason;\n }\n\n this.captureException(reason, {\n data: {\n __sentry__: true,\n },\n originalException: reason as Error,\n });\n throw new SentryError(\n `Event processing pipeline threw an error, original event will not be sent. Details have been sent as a new event.\\nReason: ${reason}`,\n );\n });\n }\n\n /**\n * Occupies the client with processing and event\n */\n protected _process(promise: PromiseLike): void {\n this._numProcessing += 1;\n void promise.then(\n value => {\n this._numProcessing -= 1;\n return value;\n },\n reason => {\n this._numProcessing -= 1;\n return reason;\n },\n );\n }\n}\n\n/**\n * Verifies that return value of configured `beforeSend` is of expected type.\n */\nfunction _ensureBeforeSendRv(rv: PromiseLike | Event | null): PromiseLike | Event | null {\n const nullErr = '`beforeSend` method has to return `null` or a valid event.';\n if (isThenable(rv)) {\n return rv.then(\n event => {\n if (!(isPlainObject(event) || event === null)) {\n throw new SentryError(nullErr);\n }\n return event;\n },\n e => {\n throw new SentryError(`beforeSend rejected with ${e}`);\n },\n );\n } else if (!(isPlainObject(rv) || rv === null)) {\n throw new SentryError(nullErr);\n }\n return rv;\n}\n","import { DsnComponents, DsnLike, SdkMetadata } from '@sentry/types';\nimport { dsnToString, makeDsn, urlEncode } from '@sentry/utils';\n\nconst SENTRY_API_VERSION = '7';\n\n/**\n * Stores details about a Sentry SDK\n */\nexport interface APIDetails {\n /** The DSN as passed to Sentry.init() */\n initDsn: DsnLike;\n /** Metadata about the SDK (name, version, etc) for inclusion in envelope headers */\n metadata: SdkMetadata;\n /** The internally used Dsn object. */\n readonly dsn: DsnComponents;\n /** The envelope tunnel to use. */\n readonly tunnel?: string;\n}\n\n/**\n * Helper class to provide urls, headers and metadata that can be used to form\n * different types of requests to Sentry endpoints.\n * Supports both envelopes and regular event requests.\n *\n * @deprecated Please use APIDetails\n **/\nexport class API {\n /** The DSN as passed to Sentry.init() */\n public dsn: DsnLike;\n\n /** Metadata about the SDK (name, version, etc) for inclusion in envelope headers */\n public metadata: SdkMetadata;\n\n /** The internally used Dsn object. */\n private readonly _dsnObject: DsnComponents;\n\n /** The envelope tunnel to use. */\n private readonly _tunnel?: string;\n\n /** Create a new instance of API */\n public constructor(dsn: DsnLike, metadata: SdkMetadata = {}, tunnel?: string) {\n this.dsn = dsn;\n this._dsnObject = makeDsn(dsn);\n this.metadata = metadata;\n this._tunnel = tunnel;\n }\n\n /** Returns the Dsn object. */\n public getDsn(): DsnComponents {\n return this._dsnObject;\n }\n\n /** Does this transport force envelopes? */\n public forceEnvelope(): boolean {\n return !!this._tunnel;\n }\n\n /** Returns the prefix to construct Sentry ingestion API endpoints. */\n public getBaseApiEndpoint(): string {\n return getBaseApiEndpoint(this._dsnObject);\n }\n\n /** Returns the store endpoint URL. */\n public getStoreEndpoint(): string {\n return getStoreEndpoint(this._dsnObject);\n }\n\n /**\n * Returns the store endpoint URL with auth in the query string.\n *\n * Sending auth as part of the query string and not as custom HTTP headers avoids CORS preflight requests.\n */\n public getStoreEndpointWithUrlEncodedAuth(): string {\n return getStoreEndpointWithUrlEncodedAuth(this._dsnObject);\n }\n\n /**\n * Returns the envelope endpoint URL with auth in the query string.\n *\n * Sending auth as part of the query string and not as custom HTTP headers avoids CORS preflight requests.\n */\n public getEnvelopeEndpointWithUrlEncodedAuth(): string {\n return getEnvelopeEndpointWithUrlEncodedAuth(this._dsnObject, this._tunnel);\n }\n}\n\n/** Initializes API Details */\nexport function initAPIDetails(dsn: DsnLike, metadata?: SdkMetadata, tunnel?: string): APIDetails {\n return {\n initDsn: dsn,\n metadata: metadata || {},\n dsn: makeDsn(dsn),\n tunnel,\n } as APIDetails;\n}\n\n/** Returns the prefix to construct Sentry ingestion API endpoints. */\nfunction getBaseApiEndpoint(dsn: DsnComponents): string {\n const protocol = dsn.protocol ? `${dsn.protocol}:` : '';\n const port = dsn.port ? `:${dsn.port}` : '';\n return `${protocol}//${dsn.host}${port}${dsn.path ? `/${dsn.path}` : ''}/api/`;\n}\n\n/** Returns the ingest API endpoint for target. */\nfunction _getIngestEndpoint(dsn: DsnComponents, target: 'store' | 'envelope'): string {\n return `${getBaseApiEndpoint(dsn)}${dsn.projectId}/${target}/`;\n}\n\n/** Returns a URL-encoded string with auth config suitable for a query string. */\nfunction _encodedAuth(dsn: DsnComponents): string {\n return urlEncode({\n // We send only the minimum set of required information. See\n // https://github.com/getsentry/sentry-javascript/issues/2572.\n sentry_key: dsn.publicKey,\n sentry_version: SENTRY_API_VERSION,\n });\n}\n\n/** Returns the store endpoint URL. */\nfunction getStoreEndpoint(dsn: DsnComponents): string {\n return _getIngestEndpoint(dsn, 'store');\n}\n\n/**\n * Returns the store endpoint URL with auth in the query string.\n *\n * Sending auth as part of the query string and not as custom HTTP headers avoids CORS preflight requests.\n */\nexport function getStoreEndpointWithUrlEncodedAuth(dsn: DsnComponents): string {\n return `${getStoreEndpoint(dsn)}?${_encodedAuth(dsn)}`;\n}\n\n/** Returns the envelope endpoint URL. */\nfunction _getEnvelopeEndpoint(dsn: DsnComponents): string {\n return _getIngestEndpoint(dsn, 'envelope');\n}\n\n/**\n * Returns the envelope endpoint URL with auth in the query string.\n *\n * Sending auth as part of the query string and not as custom HTTP headers avoids CORS preflight requests.\n */\nexport function getEnvelopeEndpointWithUrlEncodedAuth(dsn: DsnComponents, tunnel?: string): string {\n return tunnel ? tunnel : `${_getEnvelopeEndpoint(dsn)}?${_encodedAuth(dsn)}`;\n}\n\n/**\n * Returns an object that can be used in request headers.\n * This is needed for node and the old /store endpoint in sentry\n */\nexport function getRequestHeaders(\n dsn: DsnComponents,\n clientName: string,\n clientVersion: string,\n): { [key: string]: string } {\n // CHANGE THIS to use metadata but keep clientName and clientVersion compatible\n const header = [`Sentry sentry_version=${SENTRY_API_VERSION}`];\n header.push(`sentry_client=${clientName}/${clientVersion}`);\n header.push(`sentry_key=${dsn.publicKey}`);\n if (dsn.pass) {\n header.push(`sentry_secret=${dsn.pass}`);\n }\n return {\n 'Content-Type': 'application/json',\n 'X-Sentry-Auth': header.join(', '),\n };\n}\n\n/** Returns the url to the report dialog endpoint. */\nexport function getReportDialogEndpoint(\n dsnLike: DsnLike,\n dialogOptions: {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n [key: string]: any;\n user?: { name?: string; email?: string };\n },\n): string {\n const dsn = makeDsn(dsnLike);\n const endpoint = `${getBaseApiEndpoint(dsn)}embed/error-page/`;\n\n let encodedOptions = `dsn=${dsnToString(dsn)}`;\n for (const key in dialogOptions) {\n if (key === 'dsn') {\n continue;\n }\n\n if (key === 'user') {\n if (!dialogOptions.user) {\n continue;\n }\n if (dialogOptions.user.name) {\n encodedOptions += `&name=${encodeURIComponent(dialogOptions.user.name)}`;\n }\n if (dialogOptions.user.email) {\n encodedOptions += `&email=${encodeURIComponent(dialogOptions.user.email)}`;\n }\n } else {\n encodedOptions += `&${encodeURIComponent(key)}=${encodeURIComponent(dialogOptions[key] as string)}`;\n }\n }\n\n return `${endpoint}?${encodedOptions}`;\n}\n","import { Envelope } from '@sentry/types';\n\nimport { isPrimitive } from './is';\n\n/**\n * Creates an envelope.\n * Make sure to always explicitly provide the generic to this function\n * so that the envelope types resolve correctly.\n */\nexport function createEnvelope(headers: E[0], items: E[1] = []): E {\n return [headers, items] as E;\n}\n\n/**\n * Add an item to an envelope.\n * Make sure to always explicitly provide the generic to this function\n * so that the envelope types resolve correctly.\n */\nexport function addItemToEnvelope(envelope: E, newItem: E[1][number]): E {\n const [headers, items] = envelope;\n return [headers, [...items, newItem]] as E;\n}\n\n/**\n * Get the type of the envelope. Grabs the type from the first envelope item.\n */\nexport function getEnvelopeType(envelope: E): string {\n const [, [[firstItemHeader]]] = envelope;\n return firstItemHeader.type;\n}\n\n/**\n * Serializes an envelope into a string.\n */\nexport function serializeEnvelope(envelope: Envelope): string {\n const [headers, items] = envelope;\n const serializedHeaders = JSON.stringify(headers);\n\n // Have to cast items to any here since Envelope is a union type\n // Fixed in Typescript 4.2\n // TODO: Remove any[] cast when we upgrade to TS 4.2\n // https://github.com/microsoft/TypeScript/issues/36390\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n return (items as any[]).reduce((acc, item: typeof items[number]) => {\n const [itemHeaders, payload] = item;\n // We do not serialize payloads that are primitives\n const serializedPayload = isPrimitive(payload) ? String(payload) : JSON.stringify(payload);\n return `${acc}\\n${JSON.stringify(itemHeaders)}\\n${serializedPayload}`;\n }, serializedHeaders);\n}\n","import {\n Event,\n EventEnvelope,\n EventItem,\n SdkInfo,\n SentryRequest,\n SentryRequestType,\n Session,\n SessionAggregates,\n SessionEnvelope,\n SessionItem,\n} from '@sentry/types';\nimport { createEnvelope, dsnToString, normalize, serializeEnvelope } from '@sentry/utils';\n\nimport { APIDetails, getEnvelopeEndpointWithUrlEncodedAuth, getStoreEndpointWithUrlEncodedAuth } from './api';\n\n/** Extract sdk info from from the API metadata */\nfunction getSdkMetadataForEnvelopeHeader(api: APIDetails): SdkInfo | undefined {\n if (!api.metadata || !api.metadata.sdk) {\n return;\n }\n const { name, version } = api.metadata.sdk;\n return { name, version };\n}\n\n/**\n * Apply SdkInfo (name, version, packages, integrations) to the corresponding event key.\n * Merge with existing data if any.\n **/\nfunction enhanceEventWithSdkInfo(event: Event, sdkInfo?: SdkInfo): Event {\n if (!sdkInfo) {\n return event;\n }\n event.sdk = event.sdk || {};\n event.sdk.name = event.sdk.name || sdkInfo.name;\n event.sdk.version = event.sdk.version || sdkInfo.version;\n event.sdk.integrations = [...(event.sdk.integrations || []), ...(sdkInfo.integrations || [])];\n event.sdk.packages = [...(event.sdk.packages || []), ...(sdkInfo.packages || [])];\n return event;\n}\n\n/** Creates an envelope from a Session */\nexport function createSessionEnvelope(\n session: Session | SessionAggregates,\n api: APIDetails,\n): [SessionEnvelope, SentryRequestType] {\n const sdkInfo = getSdkMetadataForEnvelopeHeader(api);\n const envelopeHeaders = {\n sent_at: new Date().toISOString(),\n ...(sdkInfo && { sdk: sdkInfo }),\n ...(!!api.tunnel && { dsn: dsnToString(api.dsn) }),\n };\n\n // I know this is hacky but we don't want to add `sessions` to request type since it's never rate limited\n const type = 'aggregates' in session ? ('sessions' as SentryRequestType) : 'session';\n\n // TODO (v7) Have to cast type because envelope items do not accept a `SentryRequestType`\n const envelopeItem = [{ type } as { type: 'session' | 'sessions' }, session] as SessionItem;\n const envelope = createEnvelope(envelopeHeaders, [envelopeItem]);\n\n return [envelope, type];\n}\n\n/** Creates a SentryRequest from a Session. */\nexport function sessionToSentryRequest(session: Session | SessionAggregates, api: APIDetails): SentryRequest {\n const [envelope, type] = createSessionEnvelope(session, api);\n return {\n body: serializeEnvelope(envelope),\n type,\n url: getEnvelopeEndpointWithUrlEncodedAuth(api.dsn, api.tunnel),\n };\n}\n\n/**\n * Create an Envelope from an event. Note that this is duplicated from below,\n * but on purpose as this will be refactored in v7.\n */\nexport function createEventEnvelope(event: Event, api: APIDetails): EventEnvelope {\n const sdkInfo = getSdkMetadataForEnvelopeHeader(api);\n const eventType = event.type || 'event';\n\n const { transactionSampling } = event.sdkProcessingMetadata || {};\n const { method: samplingMethod, rate: sampleRate } = transactionSampling || {};\n\n // TODO: Below is a temporary hack in order to debug a serialization error - see\n // https://github.com/getsentry/sentry-javascript/issues/2809,\n // https://github.com/getsentry/sentry-javascript/pull/4425, and\n // https://github.com/getsentry/sentry-javascript/pull/4574.\n //\n // TL; DR: even though we normalize all events (which should prevent this), something is causing `JSON.stringify` to\n // throw a circular reference error.\n //\n // When it's time to remove it:\n // 1. Delete everything between here and where the request object `req` is created, EXCEPT the line deleting\n // `sdkProcessingMetadata`\n // 2. Restore the original version of the request body, which is commented out\n // 3. Search for either of the PR URLs above and pull out the companion hacks in the browser playwright tests and the\n // baseClient tests in this package\n enhanceEventWithSdkInfo(event, api.metadata.sdk);\n event.tags = event.tags || {};\n event.extra = event.extra || {};\n\n // In theory, all events should be marked as having gone through normalization and so\n // we should never set this tag/extra data\n if (!(event.sdkProcessingMetadata && event.sdkProcessingMetadata.baseClientNormalized)) {\n event.tags.skippedNormalization = true;\n event.extra.normalizeDepth = event.sdkProcessingMetadata ? event.sdkProcessingMetadata.normalizeDepth : 'unset';\n }\n\n // prevent this data from being sent to sentry\n // TODO: This is NOT part of the hack - DO NOT DELETE\n delete event.sdkProcessingMetadata;\n\n const envelopeHeaders = {\n event_id: event.event_id as string,\n sent_at: new Date().toISOString(),\n ...(sdkInfo && { sdk: sdkInfo }),\n ...(!!api.tunnel && { dsn: dsnToString(api.dsn) }),\n };\n const eventItem: EventItem = [\n {\n type: eventType,\n sample_rates: [{ id: samplingMethod, rate: sampleRate }],\n },\n event,\n ];\n return createEnvelope(envelopeHeaders, [eventItem]);\n}\n\n/** Creates a SentryRequest from an event. */\nexport function eventToSentryRequest(event: Event, api: APIDetails): SentryRequest {\n const sdkInfo = getSdkMetadataForEnvelopeHeader(api);\n const eventType = event.type || 'event';\n const useEnvelope = eventType === 'transaction' || !!api.tunnel;\n\n const { transactionSampling } = event.sdkProcessingMetadata || {};\n const { method: samplingMethod, rate: sampleRate } = transactionSampling || {};\n\n // TODO: Below is a temporary hack in order to debug a serialization error - see\n // https://github.com/getsentry/sentry-javascript/issues/2809,\n // https://github.com/getsentry/sentry-javascript/pull/4425, and\n // https://github.com/getsentry/sentry-javascript/pull/4574.\n //\n // TL; DR: even though we normalize all events (which should prevent this), something is causing `JSON.stringify` to\n // throw a circular reference error.\n //\n // When it's time to remove it:\n // 1. Delete everything between here and where the request object `req` is created, EXCEPT the line deleting\n // `sdkProcessingMetadata`\n // 2. Restore the original version of the request body, which is commented out\n // 3. Search for either of the PR URLs above and pull out the companion hacks in the browser playwright tests and the\n // baseClient tests in this package\n enhanceEventWithSdkInfo(event, api.metadata.sdk);\n event.tags = event.tags || {};\n event.extra = event.extra || {};\n\n // In theory, all events should be marked as having gone through normalization and so\n // we should never set this tag/extra data\n if (!(event.sdkProcessingMetadata && event.sdkProcessingMetadata.baseClientNormalized)) {\n event.tags.skippedNormalization = true;\n event.extra.normalizeDepth = event.sdkProcessingMetadata ? event.sdkProcessingMetadata.normalizeDepth : 'unset';\n }\n\n // prevent this data from being sent to sentry\n // TODO: This is NOT part of the hack - DO NOT DELETE\n delete event.sdkProcessingMetadata;\n\n let body;\n try {\n // 99.9% of events should get through just fine - no change in behavior for them\n body = JSON.stringify(event);\n } catch (err) {\n // Record data about the error without replacing original event data, then force renormalization\n event.tags.JSONStringifyError = true;\n event.extra.JSONStringifyError = err;\n try {\n body = JSON.stringify(normalize(event));\n } catch (newErr) {\n // At this point even renormalization hasn't worked, meaning something about the event data has gone very wrong.\n // Time to cut our losses and record only the new error. With luck, even in the problematic cases we're trying to\n // debug with this hack, we won't ever land here.\n const innerErr = newErr as Error;\n body = JSON.stringify({\n message: 'JSON.stringify error after renormalization',\n // setting `extra: { innerErr }` here for some reason results in an empty object, so unpack manually\n extra: { message: innerErr.message, stack: innerErr.stack },\n });\n }\n }\n\n const req: SentryRequest = {\n // this is the relevant line of code before the hack was added, to make it easy to undo said hack once we've solved\n // the mystery\n // body: JSON.stringify(sdkInfo ? enhanceEventWithSdkInfo(event, api.metadata.sdk) : event),\n body,\n type: eventType,\n url: useEnvelope\n ? getEnvelopeEndpointWithUrlEncodedAuth(api.dsn, api.tunnel)\n : getStoreEndpointWithUrlEncodedAuth(api.dsn),\n };\n\n // https://develop.sentry.dev/sdk/envelopes/\n\n // Since we don't need to manipulate envelopes nor store them, there is no\n // exported concept of an Envelope with operations including serialization and\n // deserialization. Instead, we only implement a minimal subset of the spec to\n // serialize events inline here.\n if (useEnvelope) {\n const envelopeHeaders = {\n event_id: event.event_id as string,\n sent_at: new Date().toISOString(),\n ...(sdkInfo && { sdk: sdkInfo }),\n ...(!!api.tunnel && { dsn: dsnToString(api.dsn) }),\n };\n const eventItem: EventItem = [\n {\n type: eventType,\n sample_rates: [{ id: samplingMethod, rate: sampleRate }],\n },\n req.body,\n ];\n const envelope = createEnvelope(envelopeHeaders, [eventItem]);\n req.body = serializeEnvelope(envelope);\n }\n\n return req;\n}\n","import { Event, Response, Transport } from '@sentry/types';\nimport { resolvedSyncPromise } from '@sentry/utils';\n\n/** Noop transport */\nexport class NoopTransport implements Transport {\n /**\n * @inheritDoc\n */\n public sendEvent(_: Event): PromiseLike {\n return resolvedSyncPromise({\n reason: 'NoopTransport: Event has been skipped because no Dsn is configured.',\n status: 'skipped',\n });\n }\n\n /**\n * @inheritDoc\n */\n public close(_?: number): PromiseLike {\n return resolvedSyncPromise(true);\n }\n}\n","/**\n * TODO(v7): Remove this enum and replace with SeverityLevel\n */\nexport enum Severity {\n /** JSDoc */\n Fatal = 'fatal',\n /** JSDoc */\n Error = 'error',\n /** JSDoc */\n Warning = 'warning',\n /** JSDoc */\n Log = 'log',\n /** JSDoc */\n Info = 'info',\n /** JSDoc */\n Debug = 'debug',\n /** JSDoc */\n Critical = 'critical',\n}\n\n// TODO: in v7, these can disappear, because they now also exist in `@sentry/utils`. (Having them there rather than here\n// is nice because then it enforces the idea that only types are exported from `@sentry/types`.)\nexport const SeverityLevels = ['fatal', 'error', 'warning', 'log', 'info', 'debug', 'critical'] as const;\nexport type SeverityLevel = typeof SeverityLevels[number];\n","import { Event, EventHint, Options, Session, Severity, Transport } from '@sentry/types';\nimport { logger, SentryError } from '@sentry/utils';\n\nimport { initAPIDetails } from './api';\nimport { IS_DEBUG_BUILD } from './flags';\nimport { createEventEnvelope, createSessionEnvelope } from './request';\nimport { NewTransport } from './transports/base';\nimport { NoopTransport } from './transports/noop';\n\n/**\n * Internal platform-dependent Sentry SDK Backend.\n *\n * While {@link Client} contains business logic specific to an SDK, the\n * Backend offers platform specific implementations for low-level operations.\n * These are persisting and loading information, sending events, and hooking\n * into the environment.\n *\n * Backends receive a handle to the Client in their constructor. When a\n * Backend automatically generates events, it must pass them to\n * the Client for validation and processing first.\n *\n * Usually, the Client will be of corresponding type, e.g. NodeBackend\n * receives NodeClient. However, higher-level SDKs can choose to instantiate\n * multiple Backends and delegate tasks between them. In this case, an event\n * generated by one backend might very well be sent by another one.\n *\n * The client also provides access to options via {@link Client.getOptions}.\n * @hidden\n */\nexport interface Backend {\n /** Creates an {@link Event} from all inputs to `captureException` and non-primitive inputs to `captureMessage`. */\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n eventFromException(exception: any, hint?: EventHint): PromiseLike;\n\n /** Creates an {@link Event} from primitive inputs to `captureMessage`. */\n eventFromMessage(message: string, level?: Severity, hint?: EventHint): PromiseLike;\n\n /** Submits the event to Sentry */\n sendEvent(event: Event): void;\n\n /** Submits the session to Sentry */\n sendSession(session: Session): void;\n\n /**\n * Returns the transport that is used by the backend.\n * Please note that the transport gets lazy initialized so it will only be there once the first event has been sent.\n *\n * @returns The transport.\n */\n getTransport(): Transport;\n}\n\n/**\n * A class object that can instantiate Backend objects.\n * @hidden\n */\nexport type BackendClass = new (options: O) => B;\n\n/**\n * This is the base implemention of a Backend.\n * @hidden\n */\nexport abstract class BaseBackend implements Backend {\n /** Options passed to the SDK. */\n protected readonly _options: O;\n\n /** Cached transport used internally. */\n protected _transport: Transport;\n\n /** New v7 Transport that is initialized alongside the old one */\n protected _newTransport?: NewTransport;\n\n /** Creates a new backend instance. */\n public constructor(options: O) {\n this._options = options;\n if (!this._options.dsn) {\n IS_DEBUG_BUILD && logger.warn('No DSN provided, backend will not do anything.');\n }\n this._transport = this._setupTransport();\n }\n\n /**\n * @inheritDoc\n */\n // eslint-disable-next-line @typescript-eslint/no-explicit-any, @typescript-eslint/explicit-module-boundary-types\n public eventFromException(_exception: any, _hint?: EventHint): PromiseLike {\n throw new SentryError('Backend has to implement `eventFromException` method');\n }\n\n /**\n * @inheritDoc\n */\n public eventFromMessage(_message: string, _level?: Severity, _hint?: EventHint): PromiseLike {\n throw new SentryError('Backend has to implement `eventFromMessage` method');\n }\n\n /**\n * @inheritDoc\n */\n public sendEvent(event: Event): void {\n // TODO(v7): Remove the if-else\n if (\n this._newTransport &&\n this._options.dsn &&\n this._options._experiments &&\n this._options._experiments.newTransport\n ) {\n const api = initAPIDetails(this._options.dsn, this._options._metadata, this._options.tunnel);\n const env = createEventEnvelope(event, api);\n void this._newTransport.send(env).then(null, reason => {\n IS_DEBUG_BUILD && logger.error('Error while sending event:', reason);\n });\n } else {\n void this._transport.sendEvent(event).then(null, reason => {\n IS_DEBUG_BUILD && logger.error('Error while sending event:', reason);\n });\n }\n }\n\n /**\n * @inheritDoc\n */\n public sendSession(session: Session): void {\n if (!this._transport.sendSession) {\n IS_DEBUG_BUILD && logger.warn(\"Dropping session because custom transport doesn't implement sendSession\");\n return;\n }\n\n // TODO(v7): Remove the if-else\n if (\n this._newTransport &&\n this._options.dsn &&\n this._options._experiments &&\n this._options._experiments.newTransport\n ) {\n const api = initAPIDetails(this._options.dsn, this._options._metadata, this._options.tunnel);\n const [env] = createSessionEnvelope(session, api);\n void this._newTransport.send(env).then(null, reason => {\n IS_DEBUG_BUILD && logger.error('Error while sending session:', reason);\n });\n } else {\n void this._transport.sendSession(session).then(null, reason => {\n IS_DEBUG_BUILD && logger.error('Error while sending session:', reason);\n });\n }\n }\n\n /**\n * @inheritDoc\n */\n public getTransport(): Transport {\n return this._transport;\n }\n\n /**\n * Sets up the transport so it can be used later to send requests.\n */\n protected _setupTransport(): Transport {\n return new NoopTransport();\n }\n}\n","import { StackFrame } from '@sentry/types';\nimport { StackLineParser, StackLineParserFn } from '@sentry/utils';\n\n// global reference to slice\nconst UNKNOWN_FUNCTION = '?';\n\nconst OPERA10_PRIORITY = 10;\nconst OPERA11_PRIORITY = 20;\nconst CHROME_PRIORITY = 30;\nconst WINJS_PRIORITY = 40;\nconst GECKO_PRIORITY = 50;\n\nfunction createFrame(filename: string, func: string, lineno?: number, colno?: number): StackFrame {\n const frame: StackFrame = {\n filename,\n function: func,\n // All browser frames are considered in_app\n in_app: true,\n };\n\n if (lineno !== undefined) {\n frame.lineno = lineno;\n }\n\n if (colno !== undefined) {\n frame.colno = colno;\n }\n\n return frame;\n}\n\n// Chromium based browsers: Chrome, Brave, new Opera, new Edge\nconst chromeRegex =\n /^\\s*at (?:(.*?) ?\\((?:address at )?)?((?:file|https?|blob|chrome-extension|address|native|eval|webpack||[-a-z]+:|.*bundle|\\/).*?)(?::(\\d+))?(?::(\\d+))?\\)?\\s*$/i;\nconst chromeEvalRegex = /\\((\\S*)(?::(\\d+))(?::(\\d+))\\)/;\n\nconst chrome: StackLineParserFn = line => {\n const parts = chromeRegex.exec(line);\n\n if (parts) {\n const isEval = parts[2] && parts[2].indexOf('eval') === 0; // start of line\n\n if (isEval) {\n const subMatch = chromeEvalRegex.exec(parts[2]);\n\n if (subMatch) {\n // throw out eval line/column and use top-most line/column number\n parts[2] = subMatch[1]; // url\n parts[3] = subMatch[2]; // line\n parts[4] = subMatch[3]; // column\n }\n }\n\n // Kamil: One more hack won't hurt us right? Understanding and adding more rules on top of these regexps right now\n // would be way too time consuming. (TODO: Rewrite whole RegExp to be more readable)\n const [func, filename] = extractSafariExtensionDetails(parts[1] || UNKNOWN_FUNCTION, parts[2]);\n\n return createFrame(filename, func, parts[3] ? +parts[3] : undefined, parts[4] ? +parts[4] : undefined);\n }\n\n return;\n};\n\nexport const chromeStackParser: StackLineParser = [CHROME_PRIORITY, chrome];\n\n// gecko regex: `(?:bundle|\\d+\\.js)`: `bundle` is for react native, `\\d+\\.js` also but specifically for ram bundles because it\n// generates filenames without a prefix like `file://` the filenames in the stacktrace are just 42.js\n// We need this specific case for now because we want no other regex to match.\nconst geckoREgex =\n /^\\s*(.*?)(?:\\((.*?)\\))?(?:^|@)?((?:file|https?|blob|chrome|webpack|resource|moz-extension|capacitor).*?:\\/.*?|\\[native code\\]|[^@]*(?:bundle|\\d+\\.js)|\\/[\\w\\-. /=]+)(?::(\\d+))?(?::(\\d+))?\\s*$/i;\nconst geckoEvalRegex = /(\\S+) line (\\d+)(?: > eval line \\d+)* > eval/i;\n\nconst gecko: StackLineParserFn = line => {\n const parts = geckoREgex.exec(line);\n\n if (parts) {\n const isEval = parts[3] && parts[3].indexOf(' > eval') > -1;\n if (isEval) {\n const subMatch = geckoEvalRegex.exec(parts[3]);\n\n if (subMatch) {\n // throw out eval line/column and use top-most line number\n parts[1] = parts[1] || 'eval';\n parts[3] = subMatch[1];\n parts[4] = subMatch[2];\n parts[5] = ''; // no column when eval\n }\n }\n\n let filename = parts[3];\n let func = parts[1] || UNKNOWN_FUNCTION;\n [func, filename] = extractSafariExtensionDetails(func, filename);\n\n return createFrame(filename, func, parts[4] ? +parts[4] : undefined, parts[5] ? +parts[5] : undefined);\n }\n\n return;\n};\n\nexport const geckoStackParser: StackLineParser = [GECKO_PRIORITY, gecko];\n\nconst winjsRegex =\n /^\\s*at (?:((?:\\[object object\\])?.+) )?\\(?((?:file|ms-appx|https?|webpack|blob):.*?):(\\d+)(?::(\\d+))?\\)?\\s*$/i;\n\nconst winjs: StackLineParserFn = line => {\n const parts = winjsRegex.exec(line);\n\n return parts\n ? createFrame(parts[2], parts[1] || UNKNOWN_FUNCTION, +parts[3], parts[4] ? +parts[4] : undefined)\n : undefined;\n};\n\nexport const winjsStackParser: StackLineParser = [WINJS_PRIORITY, winjs];\n\nconst opera10Regex = / line (\\d+).*script (?:in )?(\\S+)(?:: in function (\\S+))?$/i;\n\nconst opera10: StackLineParserFn = line => {\n const parts = opera10Regex.exec(line);\n return parts ? createFrame(parts[2], parts[3] || UNKNOWN_FUNCTION, +parts[1]) : undefined;\n};\n\nexport const opera10StackParser: StackLineParser = [OPERA10_PRIORITY, opera10];\n\nconst opera11Regex =\n / line (\\d+), column (\\d+)\\s*(?:in (?:]+)>|([^)]+))\\(.*\\))? in (.*):\\s*$/i;\n\nconst opera11: StackLineParserFn = line => {\n const parts = opera11Regex.exec(line);\n return parts ? createFrame(parts[5], parts[3] || parts[4] || UNKNOWN_FUNCTION, +parts[1], +parts[2]) : undefined;\n};\n\nexport const opera11StackParser: StackLineParser = [OPERA11_PRIORITY, opera11];\n\n/**\n * Safari web extensions, starting version unknown, can produce \"frames-only\" stacktraces.\n * What it means, is that instead of format like:\n *\n * Error: wat\n * at function@url:row:col\n * at function@url:row:col\n * at function@url:row:col\n *\n * it produces something like:\n *\n * function@url:row:col\n * function@url:row:col\n * function@url:row:col\n *\n * Because of that, it won't be captured by `chrome` RegExp and will fall into `Gecko` branch.\n * This function is extracted so that we can use it in both places without duplicating the logic.\n * Unfortunately \"just\" changing RegExp is too complicated now and making it pass all tests\n * and fix this case seems like an impossible, or at least way too time-consuming task.\n */\nconst extractSafariExtensionDetails = (func: string, filename: string): [string, string] => {\n const isSafariExtension = func.indexOf('safari-extension') !== -1;\n const isSafariWebExtension = func.indexOf('safari-web-extension') !== -1;\n\n return isSafariExtension || isSafariWebExtension\n ? [\n func.indexOf('@') !== -1 ? func.split('@')[0] : UNKNOWN_FUNCTION,\n isSafariExtension ? `safari-extension:${filename}` : `safari-web-extension:${filename}`,\n ]\n : [func, filename];\n};\n","import { Event, EventHint, Exception, Severity, StackFrame } from '@sentry/types';\nimport {\n addExceptionMechanism,\n addExceptionTypeValue,\n createStackParser,\n extractExceptionKeysForMessage,\n isDOMError,\n isDOMException,\n isError,\n isErrorEvent,\n isEvent,\n isPlainObject,\n normalizeToSize,\n resolvedSyncPromise,\n} from '@sentry/utils';\n\nimport {\n chromeStackParser,\n geckoStackParser,\n opera10StackParser,\n opera11StackParser,\n winjsStackParser,\n} from './stack-parsers';\n\n/**\n * This function creates an exception from an TraceKitStackTrace\n * @param stacktrace TraceKitStackTrace that will be converted to an exception\n * @hidden\n */\nexport function exceptionFromError(ex: Error): Exception {\n // Get the frames first since Opera can lose the stack if we touch anything else first\n const frames = parseStackFrames(ex);\n\n const exception: Exception = {\n type: ex && ex.name,\n value: extractMessage(ex),\n };\n\n if (frames.length) {\n exception.stacktrace = { frames };\n }\n\n if (exception.type === undefined && exception.value === '') {\n exception.value = 'Unrecoverable error caught';\n }\n\n return exception;\n}\n\n/**\n * @hidden\n */\nexport function eventFromPlainObject(\n exception: Record,\n syntheticException?: Error,\n isUnhandledRejection?: boolean,\n): Event {\n const event: Event = {\n exception: {\n values: [\n {\n type: isEvent(exception) ? exception.constructor.name : isUnhandledRejection ? 'UnhandledRejection' : 'Error',\n value: `Non-Error ${\n isUnhandledRejection ? 'promise rejection' : 'exception'\n } captured with keys: ${extractExceptionKeysForMessage(exception)}`,\n },\n ],\n },\n extra: {\n __serialized__: normalizeToSize(exception),\n },\n };\n\n if (syntheticException) {\n const frames = parseStackFrames(syntheticException);\n if (frames.length) {\n event.stacktrace = { frames };\n }\n }\n\n return event;\n}\n\n/**\n * @hidden\n */\nexport function eventFromError(ex: Error): Event {\n return {\n exception: {\n values: [exceptionFromError(ex)],\n },\n };\n}\n\n/** Parses stack frames from an error */\nexport function parseStackFrames(ex: Error & { framesToPop?: number; stacktrace?: string }): StackFrame[] {\n // Access and store the stacktrace property before doing ANYTHING\n // else to it because Opera is not very good at providing it\n // reliably in other circumstances.\n const stacktrace = ex.stacktrace || ex.stack || '';\n\n const popSize = getPopSize(ex);\n\n try {\n return createStackParser(\n opera10StackParser,\n opera11StackParser,\n chromeStackParser,\n winjsStackParser,\n geckoStackParser,\n )(stacktrace, popSize);\n } catch (e) {\n // no-empty\n }\n\n return [];\n}\n\n// Based on our own mapping pattern - https://github.com/getsentry/sentry/blob/9f08305e09866c8bd6d0c24f5b0aabdd7dd6c59c/src/sentry/lang/javascript/errormapping.py#L83-L108\nconst reactMinifiedRegexp = /Minified React error #\\d+;/i;\n\nfunction getPopSize(ex: Error & { framesToPop?: number }): number {\n if (ex) {\n if (typeof ex.framesToPop === 'number') {\n return ex.framesToPop;\n }\n\n if (reactMinifiedRegexp.test(ex.message)) {\n return 1;\n }\n }\n\n return 0;\n}\n\n/**\n * There are cases where stacktrace.message is an Event object\n * https://github.com/getsentry/sentry-javascript/issues/1949\n * In this specific case we try to extract stacktrace.message.error.message\n */\nfunction extractMessage(ex: Error & { message: { error?: Error } }): string {\n const message = ex && ex.message;\n if (!message) {\n return 'No error message';\n }\n if (message.error && typeof message.error.message === 'string') {\n return message.error.message;\n }\n return message;\n}\n\n/**\n * Creates an {@link Event} from all inputs to `captureException` and non-primitive inputs to `captureMessage`.\n * @hidden\n */\nexport function eventFromException(\n exception: unknown,\n hint?: EventHint,\n attachStacktrace?: boolean,\n): PromiseLike {\n const syntheticException = (hint && hint.syntheticException) || undefined;\n const event = eventFromUnknownInput(exception, syntheticException, attachStacktrace);\n addExceptionMechanism(event); // defaults to { type: 'generic', handled: true }\n event.level = Severity.Error;\n if (hint && hint.event_id) {\n event.event_id = hint.event_id;\n }\n return resolvedSyncPromise(event);\n}\n\n/**\n * Builds and Event from a Message\n * @hidden\n */\nexport function eventFromMessage(\n message: string,\n level: Severity = Severity.Info,\n hint?: EventHint,\n attachStacktrace?: boolean,\n): PromiseLike {\n const syntheticException = (hint && hint.syntheticException) || undefined;\n const event = eventFromString(message, syntheticException, attachStacktrace);\n event.level = level;\n if (hint && hint.event_id) {\n event.event_id = hint.event_id;\n }\n return resolvedSyncPromise(event);\n}\n\n/**\n * @hidden\n */\nexport function eventFromUnknownInput(\n exception: unknown,\n syntheticException?: Error,\n attachStacktrace?: boolean,\n isUnhandledRejection?: boolean,\n): Event {\n let event: Event;\n\n if (isErrorEvent(exception as ErrorEvent) && (exception as ErrorEvent).error) {\n // If it is an ErrorEvent with `error` property, extract it to get actual Error\n const errorEvent = exception as ErrorEvent;\n return eventFromError(errorEvent.error as Error);\n }\n\n // If it is a `DOMError` (which is a legacy API, but still supported in some browsers) then we just extract the name\n // and message, as it doesn't provide anything else. According to the spec, all `DOMExceptions` should also be\n // `Error`s, but that's not the case in IE11, so in that case we treat it the same as we do a `DOMError`.\n //\n // https://developer.mozilla.org/en-US/docs/Web/API/DOMError\n // https://developer.mozilla.org/en-US/docs/Web/API/DOMException\n // https://webidl.spec.whatwg.org/#es-DOMException-specialness\n if (isDOMError(exception as DOMError) || isDOMException(exception as DOMException)) {\n const domException = exception as DOMException;\n\n if ('stack' in (exception as Error)) {\n event = eventFromError(exception as Error);\n } else {\n const name = domException.name || (isDOMError(domException) ? 'DOMError' : 'DOMException');\n const message = domException.message ? `${name}: ${domException.message}` : name;\n event = eventFromString(message, syntheticException, attachStacktrace);\n addExceptionTypeValue(event, message);\n }\n if ('code' in domException) {\n event.tags = { ...event.tags, 'DOMException.code': `${domException.code}` };\n }\n\n return event;\n }\n if (isError(exception)) {\n // we have a real Error object, do nothing\n return eventFromError(exception);\n }\n if (isPlainObject(exception) || isEvent(exception)) {\n // If it's a plain object or an instance of `Event` (the built-in JS kind, not this SDK's `Event` type), serialize\n // it manually. This will allow us to group events based on top-level keys which is much better than creating a new\n // group on any key/value change.\n const objectException = exception as Record;\n event = eventFromPlainObject(objectException, syntheticException, isUnhandledRejection);\n addExceptionMechanism(event, {\n synthetic: true,\n });\n return event;\n }\n\n // If none of previous checks were valid, then it means that it's not:\n // - an instance of DOMError\n // - an instance of DOMException\n // - an instance of Event\n // - an instance of Error\n // - a valid ErrorEvent (one with an error property)\n // - a plain Object\n //\n // So bail out and capture it as a simple message:\n event = eventFromString(exception as string, syntheticException, attachStacktrace);\n addExceptionTypeValue(event, `${exception}`, undefined);\n addExceptionMechanism(event, {\n synthetic: true,\n });\n\n return event;\n}\n\n/**\n * @hidden\n */\nexport function eventFromString(input: string, syntheticException?: Error, attachStacktrace?: boolean): Event {\n const event: Event = {\n message: input,\n };\n\n if (attachStacktrace && syntheticException) {\n const frames = parseStackFrames(syntheticException);\n if (frames.length) {\n event.stacktrace = { frames };\n }\n }\n\n return event;\n}\n","import { SentryError } from './error';\nimport { rejectedSyncPromise, resolvedSyncPromise, SyncPromise } from './syncpromise';\n\nexport interface PromiseBuffer {\n // exposes the internal array so tests can assert on the state of it.\n // XXX: this really should not be public api.\n $: Array>;\n add(taskProducer: () => PromiseLike): PromiseLike;\n drain(timeout?: number): PromiseLike;\n}\n\n/**\n * Creates an new PromiseBuffer object with the specified limit\n * @param limit max number of promises that can be stored in the buffer\n */\nexport function makePromiseBuffer(limit?: number): PromiseBuffer {\n const buffer: Array> = [];\n\n function isReady(): boolean {\n return limit === undefined || buffer.length < limit;\n }\n\n /**\n * Remove a promise from the queue.\n *\n * @param task Can be any PromiseLike\n * @returns Removed promise.\n */\n function remove(task: PromiseLike): PromiseLike {\n return buffer.splice(buffer.indexOf(task), 1)[0];\n }\n\n /**\n * Add a promise (representing an in-flight action) to the queue, and set it to remove itself on fulfillment.\n *\n * @param taskProducer A function producing any PromiseLike; In previous versions this used to be `task:\n * PromiseLike`, but under that model, Promises were instantly created on the call-site and their executor\n * functions therefore ran immediately. Thus, even if the buffer was full, the action still happened. By\n * requiring the promise to be wrapped in a function, we can defer promise creation until after the buffer\n * limit check.\n * @returns The original promise.\n */\n function add(taskProducer: () => PromiseLike): PromiseLike {\n if (!isReady()) {\n return rejectedSyncPromise(new SentryError('Not adding Promise due to buffer limit reached.'));\n }\n\n // start the task and add its promise to the queue\n const task = taskProducer();\n if (buffer.indexOf(task) === -1) {\n buffer.push(task);\n }\n void task\n .then(() => remove(task))\n // Use `then(null, rejectionHandler)` rather than `catch(rejectionHandler)` so that we can use `PromiseLike`\n // rather than `Promise`. `PromiseLike` doesn't have a `.catch` method, making its polyfill smaller. (ES5 didn't\n // have promises, so TS has to polyfill when down-compiling.)\n .then(null, () =>\n remove(task).then(null, () => {\n // We have to add another catch here because `remove()` starts a new promise chain.\n }),\n );\n return task;\n }\n\n /**\n * Wait for all promises in the queue to resolve or for timeout to expire, whichever comes first.\n *\n * @param timeout The time, in ms, after which to resolve to `false` if the queue is still non-empty. Passing `0` (or\n * not passing anything) will make the promise wait as long as it takes for the queue to drain before resolving to\n * `true`.\n * @returns A promise which will resolve to `true` if the queue is already empty or drains before the timeout, and\n * `false` otherwise\n */\n function drain(timeout?: number): PromiseLike {\n return new SyncPromise((resolve, reject) => {\n let counter = buffer.length;\n\n if (!counter) {\n return resolve(true);\n }\n\n // wait for `timeout` ms and then resolve to `false` (if not cancelled first)\n const capturedSetTimeout = setTimeout(() => {\n if (timeout && timeout > 0) {\n resolve(false);\n }\n }, timeout);\n\n // if all promises resolve in time, cancel the timer and resolve to `true`\n buffer.forEach(item => {\n void resolvedSyncPromise(item).then(() => {\n // eslint-disable-next-line no-plusplus\n if (!--counter) {\n clearTimeout(capturedSetTimeout);\n resolve(true);\n }\n }, reject);\n });\n });\n }\n\n return {\n $: buffer,\n add,\n drain,\n };\n}\n","// Keeping the key broad until we add the new transports\nexport type RateLimits = Record;\n\nexport const DEFAULT_RETRY_AFTER = 60 * 1000; // 60 seconds\n\n/**\n * Extracts Retry-After value from the request header or returns default value\n * @param header string representation of 'Retry-After' header\n * @param now current unix timestamp\n *\n */\nexport function parseRetryAfterHeader(header: string, now: number = Date.now()): number {\n const headerDelay = parseInt(`${header}`, 10);\n if (!isNaN(headerDelay)) {\n return headerDelay * 1000;\n }\n\n const headerDate = Date.parse(`${header}`);\n if (!isNaN(headerDate)) {\n return headerDate - now;\n }\n\n return DEFAULT_RETRY_AFTER;\n}\n\n/**\n * Gets the time that given category is disabled until for rate limiting\n */\nexport function disabledUntil(limits: RateLimits, category: string): number {\n return limits[category] || limits.all || 0;\n}\n\n/**\n * Checks if a category is rate limited\n */\nexport function isRateLimited(limits: RateLimits, category: string, now: number = Date.now()): boolean {\n return disabledUntil(limits, category) > now;\n}\n\n/**\n * Update ratelimits from incoming headers.\n * Returns true if headers contains a non-empty rate limiting header.\n */\nexport function updateRateLimits(\n limits: RateLimits,\n headers: Record,\n now: number = Date.now(),\n): RateLimits {\n const updatedRateLimits: RateLimits = {\n ...limits,\n };\n\n // \"The name is case-insensitive.\"\n // https://developer.mozilla.org/en-US/docs/Web/API/Headers/get\n const rateLimitHeader = headers['x-sentry-rate-limits'];\n const retryAfterHeader = headers['retry-after'];\n\n if (rateLimitHeader) {\n /**\n * rate limit headers are of the form\n *
,
,..\n * where each
is of the form\n * : : : \n * where\n * is a delay in seconds\n * is the event type(s) (error, transaction, etc) being rate limited and is of the form\n * ;;...\n * is what's being limited (org, project, or key) - ignored by SDK\n * is an arbitrary string like \"org_quota\" - ignored by SDK\n */\n for (const limit of rateLimitHeader.trim().split(',')) {\n const parameters = limit.split(':', 2);\n const headerDelay = parseInt(parameters[0], 10);\n const delay = (!isNaN(headerDelay) ? headerDelay : 60) * 1000; // 60sec default\n if (!parameters[1]) {\n updatedRateLimits.all = now + delay;\n } else {\n for (const category of parameters[1].split(';')) {\n updatedRateLimits[category] = now + delay;\n }\n }\n }\n } else if (retryAfterHeader) {\n updatedRateLimits.all = now + parseRetryAfterHeader(retryAfterHeader, now);\n }\n\n return updatedRateLimits;\n}\n","import { EventStatus } from '@sentry/types';\n/**\n * Converts an HTTP status code to sentry status {@link EventStatus}.\n *\n * @param code number HTTP status code\n * @returns EventStatus\n */\nexport function eventStatusFromHttpCode(code: number): EventStatus {\n if (code >= 200 && code < 300) {\n return 'success';\n }\n\n if (code === 429) {\n return 'rate_limit';\n }\n\n if (code >= 400 && code < 500) {\n return 'invalid';\n }\n\n if (code >= 500) {\n return 'failed';\n }\n\n return 'unknown';\n}\n","import { Envelope, EventStatus } from '@sentry/types';\nimport {\n disabledUntil,\n eventStatusFromHttpCode,\n getEnvelopeType,\n isRateLimited,\n makePromiseBuffer,\n PromiseBuffer,\n RateLimits,\n rejectedSyncPromise,\n resolvedSyncPromise,\n serializeEnvelope,\n updateRateLimits,\n} from '@sentry/utils';\n\nexport const ERROR_TRANSPORT_CATEGORY = 'error';\n\nexport const TRANSACTION_TRANSPORT_CATEGORY = 'transaction';\n\nexport const ATTACHMENT_TRANSPORT_CATEGORY = 'attachment';\n\nexport const SESSION_TRANSPORT_CATEGORY = 'session';\n\ntype TransportCategory =\n | typeof ERROR_TRANSPORT_CATEGORY\n | typeof TRANSACTION_TRANSPORT_CATEGORY\n | typeof ATTACHMENT_TRANSPORT_CATEGORY\n | typeof SESSION_TRANSPORT_CATEGORY;\n\nexport type TransportRequest = {\n body: string;\n category: TransportCategory;\n};\n\nexport type TransportMakeRequestResponse = {\n body?: string;\n headers?: {\n [key: string]: string | null;\n 'x-sentry-rate-limits': string | null;\n 'retry-after': string | null;\n };\n reason?: string;\n statusCode: number;\n};\n\nexport type TransportResponse = {\n status: EventStatus;\n reason?: string;\n};\n\ninterface InternalBaseTransportOptions {\n bufferSize?: number;\n}\n\nexport interface BaseTransportOptions extends InternalBaseTransportOptions {\n // url to send the event\n // transport does not care about dsn specific - client should take care of\n // parsing and figuring that out\n url: string;\n}\n\n// TODO: Move into Browser Transport\nexport interface BrowserTransportOptions extends BaseTransportOptions {\n // options to pass into fetch request\n fetchParams: Record;\n headers?: Record;\n sendClientReports?: boolean;\n}\n\nexport interface NewTransport {\n send(request: Envelope): PromiseLike;\n flush(timeout?: number): PromiseLike;\n}\n\nexport type TransportRequestExecutor = (request: TransportRequest) => PromiseLike;\n\nexport const DEFAULT_TRANSPORT_BUFFER_SIZE = 30;\n\n/**\n * Creates a `NewTransport`\n *\n * @param options\n * @param makeRequest\n */\nexport function createTransport(\n options: InternalBaseTransportOptions,\n makeRequest: TransportRequestExecutor,\n buffer: PromiseBuffer = makePromiseBuffer(options.bufferSize || DEFAULT_TRANSPORT_BUFFER_SIZE),\n): NewTransport {\n let rateLimits: RateLimits = {};\n\n const flush = (timeout?: number): PromiseLike => buffer.drain(timeout);\n\n function send(envelope: Envelope): PromiseLike {\n const envCategory = getEnvelopeType(envelope);\n const category = envCategory === 'event' ? 'error' : (envCategory as TransportCategory);\n const request: TransportRequest = {\n category,\n body: serializeEnvelope(envelope),\n };\n\n // Don't add to buffer if transport is already rate-limited\n if (isRateLimited(rateLimits, category)) {\n return rejectedSyncPromise({\n status: 'rate_limit',\n reason: getRateLimitReason(rateLimits, category),\n });\n }\n\n const requestTask = (): PromiseLike =>\n makeRequest(request).then(({ body, headers, reason, statusCode }): PromiseLike => {\n const status = eventStatusFromHttpCode(statusCode);\n if (headers) {\n rateLimits = updateRateLimits(rateLimits, headers);\n }\n if (status === 'success') {\n return resolvedSyncPromise({ status, reason });\n }\n return rejectedSyncPromise({\n status,\n reason:\n reason ||\n body ||\n (status === 'rate_limit' ? getRateLimitReason(rateLimits, category) : 'Unknown transport error'),\n });\n });\n\n return buffer.add(requestTask);\n }\n\n return {\n send,\n flush,\n };\n}\n\nfunction getRateLimitReason(rateLimits: RateLimits, category: TransportCategory): string {\n return `Too many ${category} requests, backing off until: ${new Date(\n disabledUntil(rateLimits, category),\n ).toISOString()}`;\n}\n","/*\n * This file defines flags and constants that can be modified during compile time in order to facilitate tree shaking\n * for users.\n *\n * Debug flags need to be declared in each package individually and must not be imported across package boundaries,\n * because some build tools have trouble tree-shaking imported guards.\n *\n * As a convention, we define debug flags in a `flags.ts` file in the root of a package's `src` folder.\n *\n * Debug flag files will contain \"magic strings\" like `__SENTRY_DEBUG__` that may get replaced with actual values during\n * our, or the user's build process. Take care when introducing new flags - they must not throw if they are not\n * replaced.\n */\n\ndeclare const __SENTRY_DEBUG__: boolean;\n\n/** Flag that is true for debug builds, false otherwise. */\nexport const IS_DEBUG_BUILD = typeof __SENTRY_DEBUG__ === 'undefined' ? true : __SENTRY_DEBUG__;\n","import { forget, getGlobalObject, isNativeFetch, logger, supportsFetch } from '@sentry/utils';\n\nimport { IS_DEBUG_BUILD } from '../flags';\n\nconst global = getGlobalObject();\nlet cachedFetchImpl: FetchImpl;\n\nexport type FetchImpl = typeof fetch;\n\n/**\n * A special usecase for incorrectly wrapped Fetch APIs in conjunction with ad-blockers.\n * Whenever someone wraps the Fetch API and returns the wrong promise chain,\n * this chain becomes orphaned and there is no possible way to capture it's rejections\n * other than allowing it bubble up to this very handler. eg.\n *\n * const f = window.fetch;\n * window.fetch = function () {\n * const p = f.apply(this, arguments);\n *\n * p.then(function() {\n * console.log('hi.');\n * });\n *\n * return p;\n * }\n *\n * `p.then(function () { ... })` is producing a completely separate promise chain,\n * however, what's returned is `p` - the result of original `fetch` call.\n *\n * This mean, that whenever we use the Fetch API to send our own requests, _and_\n * some ad-blocker blocks it, this orphaned chain will _always_ reject,\n * effectively causing another event to be captured.\n * This makes a whole process become an infinite loop, which we need to somehow\n * deal with, and break it in one way or another.\n *\n * To deal with this issue, we are making sure that we _always_ use the real\n * browser Fetch API, instead of relying on what `window.fetch` exposes.\n * The only downside to this would be missing our own requests as breadcrumbs,\n * but because we are already not doing this, it should be just fine.\n *\n * Possible failed fetch error messages per-browser:\n *\n * Chrome: Failed to fetch\n * Edge: Failed to Fetch\n * Firefox: NetworkError when attempting to fetch resource\n * Safari: resource blocked by content blocker\n */\nexport function getNativeFetchImplementation(): FetchImpl {\n if (cachedFetchImpl) {\n return cachedFetchImpl;\n }\n\n /* eslint-disable @typescript-eslint/unbound-method */\n\n // Fast path to avoid DOM I/O\n if (isNativeFetch(global.fetch)) {\n return (cachedFetchImpl = global.fetch.bind(global));\n }\n\n const document = global.document;\n let fetchImpl = global.fetch;\n // eslint-disable-next-line deprecation/deprecation\n if (document && typeof document.createElement === 'function') {\n try {\n const sandbox = document.createElement('iframe');\n sandbox.hidden = true;\n document.head.appendChild(sandbox);\n const contentWindow = sandbox.contentWindow;\n if (contentWindow && contentWindow.fetch) {\n fetchImpl = contentWindow.fetch;\n }\n document.head.removeChild(sandbox);\n } catch (e) {\n IS_DEBUG_BUILD &&\n logger.warn('Could not create sandbox iframe for pure fetch check, bailing to window.fetch: ', e);\n }\n }\n\n return (cachedFetchImpl = fetchImpl.bind(global));\n /* eslint-enable @typescript-eslint/unbound-method */\n}\n\n/**\n * Sends sdk client report using sendBeacon or fetch as a fallback if available\n *\n * @param url report endpoint\n * @param body report payload\n */\nexport function sendReport(url: string, body: string): void {\n const isRealNavigator = Object.prototype.toString.call(global && global.navigator) === '[object Navigator]';\n const hasSendBeacon = isRealNavigator && typeof global.navigator.sendBeacon === 'function';\n\n if (hasSendBeacon) {\n // Prevent illegal invocations - https://xgwang.me/posts/you-may-not-know-beacon/#it-may-throw-error%2C-be-sure-to-catch\n const sendBeacon = global.navigator.sendBeacon.bind(global.navigator);\n return sendBeacon(url, body);\n }\n\n if (supportsFetch()) {\n const fetch = getNativeFetchImplementation();\n return forget(\n fetch(url, {\n body,\n method: 'POST',\n credentials: 'omit',\n keepalive: true,\n }),\n );\n }\n}\n","/**\n * Consumes the promise and logs the error when it rejects.\n * @param promise A promise to forget.\n */\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport function forget(promise: PromiseLike): void {\n void promise.then(null, e => {\n // TODO: Use a better logging mechanism\n // eslint-disable-next-line no-console\n console.error(e);\n });\n}\n","import {\n APIDetails,\n eventToSentryRequest,\n getEnvelopeEndpointWithUrlEncodedAuth,\n getStoreEndpointWithUrlEncodedAuth,\n initAPIDetails,\n sessionToSentryRequest,\n} from '@sentry/core';\nimport {\n ClientReport,\n Event,\n Outcome,\n Response as SentryResponse,\n SentryRequest,\n SentryRequestType,\n Session,\n Transport,\n TransportOptions,\n} from '@sentry/types';\nimport {\n createClientReportEnvelope,\n disabledUntil,\n dsnToString,\n eventStatusFromHttpCode,\n getGlobalObject,\n isRateLimited,\n logger,\n makePromiseBuffer,\n PromiseBuffer,\n RateLimits,\n serializeEnvelope,\n updateRateLimits,\n} from '@sentry/utils';\n\nimport { IS_DEBUG_BUILD } from '../flags';\nimport { sendReport } from './utils';\n\nfunction requestTypeToCategory(ty: SentryRequestType): string {\n const tyStr = ty as string;\n return tyStr === 'event' ? 'error' : tyStr;\n}\n\nconst global = getGlobalObject();\n\n/** Base Transport class implementation */\nexport abstract class BaseTransport implements Transport {\n /**\n * @deprecated\n */\n public url: string;\n\n /** Helper to get Sentry API endpoints. */\n protected readonly _api: APIDetails;\n\n /** A simple buffer holding all requests. */\n protected readonly _buffer: PromiseBuffer = makePromiseBuffer(30);\n\n /** Locks transport after receiving rate limits in a response */\n protected _rateLimits: RateLimits = {};\n\n protected _outcomes: { [key: string]: number } = {};\n\n public constructor(public options: TransportOptions) {\n this._api = initAPIDetails(options.dsn, options._metadata, options.tunnel);\n // eslint-disable-next-line deprecation/deprecation\n this.url = getStoreEndpointWithUrlEncodedAuth(this._api.dsn);\n\n if (this.options.sendClientReports && global.document) {\n global.document.addEventListener('visibilitychange', () => {\n if (global.document.visibilityState === 'hidden') {\n this._flushOutcomes();\n }\n });\n }\n }\n\n /**\n * @inheritDoc\n */\n public sendEvent(event: Event): PromiseLike {\n return this._sendRequest(eventToSentryRequest(event, this._api), event);\n }\n\n /**\n * @inheritDoc\n */\n public sendSession(session: Session): PromiseLike {\n return this._sendRequest(sessionToSentryRequest(session, this._api), session);\n }\n\n /**\n * @inheritDoc\n */\n public close(timeout?: number): PromiseLike {\n return this._buffer.drain(timeout);\n }\n\n /**\n * @inheritDoc\n */\n public recordLostEvent(reason: Outcome, category: SentryRequestType): void {\n if (!this.options.sendClientReports) {\n return;\n }\n // We want to track each category (event, transaction, session) separately\n // but still keep the distinction between different type of outcomes.\n // We could use nested maps, but it's much easier to read and type this way.\n // A correct type for map-based implementation if we want to go that route\n // would be `Partial>>>`\n const key = `${requestTypeToCategory(category)}:${reason}`;\n IS_DEBUG_BUILD && logger.log(`Adding outcome: ${key}`);\n this._outcomes[key] = (this._outcomes[key] ?? 0) + 1;\n }\n\n /**\n * Send outcomes as an envelope\n */\n protected _flushOutcomes(): void {\n if (!this.options.sendClientReports) {\n return;\n }\n\n const outcomes = this._outcomes;\n this._outcomes = {};\n\n // Nothing to send\n if (!Object.keys(outcomes).length) {\n IS_DEBUG_BUILD && logger.log('No outcomes to flush');\n return;\n }\n\n IS_DEBUG_BUILD && logger.log(`Flushing outcomes:\\n${JSON.stringify(outcomes, null, 2)}`);\n\n const url = getEnvelopeEndpointWithUrlEncodedAuth(this._api.dsn, this._api.tunnel);\n\n const discardedEvents = Object.keys(outcomes).map(key => {\n const [category, reason] = key.split(':');\n return {\n reason,\n category,\n quantity: outcomes[key],\n };\n // TODO: Improve types on discarded_events to get rid of cast\n }) as ClientReport['discarded_events'];\n const envelope = createClientReportEnvelope(discardedEvents, this._api.tunnel && dsnToString(this._api.dsn));\n\n try {\n sendReport(url, serializeEnvelope(envelope));\n } catch (e) {\n IS_DEBUG_BUILD && logger.error(e);\n }\n }\n\n /**\n * Handle Sentry repsonse for promise-based transports.\n */\n protected _handleResponse({\n requestType,\n response,\n headers,\n resolve,\n reject,\n }: {\n requestType: SentryRequestType;\n response: Response | XMLHttpRequest;\n headers: Record;\n resolve: (value?: SentryResponse | PromiseLike | null | undefined) => void;\n reject: (reason?: unknown) => void;\n }): void {\n const status = eventStatusFromHttpCode(response.status);\n\n this._rateLimits = updateRateLimits(this._rateLimits, headers);\n // eslint-disable-next-line deprecation/deprecation\n if (this._isRateLimited(requestType)) {\n IS_DEBUG_BUILD &&\n // eslint-disable-next-line deprecation/deprecation\n logger.warn(`Too many ${requestType} requests, backing off until: ${this._disabledUntil(requestType)}`);\n }\n\n if (status === 'success') {\n resolve({ status });\n return;\n }\n\n reject(response);\n }\n\n /**\n * Gets the time that given category is disabled until for rate limiting\n *\n * @deprecated Please use `disabledUntil` from @sentry/utils\n */\n protected _disabledUntil(requestType: SentryRequestType): Date {\n const category = requestTypeToCategory(requestType);\n return new Date(disabledUntil(this._rateLimits, category));\n }\n\n /**\n * Checks if a category is rate limited\n *\n * @deprecated Please use `isRateLimited` from @sentry/utils\n */\n protected _isRateLimited(requestType: SentryRequestType): boolean {\n const category = requestTypeToCategory(requestType);\n return isRateLimited(this._rateLimits, category);\n }\n\n protected abstract _sendRequest(\n sentryRequest: SentryRequest,\n originalPayload: Event | Session,\n ): PromiseLike;\n}\n","import { ClientReport, ClientReportEnvelope, ClientReportItem } from '@sentry/types';\n\nimport { createEnvelope } from './envelope';\nimport { dateTimestampInSeconds } from './time';\n\n/**\n * Creates client report envelope\n * @param discarded_events An array of discard events\n * @param dsn A DSN that can be set on the header. Optional.\n */\nexport function createClientReportEnvelope(\n discarded_events: ClientReport['discarded_events'],\n dsn?: string,\n timestamp?: number,\n): ClientReportEnvelope {\n const clientReportItem: ClientReportItem = [\n { type: 'client_report' },\n {\n timestamp: timestamp || dateTimestampInSeconds(),\n discarded_events,\n },\n ];\n return createEnvelope(dsn ? { dsn } : {}, [clientReportItem]);\n}\n","import { Event, Response, SentryRequest, Session, TransportOptions } from '@sentry/types';\nimport { SentryError, supportsReferrerPolicy, SyncPromise } from '@sentry/utils';\n\nimport { BaseTransport } from './base';\nimport { FetchImpl, getNativeFetchImplementation } from './utils';\n\n/** `fetch` based transport */\nexport class FetchTransport extends BaseTransport {\n /**\n * Fetch API reference which always points to native browser implementation.\n */\n private _fetch: typeof fetch;\n\n public constructor(options: TransportOptions, fetchImpl: FetchImpl = getNativeFetchImplementation()) {\n super(options);\n this._fetch = fetchImpl;\n }\n\n /**\n * @param sentryRequest Prepared SentryRequest to be delivered\n * @param originalPayload Original payload used to create SentryRequest\n */\n protected _sendRequest(sentryRequest: SentryRequest, originalPayload: Event | Session): PromiseLike {\n // eslint-disable-next-line deprecation/deprecation\n if (this._isRateLimited(sentryRequest.type)) {\n this.recordLostEvent('ratelimit_backoff', sentryRequest.type);\n\n return Promise.reject({\n event: originalPayload,\n type: sentryRequest.type,\n // eslint-disable-next-line deprecation/deprecation\n reason: `Transport for ${sentryRequest.type} requests locked till ${this._disabledUntil(\n sentryRequest.type,\n )} due to too many requests.`,\n status: 429,\n });\n }\n\n const options: RequestInit = {\n body: sentryRequest.body,\n method: 'POST',\n // Despite all stars in the sky saying that Edge supports old draft syntax, aka 'never', 'always', 'origin' and 'default'\n // (see https://caniuse.com/#feat=referrer-policy),\n // it doesn't. And it throws an exception instead of ignoring this parameter...\n // REF: https://github.com/getsentry/raven-js/issues/1233\n referrerPolicy: (supportsReferrerPolicy() ? 'origin' : '') as ReferrerPolicy,\n };\n if (this.options.fetchParameters !== undefined) {\n Object.assign(options, this.options.fetchParameters);\n }\n if (this.options.headers !== undefined) {\n options.headers = this.options.headers;\n }\n\n return this._buffer\n .add(\n () =>\n new SyncPromise((resolve, reject) => {\n void this._fetch(sentryRequest.url, options)\n .then(response => {\n const headers = {\n 'x-sentry-rate-limits': response.headers.get('X-Sentry-Rate-Limits'),\n 'retry-after': response.headers.get('Retry-After'),\n };\n this._handleResponse({\n requestType: sentryRequest.type,\n response,\n headers,\n resolve,\n reject,\n });\n })\n .catch(reject);\n }),\n )\n .then(undefined, reason => {\n // It's either buffer rejection or any other xhr/fetch error, which are treated as NetworkError.\n if (reason instanceof SentryError) {\n this.recordLostEvent('queue_overflow', sentryRequest.type);\n } else {\n this.recordLostEvent('network_error', sentryRequest.type);\n }\n throw reason;\n });\n }\n}\n","import { Event, Response, SentryRequest, Session } from '@sentry/types';\nimport { SentryError, SyncPromise } from '@sentry/utils';\n\nimport { BaseTransport } from './base';\n\n/** `XHR` based transport */\nexport class XHRTransport extends BaseTransport {\n /**\n * @param sentryRequest Prepared SentryRequest to be delivered\n * @param originalPayload Original payload used to create SentryRequest\n */\n protected _sendRequest(sentryRequest: SentryRequest, originalPayload: Event | Session): PromiseLike {\n // eslint-disable-next-line deprecation/deprecation\n if (this._isRateLimited(sentryRequest.type)) {\n this.recordLostEvent('ratelimit_backoff', sentryRequest.type);\n\n return Promise.reject({\n event: originalPayload,\n type: sentryRequest.type,\n // eslint-disable-next-line deprecation/deprecation\n reason: `Transport for ${sentryRequest.type} requests locked till ${this._disabledUntil(\n sentryRequest.type,\n )} due to too many requests.`,\n status: 429,\n });\n }\n\n return this._buffer\n .add(\n () =>\n new SyncPromise((resolve, reject) => {\n const request = new XMLHttpRequest();\n\n request.onreadystatechange = (): void => {\n if (request.readyState === 4) {\n const headers = {\n 'x-sentry-rate-limits': request.getResponseHeader('X-Sentry-Rate-Limits'),\n 'retry-after': request.getResponseHeader('Retry-After'),\n };\n this._handleResponse({ requestType: sentryRequest.type, response: request, headers, resolve, reject });\n }\n };\n\n request.open('POST', sentryRequest.url);\n for (const header in this.options.headers) {\n if (Object.prototype.hasOwnProperty.call(this.options.headers, header)) {\n request.setRequestHeader(header, this.options.headers[header]);\n }\n }\n request.send(sentryRequest.body);\n }),\n )\n .then(undefined, reason => {\n // It's either buffer rejection or any other xhr/fetch error, which are treated as NetworkError.\n if (reason instanceof SentryError) {\n this.recordLostEvent('queue_overflow', sentryRequest.type);\n } else {\n this.recordLostEvent('network_error', sentryRequest.type);\n }\n throw reason;\n });\n }\n}\n","import { BaseBackend, getEnvelopeEndpointWithUrlEncodedAuth, initAPIDetails } from '@sentry/core';\nimport { Event, EventHint, Options, Severity, Transport, TransportOptions } from '@sentry/types';\nimport { supportsFetch } from '@sentry/utils';\n\nimport { eventFromException, eventFromMessage } from './eventbuilder';\nimport { FetchTransport, makeNewFetchTransport, makeNewXHRTransport, XHRTransport } from './transports';\n\n/**\n * Configuration options for the Sentry Browser SDK.\n * @see BrowserClient for more information.\n */\nexport interface BrowserOptions extends Options {\n /**\n * A pattern for error URLs which should exclusively be sent to Sentry.\n * This is the opposite of {@link Options.denyUrls}.\n * By default, all errors will be sent.\n */\n allowUrls?: Array;\n\n /**\n * A pattern for error URLs which should not be sent to Sentry.\n * To allow certain errors instead, use {@link Options.allowUrls}.\n * By default, all errors will be sent.\n */\n denyUrls?: Array;\n\n /** @deprecated use {@link Options.allowUrls} instead. */\n whitelistUrls?: Array;\n\n /** @deprecated use {@link Options.denyUrls} instead. */\n blacklistUrls?: Array;\n}\n\n/**\n * The Sentry Browser SDK Backend.\n * @hidden\n */\nexport class BrowserBackend extends BaseBackend {\n /**\n * @inheritDoc\n */\n public eventFromException(exception: unknown, hint?: EventHint): PromiseLike {\n return eventFromException(exception, hint, this._options.attachStacktrace);\n }\n /**\n * @inheritDoc\n */\n public eventFromMessage(message: string, level: Severity = Severity.Info, hint?: EventHint): PromiseLike {\n return eventFromMessage(message, level, hint, this._options.attachStacktrace);\n }\n\n /**\n * @inheritDoc\n */\n protected _setupTransport(): Transport {\n if (!this._options.dsn) {\n // We return the noop transport here in case there is no Dsn.\n return super._setupTransport();\n }\n\n const transportOptions: TransportOptions = {\n ...this._options.transportOptions,\n dsn: this._options.dsn,\n tunnel: this._options.tunnel,\n sendClientReports: this._options.sendClientReports,\n _metadata: this._options._metadata,\n };\n\n const api = initAPIDetails(transportOptions.dsn, transportOptions._metadata, transportOptions.tunnel);\n const url = getEnvelopeEndpointWithUrlEncodedAuth(api.dsn, api.tunnel);\n\n if (this._options.transport) {\n return new this._options.transport(transportOptions);\n }\n if (supportsFetch()) {\n const requestOptions: RequestInit = { ...transportOptions.fetchParameters };\n this._newTransport = makeNewFetchTransport({ requestOptions, url });\n return new FetchTransport(transportOptions);\n }\n\n this._newTransport = makeNewXHRTransport({\n url,\n headers: transportOptions.headers,\n });\n return new XHRTransport(transportOptions);\n }\n}\n","import {\n BaseTransportOptions,\n createTransport,\n NewTransport,\n TransportMakeRequestResponse,\n TransportRequest,\n} from '@sentry/core';\n\nimport { FetchImpl, getNativeFetchImplementation } from './utils';\n\nexport interface FetchTransportOptions extends BaseTransportOptions {\n requestOptions?: RequestInit;\n}\n\n/**\n * Creates a Transport that uses the Fetch API to send events to Sentry.\n */\nexport function makeNewFetchTransport(\n options: FetchTransportOptions,\n nativeFetch: FetchImpl = getNativeFetchImplementation(),\n): NewTransport {\n function makeRequest(request: TransportRequest): PromiseLike {\n const requestOptions: RequestInit = {\n body: request.body,\n method: 'POST',\n referrerPolicy: 'origin',\n ...options.requestOptions,\n };\n\n return nativeFetch(options.url, requestOptions).then(response => {\n return response.text().then(body => ({\n body,\n headers: {\n 'x-sentry-rate-limits': response.headers.get('X-Sentry-Rate-Limits'),\n 'retry-after': response.headers.get('Retry-After'),\n },\n reason: response.statusText,\n statusCode: response.status,\n }));\n });\n }\n\n return createTransport({ bufferSize: options.bufferSize }, makeRequest);\n}\n","import {\n BaseTransportOptions,\n createTransport,\n NewTransport,\n TransportMakeRequestResponse,\n TransportRequest,\n} from '@sentry/core';\nimport { SyncPromise } from '@sentry/utils';\n\n/**\n * The DONE ready state for XmlHttpRequest\n *\n * Defining it here as a constant b/c XMLHttpRequest.DONE is not always defined\n * (e.g. during testing, it is `undefined`)\n *\n * @see {@link https://developer.mozilla.org/en-US/docs/Web/API/XMLHttpRequest/readyState}\n */\nconst XHR_READYSTATE_DONE = 4;\n\nexport interface XHRTransportOptions extends BaseTransportOptions {\n headers?: { [key: string]: string };\n}\n\n/**\n * Creates a Transport that uses the XMLHttpRequest API to send events to Sentry.\n */\nexport function makeNewXHRTransport(options: XHRTransportOptions): NewTransport {\n function makeRequest(request: TransportRequest): PromiseLike {\n return new SyncPromise((resolve, _reject) => {\n const xhr = new XMLHttpRequest();\n\n xhr.onreadystatechange = (): void => {\n if (xhr.readyState === XHR_READYSTATE_DONE) {\n const response = {\n body: xhr.response,\n headers: {\n 'x-sentry-rate-limits': xhr.getResponseHeader('X-Sentry-Rate-Limits'),\n 'retry-after': xhr.getResponseHeader('Retry-After'),\n },\n reason: xhr.statusText,\n statusCode: xhr.status,\n };\n resolve(response);\n }\n };\n\n xhr.open('POST', options.url);\n\n for (const header in options.headers) {\n if (Object.prototype.hasOwnProperty.call(options.headers, header)) {\n xhr.setRequestHeader(header, options.headers[header]);\n }\n }\n\n xhr.send(request.body);\n });\n }\n\n return createTransport({ bufferSize: options.bufferSize }, makeRequest);\n}\n","import { getCurrentHub, Hub, Scope } from '@sentry/hub';\nimport {\n Breadcrumb,\n CaptureContext,\n CustomSamplingContext,\n Event,\n Extra,\n Extras,\n Primitive,\n Severity,\n Transaction,\n TransactionContext,\n User,\n} from '@sentry/types';\n\n/**\n * This calls a function on the current hub.\n * @param method function to call on hub.\n * @param args to pass to function.\n */\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nfunction callOnHub(method: string, ...args: any[]): T {\n const hub = getCurrentHub();\n if (hub && hub[method as keyof Hub]) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n return (hub[method as keyof Hub] as any)(...args);\n }\n throw new Error(`No hub defined or ${method} was not found on the hub, please open a bug report.`);\n}\n\n/**\n * Captures an exception event and sends it to Sentry.\n *\n * @param exception An exception-like object.\n * @returns The generated eventId.\n */\n// eslint-disable-next-line @typescript-eslint/no-explicit-any, @typescript-eslint/explicit-module-boundary-types\nexport function captureException(exception: any, captureContext?: CaptureContext): string {\n const syntheticException = new Error('Sentry syntheticException');\n\n return callOnHub('captureException', exception, {\n captureContext,\n originalException: exception,\n syntheticException,\n });\n}\n\n/**\n * Captures a message event and sends it to Sentry.\n *\n * @param message The message to send to Sentry.\n * @param Severity Define the level of the message.\n * @returns The generated eventId.\n */\nexport function captureMessage(message: string, captureContext?: CaptureContext | Severity): string {\n const syntheticException = new Error(message);\n\n // This is necessary to provide explicit scopes upgrade, without changing the original\n // arity of the `captureMessage(message, level)` method.\n const level = typeof captureContext === 'string' ? captureContext : undefined;\n const context = typeof captureContext !== 'string' ? { captureContext } : undefined;\n\n return callOnHub('captureMessage', message, level, {\n originalException: message,\n syntheticException,\n ...context,\n });\n}\n\n/**\n * Captures a manually created event and sends it to Sentry.\n *\n * @param event The event to send to Sentry.\n * @returns The generated eventId.\n */\nexport function captureEvent(event: Event): string {\n return callOnHub('captureEvent', event);\n}\n\n/**\n * Callback to set context information onto the scope.\n * @param callback Callback function that receives Scope.\n */\nexport function configureScope(callback: (scope: Scope) => void): void {\n callOnHub('configureScope', callback);\n}\n\n/**\n * Records a new breadcrumb which will be attached to future events.\n *\n * Breadcrumbs will be added to subsequent events to provide more context on\n * user's actions prior to an error or crash.\n *\n * @param breadcrumb The breadcrumb to record.\n */\nexport function addBreadcrumb(breadcrumb: Breadcrumb): void {\n callOnHub('addBreadcrumb', breadcrumb);\n}\n\n/**\n * Sets context data with the given name.\n * @param name of the context\n * @param context Any kind of data. This data will be normalized.\n */\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport function setContext(name: string, context: { [key: string]: any } | null): void {\n callOnHub('setContext', name, context);\n}\n\n/**\n * Set an object that will be merged sent as extra data with the event.\n * @param extras Extras object to merge into current context.\n */\nexport function setExtras(extras: Extras): void {\n callOnHub('setExtras', extras);\n}\n\n/**\n * Set an object that will be merged sent as tags data with the event.\n * @param tags Tags context object to merge into current context.\n */\nexport function setTags(tags: { [key: string]: Primitive }): void {\n callOnHub('setTags', tags);\n}\n\n/**\n * Set key:value that will be sent as extra data with the event.\n * @param key String of extra\n * @param extra Any kind of data. This data will be normalized.\n */\nexport function setExtra(key: string, extra: Extra): void {\n callOnHub('setExtra', key, extra);\n}\n\n/**\n * Set key:value that will be sent as tags data with the event.\n *\n * Can also be used to unset a tag, by passing `undefined`.\n *\n * @param key String key of tag\n * @param value Value of tag\n */\nexport function setTag(key: string, value: Primitive): void {\n callOnHub('setTag', key, value);\n}\n\n/**\n * Updates user context information for future events.\n *\n * @param user User context object to be set in the current context. Pass `null` to unset the user.\n */\nexport function setUser(user: User | null): void {\n callOnHub('setUser', user);\n}\n\n/**\n * Creates a new scope with and executes the given operation within.\n * The scope is automatically removed once the operation\n * finishes or throws.\n *\n * This is essentially a convenience function for:\n *\n * pushScope();\n * callback();\n * popScope();\n *\n * @param callback that will be enclosed into push/popScope.\n */\nexport function withScope(callback: (scope: Scope) => void): void {\n callOnHub('withScope', callback);\n}\n\n/**\n * Calls a function on the latest client. Use this with caution, it's meant as\n * in \"internal\" helper so we don't need to expose every possible function in\n * the shim. It is not guaranteed that the client actually implements the\n * function.\n *\n * @param method The method to call on the client/client.\n * @param args Arguments to pass to the client/fontend.\n * @hidden\n */\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport function _callOnClient(method: string, ...args: any[]): void {\n callOnHub('_invokeClient', method, ...args);\n}\n\n/**\n * Starts a new `Transaction` and returns it. This is the entry point to manual tracing instrumentation.\n *\n * A tree structure can be built by adding child spans to the transaction, and child spans to other spans. To start a\n * new child span within the transaction or any span, call the respective `.startChild()` method.\n *\n * Every child span must be finished before the transaction is finished, otherwise the unfinished spans are discarded.\n *\n * The transaction must be finished with a call to its `.finish()` method, at which point the transaction with all its\n * finished child spans will be sent to Sentry.\n *\n * @param context Properties of the new `Transaction`.\n * @param customSamplingContext Information given to the transaction sampling function (along with context-dependent\n * default values). See {@link Options.tracesSampler}.\n *\n * @returns The transaction which was just started\n */\nexport function startTransaction(\n context: TransactionContext,\n customSamplingContext?: CustomSamplingContext,\n): Transaction {\n return callOnHub('startTransaction', { ...context }, customSamplingContext);\n}\n","import { captureException, getReportDialogEndpoint, withScope } from '@sentry/core';\nimport { DsnLike, Event as SentryEvent, Mechanism, Scope, WrappedFunction } from '@sentry/types';\nimport {\n addExceptionMechanism,\n addExceptionTypeValue,\n addNonEnumerableProperty,\n getGlobalObject,\n getOriginalFunction,\n logger,\n markFunctionWrapped,\n} from '@sentry/utils';\n\nimport { IS_DEBUG_BUILD } from './flags';\n\nconst global = getGlobalObject();\nlet ignoreOnError: number = 0;\n\n/**\n * @hidden\n */\nexport function shouldIgnoreOnError(): boolean {\n return ignoreOnError > 0;\n}\n\n/**\n * @hidden\n */\nexport function ignoreNextOnError(): void {\n // onerror should trigger before setTimeout\n ignoreOnError += 1;\n setTimeout(() => {\n ignoreOnError -= 1;\n });\n}\n\n/**\n * Instruments the given function and sends an event to Sentry every time the\n * function throws an exception.\n *\n * @param fn A function to wrap.\n * @returns The wrapped function.\n * @hidden\n */\nexport function wrap(\n fn: WrappedFunction,\n options: {\n mechanism?: Mechanism;\n } = {},\n before?: WrappedFunction,\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n): any {\n // for future readers what this does is wrap a function and then create\n // a bi-directional wrapping between them.\n //\n // example: wrapped = wrap(original);\n // original.__sentry_wrapped__ -> wrapped\n // wrapped.__sentry_original__ -> original\n\n if (typeof fn !== 'function') {\n return fn;\n }\n\n try {\n // if we're dealing with a function that was previously wrapped, return\n // the original wrapper.\n const wrapper = fn.__sentry_wrapped__;\n if (wrapper) {\n return wrapper;\n }\n\n // We don't wanna wrap it twice\n if (getOriginalFunction(fn)) {\n return fn;\n }\n } catch (e) {\n // Just accessing custom props in some Selenium environments\n // can cause a \"Permission denied\" exception (see raven-js#495).\n // Bail on wrapping and return the function as-is (defers to window.onerror).\n return fn;\n }\n\n /* eslint-disable prefer-rest-params */\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const sentryWrapped: WrappedFunction = function (this: any): void {\n const args = Array.prototype.slice.call(arguments);\n\n try {\n if (before && typeof before === 'function') {\n before.apply(this, arguments);\n }\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any, @typescript-eslint/no-unsafe-member-access\n const wrappedArguments = args.map((arg: any) => wrap(arg, options));\n\n // Attempt to invoke user-land function\n // NOTE: If you are a Sentry user, and you are seeing this stack frame, it\n // means the sentry.javascript SDK caught an error invoking your application code. This\n // is expected behavior and NOT indicative of a bug with sentry.javascript.\n return fn.apply(this, wrappedArguments);\n } catch (ex) {\n ignoreNextOnError();\n\n withScope((scope: Scope) => {\n scope.addEventProcessor((event: SentryEvent) => {\n if (options.mechanism) {\n addExceptionTypeValue(event, undefined, undefined);\n addExceptionMechanism(event, options.mechanism);\n }\n\n event.extra = {\n ...event.extra,\n arguments: args,\n };\n\n return event;\n });\n\n captureException(ex);\n });\n\n throw ex;\n }\n };\n /* eslint-enable prefer-rest-params */\n\n // Accessing some objects may throw\n // ref: https://github.com/getsentry/sentry-javascript/issues/1168\n try {\n for (const property in fn) {\n if (Object.prototype.hasOwnProperty.call(fn, property)) {\n sentryWrapped[property] = fn[property];\n }\n }\n } catch (_oO) {} // eslint-disable-line no-empty\n\n // Signal that this function has been wrapped/filled already\n // for both debugging and to prevent it to being wrapped/filled twice\n markFunctionWrapped(sentryWrapped, fn);\n\n addNonEnumerableProperty(fn, '__sentry_wrapped__', sentryWrapped);\n\n // Restore original function name (not all browsers allow that)\n try {\n const descriptor = Object.getOwnPropertyDescriptor(sentryWrapped, 'name') as PropertyDescriptor;\n if (descriptor.configurable) {\n Object.defineProperty(sentryWrapped, 'name', {\n get(): string {\n return fn.name;\n },\n });\n }\n // eslint-disable-next-line no-empty\n } catch (_oO) {}\n\n return sentryWrapped;\n}\n\n/**\n * All properties the report dialog supports\n */\nexport interface ReportDialogOptions {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n [key: string]: any;\n eventId?: string;\n dsn?: DsnLike;\n user?: {\n email?: string;\n name?: string;\n };\n lang?: string;\n title?: string;\n subtitle?: string;\n subtitle2?: string;\n labelName?: string;\n labelEmail?: string;\n labelComments?: string;\n labelClose?: string;\n labelSubmit?: string;\n errorGeneric?: string;\n errorFormEntry?: string;\n successMessage?: string;\n /** Callback after reportDialog showed up */\n onLoad?(): void;\n}\n\n/**\n * Injects the Report Dialog script\n * @hidden\n */\nexport function injectReportDialog(options: ReportDialogOptions = {}): void {\n if (!global.document) {\n return;\n }\n\n if (!options.eventId) {\n IS_DEBUG_BUILD && logger.error('Missing eventId option in showReportDialog call');\n return;\n }\n\n if (!options.dsn) {\n IS_DEBUG_BUILD && logger.error('Missing dsn option in showReportDialog call');\n return;\n }\n\n const script = global.document.createElement('script');\n script.async = true;\n script.src = getReportDialogEndpoint(options.dsn, options);\n\n if (options.onLoad) {\n // eslint-disable-next-line @typescript-eslint/unbound-method\n script.onload = options.onLoad;\n }\n\n const injectionPoint = global.document.head || global.document.body;\n\n if (injectionPoint) {\n injectionPoint.appendChild(script);\n }\n}\n","export const SeverityLevels = ['fatal', 'error', 'warning', 'log', 'info', 'debug', 'critical'] as const;\nexport type SeverityLevel = typeof SeverityLevels[number];\n","import { Severity } from '@sentry/types';\n\nimport { SeverityLevel, SeverityLevels } from './enums';\n\nfunction isSupportedSeverity(level: string): level is Severity {\n return SeverityLevels.indexOf(level as SeverityLevel) !== -1;\n}\n/**\n * Converts a string-based level into a {@link Severity}.\n *\n * @param level string representation of Severity\n * @returns Severity\n */\nexport function severityFromString(level: SeverityLevel | string): Severity {\n if (level === 'warn') return Severity.Warning;\n if (isSupportedSeverity(level)) {\n return level;\n }\n return Severity.Log;\n}\n","/* eslint-disable @typescript-eslint/no-unsafe-member-access */\n/* eslint-disable max-lines */\nimport { getCurrentHub } from '@sentry/core';\nimport { Event, Integration, Severity } from '@sentry/types';\nimport {\n addInstrumentationHandler,\n getEventDescription,\n getGlobalObject,\n htmlTreeAsString,\n parseUrl,\n safeJoin,\n severityFromString,\n} from '@sentry/utils';\n\n/** JSDoc */\ninterface BreadcrumbsOptions {\n console: boolean;\n dom: boolean | { serializeAttribute: string | string[] };\n fetch: boolean;\n history: boolean;\n sentry: boolean;\n xhr: boolean;\n}\n\n/**\n * Default Breadcrumbs instrumentations\n * TODO: Deprecated - with v6, this will be renamed to `Instrument`\n */\nexport class Breadcrumbs implements Integration {\n /**\n * @inheritDoc\n */\n public static id: string = 'Breadcrumbs';\n\n /**\n * @inheritDoc\n */\n public name: string = Breadcrumbs.id;\n\n /** JSDoc */\n private readonly _options: BreadcrumbsOptions;\n\n /**\n * @inheritDoc\n */\n public constructor(options?: Partial) {\n this._options = {\n console: true,\n dom: true,\n fetch: true,\n history: true,\n sentry: true,\n xhr: true,\n ...options,\n };\n }\n\n /**\n * Create a breadcrumb of `sentry` from the events themselves\n */\n public addSentryBreadcrumb(event: Event): void {\n if (!this._options.sentry) {\n return;\n }\n getCurrentHub().addBreadcrumb(\n {\n category: `sentry.${event.type === 'transaction' ? 'transaction' : 'event'}`,\n event_id: event.event_id,\n level: event.level,\n message: getEventDescription(event),\n },\n {\n event,\n },\n );\n }\n\n /**\n * Instrument browser built-ins w/ breadcrumb capturing\n * - Console API\n * - DOM API (click/typing)\n * - XMLHttpRequest API\n * - Fetch API\n * - History API\n */\n public setupOnce(): void {\n if (this._options.console) {\n addInstrumentationHandler('console', _consoleBreadcrumb);\n }\n if (this._options.dom) {\n addInstrumentationHandler('dom', _domBreadcrumb(this._options.dom));\n }\n if (this._options.xhr) {\n addInstrumentationHandler('xhr', _xhrBreadcrumb);\n }\n if (this._options.fetch) {\n addInstrumentationHandler('fetch', _fetchBreadcrumb);\n }\n if (this._options.history) {\n addInstrumentationHandler('history', _historyBreadcrumb);\n }\n }\n}\n\n/**\n * A HOC that creaes a function that creates breadcrumbs from DOM API calls.\n * This is a HOC so that we get access to dom options in the closure.\n */\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nfunction _domBreadcrumb(dom: BreadcrumbsOptions['dom']): (handlerData: { [key: string]: any }) => void {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n function _innerDomBreadcrumb(handlerData: { [key: string]: any }): void {\n let target;\n let keyAttrs = typeof dom === 'object' ? dom.serializeAttribute : undefined;\n\n if (typeof keyAttrs === 'string') {\n keyAttrs = [keyAttrs];\n }\n\n // Accessing event.target can throw (see getsentry/raven-js#838, #768)\n try {\n target = handlerData.event.target\n ? htmlTreeAsString(handlerData.event.target as Node, keyAttrs)\n : htmlTreeAsString(handlerData.event as unknown as Node, keyAttrs);\n } catch (e) {\n target = '';\n }\n\n if (target.length === 0) {\n return;\n }\n\n getCurrentHub().addBreadcrumb(\n {\n category: `ui.${handlerData.name}`,\n message: target,\n },\n {\n event: handlerData.event,\n name: handlerData.name,\n global: handlerData.global,\n },\n );\n }\n\n return _innerDomBreadcrumb;\n}\n\n/**\n * Creates breadcrumbs from console API calls\n */\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nfunction _consoleBreadcrumb(handlerData: { [key: string]: any }): void {\n const breadcrumb = {\n category: 'console',\n data: {\n arguments: handlerData.args,\n logger: 'console',\n },\n level: severityFromString(handlerData.level),\n message: safeJoin(handlerData.args, ' '),\n };\n\n if (handlerData.level === 'assert') {\n if (handlerData.args[0] === false) {\n breadcrumb.message = `Assertion failed: ${safeJoin(handlerData.args.slice(1), ' ') || 'console.assert'}`;\n breadcrumb.data.arguments = handlerData.args.slice(1);\n } else {\n // Don't capture a breadcrumb for passed assertions\n return;\n }\n }\n\n getCurrentHub().addBreadcrumb(breadcrumb, {\n input: handlerData.args,\n level: handlerData.level,\n });\n}\n\n/**\n * Creates breadcrumbs from XHR API calls\n */\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nfunction _xhrBreadcrumb(handlerData: { [key: string]: any }): void {\n if (handlerData.endTimestamp) {\n // We only capture complete, non-sentry requests\n if (handlerData.xhr.__sentry_own_request__) {\n return;\n }\n\n const { method, url, status_code, body } = handlerData.xhr.__sentry_xhr__ || {};\n\n getCurrentHub().addBreadcrumb(\n {\n category: 'xhr',\n data: {\n method,\n url,\n status_code,\n },\n type: 'http',\n },\n {\n xhr: handlerData.xhr,\n input: body,\n },\n );\n\n return;\n }\n}\n\n/**\n * Creates breadcrumbs from fetch API calls\n */\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nfunction _fetchBreadcrumb(handlerData: { [key: string]: any }): void {\n // We only capture complete fetch requests\n if (!handlerData.endTimestamp) {\n return;\n }\n\n if (handlerData.fetchData.url.match(/sentry_key/) && handlerData.fetchData.method === 'POST') {\n // We will not create breadcrumbs for fetch requests that contain `sentry_key` (internal sentry requests)\n return;\n }\n\n if (handlerData.error) {\n getCurrentHub().addBreadcrumb(\n {\n category: 'fetch',\n data: handlerData.fetchData,\n level: Severity.Error,\n type: 'http',\n },\n {\n data: handlerData.error,\n input: handlerData.args,\n },\n );\n } else {\n getCurrentHub().addBreadcrumb(\n {\n category: 'fetch',\n data: {\n ...handlerData.fetchData,\n status_code: handlerData.response.status,\n },\n type: 'http',\n },\n {\n input: handlerData.args,\n response: handlerData.response,\n },\n );\n }\n}\n\n/**\n * Creates breadcrumbs from history API calls\n */\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nfunction _historyBreadcrumb(handlerData: { [key: string]: any }): void {\n const global = getGlobalObject();\n let from = handlerData.from;\n let to = handlerData.to;\n const parsedLoc = parseUrl(global.location.href);\n let parsedFrom = parseUrl(from);\n const parsedTo = parseUrl(to);\n\n // Initial pushState doesn't provide `from` information\n if (!parsedFrom.path) {\n parsedFrom = parsedLoc;\n }\n\n // Use only the path component of the URL if the URL matches the current\n // document (almost all the time when using pushState)\n if (parsedLoc.protocol === parsedTo.protocol && parsedLoc.host === parsedTo.host) {\n to = parsedTo.relative;\n }\n if (parsedLoc.protocol === parsedFrom.protocol && parsedLoc.host === parsedFrom.host) {\n from = parsedFrom.relative;\n }\n\n getCurrentHub().addBreadcrumb({\n category: 'navigation',\n data: {\n from,\n to,\n },\n });\n}\n","import { BaseClient, Scope, SDK_VERSION } from '@sentry/core';\nimport { Event, EventHint } from '@sentry/types';\nimport { getGlobalObject, logger } from '@sentry/utils';\n\nimport { BrowserBackend, BrowserOptions } from './backend';\nimport { IS_DEBUG_BUILD } from './flags';\nimport { injectReportDialog, ReportDialogOptions } from './helpers';\nimport { Breadcrumbs } from './integrations';\n\n/**\n * The Sentry Browser SDK Client.\n *\n * @see BrowserOptions for documentation on configuration options.\n * @see SentryClient for usage documentation.\n */\nexport class BrowserClient extends BaseClient {\n /**\n * Creates a new Browser SDK instance.\n *\n * @param options Configuration options for this SDK.\n */\n public constructor(options: BrowserOptions = {}) {\n options._metadata = options._metadata || {};\n options._metadata.sdk = options._metadata.sdk || {\n name: 'sentry.javascript.browser',\n packages: [\n {\n name: 'npm:@sentry/browser',\n version: SDK_VERSION,\n },\n ],\n version: SDK_VERSION,\n };\n\n super(BrowserBackend, options);\n }\n\n /**\n * Show a report dialog to the user to send feedback to a specific event.\n *\n * @param options Set individual options for the dialog\n */\n public showReportDialog(options: ReportDialogOptions = {}): void {\n // doesn't work without a document (React Native)\n const document = getGlobalObject().document;\n if (!document) {\n return;\n }\n\n if (!this._isEnabled()) {\n IS_DEBUG_BUILD && logger.error('Trying to call showReportDialog with Sentry Client disabled');\n return;\n }\n\n injectReportDialog({\n ...options,\n dsn: options.dsn || this.getDsn(),\n });\n }\n\n /**\n * @inheritDoc\n */\n protected _prepareEvent(event: Event, scope?: Scope, hint?: EventHint): PromiseLike {\n event.platform = event.platform || 'javascript';\n return super._prepareEvent(event, scope, hint);\n }\n\n /**\n * @inheritDoc\n */\n protected _sendEvent(event: Event): void {\n const integration = this.getIntegration(Breadcrumbs);\n if (integration) {\n integration.addSentryBreadcrumb(event);\n }\n super._sendEvent(event);\n }\n}\n","import { Integration, WrappedFunction } from '@sentry/types';\nimport { fill, getFunctionName, getGlobalObject, getOriginalFunction } from '@sentry/utils';\n\nimport { wrap } from '../helpers';\n\nconst DEFAULT_EVENT_TARGET = [\n 'EventTarget',\n 'Window',\n 'Node',\n 'ApplicationCache',\n 'AudioTrackList',\n 'ChannelMergerNode',\n 'CryptoOperation',\n 'EventSource',\n 'FileReader',\n 'HTMLUnknownElement',\n 'IDBDatabase',\n 'IDBRequest',\n 'IDBTransaction',\n 'KeyOperation',\n 'MediaController',\n 'MessagePort',\n 'ModalWindow',\n 'Notification',\n 'SVGElementInstance',\n 'Screen',\n 'TextTrack',\n 'TextTrackCue',\n 'TextTrackList',\n 'WebSocket',\n 'WebSocketWorker',\n 'Worker',\n 'XMLHttpRequest',\n 'XMLHttpRequestEventTarget',\n 'XMLHttpRequestUpload',\n];\n\ntype XMLHttpRequestProp = 'onload' | 'onerror' | 'onprogress' | 'onreadystatechange';\n\n/** JSDoc */\ninterface TryCatchOptions {\n setTimeout: boolean;\n setInterval: boolean;\n requestAnimationFrame: boolean;\n XMLHttpRequest: boolean;\n eventTarget: boolean | string[];\n}\n\n/** Wrap timer functions and event targets to catch errors and provide better meta data */\nexport class TryCatch implements Integration {\n /**\n * @inheritDoc\n */\n public static id: string = 'TryCatch';\n\n /**\n * @inheritDoc\n */\n public name: string = TryCatch.id;\n\n /** JSDoc */\n private readonly _options: TryCatchOptions;\n\n /**\n * @inheritDoc\n */\n public constructor(options?: Partial) {\n this._options = {\n XMLHttpRequest: true,\n eventTarget: true,\n requestAnimationFrame: true,\n setInterval: true,\n setTimeout: true,\n ...options,\n };\n }\n\n /**\n * Wrap timer functions and event targets to catch errors\n * and provide better metadata.\n */\n public setupOnce(): void {\n const global = getGlobalObject();\n\n if (this._options.setTimeout) {\n fill(global, 'setTimeout', _wrapTimeFunction);\n }\n\n if (this._options.setInterval) {\n fill(global, 'setInterval', _wrapTimeFunction);\n }\n\n if (this._options.requestAnimationFrame) {\n fill(global, 'requestAnimationFrame', _wrapRAF);\n }\n\n if (this._options.XMLHttpRequest && 'XMLHttpRequest' in global) {\n fill(XMLHttpRequest.prototype, 'send', _wrapXHR);\n }\n\n const eventTargetOption = this._options.eventTarget;\n if (eventTargetOption) {\n const eventTarget = Array.isArray(eventTargetOption) ? eventTargetOption : DEFAULT_EVENT_TARGET;\n eventTarget.forEach(_wrapEventTarget);\n }\n }\n}\n\n/** JSDoc */\nfunction _wrapTimeFunction(original: () => void): () => number {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n return function (this: any, ...args: any[]): number {\n const originalCallback = args[0];\n args[0] = wrap(originalCallback, {\n mechanism: {\n data: { function: getFunctionName(original) },\n handled: true,\n type: 'instrument',\n },\n });\n return original.apply(this, args);\n };\n}\n\n/** JSDoc */\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nfunction _wrapRAF(original: any): (callback: () => void) => any {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n return function (this: any, callback: () => void): () => void {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n return original.apply(this, [\n wrap(callback, {\n mechanism: {\n data: {\n function: 'requestAnimationFrame',\n handler: getFunctionName(original),\n },\n handled: true,\n type: 'instrument',\n },\n }),\n ]);\n };\n}\n\n/** JSDoc */\nfunction _wrapXHR(originalSend: () => void): () => void {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n return function (this: XMLHttpRequest, ...args: any[]): void {\n // eslint-disable-next-line @typescript-eslint/no-this-alias\n const xhr = this;\n const xmlHttpRequestProps: XMLHttpRequestProp[] = ['onload', 'onerror', 'onprogress', 'onreadystatechange'];\n\n xmlHttpRequestProps.forEach(prop => {\n if (prop in xhr && typeof xhr[prop] === 'function') {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n fill(xhr, prop, function (original: WrappedFunction): () => any {\n const wrapOptions = {\n mechanism: {\n data: {\n function: prop,\n handler: getFunctionName(original),\n },\n handled: true,\n type: 'instrument',\n },\n };\n\n // If Instrument integration has been called before TryCatch, get the name of original function\n const originalFunction = getOriginalFunction(original);\n if (originalFunction) {\n wrapOptions.mechanism.data.handler = getFunctionName(originalFunction);\n }\n\n // Otherwise wrap directly\n return wrap(original, wrapOptions);\n });\n }\n });\n\n return originalSend.apply(this, args);\n };\n}\n\n/** JSDoc */\nfunction _wrapEventTarget(target: string): void {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const global = getGlobalObject() as { [key: string]: any };\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n const proto = global[target] && global[target].prototype;\n\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access, no-prototype-builtins\n if (!proto || !proto.hasOwnProperty || !proto.hasOwnProperty('addEventListener')) {\n return;\n }\n\n fill(proto, 'addEventListener', function (original: () => void): (\n eventName: string,\n fn: EventListenerObject,\n options?: boolean | AddEventListenerOptions,\n ) => void {\n return function (\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n this: any,\n eventName: string,\n fn: EventListenerObject,\n options?: boolean | AddEventListenerOptions,\n ): (eventName: string, fn: EventListenerObject, capture?: boolean, secure?: boolean) => void {\n try {\n if (typeof fn.handleEvent === 'function') {\n fn.handleEvent = wrap(fn.handleEvent.bind(fn), {\n mechanism: {\n data: {\n function: 'handleEvent',\n handler: getFunctionName(fn),\n target,\n },\n handled: true,\n type: 'instrument',\n },\n });\n }\n } catch (err) {\n // can sometimes get 'Permission denied to access property \"handle Event'\n }\n\n return original.apply(this, [\n eventName,\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n wrap(fn as any as WrappedFunction, {\n mechanism: {\n data: {\n function: 'addEventListener',\n handler: getFunctionName(fn),\n target,\n },\n handled: true,\n type: 'instrument',\n },\n }),\n options,\n ]);\n };\n });\n\n fill(\n proto,\n 'removeEventListener',\n function (\n originalRemoveEventListener: () => void,\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n ): (this: any, eventName: string, fn: EventListenerObject, options?: boolean | EventListenerOptions) => () => void {\n return function (\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n this: any,\n eventName: string,\n fn: EventListenerObject,\n options?: boolean | EventListenerOptions,\n ): () => void {\n /**\n * There are 2 possible scenarios here:\n *\n * 1. Someone passes a callback, which was attached prior to Sentry initialization, or by using unmodified\n * method, eg. `document.addEventListener.call(el, name, handler). In this case, we treat this function\n * as a pass-through, and call original `removeEventListener` with it.\n *\n * 2. Someone passes a callback, which was attached after Sentry was initialized, which means that it was using\n * our wrapped version of `addEventListener`, which internally calls `wrap` helper.\n * This helper \"wraps\" whole callback inside a try/catch statement, and attached appropriate metadata to it,\n * in order for us to make a distinction between wrapped/non-wrapped functions possible.\n * If a function was wrapped, it has additional property of `__sentry_wrapped__`, holding the handler.\n *\n * When someone adds a handler prior to initialization, and then do it again, but after,\n * then we have to detach both of them. Otherwise, if we'd detach only wrapped one, it'd be impossible\n * to get rid of the initial handler and it'd stick there forever.\n */\n const wrappedEventHandler = fn as unknown as WrappedFunction;\n try {\n const originalEventHandler = wrappedEventHandler && wrappedEventHandler.__sentry_wrapped__;\n if (originalEventHandler) {\n originalRemoveEventListener.call(this, eventName, originalEventHandler, options);\n }\n } catch (e) {\n // ignore, accessing __sentry_wrapped__ will throw in some Selenium environments\n }\n return originalRemoveEventListener.call(this, eventName, wrappedEventHandler, options);\n };\n },\n );\n}\n","/* eslint-disable @typescript-eslint/no-unsafe-member-access */\nimport { getCurrentHub } from '@sentry/core';\nimport { Event, EventHint, Hub, Integration, Primitive, Severity } from '@sentry/types';\nimport {\n addExceptionMechanism,\n addInstrumentationHandler,\n getLocationHref,\n isErrorEvent,\n isPrimitive,\n isString,\n logger,\n} from '@sentry/utils';\n\nimport { eventFromUnknownInput } from '../eventbuilder';\nimport { IS_DEBUG_BUILD } from '../flags';\nimport { shouldIgnoreOnError } from '../helpers';\n\ntype GlobalHandlersIntegrationsOptionKeys = 'onerror' | 'onunhandledrejection';\n\n/** JSDoc */\ntype GlobalHandlersIntegrations = Record;\n\n/** Global handlers */\nexport class GlobalHandlers implements Integration {\n /**\n * @inheritDoc\n */\n public static id: string = 'GlobalHandlers';\n\n /**\n * @inheritDoc\n */\n public name: string = GlobalHandlers.id;\n\n /** JSDoc */\n private readonly _options: GlobalHandlersIntegrations;\n\n /**\n * Stores references functions to installing handlers. Will set to undefined\n * after they have been run so that they are not used twice.\n */\n private _installFunc: Record void) | undefined> = {\n onerror: _installGlobalOnErrorHandler,\n onunhandledrejection: _installGlobalOnUnhandledRejectionHandler,\n };\n\n /** JSDoc */\n public constructor(options?: GlobalHandlersIntegrations) {\n this._options = {\n onerror: true,\n onunhandledrejection: true,\n ...options,\n };\n }\n /**\n * @inheritDoc\n */\n public setupOnce(): void {\n Error.stackTraceLimit = 50;\n const options = this._options;\n\n // We can disable guard-for-in as we construct the options object above + do checks against\n // `this._installFunc` for the property.\n // eslint-disable-next-line guard-for-in\n for (const key in options) {\n const installFunc = this._installFunc[key as GlobalHandlersIntegrationsOptionKeys];\n if (installFunc && options[key as GlobalHandlersIntegrationsOptionKeys]) {\n globalHandlerLog(key);\n installFunc();\n this._installFunc[key as GlobalHandlersIntegrationsOptionKeys] = undefined;\n }\n }\n }\n}\n\n/** JSDoc */\nfunction _installGlobalOnErrorHandler(): void {\n addInstrumentationHandler(\n 'error',\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n (data: { msg: any; url: any; line: any; column: any; error: any }) => {\n const [hub, attachStacktrace] = getHubAndAttachStacktrace();\n if (!hub.getIntegration(GlobalHandlers)) {\n return;\n }\n const { msg, url, line, column, error } = data;\n if (shouldIgnoreOnError() || (error && error.__sentry_own_request__)) {\n return;\n }\n\n const event =\n error === undefined && isString(msg)\n ? _eventFromIncompleteOnError(msg, url, line, column)\n : _enhanceEventWithInitialFrame(\n eventFromUnknownInput(error || msg, undefined, attachStacktrace, false),\n url,\n line,\n column,\n );\n\n event.level = Severity.Error;\n\n addMechanismAndCapture(hub, error, event, 'onerror');\n },\n );\n}\n\n/** JSDoc */\nfunction _installGlobalOnUnhandledRejectionHandler(): void {\n addInstrumentationHandler(\n 'unhandledrejection',\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n (e: any) => {\n const [hub, attachStacktrace] = getHubAndAttachStacktrace();\n if (!hub.getIntegration(GlobalHandlers)) {\n return;\n }\n let error = e;\n\n // dig the object of the rejection out of known event types\n try {\n // PromiseRejectionEvents store the object of the rejection under 'reason'\n // see https://developer.mozilla.org/en-US/docs/Web/API/PromiseRejectionEvent\n if ('reason' in e) {\n error = e.reason;\n }\n // something, somewhere, (likely a browser extension) effectively casts PromiseRejectionEvents\n // to CustomEvents, moving the `promise` and `reason` attributes of the PRE into\n // the CustomEvent's `detail` attribute, since they're not part of CustomEvent's spec\n // see https://developer.mozilla.org/en-US/docs/Web/API/CustomEvent and\n // https://github.com/getsentry/sentry-javascript/issues/2380\n else if ('detail' in e && 'reason' in e.detail) {\n error = e.detail.reason;\n }\n } catch (_oO) {\n // no-empty\n }\n\n if (shouldIgnoreOnError() || (error && error.__sentry_own_request__)) {\n return true;\n }\n\n const event = isPrimitive(error)\n ? _eventFromRejectionWithPrimitive(error)\n : eventFromUnknownInput(error, undefined, attachStacktrace, true);\n\n event.level = Severity.Error;\n\n addMechanismAndCapture(hub, error, event, 'onunhandledrejection');\n return;\n },\n );\n}\n\n/**\n * Create an event from a promise rejection where the `reason` is a primitive.\n *\n * @param reason: The `reason` property of the promise rejection\n * @returns An Event object with an appropriate `exception` value\n */\nfunction _eventFromRejectionWithPrimitive(reason: Primitive): Event {\n return {\n exception: {\n values: [\n {\n type: 'UnhandledRejection',\n // String() is needed because the Primitive type includes symbols (which can't be automatically stringified)\n value: `Non-Error promise rejection captured with value: ${String(reason)}`,\n },\n ],\n },\n };\n}\n\n/**\n * This function creates a stack from an old, error-less onerror handler.\n */\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nfunction _eventFromIncompleteOnError(msg: any, url: any, line: any, column: any): Event {\n const ERROR_TYPES_RE =\n /^(?:[Uu]ncaught (?:exception: )?)?(?:((?:Eval|Internal|Range|Reference|Syntax|Type|URI|)Error): )?(.*)$/i;\n\n // If 'message' is ErrorEvent, get real message from inside\n let message = isErrorEvent(msg) ? msg.message : msg;\n let name = 'Error';\n\n const groups = message.match(ERROR_TYPES_RE);\n if (groups) {\n name = groups[1];\n message = groups[2];\n }\n\n const event = {\n exception: {\n values: [\n {\n type: name,\n value: message,\n },\n ],\n },\n };\n\n return _enhanceEventWithInitialFrame(event, url, line, column);\n}\n\n/** JSDoc */\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nfunction _enhanceEventWithInitialFrame(event: Event, url: any, line: any, column: any): Event {\n // event.exception\n const e = (event.exception = event.exception || {});\n // event.exception.values\n const ev = (e.values = e.values || []);\n // event.exception.values[0]\n const ev0 = (ev[0] = ev[0] || {});\n // event.exception.values[0].stacktrace\n const ev0s = (ev0.stacktrace = ev0.stacktrace || {});\n // event.exception.values[0].stacktrace.frames\n const ev0sf = (ev0s.frames = ev0s.frames || []);\n\n const colno = isNaN(parseInt(column, 10)) ? undefined : column;\n const lineno = isNaN(parseInt(line, 10)) ? undefined : line;\n const filename = isString(url) && url.length > 0 ? url : getLocationHref();\n\n // event.exception.values[0].stacktrace.frames\n if (ev0sf.length === 0) {\n ev0sf.push({\n colno,\n filename,\n function: '?',\n in_app: true,\n lineno,\n });\n }\n\n return event;\n}\n\nfunction globalHandlerLog(type: string): void {\n IS_DEBUG_BUILD && logger.log(`Global Handler attached: ${type}`);\n}\n\nfunction addMechanismAndCapture(hub: Hub, error: EventHint['originalException'], event: Event, type: string): void {\n addExceptionMechanism(event, {\n handled: false,\n type,\n });\n hub.captureEvent(event, {\n originalException: error,\n });\n}\n\nfunction getHubAndAttachStacktrace(): [Hub, boolean | undefined] {\n const hub = getCurrentHub();\n const client = hub.getClient();\n const attachStacktrace = client && client.getOptions().attachStacktrace;\n return [hub, attachStacktrace];\n}\n","import { addGlobalEventProcessor, getCurrentHub } from '@sentry/core';\nimport { Event, EventHint, Exception, ExtendedError, Integration } from '@sentry/types';\nimport { isInstanceOf } from '@sentry/utils';\n\nimport { exceptionFromError } from '../eventbuilder';\n\nconst DEFAULT_KEY = 'cause';\nconst DEFAULT_LIMIT = 5;\n\ninterface LinkedErrorsOptions {\n key: string;\n limit: number;\n}\n\n/** Adds SDK info to an event. */\nexport class LinkedErrors implements Integration {\n /**\n * @inheritDoc\n */\n public static id: string = 'LinkedErrors';\n\n /**\n * @inheritDoc\n */\n public readonly name: string = LinkedErrors.id;\n\n /**\n * @inheritDoc\n */\n private readonly _key: LinkedErrorsOptions['key'];\n\n /**\n * @inheritDoc\n */\n private readonly _limit: LinkedErrorsOptions['limit'];\n\n /**\n * @inheritDoc\n */\n public constructor(options: Partial = {}) {\n this._key = options.key || DEFAULT_KEY;\n this._limit = options.limit || DEFAULT_LIMIT;\n }\n\n /**\n * @inheritDoc\n */\n public setupOnce(): void {\n addGlobalEventProcessor((event: Event, hint?: EventHint) => {\n const self = getCurrentHub().getIntegration(LinkedErrors);\n return self ? _handler(self._key, self._limit, event, hint) : event;\n });\n }\n}\n\n/**\n * @inheritDoc\n */\nexport function _handler(key: string, limit: number, event: Event, hint?: EventHint): Event | null {\n if (!event.exception || !event.exception.values || !hint || !isInstanceOf(hint.originalException, Error)) {\n return event;\n }\n const linkedErrors = _walkErrorTree(limit, hint.originalException as ExtendedError, key);\n event.exception.values = [...linkedErrors, ...event.exception.values];\n return event;\n}\n\n/**\n * JSDOC\n */\nexport function _walkErrorTree(limit: number, error: ExtendedError, key: string, stack: Exception[] = []): Exception[] {\n if (!isInstanceOf(error[key], Error) || stack.length + 1 >= limit) {\n return stack;\n }\n const exception = exceptionFromError(error[key]);\n return _walkErrorTree(limit, error[key], key, [exception, ...stack]);\n}\n","import { Event, EventProcessor, Exception, Hub, Integration, StackFrame } from '@sentry/types';\nimport { logger } from '@sentry/utils';\n\nimport { IS_DEBUG_BUILD } from '../flags';\n\n/** Deduplication filter */\nexport class Dedupe implements Integration {\n /**\n * @inheritDoc\n */\n public static id: string = 'Dedupe';\n\n /**\n * @inheritDoc\n */\n public name: string = Dedupe.id;\n\n /**\n * @inheritDoc\n */\n private _previousEvent?: Event;\n\n /**\n * @inheritDoc\n */\n public setupOnce(addGlobalEventProcessor: (callback: EventProcessor) => void, getCurrentHub: () => Hub): void {\n addGlobalEventProcessor((currentEvent: Event) => {\n const self = getCurrentHub().getIntegration(Dedupe);\n if (self) {\n // Juuust in case something goes wrong\n try {\n if (_shouldDropEvent(currentEvent, self._previousEvent)) {\n IS_DEBUG_BUILD && logger.warn('Event dropped due to being a duplicate of previously captured event.');\n return null;\n }\n } catch (_oO) {\n return (self._previousEvent = currentEvent);\n }\n\n return (self._previousEvent = currentEvent);\n }\n return currentEvent;\n });\n }\n}\n\n/** JSDoc */\nfunction _shouldDropEvent(currentEvent: Event, previousEvent?: Event): boolean {\n if (!previousEvent) {\n return false;\n }\n\n if (_isSameMessageEvent(currentEvent, previousEvent)) {\n return true;\n }\n\n if (_isSameExceptionEvent(currentEvent, previousEvent)) {\n return true;\n }\n\n return false;\n}\n\n/** JSDoc */\nfunction _isSameMessageEvent(currentEvent: Event, previousEvent: Event): boolean {\n const currentMessage = currentEvent.message;\n const previousMessage = previousEvent.message;\n\n // If neither event has a message property, they were both exceptions, so bail out\n if (!currentMessage && !previousMessage) {\n return false;\n }\n\n // If only one event has a stacktrace, but not the other one, they are not the same\n if ((currentMessage && !previousMessage) || (!currentMessage && previousMessage)) {\n return false;\n }\n\n if (currentMessage !== previousMessage) {\n return false;\n }\n\n if (!_isSameFingerprint(currentEvent, previousEvent)) {\n return false;\n }\n\n if (!_isSameStacktrace(currentEvent, previousEvent)) {\n return false;\n }\n\n return true;\n}\n\n/** JSDoc */\nfunction _isSameExceptionEvent(currentEvent: Event, previousEvent: Event): boolean {\n const previousException = _getExceptionFromEvent(previousEvent);\n const currentException = _getExceptionFromEvent(currentEvent);\n\n if (!previousException || !currentException) {\n return false;\n }\n\n if (previousException.type !== currentException.type || previousException.value !== currentException.value) {\n return false;\n }\n\n if (!_isSameFingerprint(currentEvent, previousEvent)) {\n return false;\n }\n\n if (!_isSameStacktrace(currentEvent, previousEvent)) {\n return false;\n }\n\n return true;\n}\n\n/** JSDoc */\nfunction _isSameStacktrace(currentEvent: Event, previousEvent: Event): boolean {\n let currentFrames = _getFramesFromEvent(currentEvent);\n let previousFrames = _getFramesFromEvent(previousEvent);\n\n // If neither event has a stacktrace, they are assumed to be the same\n if (!currentFrames && !previousFrames) {\n return true;\n }\n\n // If only one event has a stacktrace, but not the other one, they are not the same\n if ((currentFrames && !previousFrames) || (!currentFrames && previousFrames)) {\n return false;\n }\n\n currentFrames = currentFrames as StackFrame[];\n previousFrames = previousFrames as StackFrame[];\n\n // If number of frames differ, they are not the same\n if (previousFrames.length !== currentFrames.length) {\n return false;\n }\n\n // Otherwise, compare the two\n for (let i = 0; i < previousFrames.length; i++) {\n const frameA = previousFrames[i];\n const frameB = currentFrames[i];\n\n if (\n frameA.filename !== frameB.filename ||\n frameA.lineno !== frameB.lineno ||\n frameA.colno !== frameB.colno ||\n frameA.function !== frameB.function\n ) {\n return false;\n }\n }\n\n return true;\n}\n\n/** JSDoc */\nfunction _isSameFingerprint(currentEvent: Event, previousEvent: Event): boolean {\n let currentFingerprint = currentEvent.fingerprint;\n let previousFingerprint = previousEvent.fingerprint;\n\n // If neither event has a fingerprint, they are assumed to be the same\n if (!currentFingerprint && !previousFingerprint) {\n return true;\n }\n\n // If only one event has a fingerprint, but not the other one, they are not the same\n if ((currentFingerprint && !previousFingerprint) || (!currentFingerprint && previousFingerprint)) {\n return false;\n }\n\n currentFingerprint = currentFingerprint as string[];\n previousFingerprint = previousFingerprint as string[];\n\n // Otherwise, compare the two\n try {\n return !!(currentFingerprint.join('') === previousFingerprint.join(''));\n } catch (_oO) {\n return false;\n }\n}\n\n/** JSDoc */\nfunction _getExceptionFromEvent(event: Event): Exception | undefined {\n return event.exception && event.exception.values && event.exception.values[0];\n}\n\n/** JSDoc */\nfunction _getFramesFromEvent(event: Event): StackFrame[] | undefined {\n const exception = event.exception;\n\n if (exception) {\n try {\n // @ts-ignore Object could be undefined\n return exception.values[0].stacktrace.frames;\n } catch (_oO) {\n return undefined;\n }\n } else if (event.stacktrace) {\n return event.stacktrace.frames;\n }\n return undefined;\n}\n","import { addGlobalEventProcessor, getCurrentHub } from '@sentry/core';\nimport { Event, Integration } from '@sentry/types';\nimport { getGlobalObject } from '@sentry/utils';\n\nconst global = getGlobalObject();\n\n/** UserAgent */\nexport class UserAgent implements Integration {\n /**\n * @inheritDoc\n */\n public static id: string = 'UserAgent';\n\n /**\n * @inheritDoc\n */\n public name: string = UserAgent.id;\n\n /**\n * @inheritDoc\n */\n public setupOnce(): void {\n addGlobalEventProcessor((event: Event) => {\n if (getCurrentHub().getIntegration(UserAgent)) {\n // if none of the information we want exists, don't bother\n if (!global.navigator && !global.location && !global.document) {\n return event;\n }\n\n // grab as much info as exists and add it to the event\n const url = (event.request && event.request.url) || (global.location && global.location.href);\n const { referrer } = global.document || {};\n const { userAgent } = global.navigator || {};\n\n const headers = {\n ...(event.request && event.request.headers),\n ...(referrer && { Referer: referrer }),\n ...(userAgent && { 'User-Agent': userAgent }),\n };\n const request = { ...(url && { url }), headers };\n\n return { ...event, request };\n }\n return event;\n });\n }\n}\n","import { getCurrentHub, initAndBind, Integrations as CoreIntegrations } from '@sentry/core';\nimport { Hub } from '@sentry/types';\nimport { addInstrumentationHandler, getGlobalObject, logger, resolvedSyncPromise } from '@sentry/utils';\n\nimport { BrowserOptions } from './backend';\nimport { BrowserClient } from './client';\nimport { IS_DEBUG_BUILD } from './flags';\nimport { ReportDialogOptions, wrap as internalWrap } from './helpers';\nimport { Breadcrumbs, Dedupe, GlobalHandlers, LinkedErrors, TryCatch, UserAgent } from './integrations';\n\nexport const defaultIntegrations = [\n new CoreIntegrations.InboundFilters(),\n new CoreIntegrations.FunctionToString(),\n new TryCatch(),\n new Breadcrumbs(),\n new GlobalHandlers(),\n new LinkedErrors(),\n new Dedupe(),\n new UserAgent(),\n];\n\n/**\n * The Sentry Browser SDK Client.\n *\n * To use this SDK, call the {@link init} function as early as possible when\n * loading the web page. To set context information or send manual events, use\n * the provided methods.\n *\n * @example\n *\n * ```\n *\n * import { init } from '@sentry/browser';\n *\n * init({\n * dsn: '__DSN__',\n * // ...\n * });\n * ```\n *\n * @example\n * ```\n *\n * import { configureScope } from '@sentry/browser';\n * configureScope((scope: Scope) => {\n * scope.setExtra({ battery: 0.7 });\n * scope.setTag({ user_mode: 'admin' });\n * scope.setUser({ id: '4711' });\n * });\n * ```\n *\n * @example\n * ```\n *\n * import { addBreadcrumb } from '@sentry/browser';\n * addBreadcrumb({\n * message: 'My Breadcrumb',\n * // ...\n * });\n * ```\n *\n * @example\n *\n * ```\n *\n * import * as Sentry from '@sentry/browser';\n * Sentry.captureMessage('Hello, world!');\n * Sentry.captureException(new Error('Good bye'));\n * Sentry.captureEvent({\n * message: 'Manual',\n * stacktrace: [\n * // ...\n * ],\n * });\n * ```\n *\n * @see {@link BrowserOptions} for documentation on configuration options.\n */\nexport function init(options: BrowserOptions = {}): void {\n if (options.defaultIntegrations === undefined) {\n options.defaultIntegrations = defaultIntegrations;\n }\n if (options.release === undefined) {\n const window = getGlobalObject();\n // This supports the variable that sentry-webpack-plugin injects\n if (window.SENTRY_RELEASE && window.SENTRY_RELEASE.id) {\n options.release = window.SENTRY_RELEASE.id;\n }\n }\n if (options.autoSessionTracking === undefined) {\n options.autoSessionTracking = true;\n }\n if (options.sendClientReports === undefined) {\n options.sendClientReports = true;\n }\n\n initAndBind(BrowserClient, options);\n\n if (options.autoSessionTracking) {\n startSessionTracking();\n }\n}\n\n/**\n * Present the user with a report dialog.\n *\n * @param options Everything is optional, we try to fetch all info need from the global scope.\n */\nexport function showReportDialog(options: ReportDialogOptions = {}): void {\n const hub = getCurrentHub();\n const scope = hub.getScope();\n if (scope) {\n options.user = {\n ...scope.getUser(),\n ...options.user,\n };\n }\n\n if (!options.eventId) {\n options.eventId = hub.lastEventId();\n }\n const client = hub.getClient();\n if (client) {\n client.showReportDialog(options);\n }\n}\n\n/**\n * This is the getter for lastEventId.\n *\n * @returns The last event id of a captured event.\n */\nexport function lastEventId(): string | undefined {\n return getCurrentHub().lastEventId();\n}\n\n/**\n * This function is here to be API compatible with the loader.\n * @hidden\n */\nexport function forceLoad(): void {\n // Noop\n}\n\n/**\n * This function is here to be API compatible with the loader.\n * @hidden\n */\nexport function onLoad(callback: () => void): void {\n callback();\n}\n\n/**\n * Call `flush()` on the current client, if there is one. See {@link Client.flush}.\n *\n * @param timeout Maximum time in ms the client should wait to flush its event queue. Omitting this parameter will cause\n * the client to wait until all events are sent before resolving the promise.\n * @returns A promise which resolves to `true` if the queue successfully drains before the timeout, or `false` if it\n * doesn't (or if there's no client defined).\n */\nexport function flush(timeout?: number): PromiseLike {\n const client = getCurrentHub().getClient();\n if (client) {\n return client.flush(timeout);\n }\n IS_DEBUG_BUILD && logger.warn('Cannot flush events. No client defined.');\n return resolvedSyncPromise(false);\n}\n\n/**\n * Call `close()` on the current client, if there is one. See {@link Client.close}.\n *\n * @param timeout Maximum time in ms the client should wait to flush its event queue before shutting down. Omitting this\n * parameter will cause the client to wait until all events are sent before disabling itself.\n * @returns A promise which resolves to `true` if the queue successfully drains before the timeout, or `false` if it\n * doesn't (or if there's no client defined).\n */\nexport function close(timeout?: number): PromiseLike {\n const client = getCurrentHub().getClient();\n if (client) {\n return client.close(timeout);\n }\n IS_DEBUG_BUILD && logger.warn('Cannot flush events and disable SDK. No client defined.');\n return resolvedSyncPromise(false);\n}\n\n/**\n * Wrap code within a try/catch block so the SDK is able to capture errors.\n *\n * @param fn A function to wrap.\n *\n * @returns The result of wrapped function call.\n */\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport function wrap(fn: (...args: any) => any): any {\n return internalWrap(fn)();\n}\n\nfunction startSessionOnHub(hub: Hub): void {\n hub.startSession({ ignoreDuration: true });\n hub.captureSession();\n}\n\n/**\n * Enable automatic Session Tracking for the initial page load.\n */\nfunction startSessionTracking(): void {\n const window = getGlobalObject();\n const document = window.document;\n\n if (typeof document === 'undefined') {\n IS_DEBUG_BUILD && logger.warn('Session tracking in non-browser environment with @sentry/browser is not supported.');\n return;\n }\n\n const hub = getCurrentHub();\n\n // The only way for this to be false is for there to be a version mismatch between @sentry/browser (>= 6.0.0) and\n // @sentry/hub (< 5.27.0). In the simple case, there won't ever be such a mismatch, because the two packages are\n // pinned at the same version in package.json, but there are edge cases where it's possible. See\n // https://github.com/getsentry/sentry-javascript/issues/3207 and\n // https://github.com/getsentry/sentry-javascript/issues/3234 and\n // https://github.com/getsentry/sentry-javascript/issues/3278.\n if (!hub.captureSession) {\n return;\n }\n\n // The session duration for browser sessions does not track a meaningful\n // concept that can be used as a metric.\n // Automatically captured sessions are akin to page views, and thus we\n // discard their duration.\n startSessionOnHub(hub);\n\n // We want to create a session for every navigation as well\n addInstrumentationHandler('history', ({ from, to }) => {\n // Don't create an additional session for the initial route or if the location did not change\n if (!(from === undefined || from === to)) {\n startSessionOnHub(getCurrentHub());\n }\n });\n}\n","import { getCurrentHub } from '@sentry/hub';\nimport { Client, Options } from '@sentry/types';\nimport { logger } from '@sentry/utils';\n\nimport { IS_DEBUG_BUILD } from './flags';\n\n/** A class object that can instantiate Client objects. */\nexport type ClientClass = new (options: O) => F;\n\n/**\n * Internal function to create a new SDK client instance. The client is\n * installed and then bound to the current scope.\n *\n * @param clientClass The client class to instantiate.\n * @param options Options to pass to the client.\n */\nexport function initAndBind(clientClass: ClientClass, options: O): void {\n if (options.debug === true) {\n if (IS_DEBUG_BUILD) {\n logger.enable();\n } else {\n // use `console.warn` rather than `logger.warn` since by non-debug bundles have all `logger.x` statements stripped\n // eslint-disable-next-line no-console\n console.warn('[Sentry] Cannot initialize SDK with `debug` option using a non-debug bundle.');\n }\n }\n const hub = getCurrentHub();\n const scope = hub.getScope();\n if (scope) {\n scope.update(options.initialScope);\n }\n const client = new clientClass(options);\n hub.bindClient(client);\n}\n","import { TraceparentData } from '@sentry/types';\n\nexport const TRACEPARENT_REGEXP = new RegExp(\n '^[ \\\\t]*' + // whitespace\n '([0-9a-f]{32})?' + // trace_id\n '-?([0-9a-f]{16})?' + // span_id\n '-?([01])?' + // sampled\n '[ \\\\t]*$', // whitespace\n);\n\n/**\n * Extract transaction context data from a `sentry-trace` header.\n *\n * @param traceparent Traceparent string\n *\n * @returns Object containing data from the header, or undefined if traceparent string is malformed\n */\nexport function extractTraceparentData(traceparent: string): TraceparentData | undefined {\n const matches = traceparent.match(TRACEPARENT_REGEXP);\n if (matches) {\n let parentSampled: boolean | undefined;\n if (matches[3] === '1') {\n parentSampled = true;\n } else if (matches[3] === '0') {\n parentSampled = false;\n }\n return {\n traceId: matches[1],\n parentSampled,\n parentSpanId: matches[2],\n };\n }\n return undefined;\n}\n","import { getGlobalObject, logger } from '@sentry/utils';\n\nimport { FINISH_REASON_TAG, IDLE_TRANSACTION_FINISH_REASONS } from '../constants';\nimport { IS_DEBUG_BUILD } from '../flags';\nimport { IdleTransaction } from '../idletransaction';\nimport { SpanStatusType } from '../span';\nimport { getActiveTransaction } from '../utils';\n\nconst global = getGlobalObject();\n\n/**\n * Add a listener that cancels and finishes a transaction when the global\n * document is hidden.\n */\nexport function registerBackgroundTabDetection(): void {\n if (global && global.document) {\n global.document.addEventListener('visibilitychange', () => {\n const activeTransaction = getActiveTransaction() as IdleTransaction;\n if (global.document.hidden && activeTransaction) {\n const statusType: SpanStatusType = 'cancelled';\n\n IS_DEBUG_BUILD &&\n logger.log(\n `[Tracing] Transaction: ${statusType} -> since tab moved to the background, op: ${activeTransaction.op}`,\n );\n // We should not set status if it is already set, this prevent important statuses like\n // error or data loss from being overwritten on transaction.\n if (!activeTransaction.status) {\n activeTransaction.setStatus(statusType);\n }\n activeTransaction.setTag('visibilitychange', 'document.hidden');\n activeTransaction.setTag(FINISH_REASON_TAG, IDLE_TRANSACTION_FINISH_REASONS[2]);\n activeTransaction.finish();\n }\n });\n } else {\n IS_DEBUG_BUILD && logger.warn('[Tracing] Could not set up background tab detection due to lack of global document');\n }\n}\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\nimport { Metric, ReportHandler } from '../types';\n\nexport const bindReporter = (\n callback: ReportHandler,\n metric: Metric,\n reportAllChanges?: boolean,\n): ((forceReport?: boolean) => void) => {\n let prevValue: number;\n return (forceReport?: boolean) => {\n if (metric.value >= 0) {\n if (forceReport || reportAllChanges) {\n metric.delta = metric.value - (prevValue || 0);\n\n // Report the metric if there's a non-zero delta or if no previous\n // value exists (which can happen in the case of the document becoming\n // hidden when the metric value is 0).\n // See: https://github.com/GoogleChrome/web-vitals/issues/14\n if (metric.delta || prevValue === undefined) {\n prevValue = metric.value;\n callback(metric);\n }\n }\n }\n };\n};\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\nimport { Metric } from '../types';\nimport { generateUniqueID } from './generateUniqueID';\n\nexport const initMetric = (name: Metric['name'], value?: number): Metric => {\n return {\n name,\n value: value ?? -1,\n delta: 0,\n entries: [],\n id: generateUniqueID(),\n };\n};\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\n/**\n * Performantly generate a unique, 30-char string by combining a version\n * number, the current timestamp with a 13-digit number integer.\n * @return {string}\n */\nexport const generateUniqueID = (): string => {\n return `v2-${Date.now()}-${Math.floor(Math.random() * (9e12 - 1)) + 1e12}`;\n};\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\nexport interface PerformanceEntryHandler {\n (entry: PerformanceEntry): void;\n}\n\n/**\n * Takes a performance entry type and a callback function, and creates a\n * `PerformanceObserver` instance that will observe the specified entry type\n * with buffering enabled and call the callback _for each entry_.\n *\n * This function also feature-detects entry support and wraps the logic in a\n * try/catch to avoid errors in unsupporting browsers.\n */\nexport const observe = (type: string, callback: PerformanceEntryHandler): PerformanceObserver | undefined => {\n try {\n if (PerformanceObserver.supportedEntryTypes.includes(type)) {\n // More extensive feature detect needed for Firefox due to:\n // https://github.com/GoogleChrome/web-vitals/issues/142\n if (type === 'first-input' && !('PerformanceEventTiming' in self)) {\n return;\n }\n\n const po: PerformanceObserver = new PerformanceObserver(l => l.getEntries().map(callback));\n\n po.observe({ type, buffered: true });\n return po;\n }\n } catch (e) {\n // Do nothing.\n }\n return;\n};\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\nimport { getGlobalObject } from '@sentry/utils';\n\nexport interface OnHiddenCallback {\n (event: Event): void;\n}\n\nexport const onHidden = (cb: OnHiddenCallback, once?: boolean): void => {\n const onHiddenOrPageHide = (event: Event): void => {\n if (event.type === 'pagehide' || getGlobalObject().document.visibilityState === 'hidden') {\n cb(event);\n if (once) {\n removeEventListener('visibilitychange', onHiddenOrPageHide, true);\n removeEventListener('pagehide', onHiddenOrPageHide, true);\n }\n }\n };\n addEventListener('visibilitychange', onHiddenOrPageHide, true);\n // Some browsers have buggy implementations of visibilitychange,\n // so we use pagehide in addition, just to be safe.\n addEventListener('pagehide', onHiddenOrPageHide, true);\n};\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\nimport { getGlobalObject } from '@sentry/utils';\n\nimport { onHidden } from './onHidden';\n\nlet firstHiddenTime = -1;\n\nconst initHiddenTime = (): number => {\n return getGlobalObject().document.visibilityState === 'hidden' ? 0 : Infinity;\n};\n\nconst trackChanges = (): void => {\n // Update the time if/when the document becomes hidden.\n onHidden(({ timeStamp }) => {\n firstHiddenTime = timeStamp;\n }, true);\n};\n\nexport const getVisibilityWatcher = (): {\n readonly firstHiddenTime: number;\n} => {\n if (firstHiddenTime < 0) {\n // If the document is hidden when this code runs, assume it was hidden\n // since navigation start. This isn't a perfect heuristic, but it's the\n // best we can do until an API is available to support querying past\n // visibilityState.\n firstHiddenTime = initHiddenTime();\n trackChanges();\n }\n return {\n get firstHiddenTime() {\n return firstHiddenTime;\n },\n };\n};\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\nimport { bindReporter } from './lib/bindReporter';\nimport { getVisibilityWatcher } from './lib/getVisibilityWatcher';\nimport { initMetric } from './lib/initMetric';\nimport { observe, PerformanceEntryHandler } from './lib/observe';\nimport { onHidden } from './lib/onHidden';\nimport { ReportHandler } from './types';\n\n// https://wicg.github.io/largest-contentful-paint/#sec-largest-contentful-paint-interface\nexport interface LargestContentfulPaint extends PerformanceEntry {\n renderTime: DOMHighResTimeStamp;\n loadTime: DOMHighResTimeStamp;\n size: number;\n id: string;\n url: string;\n element?: Element;\n toJSON(): Record;\n}\n\nconst reportedMetricIDs: Record = {};\n\nexport const getLCP = (onReport: ReportHandler, reportAllChanges?: boolean): void => {\n const visibilityWatcher = getVisibilityWatcher();\n const metric = initMetric('LCP');\n let report: ReturnType;\n\n const entryHandler = (entry: PerformanceEntry): void => {\n // The startTime attribute returns the value of the renderTime if it is not 0,\n // and the value of the loadTime otherwise.\n const value = entry.startTime;\n\n // If the page was hidden prior to paint time of the entry,\n // ignore it and mark the metric as final, otherwise add the entry.\n if (value < visibilityWatcher.firstHiddenTime) {\n metric.value = value;\n metric.entries.push(entry);\n }\n\n if (report) {\n report();\n }\n };\n\n const po = observe('largest-contentful-paint', entryHandler);\n\n if (po) {\n report = bindReporter(onReport, metric, reportAllChanges);\n\n const stopListening = (): void => {\n if (!reportedMetricIDs[metric.id]) {\n po.takeRecords().map(entryHandler as PerformanceEntryHandler);\n po.disconnect();\n reportedMetricIDs[metric.id] = true;\n report(true);\n }\n };\n\n // Stop listening after input. Note: while scrolling is an input that\n // stop LCP observation, it's unreliable since it can be programmatically\n // generated. See: https://github.com/GoogleChrome/web-vitals/issues/75\n ['keydown', 'click'].forEach(type => {\n addEventListener(type, stopListening, { once: true, capture: true });\n });\n\n onHidden(stopListening, true);\n }\n};\n","/* eslint-disable max-lines */\n/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { Measurements, SpanContext } from '@sentry/types';\nimport { browserPerformanceTimeOrigin, getGlobalObject, htmlTreeAsString, isNodeEnv, logger } from '@sentry/utils';\n\nimport { IS_DEBUG_BUILD } from '../flags';\nimport { Span } from '../span';\nimport { Transaction } from '../transaction';\nimport { msToSec } from '../utils';\nimport { getCLS, LayoutShift } from './web-vitals/getCLS';\nimport { getFID } from './web-vitals/getFID';\nimport { getLCP, LargestContentfulPaint } from './web-vitals/getLCP';\nimport { getVisibilityWatcher } from './web-vitals/lib/getVisibilityWatcher';\nimport { NavigatorDeviceMemory, NavigatorNetworkInformation } from './web-vitals/types';\n\nconst global = getGlobalObject();\n\n/** Class tracking metrics */\nexport class MetricsInstrumentation {\n private _measurements: Measurements = {};\n\n private _performanceCursor: number = 0;\n private _lcpEntry: LargestContentfulPaint | undefined;\n private _clsEntry: LayoutShift | undefined;\n\n public constructor(private _reportAllChanges: boolean = false) {\n if (!isNodeEnv() && global && global.performance && global.document) {\n if (global.performance.mark) {\n global.performance.mark('sentry-tracing-init');\n }\n\n this._trackCLS();\n this._trackLCP();\n this._trackFID();\n }\n }\n\n /** Add performance related spans to a transaction */\n public addPerformanceEntries(transaction: Transaction): void {\n if (!global || !global.performance || !global.performance.getEntries || !browserPerformanceTimeOrigin) {\n // Gatekeeper if performance API not available\n return;\n }\n\n IS_DEBUG_BUILD && logger.log('[Tracing] Adding & adjusting spans using Performance API');\n\n const timeOrigin = msToSec(browserPerformanceTimeOrigin);\n\n let responseStartTimestamp: number | undefined;\n let requestStartTimestamp: number | undefined;\n\n global.performance\n .getEntries()\n .slice(this._performanceCursor)\n .forEach((entry: Record) => {\n const startTime = msToSec(entry.startTime as number);\n const duration = msToSec(entry.duration as number);\n\n if (transaction.op === 'navigation' && timeOrigin + startTime < transaction.startTimestamp) {\n return;\n }\n\n switch (entry.entryType) {\n case 'navigation': {\n addNavigationSpans(transaction, entry, timeOrigin);\n responseStartTimestamp = timeOrigin + msToSec(entry.responseStart as number);\n requestStartTimestamp = timeOrigin + msToSec(entry.requestStart as number);\n break;\n }\n case 'mark':\n case 'paint':\n case 'measure': {\n const startTimestamp = addMeasureSpans(transaction, entry, startTime, duration, timeOrigin);\n // capture web vitals\n\n const firstHidden = getVisibilityWatcher();\n // Only report if the page wasn't hidden prior to the web vital.\n const shouldRecord = entry.startTime < firstHidden.firstHiddenTime;\n\n if (entry.name === 'first-paint' && shouldRecord) {\n IS_DEBUG_BUILD && logger.log('[Measurements] Adding FP');\n this._measurements['fp'] = { value: entry.startTime };\n this._measurements['mark.fp'] = { value: startTimestamp };\n }\n\n if (entry.name === 'first-contentful-paint' && shouldRecord) {\n IS_DEBUG_BUILD && logger.log('[Measurements] Adding FCP');\n this._measurements['fcp'] = { value: entry.startTime };\n this._measurements['mark.fcp'] = { value: startTimestamp };\n }\n\n break;\n }\n case 'resource': {\n const resourceName = (entry.name as string).replace(global.location.origin, '');\n addResourceSpans(transaction, entry, resourceName, startTime, duration, timeOrigin);\n break;\n }\n default:\n // Ignore other entry types.\n }\n });\n\n this._performanceCursor = Math.max(performance.getEntries().length - 1, 0);\n\n this._trackNavigator(transaction);\n\n // Measurements are only available for pageload transactions\n if (transaction.op === 'pageload') {\n // normalize applicable web vital values to be relative to transaction.startTimestamp\n\n const timeOrigin = msToSec(browserPerformanceTimeOrigin);\n\n // Generate TTFB (Time to First Byte), which measured as the time between the beginning of the transaction and the\n // start of the response in milliseconds\n if (typeof responseStartTimestamp === 'number') {\n IS_DEBUG_BUILD && logger.log('[Measurements] Adding TTFB');\n this._measurements['ttfb'] = { value: (responseStartTimestamp - transaction.startTimestamp) * 1000 };\n\n if (typeof requestStartTimestamp === 'number' && requestStartTimestamp <= responseStartTimestamp) {\n // Capture the time spent making the request and receiving the first byte of the response.\n // This is the time between the start of the request and the start of the response in milliseconds.\n this._measurements['ttfb.requestTime'] = { value: (responseStartTimestamp - requestStartTimestamp) * 1000 };\n }\n }\n\n ['fcp', 'fp', 'lcp'].forEach(name => {\n if (!this._measurements[name] || timeOrigin >= transaction.startTimestamp) {\n return;\n }\n\n // The web vitals, fcp, fp, lcp, and ttfb, all measure relative to timeOrigin.\n // Unfortunately, timeOrigin is not captured within the transaction span data, so these web vitals will need\n // to be adjusted to be relative to transaction.startTimestamp.\n\n const oldValue = this._measurements[name].value;\n const measurementTimestamp = timeOrigin + msToSec(oldValue);\n // normalizedValue should be in milliseconds\n const normalizedValue = Math.abs((measurementTimestamp - transaction.startTimestamp) * 1000);\n\n const delta = normalizedValue - oldValue;\n IS_DEBUG_BUILD &&\n logger.log(`[Measurements] Normalized ${name} from ${oldValue} to ${normalizedValue} (${delta})`);\n\n this._measurements[name].value = normalizedValue;\n });\n\n if (this._measurements['mark.fid'] && this._measurements['fid']) {\n // create span for FID\n\n _startChild(transaction, {\n description: 'first input delay',\n endTimestamp: this._measurements['mark.fid'].value + msToSec(this._measurements['fid'].value),\n op: 'web.vitals',\n startTimestamp: this._measurements['mark.fid'].value,\n });\n }\n\n // If FCP is not recorded we should not record the cls value\n // according to the new definition of CLS.\n if (!('fcp' in this._measurements)) {\n delete this._measurements.cls;\n }\n\n transaction.setMeasurements(this._measurements);\n tagMetricInfo(transaction, this._lcpEntry, this._clsEntry);\n transaction.setTag('sentry_reportAllChanges', this._reportAllChanges);\n }\n }\n\n /**\n * Capture the information of the user agent.\n */\n private _trackNavigator(transaction: Transaction): void {\n const navigator = global.navigator as null | (Navigator & NavigatorNetworkInformation & NavigatorDeviceMemory);\n if (!navigator) {\n return;\n }\n\n // track network connectivity\n const connection = navigator.connection;\n if (connection) {\n if (connection.effectiveType) {\n transaction.setTag('effectiveConnectionType', connection.effectiveType);\n }\n\n if (connection.type) {\n transaction.setTag('connectionType', connection.type);\n }\n\n if (isMeasurementValue(connection.rtt)) {\n this._measurements['connection.rtt'] = { value: connection.rtt as number };\n }\n\n if (isMeasurementValue(connection.downlink)) {\n this._measurements['connection.downlink'] = { value: connection.downlink as number };\n }\n }\n\n if (isMeasurementValue(navigator.deviceMemory)) {\n transaction.setTag('deviceMemory', String(navigator.deviceMemory));\n }\n\n if (isMeasurementValue(navigator.hardwareConcurrency)) {\n transaction.setTag('hardwareConcurrency', String(navigator.hardwareConcurrency));\n }\n }\n\n /** Starts tracking the Cumulative Layout Shift on the current page. */\n private _trackCLS(): void {\n // See:\n // https://web.dev/evolving-cls/\n // https://web.dev/cls-web-tooling/\n getCLS(metric => {\n const entry = metric.entries.pop();\n if (!entry) {\n return;\n }\n\n IS_DEBUG_BUILD && logger.log('[Measurements] Adding CLS');\n this._measurements['cls'] = { value: metric.value };\n this._clsEntry = entry as LayoutShift;\n });\n }\n\n /** Starts tracking the Largest Contentful Paint on the current page. */\n private _trackLCP(): void {\n getLCP(metric => {\n const entry = metric.entries.pop();\n if (!entry) {\n return;\n }\n\n const timeOrigin = msToSec(browserPerformanceTimeOrigin as number);\n const startTime = msToSec(entry.startTime);\n IS_DEBUG_BUILD && logger.log('[Measurements] Adding LCP');\n this._measurements['lcp'] = { value: metric.value };\n this._measurements['mark.lcp'] = { value: timeOrigin + startTime };\n this._lcpEntry = entry as LargestContentfulPaint;\n }, this._reportAllChanges);\n }\n\n /** Starts tracking the First Input Delay on the current page. */\n private _trackFID(): void {\n getFID(metric => {\n const entry = metric.entries.pop();\n if (!entry) {\n return;\n }\n\n const timeOrigin = msToSec(browserPerformanceTimeOrigin as number);\n const startTime = msToSec(entry.startTime);\n IS_DEBUG_BUILD && logger.log('[Measurements] Adding FID');\n this._measurements['fid'] = { value: metric.value };\n this._measurements['mark.fid'] = { value: timeOrigin + startTime };\n });\n }\n}\n\n/** Instrument navigation entries */\nfunction addNavigationSpans(transaction: Transaction, entry: Record, timeOrigin: number): void {\n ['unloadEvent', 'redirect', 'domContentLoadedEvent', 'loadEvent', 'connect'].forEach(event => {\n addPerformanceNavigationTiming(transaction, entry, event, timeOrigin);\n });\n addPerformanceNavigationTiming(transaction, entry, 'secureConnection', timeOrigin, 'TLS/SSL', 'connectEnd');\n addPerformanceNavigationTiming(transaction, entry, 'fetch', timeOrigin, 'cache', 'domainLookupStart');\n addPerformanceNavigationTiming(transaction, entry, 'domainLookup', timeOrigin, 'DNS');\n addRequest(transaction, entry, timeOrigin);\n}\n\n/** Create measure related spans */\nfunction addMeasureSpans(\n transaction: Transaction,\n entry: Record,\n startTime: number,\n duration: number,\n timeOrigin: number,\n): number {\n const measureStartTimestamp = timeOrigin + startTime;\n const measureEndTimestamp = measureStartTimestamp + duration;\n\n _startChild(transaction, {\n description: entry.name as string,\n endTimestamp: measureEndTimestamp,\n op: entry.entryType as string,\n startTimestamp: measureStartTimestamp,\n });\n\n return measureStartTimestamp;\n}\n\nexport interface ResourceEntry extends Record {\n initiatorType?: string;\n transferSize?: number;\n encodedBodySize?: number;\n decodedBodySize?: number;\n}\n\n/** Create resource-related spans */\nexport function addResourceSpans(\n transaction: Transaction,\n entry: ResourceEntry,\n resourceName: string,\n startTime: number,\n duration: number,\n timeOrigin: number,\n): void {\n // we already instrument based on fetch and xhr, so we don't need to\n // duplicate spans here.\n if (entry.initiatorType === 'xmlhttprequest' || entry.initiatorType === 'fetch') {\n return;\n }\n\n const data: Record = {};\n if ('transferSize' in entry) {\n data['Transfer Size'] = entry.transferSize;\n }\n if ('encodedBodySize' in entry) {\n data['Encoded Body Size'] = entry.encodedBodySize;\n }\n if ('decodedBodySize' in entry) {\n data['Decoded Body Size'] = entry.decodedBodySize;\n }\n\n const startTimestamp = timeOrigin + startTime;\n const endTimestamp = startTimestamp + duration;\n\n _startChild(transaction, {\n description: resourceName,\n endTimestamp,\n op: entry.initiatorType ? `resource.${entry.initiatorType}` : 'resource',\n startTimestamp,\n data,\n });\n}\n\n/** Create performance navigation related spans */\nfunction addPerformanceNavigationTiming(\n transaction: Transaction,\n entry: Record,\n event: string,\n timeOrigin: number,\n description?: string,\n eventEnd?: string,\n): void {\n const end = eventEnd ? (entry[eventEnd] as number | undefined) : (entry[`${event}End`] as number | undefined);\n const start = entry[`${event}Start`] as number | undefined;\n if (!start || !end) {\n return;\n }\n _startChild(transaction, {\n op: 'browser',\n description: description ?? event,\n startTimestamp: timeOrigin + msToSec(start),\n endTimestamp: timeOrigin + msToSec(end),\n });\n}\n\n/** Create request and response related spans */\nfunction addRequest(transaction: Transaction, entry: Record, timeOrigin: number): void {\n _startChild(transaction, {\n op: 'browser',\n description: 'request',\n startTimestamp: timeOrigin + msToSec(entry.requestStart as number),\n endTimestamp: timeOrigin + msToSec(entry.responseEnd as number),\n });\n\n _startChild(transaction, {\n op: 'browser',\n description: 'response',\n startTimestamp: timeOrigin + msToSec(entry.responseStart as number),\n endTimestamp: timeOrigin + msToSec(entry.responseEnd as number),\n });\n}\n\n/**\n * Helper function to start child on transactions. This function will make sure that the transaction will\n * use the start timestamp of the created child span if it is earlier than the transactions actual\n * start timestamp.\n */\nexport function _startChild(transaction: Transaction, { startTimestamp, ...ctx }: SpanContext): Span {\n if (startTimestamp && transaction.startTimestamp > startTimestamp) {\n transaction.startTimestamp = startTimestamp;\n }\n\n return transaction.startChild({\n startTimestamp,\n ...ctx,\n });\n}\n\n/**\n * Checks if a given value is a valid measurement value.\n */\nfunction isMeasurementValue(value: any): boolean {\n return typeof value === 'number' && isFinite(value);\n}\n\n/** Add LCP / CLS data to transaction to allow debugging */\nfunction tagMetricInfo(\n transaction: Transaction,\n lcpEntry: MetricsInstrumentation['_lcpEntry'],\n clsEntry: MetricsInstrumentation['_clsEntry'],\n): void {\n if (lcpEntry) {\n IS_DEBUG_BUILD && logger.log('[Measurements] Adding LCP Data');\n\n // Capture Properties of the LCP element that contributes to the LCP.\n\n if (lcpEntry.element) {\n transaction.setTag('lcp.element', htmlTreeAsString(lcpEntry.element));\n }\n\n if (lcpEntry.id) {\n transaction.setTag('lcp.id', lcpEntry.id);\n }\n\n if (lcpEntry.url) {\n // Trim URL to the first 200 characters.\n transaction.setTag('lcp.url', lcpEntry.url.trim().slice(0, 200));\n }\n\n transaction.setTag('lcp.size', lcpEntry.size);\n }\n\n // See: https://developer.mozilla.org/en-US/docs/Web/API/LayoutShift\n if (clsEntry && clsEntry.sources) {\n IS_DEBUG_BUILD && logger.log('[Measurements] Adding CLS Data');\n clsEntry.sources.forEach((source, index) =>\n transaction.setTag(`cls.source.${index + 1}`, htmlTreeAsString(source.node)),\n );\n }\n}\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\nimport { bindReporter } from './lib/bindReporter';\nimport { initMetric } from './lib/initMetric';\nimport { observe, PerformanceEntryHandler } from './lib/observe';\nimport { onHidden } from './lib/onHidden';\nimport { ReportHandler } from './types';\n\n// https://wicg.github.io/layout-instability/#sec-layout-shift\nexport interface LayoutShift extends PerformanceEntry {\n value: number;\n hadRecentInput: boolean;\n sources: Array;\n toJSON(): Record;\n}\n\nexport interface LayoutShiftAttribution {\n node?: Node;\n previousRect: DOMRectReadOnly;\n currentRect: DOMRectReadOnly;\n}\n\nexport const getCLS = (onReport: ReportHandler, reportAllChanges?: boolean): void => {\n const metric = initMetric('CLS', 0);\n let report: ReturnType;\n\n let sessionValue = 0;\n let sessionEntries: PerformanceEntry[] = [];\n\n const entryHandler = (entry: LayoutShift): void => {\n // Only count layout shifts without recent user input.\n // TODO: Figure out why entry can be undefined\n if (entry && !entry.hadRecentInput) {\n const firstSessionEntry = sessionEntries[0];\n const lastSessionEntry = sessionEntries[sessionEntries.length - 1];\n\n // If the entry occurred less than 1 second after the previous entry and\n // less than 5 seconds after the first entry in the session, include the\n // entry in the current session. Otherwise, start a new session.\n if (\n sessionValue &&\n sessionEntries.length !== 0 &&\n entry.startTime - lastSessionEntry.startTime < 1000 &&\n entry.startTime - firstSessionEntry.startTime < 5000\n ) {\n sessionValue += entry.value;\n sessionEntries.push(entry);\n } else {\n sessionValue = entry.value;\n sessionEntries = [entry];\n }\n\n // If the current session value is larger than the current CLS value,\n // update CLS and the entries contributing to it.\n if (sessionValue > metric.value) {\n metric.value = sessionValue;\n metric.entries = sessionEntries;\n if (report) {\n report();\n }\n }\n }\n };\n\n const po = observe('layout-shift', entryHandler as PerformanceEntryHandler);\n if (po) {\n report = bindReporter(onReport, metric, reportAllChanges);\n\n onHidden(() => {\n po.takeRecords().map(entryHandler as PerformanceEntryHandler);\n report(true);\n });\n }\n};\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\nimport { bindReporter } from './lib/bindReporter';\nimport { getVisibilityWatcher } from './lib/getVisibilityWatcher';\nimport { initMetric } from './lib/initMetric';\nimport { observe, PerformanceEntryHandler } from './lib/observe';\nimport { onHidden } from './lib/onHidden';\nimport { PerformanceEventTiming, ReportHandler } from './types';\n\nexport const getFID = (onReport: ReportHandler, reportAllChanges?: boolean): void => {\n const visibilityWatcher = getVisibilityWatcher();\n const metric = initMetric('FID');\n let report: ReturnType;\n\n const entryHandler = (entry: PerformanceEventTiming): void => {\n // Only report if the page wasn't hidden prior to the first input.\n if (report && entry.startTime < visibilityWatcher.firstHiddenTime) {\n metric.value = entry.processingStart - entry.startTime;\n metric.entries.push(entry);\n report(true);\n }\n };\n\n const po = observe('first-input', entryHandler as PerformanceEntryHandler);\n if (po) {\n report = bindReporter(onReport, metric, reportAllChanges);\n onHidden(() => {\n po.takeRecords().map(entryHandler as PerformanceEntryHandler);\n po.disconnect();\n }, true);\n }\n};\n","import { addInstrumentationHandler, isInstanceOf, isMatchingPattern } from '@sentry/utils';\n\nimport { Span } from '../span';\nimport { getActiveTransaction, hasTracingEnabled } from '../utils';\n\nexport const DEFAULT_TRACING_ORIGINS = ['localhost', /^\\//];\n\n/** Options for Request Instrumentation */\nexport interface RequestInstrumentationOptions {\n /**\n * List of strings / regex where the integration should create Spans out of. Additionally this will be used\n * to define which outgoing requests the `sentry-trace` header will be attached to.\n *\n * Default: ['localhost', /^\\//] {@see DEFAULT_TRACING_ORIGINS}\n */\n tracingOrigins: Array;\n\n /**\n * Flag to disable patching all together for fetch requests.\n *\n * Default: true\n */\n traceFetch: boolean;\n\n /**\n * Flag to disable patching all together for xhr requests.\n *\n * Default: true\n */\n traceXHR: boolean;\n\n /**\n * This function will be called before creating a span for a request with the given url.\n * Return false if you don't want a span for the given url.\n *\n * By default it uses the `tracingOrigins` options as a url match.\n */\n shouldCreateSpanForRequest?(url: string): boolean;\n}\n\n/** Data returned from fetch callback */\nexport interface FetchData {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n args: any[]; // the arguments passed to the fetch call itself\n fetchData?: {\n method: string;\n url: string;\n // span_id\n __span?: string;\n };\n\n // TODO Should this be unknown instead? If we vendor types, make it a Response\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n response?: any;\n error?: unknown;\n\n startTimestamp: number;\n endTimestamp?: number;\n}\n\n/** Data returned from XHR request */\nexport interface XHRData {\n xhr?: {\n __sentry_xhr__?: {\n method: string;\n url: string;\n status_code: number;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n data: Record;\n };\n __sentry_xhr_span_id__?: string;\n setRequestHeader?: (key: string, val: string) => void;\n __sentry_own_request__?: boolean;\n };\n startTimestamp: number;\n endTimestamp?: number;\n}\n\nexport const defaultRequestInstrumentationOptions: RequestInstrumentationOptions = {\n traceFetch: true,\n traceXHR: true,\n tracingOrigins: DEFAULT_TRACING_ORIGINS,\n};\n\n/** Registers span creators for xhr and fetch requests */\nexport function instrumentOutgoingRequests(_options?: Partial): void {\n // eslint-disable-next-line @typescript-eslint/unbound-method\n const { traceFetch, traceXHR, tracingOrigins, shouldCreateSpanForRequest } = {\n ...defaultRequestInstrumentationOptions,\n ..._options,\n };\n\n // We should cache url -> decision so that we don't have to compute\n // regexp everytime we create a request.\n const urlMap: Record = {};\n\n const defaultShouldCreateSpan = (url: string): boolean => {\n if (urlMap[url]) {\n return urlMap[url];\n }\n const origins = tracingOrigins;\n urlMap[url] =\n origins.some((origin: string | RegExp) => isMatchingPattern(url, origin)) &&\n !isMatchingPattern(url, 'sentry_key');\n return urlMap[url];\n };\n\n // We want that our users don't have to re-implement shouldCreateSpanForRequest themselves\n // That's why we filter out already unwanted Spans from tracingOrigins\n let shouldCreateSpan = defaultShouldCreateSpan;\n if (typeof shouldCreateSpanForRequest === 'function') {\n shouldCreateSpan = (url: string) => {\n return defaultShouldCreateSpan(url) && shouldCreateSpanForRequest(url);\n };\n }\n\n const spans: Record = {};\n\n if (traceFetch) {\n addInstrumentationHandler('fetch', (handlerData: FetchData) => {\n fetchCallback(handlerData, shouldCreateSpan, spans);\n });\n }\n\n if (traceXHR) {\n addInstrumentationHandler('xhr', (handlerData: XHRData) => {\n xhrCallback(handlerData, shouldCreateSpan, spans);\n });\n }\n}\n\n/**\n * Create and track fetch request spans\n */\nexport function fetchCallback(\n handlerData: FetchData,\n shouldCreateSpan: (url: string) => boolean,\n spans: Record,\n): void {\n if (!hasTracingEnabled() || !(handlerData.fetchData && shouldCreateSpan(handlerData.fetchData.url))) {\n return;\n }\n\n if (handlerData.endTimestamp) {\n const spanId = handlerData.fetchData.__span;\n if (!spanId) return;\n\n const span = spans[spanId];\n if (span) {\n if (handlerData.response) {\n // TODO (kmclb) remove this once types PR goes through\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n span.setHttpStatus(handlerData.response.status);\n } else if (handlerData.error) {\n span.setStatus('internal_error');\n }\n span.finish();\n\n // eslint-disable-next-line @typescript-eslint/no-dynamic-delete\n delete spans[spanId];\n }\n return;\n }\n\n const activeTransaction = getActiveTransaction();\n if (activeTransaction) {\n const span = activeTransaction.startChild({\n data: {\n ...handlerData.fetchData,\n type: 'fetch',\n },\n description: `${handlerData.fetchData.method} ${handlerData.fetchData.url}`,\n op: 'http.client',\n });\n\n handlerData.fetchData.__span = span.spanId;\n spans[span.spanId] = span;\n\n const request = (handlerData.args[0] = handlerData.args[0] as string | Request);\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const options = (handlerData.args[1] = (handlerData.args[1] as { [key: string]: any }) || {});\n let headers = options.headers;\n if (isInstanceOf(request, Request)) {\n headers = (request as Request).headers;\n }\n if (headers) {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n if (typeof headers.append === 'function') {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n headers.append('sentry-trace', span.toTraceparent());\n } else if (Array.isArray(headers)) {\n headers = [...headers, ['sentry-trace', span.toTraceparent()]];\n } else {\n headers = { ...headers, 'sentry-trace': span.toTraceparent() };\n }\n } else {\n headers = { 'sentry-trace': span.toTraceparent() };\n }\n options.headers = headers;\n }\n}\n\n/**\n * Create and track xhr request spans\n */\nexport function xhrCallback(\n handlerData: XHRData,\n shouldCreateSpan: (url: string) => boolean,\n spans: Record,\n): void {\n if (\n !hasTracingEnabled() ||\n (handlerData.xhr && handlerData.xhr.__sentry_own_request__) ||\n !(handlerData.xhr && handlerData.xhr.__sentry_xhr__ && shouldCreateSpan(handlerData.xhr.__sentry_xhr__.url))\n ) {\n return;\n }\n\n const xhr = handlerData.xhr.__sentry_xhr__;\n\n // check first if the request has finished and is tracked by an existing span which should now end\n if (handlerData.endTimestamp) {\n const spanId = handlerData.xhr.__sentry_xhr_span_id__;\n if (!spanId) return;\n\n const span = spans[spanId];\n if (span) {\n span.setHttpStatus(xhr.status_code);\n span.finish();\n\n // eslint-disable-next-line @typescript-eslint/no-dynamic-delete\n delete spans[spanId];\n }\n return;\n }\n\n // if not, create a new span to track it\n const activeTransaction = getActiveTransaction();\n if (activeTransaction) {\n const span = activeTransaction.startChild({\n data: {\n ...xhr.data,\n type: 'xhr',\n method: xhr.method,\n url: xhr.url,\n },\n description: `${xhr.method} ${xhr.url}`,\n op: 'http.client',\n });\n\n handlerData.xhr.__sentry_xhr_span_id__ = span.spanId;\n spans[handlerData.xhr.__sentry_xhr_span_id__] = span;\n\n if (handlerData.xhr.setRequestHeader) {\n try {\n handlerData.xhr.setRequestHeader('sentry-trace', span.toTraceparent());\n } catch (_) {\n // Error: InvalidStateError: Failed to execute 'setRequestHeader' on 'XMLHttpRequest': The object's state must be OPENED.\n }\n }\n }\n}\n","import { Transaction, TransactionContext } from '@sentry/types';\nimport { addInstrumentationHandler, getGlobalObject, logger } from '@sentry/utils';\n\nimport { IS_DEBUG_BUILD } from '../flags';\n\nconst global = getGlobalObject();\n\n/**\n * Default function implementing pageload and navigation transactions\n */\nexport function instrumentRoutingWithDefaults(\n customStartTransaction: (context: TransactionContext) => T | undefined,\n startTransactionOnPageLoad: boolean = true,\n startTransactionOnLocationChange: boolean = true,\n): void {\n if (!global || !global.location) {\n IS_DEBUG_BUILD && logger.warn('Could not initialize routing instrumentation due to invalid location');\n return;\n }\n\n let startingUrl: string | undefined = global.location.href;\n\n let activeTransaction: T | undefined;\n if (startTransactionOnPageLoad) {\n activeTransaction = customStartTransaction({ name: global.location.pathname, op: 'pageload' });\n }\n\n if (startTransactionOnLocationChange) {\n addInstrumentationHandler('history', ({ to, from }: { to: string; from?: string }) => {\n /**\n * This early return is there to account for some cases where a navigation transaction starts right after\n * long-running pageload. We make sure that if `from` is undefined and a valid `startingURL` exists, we don't\n * create an uneccessary navigation transaction.\n *\n * This was hard to duplicate, but this behavior stopped as soon as this fix was applied. This issue might also\n * only be caused in certain development environments where the usage of a hot module reloader is causing\n * errors.\n */\n if (from === undefined && startingUrl && startingUrl.indexOf(to) !== -1) {\n startingUrl = undefined;\n return;\n }\n\n if (from !== to) {\n startingUrl = undefined;\n if (activeTransaction) {\n IS_DEBUG_BUILD && logger.log(`[Tracing] Finishing current transaction with op: ${activeTransaction.op}`);\n // If there's an open transaction on the scope, we need to finish it before creating an new one.\n activeTransaction.finish();\n }\n activeTransaction = customStartTransaction({ name: global.location.pathname, op: 'navigation' });\n }\n });\n }\n}\n","import { Hub } from '@sentry/hub';\nimport { EventProcessor, Integration, Transaction, TransactionContext } from '@sentry/types';\nimport { getGlobalObject, logger } from '@sentry/utils';\n\nimport { IS_DEBUG_BUILD } from '../flags';\nimport { startIdleTransaction } from '../hubextensions';\nimport { DEFAULT_IDLE_TIMEOUT, IdleTransaction } from '../idletransaction';\nimport { extractTraceparentData, secToMs } from '../utils';\nimport { registerBackgroundTabDetection } from './backgroundtab';\nimport { MetricsInstrumentation } from './metrics';\nimport {\n defaultRequestInstrumentationOptions,\n instrumentOutgoingRequests,\n RequestInstrumentationOptions,\n} from './request';\nimport { instrumentRoutingWithDefaults } from './router';\n\nexport const DEFAULT_MAX_TRANSACTION_DURATION_SECONDS = 600;\n\n/** Options for Browser Tracing integration */\nexport interface BrowserTracingOptions extends RequestInstrumentationOptions {\n /**\n * The time to wait in ms until the transaction will be finished. The transaction will use the end timestamp of\n * the last finished span as the endtime for the transaction.\n * Time is in ms.\n *\n * Default: 1000\n */\n idleTimeout: number;\n\n /**\n * Flag to enable/disable creation of `navigation` transaction on history changes.\n *\n * Default: true\n */\n startTransactionOnLocationChange: boolean;\n\n /**\n * Flag to enable/disable creation of `pageload` transaction on first pageload.\n *\n * Default: true\n */\n startTransactionOnPageLoad: boolean;\n\n /**\n * The maximum duration of a transaction before it will be marked as \"deadline_exceeded\".\n * If you never want to mark a transaction set it to 0.\n * Time is in seconds.\n *\n * Default: 600\n */\n maxTransactionDuration: number;\n\n /**\n * Flag Transactions where tabs moved to background with \"cancelled\". Browser background tab timing is\n * not suited towards doing precise measurements of operations. By default, we recommend that this option\n * be enabled as background transactions can mess up your statistics in nondeterministic ways.\n *\n * Default: true\n */\n markBackgroundTransactions: boolean;\n\n /**\n * _metricOptions allows the user to send options to change how metrics are collected.\n *\n * _metricOptions is currently experimental.\n *\n * Default: undefined\n */\n _metricOptions?: Partial<{ _reportAllChanges: boolean }>;\n\n /**\n * beforeNavigate is called before a pageload/navigation transaction is created and allows users to modify transaction\n * context data, or drop the transaction entirely (by setting `sampled = false` in the context).\n *\n * Note: For legacy reasons, transactions can also be dropped by returning `undefined`.\n *\n * @param context: The context data which will be passed to `startTransaction` by default\n *\n * @returns A (potentially) modified context object, with `sampled = false` if the transaction should be dropped.\n */\n beforeNavigate?(context: TransactionContext): TransactionContext | undefined;\n\n /**\n * Instrumentation that creates routing change transactions. By default creates\n * pageload and navigation transactions.\n */\n routingInstrumentation(\n customStartTransaction: (context: TransactionContext) => T | undefined,\n startTransactionOnPageLoad?: boolean,\n startTransactionOnLocationChange?: boolean,\n ): void;\n}\n\nconst DEFAULT_BROWSER_TRACING_OPTIONS = {\n idleTimeout: DEFAULT_IDLE_TIMEOUT,\n markBackgroundTransactions: true,\n maxTransactionDuration: DEFAULT_MAX_TRANSACTION_DURATION_SECONDS,\n routingInstrumentation: instrumentRoutingWithDefaults,\n startTransactionOnLocationChange: true,\n startTransactionOnPageLoad: true,\n ...defaultRequestInstrumentationOptions,\n};\n\n/**\n * The Browser Tracing integration automatically instruments browser pageload/navigation\n * actions as transactions, and captures requests, metrics and errors as spans.\n *\n * The integration can be configured with a variety of options, and can be extended to use\n * any routing library. This integration uses {@see IdleTransaction} to create transactions.\n */\nexport class BrowserTracing implements Integration {\n /**\n * @inheritDoc\n */\n public static id: string = 'BrowserTracing';\n\n /** Browser Tracing integration options */\n public options: BrowserTracingOptions;\n\n /**\n * @inheritDoc\n */\n public name: string = BrowserTracing.id;\n\n private _getCurrentHub?: () => Hub;\n\n private readonly _metrics: MetricsInstrumentation;\n\n private readonly _emitOptionsWarning?: boolean;\n\n /** Store configured idle timeout so that it can be added as a tag to transactions */\n private _configuredIdleTimeout: BrowserTracingOptions['idleTimeout'] | undefined = undefined;\n\n public constructor(_options?: Partial) {\n let tracingOrigins = defaultRequestInstrumentationOptions.tracingOrigins;\n // NOTE: Logger doesn't work in constructors, as it's initialized after integrations instances\n if (_options) {\n this._configuredIdleTimeout = _options.idleTimeout;\n if (_options.tracingOrigins && Array.isArray(_options.tracingOrigins) && _options.tracingOrigins.length !== 0) {\n tracingOrigins = _options.tracingOrigins;\n } else {\n IS_DEBUG_BUILD && (this._emitOptionsWarning = true);\n }\n }\n\n this.options = {\n ...DEFAULT_BROWSER_TRACING_OPTIONS,\n ..._options,\n tracingOrigins,\n };\n\n const { _metricOptions } = this.options;\n this._metrics = new MetricsInstrumentation(_metricOptions && _metricOptions._reportAllChanges);\n }\n\n /**\n * @inheritDoc\n */\n public setupOnce(_: (callback: EventProcessor) => void, getCurrentHub: () => Hub): void {\n this._getCurrentHub = getCurrentHub;\n\n if (this._emitOptionsWarning) {\n IS_DEBUG_BUILD &&\n logger.warn(\n '[Tracing] You need to define `tracingOrigins` in the options. Set an array of urls or patterns to trace.',\n );\n IS_DEBUG_BUILD &&\n logger.warn(\n `[Tracing] We added a reasonable default for you: ${defaultRequestInstrumentationOptions.tracingOrigins}`,\n );\n }\n\n // eslint-disable-next-line @typescript-eslint/unbound-method\n const {\n routingInstrumentation: instrumentRouting,\n startTransactionOnLocationChange,\n startTransactionOnPageLoad,\n markBackgroundTransactions,\n traceFetch,\n traceXHR,\n tracingOrigins,\n shouldCreateSpanForRequest,\n } = this.options;\n\n instrumentRouting(\n (context: TransactionContext) => this._createRouteTransaction(context),\n startTransactionOnPageLoad,\n startTransactionOnLocationChange,\n );\n\n if (markBackgroundTransactions) {\n registerBackgroundTabDetection();\n }\n\n instrumentOutgoingRequests({ traceFetch, traceXHR, tracingOrigins, shouldCreateSpanForRequest });\n }\n\n /** Create routing idle transaction. */\n private _createRouteTransaction(context: TransactionContext): Transaction | undefined {\n if (!this._getCurrentHub) {\n IS_DEBUG_BUILD &&\n logger.warn(`[Tracing] Did not create ${context.op} transaction because _getCurrentHub is invalid.`);\n return undefined;\n }\n\n // eslint-disable-next-line @typescript-eslint/unbound-method\n const { beforeNavigate, idleTimeout, maxTransactionDuration } = this.options;\n\n const parentContextFromHeader = context.op === 'pageload' ? getHeaderContext() : undefined;\n\n const expandedContext = {\n ...context,\n ...parentContextFromHeader,\n trimEnd: true,\n };\n const modifiedContext = typeof beforeNavigate === 'function' ? beforeNavigate(expandedContext) : expandedContext;\n\n // For backwards compatibility reasons, beforeNavigate can return undefined to \"drop\" the transaction (prevent it\n // from being sent to Sentry).\n const finalContext = modifiedContext === undefined ? { ...expandedContext, sampled: false } : modifiedContext;\n\n if (finalContext.sampled === false) {\n IS_DEBUG_BUILD && logger.log(`[Tracing] Will not send ${finalContext.op} transaction because of beforeNavigate.`);\n }\n\n IS_DEBUG_BUILD && logger.log(`[Tracing] Starting ${finalContext.op} transaction on scope`);\n\n const hub = this._getCurrentHub();\n const { location } = getGlobalObject() as WindowOrWorkerGlobalScope & { location: Location };\n\n const idleTransaction = startIdleTransaction(\n hub,\n finalContext,\n idleTimeout,\n true,\n { location }, // for use in the tracesSampler\n );\n idleTransaction.registerBeforeFinishCallback((transaction, endTimestamp) => {\n this._metrics.addPerformanceEntries(transaction);\n adjustTransactionDuration(secToMs(maxTransactionDuration), transaction, endTimestamp);\n });\n\n idleTransaction.setTag('idleTimeout', this._configuredIdleTimeout);\n\n return idleTransaction as Transaction;\n }\n}\n\n/**\n * Gets transaction context from a sentry-trace meta.\n *\n * @returns Transaction context data from the header or undefined if there's no header or the header is malformed\n */\nexport function getHeaderContext(): Partial | undefined {\n const header = getMetaContent('sentry-trace');\n if (header) {\n return extractTraceparentData(header);\n }\n\n return undefined;\n}\n\n/** Returns the value of a meta tag */\nexport function getMetaContent(metaName: string): string | null {\n const el = getGlobalObject().document.querySelector(`meta[name=${metaName}]`);\n return el ? el.getAttribute('content') : null;\n}\n\n/** Adjusts transaction value based on max transaction duration */\nfunction adjustTransactionDuration(maxDuration: number, transaction: IdleTransaction, endTimestamp: number): void {\n const diff = endTimestamp - transaction.startTimestamp;\n const isOutdatedTransaction = endTimestamp && (diff > maxDuration || diff < 0);\n if (isOutdatedTransaction) {\n transaction.setStatus('deadline_exceeded');\n transaction.setTag('maxTransactionDurationExceeded', 'true');\n }\n}\n","import { addExtensionMethods } from './hubextensions';\nimport * as Integrations from './integrations';\n\nexport { Integrations };\n\n// This is already exported as part of `Integrations` above (and for the moment will remain so for\n// backwards compatibility), but that interferes with treeshaking, so we also export it separately\n// here.\n//\n// Previously we expected users to import tracing integrations like\n//\n// import { Integrations } from '@sentry/tracing';\n// const instance = new Integrations.BrowserTracing();\n//\n// This makes the integrations unable to be treeshaken though. To address this, we now have\n// this individual export. We now expect users to consume BrowserTracing like so:\n//\n// import { BrowserTracing } from '@sentry/tracing';\n// const instance = new BrowserTracing();\n//\n// For an example of of the new usage of BrowserTracing, see @sentry/nextjs index.client.ts\nexport { BrowserTracing } from './browser';\n\nexport { Span, SpanStatusType, spanStatusfromHttpCode } from './span';\n// eslint-disable-next-line deprecation/deprecation\nexport { SpanStatus } from './spanstatus';\nexport { Transaction } from './transaction';\nexport {\n // TODO deprecate old name in v7\n instrumentOutgoingRequests as registerRequestInstrumentation,\n RequestInstrumentationOptions,\n defaultRequestInstrumentationOptions,\n} from './browser';\nexport { IdleTransaction } from './idletransaction';\nexport { startIdleTransaction } from './hubextensions';\n\n// We are patching the global object with our hub extension methods\naddExtensionMethods();\n\nexport { addExtensionMethods };\n\nexport {\n extractTraceparentData,\n getActiveTransaction,\n hasTracingEnabled,\n stripUrlQueryAndFragment,\n TRACEPARENT_REGEXP,\n} from './utils';\n","// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\n\nimport {\n\tICookieStorageData,\n\tICognitoStorage,\n} from 'amazon-cognito-identity-js';\n\n/**\n * Parameters for user sign up\n */\nexport interface SignUpParams {\n\tusername: string;\n\tpassword: string;\n\tattributes?: object;\n\tvalidationData?: { [key: string]: any };\n\tclientMetadata?: { [key: string]: string };\n\tautoSignIn?: AutoSignInOptions;\n}\n\nexport interface AuthCache {\n\tsetItem();\n\tgetItem();\n\tremoveItem();\n}\n\n/**\n * Auth instance options\n */\nexport interface AuthOptions {\n\tuserPoolId?: string;\n\tuserPoolWebClientId?: string;\n\tidentityPoolId?: string;\n\tregion?: string;\n\tmandatorySignIn?: boolean;\n\tcookieStorage?: ICookieStorageData;\n\toauth?: OAuthOpts;\n\trefreshHandlers?: object;\n\tstorage?: ICognitoStorage;\n\tauthenticationFlowType?: string;\n\tidentityPoolRegion?: string;\n\tclientMetadata?: any;\n\tendpoint?: string;\n\tsignUpVerificationMethod?: 'code' | 'link';\n}\n\nexport enum CognitoHostedUIIdentityProvider {\n\tCognito = 'COGNITO',\n\tGoogle = 'Google',\n\tFacebook = 'Facebook',\n\tAmazon = 'LoginWithAmazon',\n\tApple = 'SignInWithApple',\n}\n\nexport type LegacyProvider =\n\t| 'google'\n\t| 'facebook'\n\t| 'amazon'\n\t| 'developer'\n\t| string;\n\nexport type FederatedSignInOptions = {\n\tprovider: CognitoHostedUIIdentityProvider;\n\tcustomState?: string;\n};\n\nexport type FederatedSignInOptionsCustom = {\n\tcustomProvider: string;\n\tcustomState?: string;\n};\n\nexport function isFederatedSignInOptions(\n\tobj: any\n): obj is FederatedSignInOptions {\n\tconst keys: (keyof FederatedSignInOptions)[] = ['provider'];\n\treturn obj && !!keys.find(k => obj.hasOwnProperty(k));\n}\n\nexport function isFederatedSignInOptionsCustom(\n\tobj: any\n): obj is FederatedSignInOptionsCustom {\n\tconst keys: (keyof FederatedSignInOptionsCustom)[] = ['customProvider'];\n\treturn obj && !!keys.find(k => obj.hasOwnProperty(k));\n}\n\nexport function hasCustomState(obj: any): boolean {\n\tconst keys: (keyof (\n\t\t| FederatedSignInOptions\n\t\t| FederatedSignInOptionsCustom\n\t))[] = ['customState'];\n\treturn obj && !!keys.find(k => obj.hasOwnProperty(k));\n}\n\n/**\n * Details for multi-factor authentication\n */\nexport interface MfaRequiredDetails {\n\tchallengeName: any;\n\tchallengeParameters: any;\n}\n\n/**\n * interface for federatedResponse\n */\nexport interface FederatedResponse {\n\t// access token\n\ttoken: string;\n\t// identity id\n\tidentity_id?: string;\n\t// the universal time when token expired\n\texpires_at: number;\n}\n\n/**\n * interface for federatedUser\n */\nexport interface FederatedUser {\n\tname: string;\n\temail?: string;\n\tpicture?: string;\n}\n\nexport interface AwsCognitoOAuthOpts {\n\tdomain: string;\n\tscope: Array;\n\tredirectSignIn: string;\n\tredirectSignOut: string;\n\tresponseType: string;\n\toptions?: object;\n\turlOpener?: (url: string, redirectUrl: string) => Promise;\n}\n\nexport function isCognitoHostedOpts(\n\toauth: OAuthOpts\n): oauth is AwsCognitoOAuthOpts {\n\treturn (oauth).redirectSignIn !== undefined;\n}\n\nexport interface Auth0OAuthOpts {\n\tdomain: string;\n\tclientID: string;\n\tscope: string;\n\tredirectUri: string;\n\taudience: string;\n\tresponseType: string;\n\treturnTo: string;\n\turlOpener?: (url: string, redirectUrl: string) => Promise;\n}\n\n// Replacing to fix typings\n// export interface OAuth {\n// awsCognito?: awsCognitoOAuthOpts,\n// auth0?: any\n// }\n\nexport type OAuthOpts = AwsCognitoOAuthOpts | Auth0OAuthOpts;\n\nexport interface ConfirmSignUpOptions {\n\tforceAliasCreation?: boolean;\n\tclientMetadata?: ClientMetaData;\n}\n\nexport interface SignOutOpts {\n\tglobal?: boolean;\n}\n\nexport interface CurrentUserOpts {\n\tbypassCache: boolean;\n}\n\nexport interface GetPreferredMFAOpts {\n\tbypassCache: boolean;\n}\n\nexport type UsernamePasswordOpts = {\n\tusername: string;\n\tpassword: string;\n\tvalidationData?: { [key: string]: any };\n};\n\nexport enum AuthErrorTypes {\n\tNoConfig = 'noConfig',\n\tMissingAuthConfig = 'missingAuthConfig',\n\tEmptyUsername = 'emptyUsername',\n\tInvalidUsername = 'invalidUsername',\n\tEmptyPassword = 'emptyPassword',\n\tEmptyCode = 'emptyCode',\n\tSignUpError = 'signUpError',\n\tNoMFA = 'noMFA',\n\tInvalidMFA = 'invalidMFA',\n\tEmptyChallengeResponse = 'emptyChallengeResponse',\n\tNoUserSession = 'noUserSession',\n\tDefault = 'default',\n\tDeviceConfig = 'deviceConfig',\n\tNetworkError = 'networkError',\n\tAutoSignInError = 'autoSignInError',\n}\n\nexport type AuthErrorMessages = { [key in AuthErrorTypes]: AuthErrorMessage };\n\nexport interface AuthErrorMessage {\n\tmessage: string;\n\tlog?: string;\n}\n\n// We can extend this in the future if needed\nexport type SignInOpts = UsernamePasswordOpts;\n\nexport type ClientMetaData =\n\t| {\n\t\t\t[key: string]: string;\n\t }\n\t| undefined;\n\nexport function isUsernamePasswordOpts(obj: any): obj is UsernamePasswordOpts {\n\treturn !!(obj as UsernamePasswordOpts).username;\n}\n\nexport interface IAuthDevice {\n\tid: string;\n\tname: string;\n}\n\nexport interface AutoSignInOptions {\n\tenabled: boolean;\n\tclientMetaData?: ClientMetaData;\n\tvalidationData?: { [key: string]: any };\n}\n\nexport enum GRAPHQL_AUTH_MODE {\n\tAPI_KEY = 'API_KEY',\n\tAWS_IAM = 'AWS_IAM',\n\tOPENID_CONNECT = 'OPENID_CONNECT',\n\tAMAZON_COGNITO_USER_POOLS = 'AMAZON_COGNITO_USER_POOLS',\n\tAWS_LAMBDA = 'AWS_LAMBDA',\n}\n","import devConfig from \"./dev.json\";\nimport prodConfig from \"./prod.json\";\n\nconst configFile = process.env.NODE_ENV === \"development\" ? devConfig : prodConfig;\n\nexport const config = {\n cognito: {\n REGION: process.env.REACT_APP_AWS_REGION,\n USER_POOL_ID: configFile.cognito_user_pool_id.value,\n APP_CLIENT_ID: configFile.aws_cognito_user_pool_app_client_id.value,\n IDENTITY_POOL_ID: configFile.aws_cognito_identity_pool.value,\n },\n};\n\nexport const cognitoConfig = configFile.cognito;\n","export default function _typeof(obj) {\n \"@babel/helpers - typeof\";\n\n return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) {\n return typeof obj;\n } : function (obj) {\n return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n }, _typeof(obj);\n}","import _typeof from \"./typeof.js\";\nexport default function _regeneratorRuntime() {\n \"use strict\"; /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/facebook/regenerator/blob/main/LICENSE */\n _regeneratorRuntime = function _regeneratorRuntime() {\n return exports;\n };\n var exports = {},\n Op = Object.prototype,\n hasOwn = Op.hasOwnProperty,\n defineProperty = Object.defineProperty || function (obj, key, desc) {\n obj[key] = desc.value;\n },\n $Symbol = \"function\" == typeof Symbol ? Symbol : {},\n iteratorSymbol = $Symbol.iterator || \"@@iterator\",\n asyncIteratorSymbol = $Symbol.asyncIterator || \"@@asyncIterator\",\n toStringTagSymbol = $Symbol.toStringTag || \"@@toStringTag\";\n function define(obj, key, value) {\n return Object.defineProperty(obj, key, {\n value: value,\n enumerable: !0,\n configurable: !0,\n writable: !0\n }), obj[key];\n }\n try {\n define({}, \"\");\n } catch (err) {\n define = function define(obj, key, value) {\n return obj[key] = value;\n };\n }\n function wrap(innerFn, outerFn, self, tryLocsList) {\n var protoGenerator = outerFn && outerFn.prototype instanceof Generator ? outerFn : Generator,\n generator = Object.create(protoGenerator.prototype),\n context = new Context(tryLocsList || []);\n return defineProperty(generator, \"_invoke\", {\n value: makeInvokeMethod(innerFn, self, context)\n }), generator;\n }\n function tryCatch(fn, obj, arg) {\n try {\n return {\n type: \"normal\",\n arg: fn.call(obj, arg)\n };\n } catch (err) {\n return {\n type: \"throw\",\n arg: err\n };\n }\n }\n exports.wrap = wrap;\n var ContinueSentinel = {};\n function Generator() {}\n function GeneratorFunction() {}\n function GeneratorFunctionPrototype() {}\n var IteratorPrototype = {};\n define(IteratorPrototype, iteratorSymbol, function () {\n return this;\n });\n var getProto = Object.getPrototypeOf,\n NativeIteratorPrototype = getProto && getProto(getProto(values([])));\n NativeIteratorPrototype && NativeIteratorPrototype !== Op && hasOwn.call(NativeIteratorPrototype, iteratorSymbol) && (IteratorPrototype = NativeIteratorPrototype);\n var Gp = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(IteratorPrototype);\n function defineIteratorMethods(prototype) {\n [\"next\", \"throw\", \"return\"].forEach(function (method) {\n define(prototype, method, function (arg) {\n return this._invoke(method, arg);\n });\n });\n }\n function AsyncIterator(generator, PromiseImpl) {\n function invoke(method, arg, resolve, reject) {\n var record = tryCatch(generator[method], generator, arg);\n if (\"throw\" !== record.type) {\n var result = record.arg,\n value = result.value;\n return value && \"object\" == _typeof(value) && hasOwn.call(value, \"__await\") ? PromiseImpl.resolve(value.__await).then(function (value) {\n invoke(\"next\", value, resolve, reject);\n }, function (err) {\n invoke(\"throw\", err, resolve, reject);\n }) : PromiseImpl.resolve(value).then(function (unwrapped) {\n result.value = unwrapped, resolve(result);\n }, function (error) {\n return invoke(\"throw\", error, resolve, reject);\n });\n }\n reject(record.arg);\n }\n var previousPromise;\n defineProperty(this, \"_invoke\", {\n value: function value(method, arg) {\n function callInvokeWithMethodAndArg() {\n return new PromiseImpl(function (resolve, reject) {\n invoke(method, arg, resolve, reject);\n });\n }\n return previousPromise = previousPromise ? previousPromise.then(callInvokeWithMethodAndArg, callInvokeWithMethodAndArg) : callInvokeWithMethodAndArg();\n }\n });\n }\n function makeInvokeMethod(innerFn, self, context) {\n var state = \"suspendedStart\";\n return function (method, arg) {\n if (\"executing\" === state) throw new Error(\"Generator is already running\");\n if (\"completed\" === state) {\n if (\"throw\" === method) throw arg;\n return doneResult();\n }\n for (context.method = method, context.arg = arg;;) {\n var delegate = context.delegate;\n if (delegate) {\n var delegateResult = maybeInvokeDelegate(delegate, context);\n if (delegateResult) {\n if (delegateResult === ContinueSentinel) continue;\n return delegateResult;\n }\n }\n if (\"next\" === context.method) context.sent = context._sent = context.arg;else if (\"throw\" === context.method) {\n if (\"suspendedStart\" === state) throw state = \"completed\", context.arg;\n context.dispatchException(context.arg);\n } else \"return\" === context.method && context.abrupt(\"return\", context.arg);\n state = \"executing\";\n var record = tryCatch(innerFn, self, context);\n if (\"normal\" === record.type) {\n if (state = context.done ? \"completed\" : \"suspendedYield\", record.arg === ContinueSentinel) continue;\n return {\n value: record.arg,\n done: context.done\n };\n }\n \"throw\" === record.type && (state = \"completed\", context.method = \"throw\", context.arg = record.arg);\n }\n };\n }\n function maybeInvokeDelegate(delegate, context) {\n var methodName = context.method,\n method = delegate.iterator[methodName];\n if (undefined === method) return context.delegate = null, \"throw\" === methodName && delegate.iterator[\"return\"] && (context.method = \"return\", context.arg = undefined, maybeInvokeDelegate(delegate, context), \"throw\" === context.method) || \"return\" !== methodName && (context.method = \"throw\", context.arg = new TypeError(\"The iterator does not provide a '\" + methodName + \"' method\")), ContinueSentinel;\n var record = tryCatch(method, delegate.iterator, context.arg);\n if (\"throw\" === record.type) return context.method = \"throw\", context.arg = record.arg, context.delegate = null, ContinueSentinel;\n var info = record.arg;\n return info ? info.done ? (context[delegate.resultName] = info.value, context.next = delegate.nextLoc, \"return\" !== context.method && (context.method = \"next\", context.arg = undefined), context.delegate = null, ContinueSentinel) : info : (context.method = \"throw\", context.arg = new TypeError(\"iterator result is not an object\"), context.delegate = null, ContinueSentinel);\n }\n function pushTryEntry(locs) {\n var entry = {\n tryLoc: locs[0]\n };\n 1 in locs && (entry.catchLoc = locs[1]), 2 in locs && (entry.finallyLoc = locs[2], entry.afterLoc = locs[3]), this.tryEntries.push(entry);\n }\n function resetTryEntry(entry) {\n var record = entry.completion || {};\n record.type = \"normal\", delete record.arg, entry.completion = record;\n }\n function Context(tryLocsList) {\n this.tryEntries = [{\n tryLoc: \"root\"\n }], tryLocsList.forEach(pushTryEntry, this), this.reset(!0);\n }\n function values(iterable) {\n if (iterable) {\n var iteratorMethod = iterable[iteratorSymbol];\n if (iteratorMethod) return iteratorMethod.call(iterable);\n if (\"function\" == typeof iterable.next) return iterable;\n if (!isNaN(iterable.length)) {\n var i = -1,\n next = function next() {\n for (; ++i < iterable.length;) if (hasOwn.call(iterable, i)) return next.value = iterable[i], next.done = !1, next;\n return next.value = undefined, next.done = !0, next;\n };\n return next.next = next;\n }\n }\n return {\n next: doneResult\n };\n }\n function doneResult() {\n return {\n value: undefined,\n done: !0\n };\n }\n return GeneratorFunction.prototype = GeneratorFunctionPrototype, defineProperty(Gp, \"constructor\", {\n value: GeneratorFunctionPrototype,\n configurable: !0\n }), defineProperty(GeneratorFunctionPrototype, \"constructor\", {\n value: GeneratorFunction,\n configurable: !0\n }), GeneratorFunction.displayName = define(GeneratorFunctionPrototype, toStringTagSymbol, \"GeneratorFunction\"), exports.isGeneratorFunction = function (genFun) {\n var ctor = \"function\" == typeof genFun && genFun.constructor;\n return !!ctor && (ctor === GeneratorFunction || \"GeneratorFunction\" === (ctor.displayName || ctor.name));\n }, exports.mark = function (genFun) {\n return Object.setPrototypeOf ? Object.setPrototypeOf(genFun, GeneratorFunctionPrototype) : (genFun.__proto__ = GeneratorFunctionPrototype, define(genFun, toStringTagSymbol, \"GeneratorFunction\")), genFun.prototype = Object.create(Gp), genFun;\n }, exports.awrap = function (arg) {\n return {\n __await: arg\n };\n }, defineIteratorMethods(AsyncIterator.prototype), define(AsyncIterator.prototype, asyncIteratorSymbol, function () {\n return this;\n }), exports.AsyncIterator = AsyncIterator, exports.async = function (innerFn, outerFn, self, tryLocsList, PromiseImpl) {\n void 0 === PromiseImpl && (PromiseImpl = Promise);\n var iter = new AsyncIterator(wrap(innerFn, outerFn, self, tryLocsList), PromiseImpl);\n return exports.isGeneratorFunction(outerFn) ? iter : iter.next().then(function (result) {\n return result.done ? result.value : iter.next();\n });\n }, defineIteratorMethods(Gp), define(Gp, toStringTagSymbol, \"Generator\"), define(Gp, iteratorSymbol, function () {\n return this;\n }), define(Gp, \"toString\", function () {\n return \"[object Generator]\";\n }), exports.keys = function (val) {\n var object = Object(val),\n keys = [];\n for (var key in object) keys.push(key);\n return keys.reverse(), function next() {\n for (; keys.length;) {\n var key = keys.pop();\n if (key in object) return next.value = key, next.done = !1, next;\n }\n return next.done = !0, next;\n };\n }, exports.values = values, Context.prototype = {\n constructor: Context,\n reset: function reset(skipTempReset) {\n if (this.prev = 0, this.next = 0, this.sent = this._sent = undefined, this.done = !1, this.delegate = null, this.method = \"next\", this.arg = undefined, this.tryEntries.forEach(resetTryEntry), !skipTempReset) for (var name in this) \"t\" === name.charAt(0) && hasOwn.call(this, name) && !isNaN(+name.slice(1)) && (this[name] = undefined);\n },\n stop: function stop() {\n this.done = !0;\n var rootRecord = this.tryEntries[0].completion;\n if (\"throw\" === rootRecord.type) throw rootRecord.arg;\n return this.rval;\n },\n dispatchException: function dispatchException(exception) {\n if (this.done) throw exception;\n var context = this;\n function handle(loc, caught) {\n return record.type = \"throw\", record.arg = exception, context.next = loc, caught && (context.method = \"next\", context.arg = undefined), !!caught;\n }\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i],\n record = entry.completion;\n if (\"root\" === entry.tryLoc) return handle(\"end\");\n if (entry.tryLoc <= this.prev) {\n var hasCatch = hasOwn.call(entry, \"catchLoc\"),\n hasFinally = hasOwn.call(entry, \"finallyLoc\");\n if (hasCatch && hasFinally) {\n if (this.prev < entry.catchLoc) return handle(entry.catchLoc, !0);\n if (this.prev < entry.finallyLoc) return handle(entry.finallyLoc);\n } else if (hasCatch) {\n if (this.prev < entry.catchLoc) return handle(entry.catchLoc, !0);\n } else {\n if (!hasFinally) throw new Error(\"try statement without catch or finally\");\n if (this.prev < entry.finallyLoc) return handle(entry.finallyLoc);\n }\n }\n }\n },\n abrupt: function abrupt(type, arg) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.tryLoc <= this.prev && hasOwn.call(entry, \"finallyLoc\") && this.prev < entry.finallyLoc) {\n var finallyEntry = entry;\n break;\n }\n }\n finallyEntry && (\"break\" === type || \"continue\" === type) && finallyEntry.tryLoc <= arg && arg <= finallyEntry.finallyLoc && (finallyEntry = null);\n var record = finallyEntry ? finallyEntry.completion : {};\n return record.type = type, record.arg = arg, finallyEntry ? (this.method = \"next\", this.next = finallyEntry.finallyLoc, ContinueSentinel) : this.complete(record);\n },\n complete: function complete(record, afterLoc) {\n if (\"throw\" === record.type) throw record.arg;\n return \"break\" === record.type || \"continue\" === record.type ? this.next = record.arg : \"return\" === record.type ? (this.rval = this.arg = record.arg, this.method = \"return\", this.next = \"end\") : \"normal\" === record.type && afterLoc && (this.next = afterLoc), ContinueSentinel;\n },\n finish: function finish(finallyLoc) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.finallyLoc === finallyLoc) return this.complete(entry.completion, entry.afterLoc), resetTryEntry(entry), ContinueSentinel;\n }\n },\n \"catch\": function _catch(tryLoc) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.tryLoc === tryLoc) {\n var record = entry.completion;\n if (\"throw\" === record.type) {\n var thrown = record.arg;\n resetTryEntry(entry);\n }\n return thrown;\n }\n }\n throw new Error(\"illegal catch attempt\");\n },\n delegateYield: function delegateYield(iterable, resultName, nextLoc) {\n return this.delegate = {\n iterator: values(iterable),\n resultName: resultName,\n nextLoc: nextLoc\n }, \"next\" === this.method && (this.arg = undefined), ContinueSentinel;\n }\n }, exports;\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 if (info.done) {\n resolve(value);\n } else {\n Promise.resolve(value).then(_next, _throw);\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 function _next(value) {\n asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"next\", value);\n }\n function _throw(err) {\n asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"throw\", err);\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}","import _typeof from \"./typeof.js\";\nimport toPrimitive from \"./toPrimitive.js\";\nexport default function _toPropertyKey(arg) {\n var key = toPrimitive(arg, \"string\");\n return _typeof(key) === \"symbol\" ? key : String(key);\n}","import _typeof from \"./typeof.js\";\nexport default function _toPrimitive(input, hint) {\n if (_typeof(input) !== \"object\" || input === null) return input;\n var prim = input[Symbol.toPrimitive];\n if (prim !== undefined) {\n var res = prim.call(input, hint || \"default\");\n if (_typeof(res) !== \"object\") return res;\n throw new TypeError(\"@@toPrimitive must return a primitive value.\");\n }\n return (hint === \"string\" ? String : Number)(input);\n}","import toPropertyKey from \"./toPropertyKey.js\";\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, toPropertyKey(descriptor.key), descriptor);\n }\n}\nexport default function _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n Object.defineProperty(Constructor, \"prototype\", {\n writable: false\n });\n return Constructor;\n}","import * as cookie from 'cookie';\r\nexport function hasDocumentCookie() {\r\n // Can we get/set cookies on document.cookie?\r\n return typeof document === 'object' && typeof document.cookie === 'string';\r\n}\r\nexport function cleanCookies() {\r\n document.cookie.split(';').forEach(function (c) {\r\n document.cookie = c\r\n .replace(/^ +/, '')\r\n .replace(/=.*/, '=;expires=' + new Date().toUTCString() + ';path=/');\r\n });\r\n}\r\nexport function parseCookies(cookies, options) {\r\n if (typeof cookies === 'string') {\r\n return cookie.parse(cookies, options);\r\n }\r\n else if (typeof cookies === 'object' && cookies !== null) {\r\n return cookies;\r\n }\r\n else {\r\n return {};\r\n }\r\n}\r\nexport function isParsingCookie(value, doNotParse) {\r\n if (typeof doNotParse === 'undefined') {\r\n // We guess if the cookie start with { or [, it has been serialized\r\n doNotParse =\r\n !value || (value[0] !== '{' && value[0] !== '[' && value[0] !== '\"');\r\n }\r\n return !doNotParse;\r\n}\r\nexport function readCookie(value, options) {\r\n if (options === void 0) { options = {}; }\r\n var cleanValue = cleanupCookieValue(value);\r\n if (isParsingCookie(cleanValue, options.doNotParse)) {\r\n try {\r\n return JSON.parse(cleanValue);\r\n }\r\n catch (e) {\r\n // At least we tried\r\n }\r\n }\r\n // Ignore clean value if we failed the deserialization\r\n // It is not relevant anymore to trim those values\r\n return value;\r\n}\r\nfunction cleanupCookieValue(value) {\r\n // express prepend j: before serializing a cookie\r\n if (value && value[0] === 'j' && value[1] === ':') {\r\n return value.substr(2);\r\n }\r\n return value;\r\n}\r\n","var __assign = (this && this.__assign) || function () {\r\n __assign = Object.assign || function(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\r\n t[p] = s[p];\r\n }\r\n return t;\r\n };\r\n return __assign.apply(this, arguments);\r\n};\r\nimport * as cookie from 'cookie';\r\nimport { hasDocumentCookie, parseCookies, readCookie } from './utils';\r\nvar Cookies = /** @class */ (function () {\r\n function Cookies(cookies, options) {\r\n var _this = this;\r\n this.changeListeners = [];\r\n this.HAS_DOCUMENT_COOKIE = false;\r\n this.cookies = parseCookies(cookies, options);\r\n new Promise(function () {\r\n _this.HAS_DOCUMENT_COOKIE = hasDocumentCookie();\r\n }).catch(function () { });\r\n }\r\n Cookies.prototype._updateBrowserValues = function (parseOptions) {\r\n if (!this.HAS_DOCUMENT_COOKIE) {\r\n return;\r\n }\r\n this.cookies = cookie.parse(document.cookie, parseOptions);\r\n };\r\n Cookies.prototype._emitChange = function (params) {\r\n for (var i = 0; i < this.changeListeners.length; ++i) {\r\n this.changeListeners[i](params);\r\n }\r\n };\r\n Cookies.prototype.get = function (name, options, parseOptions) {\r\n if (options === void 0) { options = {}; }\r\n this._updateBrowserValues(parseOptions);\r\n return readCookie(this.cookies[name], options);\r\n };\r\n Cookies.prototype.getAll = function (options, parseOptions) {\r\n if (options === void 0) { options = {}; }\r\n this._updateBrowserValues(parseOptions);\r\n var result = {};\r\n for (var name_1 in this.cookies) {\r\n result[name_1] = readCookie(this.cookies[name_1], options);\r\n }\r\n return result;\r\n };\r\n Cookies.prototype.set = function (name, value, options) {\r\n var _a;\r\n if (typeof value === 'object') {\r\n value = JSON.stringify(value);\r\n }\r\n this.cookies = __assign(__assign({}, this.cookies), (_a = {}, _a[name] = value, _a));\r\n if (this.HAS_DOCUMENT_COOKIE) {\r\n document.cookie = cookie.serialize(name, value, options);\r\n }\r\n this._emitChange({ name: name, value: value, options: options });\r\n };\r\n Cookies.prototype.remove = function (name, options) {\r\n var finalOptions = (options = __assign(__assign({}, options), { expires: new Date(1970, 1, 1, 0, 0, 1), maxAge: 0 }));\r\n this.cookies = __assign({}, this.cookies);\r\n delete this.cookies[name];\r\n if (this.HAS_DOCUMENT_COOKIE) {\r\n document.cookie = cookie.serialize(name, '', finalOptions);\r\n }\r\n this._emitChange({ name: name, value: undefined, options: options });\r\n };\r\n Cookies.prototype.addChangeListener = function (callback) {\r\n this.changeListeners.push(callback);\r\n };\r\n Cookies.prototype.removeChangeListener = function (callback) {\r\n var idx = this.changeListeners.indexOf(callback);\r\n if (idx >= 0) {\r\n this.changeListeners.splice(idx, 1);\r\n }\r\n };\r\n return Cookies;\r\n}());\r\nexport default Cookies;\r\n","import Cookies from './Cookies';\r\nexport default Cookies;\r\n","import Cookies, { CookieSetOptions } from 'universal-cookie';\nimport { browserOrNode } from '../JS';\n\ntype Store = Record;\n\nconst { isBrowser } = browserOrNode();\n\n// Avoid using @types/next because @aws-amplify/ui-angular's version of TypeScript is too old to support it\ntype Context = { req?: any };\n\nconst ONE_YEAR_IN_MS = 365 * 24 * 60 * 60 * 1000;\n\nexport class UniversalStorage implements Storage {\n\tcookies = new Cookies();\n\tstore: Store = isBrowser ? window.localStorage : Object.create(null);\n\n\tconstructor(context: Context = {}) {\n\t\tthis.cookies = context.req\n\t\t\t? new Cookies(context.req.headers.cookie)\n\t\t\t: new Cookies();\n\n\t\tObject.assign(this.store, this.cookies.getAll());\n\t}\n\n\tget length() {\n\t\treturn Object.entries(this.store).length;\n\t}\n\n\tclear() {\n\t\tArray.from(new Array(this.length))\n\t\t\t.map((_, i) => this.key(i))\n\t\t\t.forEach(key => this.removeItem(key));\n\t}\n\n\tgetItem(key: keyof Store) {\n\t\treturn this.getLocalItem(key);\n\t}\n\n\tprotected getLocalItem(key: keyof Store) {\n\t\treturn Object.prototype.hasOwnProperty.call(this.store, key)\n\t\t\t? this.store[key]\n\t\t\t: null;\n\t}\n\n\tprotected getUniversalItem(key: keyof Store) {\n\t\treturn this.cookies.get(key);\n\t}\n\n\tkey(index: number) {\n\t\treturn Object.keys(this.store)[index];\n\t}\n\n\tremoveItem(key: string) {\n\t\tthis.removeLocalItem(key);\n\t\tthis.removeUniversalItem(key);\n\t}\n\n\tprotected removeLocalItem(key: keyof Store) {\n\t\tdelete this.store[key];\n\t}\n\n\tprotected removeUniversalItem(key: keyof Store) {\n\t\tthis.cookies.remove(key, {\n\t\t\tpath: '/',\n\t\t});\n\t}\n\n\tsetItem(key: keyof Store, value: string) {\n\t\tthis.setLocalItem(key, value);\n\n\t\t// keys take the shape:\n\t\t// 1. `${ProviderPrefix}.${userPoolClientId}.${username}.${tokenType}\n\t\t// 2. `${ProviderPrefix}.${userPoolClientId}.LastAuthUser\n\t\tconst tokenType = key.split('.').pop();\n\n\t\tconst sessionTokenTypes = [\n\t\t\t'LastAuthUser',\n\t\t\t'accessToken',\n\t\t\t// refreshToken originates on the client, but SSR pages won't fail when this expires\n\t\t\t// Note: the new `accessToken` will also be refreshed on the client (since Amplify doesn't set server-side cookies)\n\t\t\t'refreshToken',\n\t\t\t// Required for CognitoUserSession\n\t\t\t'idToken',\n\t\t\t// userData is used when `Auth.currentAuthenticatedUser({ bypassCache: false })`.\n\t\t\t// Can be persisted to speed up calls to `Auth.currentAuthenticatedUser()`\n\t\t\t// 'userData',\n\n\t\t\t// Ignoring clockDrift on the server for now, but needs testing\n\t\t\t// 'clockDrift',\n\t\t];\n\t\tif (sessionTokenTypes.includes(tokenType ?? '')) {\n\t\t\tthis.setUniversalItem(key, value, {\n\t\t\t\texpires: new Date(Date.now() + ONE_YEAR_IN_MS),\n\t\t\t});\n\t\t}\n\t}\n\n\tprotected setLocalItem(key: keyof Store, value: string) {\n\t\tthis.store[key] = value;\n\t}\n\n\tprotected setUniversalItem(\n\t\tkey: keyof Store,\n\t\tvalue: string,\n\t\toptions: CookieSetOptions = {}\n\t) {\n\t\tthis.cookies.set(key, value, {\n\t\t\t...options,\n\t\t\tpath: '/',\n\t\t\t// `httpOnly` cannot be set via JavaScript: https://developer.mozilla.org/en-US/docs/Web/HTTP/Cookies#JavaScript_access_using_Document.cookie\n\t\t\tsameSite: true,\n\t\t\t// Allow unsecure requests to http://localhost:3000/ when in development.\n\t\t\tsecure:\n\t\t\t\tisBrowser && window.location.hostname === 'localhost' ? false : true,\n\t\t});\n\t}\n}\n","/*!\n * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n * SPDX-License-Identifier: Apache-2.0\n */\n/** @class */\nvar AuthenticationDetails = /*#__PURE__*/function () {\n /**\n * Constructs a new AuthenticationDetails object\n * @param {object=} data Creation options.\n * @param {string} data.Username User being authenticated.\n * @param {string} data.Password Plain-text password to authenticate with.\n * @param {(AttributeArg[])?} data.ValidationData Application extra metadata.\n * @param {(AttributeArg[])?} data.AuthParamaters Authentication paramaters for custom auth.\n */\n function AuthenticationDetails(data) {\n var _ref = data || {},\n ValidationData = _ref.ValidationData,\n Username = _ref.Username,\n Password = _ref.Password,\n AuthParameters = _ref.AuthParameters,\n ClientMetadata = _ref.ClientMetadata;\n this.validationData = ValidationData || {};\n this.authParameters = AuthParameters || {};\n this.clientMetadata = ClientMetadata || {};\n this.username = Username;\n this.password = Password;\n }\n\n /**\n * @returns {string} the record's username\n */\n var _proto = AuthenticationDetails.prototype;\n _proto.getUsername = function getUsername() {\n return this.username;\n }\n\n /**\n * @returns {string} the record's password\n */;\n _proto.getPassword = function getPassword() {\n return this.password;\n }\n\n /**\n * @returns {Array} the record's validationData\n */;\n _proto.getValidationData = function getValidationData() {\n return this.validationData;\n }\n\n /**\n * @returns {Array} the record's authParameters\n */;\n _proto.getAuthParameters = function getAuthParameters() {\n return this.authParameters;\n }\n\n /**\n * @returns {ClientMetadata} the clientMetadata for a Lambda trigger\n */;\n _proto.getClientMetadata = function getClientMetadata() {\n return this.clientMetadata;\n };\n return AuthenticationDetails;\n}();\nexport { AuthenticationDetails as default };","var crypto;\n\n// Native crypto from window (Browser)\nif (typeof window !== 'undefined' && window.crypto) {\n crypto = window.crypto;\n}\n\n// Native (experimental IE 11) crypto from window (Browser)\nif (!crypto && typeof window !== 'undefined' && window.msCrypto) {\n crypto = window.msCrypto;\n}\n\n/*\n * Cryptographically secure pseudorandom number generator\n * As Math.random() is cryptographically not safe to use\n */\nexport default function cryptoSecureRandomInt() {\n if (crypto) {\n // Use getRandomValues method (Browser)\n if (typeof crypto.getRandomValues === 'function') {\n try {\n return crypto.getRandomValues(new Uint32Array(1))[0];\n } catch (err) {}\n }\n\n // Use randomBytes method (NodeJS)\n if (typeof crypto.randomBytes === 'function') {\n try {\n return crypto.randomBytes(4).readInt32LE();\n } catch (err) {}\n }\n }\n throw new Error('Native crypto module could not be used to get secure random number.');\n}","import cryptoSecureRandomInt from './cryptoSecureRandomInt';\n\n/**\n * Hex encoding strategy.\n * Converts a word array to a hex string.\n * @param {WordArray} wordArray The word array.\n * @return {string} The hex string.\n * @static\n */\nfunction hexStringify(wordArray) {\n // Shortcuts\n var words = wordArray.words;\n var sigBytes = wordArray.sigBytes;\n\n // Convert\n var hexChars = [];\n for (var i = 0; i < sigBytes; i++) {\n var bite = words[i >>> 2] >>> 24 - i % 4 * 8 & 0xff;\n hexChars.push((bite >>> 4).toString(16));\n hexChars.push((bite & 0x0f).toString(16));\n }\n return hexChars.join('');\n}\nvar WordArray = /*#__PURE__*/function () {\n function WordArray(words, sigBytes) {\n words = this.words = words || [];\n if (sigBytes != undefined) {\n this.sigBytes = sigBytes;\n } else {\n this.sigBytes = words.length * 4;\n }\n }\n var _proto = WordArray.prototype;\n _proto.random = function random(nBytes) {\n var words = [];\n for (var i = 0; i < nBytes; i += 4) {\n words.push(cryptoSecureRandomInt());\n }\n return new WordArray(words, nBytes);\n };\n _proto.toString = function toString() {\n return hexStringify(this);\n };\n return WordArray;\n}();\nexport { WordArray as default };","// A small implementation of BigInteger based on http://www-cs-students.stanford.edu/~tjw/jsbn/\n//\n// All public methods have been removed except the following:\n// new BigInteger(a, b) (only radix 2, 4, 8, 16 and 32 supported)\n// toString (only radix 2, 4, 8, 16 and 32 supported)\n// negate\n// abs\n// compareTo\n// bitLength\n// mod\n// equals\n// add\n// subtract\n// multiply\n// divide\n// modPow\n\nexport default BigInteger;\n\n/*\n * Copyright (c) 2003-2005 Tom Wu\n * All Rights Reserved.\n *\n * Permission is hereby granted, free of charge, to any person obtaining\n * a copy of this software and associated documentation files (the\n * \"Software\"), to deal in the Software without restriction, including\n * without limitation the rights to use, copy, modify, merge, publish,\n * distribute, sublicense, and/or sell copies of the Software, and to\n * permit persons to whom the Software is furnished to do so, subject to\n * the following conditions:\n *\n * The above copyright notice and this permission notice shall be\n * included in all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS-IS\" AND WITHOUT WARRANTY OF ANY KIND,\n * EXPRESS, IMPLIED OR OTHERWISE, INCLUDING WITHOUT LIMITATION, ANY\n * WARRANTY OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.\n *\n * IN NO EVENT SHALL TOM WU BE LIABLE FOR ANY SPECIAL, INCIDENTAL,\n * INDIRECT OR CONSEQUENTIAL DAMAGES OF ANY KIND, OR ANY DAMAGES WHATSOEVER\n * RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER OR NOT ADVISED OF\n * THE POSSIBILITY OF DAMAGE, AND ON ANY THEORY OF LIABILITY, ARISING OUT\n * OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.\n *\n * In addition, the following condition applies:\n *\n * All redistributions must retain an intact copy of this copyright notice\n * and disclaimer.\n */\n\n// (public) Constructor\nfunction BigInteger(a, b) {\n if (a != null) this.fromString(a, b);\n}\n\n// return new, unset BigInteger\nfunction nbi() {\n return new BigInteger(null);\n}\n\n// Bits per digit\nvar dbits;\n\n// JavaScript engine analysis\nvar canary = 0xdeadbeefcafe;\nvar j_lm = (canary & 0xffffff) == 0xefcafe;\n\n// am: Compute w_j += (x*this_i), propagate carries,\n// c is initial carry, returns final carry.\n// c < 3*dvalue, x < 2*dvalue, this_i < dvalue\n// We need to select the fastest one that works in this environment.\n\n// am1: use a single mult and divide to get the high bits,\n// max digit bits should be 26 because\n// max internal value = 2*dvalue^2-2*dvalue (< 2^53)\nfunction am1(i, x, w, j, c, n) {\n while (--n >= 0) {\n var v = x * this[i++] + w[j] + c;\n c = Math.floor(v / 0x4000000);\n w[j++] = v & 0x3ffffff;\n }\n return c;\n}\n// am2 avoids a big mult-and-extract completely.\n// Max digit bits should be <= 30 because we do bitwise ops\n// on values up to 2*hdvalue^2-hdvalue-1 (< 2^31)\nfunction am2(i, x, w, j, c, n) {\n var xl = x & 0x7fff,\n xh = x >> 15;\n while (--n >= 0) {\n var l = this[i] & 0x7fff;\n var h = this[i++] >> 15;\n var m = xh * l + h * xl;\n l = xl * l + ((m & 0x7fff) << 15) + w[j] + (c & 0x3fffffff);\n c = (l >>> 30) + (m >>> 15) + xh * h + (c >>> 30);\n w[j++] = l & 0x3fffffff;\n }\n return c;\n}\n// Alternately, set max digit bits to 28 since some\n// browsers slow down when dealing with 32-bit numbers.\nfunction am3(i, x, w, j, c, n) {\n var xl = x & 0x3fff,\n xh = x >> 14;\n while (--n >= 0) {\n var l = this[i] & 0x3fff;\n var h = this[i++] >> 14;\n var m = xh * l + h * xl;\n l = xl * l + ((m & 0x3fff) << 14) + w[j] + c;\n c = (l >> 28) + (m >> 14) + xh * h;\n w[j++] = l & 0xfffffff;\n }\n return c;\n}\nvar inBrowser = typeof navigator !== 'undefined';\nif (inBrowser && j_lm && navigator.appName == 'Microsoft Internet Explorer') {\n BigInteger.prototype.am = am2;\n dbits = 30;\n} else if (inBrowser && j_lm && navigator.appName != 'Netscape') {\n BigInteger.prototype.am = am1;\n dbits = 26;\n} else {\n // Mozilla/Netscape seems to prefer am3\n BigInteger.prototype.am = am3;\n dbits = 28;\n}\nBigInteger.prototype.DB = dbits;\nBigInteger.prototype.DM = (1 << dbits) - 1;\nBigInteger.prototype.DV = 1 << dbits;\nvar BI_FP = 52;\nBigInteger.prototype.FV = Math.pow(2, BI_FP);\nBigInteger.prototype.F1 = BI_FP - dbits;\nBigInteger.prototype.F2 = 2 * dbits - BI_FP;\n\n// Digit conversions\nvar BI_RM = '0123456789abcdefghijklmnopqrstuvwxyz';\nvar BI_RC = new Array();\nvar rr, vv;\nrr = '0'.charCodeAt(0);\nfor (vv = 0; vv <= 9; ++vv) BI_RC[rr++] = vv;\nrr = 'a'.charCodeAt(0);\nfor (vv = 10; vv < 36; ++vv) BI_RC[rr++] = vv;\nrr = 'A'.charCodeAt(0);\nfor (vv = 10; vv < 36; ++vv) BI_RC[rr++] = vv;\nfunction int2char(n) {\n return BI_RM.charAt(n);\n}\nfunction intAt(s, i) {\n var c = BI_RC[s.charCodeAt(i)];\n return c == null ? -1 : c;\n}\n\n// (protected) copy this to r\nfunction bnpCopyTo(r) {\n for (var i = this.t - 1; i >= 0; --i) r[i] = this[i];\n r.t = this.t;\n r.s = this.s;\n}\n\n// (protected) set from integer value x, -DV <= x < DV\nfunction bnpFromInt(x) {\n this.t = 1;\n this.s = x < 0 ? -1 : 0;\n if (x > 0) this[0] = x;else if (x < -1) this[0] = x + this.DV;else this.t = 0;\n}\n\n// return bigint initialized to value\nfunction nbv(i) {\n var r = nbi();\n r.fromInt(i);\n return r;\n}\n\n// (protected) set from string and radix\nfunction bnpFromString(s, b) {\n var k;\n if (b == 16) k = 4;else if (b == 8) k = 3;else if (b == 2) k = 1;else if (b == 32) k = 5;else if (b == 4) k = 2;else throw new Error('Only radix 2, 4, 8, 16, 32 are supported');\n this.t = 0;\n this.s = 0;\n var i = s.length,\n mi = false,\n sh = 0;\n while (--i >= 0) {\n var x = intAt(s, i);\n if (x < 0) {\n if (s.charAt(i) == '-') mi = true;\n continue;\n }\n mi = false;\n if (sh == 0) this[this.t++] = x;else if (sh + k > this.DB) {\n this[this.t - 1] |= (x & (1 << this.DB - sh) - 1) << sh;\n this[this.t++] = x >> this.DB - sh;\n } else this[this.t - 1] |= x << sh;\n sh += k;\n if (sh >= this.DB) sh -= this.DB;\n }\n this.clamp();\n if (mi) BigInteger.ZERO.subTo(this, this);\n}\n\n// (protected) clamp off excess high words\nfunction bnpClamp() {\n var c = this.s & this.DM;\n while (this.t > 0 && this[this.t - 1] == c) --this.t;\n}\n\n// (public) return string representation in given radix\nfunction bnToString(b) {\n if (this.s < 0) return '-' + this.negate().toString(b);\n var k;\n if (b == 16) k = 4;else if (b == 8) k = 3;else if (b == 2) k = 1;else if (b == 32) k = 5;else if (b == 4) k = 2;else throw new Error('Only radix 2, 4, 8, 16, 32 are supported');\n var km = (1 << k) - 1,\n d,\n m = false,\n r = '',\n i = this.t;\n var p = this.DB - i * this.DB % k;\n if (i-- > 0) {\n if (p < this.DB && (d = this[i] >> p) > 0) {\n m = true;\n r = int2char(d);\n }\n while (i >= 0) {\n if (p < k) {\n d = (this[i] & (1 << p) - 1) << k - p;\n d |= this[--i] >> (p += this.DB - k);\n } else {\n d = this[i] >> (p -= k) & km;\n if (p <= 0) {\n p += this.DB;\n --i;\n }\n }\n if (d > 0) m = true;\n if (m) r += int2char(d);\n }\n }\n return m ? r : '0';\n}\n\n// (public) -this\nfunction bnNegate() {\n var r = nbi();\n BigInteger.ZERO.subTo(this, r);\n return r;\n}\n\n// (public) |this|\nfunction bnAbs() {\n return this.s < 0 ? this.negate() : this;\n}\n\n// (public) return + if this > a, - if this < a, 0 if equal\nfunction bnCompareTo(a) {\n var r = this.s - a.s;\n if (r != 0) return r;\n var i = this.t;\n r = i - a.t;\n if (r != 0) return this.s < 0 ? -r : r;\n while (--i >= 0) if ((r = this[i] - a[i]) != 0) return r;\n return 0;\n}\n\n// returns bit length of the integer x\nfunction nbits(x) {\n var r = 1,\n t;\n if ((t = x >>> 16) != 0) {\n x = t;\n r += 16;\n }\n if ((t = x >> 8) != 0) {\n x = t;\n r += 8;\n }\n if ((t = x >> 4) != 0) {\n x = t;\n r += 4;\n }\n if ((t = x >> 2) != 0) {\n x = t;\n r += 2;\n }\n if ((t = x >> 1) != 0) {\n x = t;\n r += 1;\n }\n return r;\n}\n\n// (public) return the number of bits in \"this\"\nfunction bnBitLength() {\n if (this.t <= 0) return 0;\n return this.DB * (this.t - 1) + nbits(this[this.t - 1] ^ this.s & this.DM);\n}\n\n// (protected) r = this << n*DB\nfunction bnpDLShiftTo(n, r) {\n var i;\n for (i = this.t - 1; i >= 0; --i) r[i + n] = this[i];\n for (i = n - 1; i >= 0; --i) r[i] = 0;\n r.t = this.t + n;\n r.s = this.s;\n}\n\n// (protected) r = this >> n*DB\nfunction bnpDRShiftTo(n, r) {\n for (var i = n; i < this.t; ++i) r[i - n] = this[i];\n r.t = Math.max(this.t - n, 0);\n r.s = this.s;\n}\n\n// (protected) r = this << n\nfunction bnpLShiftTo(n, r) {\n var bs = n % this.DB;\n var cbs = this.DB - bs;\n var bm = (1 << cbs) - 1;\n var ds = Math.floor(n / this.DB),\n c = this.s << bs & this.DM,\n i;\n for (i = this.t - 1; i >= 0; --i) {\n r[i + ds + 1] = this[i] >> cbs | c;\n c = (this[i] & bm) << bs;\n }\n for (i = ds - 1; i >= 0; --i) r[i] = 0;\n r[ds] = c;\n r.t = this.t + ds + 1;\n r.s = this.s;\n r.clamp();\n}\n\n// (protected) r = this >> n\nfunction bnpRShiftTo(n, r) {\n r.s = this.s;\n var ds = Math.floor(n / this.DB);\n if (ds >= this.t) {\n r.t = 0;\n return;\n }\n var bs = n % this.DB;\n var cbs = this.DB - bs;\n var bm = (1 << bs) - 1;\n r[0] = this[ds] >> bs;\n for (var i = ds + 1; i < this.t; ++i) {\n r[i - ds - 1] |= (this[i] & bm) << cbs;\n r[i - ds] = this[i] >> bs;\n }\n if (bs > 0) r[this.t - ds - 1] |= (this.s & bm) << cbs;\n r.t = this.t - ds;\n r.clamp();\n}\n\n// (protected) r = this - a\nfunction bnpSubTo(a, r) {\n var i = 0,\n c = 0,\n m = Math.min(a.t, this.t);\n while (i < m) {\n c += this[i] - a[i];\n r[i++] = c & this.DM;\n c >>= this.DB;\n }\n if (a.t < this.t) {\n c -= a.s;\n while (i < this.t) {\n c += this[i];\n r[i++] = c & this.DM;\n c >>= this.DB;\n }\n c += this.s;\n } else {\n c += this.s;\n while (i < a.t) {\n c -= a[i];\n r[i++] = c & this.DM;\n c >>= this.DB;\n }\n c -= a.s;\n }\n r.s = c < 0 ? -1 : 0;\n if (c < -1) r[i++] = this.DV + c;else if (c > 0) r[i++] = c;\n r.t = i;\n r.clamp();\n}\n\n// (protected) r = this * a, r != this,a (HAC 14.12)\n// \"this\" should be the larger one if appropriate.\nfunction bnpMultiplyTo(a, r) {\n var x = this.abs(),\n y = a.abs();\n var i = x.t;\n r.t = i + y.t;\n while (--i >= 0) r[i] = 0;\n for (i = 0; i < y.t; ++i) r[i + x.t] = x.am(0, y[i], r, i, 0, x.t);\n r.s = 0;\n r.clamp();\n if (this.s != a.s) BigInteger.ZERO.subTo(r, r);\n}\n\n// (protected) r = this^2, r != this (HAC 14.16)\nfunction bnpSquareTo(r) {\n var x = this.abs();\n var i = r.t = 2 * x.t;\n while (--i >= 0) r[i] = 0;\n for (i = 0; i < x.t - 1; ++i) {\n var c = x.am(i, x[i], r, 2 * i, 0, 1);\n if ((r[i + x.t] += x.am(i + 1, 2 * x[i], r, 2 * i + 1, c, x.t - i - 1)) >= x.DV) {\n r[i + x.t] -= x.DV;\n r[i + x.t + 1] = 1;\n }\n }\n if (r.t > 0) r[r.t - 1] += x.am(i, x[i], r, 2 * i, 0, 1);\n r.s = 0;\n r.clamp();\n}\n\n// (protected) divide this by m, quotient and remainder to q, r (HAC 14.20)\n// r != q, this != m. q or r may be null.\nfunction bnpDivRemTo(m, q, r) {\n var pm = m.abs();\n if (pm.t <= 0) return;\n var pt = this.abs();\n if (pt.t < pm.t) {\n if (q != null) q.fromInt(0);\n if (r != null) this.copyTo(r);\n return;\n }\n if (r == null) r = nbi();\n var y = nbi(),\n ts = this.s,\n ms = m.s;\n var nsh = this.DB - nbits(pm[pm.t - 1]);\n // normalize modulus\n if (nsh > 0) {\n pm.lShiftTo(nsh, y);\n pt.lShiftTo(nsh, r);\n } else {\n pm.copyTo(y);\n pt.copyTo(r);\n }\n var ys = y.t;\n var y0 = y[ys - 1];\n if (y0 == 0) return;\n var yt = y0 * (1 << this.F1) + (ys > 1 ? y[ys - 2] >> this.F2 : 0);\n var d1 = this.FV / yt,\n d2 = (1 << this.F1) / yt,\n e = 1 << this.F2;\n var i = r.t,\n j = i - ys,\n t = q == null ? nbi() : q;\n y.dlShiftTo(j, t);\n if (r.compareTo(t) >= 0) {\n r[r.t++] = 1;\n r.subTo(t, r);\n }\n BigInteger.ONE.dlShiftTo(ys, t);\n t.subTo(y, y);\n // \"negative\" y so we can replace sub with am later\n while (y.t < ys) y[y.t++] = 0;\n while (--j >= 0) {\n // Estimate quotient digit\n var qd = r[--i] == y0 ? this.DM : Math.floor(r[i] * d1 + (r[i - 1] + e) * d2);\n if ((r[i] += y.am(0, qd, r, j, 0, ys)) < qd) {\n // Try it out\n y.dlShiftTo(j, t);\n r.subTo(t, r);\n while (r[i] < --qd) r.subTo(t, r);\n }\n }\n if (q != null) {\n r.drShiftTo(ys, q);\n if (ts != ms) BigInteger.ZERO.subTo(q, q);\n }\n r.t = ys;\n r.clamp();\n if (nsh > 0) r.rShiftTo(nsh, r);\n // Denormalize remainder\n if (ts < 0) BigInteger.ZERO.subTo(r, r);\n}\n\n// (public) this mod a\nfunction bnMod(a) {\n var r = nbi();\n this.abs().divRemTo(a, null, r);\n if (this.s < 0 && r.compareTo(BigInteger.ZERO) > 0) a.subTo(r, r);\n return r;\n}\n\n// (protected) return \"-1/this % 2^DB\"; useful for Mont. reduction\n// justification:\n// xy == 1 (mod m)\n// xy = 1+km\n// xy(2-xy) = (1+km)(1-km)\n// x[y(2-xy)] = 1-k^2m^2\n// x[y(2-xy)] == 1 (mod m^2)\n// if y is 1/x mod m, then y(2-xy) is 1/x mod m^2\n// should reduce x and y(2-xy) by m^2 at each step to keep size bounded.\n// JS multiply \"overflows\" differently from C/C++, so care is needed here.\nfunction bnpInvDigit() {\n if (this.t < 1) return 0;\n var x = this[0];\n if ((x & 1) == 0) return 0;\n var y = x & 3;\n // y == 1/x mod 2^2\n y = y * (2 - (x & 0xf) * y) & 0xf;\n // y == 1/x mod 2^4\n y = y * (2 - (x & 0xff) * y) & 0xff;\n // y == 1/x mod 2^8\n y = y * (2 - ((x & 0xffff) * y & 0xffff)) & 0xffff;\n // y == 1/x mod 2^16\n // last step - calculate inverse mod DV directly;\n // assumes 16 < DB <= 32 and assumes ability to handle 48-bit ints\n y = y * (2 - x * y % this.DV) % this.DV;\n // y == 1/x mod 2^dbits\n // we really want the negative inverse, and -DV < y < DV\n return y > 0 ? this.DV - y : -y;\n}\nfunction bnEquals(a) {\n return this.compareTo(a) == 0;\n}\n\n// (protected) r = this + a\nfunction bnpAddTo(a, r) {\n var i = 0,\n c = 0,\n m = Math.min(a.t, this.t);\n while (i < m) {\n c += this[i] + a[i];\n r[i++] = c & this.DM;\n c >>= this.DB;\n }\n if (a.t < this.t) {\n c += a.s;\n while (i < this.t) {\n c += this[i];\n r[i++] = c & this.DM;\n c >>= this.DB;\n }\n c += this.s;\n } else {\n c += this.s;\n while (i < a.t) {\n c += a[i];\n r[i++] = c & this.DM;\n c >>= this.DB;\n }\n c += a.s;\n }\n r.s = c < 0 ? -1 : 0;\n if (c > 0) r[i++] = c;else if (c < -1) r[i++] = this.DV + c;\n r.t = i;\n r.clamp();\n}\n\n// (public) this + a\nfunction bnAdd(a) {\n var r = nbi();\n this.addTo(a, r);\n return r;\n}\n\n// (public) this - a\nfunction bnSubtract(a) {\n var r = nbi();\n this.subTo(a, r);\n return r;\n}\n\n// (public) this * a\nfunction bnMultiply(a) {\n var r = nbi();\n this.multiplyTo(a, r);\n return r;\n}\n\n// (public) this / a\nfunction bnDivide(a) {\n var r = nbi();\n this.divRemTo(a, r, null);\n return r;\n}\n\n// Montgomery reduction\nfunction Montgomery(m) {\n this.m = m;\n this.mp = m.invDigit();\n this.mpl = this.mp & 0x7fff;\n this.mph = this.mp >> 15;\n this.um = (1 << m.DB - 15) - 1;\n this.mt2 = 2 * m.t;\n}\n\n// xR mod m\nfunction montConvert(x) {\n var r = nbi();\n x.abs().dlShiftTo(this.m.t, r);\n r.divRemTo(this.m, null, r);\n if (x.s < 0 && r.compareTo(BigInteger.ZERO) > 0) this.m.subTo(r, r);\n return r;\n}\n\n// x/R mod m\nfunction montRevert(x) {\n var r = nbi();\n x.copyTo(r);\n this.reduce(r);\n return r;\n}\n\n// x = x/R mod m (HAC 14.32)\nfunction montReduce(x) {\n while (x.t <= this.mt2)\n // pad x so am has enough room later\n x[x.t++] = 0;\n for (var i = 0; i < this.m.t; ++i) {\n // faster way of calculating u0 = x[i]*mp mod DV\n var j = x[i] & 0x7fff;\n var u0 = j * this.mpl + ((j * this.mph + (x[i] >> 15) * this.mpl & this.um) << 15) & x.DM;\n // use am to combine the multiply-shift-add into one call\n j = i + this.m.t;\n x[j] += this.m.am(0, u0, x, i, 0, this.m.t);\n // propagate carry\n while (x[j] >= x.DV) {\n x[j] -= x.DV;\n x[++j]++;\n }\n }\n x.clamp();\n x.drShiftTo(this.m.t, x);\n if (x.compareTo(this.m) >= 0) x.subTo(this.m, x);\n}\n\n// r = \"x^2/R mod m\"; x != r\nfunction montSqrTo(x, r) {\n x.squareTo(r);\n this.reduce(r);\n}\n\n// r = \"xy/R mod m\"; x,y != r\nfunction montMulTo(x, y, r) {\n x.multiplyTo(y, r);\n this.reduce(r);\n}\nMontgomery.prototype.convert = montConvert;\nMontgomery.prototype.revert = montRevert;\nMontgomery.prototype.reduce = montReduce;\nMontgomery.prototype.mulTo = montMulTo;\nMontgomery.prototype.sqrTo = montSqrTo;\n\n// (public) this^e % m (HAC 14.85)\nfunction bnModPow(e, m, callback) {\n var i = e.bitLength(),\n k,\n r = nbv(1),\n z = new Montgomery(m);\n if (i <= 0) return r;else if (i < 18) k = 1;else if (i < 48) k = 3;else if (i < 144) k = 4;else if (i < 768) k = 5;else k = 6;\n\n // precomputation\n var g = new Array(),\n n = 3,\n k1 = k - 1,\n km = (1 << k) - 1;\n g[1] = z.convert(this);\n if (k > 1) {\n var g2 = nbi();\n z.sqrTo(g[1], g2);\n while (n <= km) {\n g[n] = nbi();\n z.mulTo(g2, g[n - 2], g[n]);\n n += 2;\n }\n }\n var j = e.t - 1,\n w,\n is1 = true,\n r2 = nbi(),\n t;\n i = nbits(e[j]) - 1;\n while (j >= 0) {\n if (i >= k1) w = e[j] >> i - k1 & km;else {\n w = (e[j] & (1 << i + 1) - 1) << k1 - i;\n if (j > 0) w |= e[j - 1] >> this.DB + i - k1;\n }\n n = k;\n while ((w & 1) == 0) {\n w >>= 1;\n --n;\n }\n if ((i -= n) < 0) {\n i += this.DB;\n --j;\n }\n if (is1) {\n // ret == 1, don't bother squaring or multiplying it\n g[w].copyTo(r);\n is1 = false;\n } else {\n while (n > 1) {\n z.sqrTo(r, r2);\n z.sqrTo(r2, r);\n n -= 2;\n }\n if (n > 0) z.sqrTo(r, r2);else {\n t = r;\n r = r2;\n r2 = t;\n }\n z.mulTo(r2, g[w], r);\n }\n while (j >= 0 && (e[j] & 1 << i) == 0) {\n z.sqrTo(r, r2);\n t = r;\n r = r2;\n r2 = t;\n if (--i < 0) {\n i = this.DB - 1;\n --j;\n }\n }\n }\n var result = z.revert(r);\n callback(null, result);\n return result;\n}\n\n// protected\nBigInteger.prototype.copyTo = bnpCopyTo;\nBigInteger.prototype.fromInt = bnpFromInt;\nBigInteger.prototype.fromString = bnpFromString;\nBigInteger.prototype.clamp = bnpClamp;\nBigInteger.prototype.dlShiftTo = bnpDLShiftTo;\nBigInteger.prototype.drShiftTo = bnpDRShiftTo;\nBigInteger.prototype.lShiftTo = bnpLShiftTo;\nBigInteger.prototype.rShiftTo = bnpRShiftTo;\nBigInteger.prototype.subTo = bnpSubTo;\nBigInteger.prototype.multiplyTo = bnpMultiplyTo;\nBigInteger.prototype.squareTo = bnpSquareTo;\nBigInteger.prototype.divRemTo = bnpDivRemTo;\nBigInteger.prototype.invDigit = bnpInvDigit;\nBigInteger.prototype.addTo = bnpAddTo;\n\n// public\nBigInteger.prototype.toString = bnToString;\nBigInteger.prototype.negate = bnNegate;\nBigInteger.prototype.abs = bnAbs;\nBigInteger.prototype.compareTo = bnCompareTo;\nBigInteger.prototype.bitLength = bnBitLength;\nBigInteger.prototype.mod = bnMod;\nBigInteger.prototype.equals = bnEquals;\nBigInteger.prototype.add = bnAdd;\nBigInteger.prototype.subtract = bnSubtract;\nBigInteger.prototype.multiply = bnMultiply;\nBigInteger.prototype.divide = bnDivide;\nBigInteger.prototype.modPow = bnModPow;\n\n// \"constants\"\nBigInteger.ZERO = nbv(0);\nBigInteger.ONE = nbv(1);","/*!\n * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport { Buffer } from 'buffer';\nimport WordArray from './utils/WordArray';\nimport { Sha256 } from '@aws-crypto/sha256-js';\n\n/**\n * Returns a Buffer with a sequence of random nBytes\n *\n * @param {number} nBytes\n * @returns {Buffer} fixed-length sequence of random bytes\n */\n\nfunction randomBytes(nBytes) {\n return Buffer.from(new WordArray().random(nBytes).toString(), 'hex');\n}\nimport BigInteger from './BigInteger';\n\n/**\n * Tests if a hex string has it most significant bit set (case-insensitive regex)\n */\nvar HEX_MSB_REGEX = /^[89a-f]/i;\nvar initN = 'FFFFFFFFFFFFFFFFC90FDAA22168C234C4C6628B80DC1CD1' + '29024E088A67CC74020BBEA63B139B22514A08798E3404DD' + 'EF9519B3CD3A431B302B0A6DF25F14374FE1356D6D51C245' + 'E485B576625E7EC6F44C42E9A637ED6B0BFF5CB6F406B7ED' + 'EE386BFB5A899FA5AE9F24117C4B1FE649286651ECE45B3D' + 'C2007CB8A163BF0598DA48361C55D39A69163FA8FD24CF5F' + '83655D23DCA3AD961C62F356208552BB9ED529077096966D' + '670C354E4ABC9804F1746C08CA18217C32905E462E36CE3B' + 'E39E772C180E86039B2783A2EC07A28FB5C55DF06F4C52C9' + 'DE2BCBF6955817183995497CEA956AE515D2261898FA0510' + '15728E5A8AAAC42DAD33170D04507A33A85521ABDF1CBA64' + 'ECFB850458DBEF0A8AEA71575D060C7DB3970F85A6E1E4C7' + 'ABF5AE8CDB0933D71E8C94E04A25619DCEE3D2261AD2EE6B' + 'F12FFA06D98A0864D87602733EC86A64521F2B18177B200C' + 'BBE117577A615D6C770988C0BAD946E208E24FA074E5AB31' + '43DB5BFCE0FD108E4B82D120A93AD2CAFFFFFFFFFFFFFFFF';\nvar newPasswordRequiredChallengeUserAttributePrefix = 'userAttributes.';\n\n/** @class */\nvar AuthenticationHelper = /*#__PURE__*/function () {\n /**\n * Constructs a new AuthenticationHelper object\n * @param {string} PoolName Cognito user pool name.\n */\n function AuthenticationHelper(PoolName) {\n this.N = new BigInteger(initN, 16);\n this.g = new BigInteger('2', 16);\n this.k = new BigInteger(this.hexHash(\"\" + this.padHex(this.N) + this.padHex(this.g)), 16);\n this.smallAValue = this.generateRandomSmallA();\n this.getLargeAValue(function () {});\n this.infoBits = Buffer.from('Caldera Derived Key', 'utf8');\n this.poolName = PoolName;\n }\n\n /**\n * @returns {BigInteger} small A, a random number\n */\n var _proto = AuthenticationHelper.prototype;\n _proto.getSmallAValue = function getSmallAValue() {\n return this.smallAValue;\n }\n\n /**\n * @param {nodeCallback} callback Called with (err, largeAValue)\n * @returns {void}\n */;\n _proto.getLargeAValue = function getLargeAValue(callback) {\n var _this = this;\n if (this.largeAValue) {\n callback(null, this.largeAValue);\n } else {\n this.calculateA(this.smallAValue, function (err, largeAValue) {\n if (err) {\n callback(err, null);\n }\n _this.largeAValue = largeAValue;\n callback(null, _this.largeAValue);\n });\n }\n }\n\n /**\n * helper function to generate a random big integer\n * @returns {BigInteger} a random value.\n * @private\n */;\n _proto.generateRandomSmallA = function generateRandomSmallA() {\n // This will be interpreted as a postive 128-bit integer\n var hexRandom = randomBytes(128).toString('hex');\n var randomBigInt = new BigInteger(hexRandom, 16);\n\n // There is no need to do randomBigInt.mod(this.N - 1) as N (3072-bit) is > 128 bytes (1024-bit)\n\n return randomBigInt;\n }\n\n /**\n * helper function to generate a random string\n * @returns {string} a random value.\n * @private\n */;\n _proto.generateRandomString = function generateRandomString() {\n return randomBytes(40).toString('base64');\n }\n\n /**\n * @returns {string} Generated random value included in password hash.\n */;\n _proto.getRandomPassword = function getRandomPassword() {\n return this.randomPassword;\n }\n\n /**\n * @returns {string} Generated random value included in devices hash.\n */;\n _proto.getSaltDevices = function getSaltDevices() {\n return this.SaltToHashDevices;\n }\n\n /**\n * @returns {string} Value used to verify devices.\n */;\n _proto.getVerifierDevices = function getVerifierDevices() {\n return this.verifierDevices;\n }\n\n /**\n * Generate salts and compute verifier.\n * @param {string} deviceGroupKey Devices to generate verifier for.\n * @param {string} username User to generate verifier for.\n * @param {nodeCallback} callback Called with (err, null)\n * @returns {void}\n */;\n _proto.generateHashDevice = function generateHashDevice(deviceGroupKey, username, callback) {\n var _this2 = this;\n this.randomPassword = this.generateRandomString();\n var combinedString = \"\" + deviceGroupKey + username + \":\" + this.randomPassword;\n var hashedString = this.hash(combinedString);\n var hexRandom = randomBytes(16).toString('hex');\n\n // The random hex will be unambiguously represented as a postive integer\n this.SaltToHashDevices = this.padHex(new BigInteger(hexRandom, 16));\n this.g.modPow(new BigInteger(this.hexHash(this.SaltToHashDevices + hashedString), 16), this.N, function (err, verifierDevicesNotPadded) {\n if (err) {\n callback(err, null);\n }\n _this2.verifierDevices = _this2.padHex(verifierDevicesNotPadded);\n callback(null, null);\n });\n }\n\n /**\n * Calculate the client's public value A = g^a%N\n * with the generated random number a\n * @param {BigInteger} a Randomly generated small A.\n * @param {nodeCallback} callback Called with (err, largeAValue)\n * @returns {void}\n * @private\n */;\n _proto.calculateA = function calculateA(a, callback) {\n var _this3 = this;\n this.g.modPow(a, this.N, function (err, A) {\n if (err) {\n callback(err, null);\n }\n if (A.mod(_this3.N).equals(BigInteger.ZERO)) {\n callback(new Error('Illegal paramater. A mod N cannot be 0.'), null);\n }\n callback(null, A);\n });\n }\n\n /**\n * Calculate the client's value U which is the hash of A and B\n * @param {BigInteger} A Large A value.\n * @param {BigInteger} B Server B value.\n * @returns {BigInteger} Computed U value.\n * @private\n */;\n _proto.calculateU = function calculateU(A, B) {\n this.UHexHash = this.hexHash(this.padHex(A) + this.padHex(B));\n var finalU = new BigInteger(this.UHexHash, 16);\n return finalU;\n }\n\n /**\n * Calculate a hash from a bitArray\n * @param {Buffer} buf Value to hash.\n * @returns {String} Hex-encoded hash.\n * @private\n */;\n _proto.hash = function hash(buf) {\n var awsCryptoHash = new Sha256();\n awsCryptoHash.update(buf);\n var resultFromAWSCrypto = awsCryptoHash.digestSync();\n var hashHex = Buffer.from(resultFromAWSCrypto).toString('hex');\n return new Array(64 - hashHex.length).join('0') + hashHex;\n }\n\n /**\n * Calculate a hash from a hex string\n * @param {String} hexStr Value to hash.\n * @returns {String} Hex-encoded hash.\n * @private\n */;\n _proto.hexHash = function hexHash(hexStr) {\n return this.hash(Buffer.from(hexStr, 'hex'));\n }\n\n /**\n * Standard hkdf algorithm\n * @param {Buffer} ikm Input key material.\n * @param {Buffer} salt Salt value.\n * @returns {Buffer} Strong key material.\n * @private\n */;\n _proto.computehkdf = function computehkdf(ikm, salt) {\n var infoBitsBuffer = Buffer.concat([this.infoBits, Buffer.from(String.fromCharCode(1), 'utf8')]);\n var awsCryptoHash = new Sha256(salt);\n awsCryptoHash.update(ikm);\n var resultFromAWSCryptoPrk = awsCryptoHash.digestSync();\n var awsCryptoHashHmac = new Sha256(resultFromAWSCryptoPrk);\n awsCryptoHashHmac.update(infoBitsBuffer);\n var resultFromAWSCryptoHmac = awsCryptoHashHmac.digestSync();\n var hashHexFromAWSCrypto = resultFromAWSCryptoHmac;\n var currentHex = hashHexFromAWSCrypto.slice(0, 16);\n return currentHex;\n }\n\n /**\n * Calculates the final hkdf based on computed S value, and computed U value and the key\n * @param {String} username Username.\n * @param {String} password Password.\n * @param {BigInteger} serverBValue Server B value.\n * @param {BigInteger} salt Generated salt.\n * @param {nodeCallback} callback Called with (err, hkdfValue)\n * @returns {void}\n */;\n _proto.getPasswordAuthenticationKey = function getPasswordAuthenticationKey(username, password, serverBValue, salt, callback) {\n var _this4 = this;\n if (serverBValue.mod(this.N).equals(BigInteger.ZERO)) {\n throw new Error('B cannot be zero.');\n }\n this.UValue = this.calculateU(this.largeAValue, serverBValue);\n if (this.UValue.equals(BigInteger.ZERO)) {\n throw new Error('U cannot be zero.');\n }\n var usernamePassword = \"\" + this.poolName + username + \":\" + password;\n var usernamePasswordHash = this.hash(usernamePassword);\n var xValue = new BigInteger(this.hexHash(this.padHex(salt) + usernamePasswordHash), 16);\n this.calculateS(xValue, serverBValue, function (err, sValue) {\n if (err) {\n callback(err, null);\n }\n var hkdf = _this4.computehkdf(Buffer.from(_this4.padHex(sValue), 'hex'), Buffer.from(_this4.padHex(_this4.UValue), 'hex'));\n callback(null, hkdf);\n });\n }\n\n /**\n * Calculates the S value used in getPasswordAuthenticationKey\n * @param {BigInteger} xValue Salted password hash value.\n * @param {BigInteger} serverBValue Server B value.\n * @param {nodeCallback} callback Called on success or error.\n * @returns {void}\n */;\n _proto.calculateS = function calculateS(xValue, serverBValue, callback) {\n var _this5 = this;\n this.g.modPow(xValue, this.N, function (err, gModPowXN) {\n if (err) {\n callback(err, null);\n }\n var intValue2 = serverBValue.subtract(_this5.k.multiply(gModPowXN));\n intValue2.modPow(_this5.smallAValue.add(_this5.UValue.multiply(xValue)), _this5.N, function (err2, result) {\n if (err2) {\n callback(err2, null);\n }\n callback(null, result.mod(_this5.N));\n });\n });\n }\n\n /**\n * Return constant newPasswordRequiredChallengeUserAttributePrefix\n * @return {newPasswordRequiredChallengeUserAttributePrefix} constant prefix value\n */;\n _proto.getNewPasswordRequiredChallengeUserAttributePrefix = function getNewPasswordRequiredChallengeUserAttributePrefix() {\n return newPasswordRequiredChallengeUserAttributePrefix;\n }\n\n /**\n * Returns an unambiguous, even-length hex string of the two's complement encoding of an integer.\n *\n * It is compatible with the hex encoding of Java's BigInteger's toByteArray(), wich returns a\n * byte array containing the two's-complement representation of a BigInteger. The array contains\n * the minimum number of bytes required to represent the BigInteger, including at least one sign bit.\n *\n * Examples showing how ambiguity is avoided by left padding with:\n * \t\"00\" (for positive values where the most-significant-bit is set)\n * \"FF\" (for negative values where the most-significant-bit is set)\n *\n * padHex(bigInteger.fromInt(-236)) === \"FF14\"\n * padHex(bigInteger.fromInt(20)) === \"14\"\n *\n * padHex(bigInteger.fromInt(-200)) === \"FF38\"\n * padHex(bigInteger.fromInt(56)) === \"38\"\n *\n * padHex(bigInteger.fromInt(-20)) === \"EC\"\n * padHex(bigInteger.fromInt(236)) === \"00EC\"\n *\n * padHex(bigInteger.fromInt(-56)) === \"C8\"\n * padHex(bigInteger.fromInt(200)) === \"00C8\"\n *\n * @param {BigInteger} bigInt Number to encode.\n * @returns {String} even-length hex string of the two's complement encoding.\n */;\n _proto.padHex = function padHex(bigInt) {\n if (!(bigInt instanceof BigInteger)) {\n throw new Error('Not a BigInteger');\n }\n var isNegative = bigInt.compareTo(BigInteger.ZERO) < 0;\n\n /* Get a hex string for abs(bigInt) */\n var hexStr = bigInt.abs().toString(16);\n\n /* Pad hex to even length if needed */\n hexStr = hexStr.length % 2 !== 0 ? \"0\" + hexStr : hexStr;\n\n /* Prepend \"00\" if the most significant bit is set */\n hexStr = HEX_MSB_REGEX.test(hexStr) ? \"00\" + hexStr : hexStr;\n if (isNegative) {\n /* Flip the bits of the representation */\n var invertedNibbles = hexStr.split('').map(function (x) {\n var invertedNibble = ~parseInt(x, 16) & 0xf;\n return '0123456789ABCDEF'.charAt(invertedNibble);\n }).join('');\n\n /* After flipping the bits, add one to get the 2's complement representation */\n var flippedBitsBI = new BigInteger(invertedNibbles, 16).add(BigInteger.ONE);\n hexStr = flippedBitsBI.toString(16);\n\n /*\n For hex strings starting with 'FF8', 'FF' can be dropped, e.g. 0xFFFF80=0xFF80=0x80=-128\n \t\tAny sequence of '1' bits on the left can always be substituted with a single '1' bit\n without changing the represented value.\n \t\tThis only happens in the case when the input is 80...00\n */\n if (hexStr.toUpperCase().startsWith('FF8')) {\n hexStr = hexStr.substring(2);\n }\n }\n return hexStr;\n };\n return AuthenticationHelper;\n}();\nexport { AuthenticationHelper as default };","/*!\n * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport { Buffer } from 'buffer';\n\n/** @class */\nvar CognitoJwtToken = /*#__PURE__*/function () {\n /**\n * Constructs a new CognitoJwtToken object\n * @param {string=} token The JWT token.\n */\n function CognitoJwtToken(token) {\n // Assign object\n this.jwtToken = token || '';\n this.payload = this.decodePayload();\n }\n\n /**\n * @returns {string} the record's token.\n */\n var _proto = CognitoJwtToken.prototype;\n _proto.getJwtToken = function getJwtToken() {\n return this.jwtToken;\n }\n\n /**\n * @returns {int} the token's expiration (exp member).\n */;\n _proto.getExpiration = function getExpiration() {\n return this.payload.exp;\n }\n\n /**\n * @returns {int} the token's \"issued at\" (iat member).\n */;\n _proto.getIssuedAt = function getIssuedAt() {\n return this.payload.iat;\n }\n\n /**\n * @returns {object} the token's payload.\n */;\n _proto.decodePayload = function decodePayload() {\n var payload = this.jwtToken.split('.')[1];\n try {\n return JSON.parse(Buffer.from(payload, 'base64').toString('utf8'));\n } catch (err) {\n return {};\n }\n };\n return CognitoJwtToken;\n}();\nexport { CognitoJwtToken as default };","function _inheritsLoose(subClass, superClass) { subClass.prototype = Object.create(superClass.prototype); subClass.prototype.constructor = subClass; _setPrototypeOf(subClass, superClass); }\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n/*!\n * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport CognitoJwtToken from './CognitoJwtToken';\n\n/** @class */\nvar CognitoAccessToken = /*#__PURE__*/function (_CognitoJwtToken) {\n _inheritsLoose(CognitoAccessToken, _CognitoJwtToken);\n /**\n * Constructs a new CognitoAccessToken object\n * @param {string=} AccessToken The JWT access token.\n */\n function CognitoAccessToken(_temp) {\n var _ref = _temp === void 0 ? {} : _temp,\n AccessToken = _ref.AccessToken;\n return _CognitoJwtToken.call(this, AccessToken || '') || this;\n }\n return CognitoAccessToken;\n}(CognitoJwtToken);\nexport { CognitoAccessToken as default };","function _inheritsLoose(subClass, superClass) { subClass.prototype = Object.create(superClass.prototype); subClass.prototype.constructor = subClass; _setPrototypeOf(subClass, superClass); }\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n/*!\n * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport CognitoJwtToken from './CognitoJwtToken';\n\n/** @class */\nvar CognitoIdToken = /*#__PURE__*/function (_CognitoJwtToken) {\n _inheritsLoose(CognitoIdToken, _CognitoJwtToken);\n /**\n * Constructs a new CognitoIdToken object\n * @param {string=} IdToken The JWT Id token\n */\n function CognitoIdToken(_temp) {\n var _ref = _temp === void 0 ? {} : _temp,\n IdToken = _ref.IdToken;\n return _CognitoJwtToken.call(this, IdToken || '') || this;\n }\n return CognitoIdToken;\n}(CognitoJwtToken);\nexport { CognitoIdToken as default };","/*!\n * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n * SPDX-License-Identifier: Apache-2.0\n */\n/** @class */\nvar CognitoRefreshToken = /*#__PURE__*/function () {\n /**\n * Constructs a new CognitoRefreshToken object\n * @param {string=} RefreshToken The JWT refresh token.\n */\n function CognitoRefreshToken(_temp) {\n var _ref = _temp === void 0 ? {} : _temp,\n RefreshToken = _ref.RefreshToken;\n // Assign object\n this.token = RefreshToken || '';\n }\n\n /**\n * @returns {string} the record's token.\n */\n var _proto = CognitoRefreshToken.prototype;\n _proto.getToken = function getToken() {\n return this.token;\n };\n return CognitoRefreshToken;\n}();\nexport { CognitoRefreshToken as default };","/*!\n * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n * SPDX-License-Identifier: Apache-2.0\n */\nimport { version } from './version';\nvar BASE_USER_AGENT = \"aws-amplify/\" + version;\nexport var Platform = {\n userAgent: BASE_USER_AGENT + \" js\",\n product: '',\n navigator: null,\n isReactNative: false\n};\nif (typeof navigator !== 'undefined' && navigator.product) {\n Platform.product = navigator.product || '';\n Platform.navigator = navigator || null;\n switch (navigator.product) {\n case 'ReactNative':\n Platform.userAgent = BASE_USER_AGENT + \" react-native\";\n Platform.isReactNative = true;\n break;\n default:\n Platform.userAgent = BASE_USER_AGENT + \" js\";\n Platform.isReactNative = false;\n break;\n }\n}\nexport var getUserAgent = function getUserAgent() {\n return Platform.userAgent;\n};\n\n/**\n * @deprecated use named import\n */\nexport default Platform;","/*!\n * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n * SPDX-License-Identifier: Apache-2.0\n */\n/** @class */\nvar CognitoUserSession = /*#__PURE__*/function () {\n /**\n * Constructs a new CognitoUserSession object\n * @param {CognitoIdToken} IdToken The session's Id token.\n * @param {CognitoRefreshToken=} RefreshToken The session's refresh token.\n * @param {CognitoAccessToken} AccessToken The session's access token.\n * @param {int} ClockDrift The saved computer's clock drift or undefined to force calculation.\n */\n function CognitoUserSession(_temp) {\n var _ref = _temp === void 0 ? {} : _temp,\n IdToken = _ref.IdToken,\n RefreshToken = _ref.RefreshToken,\n AccessToken = _ref.AccessToken,\n ClockDrift = _ref.ClockDrift;\n if (AccessToken == null || IdToken == null) {\n throw new Error('Id token and Access Token must be present.');\n }\n this.idToken = IdToken;\n this.refreshToken = RefreshToken;\n this.accessToken = AccessToken;\n this.clockDrift = ClockDrift === undefined ? this.calculateClockDrift() : ClockDrift;\n }\n\n /**\n * @returns {CognitoIdToken} the session's Id token\n */\n var _proto = CognitoUserSession.prototype;\n _proto.getIdToken = function getIdToken() {\n return this.idToken;\n }\n\n /**\n * @returns {CognitoRefreshToken} the session's refresh token\n */;\n _proto.getRefreshToken = function getRefreshToken() {\n return this.refreshToken;\n }\n\n /**\n * @returns {CognitoAccessToken} the session's access token\n */;\n _proto.getAccessToken = function getAccessToken() {\n return this.accessToken;\n }\n\n /**\n * @returns {int} the session's clock drift\n */;\n _proto.getClockDrift = function getClockDrift() {\n return this.clockDrift;\n }\n\n /**\n * @returns {int} the computer's clock drift\n */;\n _proto.calculateClockDrift = function calculateClockDrift() {\n var now = Math.floor(new Date() / 1000);\n var iat = Math.min(this.accessToken.getIssuedAt(), this.idToken.getIssuedAt());\n return now - iat;\n }\n\n /**\n * Checks to see if the session is still valid based on session expiry information found\n * in tokens and the current time (adjusted with clock drift)\n * @returns {boolean} if the session is still valid\n */;\n _proto.isValid = function isValid() {\n var now = Math.floor(new Date() / 1000);\n var adjusted = now - this.clockDrift;\n return adjusted < this.accessToken.getExpiration() && adjusted < this.idToken.getExpiration();\n };\n return CognitoUserSession;\n}();\nexport { CognitoUserSession as default };","/*!\n * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n * SPDX-License-Identifier: Apache-2.0\n */\n\nvar monthNames = ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'];\nvar weekNames = ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'];\n\n/** @class */\nvar DateHelper = /*#__PURE__*/function () {\n function DateHelper() {}\n var _proto = DateHelper.prototype;\n /**\n * @returns {string} The current time in \"ddd MMM D HH:mm:ss UTC YYYY\" format.\n */\n _proto.getNowString = function getNowString() {\n var now = new Date();\n var weekDay = weekNames[now.getUTCDay()];\n var month = monthNames[now.getUTCMonth()];\n var day = now.getUTCDate();\n var hours = now.getUTCHours();\n if (hours < 10) {\n hours = \"0\" + hours;\n }\n var minutes = now.getUTCMinutes();\n if (minutes < 10) {\n minutes = \"0\" + minutes;\n }\n var seconds = now.getUTCSeconds();\n if (seconds < 10) {\n seconds = \"0\" + seconds;\n }\n var year = now.getUTCFullYear();\n\n // ddd MMM D HH:mm:ss UTC YYYY\n var dateNow = weekDay + \" \" + month + \" \" + day + \" \" + hours + \":\" + minutes + \":\" + seconds + \" UTC \" + year;\n return dateNow;\n };\n return DateHelper;\n}();\nexport { DateHelper as default };","/*!\n * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n * SPDX-License-Identifier: Apache-2.0\n */\n/** @class */\nvar CognitoUserAttribute = /*#__PURE__*/function () {\n /**\n * Constructs a new CognitoUserAttribute object\n * @param {string=} Name The record's name\n * @param {string=} Value The record's value\n */\n function CognitoUserAttribute(_temp) {\n var _ref = _temp === void 0 ? {} : _temp,\n Name = _ref.Name,\n Value = _ref.Value;\n this.Name = Name || '';\n this.Value = Value || '';\n }\n\n /**\n * @returns {string} the record's value.\n */\n var _proto = CognitoUserAttribute.prototype;\n _proto.getValue = function getValue() {\n return this.Value;\n }\n\n /**\n * Sets the record's value.\n * @param {string} value The new value.\n * @returns {CognitoUserAttribute} The record for method chaining.\n */;\n _proto.setValue = function setValue(value) {\n this.Value = value;\n return this;\n }\n\n /**\n * @returns {string} the record's name.\n */;\n _proto.getName = function getName() {\n return this.Name;\n }\n\n /**\n * Sets the record's name\n * @param {string} name The new name.\n * @returns {CognitoUserAttribute} The record for method chaining.\n */;\n _proto.setName = function setName(name) {\n this.Name = name;\n return this;\n }\n\n /**\n * @returns {string} a string representation of the record.\n */;\n _proto.toString = function toString() {\n return JSON.stringify(this);\n }\n\n /**\n * @returns {object} a flat object representing the record.\n */;\n _proto.toJSON = function toJSON() {\n return {\n Name: this.Name,\n Value: this.Value\n };\n };\n return CognitoUserAttribute;\n}();\nexport { CognitoUserAttribute as default };","/*!\n * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n * SPDX-License-Identifier: Apache-2.0\n */\n\nvar dataMemory = {};\n\n/** @class */\nexport var MemoryStorage = /*#__PURE__*/function () {\n function MemoryStorage() {}\n /**\n * This is used to set a specific item in storage\n * @param {string} key - the key for the item\n * @param {object} value - the value\n * @returns {string} value that was set\n */\n MemoryStorage.setItem = function setItem(key, value) {\n dataMemory[key] = value;\n return dataMemory[key];\n }\n\n /**\n * This is used to get a specific key from storage\n * @param {string} key - the key for the item\n * This is used to clear the storage\n * @returns {string} the data item\n */;\n MemoryStorage.getItem = function getItem(key) {\n return Object.prototype.hasOwnProperty.call(dataMemory, key) ? dataMemory[key] : undefined;\n }\n\n /**\n * This is used to remove an item from storage\n * @param {string} key - the key being set\n * @returns {boolean} return true\n */;\n MemoryStorage.removeItem = function removeItem(key) {\n return delete dataMemory[key];\n }\n\n /**\n * This is used to clear the storage\n * @returns {string} nothing\n */;\n MemoryStorage.clear = function clear() {\n dataMemory = {};\n return dataMemory;\n };\n return MemoryStorage;\n}();\n\n/** @class */\nvar StorageHelper = /*#__PURE__*/function () {\n /**\n * This is used to get a storage object\n * @returns {object} the storage\n */\n function StorageHelper() {\n try {\n this.storageWindow = window.localStorage;\n this.storageWindow.setItem('aws.cognito.test-ls', 1);\n this.storageWindow.removeItem('aws.cognito.test-ls');\n } catch (exception) {\n this.storageWindow = MemoryStorage;\n }\n }\n\n /**\n * This is used to return the storage\n * @returns {object} the storage\n */\n var _proto = StorageHelper.prototype;\n _proto.getStorage = function getStorage() {\n return this.storageWindow;\n };\n return StorageHelper;\n}();\nexport { StorageHelper as default };","/*!\n * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport { Buffer } from 'buffer';\nimport { Sha256 } from '@aws-crypto/sha256-js';\nimport { Platform } from './Platform';\nimport BigInteger from './BigInteger';\nimport AuthenticationHelper from './AuthenticationHelper';\nimport CognitoAccessToken from './CognitoAccessToken';\nimport CognitoIdToken from './CognitoIdToken';\nimport CognitoRefreshToken from './CognitoRefreshToken';\nimport CognitoUserSession from './CognitoUserSession';\nimport DateHelper from './DateHelper';\nimport CognitoUserAttribute from './CognitoUserAttribute';\nimport StorageHelper from './StorageHelper';\n\n/**\n * @callback nodeCallback\n * @template T result\n * @param {*} err The operation failure reason, or null.\n * @param {T} result The operation result.\n */\n\n/**\n * @callback onFailure\n * @param {*} err Failure reason.\n */\n\n/**\n * @callback onSuccess\n * @template T result\n * @param {T} result The operation result.\n */\n\n/**\n * @callback mfaRequired\n * @param {*} details MFA challenge details.\n */\n\n/**\n * @callback customChallenge\n * @param {*} details Custom challenge details.\n */\n\n/**\n * @callback inputVerificationCode\n * @param {*} data Server response.\n */\n\n/**\n * @callback authSuccess\n * @param {CognitoUserSession} session The new session.\n * @param {bool=} userConfirmationNecessary User must be confirmed.\n */\n\nvar isNavigatorAvailable = typeof navigator !== 'undefined';\nvar userAgent = isNavigatorAvailable ? Platform.isReactNative ? 'react-native' : navigator.userAgent : 'nodejs';\n\n/** @class */\nvar CognitoUser = /*#__PURE__*/function () {\n /**\n * Constructs a new CognitoUser object\n * @param {object} data Creation options\n * @param {string} data.Username The user's username.\n * @param {CognitoUserPool} data.Pool Pool containing the user.\n * @param {object} data.Storage Optional storage object.\n */\n function CognitoUser(data) {\n if (data == null || data.Username == null || data.Pool == null) {\n throw new Error('Username and Pool information are required.');\n }\n this.username = data.Username || '';\n this.pool = data.Pool;\n this.Session = null;\n this.client = data.Pool.client;\n this.signInUserSession = null;\n this.authenticationFlowType = 'USER_SRP_AUTH';\n this.storage = data.Storage || new StorageHelper().getStorage();\n this.keyPrefix = \"CognitoIdentityServiceProvider.\" + this.pool.getClientId();\n this.userDataKey = this.keyPrefix + \".\" + this.username + \".userData\";\n }\n\n /**\n * Sets the session for this user\n * @param {CognitoUserSession} signInUserSession the session\n * @returns {void}\n */\n var _proto = CognitoUser.prototype;\n _proto.setSignInUserSession = function setSignInUserSession(signInUserSession) {\n this.clearCachedUserData();\n this.signInUserSession = signInUserSession;\n this.cacheTokens();\n }\n\n /**\n * @returns {CognitoUserSession} the current session for this user\n */;\n _proto.getSignInUserSession = function getSignInUserSession() {\n return this.signInUserSession;\n }\n\n /**\n * @returns {string} the user's username\n */;\n _proto.getUsername = function getUsername() {\n return this.username;\n }\n\n /**\n * @returns {String} the authentication flow type\n */;\n _proto.getAuthenticationFlowType = function getAuthenticationFlowType() {\n return this.authenticationFlowType;\n }\n\n /**\n * sets authentication flow type\n * @param {string} authenticationFlowType New value.\n * @returns {void}\n */;\n _proto.setAuthenticationFlowType = function setAuthenticationFlowType(authenticationFlowType) {\n this.authenticationFlowType = authenticationFlowType;\n }\n\n /**\n * This is used for authenticating the user through the custom authentication flow.\n * @param {AuthenticationDetails} authDetails Contains the authentication data\n * @param {object} callback Result callback map.\n * @param {onFailure} callback.onFailure Called on any error.\n * @param {customChallenge} callback.customChallenge Custom challenge\n * response required to continue.\n * @param {authSuccess} callback.onSuccess Called on success with the new session.\n * @returns {void}\n */;\n _proto.initiateAuth = function initiateAuth(authDetails, callback) {\n var _this = this;\n var authParameters = authDetails.getAuthParameters();\n authParameters.USERNAME = this.username;\n var clientMetaData = Object.keys(authDetails.getValidationData()).length !== 0 ? authDetails.getValidationData() : authDetails.getClientMetadata();\n var jsonReq = {\n AuthFlow: 'CUSTOM_AUTH',\n ClientId: this.pool.getClientId(),\n AuthParameters: authParameters,\n ClientMetadata: clientMetaData\n };\n if (this.getUserContextData()) {\n jsonReq.UserContextData = this.getUserContextData();\n }\n this.client.request('InitiateAuth', jsonReq, function (err, data) {\n if (err) {\n return callback.onFailure(err);\n }\n var challengeName = data.ChallengeName;\n var challengeParameters = data.ChallengeParameters;\n if (challengeName === 'CUSTOM_CHALLENGE') {\n _this.Session = data.Session;\n return callback.customChallenge(challengeParameters);\n }\n _this.signInUserSession = _this.getCognitoUserSession(data.AuthenticationResult);\n _this.cacheTokens();\n return callback.onSuccess(_this.signInUserSession);\n });\n }\n\n /**\n * This is used for authenticating the user.\n * stuff\n * @param {AuthenticationDetails} authDetails Contains the authentication data\n * @param {object} callback Result callback map.\n * @param {onFailure} callback.onFailure Called on any error.\n * @param {newPasswordRequired} callback.newPasswordRequired new\n * password and any required attributes are required to continue\n * @param {mfaRequired} callback.mfaRequired MFA code\n * required to continue.\n * @param {customChallenge} callback.customChallenge Custom challenge\n * response required to continue.\n * @param {authSuccess} callback.onSuccess Called on success with the new session.\n * @returns {void}\n */;\n _proto.authenticateUser = function authenticateUser(authDetails, callback) {\n if (this.authenticationFlowType === 'USER_PASSWORD_AUTH') {\n return this.authenticateUserPlainUsernamePassword(authDetails, callback);\n } else if (this.authenticationFlowType === 'USER_SRP_AUTH' || this.authenticationFlowType === 'CUSTOM_AUTH') {\n return this.authenticateUserDefaultAuth(authDetails, callback);\n }\n return callback.onFailure(new Error('Authentication flow type is invalid.'));\n }\n\n /**\n * PRIVATE ONLY: This is an internal only method and should not\n * be directly called by the consumers.\n * It calls the AuthenticationHelper for SRP related\n * stuff\n * @param {AuthenticationDetails} authDetails Contains the authentication data\n * @param {object} callback Result callback map.\n * @param {onFailure} callback.onFailure Called on any error.\n * @param {newPasswordRequired} callback.newPasswordRequired new\n * password and any required attributes are required to continue\n * @param {mfaRequired} callback.mfaRequired MFA code\n * required to continue.\n * @param {customChallenge} callback.customChallenge Custom challenge\n * response required to continue.\n * @param {authSuccess} callback.onSuccess Called on success with the new session.\n * @returns {void}\n */;\n _proto.authenticateUserDefaultAuth = function authenticateUserDefaultAuth(authDetails, callback) {\n var _this2 = this;\n var authenticationHelper = new AuthenticationHelper(this.pool.getUserPoolName());\n var dateHelper = new DateHelper();\n var serverBValue;\n var salt;\n var authParameters = {};\n if (this.deviceKey != null) {\n authParameters.DEVICE_KEY = this.deviceKey;\n }\n authParameters.USERNAME = this.username;\n authenticationHelper.getLargeAValue(function (errOnAValue, aValue) {\n // getLargeAValue callback start\n if (errOnAValue) {\n callback.onFailure(errOnAValue);\n }\n authParameters.SRP_A = aValue.toString(16);\n if (_this2.authenticationFlowType === 'CUSTOM_AUTH') {\n authParameters.CHALLENGE_NAME = 'SRP_A';\n }\n var clientMetaData = Object.keys(authDetails.getValidationData()).length !== 0 ? authDetails.getValidationData() : authDetails.getClientMetadata();\n var jsonReq = {\n AuthFlow: _this2.authenticationFlowType,\n ClientId: _this2.pool.getClientId(),\n AuthParameters: authParameters,\n ClientMetadata: clientMetaData\n };\n if (_this2.getUserContextData(_this2.username)) {\n jsonReq.UserContextData = _this2.getUserContextData(_this2.username);\n }\n _this2.client.request('InitiateAuth', jsonReq, function (err, data) {\n if (err) {\n return callback.onFailure(err);\n }\n var challengeParameters = data.ChallengeParameters;\n _this2.username = challengeParameters.USER_ID_FOR_SRP;\n _this2.userDataKey = _this2.keyPrefix + \".\" + _this2.username + \".userData\";\n serverBValue = new BigInteger(challengeParameters.SRP_B, 16);\n salt = new BigInteger(challengeParameters.SALT, 16);\n _this2.getCachedDeviceKeyAndPassword();\n authenticationHelper.getPasswordAuthenticationKey(_this2.username, authDetails.getPassword(), serverBValue, salt, function (errOnHkdf, hkdf) {\n // getPasswordAuthenticationKey callback start\n if (errOnHkdf) {\n callback.onFailure(errOnHkdf);\n }\n var dateNow = dateHelper.getNowString();\n var concatBuffer = Buffer.concat([Buffer.from(_this2.pool.getUserPoolName(), 'utf8'), Buffer.from(_this2.username, 'utf8'), Buffer.from(challengeParameters.SECRET_BLOCK, 'base64'), Buffer.from(dateNow, 'utf8')]);\n var awsCryptoHash = new Sha256(hkdf);\n awsCryptoHash.update(concatBuffer);\n var resultFromAWSCrypto = awsCryptoHash.digestSync();\n var signatureString = Buffer.from(resultFromAWSCrypto).toString('base64');\n var challengeResponses = {};\n challengeResponses.USERNAME = _this2.username;\n challengeResponses.PASSWORD_CLAIM_SECRET_BLOCK = challengeParameters.SECRET_BLOCK;\n challengeResponses.TIMESTAMP = dateNow;\n challengeResponses.PASSWORD_CLAIM_SIGNATURE = signatureString;\n if (_this2.deviceKey != null) {\n challengeResponses.DEVICE_KEY = _this2.deviceKey;\n }\n var respondToAuthChallenge = function respondToAuthChallenge(challenge, challengeCallback) {\n return _this2.client.request('RespondToAuthChallenge', challenge, function (errChallenge, dataChallenge) {\n if (errChallenge && errChallenge.code === 'ResourceNotFoundException' && errChallenge.message.toLowerCase().indexOf('device') !== -1) {\n challengeResponses.DEVICE_KEY = null;\n _this2.deviceKey = null;\n _this2.randomPassword = null;\n _this2.deviceGroupKey = null;\n _this2.clearCachedDeviceKeyAndPassword();\n return respondToAuthChallenge(challenge, challengeCallback);\n }\n return challengeCallback(errChallenge, dataChallenge);\n });\n };\n var jsonReqResp = {\n ChallengeName: 'PASSWORD_VERIFIER',\n ClientId: _this2.pool.getClientId(),\n ChallengeResponses: challengeResponses,\n Session: data.Session,\n ClientMetadata: clientMetaData\n };\n if (_this2.getUserContextData()) {\n jsonReqResp.UserContextData = _this2.getUserContextData();\n }\n respondToAuthChallenge(jsonReqResp, function (errAuthenticate, dataAuthenticate) {\n if (errAuthenticate) {\n return callback.onFailure(errAuthenticate);\n }\n return _this2.authenticateUserInternal(dataAuthenticate, authenticationHelper, callback);\n });\n return undefined;\n // getPasswordAuthenticationKey callback end\n });\n\n return undefined;\n });\n // getLargeAValue callback end\n });\n }\n\n /**\n * PRIVATE ONLY: This is an internal only method and should not\n * be directly called by the consumers.\n * @param {AuthenticationDetails} authDetails Contains the authentication data.\n * @param {object} callback Result callback map.\n * @param {onFailure} callback.onFailure Called on any error.\n * @param {mfaRequired} callback.mfaRequired MFA code\n * required to continue.\n * @param {authSuccess} callback.onSuccess Called on success with the new session.\n * @returns {void}\n */;\n _proto.authenticateUserPlainUsernamePassword = function authenticateUserPlainUsernamePassword(authDetails, callback) {\n var _this3 = this;\n var authParameters = {};\n authParameters.USERNAME = this.username;\n authParameters.PASSWORD = authDetails.getPassword();\n if (!authParameters.PASSWORD) {\n callback.onFailure(new Error('PASSWORD parameter is required'));\n return;\n }\n var authenticationHelper = new AuthenticationHelper(this.pool.getUserPoolName());\n this.getCachedDeviceKeyAndPassword();\n if (this.deviceKey != null) {\n authParameters.DEVICE_KEY = this.deviceKey;\n }\n var clientMetaData = Object.keys(authDetails.getValidationData()).length !== 0 ? authDetails.getValidationData() : authDetails.getClientMetadata();\n var jsonReq = {\n AuthFlow: 'USER_PASSWORD_AUTH',\n ClientId: this.pool.getClientId(),\n AuthParameters: authParameters,\n ClientMetadata: clientMetaData\n };\n if (this.getUserContextData(this.username)) {\n jsonReq.UserContextData = this.getUserContextData(this.username);\n }\n // USER_PASSWORD_AUTH happens in a single round-trip: client sends userName and password,\n // Cognito UserPools verifies password and returns tokens.\n this.client.request('InitiateAuth', jsonReq, function (err, authResult) {\n if (err) {\n return callback.onFailure(err);\n }\n return _this3.authenticateUserInternal(authResult, authenticationHelper, callback);\n });\n }\n\n /**\n * PRIVATE ONLY: This is an internal only method and should not\n * be directly called by the consumers.\n * @param {object} dataAuthenticate authentication data\n * @param {object} authenticationHelper helper created\n * @param {callback} callback passed on from caller\n * @returns {void}\n */;\n _proto.authenticateUserInternal = function authenticateUserInternal(dataAuthenticate, authenticationHelper, callback) {\n var _this4 = this;\n var challengeName = dataAuthenticate.ChallengeName;\n var challengeParameters = dataAuthenticate.ChallengeParameters;\n if (challengeName === 'SMS_MFA') {\n this.Session = dataAuthenticate.Session;\n return callback.mfaRequired(challengeName, challengeParameters);\n }\n if (challengeName === 'SELECT_MFA_TYPE') {\n this.Session = dataAuthenticate.Session;\n return callback.selectMFAType(challengeName, challengeParameters);\n }\n if (challengeName === 'MFA_SETUP') {\n this.Session = dataAuthenticate.Session;\n return callback.mfaSetup(challengeName, challengeParameters);\n }\n if (challengeName === 'SOFTWARE_TOKEN_MFA') {\n this.Session = dataAuthenticate.Session;\n return callback.totpRequired(challengeName, challengeParameters);\n }\n if (challengeName === 'CUSTOM_CHALLENGE') {\n this.Session = dataAuthenticate.Session;\n return callback.customChallenge(challengeParameters);\n }\n if (challengeName === 'NEW_PASSWORD_REQUIRED') {\n this.Session = dataAuthenticate.Session;\n var userAttributes = null;\n var rawRequiredAttributes = null;\n var requiredAttributes = [];\n var userAttributesPrefix = authenticationHelper.getNewPasswordRequiredChallengeUserAttributePrefix();\n if (challengeParameters) {\n userAttributes = JSON.parse(dataAuthenticate.ChallengeParameters.userAttributes);\n rawRequiredAttributes = JSON.parse(dataAuthenticate.ChallengeParameters.requiredAttributes);\n }\n if (rawRequiredAttributes) {\n for (var i = 0; i < rawRequiredAttributes.length; i++) {\n requiredAttributes[i] = rawRequiredAttributes[i].substr(userAttributesPrefix.length);\n }\n }\n return callback.newPasswordRequired(userAttributes, requiredAttributes);\n }\n if (challengeName === 'DEVICE_SRP_AUTH') {\n this.Session = dataAuthenticate.Session;\n this.getDeviceResponse(callback);\n return undefined;\n }\n this.signInUserSession = this.getCognitoUserSession(dataAuthenticate.AuthenticationResult);\n this.challengeName = challengeName;\n this.cacheTokens();\n var newDeviceMetadata = dataAuthenticate.AuthenticationResult.NewDeviceMetadata;\n if (newDeviceMetadata == null) {\n return callback.onSuccess(this.signInUserSession);\n }\n authenticationHelper.generateHashDevice(dataAuthenticate.AuthenticationResult.NewDeviceMetadata.DeviceGroupKey, dataAuthenticate.AuthenticationResult.NewDeviceMetadata.DeviceKey, function (errGenHash) {\n if (errGenHash) {\n return callback.onFailure(errGenHash);\n }\n var deviceSecretVerifierConfig = {\n Salt: Buffer.from(authenticationHelper.getSaltDevices(), 'hex').toString('base64'),\n PasswordVerifier: Buffer.from(authenticationHelper.getVerifierDevices(), 'hex').toString('base64')\n };\n _this4.verifierDevices = deviceSecretVerifierConfig.PasswordVerifier;\n _this4.deviceGroupKey = newDeviceMetadata.DeviceGroupKey;\n _this4.randomPassword = authenticationHelper.getRandomPassword();\n _this4.client.request('ConfirmDevice', {\n DeviceKey: newDeviceMetadata.DeviceKey,\n AccessToken: _this4.signInUserSession.getAccessToken().getJwtToken(),\n DeviceSecretVerifierConfig: deviceSecretVerifierConfig,\n DeviceName: userAgent\n }, function (errConfirm, dataConfirm) {\n if (errConfirm) {\n return callback.onFailure(errConfirm);\n }\n _this4.deviceKey = dataAuthenticate.AuthenticationResult.NewDeviceMetadata.DeviceKey;\n _this4.cacheDeviceKeyAndPassword();\n if (dataConfirm.UserConfirmationNecessary === true) {\n return callback.onSuccess(_this4.signInUserSession, dataConfirm.UserConfirmationNecessary);\n }\n return callback.onSuccess(_this4.signInUserSession);\n });\n return undefined;\n });\n return undefined;\n }\n\n /**\n * This method is user to complete the NEW_PASSWORD_REQUIRED challenge.\n * Pass the new password with any new user attributes to be updated.\n * User attribute keys must be of format userAttributes..\n * @param {string} newPassword new password for this user\n * @param {object} requiredAttributeData map with values for all required attributes\n * @param {object} callback Result callback map.\n * @param {onFailure} callback.onFailure Called on any error.\n * @param {mfaRequired} callback.mfaRequired MFA code required to continue.\n * @param {customChallenge} callback.customChallenge Custom challenge\n * response required to continue.\n * @param {authSuccess} callback.onSuccess Called on success with the new session.\n * @param {ClientMetadata} clientMetadata object which is passed from client to Cognito Lambda trigger\n * @returns {void}\n */;\n _proto.completeNewPasswordChallenge = function completeNewPasswordChallenge(newPassword, requiredAttributeData, callback, clientMetadata) {\n var _this5 = this;\n if (!newPassword) {\n return callback.onFailure(new Error('New password is required.'));\n }\n var authenticationHelper = new AuthenticationHelper(this.pool.getUserPoolName());\n var userAttributesPrefix = authenticationHelper.getNewPasswordRequiredChallengeUserAttributePrefix();\n var finalUserAttributes = {};\n if (requiredAttributeData) {\n Object.keys(requiredAttributeData).forEach(function (key) {\n finalUserAttributes[userAttributesPrefix + key] = requiredAttributeData[key];\n });\n }\n finalUserAttributes.NEW_PASSWORD = newPassword;\n finalUserAttributes.USERNAME = this.username;\n var jsonReq = {\n ChallengeName: 'NEW_PASSWORD_REQUIRED',\n ClientId: this.pool.getClientId(),\n ChallengeResponses: finalUserAttributes,\n Session: this.Session,\n ClientMetadata: clientMetadata\n };\n if (this.getUserContextData()) {\n jsonReq.UserContextData = this.getUserContextData();\n }\n this.client.request('RespondToAuthChallenge', jsonReq, function (errAuthenticate, dataAuthenticate) {\n if (errAuthenticate) {\n return callback.onFailure(errAuthenticate);\n }\n return _this5.authenticateUserInternal(dataAuthenticate, authenticationHelper, callback);\n });\n return undefined;\n }\n\n /**\n * This is used to get a session using device authentication. It is called at the end of user\n * authentication\n *\n * @param {object} callback Result callback map.\n * @param {onFailure} callback.onFailure Called on any error.\n * @param {authSuccess} callback.onSuccess Called on success with the new session.\n * @param {ClientMetadata} clientMetadata object which is passed from client to Cognito Lambda trigger\n * @returns {void}\n * @private\n */;\n _proto.getDeviceResponse = function getDeviceResponse(callback, clientMetadata) {\n var _this6 = this;\n var authenticationHelper = new AuthenticationHelper(this.deviceGroupKey);\n var dateHelper = new DateHelper();\n var authParameters = {};\n authParameters.USERNAME = this.username;\n authParameters.DEVICE_KEY = this.deviceKey;\n authenticationHelper.getLargeAValue(function (errAValue, aValue) {\n // getLargeAValue callback start\n if (errAValue) {\n callback.onFailure(errAValue);\n }\n authParameters.SRP_A = aValue.toString(16);\n var jsonReq = {\n ChallengeName: 'DEVICE_SRP_AUTH',\n ClientId: _this6.pool.getClientId(),\n ChallengeResponses: authParameters,\n ClientMetadata: clientMetadata,\n Session: _this6.Session\n };\n if (_this6.getUserContextData()) {\n jsonReq.UserContextData = _this6.getUserContextData();\n }\n _this6.client.request('RespondToAuthChallenge', jsonReq, function (err, data) {\n if (err) {\n return callback.onFailure(err);\n }\n var challengeParameters = data.ChallengeParameters;\n var serverBValue = new BigInteger(challengeParameters.SRP_B, 16);\n var salt = new BigInteger(challengeParameters.SALT, 16);\n authenticationHelper.getPasswordAuthenticationKey(_this6.deviceKey, _this6.randomPassword, serverBValue, salt, function (errHkdf, hkdf) {\n // getPasswordAuthenticationKey callback start\n if (errHkdf) {\n return callback.onFailure(errHkdf);\n }\n var dateNow = dateHelper.getNowString();\n var concatBuffer = Buffer.concat([Buffer.from(_this6.deviceGroupKey, 'utf8'), Buffer.from(_this6.deviceKey, 'utf8'), Buffer.from(challengeParameters.SECRET_BLOCK, 'base64'), Buffer.from(dateNow, 'utf8')]);\n var awsCryptoHash = new Sha256(hkdf);\n awsCryptoHash.update(concatBuffer);\n var resultFromAWSCrypto = awsCryptoHash.digestSync();\n var signatureString = Buffer.from(resultFromAWSCrypto).toString('base64');\n var challengeResponses = {};\n challengeResponses.USERNAME = _this6.username;\n challengeResponses.PASSWORD_CLAIM_SECRET_BLOCK = challengeParameters.SECRET_BLOCK;\n challengeResponses.TIMESTAMP = dateNow;\n challengeResponses.PASSWORD_CLAIM_SIGNATURE = signatureString;\n challengeResponses.DEVICE_KEY = _this6.deviceKey;\n var jsonReqResp = {\n ChallengeName: 'DEVICE_PASSWORD_VERIFIER',\n ClientId: _this6.pool.getClientId(),\n ChallengeResponses: challengeResponses,\n Session: data.Session\n };\n if (_this6.getUserContextData()) {\n jsonReqResp.UserContextData = _this6.getUserContextData();\n }\n _this6.client.request('RespondToAuthChallenge', jsonReqResp, function (errAuthenticate, dataAuthenticate) {\n if (errAuthenticate) {\n return callback.onFailure(errAuthenticate);\n }\n _this6.signInUserSession = _this6.getCognitoUserSession(dataAuthenticate.AuthenticationResult);\n _this6.cacheTokens();\n return callback.onSuccess(_this6.signInUserSession);\n });\n return undefined;\n // getPasswordAuthenticationKey callback end\n });\n\n return undefined;\n });\n // getLargeAValue callback end\n });\n }\n\n /**\n * This is used for a certain user to confirm the registration by using a confirmation code\n * @param {string} confirmationCode Code entered by user.\n * @param {bool} forceAliasCreation Allow migrating from an existing email / phone number.\n * @param {nodeCallback} callback Called on success or error.\n * @param {ClientMetadata} clientMetadata object which is passed from client to Cognito Lambda trigger\n * @returns {void}\n */;\n _proto.confirmRegistration = function confirmRegistration(confirmationCode, forceAliasCreation, callback, clientMetadata) {\n var jsonReq = {\n ClientId: this.pool.getClientId(),\n ConfirmationCode: confirmationCode,\n Username: this.username,\n ForceAliasCreation: forceAliasCreation,\n ClientMetadata: clientMetadata\n };\n if (this.getUserContextData()) {\n jsonReq.UserContextData = this.getUserContextData();\n }\n this.client.request('ConfirmSignUp', jsonReq, function (err) {\n if (err) {\n return callback(err, null);\n }\n return callback(null, 'SUCCESS');\n });\n }\n\n /**\n * This is used by the user once he has the responses to a custom challenge\n * @param {string} answerChallenge The custom challenge answer.\n * @param {object} callback Result callback map.\n * @param {onFailure} callback.onFailure Called on any error.\n * @param {customChallenge} callback.customChallenge\n * Custom challenge response required to continue.\n * @param {authSuccess} callback.onSuccess Called on success with the new session.\n * @param {ClientMetadata} clientMetadata object which is passed from client to Cognito Lambda trigger\n * @returns {void}\n */;\n _proto.sendCustomChallengeAnswer = function sendCustomChallengeAnswer(answerChallenge, callback, clientMetadata) {\n var _this7 = this;\n var challengeResponses = {};\n challengeResponses.USERNAME = this.username;\n challengeResponses.ANSWER = answerChallenge;\n var authenticationHelper = new AuthenticationHelper(this.pool.getUserPoolName());\n this.getCachedDeviceKeyAndPassword();\n if (this.deviceKey != null) {\n challengeResponses.DEVICE_KEY = this.deviceKey;\n }\n var jsonReq = {\n ChallengeName: 'CUSTOM_CHALLENGE',\n ChallengeResponses: challengeResponses,\n ClientId: this.pool.getClientId(),\n Session: this.Session,\n ClientMetadata: clientMetadata\n };\n if (this.getUserContextData()) {\n jsonReq.UserContextData = this.getUserContextData();\n }\n this.client.request('RespondToAuthChallenge', jsonReq, function (err, data) {\n if (err) {\n return callback.onFailure(err);\n }\n return _this7.authenticateUserInternal(data, authenticationHelper, callback);\n });\n }\n\n /**\n * This is used by the user once he has an MFA code\n * @param {string} confirmationCode The MFA code entered by the user.\n * @param {object} callback Result callback map.\n * @param {string} mfaType The mfa we are replying to.\n * @param {onFailure} callback.onFailure Called on any error.\n * @param {authSuccess} callback.onSuccess Called on success with the new session.\n * @param {ClientMetadata} clientMetadata object which is passed from client to Cognito Lambda trigger\n * @returns {void}\n */;\n _proto.sendMFACode = function sendMFACode(confirmationCode, callback, mfaType, clientMetadata) {\n var _this8 = this;\n var challengeResponses = {};\n challengeResponses.USERNAME = this.username;\n challengeResponses.SMS_MFA_CODE = confirmationCode;\n var mfaTypeSelection = mfaType || 'SMS_MFA';\n if (mfaTypeSelection === 'SOFTWARE_TOKEN_MFA') {\n challengeResponses.SOFTWARE_TOKEN_MFA_CODE = confirmationCode;\n }\n if (this.deviceKey != null) {\n challengeResponses.DEVICE_KEY = this.deviceKey;\n }\n var jsonReq = {\n ChallengeName: mfaTypeSelection,\n ChallengeResponses: challengeResponses,\n ClientId: this.pool.getClientId(),\n Session: this.Session,\n ClientMetadata: clientMetadata\n };\n if (this.getUserContextData()) {\n jsonReq.UserContextData = this.getUserContextData();\n }\n this.client.request('RespondToAuthChallenge', jsonReq, function (err, dataAuthenticate) {\n if (err) {\n return callback.onFailure(err);\n }\n var challengeName = dataAuthenticate.ChallengeName;\n if (challengeName === 'DEVICE_SRP_AUTH') {\n _this8.getDeviceResponse(callback);\n return undefined;\n }\n _this8.signInUserSession = _this8.getCognitoUserSession(dataAuthenticate.AuthenticationResult);\n _this8.cacheTokens();\n if (dataAuthenticate.AuthenticationResult.NewDeviceMetadata == null) {\n return callback.onSuccess(_this8.signInUserSession);\n }\n var authenticationHelper = new AuthenticationHelper(_this8.pool.getUserPoolName());\n authenticationHelper.generateHashDevice(dataAuthenticate.AuthenticationResult.NewDeviceMetadata.DeviceGroupKey, dataAuthenticate.AuthenticationResult.NewDeviceMetadata.DeviceKey, function (errGenHash) {\n if (errGenHash) {\n return callback.onFailure(errGenHash);\n }\n var deviceSecretVerifierConfig = {\n Salt: Buffer.from(authenticationHelper.getSaltDevices(), 'hex').toString('base64'),\n PasswordVerifier: Buffer.from(authenticationHelper.getVerifierDevices(), 'hex').toString('base64')\n };\n _this8.verifierDevices = deviceSecretVerifierConfig.PasswordVerifier;\n _this8.deviceGroupKey = dataAuthenticate.AuthenticationResult.NewDeviceMetadata.DeviceGroupKey;\n _this8.randomPassword = authenticationHelper.getRandomPassword();\n _this8.client.request('ConfirmDevice', {\n DeviceKey: dataAuthenticate.AuthenticationResult.NewDeviceMetadata.DeviceKey,\n AccessToken: _this8.signInUserSession.getAccessToken().getJwtToken(),\n DeviceSecretVerifierConfig: deviceSecretVerifierConfig,\n DeviceName: userAgent\n }, function (errConfirm, dataConfirm) {\n if (errConfirm) {\n return callback.onFailure(errConfirm);\n }\n _this8.deviceKey = dataAuthenticate.AuthenticationResult.NewDeviceMetadata.DeviceKey;\n _this8.cacheDeviceKeyAndPassword();\n if (dataConfirm.UserConfirmationNecessary === true) {\n return callback.onSuccess(_this8.signInUserSession, dataConfirm.UserConfirmationNecessary);\n }\n return callback.onSuccess(_this8.signInUserSession);\n });\n return undefined;\n });\n return undefined;\n });\n }\n\n /**\n * This is used by an authenticated user to change the current password\n * @param {string} oldUserPassword The current password.\n * @param {string} newUserPassword The requested new password.\n * @param {nodeCallback} callback Called on success or error.\n * @param {ClientMetadata} clientMetadata object which is passed from client to Cognito Lambda trigger\n * @returns {void}\n */;\n _proto.changePassword = function changePassword(oldUserPassword, newUserPassword, callback, clientMetadata) {\n if (!(this.signInUserSession != null && this.signInUserSession.isValid())) {\n return callback(new Error('User is not authenticated'), null);\n }\n this.client.request('ChangePassword', {\n PreviousPassword: oldUserPassword,\n ProposedPassword: newUserPassword,\n AccessToken: this.signInUserSession.getAccessToken().getJwtToken(),\n ClientMetadata: clientMetadata\n }, function (err) {\n if (err) {\n return callback(err, null);\n }\n return callback(null, 'SUCCESS');\n });\n return undefined;\n }\n\n /**\n * This is used by an authenticated user to enable MFA for itself\n * @deprecated\n * @param {nodeCallback} callback Called on success or error.\n * @returns {void}\n */;\n _proto.enableMFA = function enableMFA(callback) {\n if (this.signInUserSession == null || !this.signInUserSession.isValid()) {\n return callback(new Error('User is not authenticated'), null);\n }\n var mfaOptions = [];\n var mfaEnabled = {\n DeliveryMedium: 'SMS',\n AttributeName: 'phone_number'\n };\n mfaOptions.push(mfaEnabled);\n this.client.request('SetUserSettings', {\n MFAOptions: mfaOptions,\n AccessToken: this.signInUserSession.getAccessToken().getJwtToken()\n }, function (err) {\n if (err) {\n return callback(err, null);\n }\n return callback(null, 'SUCCESS');\n });\n return undefined;\n }\n\n /**\n * This is used by an authenticated user to enable MFA for itself\n * @param {IMfaSettings} smsMfaSettings the sms mfa settings\n * @param {IMFASettings} softwareTokenMfaSettings the software token mfa settings\n * @param {nodeCallback} callback Called on success or error.\n * @returns {void}\n */;\n _proto.setUserMfaPreference = function setUserMfaPreference(smsMfaSettings, softwareTokenMfaSettings, callback) {\n if (this.signInUserSession == null || !this.signInUserSession.isValid()) {\n return callback(new Error('User is not authenticated'), null);\n }\n this.client.request('SetUserMFAPreference', {\n SMSMfaSettings: smsMfaSettings,\n SoftwareTokenMfaSettings: softwareTokenMfaSettings,\n AccessToken: this.signInUserSession.getAccessToken().getJwtToken()\n }, function (err) {\n if (err) {\n return callback(err, null);\n }\n return callback(null, 'SUCCESS');\n });\n return undefined;\n }\n\n /**\n * This is used by an authenticated user to disable MFA for itself\n * @deprecated\n * @param {nodeCallback} callback Called on success or error.\n * @returns {void}\n */;\n _proto.disableMFA = function disableMFA(callback) {\n if (this.signInUserSession == null || !this.signInUserSession.isValid()) {\n return callback(new Error('User is not authenticated'), null);\n }\n var mfaOptions = [];\n this.client.request('SetUserSettings', {\n MFAOptions: mfaOptions,\n AccessToken: this.signInUserSession.getAccessToken().getJwtToken()\n }, function (err) {\n if (err) {\n return callback(err, null);\n }\n return callback(null, 'SUCCESS');\n });\n return undefined;\n }\n\n /**\n * This is used by an authenticated user to delete itself\n * @param {nodeCallback} callback Called on success or error.\n * @param {ClientMetadata} clientMetadata object which is passed from client to Cognito Lambda trigger\n * @returns {void}\n */;\n _proto.deleteUser = function deleteUser(callback, clientMetadata) {\n var _this9 = this;\n if (this.signInUserSession == null || !this.signInUserSession.isValid()) {\n return callback(new Error('User is not authenticated'), null);\n }\n this.client.request('DeleteUser', {\n AccessToken: this.signInUserSession.getAccessToken().getJwtToken(),\n ClientMetadata: clientMetadata\n }, function (err) {\n if (err) {\n return callback(err, null);\n }\n _this9.clearCachedUser();\n return callback(null, 'SUCCESS');\n });\n return undefined;\n }\n\n /**\n * @typedef {CognitoUserAttribute | { Name:string, Value:string }} AttributeArg\n */\n /**\n * This is used by an authenticated user to change a list of attributes\n * @param {AttributeArg[]} attributes A list of the new user attributes.\n * @param {nodeCallback} callback Called on success or error.\n * @param {ClientMetadata} clientMetadata object which is passed from client to Cognito Lambda trigger\n * @returns {void}\n */;\n _proto.updateAttributes = function updateAttributes(attributes, callback, clientMetadata) {\n var _this10 = this;\n if (this.signInUserSession == null || !this.signInUserSession.isValid()) {\n return callback(new Error('User is not authenticated'), null);\n }\n this.client.request('UpdateUserAttributes', {\n AccessToken: this.signInUserSession.getAccessToken().getJwtToken(),\n UserAttributes: attributes,\n ClientMetadata: clientMetadata\n }, function (err, result) {\n if (err) {\n return callback(err, null);\n }\n\n // update cached user\n return _this10.getUserData(function () {\n return callback(null, 'SUCCESS', result);\n }, {\n bypassCache: true\n });\n });\n return undefined;\n }\n\n /**\n * This is used by an authenticated user to get a list of attributes\n * @param {nodeCallback} callback Called on success or error.\n * @returns {void}\n */;\n _proto.getUserAttributes = function getUserAttributes(callback) {\n if (!(this.signInUserSession != null && this.signInUserSession.isValid())) {\n return callback(new Error('User is not authenticated'), null);\n }\n this.client.request('GetUser', {\n AccessToken: this.signInUserSession.getAccessToken().getJwtToken()\n }, function (err, userData) {\n if (err) {\n return callback(err, null);\n }\n var attributeList = [];\n for (var i = 0; i < userData.UserAttributes.length; i++) {\n var attribute = {\n Name: userData.UserAttributes[i].Name,\n Value: userData.UserAttributes[i].Value\n };\n var userAttribute = new CognitoUserAttribute(attribute);\n attributeList.push(userAttribute);\n }\n return callback(null, attributeList);\n });\n return undefined;\n }\n\n /**\n * This was previously used by an authenticated user to get MFAOptions,\n * but no longer returns a meaningful response. Refer to the documentation for\n * how to setup and use MFA: https://docs.amplify.aws/lib/auth/mfa/q/platform/js\n * @deprecated\n * @param {nodeCallback} callback Called on success or error.\n * @returns {void}\n */;\n _proto.getMFAOptions = function getMFAOptions(callback) {\n if (!(this.signInUserSession != null && this.signInUserSession.isValid())) {\n return callback(new Error('User is not authenticated'), null);\n }\n this.client.request('GetUser', {\n AccessToken: this.signInUserSession.getAccessToken().getJwtToken()\n }, function (err, userData) {\n if (err) {\n return callback(err, null);\n }\n return callback(null, userData.MFAOptions);\n });\n return undefined;\n }\n\n /**\n * PRIVATE ONLY: This is an internal only method and should not\n * be directly called by the consumers.\n */;\n _proto.createGetUserRequest = function createGetUserRequest() {\n return this.client.promisifyRequest('GetUser', {\n AccessToken: this.signInUserSession.getAccessToken().getJwtToken()\n });\n }\n\n /**\n * PRIVATE ONLY: This is an internal only method and should not\n * be directly called by the consumers.\n */;\n _proto.refreshSessionIfPossible = function refreshSessionIfPossible(options) {\n var _this11 = this;\n if (options === void 0) {\n options = {};\n }\n // best effort, if not possible\n return new Promise(function (resolve) {\n var refresh = _this11.signInUserSession.getRefreshToken();\n if (refresh && refresh.getToken()) {\n _this11.refreshSession(refresh, resolve, options.clientMetadata);\n } else {\n resolve();\n }\n });\n }\n\n /**\n * @typedef {Object} GetUserDataOptions\n * @property {boolean} bypassCache - force getting data from Cognito service\n * @property {Record} clientMetadata - clientMetadata for getSession\n */\n\n /**\n * This is used by an authenticated users to get the userData\n * @param {nodeCallback} callback Called on success or error.\n * @param {GetUserDataOptions} params\n * @returns {void}\n */;\n _proto.getUserData = function getUserData(callback, params) {\n var _this12 = this;\n if (!(this.signInUserSession != null && this.signInUserSession.isValid())) {\n this.clearCachedUserData();\n return callback(new Error('User is not authenticated'), null);\n }\n var userData = this.getUserDataFromCache();\n if (!userData) {\n this.fetchUserData().then(function (data) {\n callback(null, data);\n })[\"catch\"](callback);\n return;\n }\n if (this.isFetchUserDataAndTokenRequired(params)) {\n this.fetchUserData().then(function (data) {\n return _this12.refreshSessionIfPossible(params).then(function () {\n return data;\n });\n }).then(function (data) {\n return callback(null, data);\n })[\"catch\"](callback);\n return;\n }\n try {\n callback(null, JSON.parse(userData));\n return;\n } catch (err) {\n this.clearCachedUserData();\n callback(err, null);\n return;\n }\n }\n\n /**\n *\n * PRIVATE ONLY: This is an internal only method and should not\n * be directly called by the consumers.\n */;\n _proto.getUserDataFromCache = function getUserDataFromCache() {\n var userData = this.storage.getItem(this.userDataKey);\n return userData;\n }\n\n /**\n *\n * PRIVATE ONLY: This is an internal only method and should not\n * be directly called by the consumers.\n */;\n _proto.isFetchUserDataAndTokenRequired = function isFetchUserDataAndTokenRequired(params) {\n var _ref = params || {},\n _ref$bypassCache = _ref.bypassCache,\n bypassCache = _ref$bypassCache === void 0 ? false : _ref$bypassCache;\n return bypassCache;\n }\n /**\n *\n * PRIVATE ONLY: This is an internal only method and should not\n * be directly called by the consumers.\n */;\n _proto.fetchUserData = function fetchUserData() {\n var _this13 = this;\n return this.createGetUserRequest().then(function (data) {\n _this13.cacheUserData(data);\n return data;\n });\n }\n\n /**\n * This is used by an authenticated user to delete a list of attributes\n * @param {string[]} attributeList Names of the attributes to delete.\n * @param {nodeCallback} callback Called on success or error.\n * @returns {void}\n */;\n _proto.deleteAttributes = function deleteAttributes(attributeList, callback) {\n var _this14 = this;\n if (!(this.signInUserSession != null && this.signInUserSession.isValid())) {\n return callback(new Error('User is not authenticated'), null);\n }\n this.client.request('DeleteUserAttributes', {\n UserAttributeNames: attributeList,\n AccessToken: this.signInUserSession.getAccessToken().getJwtToken()\n }, function (err) {\n if (err) {\n return callback(err, null);\n }\n\n // update cached user\n return _this14.getUserData(function () {\n return callback(null, 'SUCCESS');\n }, {\n bypassCache: true\n });\n });\n return undefined;\n }\n\n /**\n * This is used by a user to resend a confirmation code\n * @param {nodeCallback} callback Called on success or error.\n * @param {ClientMetadata} clientMetadata object which is passed from client to Cognito Lambda trigger\n * @returns {void}\n */;\n _proto.resendConfirmationCode = function resendConfirmationCode(callback, clientMetadata) {\n var jsonReq = {\n ClientId: this.pool.getClientId(),\n Username: this.username,\n ClientMetadata: clientMetadata\n };\n this.client.request('ResendConfirmationCode', jsonReq, function (err, result) {\n if (err) {\n return callback(err, null);\n }\n return callback(null, result);\n });\n }\n\n /**\n * @typedef {Object} GetSessionOptions\n * @property {Record} clientMetadata - clientMetadata for getSession\n */\n\n /**\n * This is used to get a session, either from the session object\n * or from the local storage, or by using a refresh token\n *\n * @param {nodeCallback} callback Called on success or error.\n * @param {GetSessionOptions} options\n * @returns {void}\n */;\n _proto.getSession = function getSession(callback, options) {\n if (options === void 0) {\n options = {};\n }\n if (this.username == null) {\n return callback(new Error('Username is null. Cannot retrieve a new session'), null);\n }\n if (this.signInUserSession != null && this.signInUserSession.isValid()) {\n return callback(null, this.signInUserSession);\n }\n var keyPrefix = \"CognitoIdentityServiceProvider.\" + this.pool.getClientId() + \".\" + this.username;\n var idTokenKey = keyPrefix + \".idToken\";\n var accessTokenKey = keyPrefix + \".accessToken\";\n var refreshTokenKey = keyPrefix + \".refreshToken\";\n var clockDriftKey = keyPrefix + \".clockDrift\";\n if (this.storage.getItem(idTokenKey)) {\n var idToken = new CognitoIdToken({\n IdToken: this.storage.getItem(idTokenKey)\n });\n var accessToken = new CognitoAccessToken({\n AccessToken: this.storage.getItem(accessTokenKey)\n });\n var refreshToken = new CognitoRefreshToken({\n RefreshToken: this.storage.getItem(refreshTokenKey)\n });\n var clockDrift = parseInt(this.storage.getItem(clockDriftKey), 0) || 0;\n var sessionData = {\n IdToken: idToken,\n AccessToken: accessToken,\n RefreshToken: refreshToken,\n ClockDrift: clockDrift\n };\n var cachedSession = new CognitoUserSession(sessionData);\n if (cachedSession.isValid()) {\n this.signInUserSession = cachedSession;\n return callback(null, this.signInUserSession);\n }\n if (!refreshToken.getToken()) {\n return callback(new Error('Cannot retrieve a new session. Please authenticate.'), null);\n }\n this.refreshSession(refreshToken, callback, options.clientMetadata);\n } else {\n callback(new Error('Local storage is missing an ID Token, Please authenticate'), null);\n }\n return undefined;\n }\n\n /**\n * This uses the refreshToken to retrieve a new session\n * @param {CognitoRefreshToken} refreshToken A previous session's refresh token.\n * @param {nodeCallback} callback Called on success or error.\n * @param {ClientMetadata} clientMetadata object which is passed from client to Cognito Lambda trigger\n * @returns {void}\n */;\n _proto.refreshSession = function refreshSession(refreshToken, callback, clientMetadata) {\n var _this15 = this;\n var wrappedCallback = this.pool.wrapRefreshSessionCallback ? this.pool.wrapRefreshSessionCallback(callback) : callback;\n var authParameters = {};\n authParameters.REFRESH_TOKEN = refreshToken.getToken();\n var keyPrefix = \"CognitoIdentityServiceProvider.\" + this.pool.getClientId();\n var lastUserKey = keyPrefix + \".LastAuthUser\";\n if (this.storage.getItem(lastUserKey)) {\n this.username = this.storage.getItem(lastUserKey);\n var deviceKeyKey = keyPrefix + \".\" + this.username + \".deviceKey\";\n this.deviceKey = this.storage.getItem(deviceKeyKey);\n authParameters.DEVICE_KEY = this.deviceKey;\n }\n var jsonReq = {\n ClientId: this.pool.getClientId(),\n AuthFlow: 'REFRESH_TOKEN_AUTH',\n AuthParameters: authParameters,\n ClientMetadata: clientMetadata\n };\n if (this.getUserContextData()) {\n jsonReq.UserContextData = this.getUserContextData();\n }\n this.client.request('InitiateAuth', jsonReq, function (err, authResult) {\n if (err) {\n if (err.code === 'NotAuthorizedException') {\n _this15.clearCachedUser();\n }\n return wrappedCallback(err, null);\n }\n if (authResult) {\n var authenticationResult = authResult.AuthenticationResult;\n if (!Object.prototype.hasOwnProperty.call(authenticationResult, 'RefreshToken')) {\n authenticationResult.RefreshToken = refreshToken.getToken();\n }\n _this15.signInUserSession = _this15.getCognitoUserSession(authenticationResult);\n _this15.cacheTokens();\n return wrappedCallback(null, _this15.signInUserSession);\n }\n return undefined;\n });\n }\n\n /**\n * This is used to save the session tokens to local storage\n * @returns {void}\n */;\n _proto.cacheTokens = function cacheTokens() {\n var keyPrefix = \"CognitoIdentityServiceProvider.\" + this.pool.getClientId();\n var idTokenKey = keyPrefix + \".\" + this.username + \".idToken\";\n var accessTokenKey = keyPrefix + \".\" + this.username + \".accessToken\";\n var refreshTokenKey = keyPrefix + \".\" + this.username + \".refreshToken\";\n var clockDriftKey = keyPrefix + \".\" + this.username + \".clockDrift\";\n var lastUserKey = keyPrefix + \".LastAuthUser\";\n this.storage.setItem(idTokenKey, this.signInUserSession.getIdToken().getJwtToken());\n this.storage.setItem(accessTokenKey, this.signInUserSession.getAccessToken().getJwtToken());\n this.storage.setItem(refreshTokenKey, this.signInUserSession.getRefreshToken().getToken());\n this.storage.setItem(clockDriftKey, \"\" + this.signInUserSession.getClockDrift());\n this.storage.setItem(lastUserKey, this.username);\n }\n\n /**\n * This is to cache user data\n */;\n _proto.cacheUserData = function cacheUserData(userData) {\n this.storage.setItem(this.userDataKey, JSON.stringify(userData));\n }\n\n /**\n * This is to remove cached user data\n */;\n _proto.clearCachedUserData = function clearCachedUserData() {\n this.storage.removeItem(this.userDataKey);\n };\n _proto.clearCachedUser = function clearCachedUser() {\n this.clearCachedTokens();\n this.clearCachedUserData();\n }\n\n /**\n * This is used to cache the device key and device group and device password\n * @returns {void}\n */;\n _proto.cacheDeviceKeyAndPassword = function cacheDeviceKeyAndPassword() {\n var keyPrefix = \"CognitoIdentityServiceProvider.\" + this.pool.getClientId() + \".\" + this.username;\n var deviceKeyKey = keyPrefix + \".deviceKey\";\n var randomPasswordKey = keyPrefix + \".randomPasswordKey\";\n var deviceGroupKeyKey = keyPrefix + \".deviceGroupKey\";\n this.storage.setItem(deviceKeyKey, this.deviceKey);\n this.storage.setItem(randomPasswordKey, this.randomPassword);\n this.storage.setItem(deviceGroupKeyKey, this.deviceGroupKey);\n }\n\n /**\n * This is used to get current device key and device group and device password\n * @returns {void}\n */;\n _proto.getCachedDeviceKeyAndPassword = function getCachedDeviceKeyAndPassword() {\n var keyPrefix = \"CognitoIdentityServiceProvider.\" + this.pool.getClientId() + \".\" + this.username;\n var deviceKeyKey = keyPrefix + \".deviceKey\";\n var randomPasswordKey = keyPrefix + \".randomPasswordKey\";\n var deviceGroupKeyKey = keyPrefix + \".deviceGroupKey\";\n if (this.storage.getItem(deviceKeyKey)) {\n this.deviceKey = this.storage.getItem(deviceKeyKey);\n this.randomPassword = this.storage.getItem(randomPasswordKey);\n this.deviceGroupKey = this.storage.getItem(deviceGroupKeyKey);\n }\n }\n\n /**\n * This is used to clear the device key info from local storage\n * @returns {void}\n */;\n _proto.clearCachedDeviceKeyAndPassword = function clearCachedDeviceKeyAndPassword() {\n var keyPrefix = \"CognitoIdentityServiceProvider.\" + this.pool.getClientId() + \".\" + this.username;\n var deviceKeyKey = keyPrefix + \".deviceKey\";\n var randomPasswordKey = keyPrefix + \".randomPasswordKey\";\n var deviceGroupKeyKey = keyPrefix + \".deviceGroupKey\";\n this.storage.removeItem(deviceKeyKey);\n this.storage.removeItem(randomPasswordKey);\n this.storage.removeItem(deviceGroupKeyKey);\n }\n\n /**\n * This is used to clear the session tokens from local storage\n * @returns {void}\n */;\n _proto.clearCachedTokens = function clearCachedTokens() {\n var keyPrefix = \"CognitoIdentityServiceProvider.\" + this.pool.getClientId();\n var idTokenKey = keyPrefix + \".\" + this.username + \".idToken\";\n var accessTokenKey = keyPrefix + \".\" + this.username + \".accessToken\";\n var refreshTokenKey = keyPrefix + \".\" + this.username + \".refreshToken\";\n var lastUserKey = keyPrefix + \".LastAuthUser\";\n var clockDriftKey = keyPrefix + \".\" + this.username + \".clockDrift\";\n this.storage.removeItem(idTokenKey);\n this.storage.removeItem(accessTokenKey);\n this.storage.removeItem(refreshTokenKey);\n this.storage.removeItem(lastUserKey);\n this.storage.removeItem(clockDriftKey);\n }\n\n /**\n * This is used to build a user session from tokens retrieved in the authentication result\n * @param {object} authResult Successful auth response from server.\n * @returns {CognitoUserSession} The new user session.\n * @private\n */;\n _proto.getCognitoUserSession = function getCognitoUserSession(authResult) {\n var idToken = new CognitoIdToken(authResult);\n var accessToken = new CognitoAccessToken(authResult);\n var refreshToken = new CognitoRefreshToken(authResult);\n var sessionData = {\n IdToken: idToken,\n AccessToken: accessToken,\n RefreshToken: refreshToken\n };\n return new CognitoUserSession(sessionData);\n }\n\n /**\n * This is used to initiate a forgot password request\n * @param {object} callback Result callback map.\n * @param {onFailure} callback.onFailure Called on any error.\n * @param {inputVerificationCode?} callback.inputVerificationCode\n * Optional callback raised instead of onSuccess with response data.\n * @param {onSuccess} callback.onSuccess Called on success.\n * @param {ClientMetadata} clientMetadata object which is passed from client to Cognito Lambda trigger\n * @returns {void}\n */;\n _proto.forgotPassword = function forgotPassword(callback, clientMetadata) {\n var jsonReq = {\n ClientId: this.pool.getClientId(),\n Username: this.username,\n ClientMetadata: clientMetadata\n };\n if (this.getUserContextData()) {\n jsonReq.UserContextData = this.getUserContextData();\n }\n this.client.request('ForgotPassword', jsonReq, function (err, data) {\n if (err) {\n return callback.onFailure(err);\n }\n if (typeof callback.inputVerificationCode === 'function') {\n return callback.inputVerificationCode(data);\n }\n return callback.onSuccess(data);\n });\n }\n\n /**\n * This is used to confirm a new password using a confirmationCode\n * @param {string} confirmationCode Code entered by user.\n * @param {string} newPassword Confirm new password.\n * @param {object} callback Result callback map.\n * @param {onFailure} callback.onFailure Called on any error.\n * @param {onSuccess} callback.onSuccess Called on success.\n * @param {ClientMetadata} clientMetadata object which is passed from client to Cognito Lambda trigger\n * @returns {void}\n */;\n _proto.confirmPassword = function confirmPassword(confirmationCode, newPassword, callback, clientMetadata) {\n var jsonReq = {\n ClientId: this.pool.getClientId(),\n Username: this.username,\n ConfirmationCode: confirmationCode,\n Password: newPassword,\n ClientMetadata: clientMetadata\n };\n if (this.getUserContextData()) {\n jsonReq.UserContextData = this.getUserContextData();\n }\n this.client.request('ConfirmForgotPassword', jsonReq, function (err) {\n if (err) {\n return callback.onFailure(err);\n }\n return callback.onSuccess('SUCCESS');\n });\n }\n\n /**\n * This is used to initiate an attribute confirmation request\n * @param {string} attributeName User attribute that needs confirmation.\n * @param {object} callback Result callback map.\n * @param {onFailure} callback.onFailure Called on any error.\n * @param {inputVerificationCode} callback.inputVerificationCode Called on success.\n * @param {ClientMetadata} clientMetadata object which is passed from client to Cognito Lambda trigger\n * @returns {void}\n */;\n _proto.getAttributeVerificationCode = function getAttributeVerificationCode(attributeName, callback, clientMetadata) {\n if (this.signInUserSession == null || !this.signInUserSession.isValid()) {\n return callback.onFailure(new Error('User is not authenticated'));\n }\n this.client.request('GetUserAttributeVerificationCode', {\n AttributeName: attributeName,\n AccessToken: this.signInUserSession.getAccessToken().getJwtToken(),\n ClientMetadata: clientMetadata\n }, function (err, data) {\n if (err) {\n return callback.onFailure(err);\n }\n if (typeof callback.inputVerificationCode === 'function') {\n return callback.inputVerificationCode(data);\n }\n return callback.onSuccess('SUCCESS');\n });\n return undefined;\n }\n\n /**\n * This is used to confirm an attribute using a confirmation code\n * @param {string} attributeName Attribute being confirmed.\n * @param {string} confirmationCode Code entered by user.\n * @param {object} callback Result callback map.\n * @param {onFailure} callback.onFailure Called on any error.\n * @param {onSuccess} callback.onSuccess Called on success.\n * @returns {void}\n */;\n _proto.verifyAttribute = function verifyAttribute(attributeName, confirmationCode, callback) {\n if (this.signInUserSession == null || !this.signInUserSession.isValid()) {\n return callback.onFailure(new Error('User is not authenticated'));\n }\n this.client.request('VerifyUserAttribute', {\n AttributeName: attributeName,\n Code: confirmationCode,\n AccessToken: this.signInUserSession.getAccessToken().getJwtToken()\n }, function (err) {\n if (err) {\n return callback.onFailure(err);\n }\n return callback.onSuccess('SUCCESS');\n });\n return undefined;\n }\n\n /**\n * This is used to get the device information using the current device key\n * @param {object} callback Result callback map.\n * @param {onFailure} callback.onFailure Called on any error.\n * @param {onSuccess<*>} callback.onSuccess Called on success with device data.\n * @returns {void}\n */;\n _proto.getDevice = function getDevice(callback) {\n if (this.signInUserSession == null || !this.signInUserSession.isValid()) {\n return callback.onFailure(new Error('User is not authenticated'));\n }\n this.client.request('GetDevice', {\n AccessToken: this.signInUserSession.getAccessToken().getJwtToken(),\n DeviceKey: this.deviceKey\n }, function (err, data) {\n if (err) {\n return callback.onFailure(err);\n }\n return callback.onSuccess(data);\n });\n return undefined;\n }\n\n /**\n * This is used to forget a specific device\n * @param {string} deviceKey Device key.\n * @param {object} callback Result callback map.\n * @param {onFailure} callback.onFailure Called on any error.\n * @param {onSuccess} callback.onSuccess Called on success.\n * @returns {void}\n */;\n _proto.forgetSpecificDevice = function forgetSpecificDevice(deviceKey, callback) {\n if (this.signInUserSession == null || !this.signInUserSession.isValid()) {\n return callback.onFailure(new Error('User is not authenticated'));\n }\n this.client.request('ForgetDevice', {\n AccessToken: this.signInUserSession.getAccessToken().getJwtToken(),\n DeviceKey: deviceKey\n }, function (err) {\n if (err) {\n return callback.onFailure(err);\n }\n return callback.onSuccess('SUCCESS');\n });\n return undefined;\n }\n\n /**\n * This is used to forget the current device\n * @param {object} callback Result callback map.\n * @param {onFailure} callback.onFailure Called on any error.\n * @param {onSuccess} callback.onSuccess Called on success.\n * @returns {void}\n */;\n _proto.forgetDevice = function forgetDevice(callback) {\n var _this16 = this;\n this.forgetSpecificDevice(this.deviceKey, {\n onFailure: callback.onFailure,\n onSuccess: function onSuccess(result) {\n _this16.deviceKey = null;\n _this16.deviceGroupKey = null;\n _this16.randomPassword = null;\n _this16.clearCachedDeviceKeyAndPassword();\n return callback.onSuccess(result);\n }\n });\n }\n\n /**\n * This is used to set the device status as remembered\n * @param {object} callback Result callback map.\n * @param {onFailure} callback.onFailure Called on any error.\n * @param {onSuccess} callback.onSuccess Called on success.\n * @returns {void}\n */;\n _proto.setDeviceStatusRemembered = function setDeviceStatusRemembered(callback) {\n if (this.signInUserSession == null || !this.signInUserSession.isValid()) {\n return callback.onFailure(new Error('User is not authenticated'));\n }\n this.client.request('UpdateDeviceStatus', {\n AccessToken: this.signInUserSession.getAccessToken().getJwtToken(),\n DeviceKey: this.deviceKey,\n DeviceRememberedStatus: 'remembered'\n }, function (err) {\n if (err) {\n return callback.onFailure(err);\n }\n return callback.onSuccess('SUCCESS');\n });\n return undefined;\n }\n\n /**\n * This is used to set the device status as not remembered\n * @param {object} callback Result callback map.\n * @param {onFailure} callback.onFailure Called on any error.\n * @param {onSuccess} callback.onSuccess Called on success.\n * @returns {void}\n */;\n _proto.setDeviceStatusNotRemembered = function setDeviceStatusNotRemembered(callback) {\n if (this.signInUserSession == null || !this.signInUserSession.isValid()) {\n return callback.onFailure(new Error('User is not authenticated'));\n }\n this.client.request('UpdateDeviceStatus', {\n AccessToken: this.signInUserSession.getAccessToken().getJwtToken(),\n DeviceKey: this.deviceKey,\n DeviceRememberedStatus: 'not_remembered'\n }, function (err) {\n if (err) {\n return callback.onFailure(err);\n }\n return callback.onSuccess('SUCCESS');\n });\n return undefined;\n }\n\n /**\n * This is used to list all devices for a user\n *\n * @param {int} limit the number of devices returned in a call\n * @param {string | null} paginationToken the pagination token in case any was returned before\n * @param {object} callback Result callback map.\n * @param {onFailure} callback.onFailure Called on any error.\n * @param {onSuccess<*>} callback.onSuccess Called on success with device list.\n * @returns {void}\n */;\n _proto.listDevices = function listDevices(limit, paginationToken, callback) {\n if (this.signInUserSession == null || !this.signInUserSession.isValid()) {\n return callback.onFailure(new Error('User is not authenticated'));\n }\n var requestParams = {\n AccessToken: this.signInUserSession.getAccessToken().getJwtToken(),\n Limit: limit\n };\n if (paginationToken) {\n requestParams.PaginationToken = paginationToken;\n }\n this.client.request('ListDevices', requestParams, function (err, data) {\n if (err) {\n return callback.onFailure(err);\n }\n return callback.onSuccess(data);\n });\n return undefined;\n }\n\n /**\n * This is used to globally revoke all tokens issued to a user\n * @param {object} callback Result callback map.\n * @param {onFailure} callback.onFailure Called on any error.\n * @param {onSuccess} callback.onSuccess Called on success.\n * @returns {void}\n */;\n _proto.globalSignOut = function globalSignOut(callback) {\n var _this17 = this;\n if (this.signInUserSession == null || !this.signInUserSession.isValid()) {\n return callback.onFailure(new Error('User is not authenticated'));\n }\n this.client.request('GlobalSignOut', {\n AccessToken: this.signInUserSession.getAccessToken().getJwtToken()\n }, function (err) {\n if (err) {\n return callback.onFailure(err);\n }\n _this17.clearCachedUser();\n return callback.onSuccess('SUCCESS');\n });\n return undefined;\n }\n\n /**\n * This is used for the user to signOut of the application and clear the cached tokens.\n * @returns {void}\n */;\n _proto.signOut = function signOut(revokeTokenCallback) {\n var _this18 = this;\n // If tokens won't be revoked, we just clean the client data.\n if (!revokeTokenCallback || typeof revokeTokenCallback !== 'function') {\n this.cleanClientData();\n return;\n }\n this.getSession(function (error, _session) {\n if (error) {\n return revokeTokenCallback(error);\n }\n _this18.revokeTokens(function (err) {\n _this18.cleanClientData();\n revokeTokenCallback(err);\n });\n });\n };\n _proto.revokeTokens = function revokeTokens(revokeTokenCallback) {\n if (revokeTokenCallback === void 0) {\n revokeTokenCallback = function revokeTokenCallback() {};\n }\n if (typeof revokeTokenCallback !== 'function') {\n throw new Error('Invalid revokeTokenCallback. It should be a function.');\n }\n var tokensToBeRevoked = [];\n if (!this.signInUserSession) {\n var error = new Error('User is not authenticated');\n return revokeTokenCallback(error);\n }\n if (!this.signInUserSession.getAccessToken()) {\n var _error = new Error('No Access token available');\n return revokeTokenCallback(_error);\n }\n var refreshToken = this.signInUserSession.getRefreshToken().getToken();\n var accessToken = this.signInUserSession.getAccessToken();\n if (this.isSessionRevocable(accessToken)) {\n if (refreshToken) {\n return this.revokeToken({\n token: refreshToken,\n callback: revokeTokenCallback\n });\n }\n }\n revokeTokenCallback();\n };\n _proto.isSessionRevocable = function isSessionRevocable(token) {\n if (token && typeof token.decodePayload === 'function') {\n try {\n var _token$decodePayload = token.decodePayload(),\n origin_jti = _token$decodePayload.origin_jti;\n return !!origin_jti;\n } catch (err) {\n // Nothing to do, token doesnt have origin_jti claim\n }\n }\n return false;\n };\n _proto.cleanClientData = function cleanClientData() {\n this.signInUserSession = null;\n this.clearCachedUser();\n };\n _proto.revokeToken = function revokeToken(_ref2) {\n var token = _ref2.token,\n callback = _ref2.callback;\n this.client.requestWithRetry('RevokeToken', {\n Token: token,\n ClientId: this.pool.getClientId()\n }, function (err) {\n if (err) {\n return callback(err);\n }\n callback();\n });\n }\n\n /**\n * This is used by a user trying to select a given MFA\n * @param {string} answerChallenge the mfa the user wants\n * @param {nodeCallback} callback Called on success or error.\n * @returns {void}\n */;\n _proto.sendMFASelectionAnswer = function sendMFASelectionAnswer(answerChallenge, callback) {\n var _this19 = this;\n var challengeResponses = {};\n challengeResponses.USERNAME = this.username;\n challengeResponses.ANSWER = answerChallenge;\n var jsonReq = {\n ChallengeName: 'SELECT_MFA_TYPE',\n ChallengeResponses: challengeResponses,\n ClientId: this.pool.getClientId(),\n Session: this.Session\n };\n if (this.getUserContextData()) {\n jsonReq.UserContextData = this.getUserContextData();\n }\n this.client.request('RespondToAuthChallenge', jsonReq, function (err, data) {\n if (err) {\n return callback.onFailure(err);\n }\n _this19.Session = data.Session;\n if (answerChallenge === 'SMS_MFA') {\n return callback.mfaRequired(data.ChallengeName, data.ChallengeParameters);\n }\n if (answerChallenge === 'SOFTWARE_TOKEN_MFA') {\n return callback.totpRequired(data.ChallengeName, data.ChallengeParameters);\n }\n return undefined;\n });\n }\n\n /**\n * This returns the user context data for advanced security feature.\n * @returns {string} the user context data from CognitoUserPool\n */;\n _proto.getUserContextData = function getUserContextData() {\n var pool = this.pool;\n return pool.getUserContextData(this.username);\n }\n\n /**\n * This is used by an authenticated or a user trying to authenticate to associate a TOTP MFA\n * @param {nodeCallback} callback Called on success or error.\n * @returns {void}\n */;\n _proto.associateSoftwareToken = function associateSoftwareToken(callback) {\n var _this20 = this;\n if (!(this.signInUserSession != null && this.signInUserSession.isValid())) {\n this.client.request('AssociateSoftwareToken', {\n Session: this.Session\n }, function (err, data) {\n if (err) {\n return callback.onFailure(err);\n }\n _this20.Session = data.Session;\n return callback.associateSecretCode(data.SecretCode);\n });\n } else {\n this.client.request('AssociateSoftwareToken', {\n AccessToken: this.signInUserSession.getAccessToken().getJwtToken()\n }, function (err, data) {\n if (err) {\n return callback.onFailure(err);\n }\n return callback.associateSecretCode(data.SecretCode);\n });\n }\n }\n\n /**\n * This is used by an authenticated or a user trying to authenticate to verify a TOTP MFA\n * @param {string} totpCode The MFA code entered by the user.\n * @param {string} friendlyDeviceName The device name we are assigning to the device.\n * @param {nodeCallback} callback Called on success or error.\n * @returns {void}\n */;\n _proto.verifySoftwareToken = function verifySoftwareToken(totpCode, friendlyDeviceName, callback) {\n var _this21 = this;\n if (!(this.signInUserSession != null && this.signInUserSession.isValid())) {\n this.client.request('VerifySoftwareToken', {\n Session: this.Session,\n UserCode: totpCode,\n FriendlyDeviceName: friendlyDeviceName\n }, function (err, data) {\n if (err) {\n return callback.onFailure(err);\n }\n _this21.Session = data.Session;\n var challengeResponses = {};\n challengeResponses.USERNAME = _this21.username;\n var jsonReq = {\n ChallengeName: 'MFA_SETUP',\n ClientId: _this21.pool.getClientId(),\n ChallengeResponses: challengeResponses,\n Session: _this21.Session\n };\n if (_this21.getUserContextData()) {\n jsonReq.UserContextData = _this21.getUserContextData();\n }\n _this21.client.request('RespondToAuthChallenge', jsonReq, function (errRespond, dataRespond) {\n if (errRespond) {\n return callback.onFailure(errRespond);\n }\n _this21.signInUserSession = _this21.getCognitoUserSession(dataRespond.AuthenticationResult);\n _this21.cacheTokens();\n return callback.onSuccess(_this21.signInUserSession);\n });\n return undefined;\n });\n } else {\n this.client.request('VerifySoftwareToken', {\n AccessToken: this.signInUserSession.getAccessToken().getJwtToken(),\n UserCode: totpCode,\n FriendlyDeviceName: friendlyDeviceName\n }, function (err, data) {\n if (err) {\n return callback.onFailure(err);\n }\n return callback.onSuccess(data);\n });\n }\n };\n return CognitoUser;\n}();\nexport { CognitoUser as default };","import { getUserAgent } from \"./Platform\";\n// constructor\nfunction UserAgent() {}\n// public\nUserAgent.prototype.userAgent = getUserAgent();\nexport var appendToCognitoUserAgent = function appendToCognitoUserAgent(content) {\n if (!content) {\n return;\n }\n if (UserAgent.prototype.userAgent && !UserAgent.prototype.userAgent.includes(content)) {\n UserAgent.prototype.userAgent = UserAgent.prototype.userAgent.concat(' ', content);\n }\n if (!UserAgent.prototype.userAgent || UserAgent.prototype.userAgent === '') {\n UserAgent.prototype.userAgent = content;\n }\n};\n\n// class for defining the amzn user-agent\nexport default UserAgent;","function _inheritsLoose(subClass, superClass) { subClass.prototype = Object.create(superClass.prototype); subClass.prototype.constructor = subClass; _setPrototypeOf(subClass, superClass); }\nfunction _wrapNativeSuper(Class) { var _cache = typeof Map === \"function\" ? new Map() : undefined; _wrapNativeSuper = function _wrapNativeSuper(Class) { if (Class === null || !_isNativeFunction(Class)) return Class; if (typeof Class !== \"function\") { throw new TypeError(\"Super expression must either be null or a function\"); } if (typeof _cache !== \"undefined\") { if (_cache.has(Class)) return _cache.get(Class); _cache.set(Class, Wrapper); } function Wrapper() { return _construct(Class, arguments, _getPrototypeOf(this).constructor); } Wrapper.prototype = Object.create(Class.prototype, { constructor: { value: Wrapper, enumerable: false, writable: true, configurable: true } }); return _setPrototypeOf(Wrapper, Class); }; return _wrapNativeSuper(Class); }\nfunction _construct(Parent, args, Class) { if (_isNativeReflectConstruct()) { _construct = Reflect.construct.bind(); } else { _construct = function _construct(Parent, args, Class) { var a = [null]; a.push.apply(a, args); var Constructor = Function.bind.apply(Parent, a); var instance = new Constructor(); if (Class) _setPrototypeOf(instance, Class.prototype); return instance; }; } return _construct.apply(null, arguments); }\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\nfunction _isNativeFunction(fn) { return Function.toString.call(fn).indexOf(\"[native code]\") !== -1; }\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\nimport 'isomorphic-unfetch';\nimport UserAgent from './UserAgent';\nvar CognitoError = /*#__PURE__*/function (_Error) {\n _inheritsLoose(CognitoError, _Error);\n function CognitoError(message, code, name, statusCode) {\n var _this;\n _this = _Error.call(this, message) || this;\n _this.code = code;\n _this.name = name;\n _this.statusCode = statusCode;\n return _this;\n }\n return CognitoError;\n}( /*#__PURE__*/_wrapNativeSuper(Error));\n/** @class */\nvar Client = /*#__PURE__*/function () {\n /**\n * Constructs a new AWS Cognito Identity Provider client object\n * @param {string} region AWS region\n * @param {string} endpoint endpoint\n * @param {object} fetchOptions options for fetch API (only credentials is supported)\n */\n function Client(region, endpoint, fetchOptions) {\n this.endpoint = endpoint || \"https://cognito-idp.\" + region + \".amazonaws.com/\";\n var _ref = fetchOptions || {},\n credentials = _ref.credentials;\n this.fetchOptions = credentials ? {\n credentials: credentials\n } : {};\n }\n\n /**\n * Makes an unauthenticated request on AWS Cognito Identity Provider API\n * using fetch\n * @param {string} operation API operation\n * @param {object} params Input parameters\n * @returns Promise\n */\n var _proto = Client.prototype;\n _proto.promisifyRequest = function promisifyRequest(operation, params) {\n var _this2 = this;\n return new Promise(function (resolve, reject) {\n _this2.request(operation, params, function (err, data) {\n if (err) {\n reject(new CognitoError(err.message, err.code, err.name, err.statusCode));\n } else {\n resolve(data);\n }\n });\n });\n };\n _proto.requestWithRetry = function requestWithRetry(operation, params, callback) {\n var _this3 = this;\n var MAX_DELAY_IN_MILLIS = 5 * 1000;\n jitteredExponentialRetry(function (p) {\n return new Promise(function (res, rej) {\n _this3.request(operation, p, function (error, result) {\n if (error) {\n rej(error);\n } else {\n res(result);\n }\n });\n });\n }, [params], MAX_DELAY_IN_MILLIS).then(function (result) {\n return callback(null, result);\n })[\"catch\"](function (error) {\n return callback(error);\n });\n }\n\n /**\n * Makes an unauthenticated request on AWS Cognito Identity Provider API\n * using fetch\n * @param {string} operation API operation\n * @param {object} params Input parameters\n * @param {function} callback Callback called when a response is returned\n * @returns {void}\n */;\n _proto.request = function request(operation, params, callback) {\n var headers = {\n 'Content-Type': 'application/x-amz-json-1.1',\n 'X-Amz-Target': \"AWSCognitoIdentityProviderService.\" + operation,\n 'X-Amz-User-Agent': UserAgent.prototype.userAgent,\n 'Cache-Control': 'no-store'\n };\n var options = Object.assign({}, this.fetchOptions, {\n headers: headers,\n method: 'POST',\n mode: 'cors',\n body: JSON.stringify(params)\n });\n var response;\n var responseJsonData;\n fetch(this.endpoint, options).then(function (resp) {\n response = resp;\n return resp;\n }, function (err) {\n // If error happens here, the request failed\n // if it is TypeError throw network error\n if (err instanceof TypeError) {\n throw new Error('Network error');\n }\n throw err;\n }).then(function (resp) {\n return resp.json()[\"catch\"](function () {\n return {};\n });\n }).then(function (data) {\n // return parsed body stream\n if (response.ok) return callback(null, data);\n responseJsonData = data;\n\n // Taken from aws-sdk-js/lib/protocol/json.js\n // eslint-disable-next-line no-underscore-dangle\n var code = (data.__type || data.code).split('#').pop();\n var error = new Error(data.message || data.Message || null);\n error.name = code;\n error.code = code;\n return callback(error);\n })[\"catch\"](function (err) {\n // first check if we have a service error\n if (response && response.headers && response.headers.get('x-amzn-errortype')) {\n try {\n var code = response.headers.get('x-amzn-errortype').split(':')[0];\n var error = new Error(response.status ? response.status.toString() : null);\n error.code = code;\n error.name = code;\n error.statusCode = response.status;\n return callback(error);\n } catch (ex) {\n return callback(err);\n }\n // otherwise check if error is Network error\n } else if (err instanceof Error && err.message === 'Network error') {\n err.code = 'NetworkError';\n }\n return callback(err);\n });\n };\n return Client;\n}();\nexport { Client as default };\nvar logger = {\n debug: function debug() {\n // Intentionally blank. This package doesn't have logging\n }\n};\n\n/**\n * For now, all errors are retryable.\n */\nvar NonRetryableError = /*#__PURE__*/function (_Error2) {\n _inheritsLoose(NonRetryableError, _Error2);\n function NonRetryableError(message) {\n var _this4;\n _this4 = _Error2.call(this, message) || this;\n _this4.nonRetryable = true;\n return _this4;\n }\n return NonRetryableError;\n}( /*#__PURE__*/_wrapNativeSuper(Error));\nvar isNonRetryableError = function isNonRetryableError(obj) {\n var key = 'nonRetryable';\n return obj && obj[key];\n};\nfunction retry(functionToRetry, args, delayFn, attempt) {\n if (attempt === void 0) {\n attempt = 1;\n }\n if (typeof functionToRetry !== 'function') {\n throw Error('functionToRetry must be a function');\n }\n logger.debug(functionToRetry.name + \" attempt #\" + attempt + \" with args: \" + JSON.stringify(args));\n return functionToRetry.apply(void 0, args)[\"catch\"](function (err) {\n logger.debug(\"error on \" + functionToRetry.name, err);\n if (isNonRetryableError(err)) {\n logger.debug(functionToRetry.name + \" non retryable error\", err);\n throw err;\n }\n var retryIn = delayFn(attempt, args, err);\n logger.debug(functionToRetry.name + \" retrying in \" + retryIn + \" ms\");\n if (retryIn !== false) {\n return new Promise(function (res) {\n return setTimeout(res, retryIn);\n }).then(function () {\n return retry(functionToRetry, args, delayFn, attempt + 1);\n });\n } else {\n throw err;\n }\n });\n}\nfunction jitteredBackoff(maxDelayMs) {\n var BASE_TIME_MS = 100;\n var JITTER_FACTOR = 100;\n return function (attempt) {\n var delay = Math.pow(2, attempt) * BASE_TIME_MS + JITTER_FACTOR * Math.random();\n return delay > maxDelayMs ? false : delay;\n };\n}\nvar MAX_DELAY_MS = 5 * 60 * 1000;\nfunction jitteredExponentialRetry(functionToRetry, args, maxDelayMs) {\n if (maxDelayMs === void 0) {\n maxDelayMs = MAX_DELAY_MS;\n }\n return retry(functionToRetry, args, jitteredBackoff(maxDelayMs));\n}","/*!\n * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport Client from './Client';\nimport CognitoUser from './CognitoUser';\nimport StorageHelper from './StorageHelper';\nvar USER_POOL_ID_MAX_LENGTH = 55;\n\n/** @class */\nvar CognitoUserPool = /*#__PURE__*/function () {\n /**\n * Constructs a new CognitoUserPool object\n * @param {object} data Creation options.\n * @param {string} data.UserPoolId Cognito user pool id.\n * @param {string} data.ClientId User pool application client id.\n * @param {string} data.endpoint Optional custom service endpoint.\n * @param {object} data.fetchOptions Optional options for fetch API.\n * (only credentials option is supported)\n * @param {object} data.Storage Optional storage object.\n * @param {boolean} data.AdvancedSecurityDataCollectionFlag Optional:\n * boolean flag indicating if the data collection is enabled\n * to support cognito advanced security features. By default, this\n * flag is set to true.\n */\n function CognitoUserPool(data, wrapRefreshSessionCallback) {\n var _ref = data || {},\n UserPoolId = _ref.UserPoolId,\n ClientId = _ref.ClientId,\n endpoint = _ref.endpoint,\n fetchOptions = _ref.fetchOptions,\n AdvancedSecurityDataCollectionFlag = _ref.AdvancedSecurityDataCollectionFlag;\n if (!UserPoolId || !ClientId) {\n throw new Error('Both UserPoolId and ClientId are required.');\n }\n if (UserPoolId.length > USER_POOL_ID_MAX_LENGTH || !/^[\\w-]+_[0-9a-zA-Z]+$/.test(UserPoolId)) {\n throw new Error('Invalid UserPoolId format.');\n }\n var region = UserPoolId.split('_')[0];\n this.userPoolId = UserPoolId;\n this.clientId = ClientId;\n this.client = new Client(region, endpoint, fetchOptions);\n\n /**\n * By default, AdvancedSecurityDataCollectionFlag is set to true,\n * if no input value is provided.\n */\n this.advancedSecurityDataCollectionFlag = AdvancedSecurityDataCollectionFlag !== false;\n this.storage = data.Storage || new StorageHelper().getStorage();\n if (wrapRefreshSessionCallback) {\n this.wrapRefreshSessionCallback = wrapRefreshSessionCallback;\n }\n }\n\n /**\n * @returns {string} the user pool id\n */\n var _proto = CognitoUserPool.prototype;\n _proto.getUserPoolId = function getUserPoolId() {\n return this.userPoolId;\n }\n\n /**\n * @returns {string} the user pool name\n */;\n _proto.getUserPoolName = function getUserPoolName() {\n return this.getUserPoolId().split('_')[1];\n }\n\n /**\n * @returns {string} the client id\n */;\n _proto.getClientId = function getClientId() {\n return this.clientId;\n }\n\n /**\n * @typedef {object} SignUpResult\n * @property {CognitoUser} user New user.\n * @property {bool} userConfirmed If the user is already confirmed.\n */\n /**\n * method for signing up a user\n * @param {string} username User's username.\n * @param {string} password Plain-text initial password entered by user.\n * @param {(AttributeArg[])=} userAttributes New user attributes.\n * @param {(AttributeArg[])=} validationData Application metadata.\n * @param {(AttributeArg[])=} clientMetadata Client metadata.\n * @param {nodeCallback} callback Called on error or with the new user.\n * @param {ClientMetadata} clientMetadata object which is passed from client to Cognito Lambda trigger\n * @returns {void}\n */;\n _proto.signUp = function signUp(username, password, userAttributes, validationData, callback, clientMetadata) {\n var _this = this;\n var jsonReq = {\n ClientId: this.clientId,\n Username: username,\n Password: password,\n UserAttributes: userAttributes,\n ValidationData: validationData,\n ClientMetadata: clientMetadata\n };\n if (this.getUserContextData(username)) {\n jsonReq.UserContextData = this.getUserContextData(username);\n }\n this.client.request('SignUp', jsonReq, function (err, data) {\n if (err) {\n return callback(err, null);\n }\n var cognitoUser = {\n Username: username,\n Pool: _this,\n Storage: _this.storage\n };\n var returnData = {\n user: new CognitoUser(cognitoUser),\n userConfirmed: data.UserConfirmed,\n userSub: data.UserSub,\n codeDeliveryDetails: data.CodeDeliveryDetails\n };\n return callback(null, returnData);\n });\n }\n\n /**\n * method for getting the current user of the application from the local storage\n *\n * @returns {CognitoUser} the user retrieved from storage\n */;\n _proto.getCurrentUser = function getCurrentUser() {\n var lastUserKey = \"CognitoIdentityServiceProvider.\" + this.clientId + \".LastAuthUser\";\n var lastAuthUser = this.storage.getItem(lastUserKey);\n if (lastAuthUser) {\n var cognitoUser = {\n Username: lastAuthUser,\n Pool: this,\n Storage: this.storage\n };\n return new CognitoUser(cognitoUser);\n }\n return null;\n }\n\n /**\n * This method returns the encoded data string used for cognito advanced security feature.\n * This would be generated only when developer has included the JS used for collecting the\n * data on their client. Please refer to documentation to know more about using AdvancedSecurity\n * features\n * @param {string} username the username for the context data\n * @returns {string} the user context data\n **/;\n _proto.getUserContextData = function getUserContextData(username) {\n if (typeof AmazonCognitoAdvancedSecurityData === 'undefined') {\n return undefined;\n }\n /* eslint-disable */\n var amazonCognitoAdvancedSecurityDataConst = AmazonCognitoAdvancedSecurityData;\n /* eslint-enable */\n\n if (this.advancedSecurityDataCollectionFlag) {\n var advancedSecurityData = amazonCognitoAdvancedSecurityDataConst.getData(username, this.userPoolId, this.clientId);\n if (advancedSecurityData) {\n var userContextData = {\n EncodedData: advancedSecurityData\n };\n return userContextData;\n }\n }\n return {};\n };\n return CognitoUserPool;\n}();\nexport { CognitoUserPool as default };","export enum AuthErrorStrings {\n\tDEFAULT_MSG = 'Authentication Error',\n\tEMPTY_EMAIL = 'Email cannot be empty',\n\tEMPTY_PHONE = 'Phone number cannot be empty',\n\tEMPTY_USERNAME = 'Username cannot be empty',\n\tINVALID_USERNAME = 'The username should either be a string or one of the sign in types',\n\tEMPTY_PASSWORD = 'Password cannot be empty',\n\tEMPTY_CODE = 'Confirmation code cannot be empty',\n\tSIGN_UP_ERROR = 'Error creating account',\n\tNO_MFA = 'No valid MFA method provided',\n\tINVALID_MFA = 'Invalid MFA type',\n\tEMPTY_CHALLENGE = 'Challenge response cannot be empty',\n\tNO_USER_SESSION = 'Failed to get the session because the user is empty',\n\tNETWORK_ERROR = 'Network Error',\n\tDEVICE_CONFIG = 'Device tracking has not been configured in this User Pool',\n\tAUTOSIGNIN_ERROR = 'Please use your credentials to sign in',\n}\n","import * as Cookies from 'js-cookie';\n\n/** @class */\nvar CookieStorage = /*#__PURE__*/function () {\n /**\n * Constructs a new CookieStorage object\n * @param {object} data Creation options.\n * @param {string} data.domain Cookies domain (mandatory).\n * @param {string} data.path Cookies path (default: '/')\n * @param {integer} data.expires Cookie expiration (in days, default: 365)\n * @param {boolean} data.secure Cookie secure flag (default: true)\n * @param {string} data.sameSite Cookie request behaviour (default: null)\n */\n function CookieStorage(data) {\n if (data.domain) {\n this.domain = data.domain;\n } else {\n throw new Error('The domain of cookieStorage can not be undefined.');\n }\n if (data.path) {\n this.path = data.path;\n } else {\n this.path = '/';\n }\n if (Object.prototype.hasOwnProperty.call(data, 'expires')) {\n this.expires = data.expires;\n } else {\n this.expires = 365;\n }\n if (Object.prototype.hasOwnProperty.call(data, 'secure')) {\n this.secure = data.secure;\n } else {\n this.secure = true;\n }\n if (Object.prototype.hasOwnProperty.call(data, 'sameSite')) {\n if (!['strict', 'lax', 'none'].includes(data.sameSite)) {\n throw new Error('The sameSite value of cookieStorage must be \"lax\", \"strict\" or \"none\".');\n }\n if (data.sameSite === 'none' && !this.secure) {\n throw new Error('sameSite = None requires the Secure attribute in latest browser versions.');\n }\n this.sameSite = data.sameSite;\n } else {\n this.sameSite = null;\n }\n }\n\n /**\n * This is used to set a specific item in storage\n * @param {string} key - the key for the item\n * @param {object} value - the value\n * @returns {string} value that was set\n */\n var _proto = CookieStorage.prototype;\n _proto.setItem = function setItem(key, value) {\n var options = {\n path: this.path,\n expires: this.expires,\n domain: this.domain,\n secure: this.secure\n };\n if (this.sameSite) {\n options.sameSite = this.sameSite;\n }\n Cookies.set(key, value, options);\n return Cookies.get(key);\n }\n\n /**\n * This is used to get a specific key from storage\n * @param {string} key - the key for the item\n * This is used to clear the storage\n * @returns {string} the data item\n */;\n _proto.getItem = function getItem(key) {\n return Cookies.get(key);\n }\n\n /**\n * This is used to remove an item from storage\n * @param {string} key - the key being set\n * @returns {string} value - value that was deleted\n */;\n _proto.removeItem = function removeItem(key) {\n var options = {\n path: this.path,\n expires: this.expires,\n domain: this.domain,\n secure: this.secure\n };\n if (this.sameSite) {\n options.sameSite = this.sameSite;\n }\n return Cookies.remove(key, options);\n }\n\n /**\n * This is used to clear the storage of optional\n * items that were previously set\n * @returns {} an empty object\n */;\n _proto.clear = function clear() {\n var cookies = Cookies.get();\n var numKeys = Object.keys(cookies).length;\n for (var index = 0; index < numKeys; ++index) {\n this.removeItem(Object.keys(cookies)[index]);\n }\n return {};\n };\n return CookieStorage;\n}();\nexport { CookieStorage as default };","// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\n\nconst SELF = '_self';\n\nexport const launchUri = (url: string) => {\n\tconst windowProxy = window.open(url, SELF);\n\tif (windowProxy) {\n\t\treturn Promise.resolve(windowProxy);\n\t} else {\n\t\treturn Promise.reject();\n\t}\n};\n","// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\n\nimport { parse } from 'url'; // Used for OAuth parsing of Cognito Hosted UI\nimport { launchUri } from './urlOpener';\nimport * as oAuthStorage from './oauthStorage';\nimport { Buffer } from 'buffer';\n\nimport {\n\tOAuthOpts,\n\tisCognitoHostedOpts,\n\tCognitoHostedUIIdentityProvider,\n} from '../types/Auth';\n\nimport { ConsoleLogger as Logger, Hub, urlSafeEncode } from '@aws-amplify/core';\n\nimport { Sha256 } from '@aws-crypto/sha256-js';\nconst AMPLIFY_SYMBOL = (\n\ttypeof Symbol !== 'undefined' && typeof Symbol.for === 'function'\n\t\t? Symbol.for('amplify_default')\n\t\t: '@@amplify_default'\n) as Symbol;\n\nconst dispatchAuthEvent = (event: string, data: any, message: string) => {\n\tHub.dispatch('auth', { event, data, message }, 'Auth', AMPLIFY_SYMBOL);\n};\n\nconst logger = new Logger('OAuth');\n\nexport default class OAuth {\n\tprivate _urlOpener;\n\tprivate _config;\n\tprivate _cognitoClientId;\n\tprivate _scopes;\n\n\tconstructor({\n\t\tconfig,\n\t\tcognitoClientId,\n\t\tscopes = [],\n\t}: {\n\t\tscopes: string[];\n\t\tconfig: OAuthOpts;\n\t\tcognitoClientId: string;\n\t}) {\n\t\tthis._urlOpener = config.urlOpener || launchUri;\n\t\tthis._config = config;\n\t\tthis._cognitoClientId = cognitoClientId;\n\n\t\tif (!this.isValidScopes(scopes))\n\t\t\tthrow Error('scopes must be a String Array');\n\t\tthis._scopes = scopes;\n\t}\n\n\tprivate isValidScopes(scopes: string[]) {\n\t\treturn (\n\t\t\tArray.isArray(scopes) && scopes.every(scope => typeof scope === 'string')\n\t\t);\n\t}\n\n\tpublic oauthSignIn(\n\t\tresponseType = 'code',\n\t\tdomain: string,\n\t\tredirectSignIn: string,\n\t\tclientId: string,\n\t\tprovider:\n\t\t\t| CognitoHostedUIIdentityProvider\n\t\t\t| string = CognitoHostedUIIdentityProvider.Cognito,\n\t\tcustomState?: string\n\t) {\n\t\tconst generatedState = this._generateState(32);\n\n\t\t/* encodeURIComponent is not URL safe, use urlSafeEncode instead. Cognito \n\t\tsingle-encodes/decodes url on first sign in and double-encodes/decodes url\n\t\twhen user already signed in. Using encodeURIComponent, Base32, Base64 add \n\t\tcharacters % or = which on further encoding becomes unsafe. '=' create issue \n\t\tfor parsing query params. \n\t\tRefer: https://github.com/aws-amplify/amplify-js/issues/5218 */\n\t\tconst state = customState\n\t\t\t? `${generatedState}-${urlSafeEncode(customState)}`\n\t\t\t: generatedState;\n\n\t\toAuthStorage.setState(state);\n\n\t\tconst pkce_key = this._generateRandom(128);\n\t\toAuthStorage.setPKCE(pkce_key);\n\n\t\tconst code_challenge = this._generateChallenge(pkce_key);\n\t\tconst code_challenge_method = 'S256';\n\n\t\tconst scopesString = this._scopes.join(' ');\n\n\t\tconst queryString = Object.entries({\n\t\t\tredirect_uri: redirectSignIn,\n\t\t\tresponse_type: responseType,\n\t\t\tclient_id: clientId,\n\t\t\tidentity_provider: provider,\n\t\t\tscope: scopesString,\n\t\t\tstate,\n\t\t\t...(responseType === 'code' ? { code_challenge } : {}),\n\t\t\t...(responseType === 'code' ? { code_challenge_method } : {}),\n\t\t})\n\t\t\t.map(([k, v]) => `${encodeURIComponent(k)}=${encodeURIComponent(v)}`)\n\t\t\t.join('&');\n\n\t\tconst URL = `https://${domain}/oauth2/authorize?${queryString}`;\n\t\tlogger.debug(`Redirecting to ${URL}`);\n\t\tthis._urlOpener(URL, redirectSignIn);\n\t}\n\n\tprivate async _handleCodeFlow(currentUrl: string) {\n\t\t/* Convert URL into an object with parameters as keys\n { redirect_uri: 'http://localhost:3000/', response_type: 'code', ...} */\n\t\tconst { code } = (parse(currentUrl).query || '')\n\t\t\t.split('&')\n\t\t\t.map(pairings => pairings.split('='))\n\t\t\t.reduce((accum, [k, v]) => ({ ...accum, [k]: v }), { code: undefined });\n\n\t\tconst currentUrlPathname = parse(currentUrl).pathname || '/';\n\t\tconst redirectSignInPathname =\n\t\t\tparse(this._config.redirectSignIn).pathname || '/';\n\n\t\tif (!code || currentUrlPathname !== redirectSignInPathname) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst oAuthTokenEndpoint =\n\t\t\t'https://' + this._config.domain + '/oauth2/token';\n\n\t\tdispatchAuthEvent(\n\t\t\t'codeFlow',\n\t\t\t{},\n\t\t\t`Retrieving tokens from ${oAuthTokenEndpoint}`\n\t\t);\n\n\t\tconst client_id = isCognitoHostedOpts(this._config)\n\t\t\t? this._cognitoClientId\n\t\t\t: this._config.clientID;\n\n\t\tconst redirect_uri = isCognitoHostedOpts(this._config)\n\t\t\t? this._config.redirectSignIn\n\t\t\t: this._config.redirectUri;\n\n\t\tconst code_verifier = oAuthStorage.getPKCE();\n\n\t\tconst oAuthTokenBody = {\n\t\t\tgrant_type: 'authorization_code',\n\t\t\tcode,\n\t\t\tclient_id,\n\t\t\tredirect_uri,\n\t\t\t...(code_verifier ? { code_verifier } : {}),\n\t\t};\n\n\t\tlogger.debug(\n\t\t\t`Calling token endpoint: ${oAuthTokenEndpoint} with`,\n\t\t\toAuthTokenBody\n\t\t);\n\n\t\tconst body = Object.entries(oAuthTokenBody)\n\t\t\t.map(([k, v]) => `${encodeURIComponent(k)}=${encodeURIComponent(v)}`)\n\t\t\t.join('&');\n\n\t\tconst { access_token, refresh_token, id_token, error } = await (\n\t\t\t(await fetch(oAuthTokenEndpoint, {\n\t\t\t\tmethod: 'POST',\n\t\t\t\theaders: {\n\t\t\t\t\t'Content-Type': 'application/x-www-form-urlencoded',\n\t\t\t\t},\n\t\t\t\tbody,\n\t\t\t})) as any\n\t\t).json();\n\n\t\tif (error) {\n\t\t\tthrow new Error(error);\n\t\t}\n\n\t\treturn {\n\t\t\taccessToken: access_token,\n\t\t\trefreshToken: refresh_token,\n\t\t\tidToken: id_token,\n\t\t};\n\t}\n\n\tprivate async _handleImplicitFlow(currentUrl: string) {\n\t\t// hash is `null` if `#` doesn't exist on URL\n\t\tconst { id_token, access_token } = (parse(currentUrl).hash || '#')\n\t\t\t.substr(1) // Remove # from returned code\n\t\t\t.split('&')\n\t\t\t.map(pairings => pairings.split('='))\n\t\t\t.reduce((accum, [k, v]) => ({ ...accum, [k]: v }), {\n\t\t\t\tid_token: undefined,\n\t\t\t\taccess_token: undefined,\n\t\t\t});\n\n\t\tdispatchAuthEvent('implicitFlow', {}, `Got tokens from ${currentUrl}`);\n\t\tlogger.debug(`Retrieving implicit tokens from ${currentUrl} with`);\n\n\t\treturn {\n\t\t\taccessToken: access_token,\n\t\t\tidToken: id_token,\n\t\t\trefreshToken: null,\n\t\t};\n\t}\n\n\tpublic async handleAuthResponse(currentUrl?: string) {\n\t\ttry {\n\t\t\tconst urlParams = currentUrl\n\t\t\t\t? ({\n\t\t\t\t\t\t...(parse(currentUrl).hash || '#')\n\t\t\t\t\t\t\t.substr(1)\n\t\t\t\t\t\t\t.split('&')\n\t\t\t\t\t\t\t.map(entry => entry.split('='))\n\t\t\t\t\t\t\t.reduce((acc, [k, v]) => ((acc[k] = v), acc), {}),\n\t\t\t\t\t\t...(parse(currentUrl).query || '')\n\t\t\t\t\t\t\t.split('&')\n\t\t\t\t\t\t\t.map(entry => entry.split('='))\n\t\t\t\t\t\t\t.reduce((acc, [k, v]) => ((acc[k] = v), acc), {}),\n\t\t\t\t } as any)\n\t\t\t\t: {};\n\t\t\tconst { error, error_description } = urlParams;\n\n\t\t\tif (error) {\n\t\t\t\tthrow new Error(error_description);\n\t\t\t}\n\n\t\t\tconst state: string = this._validateState(urlParams);\n\n\t\t\tlogger.debug(\n\t\t\t\t`Starting ${this._config.responseType} flow with ${currentUrl}`\n\t\t\t);\n\t\t\tif (this._config.responseType === 'code') {\n\t\t\t\treturn { ...(await this._handleCodeFlow(currentUrl)), state };\n\t\t\t} else {\n\t\t\t\treturn { ...(await this._handleImplicitFlow(currentUrl)), state };\n\t\t\t}\n\t\t} catch (e) {\n\t\t\tlogger.error(`Error handling auth response.`, e);\n\t\t\tthrow e;\n\t\t}\n\t}\n\n\tprivate _validateState(urlParams: any): string {\n\t\tif (!urlParams) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst savedState = oAuthStorage.getState();\n\t\tconst { state: returnedState } = urlParams;\n\n\t\t// This is because savedState only exists if the flow was initiated by Amplify\n\t\tif (savedState && savedState !== returnedState) {\n\t\t\tthrow new Error('Invalid state in OAuth flow');\n\t\t}\n\t\treturn returnedState;\n\t}\n\n\tpublic async signOut() {\n\t\tlet oAuthLogoutEndpoint = 'https://' + this._config.domain + '/logout?';\n\n\t\tconst client_id = isCognitoHostedOpts(this._config)\n\t\t\t? this._cognitoClientId\n\t\t\t: this._config.oauth.clientID;\n\n\t\tconst signout_uri = isCognitoHostedOpts(this._config)\n\t\t\t? this._config.redirectSignOut\n\t\t\t: this._config.returnTo;\n\n\t\toAuthLogoutEndpoint += Object.entries({\n\t\t\tclient_id,\n\t\t\tlogout_uri: encodeURIComponent(signout_uri),\n\t\t})\n\t\t\t.map(([k, v]) => `${k}=${v}`)\n\t\t\t.join('&');\n\n\t\tdispatchAuthEvent(\n\t\t\t'oAuthSignOut',\n\t\t\t{ oAuth: 'signOut' },\n\t\t\t`Signing out from ${oAuthLogoutEndpoint}`\n\t\t);\n\t\tlogger.debug(`Signing out from ${oAuthLogoutEndpoint}`);\n\n\t\treturn this._urlOpener(oAuthLogoutEndpoint, signout_uri);\n\t}\n\n\tprivate _generateState(length: number) {\n\t\tlet result = '';\n\t\tlet i = length;\n\t\tconst chars =\n\t\t\t'0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ';\n\t\tfor (; i > 0; --i)\n\t\t\tresult += chars[Math.round(Math.random() * (chars.length - 1))];\n\t\treturn result;\n\t}\n\n\tprivate _generateChallenge(code: string) {\n\t\tconst awsCryptoHash = new Sha256();\n\t\tawsCryptoHash.update(code);\n\n\t\tconst resultFromAWSCrypto = awsCryptoHash.digestSync();\n\t\tconst b64 = Buffer.from(resultFromAWSCrypto).toString('base64');\n\t\tconst base64URLFromAWSCrypto = this._base64URL(b64);\n\n\t\treturn base64URLFromAWSCrypto;\n\t}\n\n\tprivate _base64URL(string) {\n\t\treturn string.replace(/=/g, '').replace(/\\+/g, '-').replace(/\\//g, '_');\n\t}\n\n\tprivate _generateRandom(size: number) {\n\t\tconst CHARSET =\n\t\t\t'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-._~';\n\t\tconst buffer = new Uint8Array(size);\n\t\tif (typeof window !== 'undefined' && !!window.crypto) {\n\t\t\twindow.crypto.getRandomValues(buffer);\n\t\t} else {\n\t\t\tfor (let i = 0; i < size; i += 1) {\n\t\t\t\tbuffer[i] = (Math.random() * CHARSET.length) | 0;\n\t\t\t}\n\t\t}\n\t\treturn this._bufferToString(buffer);\n\t}\n\n\tprivate _bufferToString(buffer: Uint8Array) {\n\t\tconst CHARSET =\n\t\t\t'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789';\n\t\tconst state = [];\n\t\tfor (let i = 0; i < buffer.byteLength; i += 1) {\n\t\t\tconst index = buffer[i] % CHARSET.length;\n\t\t\tstate.push(CHARSET[index]);\n\t\t}\n\t\treturn state.join('');\n\t}\n}\n","export function urlSafeEncode(str: string) {\n\treturn str\n\t\t.split('')\n\t\t.map(char =>\n\t\t\tchar\n\t\t\t\t.charCodeAt(0)\n\t\t\t\t.toString(16)\n\t\t\t\t.padStart(2, '0')\n\t\t)\n\t\t.join('');\n}\n\nexport function urlSafeDecode(hex: string) {\n\treturn hex\n\t\t.match(/.{2}/g)\n\t\t.map(char => String.fromCharCode(parseInt(char, 16)))\n\t\t.join('');\n}\n","// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\n\nexport const setState = (state: string) => {\n\twindow.sessionStorage.setItem('oauth_state', state);\n};\n\nexport const getState = () => {\n\tconst oauth_state = window.sessionStorage.getItem('oauth_state');\n\twindow.sessionStorage.removeItem('oauth_state');\n\treturn oauth_state;\n};\n\nexport const setPKCE = (private_key: string) => {\n\twindow.sessionStorage.setItem('ouath_pkce_key', private_key);\n};\n\nexport const getPKCE = () => {\n\tconst ouath_pkce_key = window.sessionStorage.getItem('ouath_pkce_key');\n\twindow.sessionStorage.removeItem('ouath_pkce_key');\n\treturn ouath_pkce_key;\n};\n\nexport const clearAll = () => {\n\twindow.sessionStorage.removeItem('ouath_pkce_key');\n\twindow.sessionStorage.removeItem('oauth_state');\n};\n","// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\n\nimport { AuthErrorMessages, AuthErrorTypes } from './types';\nimport { ConsoleLogger as Logger } from '@aws-amplify/core';\nimport { AuthErrorStrings } from './common/AuthErrorStrings';\n\nconst logger = new Logger('AuthError');\n\nexport class AuthError extends Error {\n\tpublic log: string;\n\tconstructor(type: AuthErrorTypes) {\n\t\tconst { message, log } = authErrorMessages[type];\n\t\tsuper(message);\n\n\t\t// Hack for making the custom error class work when transpiled to es5\n\t\t// TODO: Delete the following 2 lines after we change the build target to >= es2015\n\t\tthis.constructor = AuthError;\n\t\tObject.setPrototypeOf(this, AuthError.prototype);\n\n\t\tthis.name = 'AuthError';\n\t\tthis.log = log || message;\n\n\t\tlogger.error(this.log);\n\t}\n}\n\nexport class NoUserPoolError extends AuthError {\n\tconstructor(type: AuthErrorTypes) {\n\t\tsuper(type);\n\n\t\t// Hack for making the custom error class work when transpiled to es5\n\t\t// TODO: Delete the following 2 lines after we change the build target to >= es2015\n\t\tthis.constructor = NoUserPoolError;\n\t\tObject.setPrototypeOf(this, NoUserPoolError.prototype);\n\n\t\tthis.name = 'NoUserPoolError';\n\t}\n}\n\nexport const authErrorMessages: AuthErrorMessages = {\n\tnoConfig: {\n\t\tmessage: AuthErrorStrings.DEFAULT_MSG,\n\t\tlog: `\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\t},\n\tmissingAuthConfig: {\n\t\tmessage: AuthErrorStrings.DEFAULT_MSG,\n\t\tlog: `\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\t},\n\temptyUsername: {\n\t\tmessage: AuthErrorStrings.EMPTY_USERNAME,\n\t},\n\t// TODO: should include a list of valid sign-in types\n\tinvalidUsername: {\n\t\tmessage: AuthErrorStrings.INVALID_USERNAME,\n\t},\n\temptyPassword: {\n\t\tmessage: AuthErrorStrings.EMPTY_PASSWORD,\n\t},\n\temptyCode: {\n\t\tmessage: AuthErrorStrings.EMPTY_CODE,\n\t},\n\tsignUpError: {\n\t\tmessage: AuthErrorStrings.SIGN_UP_ERROR,\n\t\tlog: 'The first parameter should either be non-null string or object',\n\t},\n\tnoMFA: {\n\t\tmessage: AuthErrorStrings.NO_MFA,\n\t},\n\tinvalidMFA: {\n\t\tmessage: AuthErrorStrings.INVALID_MFA,\n\t},\n\temptyChallengeResponse: {\n\t\tmessage: AuthErrorStrings.EMPTY_CHALLENGE,\n\t},\n\tnoUserSession: {\n\t\tmessage: AuthErrorStrings.NO_USER_SESSION,\n\t},\n\tdeviceConfig: {\n\t\tmessage: AuthErrorStrings.DEVICE_CONFIG,\n\t},\n\tnetworkError: {\n\t\tmessage: AuthErrorStrings.NETWORK_ERROR,\n\t},\n\tautoSignInError: {\n\t\tmessage: AuthErrorStrings.AUTOSIGNIN_ERROR,\n\t},\n\tdefault: {\n\t\tmessage: AuthErrorStrings.DEFAULT_MSG,\n\t},\n};\n","// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\n\nimport {\n\tAuthOptions,\n\tFederatedResponse,\n\tSignUpParams,\n\tFederatedUser,\n\tConfirmSignUpOptions,\n\tSignOutOpts,\n\tCurrentUserOpts,\n\tGetPreferredMFAOpts,\n\tSignInOpts,\n\tisUsernamePasswordOpts,\n\tisCognitoHostedOpts,\n\tisFederatedSignInOptions,\n\tisFederatedSignInOptionsCustom,\n\thasCustomState,\n\tFederatedSignInOptionsCustom,\n\tLegacyProvider,\n\tFederatedSignInOptions,\n\tAwsCognitoOAuthOpts,\n\tClientMetaData,\n} from './types';\n\nimport {\n\tAmplify,\n\tConsoleLogger as Logger,\n\tCredentials,\n\tHub,\n\tStorageHelper,\n\tICredentials,\n\tbrowserOrNode,\n\tparseAWSExports,\n\tUniversalStorage,\n\turlSafeDecode,\n\tHubCallback,\n} from '@aws-amplify/core';\nimport {\n\tCookieStorage,\n\tCognitoUserPool,\n\tAuthenticationDetails,\n\tICognitoUserPoolData,\n\tICognitoUserData,\n\tISignUpResult,\n\tCognitoUser,\n\tMFAOption,\n\tCognitoUserSession,\n\tIAuthenticationCallback,\n\tICognitoUserAttributeData,\n\tCognitoUserAttribute,\n\tCognitoIdToken,\n\tCognitoRefreshToken,\n\tCognitoAccessToken,\n\tNodeCallback,\n\tCodeDeliveryDetails,\n} from 'amazon-cognito-identity-js';\n\nimport { parse } from 'url';\nimport OAuth from './OAuth/OAuth';\nimport { default as urlListener } from './urlListener';\nimport { AuthError, NoUserPoolError } from './Errors';\nimport {\n\tAuthErrorTypes,\n\tAutoSignInOptions,\n\tCognitoHostedUIIdentityProvider,\n\tIAuthDevice,\n} from './types/Auth';\n\nconst logger = new Logger('AuthClass');\nconst USER_ADMIN_SCOPE = 'aws.cognito.signin.user.admin';\n\n// 10 sec, following this guide https://www.nngroup.com/articles/response-times-3-important-limits/\nconst OAUTH_FLOW_MS_TIMEOUT = 10 * 1000;\n\nconst AMPLIFY_SYMBOL = (\n\ttypeof Symbol !== 'undefined' && typeof Symbol.for === 'function'\n\t\t? Symbol.for('amplify_default')\n\t\t: '@@amplify_default'\n) as Symbol;\n\nconst dispatchAuthEvent = (event: string, data: any, message: string) => {\n\tHub.dispatch('auth', { event, data, message }, 'Auth', AMPLIFY_SYMBOL);\n};\n\n// Cognito Documentation for max device\n// tslint:disable-next-line:max-line-length\n// https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_ListDevices.html#API_ListDevices_RequestSyntax\nconst MAX_DEVICES = 60;\n\nconst MAX_AUTOSIGNIN_POLLING_MS = 3 * 60 * 1000;\n\n/**\n * Provide authentication steps\n */\nexport class AuthClass {\n\tprivate _config: AuthOptions;\n\tprivate userPool: CognitoUserPool = null;\n\tprivate user: any = null;\n\tprivate _oAuthHandler: OAuth;\n\tprivate _storage;\n\tprivate _storageSync;\n\tprivate oAuthFlowInProgress: boolean = false;\n\tprivate pendingSignIn: ReturnType | null;\n\tprivate autoSignInInitiated: boolean = false;\n\tprivate inflightSessionPromise: Promise | null = null;\n\tprivate inflightSessionPromiseCounter: number = 0;\n\tCredentials = Credentials;\n\n\t/**\n\t * Initialize Auth with AWS configurations\n\t * @param {Object} config - Configuration of the Auth\n\t */\n\tconstructor(config: AuthOptions) {\n\t\tthis.configure(config);\n\t\tthis.currentCredentials = this.currentCredentials.bind(this);\n\t\tthis.currentUserCredentials = this.currentUserCredentials.bind(this);\n\n\t\tHub.listen('auth', ({ payload }) => {\n\t\t\tconst { event } = payload;\n\t\t\tswitch (event) {\n\t\t\t\tcase 'verify':\n\t\t\t\tcase 'signIn':\n\t\t\t\t\tthis._storage.setItem('amplify-signin-with-hostedUI', 'false');\n\t\t\t\t\tbreak;\n\t\t\t\tcase 'signOut':\n\t\t\t\t\tthis._storage.removeItem('amplify-signin-with-hostedUI');\n\t\t\t\t\tbreak;\n\t\t\t\tcase 'cognitoHostedUI':\n\t\t\t\t\tthis._storage.setItem('amplify-signin-with-hostedUI', 'true');\n\t\t\t\t\tbreak;\n\t\t\t}\n\t\t});\n\t}\n\n\tpublic getModuleName() {\n\t\treturn 'Auth';\n\t}\n\n\tconfigure(config?) {\n\t\tif (!config) return this._config || {};\n\t\tlogger.debug('configure Auth');\n\t\tconst conf = Object.assign(\n\t\t\t{},\n\t\t\tthis._config,\n\t\t\tparseAWSExports(config).Auth,\n\t\t\tconfig\n\t\t);\n\t\tthis._config = conf;\n\t\tconst {\n\t\t\tuserPoolId,\n\t\t\tuserPoolWebClientId,\n\t\t\tcookieStorage,\n\t\t\toauth,\n\t\t\tregion,\n\t\t\tidentityPoolId,\n\t\t\tmandatorySignIn,\n\t\t\trefreshHandlers,\n\t\t\tidentityPoolRegion,\n\t\t\tclientMetadata,\n\t\t\tendpoint,\n\t\t} = this._config;\n\n\t\tif (!this._config.storage) {\n\t\t\t// backward compatability\n\t\t\tif (cookieStorage) this._storage = new CookieStorage(cookieStorage);\n\t\t\telse {\n\t\t\t\tthis._storage = config.ssr\n\t\t\t\t\t? new UniversalStorage()\n\t\t\t\t\t: new StorageHelper().getStorage();\n\t\t\t}\n\t\t} else {\n\t\t\tif (!this._isValidAuthStorage(this._config.storage)) {\n\t\t\t\tlogger.error('The storage in the Auth config is not valid!');\n\t\t\t\tthrow new Error('Empty storage object');\n\t\t\t}\n\t\t\tthis._storage = this._config.storage;\n\t\t}\n\n\t\tthis._storageSync = Promise.resolve();\n\t\tif (typeof this._storage['sync'] === 'function') {\n\t\t\tthis._storageSync = this._storage['sync']();\n\t\t}\n\n\t\tif (userPoolId) {\n\t\t\tconst userPoolData: ICognitoUserPoolData = {\n\t\t\t\tUserPoolId: userPoolId,\n\t\t\t\tClientId: userPoolWebClientId,\n\t\t\t\tendpoint,\n\t\t\t};\n\t\t\tuserPoolData.Storage = this._storage;\n\n\t\t\tthis.userPool = new CognitoUserPool(\n\t\t\t\tuserPoolData,\n\t\t\t\tthis.wrapRefreshSessionCallback\n\t\t\t);\n\t\t}\n\n\t\tthis.Credentials.configure({\n\t\t\tmandatorySignIn,\n\t\t\tregion,\n\t\t\tuserPoolId,\n\t\t\tidentityPoolId,\n\t\t\trefreshHandlers,\n\t\t\tstorage: this._storage,\n\t\t\tidentityPoolRegion\n\t\t});\n\n\t\t// initialize cognitoauth client if hosted ui options provided\n\t\t// to keep backward compatibility:\n\t\tconst cognitoHostedUIConfig = oauth\n\t\t\t? isCognitoHostedOpts(this._config.oauth)\n\t\t\t\t? oauth\n\t\t\t\t: (oauth).awsCognito\n\t\t\t: undefined;\n\n\t\tif (cognitoHostedUIConfig) {\n\t\t\tconst cognitoAuthParams = Object.assign(\n\t\t\t\t{\n\t\t\t\t\tcognitoClientId: userPoolWebClientId,\n\t\t\t\t\tUserPoolId: userPoolId,\n\t\t\t\t\tdomain: cognitoHostedUIConfig['domain'],\n\t\t\t\t\tscopes: cognitoHostedUIConfig['scope'],\n\t\t\t\t\tredirectSignIn: cognitoHostedUIConfig['redirectSignIn'],\n\t\t\t\t\tredirectSignOut: cognitoHostedUIConfig['redirectSignOut'],\n\t\t\t\t\tresponseType: cognitoHostedUIConfig['responseType'],\n\t\t\t\t\tStorage: this._storage,\n\t\t\t\t\turlOpener: cognitoHostedUIConfig['urlOpener'],\n\t\t\t\t\tclientMetadata,\n\t\t\t\t},\n\t\t\t\tcognitoHostedUIConfig['options']\n\t\t\t);\n\n\t\t\tthis._oAuthHandler = new OAuth({\n\t\t\t\tscopes: cognitoAuthParams.scopes,\n\t\t\t\tconfig: cognitoAuthParams,\n\t\t\t\tcognitoClientId: cognitoAuthParams.cognitoClientId,\n\t\t\t});\n\n\t\t\t// **NOTE** - Remove this in a future major release as it is a breaking change\n\t\t\t// Prevents _handleAuthResponse from being called multiple times in Expo\n\t\t\t// See https://github.com/aws-amplify/amplify-js/issues/4388\n\t\t\tconst usedResponseUrls = {};\n\t\t\turlListener(({ url }) => {\n\t\t\t\tif (usedResponseUrls[url]) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tusedResponseUrls[url] = true;\n\t\t\t\tthis._handleAuthResponse(url);\n\t\t\t});\n\t\t}\n\n\t\tdispatchAuthEvent(\n\t\t\t'configured',\n\t\t\tnull,\n\t\t\t`The Auth category has been configured successfully`\n\t\t);\n\n\t\tif (\n\t\t\t!this.autoSignInInitiated &&\n\t\t\ttypeof this._storage['getItem'] === 'function'\n\t\t) {\n\t\t\tconst pollingInitiated = this.isTrueStorageValue(\n\t\t\t\t'amplify-polling-started'\n\t\t\t);\n\t\t\tif (pollingInitiated) {\n\t\t\t\tdispatchAuthEvent(\n\t\t\t\t\t'autoSignIn_failure',\n\t\t\t\t\tnull,\n\t\t\t\t\tAuthErrorTypes.AutoSignInError\n\t\t\t\t);\n\t\t\t\tthis._storage.removeItem('amplify-auto-sign-in');\n\t\t\t}\n\t\t\tthis._storage.removeItem('amplify-polling-started');\n\t\t}\n\t\treturn this._config;\n\t}\n\n\twrapRefreshSessionCallback = (callback: NodeCallback.Any) => {\n\t\tconst wrapped: NodeCallback.Any = (error, data) => {\n\t\t\tif (data) {\n\t\t\t\tdispatchAuthEvent('tokenRefresh', undefined, `New token retrieved`);\n\t\t\t} else {\n\t\t\t\tdispatchAuthEvent(\n\t\t\t\t\t'tokenRefresh_failure',\n\t\t\t\t\terror,\n\t\t\t\t\t`Failed to retrieve new token`\n\t\t\t\t);\n\t\t\t}\n\t\t\treturn callback(error, data);\n\t\t};\n\t\treturn wrapped;\n\t} // prettier-ignore\n\n\t/**\n\t * Sign up with username, password and other attributes like phone, email\n\t * @param {String | object} params - The user attributes used for signin\n\t * @param {String[]} restOfAttrs - for the backward compatability\n\t * @return - A promise resolves callback data if success\n\t */\n\tpublic signUp(\n\t\tparams: string | SignUpParams,\n\t\t...restOfAttrs: string[]\n\t): Promise {\n\t\tif (!this.userPool) {\n\t\t\treturn this.rejectNoUserPool();\n\t\t}\n\n\t\tlet username: string = null;\n\t\tlet password: string = null;\n\t\tconst attributes: CognitoUserAttribute[] = [];\n\t\tlet validationData: CognitoUserAttribute[] = null;\n\t\tlet clientMetadata;\n\t\tlet autoSignIn: AutoSignInOptions = { enabled: false };\n\t\tlet autoSignInValidationData = {};\n\t\tlet autoSignInClientMetaData: ClientMetaData = {};\n\n\t\tif (params && typeof params === 'string') {\n\t\t\tusername = params;\n\t\t\tpassword = restOfAttrs ? restOfAttrs[0] : null;\n\t\t\tconst email: string = restOfAttrs ? restOfAttrs[1] : null;\n\t\t\tconst phone_number: string = restOfAttrs ? restOfAttrs[2] : null;\n\n\t\t\tif (email)\n\t\t\t\tattributes.push(\n\t\t\t\t\tnew CognitoUserAttribute({ Name: 'email', Value: email })\n\t\t\t\t);\n\n\t\t\tif (phone_number)\n\t\t\t\tattributes.push(\n\t\t\t\t\tnew CognitoUserAttribute({\n\t\t\t\t\t\tName: 'phone_number',\n\t\t\t\t\t\tValue: phone_number,\n\t\t\t\t\t})\n\t\t\t\t);\n\t\t} else if (params && typeof params === 'object') {\n\t\t\tusername = params['username'];\n\t\t\tpassword = params['password'];\n\n\t\t\tif (params && params.clientMetadata) {\n\t\t\t\tclientMetadata = params.clientMetadata;\n\t\t\t} else if (this._config.clientMetadata) {\n\t\t\t\tclientMetadata = this._config.clientMetadata;\n\t\t\t}\n\n\t\t\tconst attrs = params['attributes'];\n\t\t\tif (attrs) {\n\t\t\t\tObject.keys(attrs).map(key => {\n\t\t\t\t\tattributes.push(\n\t\t\t\t\t\tnew CognitoUserAttribute({ Name: key, Value: attrs[key] })\n\t\t\t\t\t);\n\t\t\t\t});\n\t\t\t}\n\n\t\t\tconst validationDataObject = params['validationData'];\n\t\t\tif (validationDataObject) {\n\t\t\t\tvalidationData = [];\n\t\t\t\tObject.keys(validationDataObject).map(key => {\n\t\t\t\t\tvalidationData.push(\n\t\t\t\t\t\tnew CognitoUserAttribute({\n\t\t\t\t\t\t\tName: key,\n\t\t\t\t\t\t\tValue: validationDataObject[key],\n\t\t\t\t\t\t})\n\t\t\t\t\t);\n\t\t\t\t});\n\t\t\t}\n\n\t\t\tautoSignIn = params.autoSignIn ?? { enabled: false };\n\t\t\tif (autoSignIn.enabled) {\n\t\t\t\tthis._storage.setItem('amplify-auto-sign-in', 'true');\n\t\t\t\tautoSignInValidationData = autoSignIn.validationData ?? {};\n\t\t\t\tautoSignInClientMetaData = autoSignIn.clientMetaData ?? {};\n\t\t\t}\n\t\t} else {\n\t\t\treturn this.rejectAuthError(AuthErrorTypes.SignUpError);\n\t\t}\n\n\t\tif (!username) {\n\t\t\treturn this.rejectAuthError(AuthErrorTypes.EmptyUsername);\n\t\t}\n\t\tif (!password) {\n\t\t\treturn this.rejectAuthError(AuthErrorTypes.EmptyPassword);\n\t\t}\n\n\t\tlogger.debug('signUp attrs:', attributes);\n\t\tlogger.debug('signUp validation data:', validationData);\n\n\t\treturn new Promise((resolve, reject) => {\n\t\t\tthis.userPool.signUp(\n\t\t\t\tusername,\n\t\t\t\tpassword,\n\t\t\t\tattributes,\n\t\t\t\tvalidationData,\n\t\t\t\t(err, data) => {\n\t\t\t\t\tif (err) {\n\t\t\t\t\t\tdispatchAuthEvent(\n\t\t\t\t\t\t\t'signUp_failure',\n\t\t\t\t\t\t\terr,\n\t\t\t\t\t\t\t`${username} failed to signup`\n\t\t\t\t\t\t);\n\t\t\t\t\t\treject(err);\n\t\t\t\t\t} else {\n\t\t\t\t\t\tdispatchAuthEvent(\n\t\t\t\t\t\t\t'signUp',\n\t\t\t\t\t\t\tdata,\n\t\t\t\t\t\t\t`${username} has signed up successfully`\n\t\t\t\t\t\t);\n\t\t\t\t\t\tif (autoSignIn.enabled) {\n\t\t\t\t\t\t\tthis.handleAutoSignIn(\n\t\t\t\t\t\t\t\tusername,\n\t\t\t\t\t\t\t\tpassword,\n\t\t\t\t\t\t\t\tautoSignInValidationData,\n\t\t\t\t\t\t\t\tautoSignInClientMetaData,\n\t\t\t\t\t\t\t\tdata\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t}\n\t\t\t\t\t\tresolve(data);\n\t\t\t\t\t}\n\t\t\t\t},\n\t\t\t\tclientMetadata\n\t\t\t);\n\t\t});\n\t}\n\n\tprivate handleAutoSignIn(\n\t\tusername: string,\n\t\tpassword: string,\n\t\tvalidationData: {},\n\t\tclientMetadata: any,\n\t\tdata: any\n\t) {\n\t\tthis.autoSignInInitiated = true;\n\t\tconst authDetails = new AuthenticationDetails({\n\t\t\tUsername: username,\n\t\t\tPassword: password,\n\t\t\tValidationData: validationData,\n\t\t\tClientMetadata: clientMetadata,\n\t\t});\n\t\tif (data.userConfirmed) {\n\t\t\tthis.signInAfterUserConfirmed(authDetails);\n\t\t} else if (this._config.signUpVerificationMethod === 'link') {\n\t\t\tthis.handleLinkAutoSignIn(authDetails);\n\t\t} else {\n\t\t\tthis.handleCodeAutoSignIn(authDetails);\n\t\t}\n\t}\n\n\tprivate handleCodeAutoSignIn(authDetails: AuthenticationDetails) {\n\t\tconst listenEvent = ({ payload }) => {\n\t\t\tif (payload.event === 'confirmSignUp') {\n\t\t\t\tthis.signInAfterUserConfirmed(authDetails, listenEvent);\n\t\t\t}\n\t\t};\n\t\tHub.listen('auth', listenEvent);\n\t}\n\n\tprivate handleLinkAutoSignIn(authDetails: AuthenticationDetails) {\n\t\tthis._storage.setItem('amplify-polling-started', 'true');\n\t\tconst start = Date.now();\n\t\tconst autoSignInPollingIntervalId = setInterval(() => {\n\t\t\tif (Date.now() - start > MAX_AUTOSIGNIN_POLLING_MS) {\n\t\t\t\tclearInterval(autoSignInPollingIntervalId);\n\t\t\t\tdispatchAuthEvent(\n\t\t\t\t\t'autoSignIn_failure',\n\t\t\t\t\tnull,\n\t\t\t\t\t'Please confirm your account and use your credentials to sign in.'\n\t\t\t\t);\n\t\t\t\tthis._storage.removeItem('amplify-auto-sign-in');\n\t\t\t} else {\n\t\t\t\tthis.signInAfterUserConfirmed(\n\t\t\t\t\tauthDetails,\n\t\t\t\t\tnull,\n\t\t\t\t\tautoSignInPollingIntervalId\n\t\t\t\t);\n\t\t\t}\n\t\t}, 5000);\n\t}\n\n\tprivate async signInAfterUserConfirmed(\n\t\tauthDetails: AuthenticationDetails,\n\t\tlistenEvent?: HubCallback,\n\t\tautoSignInPollingIntervalId?: ReturnType\n\t) {\n\t\tconst user = this.createCognitoUser(authDetails.getUsername());\n\t\ttry {\n\t\t\tawait user.authenticateUser(\n\t\t\t\tauthDetails,\n\t\t\t\tthis.authCallbacks(\n\t\t\t\t\tuser,\n\t\t\t\t\tvalue => {\n\t\t\t\t\t\tdispatchAuthEvent(\n\t\t\t\t\t\t\t'autoSignIn',\n\t\t\t\t\t\t\tvalue,\n\t\t\t\t\t\t\t`${authDetails.getUsername()} has signed in successfully`\n\t\t\t\t\t\t);\n\t\t\t\t\t\tif (listenEvent) {\n\t\t\t\t\t\t\tHub.remove('auth', listenEvent);\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif (autoSignInPollingIntervalId) {\n\t\t\t\t\t\t\tclearInterval(autoSignInPollingIntervalId);\n\t\t\t\t\t\t\tthis._storage.removeItem('amplify-polling-started');\n\t\t\t\t\t\t}\n\t\t\t\t\t\tthis._storage.removeItem('amplify-auto-sign-in');\n\t\t\t\t\t},\n\t\t\t\t\terror => {\n\t\t\t\t\t\tlogger.error(error);\n\t\t\t\t\t\tthis._storage.removeItem('amplify-auto-sign-in');\n\t\t\t\t\t}\n\t\t\t\t)\n\t\t\t);\n\t\t} catch (error) {\n\t\t\tlogger.error(error);\n\t\t}\n\t}\n\n\t/**\n\t * Send the verification code to confirm sign up\n\t * @param {String} username - The username to be confirmed\n\t * @param {String} code - The verification code\n\t * @param {ConfirmSignUpOptions} options - other options for confirm signup\n\t * @return - A promise resolves callback data if success\n\t */\n\tpublic confirmSignUp(\n\t\tusername: string,\n\t\tcode: string,\n\t\toptions?: ConfirmSignUpOptions\n\t): Promise {\n\t\tif (!this.userPool) {\n\t\t\treturn this.rejectNoUserPool();\n\t\t}\n\t\tif (!username) {\n\t\t\treturn this.rejectAuthError(AuthErrorTypes.EmptyUsername);\n\t\t}\n\t\tif (!code) {\n\t\t\treturn this.rejectAuthError(AuthErrorTypes.EmptyCode);\n\t\t}\n\n\t\tconst user = this.createCognitoUser(username);\n\t\tconst forceAliasCreation =\n\t\t\toptions && typeof options.forceAliasCreation === 'boolean'\n\t\t\t\t? options.forceAliasCreation\n\t\t\t\t: true;\n\n\t\tlet clientMetadata;\n\t\tif (options && options.clientMetadata) {\n\t\t\tclientMetadata = options.clientMetadata;\n\t\t} else if (this._config.clientMetadata) {\n\t\t\tclientMetadata = this._config.clientMetadata;\n\t\t}\n\t\treturn new Promise((resolve, reject) => {\n\t\t\tuser.confirmRegistration(\n\t\t\t\tcode,\n\t\t\t\tforceAliasCreation,\n\t\t\t\t(err, data) => {\n\t\t\t\t\tif (err) {\n\t\t\t\t\t\treject(err);\n\t\t\t\t\t} else {\n\t\t\t\t\t\tdispatchAuthEvent(\n\t\t\t\t\t\t\t'confirmSignUp',\n\t\t\t\t\t\t\tdata,\n\t\t\t\t\t\t\t`${username} has been confirmed successfully`\n\t\t\t\t\t\t);\n\t\t\t\t\t\tconst autoSignIn = this.isTrueStorageValue('amplify-auto-sign-in');\n\t\t\t\t\t\tif (autoSignIn && !this.autoSignInInitiated) {\n\t\t\t\t\t\t\tdispatchAuthEvent(\n\t\t\t\t\t\t\t\t'autoSignIn_failure',\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tAuthErrorTypes.AutoSignInError\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\tthis._storage.removeItem('amplify-auto-sign-in');\n\t\t\t\t\t\t}\n\t\t\t\t\t\tresolve(data);\n\t\t\t\t\t}\n\t\t\t\t},\n\t\t\t\tclientMetadata\n\t\t\t);\n\t\t});\n\t}\n\n\tprivate isTrueStorageValue(value: string) {\n\t\tconst item = this._storage.getItem(value);\n\t\treturn item ? item === 'true' : false;\n\t}\n\n\t/**\n\t * Resend the verification code\n\t * @param {String} username - The username to be confirmed\n\t * @param {ClientMetadata} clientMetadata - Metadata to be passed to Cognito Lambda triggers\n\t * @return - A promise resolves code delivery details if successful\n\t */\n\tpublic resendSignUp(\n\t\tusername: string,\n\t\tclientMetadata: ClientMetaData = this._config.clientMetadata\n\t): Promise {\n\t\tif (!this.userPool) {\n\t\t\treturn this.rejectNoUserPool();\n\t\t}\n\t\tif (!username) {\n\t\t\treturn this.rejectAuthError(AuthErrorTypes.EmptyUsername);\n\t\t}\n\n\t\tconst user = this.createCognitoUser(username);\n\t\treturn new Promise((resolve, reject) => {\n\t\t\tuser.resendConfirmationCode((err, data) => {\n\t\t\t\tif (err) {\n\t\t\t\t\treject(err);\n\t\t\t\t} else {\n\t\t\t\t\tresolve(data);\n\t\t\t\t}\n\t\t\t}, clientMetadata);\n\t\t});\n\t}\n\n\t/**\n\t * Sign in\n\t * @param {String | SignInOpts} usernameOrSignInOpts - The username to be signed in or the sign in options\n\t * @param {String} pw - The password of the username\n\t * @param {ClientMetaData} clientMetadata - Client metadata for custom workflows\n\t * @return - A promise resolves the CognitoUser\n\t */\n\tpublic signIn(\n\t\tusernameOrSignInOpts: string | SignInOpts,\n\t\tpw?: string,\n\t\tclientMetadata: ClientMetaData = this._config.clientMetadata\n\t): Promise {\n\t\tif (!this.userPool) {\n\t\t\treturn this.rejectNoUserPool();\n\t\t}\n\n\t\tlet username = null;\n\t\tlet password = null;\n\t\tlet validationData = {};\n\n\t\t// for backward compatibility\n\t\tif (typeof usernameOrSignInOpts === 'string') {\n\t\t\tusername = usernameOrSignInOpts;\n\t\t\tpassword = pw;\n\t\t} else if (isUsernamePasswordOpts(usernameOrSignInOpts)) {\n\t\t\tif (typeof pw !== 'undefined') {\n\t\t\t\tlogger.warn(\n\t\t\t\t\t'The password should be defined under the first parameter object!'\n\t\t\t\t);\n\t\t\t}\n\t\t\tusername = usernameOrSignInOpts.username;\n\t\t\tpassword = usernameOrSignInOpts.password;\n\t\t\tvalidationData = usernameOrSignInOpts.validationData;\n\t\t} else {\n\t\t\treturn this.rejectAuthError(AuthErrorTypes.InvalidUsername);\n\t\t}\n\t\tif (!username) {\n\t\t\treturn this.rejectAuthError(AuthErrorTypes.EmptyUsername);\n\t\t}\n\t\tconst authDetails = new AuthenticationDetails({\n\t\t\tUsername: username,\n\t\t\tPassword: password,\n\t\t\tValidationData: validationData,\n\t\t\tClientMetadata: clientMetadata,\n\t\t});\n\t\tif (password) {\n\t\t\treturn this.signInWithPassword(authDetails);\n\t\t} else {\n\t\t\treturn this.signInWithoutPassword(authDetails);\n\t\t}\n\t}\n\n\t/**\n\t * Return an object with the authentication callbacks\n\t * @param {CognitoUser} user - the cognito user object\n\t * @param {} resolve - function called when resolving the current step\n\t * @param {} reject - function called when rejecting the current step\n\t * @return - an object with the callback methods for user authentication\n\t */\n\tprivate authCallbacks(\n\t\tuser: CognitoUser,\n\t\tresolve: (value?: CognitoUser | any) => void,\n\t\treject: (value?: any) => void\n\t): IAuthenticationCallback {\n\t\tconst that = this;\n\t\treturn {\n\t\t\tonSuccess: async session => {\n\t\t\t\tlogger.debug(session);\n\t\t\t\tdelete user['challengeName'];\n\t\t\t\tdelete user['challengeParam'];\n\t\t\t\ttry {\n\t\t\t\t\tawait this.Credentials.clear();\n\t\t\t\t\tconst cred = await this.Credentials.set(session, 'session');\n\t\t\t\t\tlogger.debug('succeed to get cognito credentials', cred);\n\t\t\t\t} catch (e) {\n\t\t\t\t\tlogger.debug('cannot get cognito credentials', e);\n\t\t\t\t} finally {\n\t\t\t\t\ttry {\n\t\t\t\t\t\t// In order to get user attributes and MFA methods\n\t\t\t\t\t\t// We need to trigger currentUserPoolUser again\n\t\t\t\t\t\tconst currentUser = await this.currentUserPoolUser();\n\t\t\t\t\t\tthat.user = currentUser;\n\t\t\t\t\t\tdispatchAuthEvent(\n\t\t\t\t\t\t\t'signIn',\n\t\t\t\t\t\t\tcurrentUser,\n\t\t\t\t\t\t\t`A user ${user.getUsername()} has been signed in`\n\t\t\t\t\t\t);\n\t\t\t\t\t\tresolve(currentUser);\n\t\t\t\t\t} catch (e) {\n\t\t\t\t\t\tlogger.error('Failed to get the signed in user', e);\n\t\t\t\t\t\treject(e);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t},\n\t\t\tonFailure: err => {\n\t\t\t\tlogger.debug('signIn failure', err);\n\t\t\t\tdispatchAuthEvent(\n\t\t\t\t\t'signIn_failure',\n\t\t\t\t\terr,\n\t\t\t\t\t`${user.getUsername()} failed to signin`\n\t\t\t\t);\n\t\t\t\treject(err);\n\t\t\t},\n\t\t\tcustomChallenge: challengeParam => {\n\t\t\t\tlogger.debug('signIn custom challenge answer required');\n\t\t\t\tuser['challengeName'] = 'CUSTOM_CHALLENGE';\n\t\t\t\tuser['challengeParam'] = challengeParam;\n\t\t\t\tresolve(user);\n\t\t\t},\n\t\t\tmfaRequired: (challengeName, challengeParam) => {\n\t\t\t\tlogger.debug('signIn MFA required');\n\t\t\t\tuser['challengeName'] = challengeName;\n\t\t\t\tuser['challengeParam'] = challengeParam;\n\t\t\t\tresolve(user);\n\t\t\t},\n\t\t\tmfaSetup: (challengeName, challengeParam) => {\n\t\t\t\tlogger.debug('signIn mfa setup', challengeName);\n\t\t\t\tuser['challengeName'] = challengeName;\n\t\t\t\tuser['challengeParam'] = challengeParam;\n\t\t\t\tresolve(user);\n\t\t\t},\n\t\t\tnewPasswordRequired: (userAttributes, requiredAttributes) => {\n\t\t\t\tlogger.debug('signIn new password');\n\t\t\t\tuser['challengeName'] = 'NEW_PASSWORD_REQUIRED';\n\t\t\t\tuser['challengeParam'] = {\n\t\t\t\t\tuserAttributes,\n\t\t\t\t\trequiredAttributes,\n\t\t\t\t};\n\t\t\t\tresolve(user);\n\t\t\t},\n\t\t\ttotpRequired: (challengeName, challengeParam) => {\n\t\t\t\tlogger.debug('signIn totpRequired');\n\t\t\t\tuser['challengeName'] = challengeName;\n\t\t\t\tuser['challengeParam'] = challengeParam;\n\t\t\t\tresolve(user);\n\t\t\t},\n\t\t\tselectMFAType: (challengeName, challengeParam) => {\n\t\t\t\tlogger.debug('signIn selectMFAType', challengeName);\n\t\t\t\tuser['challengeName'] = challengeName;\n\t\t\t\tuser['challengeParam'] = challengeParam;\n\t\t\t\tresolve(user);\n\t\t\t},\n\t\t};\n\t}\n\n\t/**\n\t * Sign in with a password\n\t * @private\n\t * @param {AuthenticationDetails} authDetails - the user sign in data\n\t * @return - A promise resolves the CognitoUser object if success or mfa required\n\t */\n\tprivate signInWithPassword(\n\t\tauthDetails: AuthenticationDetails\n\t): Promise {\n\t\tif (this.pendingSignIn) {\n\t\t\tthrow new Error('Pending sign-in attempt already in progress');\n\t\t}\n\n\t\tconst user = this.createCognitoUser(authDetails.getUsername());\n\n\t\tthis.pendingSignIn = new Promise((resolve, reject) => {\n\t\t\tuser.authenticateUser(\n\t\t\t\tauthDetails,\n\t\t\t\tthis.authCallbacks(\n\t\t\t\t\tuser,\n\t\t\t\t\tvalue => {\n\t\t\t\t\t\tthis.pendingSignIn = null;\n\t\t\t\t\t\tresolve(value);\n\t\t\t\t\t},\n\t\t\t\t\terror => {\n\t\t\t\t\t\tthis.pendingSignIn = null;\n\t\t\t\t\t\treject(error);\n\t\t\t\t\t}\n\t\t\t\t)\n\t\t\t);\n\t\t});\n\n\t\treturn this.pendingSignIn;\n\t}\n\n\t/**\n\t * Sign in without a password\n\t * @private\n\t * @param {AuthenticationDetails} authDetails - the user sign in data\n\t * @return - A promise resolves the CognitoUser object if success or mfa required\n\t */\n\tprivate signInWithoutPassword(\n\t\tauthDetails: AuthenticationDetails\n\t): Promise {\n\t\tconst user = this.createCognitoUser(authDetails.getUsername());\n\t\tuser.setAuthenticationFlowType('CUSTOM_AUTH');\n\n\t\treturn new Promise((resolve, reject) => {\n\t\t\tuser.initiateAuth(authDetails, this.authCallbacks(user, resolve, reject));\n\t\t});\n\t}\n\n\t/**\n\t * This was previously used by an authenticated user to get MFAOptions,\n\t * but no longer returns a meaningful response. Refer to the documentation for\n\t * how to setup and use MFA: https://docs.amplify.aws/lib/auth/mfa/q/platform/js\n\t * @deprecated\n\t * @param {CognitoUser} user - the current user\n\t * @return - A promise resolves the current preferred mfa option if success\n\t */\n\tpublic getMFAOptions(user: CognitoUser | any): Promise {\n\t\treturn new Promise((res, rej) => {\n\t\t\tuser.getMFAOptions((err, mfaOptions) => {\n\t\t\t\tif (err) {\n\t\t\t\t\tlogger.debug('get MFA Options failed', err);\n\t\t\t\t\trej(err);\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\tlogger.debug('get MFA options success', mfaOptions);\n\t\t\t\tres(mfaOptions);\n\t\t\t\treturn;\n\t\t\t});\n\t\t});\n\t}\n\n\t/**\n\t * get preferred mfa method\n\t * @param {CognitoUser} user - the current cognito user\n\t * @param {GetPreferredMFAOpts} params - options for getting the current user preferred MFA\n\t */\n\tpublic getPreferredMFA(\n\t\tuser: CognitoUser | any,\n\t\tparams?: GetPreferredMFAOpts\n\t): Promise {\n\t\tconst that = this;\n\t\treturn new Promise((res, rej) => {\n\t\t\tconst clientMetadata = this._config.clientMetadata; // TODO: verify behavior if this is override during signIn\n\n\t\t\tconst bypassCache = params ? params.bypassCache : false;\n\t\t\tuser.getUserData(\n\t\t\t\tasync (err, data) => {\n\t\t\t\t\tif (err) {\n\t\t\t\t\t\tlogger.debug('getting preferred mfa failed', err);\n\t\t\t\t\t\tif (this.isSessionInvalid(err)) {\n\t\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\t\tawait this.cleanUpInvalidSession(user);\n\t\t\t\t\t\t\t} catch (cleanUpError) {\n\t\t\t\t\t\t\t\trej(\n\t\t\t\t\t\t\t\t\tnew Error(\n\t\t\t\t\t\t\t\t\t\t`Session is invalid due to: ${err.message} and failed to clean up invalid session: ${cleanUpError.message}`\n\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\trej(err);\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\n\t\t\t\t\tconst mfaType = that._getMfaTypeFromUserData(data);\n\t\t\t\t\tif (!mfaType) {\n\t\t\t\t\t\trej('invalid MFA Type');\n\t\t\t\t\t\treturn;\n\t\t\t\t\t} else {\n\t\t\t\t\t\tres(mfaType);\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\t\t\t\t},\n\t\t\t\t{ bypassCache, clientMetadata }\n\t\t\t);\n\t\t});\n\t}\n\n\tprivate _getMfaTypeFromUserData(data) {\n\t\tlet ret = null;\n\t\tconst preferredMFA = data.PreferredMfaSetting;\n\t\t// if the user has used Auth.setPreferredMFA() to setup the mfa type\n\t\t// then the \"PreferredMfaSetting\" would exist in the response\n\t\tif (preferredMFA) {\n\t\t\tret = preferredMFA;\n\t\t} else {\n\t\t\t// if mfaList exists but empty, then its noMFA\n\t\t\tconst mfaList = data.UserMFASettingList;\n\t\t\tif (!mfaList) {\n\t\t\t\t// if SMS was enabled by using Auth.enableSMS(),\n\t\t\t\t// the response would contain MFAOptions\n\t\t\t\t// as for now Cognito only supports for SMS, so we will say it is 'SMS_MFA'\n\t\t\t\t// if it does not exist, then it should be NOMFA\n\t\t\t\tconst MFAOptions = data.MFAOptions;\n\t\t\t\tif (MFAOptions) {\n\t\t\t\t\tret = 'SMS_MFA';\n\t\t\t\t} else {\n\t\t\t\t\tret = 'NOMFA';\n\t\t\t\t}\n\t\t\t} else if (mfaList.length === 0) {\n\t\t\t\tret = 'NOMFA';\n\t\t\t} else {\n\t\t\t\tlogger.debug('invalid case for getPreferredMFA', data);\n\t\t\t}\n\t\t}\n\t\treturn ret;\n\t}\n\n\tprivate _getUserData(user, params) {\n\t\treturn new Promise((res, rej) => {\n\t\t\tuser.getUserData(async (err, data) => {\n\t\t\t\tif (err) {\n\t\t\t\t\tlogger.debug('getting user data failed', err);\n\t\t\t\t\tif (this.isSessionInvalid(err)) {\n\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\tawait this.cleanUpInvalidSession(user);\n\t\t\t\t\t\t} catch (cleanUpError) {\n\t\t\t\t\t\t\trej(\n\t\t\t\t\t\t\t\tnew Error(\n\t\t\t\t\t\t\t\t\t`Session is invalid due to: ${err.message} and failed to clean up invalid session: ${cleanUpError.message}`\n\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\trej(err);\n\t\t\t\t\treturn;\n\t\t\t\t} else {\n\t\t\t\t\tres(data);\n\t\t\t\t}\n\t\t\t}, params);\n\t\t});\n\t}\n\n\t/**\n\t * set preferred MFA method\n\t * @param {CognitoUser} user - the current Cognito user\n\t * @param {string} mfaMethod - preferred mfa method\n\t * @return - A promise resolve if success\n\t */\n\tpublic async setPreferredMFA(\n\t\tuser: CognitoUser | any,\n\t\tmfaMethod: 'TOTP' | 'SMS' | 'NOMFA' | 'SMS_MFA' | 'SOFTWARE_TOKEN_MFA'\n\t): Promise {\n\t\tconst clientMetadata = this._config.clientMetadata; // TODO: verify behavior if this is override during signIn\n\n\t\tconst userData = await this._getUserData(user, {\n\t\t\tbypassCache: true,\n\t\t\tclientMetadata,\n\t\t});\n\t\tlet smsMfaSettings = null;\n\t\tlet totpMfaSettings = null;\n\n\t\tswitch (mfaMethod) {\n\t\t\tcase 'TOTP':\n\t\t\tcase 'SOFTWARE_TOKEN_MFA':\n\t\t\t\ttotpMfaSettings = {\n\t\t\t\t\tPreferredMfa: true,\n\t\t\t\t\tEnabled: true,\n\t\t\t\t};\n\t\t\t\tbreak;\n\t\t\tcase 'SMS':\n\t\t\tcase 'SMS_MFA':\n\t\t\t\tsmsMfaSettings = {\n\t\t\t\t\tPreferredMfa: true,\n\t\t\t\t\tEnabled: true,\n\t\t\t\t};\n\t\t\t\tbreak;\n\t\t\tcase 'NOMFA':\n\t\t\t\tconst mfaList = userData['UserMFASettingList'];\n\t\t\t\tconst currentMFAType = await this._getMfaTypeFromUserData(userData);\n\t\t\t\tif (currentMFAType === 'NOMFA') {\n\t\t\t\t\treturn Promise.resolve('No change for mfa type');\n\t\t\t\t} else if (currentMFAType === 'SMS_MFA') {\n\t\t\t\t\tsmsMfaSettings = {\n\t\t\t\t\t\tPreferredMfa: false,\n\t\t\t\t\t\tEnabled: false,\n\t\t\t\t\t};\n\t\t\t\t} else if (currentMFAType === 'SOFTWARE_TOKEN_MFA') {\n\t\t\t\t\ttotpMfaSettings = {\n\t\t\t\t\t\tPreferredMfa: false,\n\t\t\t\t\t\tEnabled: false,\n\t\t\t\t\t};\n\t\t\t\t} else {\n\t\t\t\t\treturn this.rejectAuthError(AuthErrorTypes.InvalidMFA);\n\t\t\t\t}\n\t\t\t\t// if there is a UserMFASettingList in the response\n\t\t\t\t// we need to disable every mfa type in that list\n\t\t\t\tif (mfaList && mfaList.length !== 0) {\n\t\t\t\t\t// to disable SMS or TOTP if exists in that list\n\t\t\t\t\tmfaList.forEach(mfaType => {\n\t\t\t\t\t\tif (mfaType === 'SMS_MFA') {\n\t\t\t\t\t\t\tsmsMfaSettings = {\n\t\t\t\t\t\t\t\tPreferredMfa: false,\n\t\t\t\t\t\t\t\tEnabled: false,\n\t\t\t\t\t\t\t};\n\t\t\t\t\t\t} else if (mfaType === 'SOFTWARE_TOKEN_MFA') {\n\t\t\t\t\t\t\ttotpMfaSettings = {\n\t\t\t\t\t\t\t\tPreferredMfa: false,\n\t\t\t\t\t\t\t\tEnabled: false,\n\t\t\t\t\t\t\t};\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t\tbreak;\n\t\t\tdefault:\n\t\t\t\tlogger.debug('no validmfa method provided');\n\t\t\t\treturn this.rejectAuthError(AuthErrorTypes.NoMFA);\n\t\t}\n\n\t\tconst that = this;\n\t\treturn new Promise((res, rej) => {\n\t\t\tuser.setUserMfaPreference(\n\t\t\t\tsmsMfaSettings,\n\t\t\t\ttotpMfaSettings,\n\t\t\t\t(err, result) => {\n\t\t\t\t\tif (err) {\n\t\t\t\t\t\tlogger.debug('Set user mfa preference error', err);\n\t\t\t\t\t\treturn rej(err);\n\t\t\t\t\t}\n\t\t\t\t\tlogger.debug('Set user mfa success', result);\n\t\t\t\t\tlogger.debug('Caching the latest user data into local');\n\t\t\t\t\t// cache the latest result into user data\n\t\t\t\t\tuser.getUserData(\n\t\t\t\t\t\tasync (err, data) => {\n\t\t\t\t\t\t\tif (err) {\n\t\t\t\t\t\t\t\tlogger.debug('getting user data failed', err);\n\t\t\t\t\t\t\t\tif (this.isSessionInvalid(err)) {\n\t\t\t\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\t\t\t\tawait this.cleanUpInvalidSession(user);\n\t\t\t\t\t\t\t\t\t} catch (cleanUpError) {\n\t\t\t\t\t\t\t\t\t\trej(\n\t\t\t\t\t\t\t\t\t\t\tnew Error(\n\t\t\t\t\t\t\t\t\t\t\t\t`Session is invalid due to: ${err.message} and failed to clean up invalid session: ${cleanUpError.message}`\n\t\t\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\treturn rej(err);\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\treturn res(result);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t},\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tbypassCache: true,\n\t\t\t\t\t\t\tclientMetadata,\n\t\t\t\t\t\t}\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t);\n\t\t});\n\t}\n\n\t/**\n\t * disable SMS\n\t * @deprecated\n\t * @param {CognitoUser} user - the current user\n\t * @return - A promise resolves is success\n\t */\n\tpublic disableSMS(user: CognitoUser): Promise {\n\t\treturn new Promise((res, rej) => {\n\t\t\tuser.disableMFA((err, data) => {\n\t\t\t\tif (err) {\n\t\t\t\t\tlogger.debug('disable mfa failed', err);\n\t\t\t\t\trej(err);\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\tlogger.debug('disable mfa succeed', data);\n\t\t\t\tres(data);\n\t\t\t\treturn;\n\t\t\t});\n\t\t});\n\t}\n\n\t/**\n\t * enable SMS\n\t * @deprecated\n\t * @param {CognitoUser} user - the current user\n\t * @return - A promise resolves is success\n\t */\n\tpublic enableSMS(user: CognitoUser): Promise {\n\t\treturn new Promise((res, rej) => {\n\t\t\tuser.enableMFA((err, data) => {\n\t\t\t\tif (err) {\n\t\t\t\t\tlogger.debug('enable mfa failed', err);\n\t\t\t\t\trej(err);\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\tlogger.debug('enable mfa succeed', data);\n\t\t\t\tres(data);\n\t\t\t\treturn;\n\t\t\t});\n\t\t});\n\t}\n\n\t/**\n\t * Setup TOTP\n\t * @param {CognitoUser} user - the current user\n\t * @return - A promise resolves with the secret code if success\n\t */\n\tpublic setupTOTP(user: CognitoUser | any): Promise {\n\t\treturn new Promise((res, rej) => {\n\t\t\tuser.associateSoftwareToken({\n\t\t\t\tonFailure: err => {\n\t\t\t\t\tlogger.debug('associateSoftwareToken failed', err);\n\t\t\t\t\trej(err);\n\t\t\t\t\treturn;\n\t\t\t\t},\n\t\t\t\tassociateSecretCode: secretCode => {\n\t\t\t\t\tlogger.debug('associateSoftwareToken sucess', secretCode);\n\t\t\t\t\tres(secretCode);\n\t\t\t\t\treturn;\n\t\t\t\t},\n\t\t\t});\n\t\t});\n\t}\n\n\t/**\n\t * verify TOTP setup\n\t * @param {CognitoUser} user - the current user\n\t * @param {string} challengeAnswer - challenge answer\n\t * @return - A promise resolves is success\n\t */\n\tpublic verifyTotpToken(\n\t\tuser: CognitoUser | any,\n\t\tchallengeAnswer: string\n\t): Promise {\n\t\tlogger.debug('verification totp token', user, challengeAnswer);\n\t\treturn new Promise((res, rej) => {\n\t\t\tuser.verifySoftwareToken(challengeAnswer, 'My TOTP device', {\n\t\t\t\tonFailure: err => {\n\t\t\t\t\tlogger.debug('verifyTotpToken failed', err);\n\t\t\t\t\trej(err);\n\t\t\t\t\treturn;\n\t\t\t\t},\n\t\t\t\tonSuccess: data => {\n\t\t\t\t\tdispatchAuthEvent('signIn', user, `A user ${user.getUsername()} has been signed in`);\n\t\t\t\t\tdispatchAuthEvent(\n\t\t\t\t\t\t'verify',\n\t\t\t\t\t\tuser,\n\t\t\t\t\t\t`A user ${user.getUsername()} has been verified`\n\t\t\t\t\t);\n\t\t\t\t\tlogger.debug('verifyTotpToken success', data);\n\t\t\t\t\tres(data);\n\t\t\t\t\treturn;\n\t\t\t\t},\n\t\t\t});\n\t\t});\n\t}\n\n\t/**\n\t * Send MFA code to confirm sign in\n\t * @param {Object} user - The CognitoUser object\n\t * @param {String} code - The confirmation code\n\t */\n\tpublic confirmSignIn(\n\t\tuser: CognitoUser | any,\n\t\tcode: string,\n\t\tmfaType?: 'SMS_MFA' | 'SOFTWARE_TOKEN_MFA' | null,\n\t\tclientMetadata: ClientMetaData = this._config.clientMetadata\n\t): Promise {\n\t\tif (!code) {\n\t\t\treturn this.rejectAuthError(AuthErrorTypes.EmptyCode);\n\t\t}\n\n\t\tconst that = this;\n\t\treturn new Promise((resolve, reject) => {\n\t\t\tuser.sendMFACode(\n\t\t\t\tcode,\n\t\t\t\t{\n\t\t\t\t\tonSuccess: async session => {\n\t\t\t\t\t\tlogger.debug(session);\n\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\tawait this.Credentials.clear();\n\t\t\t\t\t\t\tconst cred = await this.Credentials.set(session, 'session');\n\t\t\t\t\t\t\tlogger.debug('succeed to get cognito credentials', cred);\n\t\t\t\t\t\t} catch (e) {\n\t\t\t\t\t\t\tlogger.debug('cannot get cognito credentials', e);\n\t\t\t\t\t\t} finally {\n\t\t\t\t\t\t\tthat.user = user;\n\n\t\t\t\t\t\t\tdispatchAuthEvent(\n\t\t\t\t\t\t\t\t'signIn',\n\t\t\t\t\t\t\t\tuser,\n\t\t\t\t\t\t\t\t`A user ${user.getUsername()} has been signed in`\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\tresolve(user);\n\t\t\t\t\t\t}\n\t\t\t\t\t},\n\t\t\t\t\tonFailure: err => {\n\t\t\t\t\t\tlogger.debug('confirm signIn failure', err);\n\t\t\t\t\t\treject(err);\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\tmfaType,\n\t\t\t\tclientMetadata\n\t\t\t);\n\t\t});\n\t}\n\n\tpublic completeNewPassword(\n\t\tuser: CognitoUser | any,\n\t\tpassword: string,\n\t\trequiredAttributes: any = {},\n\t\tclientMetadata: ClientMetaData = this._config.clientMetadata\n\t): Promise {\n\t\tif (!password) {\n\t\t\treturn this.rejectAuthError(AuthErrorTypes.EmptyPassword);\n\t\t}\n\n\t\tconst that = this;\n\t\treturn new Promise((resolve, reject) => {\n\t\t\tuser.completeNewPasswordChallenge(\n\t\t\t\tpassword,\n\t\t\t\trequiredAttributes,\n\t\t\t\t{\n\t\t\t\t\tonSuccess: async session => {\n\t\t\t\t\t\tlogger.debug(session);\n\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\tawait this.Credentials.clear();\n\t\t\t\t\t\t\tconst cred = await this.Credentials.set(session, 'session');\n\t\t\t\t\t\t\tlogger.debug('succeed to get cognito credentials', cred);\n\t\t\t\t\t\t} catch (e) {\n\t\t\t\t\t\t\tlogger.debug('cannot get cognito credentials', e);\n\t\t\t\t\t\t} finally {\n\t\t\t\t\t\t\tthat.user = user;\n\t\t\t\t\t\t\tdispatchAuthEvent(\n\t\t\t\t\t\t\t\t'signIn',\n\t\t\t\t\t\t\t\tuser,\n\t\t\t\t\t\t\t\t`A user ${user.getUsername()} has been signed in`\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\tresolve(user);\n\t\t\t\t\t\t}\n\t\t\t\t\t},\n\t\t\t\t\tonFailure: err => {\n\t\t\t\t\t\tlogger.debug('completeNewPassword failure', err);\n\t\t\t\t\t\tdispatchAuthEvent(\n\t\t\t\t\t\t\t'completeNewPassword_failure',\n\t\t\t\t\t\t\terr,\n\t\t\t\t\t\t\t`${this.user} failed to complete the new password flow`\n\t\t\t\t\t\t);\n\t\t\t\t\t\treject(err);\n\t\t\t\t\t},\n\t\t\t\t\tmfaRequired: (challengeName, challengeParam) => {\n\t\t\t\t\t\tlogger.debug('signIn MFA required');\n\t\t\t\t\t\tuser['challengeName'] = challengeName;\n\t\t\t\t\t\tuser['challengeParam'] = challengeParam;\n\t\t\t\t\t\tresolve(user);\n\t\t\t\t\t},\n\t\t\t\t\tmfaSetup: (challengeName, challengeParam) => {\n\t\t\t\t\t\tlogger.debug('signIn mfa setup', challengeName);\n\t\t\t\t\t\tuser['challengeName'] = challengeName;\n\t\t\t\t\t\tuser['challengeParam'] = challengeParam;\n\t\t\t\t\t\tresolve(user);\n\t\t\t\t\t},\n\t\t\t\t\ttotpRequired: (challengeName, challengeParam) => {\n\t\t\t\t\t\tlogger.debug('signIn mfa setup', challengeName);\n\t\t\t\t\t\tuser['challengeName'] = challengeName;\n\t\t\t\t\t\tuser['challengeParam'] = challengeParam;\n\t\t\t\t\t\tresolve(user);\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\tclientMetadata\n\t\t\t);\n\t\t});\n\t}\n\n\t/**\n\t * Send the answer to a custom challenge\n\t * @param {CognitoUser} user - The CognitoUser object\n\t * @param {String} challengeResponses - The confirmation code\n\t */\n\tpublic sendCustomChallengeAnswer(\n\t\tuser: CognitoUser | any,\n\t\tchallengeResponses: string,\n\t\tclientMetadata: ClientMetaData = this._config.clientMetadata\n\t): Promise {\n\t\tif (!this.userPool) {\n\t\t\treturn this.rejectNoUserPool();\n\t\t}\n\t\tif (!challengeResponses) {\n\t\t\treturn this.rejectAuthError(AuthErrorTypes.EmptyChallengeResponse);\n\t\t}\n\n\t\tconst that = this;\n\t\treturn new Promise((resolve, reject) => {\n\t\t\tuser.sendCustomChallengeAnswer(\n\t\t\t\tchallengeResponses,\n\t\t\t\tthis.authCallbacks(user, resolve, reject),\n\t\t\t\tclientMetadata\n\t\t\t);\n\t\t});\n\t}\n\n\t/**\n\t * Delete an authenticated users' attributes\n\t * @param {CognitoUser} - The currently logged in user object\n\t * @return {Promise}\n\t **/\n\tpublic deleteUserAttributes(\n\t\tuser: CognitoUser | any,\n\t\tattributeNames: string[]\n\t) {\n\t\tconst that = this;\n\t\treturn new Promise((resolve, reject) => {\n\t\t\tthat.userSession(user).then(session => {\n\t\t\t\tuser.deleteAttributes(attributeNames, (err, result) => {\n\t\t\t\t\tif (err) {\n\t\t\t\t\t\treturn reject(err);\n\t\t\t\t\t} else {\n\t\t\t\t\t\treturn resolve(result);\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t});\n\t\t});\n\t}\n\n\t/**\n\t * Delete the current authenticated user\n\t * @return {Promise}\n\t **/\n\t// TODO: Check return type void\n\tpublic async deleteUser(): Promise {\n\t\ttry {\n\t\t\tawait this._storageSync;\n\t\t} catch (e) {\n\t\t\tlogger.debug('Failed to sync cache info into memory', e);\n\t\t\tthrow new Error(e);\n\t\t}\n\n\t\tconst isSignedInHostedUI =\n\t\t\tthis._oAuthHandler &&\n\t\t\tthis._storage.getItem('amplify-signin-with-hostedUI') === 'true';\n\n\t\treturn new Promise(async (res, rej) => {\n\t\t\tif (this.userPool) {\n\t\t\t\tconst user = this.userPool.getCurrentUser();\n\n\t\t\t\tif (!user) {\n\t\t\t\t\tlogger.debug('Failed to get user from user pool');\n\t\t\t\t\treturn rej(new Error('No current user.'));\n\t\t\t\t} else {\n\t\t\t\t\tuser.getSession(async (err, session) => {\n\t\t\t\t\t\tif (err) {\n\t\t\t\t\t\t\tlogger.debug('Failed to get the user session', err);\n\t\t\t\t\t\t\tif (this.isSessionInvalid(err)) {\n\t\t\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\t\t\tawait this.cleanUpInvalidSession(user);\n\t\t\t\t\t\t\t\t} catch (cleanUpError) {\n\t\t\t\t\t\t\t\t\trej(\n\t\t\t\t\t\t\t\t\t\tnew Error(\n\t\t\t\t\t\t\t\t\t\t\t`Session is invalid due to: ${err.message} and failed to clean up invalid session: ${cleanUpError.message}`\n\t\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\treturn rej(err);\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tuser.deleteUser((err, result: string) => {\n\t\t\t\t\t\t\t\tif (err) {\n\t\t\t\t\t\t\t\t\trej(err);\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\tdispatchAuthEvent(\n\t\t\t\t\t\t\t\t\t\t'userDeleted',\n\t\t\t\t\t\t\t\t\t\tresult,\n\t\t\t\t\t\t\t\t\t\t'The authenticated user has been deleted.'\n\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t\tuser.signOut();\n\t\t\t\t\t\t\t\t\tthis.user = null;\n\t\t\t\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\t\t\t\tthis.cleanCachedItems(); // clean aws credentials\n\t\t\t\t\t\t\t\t\t} catch (e) {\n\t\t\t\t\t\t\t\t\t\t// TODO: change to rejects in refactor\n\t\t\t\t\t\t\t\t\t\tlogger.debug('failed to clear cached items');\n\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\tif (isSignedInHostedUI) {\n\t\t\t\t\t\t\t\t\t\tthis.oAuthSignOutRedirect(res, rej);\n\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\tdispatchAuthEvent(\n\t\t\t\t\t\t\t\t\t\t\t'signOut',\n\t\t\t\t\t\t\t\t\t\t\tthis.user,\n\t\t\t\t\t\t\t\t\t\t\t`A user has been signed out`\n\t\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t\t\tres(result);\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tlogger.debug('no Congito User pool');\n\t\t\t\trej(new Error('Cognito User pool does not exist'));\n\t\t\t}\n\t\t});\n\t}\n\n\t/**\n\t * Update an authenticated users' attributes\n\t * @param {CognitoUser} - The currently logged in user object\n\t * @return {Promise}\n\t **/\n\tpublic updateUserAttributes(\n\t\tuser: CognitoUser | any,\n\t\tattributes: object,\n\t\tclientMetadata: ClientMetaData = this._config.clientMetadata\n\t): Promise {\n\t\tconst attributeList: ICognitoUserAttributeData[] = [];\n\t\tconst that = this;\n\t\treturn new Promise((resolve, reject) => {\n\t\t\tthat.userSession(user).then(session => {\n\t\t\t\tfor (const key in attributes) {\n\t\t\t\t\tif (key !== 'sub' && key.indexOf('_verified') < 0) {\n\t\t\t\t\t\tconst attr: ICognitoUserAttributeData = {\n\t\t\t\t\t\t\tName: key,\n\t\t\t\t\t\t\tValue: attributes[key],\n\t\t\t\t\t\t};\n\t\t\t\t\t\tattributeList.push(attr);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tuser.updateAttributes(\n\t\t\t\t\tattributeList,\n\t\t\t\t\t(err, result, details) => {\n\t\t\t\t\t\t\n\t\t\t\t\t\tif (err) {\n\t\t\t\t\t\t\tdispatchAuthEvent('updateUserAttributes_failure', err, 'Failed to update attributes');\n\t\t\t\t\t\t\treturn reject(err);\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tconst attrs = this.createUpdateAttributesResultList(\n\t\t\t\t\t\t\t\tattributes as Record, details?.CodeDeliveryDetailsList\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\tdispatchAuthEvent('updateUserAttributes', attrs, 'Attributes successfully updated');\n\t\t\t\t\t\t\treturn resolve(result);\n\t\t\t\t\t\t}\n\t\t\t\t\t},\n\t\t\t\t\tclientMetadata\n\t\t\t\t);\n\t\t\t});\n\t\t});\n\t}\n\n\tprivate createUpdateAttributesResultList(\n\t\tattributes: Record, \n\t\tcodeDeliveryDetailsList?: CodeDeliveryDetails []\n\t): Record {\n\t\tconst attrs = {};\n\t\tObject.keys(attributes).forEach(key => {\n\t\t\tattrs[key] = {\n\t\t\t\tisUpdated: true\n\t\t\t};\n\t\t\tconst codeDeliveryDetails = codeDeliveryDetailsList?.find(value => value.AttributeName === key);\n\t\t\tif (codeDeliveryDetails) {\n\t\t\t\tattrs[key].isUpdated = false;\n\t\t\t\tattrs[key].codeDeliveryDetails = codeDeliveryDetails;\n\t\t\t}\n\t\t});\n\t\treturn attrs;\n\t}\n\n\t/**\n\t * Return user attributes\n\t * @param {Object} user - The CognitoUser object\n\t * @return - A promise resolves to user attributes if success\n\t */\n\tpublic userAttributes(\n\t\tuser: CognitoUser | any\n\t): Promise {\n\t\treturn new Promise((resolve, reject) => {\n\t\t\tthis.userSession(user).then(session => {\n\t\t\t\tuser.getUserAttributes((err, attributes) => {\n\t\t\t\t\tif (err) {\n\t\t\t\t\t\treject(err);\n\t\t\t\t\t} else {\n\t\t\t\t\t\tresolve(attributes);\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t});\n\t\t});\n\t}\n\n\tpublic verifiedContact(user: CognitoUser | any) {\n\t\tconst that = this;\n\t\treturn this.userAttributes(user).then(attributes => {\n\t\t\tconst attrs = that.attributesToObject(attributes);\n\t\t\tconst unverified = {};\n\t\t\tconst verified = {};\n\t\t\tif (attrs['email']) {\n\t\t\t\tif (attrs['email_verified']) {\n\t\t\t\t\tverified['email'] = attrs['email'];\n\t\t\t\t} else {\n\t\t\t\t\tunverified['email'] = attrs['email'];\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (attrs['phone_number']) {\n\t\t\t\tif (attrs['phone_number_verified']) {\n\t\t\t\t\tverified['phone_number'] = attrs['phone_number'];\n\t\t\t\t} else {\n\t\t\t\t\tunverified['phone_number'] = attrs['phone_number'];\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn {\n\t\t\t\tverified,\n\t\t\t\tunverified,\n\t\t\t};\n\t\t});\n\t}\n\n\tprivate isErrorWithMessage(err: any): err is { message: string } {\n\t\treturn (\n\t\t\ttypeof err === 'object' &&\n\t\t\tObject.prototype.hasOwnProperty.call(err, 'message')\n\t\t);\n\t}\n\n\t// Session revoked by another app\n\tprivate isTokenRevokedError(\n\t\terr: any\n\t): err is { message: 'Access Token has been revoked' } {\n\t\treturn (\n\t\t\tthis.isErrorWithMessage(err) &&\n\t\t\terr.message === 'Access Token has been revoked'\n\t\t);\n\t}\n\n\tprivate isRefreshTokenRevokedError(\n\t\terr: any\n\t): err is { message: 'Refresh Token has been revoked' } {\n\t\treturn (\n\t\t\tthis.isErrorWithMessage(err) &&\n\t\t\terr.message === 'Refresh Token has been revoked'\n\t\t);\n\t}\n\n\tprivate isUserDisabledError(\n\t\terr: any\n\t): err is { message: 'User is disabled.' } {\n\t\treturn this.isErrorWithMessage(err) && err.message === 'User is disabled.';\n\t}\n\n\tprivate isUserDoesNotExistError(\n\t\terr: any\n\t): err is { message: 'User does not exist.' } {\n\t\treturn (\n\t\t\tthis.isErrorWithMessage(err) && err.message === 'User does not exist.'\n\t\t);\n\t}\n\n\tprivate isRefreshTokenExpiredError(\n\t\terr: any\n\t): err is { message: 'Refresh Token has expired' } {\n\t\treturn (\n\t\t\tthis.isErrorWithMessage(err) &&\n\t\t\terr.message === 'Refresh Token has expired'\n\t\t);\n\t}\n\n\tprivate isSignedInHostedUI() {\n\t\treturn (\n\t\t\tthis._oAuthHandler &&\n\t\t\tthis._storage.getItem('amplify-signin-with-hostedUI') === 'true'\n\t\t);\n\t}\n\n\tprivate isSessionInvalid(err: any) {\n\t\treturn (\n\t\t\tthis.isUserDisabledError(err) ||\n\t\t\tthis.isUserDoesNotExistError(err) ||\n\t\t\tthis.isTokenRevokedError(err) ||\n\t\t\tthis.isRefreshTokenRevokedError(err) ||\n\t\t\tthis.isRefreshTokenExpiredError(err)\n\t\t);\n\t}\n\n\tprivate async cleanUpInvalidSession(user: CognitoUser) {\n\t\tuser.signOut();\n\t\tthis.user = null;\n\t\ttry {\n\t\t\tawait this.cleanCachedItems(); // clean aws credentials\n\t\t} catch (e) {\n\t\t\tlogger.debug('failed to clear cached items');\n\t\t}\n\t\tif (this.isSignedInHostedUI()) {\n\t\t\treturn new Promise((res, rej) => {\n\t\t\t\tthis.oAuthSignOutRedirect(res, rej);\n\t\t\t});\n\t\t} else {\n\t\t\tdispatchAuthEvent('signOut', this.user, `A user has been signed out`);\n\t\t}\n\t}\n\n\t/**\n\t * Get current authenticated user\n\t * @return - A promise resolves to current authenticated CognitoUser if success\n\t */\n\tpublic currentUserPoolUser(\n\t\tparams?: CurrentUserOpts\n\t): Promise {\n\t\tif (!this.userPool) {\n\t\t\treturn this.rejectNoUserPool();\n\t\t}\n\n\t\treturn new Promise((res, rej) => {\n\t\t\tthis._storageSync\n\t\t\t\t.then(async () => {\n\t\t\t\t\tif (this.isOAuthInProgress()) {\n\t\t\t\t\t\tlogger.debug('OAuth signIn in progress, waiting for resolution...');\n\n\t\t\t\t\t\tawait new Promise(res => {\n\t\t\t\t\t\t\tconst timeoutId = setTimeout(() => {\n\t\t\t\t\t\t\t\tlogger.debug('OAuth signIn in progress timeout');\n\n\t\t\t\t\t\t\t\tHub.remove('auth', hostedUISignCallback);\n\n\t\t\t\t\t\t\t\tres();\n\t\t\t\t\t\t\t}, OAUTH_FLOW_MS_TIMEOUT);\n\n\t\t\t\t\t\t\tHub.listen('auth', hostedUISignCallback);\n\n\t\t\t\t\t\t\tfunction hostedUISignCallback({ payload }) {\n\t\t\t\t\t\t\t\tconst { event } = payload;\n\n\t\t\t\t\t\t\t\tif (\n\t\t\t\t\t\t\t\t\tevent === 'cognitoHostedUI' ||\n\t\t\t\t\t\t\t\t\tevent === 'cognitoHostedUI_failure'\n\t\t\t\t\t\t\t\t) {\n\t\t\t\t\t\t\t\t\tlogger.debug(`OAuth signIn resolved: ${event}`);\n\t\t\t\t\t\t\t\t\tclearTimeout(timeoutId);\n\n\t\t\t\t\t\t\t\t\tHub.remove('auth', hostedUISignCallback);\n\n\t\t\t\t\t\t\t\t\tres();\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t});\n\t\t\t\t\t}\n\n\t\t\t\t\tconst user = this.userPool.getCurrentUser();\n\n\t\t\t\t\tif (!user) {\n\t\t\t\t\t\tlogger.debug('Failed to get user from user pool');\n\t\t\t\t\t\trej('No current user');\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\n\t\t\t\t\t// refresh the session if the session expired.\n\t\t\t\t\ttry {\n\t\t\t\t\t\tconst session = await this._userSession(user);\n\n\t\t\t\t\t\t// get user data from Cognito\n\t\t\t\t\t\tconst bypassCache = params ? params.bypassCache : false;\n\n\t\t\t\t\t\tif (bypassCache) {\n\t\t\t\t\t\t\tawait this.Credentials.clear();\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tconst clientMetadata = this._config.clientMetadata;\n\n\t\t\t\t\t\t// validate the token's scope first before calling this function\n\t\t\t\t\t\tconst { scope = '' } = session.getAccessToken().decodePayload();\n\t\t\t\t\t\tif (scope.split(' ').includes(USER_ADMIN_SCOPE)) {\n\t\t\t\t\t\t\tuser.getUserData(\n\t\t\t\t\t\t\t\tasync (err, data) => {\n\t\t\t\t\t\t\t\t\tif (err) {\n\t\t\t\t\t\t\t\t\t\tlogger.debug('getting user data failed', err);\n\t\t\t\t\t\t\t\t\t\tif (this.isSessionInvalid(err)) {\n\t\t\t\t\t\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\t\t\t\t\t\tawait this.cleanUpInvalidSession(user);\n\t\t\t\t\t\t\t\t\t\t\t} catch (cleanUpError) {\n\t\t\t\t\t\t\t\t\t\t\t\trej(\n\t\t\t\t\t\t\t\t\t\t\t\t\tnew Error(\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t`Session is invalid due to: ${err.message} and failed to clean up invalid session: ${cleanUpError.message}`\n\t\t\t\t\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\trej(err);\n\t\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\t\tres(user);\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tconst preferredMFA = data.PreferredMfaSetting || 'NOMFA';\n\t\t\t\t\t\t\t\t\tconst attributeList = [];\n\n\t\t\t\t\t\t\t\t\tfor (let i = 0; i < data.UserAttributes.length; i++) {\n\t\t\t\t\t\t\t\t\t\tconst attribute = {\n\t\t\t\t\t\t\t\t\t\t\tName: data.UserAttributes[i].Name,\n\t\t\t\t\t\t\t\t\t\t\tValue: data.UserAttributes[i].Value,\n\t\t\t\t\t\t\t\t\t\t};\n\t\t\t\t\t\t\t\t\t\tconst userAttribute = new CognitoUserAttribute(attribute);\n\t\t\t\t\t\t\t\t\t\tattributeList.push(userAttribute);\n\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\tconst attributes = this.attributesToObject(attributeList);\n\t\t\t\t\t\t\t\t\tObject.assign(user, { attributes, preferredMFA });\n\t\t\t\t\t\t\t\t\treturn res(user);\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t{ bypassCache, clientMetadata }\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tlogger.debug(\n\t\t\t\t\t\t\t\t`Unable to get the user data because the ${USER_ADMIN_SCOPE} ` +\n\t\t\t\t\t\t\t\t\t`is not in the scopes of the access token`\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\treturn res(user);\n\t\t\t\t\t\t}\n\t\t\t\t\t} catch (err) {\n\t\t\t\t\t\trej(err);\n\t\t\t\t\t}\n\t\t\t\t})\n\t\t\t\t.catch(e => {\n\t\t\t\t\tlogger.debug('Failed to sync cache info into memory', e);\n\t\t\t\t\treturn rej(e);\n\t\t\t\t});\n\t\t});\n\t}\n\n\tprivate isOAuthInProgress(): boolean {\n\t\treturn this.oAuthFlowInProgress;\n\t}\n\n\t/**\n\t * Get current authenticated user\n\t * @param {CurrentUserOpts} - options for getting the current user\n\t * @return - A promise resolves to current authenticated CognitoUser if success\n\t */\n\tpublic async currentAuthenticatedUser(\n\t\tparams?: CurrentUserOpts\n\t): Promise {\n\t\tlogger.debug('getting current authenticated user');\n\t\tlet federatedUser = null;\n\t\ttry {\n\t\t\tawait this._storageSync;\n\t\t} catch (e) {\n\t\t\tlogger.debug('Failed to sync cache info into memory', e);\n\t\t\tthrow e;\n\t\t}\n\n\t\ttry {\n\t\t\tconst federatedInfo = JSON.parse(\n\t\t\t\tthis._storage.getItem('aws-amplify-federatedInfo')\n\t\t\t);\n\t\t\tif (federatedInfo) {\n\t\t\t\tfederatedUser = {\n\t\t\t\t\t...federatedInfo.user,\n\t\t\t\t\ttoken: federatedInfo.token,\n\t\t\t\t};\n\t\t\t}\n\t\t} catch (e) {\n\t\t\tlogger.debug('cannot load federated user from auth storage');\n\t\t}\n\n\t\tif (federatedUser) {\n\t\t\tthis.user = federatedUser;\n\t\t\tlogger.debug('get current authenticated federated user', this.user);\n\t\t\treturn this.user;\n\t\t} else {\n\t\t\tlogger.debug('get current authenticated userpool user');\n\t\t\tlet user = null;\n\t\t\ttry {\n\t\t\t\tuser = await this.currentUserPoolUser(params);\n\t\t\t} catch (e) {\n\t\t\t\tif (e === 'No userPool') {\n\t\t\t\t\tlogger.error(\n\t\t\t\t\t\t'Cannot get the current user because the user pool is missing. ' +\n\t\t\t\t\t\t\t'Please make sure the Auth module is configured with a valid Cognito User Pool ID'\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t\tlogger.debug('The user is not authenticated by the error', e);\n\t\t\t\treturn Promise.reject('The user is not authenticated');\n\t\t\t}\n\t\t\tthis.user = user;\n\t\t\treturn this.user;\n\t\t}\n\t}\n\n\t/**\n\t * Get current user's session\n\t * @return - A promise resolves to session object if success\n\t */\n\tpublic currentSession(): Promise {\n\t\tconst that = this;\n\t\tlogger.debug('Getting current session');\n\t\t// Purposely not calling the reject method here because we don't need a console error\n\t\tif (!this.userPool) {\n\t\t\treturn Promise.reject(new Error('No User Pool in the configuration.'));\n\t\t}\n\n\t\treturn new Promise((res, rej) => {\n\t\t\tthat\n\t\t\t\t.currentUserPoolUser()\n\t\t\t\t.then(user => {\n\t\t\t\t\tthat\n\t\t\t\t\t\t.userSession(user)\n\t\t\t\t\t\t.then(session => {\n\t\t\t\t\t\t\tres(session);\n\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t})\n\t\t\t\t\t\t.catch(e => {\n\t\t\t\t\t\t\tlogger.debug('Failed to get the current session', e);\n\t\t\t\t\t\t\trej(e);\n\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t});\n\t\t\t\t})\n\t\t\t\t.catch(e => {\n\t\t\t\t\tlogger.debug('Failed to get the current user', e);\n\t\t\t\t\trej(e);\n\t\t\t\t\treturn;\n\t\t\t\t});\n\t\t});\n\t}\n\n\tprivate async _userSession(user?: CognitoUser): Promise {\n\t\tif (!user) {\n\t\t\tlogger.debug('the user is null');\n\t\t\treturn this.rejectAuthError(AuthErrorTypes.NoUserSession);\n\t\t}\n\t\tconst clientMetadata = this._config.clientMetadata;\n\t\t// Debouncing the concurrent userSession calls by caching the promise.\n\t\t// This solution assumes users will always call this function with the same CognitoUser instance.\n\t\tif (this.inflightSessionPromiseCounter === 0) {\n\t\t\tthis.inflightSessionPromise = new Promise(\n\t\t\t\t(res, rej) => {\n\t\t\t\t\tuser.getSession(\n\t\t\t\t\t\tasync (err, session) => {\n\t\t\t\t\t\t\tif (err) {\n\t\t\t\t\t\t\t\tlogger.debug('Failed to get the session from user', user);\n\t\t\t\t\t\t\t\tif (this.isSessionInvalid(err)) {\n\t\t\t\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\t\t\t\tawait this.cleanUpInvalidSession(user);\n\t\t\t\t\t\t\t\t\t} catch (cleanUpError) {\n\t\t\t\t\t\t\t\t\t\trej(\n\t\t\t\t\t\t\t\t\t\t\tnew Error(\n\t\t\t\t\t\t\t\t\t\t\t\t`Session is invalid due to: ${err.message} and failed to clean up invalid session: ${cleanUpError.message}`\n\t\t\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\trej(err);\n\t\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\tlogger.debug('Succeed to get the user session', session);\n\t\t\t\t\t\t\t\tres(session);\n\t\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t},\n\t\t\t\t\t\t{ clientMetadata }\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t);\n\t\t}\n\t\tthis.inflightSessionPromiseCounter++;\n\n\t\ttry {\n\t\t\tconst userSession = await this.inflightSessionPromise;\n\t\t\t// Set private member. Avoid user.setSignInUserSession() to prevent excessive localstorage refresh.\n\t\t\t// @ts-ignore\n\t\t\tuser.signInUserSession = userSession;\n\t\t\treturn userSession!;\n\t\t} finally {\n\t\t\tthis.inflightSessionPromiseCounter--;\n\t\t}\n\t}\n\n\t/**\n\t * Get the corresponding user session\n\t * @param {Object} user - The CognitoUser object\n\t * @return - A promise resolves to the session\n\t */\n\tpublic userSession(user): Promise {\n\t\treturn this._userSession(user);\n\t}\n\n\t/**\n\t * Get authenticated credentials of current user.\n\t * @return - A promise resolves to be current user's credentials\n\t */\n\tpublic async currentUserCredentials(): Promise {\n\t\tlogger.debug('Getting current user credentials');\n\n\t\ttry {\n\t\t\tawait this._storageSync;\n\t\t} catch (e) {\n\t\t\tlogger.debug('Failed to sync cache info into memory', e);\n\t\t\tthrow e;\n\t\t}\n\n\t\t// first to check whether there is federation info in the auth storage\n\t\tlet federatedInfo = null;\n\t\ttry {\n\t\t\tfederatedInfo = JSON.parse(\n\t\t\t\tthis._storage.getItem('aws-amplify-federatedInfo')\n\t\t\t);\n\t\t} catch (e) {\n\t\t\tlogger.debug('failed to get or parse item aws-amplify-federatedInfo', e);\n\t\t}\n\n\t\tif (federatedInfo) {\n\t\t\t// refresh the jwt token here if necessary\n\t\t\treturn this.Credentials.refreshFederatedToken(federatedInfo);\n\t\t} else {\n\t\t\treturn this.currentSession()\n\t\t\t\t.then(session => {\n\t\t\t\t\tlogger.debug('getting session success', session);\n\t\t\t\t\treturn this.Credentials.set(session, 'session');\n\t\t\t\t})\n\t\t\t\t.catch(() => {\n\t\t\t\t\tlogger.debug('getting guest credentials');\n\t\t\t\t\treturn this.Credentials.set(null, 'guest');\n\t\t\t\t});\n\t\t}\n\t}\n\n\tpublic currentCredentials(): Promise {\n\t\tlogger.debug('getting current credentials');\n\t\treturn this.Credentials.get();\n\t}\n\n\t/**\n\t * Initiate an attribute confirmation request\n\t * @param {Object} user - The CognitoUser\n\t * @param {Object} attr - The attributes to be verified\n\t * @return - A promise resolves to callback data if success\n\t */\n\tpublic verifyUserAttribute(\n\t\tuser: CognitoUser | any,\n\t\tattr: string,\n\t\tclientMetadata: ClientMetaData = this._config.clientMetadata\n\t): Promise {\n\t\treturn new Promise((resolve, reject) => {\n\t\t\tuser.getAttributeVerificationCode(\n\t\t\t\tattr,\n\t\t\t\t{\n\t\t\t\t\tonSuccess(success) {\n\t\t\t\t\t\treturn resolve(success);\n\t\t\t\t\t},\n\t\t\t\t\tonFailure(err) {\n\t\t\t\t\t\treturn reject(err);\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\tclientMetadata\n\t\t\t);\n\t\t});\n\t}\n\n\t/**\n\t * Confirm an attribute using a confirmation code\n\t * @param {Object} user - The CognitoUser\n\t * @param {Object} attr - The attribute to be verified\n\t * @param {String} code - The confirmation code\n\t * @return - A promise resolves to callback data if success\n\t */\n\tpublic verifyUserAttributeSubmit(\n\t\tuser: CognitoUser | any,\n\t\tattr: string,\n\t\tcode: string\n\t): Promise {\n\t\tif (!code) {\n\t\t\treturn this.rejectAuthError(AuthErrorTypes.EmptyCode);\n\t\t}\n\n\t\treturn new Promise((resolve, reject) => {\n\t\t\tuser.verifyAttribute(attr, code, {\n\t\t\t\tonSuccess(data) {\n\t\t\t\t\tresolve(data);\n\t\t\t\t\treturn;\n\t\t\t\t},\n\t\t\t\tonFailure(err) {\n\t\t\t\t\treject(err);\n\t\t\t\t\treturn;\n\t\t\t\t},\n\t\t\t});\n\t\t});\n\t}\n\n\tpublic verifyCurrentUserAttribute(attr: string): Promise {\n\t\tconst that = this;\n\t\treturn that\n\t\t\t.currentUserPoolUser()\n\t\t\t.then(user => that.verifyUserAttribute(user, attr));\n\t}\n\n\t/**\n\t * Confirm current user's attribute using a confirmation code\n\t * @param {Object} attr - The attribute to be verified\n\t * @param {String} code - The confirmation code\n\t * @return - A promise resolves to callback data if success\n\t */\n\tverifyCurrentUserAttributeSubmit(\n\t\tattr: string,\n\t\tcode: string\n\t): Promise {\n\t\tconst that = this;\n\t\treturn that\n\t\t\t.currentUserPoolUser()\n\t\t\t.then(user => that.verifyUserAttributeSubmit(user, attr, code));\n\t}\n\n\tprivate async cognitoIdentitySignOut(\n\t\topts: SignOutOpts,\n\t\tuser: CognitoUser | any\n\t) {\n\t\ttry {\n\t\t\tawait this._storageSync;\n\t\t} catch (e) {\n\t\t\tlogger.debug('Failed to sync cache info into memory', e);\n\t\t\tthrow e;\n\t\t}\n\n\t\tconst isSignedInHostedUI =\n\t\t\tthis._oAuthHandler &&\n\t\t\tthis._storage.getItem('amplify-signin-with-hostedUI') === 'true';\n\n\t\treturn new Promise((res, rej) => {\n\t\t\tif (opts && opts.global) {\n\t\t\t\tlogger.debug('user global sign out', user);\n\t\t\t\t// in order to use global signout\n\t\t\t\t// we must validate the user as an authenticated user by using getSession\n\t\t\t\tconst clientMetadata = this._config.clientMetadata; // TODO: verify behavior if this is override during signIn\n\n\t\t\t\tuser.getSession(\n\t\t\t\t\tasync (err, result) => {\n\t\t\t\t\t\tif (err) {\n\t\t\t\t\t\t\tlogger.debug('failed to get the user session', err);\n\t\t\t\t\t\t\tif (this.isSessionInvalid(err)) {\n\t\t\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\t\t\tawait this.cleanUpInvalidSession(user);\n\t\t\t\t\t\t\t\t} catch (cleanUpError) {\n\t\t\t\t\t\t\t\t\trej(\n\t\t\t\t\t\t\t\t\t\tnew Error(\n\t\t\t\t\t\t\t\t\t\t\t`Session is invalid due to: ${err.message} and failed to clean up invalid session: ${cleanUpError.message}`\n\t\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\treturn rej(err);\n\t\t\t\t\t\t}\n\t\t\t\t\t\tuser.globalSignOut({\n\t\t\t\t\t\t\tonSuccess: data => {\n\t\t\t\t\t\t\t\tlogger.debug('global sign out success');\n\t\t\t\t\t\t\t\tif (isSignedInHostedUI) {\n\t\t\t\t\t\t\t\t\tthis.oAuthSignOutRedirect(res, rej);\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\treturn res();\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\tonFailure: err => {\n\t\t\t\t\t\t\t\tlogger.debug('global sign out failed', err);\n\t\t\t\t\t\t\t\treturn rej(err);\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t});\n\t\t\t\t\t},\n\t\t\t\t\t{ clientMetadata }\n\t\t\t\t);\n\t\t\t} else {\n\t\t\t\tlogger.debug('user sign out', user);\n\t\t\t\tuser.signOut(() => {\n\t\t\t\t\tif (isSignedInHostedUI) {\n\t\t\t\t\t\tthis.oAuthSignOutRedirect(res, rej);\n\t\t\t\t\t} else {\n\t\t\t\t\t\treturn res();\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t}\n\t\t});\n\t}\n\n\tprivate oAuthSignOutRedirect(\n\t\tresolve: () => void,\n\t\treject: (reason?: any) => void\n\t) {\n\t\tconst { isBrowser } = browserOrNode();\n\n\t\tif (isBrowser) {\n\t\t\tthis.oAuthSignOutRedirectOrReject(reject);\n\t\t} else {\n\t\t\tthis.oAuthSignOutAndResolve(resolve);\n\t\t}\n\t}\n\n\tprivate oAuthSignOutAndResolve(resolve: () => void) {\n\t\tthis._oAuthHandler.signOut();\n\t\tresolve();\n\t}\n\n\tprivate oAuthSignOutRedirectOrReject(reject: (reason?: any) => void) {\n\t\tthis._oAuthHandler.signOut(); // this method redirects url\n\n\t\t// App should be redirected to another url otherwise it will reject\n\t\tsetTimeout(() => reject(Error('Signout timeout fail')), 3000);\n\t}\n\n\t/**\n\t * Sign out method\n\t * @\n\t * @return - A promise resolved if success\n\t */\n\tpublic async signOut(opts?: SignOutOpts): Promise {\n\t\ttry {\n\t\t\tawait this.cleanCachedItems();\n\t\t} catch (e) {\n\t\t\tlogger.debug('failed to clear cached items');\n\t\t}\n\n\t\tif (this.userPool) {\n\t\t\tconst user = this.userPool.getCurrentUser();\n\t\t\tif (user) {\n\t\t\t\tawait this.cognitoIdentitySignOut(opts, user);\n\t\t\t} else {\n\t\t\t\tlogger.debug('no current Cognito user');\n\t\t\t}\n\t\t} else {\n\t\t\tlogger.debug('no Cognito User pool');\n\t\t}\n\n\t\t/**\n\t\t * Note for future refactor - no reliable way to get username with\n\t\t * Cognito User Pools vs Identity when federating with Social Providers\n\t\t * This is why we need a well structured session object that can be inspected\n\t\t * and information passed back in the message below for Hub dispatch\n\t\t */\n\t\tdispatchAuthEvent('signOut', this.user, `A user has been signed out`);\n\t\tthis.user = null;\n\t}\n\n\tprivate async cleanCachedItems() {\n\t\t// clear cognito cached item\n\t\tawait this.Credentials.clear();\n\t}\n\n\t/**\n\t * Change a password for an authenticated user\n\t * @param {Object} user - The CognitoUser object\n\t * @param {String} oldPassword - the current password\n\t * @param {String} newPassword - the requested new password\n\t * @return - A promise resolves if success\n\t */\n\tpublic changePassword(\n\t\tuser: CognitoUser | any,\n\t\toldPassword: string,\n\t\tnewPassword: string,\n\t\tclientMetadata: ClientMetaData = this._config.clientMetadata\n\t): Promise<'SUCCESS'> {\n\t\treturn new Promise((resolve, reject) => {\n\t\t\tthis.userSession(user).then(session => {\n\t\t\t\tuser.changePassword(\n\t\t\t\t\toldPassword,\n\t\t\t\t\tnewPassword,\n\t\t\t\t\t(err, data) => {\n\t\t\t\t\t\tif (err) {\n\t\t\t\t\t\t\tlogger.debug('change password failure', err);\n\t\t\t\t\t\t\treturn reject(err);\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\treturn resolve(data);\n\t\t\t\t\t\t}\n\t\t\t\t\t},\n\t\t\t\t\tclientMetadata\n\t\t\t\t);\n\t\t\t});\n\t\t});\n\t}\n\n\t/**\n\t * Initiate a forgot password request\n\t * @param {String} username - the username to change password\n\t * @return - A promise resolves if success\n\t */\n\tpublic forgotPassword(\n\t\tusername: string,\n\t\tclientMetadata: ClientMetaData = this._config.clientMetadata\n\t): Promise {\n\t\tif (!this.userPool) {\n\t\t\treturn this.rejectNoUserPool();\n\t\t}\n\t\tif (!username) {\n\t\t\treturn this.rejectAuthError(AuthErrorTypes.EmptyUsername);\n\t\t}\n\n\t\tconst user = this.createCognitoUser(username);\n\t\treturn new Promise((resolve, reject) => {\n\t\t\tuser.forgotPassword(\n\t\t\t\t{\n\t\t\t\t\tonSuccess: () => {\n\t\t\t\t\t\tresolve();\n\t\t\t\t\t\treturn;\n\t\t\t\t\t},\n\t\t\t\t\tonFailure: err => {\n\t\t\t\t\t\tlogger.debug('forgot password failure', err);\n\t\t\t\t\t\tdispatchAuthEvent(\n\t\t\t\t\t\t\t'forgotPassword_failure',\n\t\t\t\t\t\t\terr,\n\t\t\t\t\t\t\t`${username} forgotPassword failed`\n\t\t\t\t\t\t);\n\t\t\t\t\t\treject(err);\n\t\t\t\t\t\treturn;\n\t\t\t\t\t},\n\t\t\t\t\tinputVerificationCode: data => {\n\t\t\t\t\t\tdispatchAuthEvent(\n\t\t\t\t\t\t\t'forgotPassword',\n\t\t\t\t\t\t\tuser,\n\t\t\t\t\t\t\t`${username} has initiated forgot password flow`\n\t\t\t\t\t\t);\n\t\t\t\t\t\tresolve(data);\n\t\t\t\t\t\treturn;\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\tclientMetadata\n\t\t\t);\n\t\t});\n\t}\n\n\t/**\n\t * Confirm a new password using a confirmation Code\n\t * @param {String} username - The username\n\t * @param {String} code - The confirmation code\n\t * @param {String} password - The new password\n\t * @return - A promise that resolves if success\n\t */\n\tpublic forgotPasswordSubmit(\n\t\tusername: string,\n\t\tcode: string,\n\t\tpassword: string,\n\t\tclientMetadata: ClientMetaData = this._config.clientMetadata\n\t): Promise {\n\t\tif (!this.userPool) {\n\t\t\treturn this.rejectNoUserPool();\n\t\t}\n\t\tif (!username) {\n\t\t\treturn this.rejectAuthError(AuthErrorTypes.EmptyUsername);\n\t\t}\n\t\tif (!code) {\n\t\t\treturn this.rejectAuthError(AuthErrorTypes.EmptyCode);\n\t\t}\n\t\tif (!password) {\n\t\t\treturn this.rejectAuthError(AuthErrorTypes.EmptyPassword);\n\t\t}\n\n\t\tconst user = this.createCognitoUser(username);\n\t\treturn new Promise((resolve, reject) => {\n\t\t\tuser.confirmPassword(\n\t\t\t\tcode,\n\t\t\t\tpassword,\n\t\t\t\t{\n\t\t\t\t\tonSuccess: success => {\n\t\t\t\t\t\tdispatchAuthEvent(\n\t\t\t\t\t\t\t'forgotPasswordSubmit',\n\t\t\t\t\t\t\tuser,\n\t\t\t\t\t\t\t`${username} forgotPasswordSubmit successful`\n\t\t\t\t\t\t);\n\t\t\t\t\t\tresolve(success);\n\t\t\t\t\t\treturn;\n\t\t\t\t\t},\n\t\t\t\t\tonFailure: err => {\n\t\t\t\t\t\tdispatchAuthEvent(\n\t\t\t\t\t\t\t'forgotPasswordSubmit_failure',\n\t\t\t\t\t\t\terr,\n\t\t\t\t\t\t\t`${username} forgotPasswordSubmit failed`\n\t\t\t\t\t\t);\n\t\t\t\t\t\treject(err);\n\t\t\t\t\t\treturn;\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\tclientMetadata\n\t\t\t);\n\t\t});\n\t}\n\n\t/**\n\t * Get user information\n\t * @async\n\t * @return {Object }- current User's information\n\t */\n\tpublic async currentUserInfo() {\n\t\tconst source = this.Credentials.getCredSource();\n\n\t\tif (!source || source === 'aws' || source === 'userPool') {\n\t\t\tconst user = await this.currentUserPoolUser().catch(err =>\n\t\t\t\tlogger.error(err)\n\t\t\t);\n\t\t\tif (!user) {\n\t\t\t\treturn null;\n\t\t\t}\n\n\t\t\ttry {\n\t\t\t\tconst attributes = await this.userAttributes(user);\n\t\t\t\tconst userAttrs: object = this.attributesToObject(attributes);\n\t\t\t\tlet credentials = null;\n\t\t\t\ttry {\n\t\t\t\t\tcredentials = await this.currentCredentials();\n\t\t\t\t} catch (e) {\n\t\t\t\t\tlogger.debug(\n\t\t\t\t\t\t'Failed to retrieve credentials while getting current user info',\n\t\t\t\t\t\te\n\t\t\t\t\t);\n\t\t\t\t}\n\n\t\t\t\tconst info = {\n\t\t\t\t\tid: credentials ? credentials.identityId : undefined,\n\t\t\t\t\tusername: user.getUsername(),\n\t\t\t\t\tattributes: userAttrs,\n\t\t\t\t};\n\t\t\t\treturn info;\n\t\t\t} catch (err) {\n\t\t\t\tlogger.error('currentUserInfo error', err);\n\t\t\t\treturn {};\n\t\t\t}\n\t\t}\n\n\t\tif (source === 'federated') {\n\t\t\tconst user = this.user;\n\t\t\treturn user ? user : {};\n\t\t}\n\t}\n\n\tpublic async federatedSignIn(\n\t\toptions?: FederatedSignInOptions\n\t): Promise;\n\tpublic async federatedSignIn(\n\t\tprovider: LegacyProvider,\n\t\tresponse: FederatedResponse,\n\t\tuser: FederatedUser\n\t): Promise;\n\tpublic async federatedSignIn(\n\t\toptions?: FederatedSignInOptionsCustom\n\t): Promise;\n\tpublic async federatedSignIn(\n\t\tproviderOrOptions:\n\t\t\t| LegacyProvider\n\t\t\t| FederatedSignInOptions\n\t\t\t| FederatedSignInOptionsCustom,\n\t\tresponse?: FederatedResponse,\n\t\tuser?: FederatedUser\n\t): Promise {\n\t\tif (!this._config.identityPoolId && !this._config.userPoolId) {\n\t\t\tthrow new Error(\n\t\t\t\t`Federation requires either a User Pool or Identity Pool in config`\n\t\t\t);\n\t\t}\n\n\t\t// Ensure backwards compatability\n\t\tif (typeof providerOrOptions === 'undefined') {\n\t\t\tif (this._config.identityPoolId && !this._config.userPoolId) {\n\t\t\t\tthrow new Error(\n\t\t\t\t\t`Federation with Identity Pools requires tokens passed as arguments`\n\t\t\t\t);\n\t\t\t}\n\t\t}\n\n\t\tif (\n\t\t\tisFederatedSignInOptions(providerOrOptions) ||\n\t\t\tisFederatedSignInOptionsCustom(providerOrOptions) ||\n\t\t\thasCustomState(providerOrOptions) ||\n\t\t\ttypeof providerOrOptions === 'undefined'\n\t\t) {\n\t\t\tconst options = providerOrOptions || {\n\t\t\t\tprovider: CognitoHostedUIIdentityProvider.Cognito,\n\t\t\t};\n\t\t\tconst provider = isFederatedSignInOptions(options)\n\t\t\t\t? options.provider\n\t\t\t\t: (options as FederatedSignInOptionsCustom).customProvider;\n\n\t\t\tconst customState = isFederatedSignInOptions(options)\n\t\t\t\t? options.customState\n\t\t\t\t: (options as FederatedSignInOptionsCustom).customState;\n\n\t\t\tif (this._config.userPoolId) {\n\t\t\t\tconst client_id = isCognitoHostedOpts(this._config.oauth)\n\t\t\t\t\t? this._config.userPoolWebClientId\n\t\t\t\t\t: this._config.oauth.clientID;\n\t\t\t\t/*Note: Invenstigate automatically adding trailing slash */\n\t\t\t\tconst redirect_uri = isCognitoHostedOpts(this._config.oauth)\n\t\t\t\t\t? this._config.oauth.redirectSignIn\n\t\t\t\t\t: this._config.oauth.redirectUri;\n\n\t\t\t\tthis._oAuthHandler.oauthSignIn(\n\t\t\t\t\tthis._config.oauth.responseType,\n\t\t\t\t\tthis._config.oauth.domain,\n\t\t\t\t\tredirect_uri,\n\t\t\t\t\tclient_id,\n\t\t\t\t\tprovider,\n\t\t\t\t\tcustomState\n\t\t\t\t);\n\t\t\t}\n\t\t} else {\n\t\t\tconst provider = providerOrOptions;\n\t\t\t// To check if the user is already logged in\n\t\t\ttry {\n\t\t\t\tconst loggedInUser = JSON.stringify(\n\t\t\t\t\tJSON.parse(this._storage.getItem('aws-amplify-federatedInfo')).user\n\t\t\t\t);\n\t\t\t\tif (loggedInUser) {\n\t\t\t\t\tlogger.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\t\t\t\t}\n\t\t\t} catch (e) {}\n\n\t\t\tconst { token, identity_id, expires_at } = response;\n\t\t\t// Because this.Credentials.set would update the user info with identity id\n\t\t\t// So we need to retrieve the user again.\n\t\t\tconst credentials = await this.Credentials.set(\n\t\t\t\t{ provider, token, identity_id, user, expires_at },\n\t\t\t\t'federation'\n\t\t\t);\n\t\t\tconst currentUser = await this.currentAuthenticatedUser();\n\t\t\tdispatchAuthEvent(\n\t\t\t\t'signIn',\n\t\t\t\tcurrentUser,\n\t\t\t\t`A user ${currentUser.username} has been signed in`\n\t\t\t);\n\t\t\tlogger.debug('federated sign in credentials', credentials);\n\t\t\treturn credentials;\n\t\t}\n\t}\n\n\t/**\n\t * Used to complete the OAuth flow with or without the Cognito Hosted UI\n\t * @param {String} URL - optional parameter for customers to pass in the response URL\n\t */\n\tprivate async _handleAuthResponse(URL?: string) {\n\t\tif (this.oAuthFlowInProgress) {\n\t\t\tlogger.debug(`Skipping URL ${URL} current flow in progress`);\n\t\t\treturn;\n\t\t}\n\n\t\ttry {\n\t\t\tthis.oAuthFlowInProgress = true;\n\t\t\tif (!this._config.userPoolId) {\n\t\t\t\tthrow new Error(\n\t\t\t\t\t`OAuth responses require a User Pool defined in config`\n\t\t\t\t);\n\t\t\t}\n\n\t\t\tdispatchAuthEvent(\n\t\t\t\t'parsingCallbackUrl',\n\t\t\t\t{ url: URL },\n\t\t\t\t`The callback url is being parsed`\n\t\t\t);\n\n\t\t\tconst currentUrl =\n\t\t\t\tURL || (browserOrNode().isBrowser ? window.location.href : '');\n\n\t\t\tconst hasCodeOrError = !!(parse(currentUrl).query || '')\n\t\t\t\t.split('&')\n\t\t\t\t.map(entry => entry.split('='))\n\t\t\t\t.find(([k]) => k === 'code' || k === 'error');\n\n\t\t\tconst hasTokenOrError = !!(parse(currentUrl).hash || '#')\n\t\t\t\t.substr(1)\n\t\t\t\t.split('&')\n\t\t\t\t.map(entry => entry.split('='))\n\t\t\t\t.find(([k]) => k === 'access_token' || k === 'error');\n\n\t\t\tif (hasCodeOrError || hasTokenOrError) {\n\t\t\t\tthis._storage.setItem('amplify-redirected-from-hosted-ui', 'true');\n\t\t\t\ttry {\n\t\t\t\t\tconst { accessToken, idToken, refreshToken, state } =\n\t\t\t\t\t\tawait this._oAuthHandler.handleAuthResponse(currentUrl);\n\t\t\t\t\tconst session = new CognitoUserSession({\n\t\t\t\t\t\tIdToken: new CognitoIdToken({ IdToken: idToken }),\n\t\t\t\t\t\tRefreshToken: new CognitoRefreshToken({\n\t\t\t\t\t\t\tRefreshToken: refreshToken,\n\t\t\t\t\t\t}),\n\t\t\t\t\t\tAccessToken: new CognitoAccessToken({\n\t\t\t\t\t\t\tAccessToken: accessToken,\n\t\t\t\t\t\t}),\n\t\t\t\t\t});\n\n\t\t\t\t\tlet credentials;\n\t\t\t\t\t// Get AWS Credentials & store if Identity Pool is defined\n\t\t\t\t\tif (this._config.identityPoolId) {\n\t\t\t\t\t\tcredentials = await this.Credentials.set(session, 'session');\n\t\t\t\t\t\tlogger.debug('AWS credentials', credentials);\n\t\t\t\t\t}\n\n\t\t\t\t\t/*\n\t\t\t\tPrior to the request we do sign the custom state along with the state we set. This check will verify\n\t\t\t\tif there is a dash indicated when setting custom state from the request. If a dash is contained\n\t\t\t\tthen there is custom state present on the state string.\n\t\t\t\t*/\n\t\t\t\t\tconst isCustomStateIncluded = /-/.test(state);\n\n\t\t\t\t\t/*\n\t\t\t\tThe following is to create a user for the Cognito Identity SDK to store the tokens\n\t\t\t\tWhen we remove this SDK later that logic will have to be centralized in our new version\n\t\t\t\t*/\n\t\t\t\t\t//#region\n\t\t\t\t\tconst currentUser = this.createCognitoUser(\n\t\t\t\t\t\tsession.getIdToken().decodePayload()['cognito:username']\n\t\t\t\t\t);\n\n\t\t\t\t\t// This calls cacheTokens() in Cognito SDK\n\t\t\t\t\tcurrentUser.setSignInUserSession(session);\n\n\t\t\t\t\tif (window && typeof window.history !== 'undefined') {\n\t\t\t\t\t\twindow.history.replaceState(\n\t\t\t\t\t\t\t{},\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t(this._config.oauth as AwsCognitoOAuthOpts).redirectSignIn\n\t\t\t\t\t\t);\n\t\t\t\t\t}\n\n\t\t\t\t\tdispatchAuthEvent(\n\t\t\t\t\t\t'signIn',\n\t\t\t\t\t\tcurrentUser,\n\t\t\t\t\t\t`A user ${currentUser.getUsername()} has been signed in`\n\t\t\t\t\t);\n\t\t\t\t\tdispatchAuthEvent(\n\t\t\t\t\t\t'cognitoHostedUI',\n\t\t\t\t\t\tcurrentUser,\n\t\t\t\t\t\t`A user ${currentUser.getUsername()} has been signed in via Cognito Hosted UI`\n\t\t\t\t\t);\n\n\t\t\t\t\tif (isCustomStateIncluded) {\n\t\t\t\t\t\tconst customState = state.split('-').splice(1).join('-');\n\n\t\t\t\t\t\tdispatchAuthEvent(\n\t\t\t\t\t\t\t'customOAuthState',\n\t\t\t\t\t\t\turlSafeDecode(customState),\n\t\t\t\t\t\t\t`State for user ${currentUser.getUsername()}`\n\t\t\t\t\t\t);\n\t\t\t\t\t}\n\t\t\t\t\t//#endregion\n\n\t\t\t\t\treturn credentials;\n\t\t\t\t} catch (err) {\n\t\t\t\t\tlogger.debug('Error in cognito hosted auth response', err);\n\n\t\t\t\t\t// Just like a successful handling of `?code`, replace the window history to \"dispose\" of the `code`.\n\t\t\t\t\t// Otherwise, reloading the page will throw errors as the `code` has already been spent.\n\t\t\t\t\tif (window && typeof window.history !== 'undefined') {\n\t\t\t\t\t\twindow.history.replaceState(\n\t\t\t\t\t\t\t{},\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t(this._config.oauth as AwsCognitoOAuthOpts).redirectSignIn\n\t\t\t\t\t\t);\n\t\t\t\t\t}\n\n\t\t\t\t\tdispatchAuthEvent(\n\t\t\t\t\t\t'signIn_failure',\n\t\t\t\t\t\terr,\n\t\t\t\t\t\t`The OAuth response flow failed`\n\t\t\t\t\t);\n\t\t\t\t\tdispatchAuthEvent(\n\t\t\t\t\t\t'cognitoHostedUI_failure',\n\t\t\t\t\t\terr,\n\t\t\t\t\t\t`A failure occurred when returning to the Cognito Hosted UI`\n\t\t\t\t\t);\n\t\t\t\t\tdispatchAuthEvent(\n\t\t\t\t\t\t'customState_failure',\n\t\t\t\t\t\terr,\n\t\t\t\t\t\t`A failure occurred when returning state`\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t}\n\t\t} finally {\n\t\t\tthis.oAuthFlowInProgress = false;\n\t\t}\n\t}\n\n\t/**\n\t * Compact version of credentials\n\t * @param {Object} credentials\n\t * @return {Object} - Credentials\n\t */\n\tpublic essentialCredentials(credentials): ICredentials {\n\t\treturn {\n\t\t\taccessKeyId: credentials.accessKeyId,\n\t\t\tsessionToken: credentials.sessionToken,\n\t\t\tsecretAccessKey: credentials.secretAccessKey,\n\t\t\tidentityId: credentials.identityId,\n\t\t\tauthenticated: credentials.authenticated,\n\t\t};\n\t}\n\n\tprivate attributesToObject(attributes) {\n\t\tconst obj = {};\n\t\tif (attributes) {\n\t\t\tattributes.map(attribute => {\n\t\t\t\tif (\n\t\t\t\t\tattribute.Name === 'email_verified' ||\n\t\t\t\t\tattribute.Name === 'phone_number_verified'\n\t\t\t\t) {\n\t\t\t\t\tobj[attribute.Name] =\n\t\t\t\t\t\tthis.isTruthyString(attribute.Value) || attribute.Value === true;\n\t\t\t\t} else {\n\t\t\t\t\tobj[attribute.Name] = attribute.Value;\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\t\treturn obj;\n\t}\n\n\tprivate isTruthyString(value: any): boolean {\n\t\treturn (\n\t\t\ttypeof value.toLowerCase === 'function' && value.toLowerCase() === 'true'\n\t\t);\n\t}\n\n\tprivate createCognitoUser(username: string): CognitoUser {\n\t\tconst userData: ICognitoUserData = {\n\t\t\tUsername: username,\n\t\t\tPool: this.userPool,\n\t\t};\n\t\tuserData.Storage = this._storage;\n\n\t\tconst { authenticationFlowType } = this._config;\n\n\t\tconst user = new CognitoUser(userData);\n\t\tif (authenticationFlowType) {\n\t\t\tuser.setAuthenticationFlowType(authenticationFlowType);\n\t\t}\n\t\treturn user;\n\t}\n\n\tprivate _isValidAuthStorage(obj) {\n\t\t// We need to check if the obj has the functions of Storage\n\t\treturn (\n\t\t\t!!obj &&\n\t\t\ttypeof obj.getItem === 'function' &&\n\t\t\ttypeof obj.setItem === 'function' &&\n\t\t\ttypeof obj.removeItem === 'function' &&\n\t\t\ttypeof obj.clear === 'function'\n\t\t);\n\t}\n\n\tprivate noUserPoolErrorHandler(config: AuthOptions): AuthErrorTypes {\n\t\tif (config) {\n\t\t\tif (!config.userPoolId || !config.identityPoolId) {\n\t\t\t\treturn AuthErrorTypes.MissingAuthConfig;\n\t\t\t}\n\t\t}\n\t\treturn AuthErrorTypes.NoConfig;\n\t}\n\n\tprivate rejectAuthError(type: AuthErrorTypes): Promise {\n\t\treturn Promise.reject(new AuthError(type));\n\t}\n\n\tprivate rejectNoUserPool(): Promise {\n\t\tconst type = this.noUserPoolErrorHandler(this._config);\n\t\treturn Promise.reject(new NoUserPoolError(type));\n\t}\n\n\tpublic async rememberDevice(): Promise {\n\t\tlet currUser;\n\n\t\ttry {\n\t\t\tcurrUser = await this.currentUserPoolUser();\n\t\t} catch (error) {\n\t\t\tlogger.debug('The user is not authenticated by the error', error);\n\t\t\treturn Promise.reject('The user is not authenticated');\n\t\t}\n\n\t\tcurrUser.getCachedDeviceKeyAndPassword();\n\t\treturn new Promise((res, rej) => {\n\t\t\tcurrUser.setDeviceStatusRemembered({\n\t\t\t\tonSuccess: data => {\n\t\t\t\t\tres(data);\n\t\t\t\t},\n\t\t\t\tonFailure: err => {\n\t\t\t\t\tif (err.code === 'InvalidParameterException') {\n\t\t\t\t\t\trej(new AuthError(AuthErrorTypes.DeviceConfig));\n\t\t\t\t\t} else if (err.code === 'NetworkError') {\n\t\t\t\t\t\trej(new AuthError(AuthErrorTypes.NetworkError));\n\t\t\t\t\t} else {\n\t\t\t\t\t\trej(err);\n\t\t\t\t\t}\n\t\t\t\t},\n\t\t\t});\n\t\t});\n\t}\n\n\tpublic async forgetDevice(): Promise {\n\t\tlet currUser;\n\n\t\ttry {\n\t\t\tcurrUser = await this.currentUserPoolUser();\n\t\t} catch (error) {\n\t\t\tlogger.debug('The user is not authenticated by the error', error);\n\t\t\treturn Promise.reject('The user is not authenticated');\n\t\t}\n\n\t\tcurrUser.getCachedDeviceKeyAndPassword();\n\t\treturn new Promise((res, rej) => {\n\t\t\tcurrUser.forgetDevice({\n\t\t\t\tonSuccess: data => {\n\t\t\t\t\tres(data);\n\t\t\t\t},\n\t\t\t\tonFailure: err => {\n\t\t\t\t\tif (err.code === 'InvalidParameterException') {\n\t\t\t\t\t\trej(new AuthError(AuthErrorTypes.DeviceConfig));\n\t\t\t\t\t} else if (err.code === 'NetworkError') {\n\t\t\t\t\t\trej(new AuthError(AuthErrorTypes.NetworkError));\n\t\t\t\t\t} else {\n\t\t\t\t\t\trej(err);\n\t\t\t\t\t}\n\t\t\t\t},\n\t\t\t});\n\t\t});\n\t}\n\n\tpublic async fetchDevices(): Promise {\n\t\tlet currUser;\n\n\t\ttry {\n\t\t\tcurrUser = await this.currentUserPoolUser();\n\t\t} catch (error) {\n\t\t\tlogger.debug('The user is not authenticated by the error', error);\n\t\t\tthrow new Error('The user is not authenticated');\n\t\t}\n\n\t\tcurrUser.getCachedDeviceKeyAndPassword();\n\t\treturn new Promise((res, rej) => {\n\t\t\tconst cb = {\n\t\t\t\tonSuccess(data) {\n\t\t\t\t\tconst deviceList: IAuthDevice[] = data.Devices.map(device => {\n\t\t\t\t\t\tconst deviceName =\n\t\t\t\t\t\t\tdevice.DeviceAttributes.find(\n\t\t\t\t\t\t\t\t({ Name }) => Name === 'device_name'\n\t\t\t\t\t\t\t) || {};\n\n\t\t\t\t\t\tconst deviceInfo: IAuthDevice = {\n\t\t\t\t\t\t\tid: device.DeviceKey,\n\t\t\t\t\t\t\tname: deviceName.Value,\n\t\t\t\t\t\t};\n\t\t\t\t\t\treturn deviceInfo;\n\t\t\t\t\t});\n\t\t\t\t\tres(deviceList);\n\t\t\t\t},\n\t\t\t\tonFailure: err => {\n\t\t\t\t\tif (err.code === 'InvalidParameterException') {\n\t\t\t\t\t\trej(new AuthError(AuthErrorTypes.DeviceConfig));\n\t\t\t\t\t} else if (err.code === 'NetworkError') {\n\t\t\t\t\t\trej(new AuthError(AuthErrorTypes.NetworkError));\n\t\t\t\t\t} else {\n\t\t\t\t\t\trej(err);\n\t\t\t\t\t}\n\t\t\t\t},\n\t\t\t};\n\t\t\tcurrUser.listDevices(MAX_DEVICES, null, cb);\n\t\t});\n\t}\n}\n\nexport const Auth = new AuthClass(null);\n\nAmplify.register(Auth);\n","// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nimport { browserOrNode } from '@aws-amplify/core';\n\nexport default callback => {\n\tif (browserOrNode().isBrowser && window.location) {\n\t\tconst url = window.location.href;\n\n\t\tcallback({ url });\n\t} else if (browserOrNode().isNode) {\n\t\t// continue building on ssr\n\t\t() => {}; // noop\n\t} else {\n\t\tthrow new Error('Not supported');\n\t}\n};\n","// Authentication\nexport const SIGNED_IN = \"SIGNED_IN\";\nexport const SIGNED_OUT = \"SIGNED_OUT\";\nexport const CHANGE_NAME = \"CHANGE_NAME\";\nexport const SET_REDIRECT_AFTER_LOGIN = \"SET_REDIRECT_AFTER_LOGIN\";\n\n// impersonation\nexport const CHECK_IMPERSONATION = \"CHECK_IMPERSONATION\";\nexport const SET_IMPERSONATED_USER = \"SET_IMPERSONATED_USER\";\nexport const END_IMPERSONATING = \"END_IMPERSONATING\";\nexport const CHANGE_IMPERSONATED_USER_NAME = \"CHANGE_IMPERSONATED_USER_NAME\";\nexport const RESET_SUPER_ADMIN_DATA = \"RESET_SUPER_ADMIN_DATA\";\n","import * as types from \"../constants\";\n\nexport const logUser = (email, displayName, organizationId) => ({\n type: types.SIGNED_IN,\n email: email,\n name: displayName,\n isAuthenticated: true,\n organizationId,\n});\n\nexport const signOut = () => ({\n type: types.SIGNED_OUT,\n email: null,\n displayName: null,\n isAuthenticated: false,\n});\n\nexport const changeName = (name) => ({\n type: types.CHANGE_NAME,\n name,\n});\n\nexport const setRedirectAfterLogin = (path) => ({\n type: types.SET_REDIRECT_AFTER_LOGIN,\n path,\n});\n","import $$observable from 'symbol-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 */\nvar randomString = function randomString() {\n return Math.random().toString(36).substring(7).split('').join('.');\n};\n\nvar ActionTypes = {\n INIT: \"@@redux/INIT\" + randomString(),\n REPLACE: \"@@redux/REPLACE\" + randomString(),\n PROBE_UNKNOWN_ACTION: function PROBE_UNKNOWN_ACTION() {\n return \"@@redux/PROBE_UNKNOWN_ACTION\" + randomString();\n }\n};\n\n/**\n * @param {any} obj The object to inspect.\n * @returns {boolean} True if the argument appears to be a plain object.\n */\nfunction isPlainObject(obj) {\n if (typeof obj !== 'object' || obj === null) return false;\n var proto = obj;\n\n while (Object.getPrototypeOf(proto) !== null) {\n proto = Object.getPrototypeOf(proto);\n }\n\n return Object.getPrototypeOf(obj) === proto;\n}\n\n/**\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\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('It looks like you are passing several store enhancers to ' + 'createStore(). This is not supported. Instead, compose them ' + 'together to a single function');\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('Expected the enhancer to be a function.');\n }\n\n return enhancer(createStore)(reducer, preloadedState);\n }\n\n if (typeof reducer !== 'function') {\n throw new Error('Expected the reducer to be a function.');\n }\n\n var currentReducer = reducer;\n var currentState = preloadedState;\n var currentListeners = [];\n var nextListeners = currentListeners;\n var isDispatching = false;\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('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('Expected the listener to be a function.');\n }\n\n if (isDispatching) {\n throw new Error('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-reference/store#subscribe(listener) 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('You may not unsubscribe from a store listener while the reducer is executing. ' + 'See https://redux.js.org/api-reference/store#subscribe(listener) for more details.');\n }\n\n isSubscribed = false;\n ensureCanMutateNextListeners();\n var index = nextListeners.indexOf(listener);\n nextListeners.splice(index, 1);\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('Actions must be plain objects. ' + 'Use custom middleware for async actions.');\n }\n\n if (typeof action.type === 'undefined') {\n throw new Error('Actions may not have an undefined \"type\" property. ' + 'Have you misspelled a constant?');\n }\n\n if (isDispatching) {\n throw new Error('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('Expected the nextReducer to be a function.');\n }\n\n currentReducer = nextReducer;\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 TypeError('Expected the observer to be an object.');\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/**\n * Prints a warning in the console if it exists.\n *\n * @param {String} message The warning message.\n * @returns {void}\n */\nfunction warning(message) {\n /* eslint-disable no-console */\n if (typeof console !== 'undefined' && typeof console.error === 'function') {\n console.error(message);\n }\n /* eslint-enable no-console */\n\n\n try {\n // This error was thrown as a convenience so that if you enable\n // \"break on all exceptions\" in your console,\n // it would pause the execution at this line.\n throw new Error(message);\n } catch (e) {} // eslint-disable-line no-empty\n\n}\n\nfunction getUndefinedStateErrorMessage(key, action) {\n var actionType = action && action.type;\n var actionDescription = actionType && \"action \\\"\" + String(actionType) + \"\\\"\" || 'an action';\n return \"Given \" + actionDescription + \", reducer \\\"\" + 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\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 \\\"\" + {}.toString.call(inputState).match(/\\s([a-z|A-Z]+)/)[1] + \"\\\". 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(\"Reducer \\\"\" + 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(\"Reducer \\\"\" + 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);\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 errorMessage = getUndefinedStateErrorMessage(_key, action);\n throw new Error(errorMessage);\n }\n\n nextState[_key] = nextStateForKey;\n hasChanged = hasChanged || nextStateForKey !== previousStateForKey;\n }\n\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 a single function as the first argument,\n * and get a 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(\"bindActionCreators expected an object or a function, instead received \" + (actionCreators === null ? 'null' : typeof actionCreators) + \". \" + \"Did you write \\\"import ActionCreators from\\\" instead of \\\"import * as ActionCreators from\\\"?\");\n }\n\n var keys = Object.keys(actionCreators);\n var boundActionCreators = {};\n\n for (var i = 0; i < keys.length; i++) {\n var key = keys[i];\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\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\n/**\n * Composes single-argument functions from right to left. The rightmost\n * function can take multiple arguments as it provides the signature for\n * the resulting composite function.\n *\n * @param {...Function} funcs The functions to compose.\n * @returns {Function} A function obtained by composing the argument functions\n * from right to left. For example, compose(f, g, h) is identical to doing\n * (...args) => f(g(h(...args))).\n */\nfunction compose() {\n for (var _len = arguments.length, funcs = new Array(_len), _key = 0; _key < _len; _key++) {\n funcs[_key] = arguments[_key];\n }\n\n if (funcs.length === 0) {\n return function (arg) {\n return arg;\n };\n }\n\n if (funcs.length === 1) {\n return funcs[0];\n }\n\n return funcs.reduce(function (a, b) {\n return function () {\n return a(b.apply(void 0, arguments));\n };\n });\n}\n\n/**\n * Creates a store enhancer that applies middleware to the dispatch method\n * of the Redux store. This is handy for a variety of tasks, such as expressing\n * asynchronous actions in a concise manner, or logging every action payload.\n *\n * See `redux-thunk` package as an example of the Redux middleware.\n *\n * Because middleware is potentially asynchronous, this should be the first\n * store enhancer in the composition chain.\n *\n * Note that each middleware will be given the `dispatch` and `getState` functions\n * as named arguments.\n *\n * @param {...Function} middlewares The middleware chain to be applied.\n * @returns {Function} A store enhancer applying the middleware.\n */\n\nfunction applyMiddleware() {\n for (var _len = arguments.length, middlewares = new Array(_len), _key = 0; _key < _len; _key++) {\n middlewares[_key] = arguments[_key];\n }\n\n return function (createStore) {\n return function () {\n var store = createStore.apply(void 0, arguments);\n\n var _dispatch = function dispatch() {\n throw new Error(\"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({}, store, {\n dispatch: _dispatch\n });\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\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 { createStore, combineReducers, bindActionCreators, applyMiddleware, compose, ActionTypes as __DO_NOT_USE__ActionTypes };\n","import toPropertyKey from \"./toPropertyKey.js\";\nexport default function _defineProperty(obj, key, value) {\n key = toPropertyKey(key);\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 return obj;\n}","import defineProperty from \"./defineProperty.js\";\nfunction ownKeys(object, enumerableOnly) {\n var keys = Object.keys(object);\n if (Object.getOwnPropertySymbols) {\n var symbols = Object.getOwnPropertySymbols(object);\n enumerableOnly && (symbols = symbols.filter(function (sym) {\n return Object.getOwnPropertyDescriptor(object, sym).enumerable;\n })), keys.push.apply(keys, symbols);\n }\n return keys;\n}\nexport default function _objectSpread2(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = null != arguments[i] ? arguments[i] : {};\n i % 2 ? ownKeys(Object(source), !0).forEach(function (key) {\n defineProperty(target, key, source[key]);\n }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) {\n Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));\n });\n }\n return target;\n}","import * as types from \"../constants\";\n\nconst initialState = {\n name: null,\n companyName: null,\n email: null,\n isAuthenticated: false,\n organizationId: null,\n redirectAfterLogin: null,\n};\n\nexport default function reducer(state = initialState, action) {\n switch (action.type) {\n case types.SIGNED_IN:\n return {\n ...state,\n name: action.name,\n companyName: action.companyName,\n email: action.email,\n isAuthenticated: action.isAuthenticated,\n organizationId: action.organizationId,\n };\n\n case types.SIGNED_OUT:\n return {\n ...state,\n name: action.name,\n companyName: action.companyName,\n email: action.email,\n isAuthenticated: action.isAuthenticated,\n };\n\n case types.CHANGE_NAME:\n return {\n ...state,\n name: action.name,\n };\n\n case types.SET_REDIRECT_AFTER_LOGIN:\n return {\n ...state,\n redirectAfterLogin: action.path,\n };\n\n default:\n return state;\n }\n}\n","import {\n CHECK_IMPERSONATION,\n SET_IMPERSONATED_USER,\n END_IMPERSONATING,\n CHANGE_IMPERSONATED_USER_NAME,\n RESET_SUPER_ADMIN_DATA\n} from \"../constants\";\n\nconst impersonatedUser = localStorage.getItem(\"impersonatedUserToken\");\nconst superAdmin = localStorage.getItem(\"superAdminEmail\");\n\nconst initialState = {\n isImpersonating: !!impersonatedUser,\n impersonatedUser: impersonatedUser && JSON.parse(impersonatedUser).name,\n impersonatedUserEmail: impersonatedUser && JSON.parse(impersonatedUser).email,\n role: impersonatedUser && JSON.parse(impersonatedUser).role,\n superAdmin: superAdmin && JSON.parse(superAdmin)\n};\n\nexport default function reducer(state = initialState, actions) {\n switch (actions.type) {\n case CHECK_IMPERSONATION:\n return {\n ...state,\n isImpersonating: actions.payload.isImpersonating\n };\n\n case SET_IMPERSONATED_USER:\n return {\n ...state,\n impersonatedUser: actions.payload.impersonatedUser,\n impersonatedUserEmail: actions.payload.impersonatedUserEmail,\n role: actions.payload.role\n };\n\n case END_IMPERSONATING:\n return {\n ...state,\n isImpersonating: false,\n impersonatedUser: null,\n fullImpersonatedUser: null,\n role: false\n };\n\n case RESET_SUPER_ADMIN_DATA:\n return {\n ...initialState\n };\n\n case CHANGE_IMPERSONATED_USER_NAME:\n return {\n ...state,\n impersonatedUser: actions.payload.name\n };\n\n default:\n return state;\n }\n}\n","import { combineReducers } from \"redux\";\n\nimport authentication from \"./authentication\";\nimport superAdmin from \"./superAdmin\";\n\nconst appReducer = combineReducers({\n authentication,\n superAdmin,\n});\n\nexport default function rootReducer(state, action) {\n if (action.type === \"SIGNED_OUT\") {\n console.log(\"Resetting the state after the user signed out\");\n state = undefined;\n }\n\n return appReducer(state, action);\n}\n","import { createStore } from \"redux\";\n\nimport rootReducer from \"../reducers/index\";\n\nconst store = createStore(rootReducer);\n\nexport default store;\n\nexport type RootState = ReturnType;\n","/******************************************************************************\nCopyright (c) Microsoft Corporation.\n\nPermission to use, copy, modify, and/or distribute this software for any\npurpose with or without fee is hereby granted.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\nPERFORMANCE OF THIS SOFTWARE.\n***************************************************************************** */\n/* global Reflect, Promise, SuppressedError, Symbol */\n\nvar extendStatics = function(d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n};\n\nexport function __extends(d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n}\n\nexport var __assign = function() {\n __assign = Object.assign || function __assign(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\n }\n return t;\n }\n return __assign.apply(this, arguments);\n}\n\nexport function __rest(s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\n t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\n t[p[i]] = s[p[i]];\n }\n return t;\n}\n\nexport function __decorate(decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n}\n\nexport function __param(paramIndex, decorator) {\n return function (target, key) { decorator(target, key, paramIndex); }\n}\n\nexport function __esDecorate(ctor, descriptorIn, decorators, contextIn, initializers, extraInitializers) {\n function accept(f) { if (f !== void 0 && typeof f !== \"function\") throw new TypeError(\"Function expected\"); return f; }\n var kind = contextIn.kind, key = kind === \"getter\" ? \"get\" : kind === \"setter\" ? \"set\" : \"value\";\n var target = !descriptorIn && ctor ? contextIn[\"static\"] ? ctor : ctor.prototype : null;\n var descriptor = descriptorIn || (target ? Object.getOwnPropertyDescriptor(target, contextIn.name) : {});\n var _, done = false;\n for (var i = decorators.length - 1; i >= 0; i--) {\n var context = {};\n for (var p in contextIn) context[p] = p === \"access\" ? {} : contextIn[p];\n for (var p in contextIn.access) context.access[p] = contextIn.access[p];\n context.addInitializer = function (f) { if (done) throw new TypeError(\"Cannot add initializers after decoration has completed\"); extraInitializers.push(accept(f || null)); };\n var result = (0, decorators[i])(kind === \"accessor\" ? { get: descriptor.get, set: descriptor.set } : descriptor[key], context);\n if (kind === \"accessor\") {\n if (result === void 0) continue;\n if (result === null || typeof result !== \"object\") throw new TypeError(\"Object expected\");\n if (_ = accept(result.get)) descriptor.get = _;\n if (_ = accept(result.set)) descriptor.set = _;\n if (_ = accept(result.init)) initializers.unshift(_);\n }\n else if (_ = accept(result)) {\n if (kind === \"field\") initializers.unshift(_);\n else descriptor[key] = _;\n }\n }\n if (target) Object.defineProperty(target, contextIn.name, descriptor);\n done = true;\n};\n\nexport function __runInitializers(thisArg, initializers, value) {\n var useValue = arguments.length > 2;\n for (var i = 0; i < initializers.length; i++) {\n value = useValue ? initializers[i].call(thisArg, value) : initializers[i].call(thisArg);\n }\n return useValue ? value : void 0;\n};\n\nexport function __propKey(x) {\n return typeof x === \"symbol\" ? x : \"\".concat(x);\n};\n\nexport function __setFunctionName(f, name, prefix) {\n if (typeof name === \"symbol\") name = name.description ? \"[\".concat(name.description, \"]\") : \"\";\n return Object.defineProperty(f, \"name\", { configurable: true, value: prefix ? \"\".concat(prefix, \" \", name) : name });\n};\n\nexport function __metadata(metadataKey, metadataValue) {\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\n}\n\nexport function __awaiter(thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n}\n\nexport function __generator(thisArg, body) {\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n function verb(n) { return function (v) { return step([n, v]); }; }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (g && (g = 0, op[0] && (_ = 0)), _) try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0: case 1: t = op; break;\n case 4: _.label++; return { value: op[1], done: false };\n case 5: _.label++; y = op[1]; op = [0]; continue;\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n if (t[2]) _.ops.pop();\n _.trys.pop(); continue;\n }\n op = body.call(thisArg, _);\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n }\n}\n\nexport var __createBinding = Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n});\n\nexport function __exportStar(m, o) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\n}\n\nexport function __values(o) {\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\n if (m) return m.call(o);\n if (o && typeof o.length === \"number\") return {\n next: function () {\n if (o && i >= o.length) o = void 0;\n return { value: o && o[i++], done: !o };\n }\n };\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\n}\n\nexport function __read(o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o), r, ar = [], e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n }\n catch (error) { e = { error: error }; }\n finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n }\n finally { if (e) throw e.error; }\n }\n return ar;\n}\n\n/** @deprecated */\nexport function __spread() {\n for (var ar = [], i = 0; i < arguments.length; i++)\n ar = ar.concat(__read(arguments[i]));\n return ar;\n}\n\n/** @deprecated */\nexport function __spreadArrays() {\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\n r[k] = a[j];\n return r;\n}\n\nexport function __spreadArray(to, from, pack) {\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\n if (ar || !(i in from)) {\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\n ar[i] = from[i];\n }\n }\n return to.concat(ar || Array.prototype.slice.call(from));\n}\n\nexport function __await(v) {\n return this instanceof __await ? (this.v = v, this) : new __await(v);\n}\n\nexport function __asyncGenerator(thisArg, _arguments, generator) {\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\n function fulfill(value) { resume(\"next\", value); }\n function reject(value) { resume(\"throw\", value); }\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\n}\n\nexport function __asyncDelegator(o) {\n var i, p;\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: false } : f ? f(v) : v; } : f; }\n}\n\nexport function __asyncValues(o) {\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\n var m = o[Symbol.asyncIterator], i;\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\n}\n\nexport function __makeTemplateObject(cooked, raw) {\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\n return cooked;\n};\n\nvar __setModuleDefault = Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n};\n\nexport function __importStar(mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n}\n\nexport function __importDefault(mod) {\n return (mod && mod.__esModule) ? mod : { default: mod };\n}\n\nexport function __classPrivateFieldGet(receiver, state, kind, f) {\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\n}\n\nexport function __classPrivateFieldSet(receiver, state, value, kind, f) {\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\n}\n\nexport function __classPrivateFieldIn(state, receiver) {\n if (receiver === null || (typeof receiver !== \"object\" && typeof receiver !== \"function\")) throw new TypeError(\"Cannot use 'in' operator on non-object\");\n return typeof state === \"function\" ? receiver === state : state.has(receiver);\n}\n\nexport function __addDisposableResource(env, value, async) {\n if (value !== null && value !== void 0) {\n if (typeof value !== \"object\" && typeof value !== \"function\") throw new TypeError(\"Object expected.\");\n var dispose;\n if (async) {\n if (!Symbol.asyncDispose) throw new TypeError(\"Symbol.asyncDispose is not defined.\");\n dispose = value[Symbol.asyncDispose];\n }\n if (dispose === void 0) {\n if (!Symbol.dispose) throw new TypeError(\"Symbol.dispose is not defined.\");\n dispose = value[Symbol.dispose];\n }\n if (typeof dispose !== \"function\") throw new TypeError(\"Object not disposable.\");\n env.stack.push({ value: value, dispose: dispose, async: async });\n }\n else if (async) {\n env.stack.push({ async: true });\n }\n return value;\n}\n\nvar _SuppressedError = typeof SuppressedError === \"function\" ? SuppressedError : function (error, suppressed, message) {\n var e = new Error(message);\n return e.name = \"SuppressedError\", e.error = error, e.suppressed = suppressed, e;\n};\n\nexport function __disposeResources(env) {\n function fail(e) {\n env.error = env.hasError ? new _SuppressedError(e, env.error, \"An error was suppressed during disposal.\") : e;\n env.hasError = true;\n }\n function next() {\n while (env.stack.length) {\n var rec = env.stack.pop();\n try {\n var result = rec.dispose && rec.dispose.call(rec.value);\n if (rec.async) return Promise.resolve(result).then(next, function(e) { fail(e); return next(); });\n }\n catch (e) {\n fail(e);\n }\n }\n if (env.hasError) throw env.error;\n }\n return next();\n}\n\nexport default {\n __extends,\n __assign,\n __rest,\n __decorate,\n __param,\n __metadata,\n __awaiter,\n __generator,\n __createBinding,\n __exportStar,\n __values,\n __read,\n __spread,\n __spreadArrays,\n __spreadArray,\n __await,\n __asyncGenerator,\n __asyncDelegator,\n __asyncValues,\n __makeTemplateObject,\n __importStar,\n __importDefault,\n __classPrivateFieldGet,\n __classPrivateFieldSet,\n __classPrivateFieldIn,\n __addDisposableResource,\n __disposeResources,\n};\n","const genericMessage = \"Invariant Violation\";\nconst {\n setPrototypeOf = function (obj: any, proto: any) {\n obj.__proto__ = proto;\n return obj;\n },\n} = Object as any;\n\nexport class InvariantError extends Error {\n framesToPop = 1;\n name = genericMessage;\n constructor(message: string | number = genericMessage) {\n super(\n typeof message === \"number\"\n ? `${genericMessage}: ${message} (see https://github.com/apollographql/invariant-packages)`\n : message\n );\n setPrototypeOf(this, InvariantError.prototype);\n }\n}\n\nexport function invariant(\n condition: any,\n message?: string | number,\n): asserts condition {\n if (!condition) {\n throw new InvariantError(message);\n }\n}\n\nconst verbosityLevels = [\"debug\", \"log\", \"warn\", \"error\", \"silent\"] as const;\nexport type VerbosityLevel = (typeof verbosityLevels)[number];\nexport type ConsoleMethodName = Exclude;\nlet verbosityLevel = verbosityLevels.indexOf(\"log\");\n\nfunction wrapConsoleMethod(name: M) {\n return function () {\n if (verbosityLevels.indexOf(name) >= verbosityLevel) {\n // Default to console.log if this host environment happens not to provide\n // all the console.* methods we need.\n const method = console[name] || console.log;\n return method.apply(console, arguments as any);\n }\n } as (typeof console)[M];\n}\n\nexport namespace invariant {\n export const debug = wrapConsoleMethod(\"debug\");\n export const log = wrapConsoleMethod(\"log\");\n export const warn = wrapConsoleMethod(\"warn\");\n export const error = wrapConsoleMethod(\"error\");\n}\n\nexport function setVerbosity(level: VerbosityLevel): VerbosityLevel {\n const old = verbosityLevels[verbosityLevel];\n verbosityLevel = Math.max(0, verbosityLevels.indexOf(level));\n return old;\n}\n\nexport default invariant;\n","export const version = \"local\";\n","export function maybe(thunk: () => T): T | undefined {\n try {\n return thunk();\n } catch {}\n}\n","import { maybe } from \"./maybe.js\";\n\ndeclare global {\n const __DEV__: boolean; // will be removed in `dist` by the `postprocessDist` script\n interface Window {\n __DEV__?: boolean;\n }\n}\n\nexport default (maybe(() => globalThis) ||\n maybe(() => window) ||\n maybe(() => self) ||\n maybe(() => global) ||\n // We don't expect the Function constructor ever to be invoked at runtime, as\n // long as at least one of globalThis, window, self, or global is defined, so\n // we are under no obligation to make it easy for static analysis tools to\n // detect syntactic usage of the Function constructor. If you think you can\n // improve your static analysis to detect this obfuscation, think again. This\n // is an arms race you cannot win, at least not in JavaScript.\n maybe(function () {\n return maybe.constructor(\"return this\")();\n })) as typeof globalThis & Window;\n","const prefixCounts = new Map();\n\n// These IDs won't be globally unique, but they will be unique within this\n// process, thanks to the counter, and unguessable thanks to the random suffix.\nexport function makeUniqueId(prefix: string) {\n const count = prefixCounts.get(prefix) || 1;\n prefixCounts.set(prefix, count + 1);\n return `${prefix}:${count}:${Math.random().toString(36).slice(2)}`;\n}\n","import { makeUniqueId } from \"./makeUniqueId.js\";\n\nexport function stringifyForDisplay(value: any, space = 0): string {\n const undefId = makeUniqueId(\"stringifyForDisplay\");\n return JSON.stringify(\n value,\n (key, value) => {\n return value === void 0 ? undefId : value;\n },\n space\n )\n .split(JSON.stringify(undefId))\n .join(\"\");\n}\n","import { invariant as originalInvariant, InvariantError } from \"ts-invariant\";\nimport { version } from \"../../version.js\";\nimport global from \"./global.js\";\nimport type { ErrorCodes } from \"../../invariantErrorCodes.js\";\nimport { stringifyForDisplay } from \"../common/stringifyForDisplay.js\";\n\nfunction wrap(fn: (msg?: string, ...args: any[]) => void) {\n return function (message?: string | number, ...args: any[]) {\n if (typeof message === \"number\") {\n const arg0 = message;\n message = getHandledErrorMsg(arg0);\n if (!message) {\n message = getFallbackErrorMsg(arg0, args);\n args = [];\n }\n }\n fn(...[message].concat(args));\n };\n}\n\ntype LogFunction = {\n /**\n * Logs a `$level` message if the user used `ts-invariant`'s `setVerbosity` to set\n * a verbosity level of `$level` or lower. (defaults to `\"log\"`).\n *\n * The user will either be presented with a link to the documentation for the message,\n * or they can use the `loadDevMessages` to add the message strings to the bundle.\n * The documentation will display the message without argument substitution.\n * Instead, the arguments will be printed on the console after the link.\n *\n * `message` can only be a string, a concatenation of strings, or a ternary statement\n * that results in a string. This will be enforced on build, where the message will\n * be replaced with a message number.\n *\n * String substitutions like %s, %o, %d or %f are supported.\n */\n (message?: any, ...optionalParams: unknown[]): void;\n};\n\ntype WrappedInvariant = {\n /**\n * Throws and InvariantError with the given message if the condition is false.\n *\n * `message` can only be a string, a concatenation of strings, or a ternary statement\n * that results in a string. This will be enforced on build, where the message will\n * be replaced with a message number.\n *\n * The user will either be presented with a link to the documentation for the message,\n * or they can use the `loadErrorMessages` to add the message strings to the bundle.\n * The documentation will display the message with the arguments substituted.\n *\n * String substitutions with %s are supported and will also return\n * pretty-stringified objects.\n * Excess `optionalParams` will be swallowed.\n */\n (\n condition: any,\n message?: string | number,\n ...optionalParams: unknown[]\n ): asserts condition;\n\n debug: LogFunction;\n log: LogFunction;\n warn: LogFunction;\n error: LogFunction;\n};\nconst invariant: WrappedInvariant = Object.assign(\n function invariant(\n condition: any,\n message?: string | number,\n ...args: unknown[]\n ): asserts condition {\n if (!condition) {\n originalInvariant(\n condition,\n getHandledErrorMsg(message, args) || getFallbackErrorMsg(message, args)\n );\n }\n },\n {\n debug: wrap(originalInvariant.debug),\n log: wrap(originalInvariant.log),\n warn: wrap(originalInvariant.warn),\n error: wrap(originalInvariant.error),\n }\n);\n\n/**\n * Returns an InvariantError.\n *\n * `message` can only be a string, a concatenation of strings, or a ternary statement\n * that results in a string. This will be enforced on build, where the message will\n * be replaced with a message number.\n * String substitutions with %s are supported and will also return\n * pretty-stringified objects.\n * Excess `optionalParams` will be swallowed.\n */\nfunction newInvariantError(\n message?: string | number,\n ...optionalParams: unknown[]\n) {\n return new InvariantError(\n getHandledErrorMsg(message, optionalParams) ||\n getFallbackErrorMsg(message, optionalParams)\n );\n}\n\nconst ApolloErrorMessageHandler = Symbol.for(\n \"ApolloErrorMessageHandler_\" + version\n);\ndeclare global {\n interface Window {\n [ApolloErrorMessageHandler]?: {\n (message: string | number, args: string[]): string | undefined;\n } & ErrorCodes;\n }\n}\n\nfunction stringify(arg: any) {\n return typeof arg == \"string\" ? arg : (\n stringifyForDisplay(arg, 2).slice(0, 1000)\n );\n}\n\nfunction getHandledErrorMsg(\n message?: string | number,\n messageArgs: unknown[] = []\n) {\n if (!message) return;\n return (\n global[ApolloErrorMessageHandler] &&\n global[ApolloErrorMessageHandler](message, messageArgs.map(stringify))\n );\n}\n\nfunction getFallbackErrorMsg(\n message?: string | number,\n messageArgs: unknown[] = []\n) {\n if (!message) return;\n return `An error occurred! For more details, see the full error text at https://go.apollo.dev/c/err#${encodeURIComponent(\n JSON.stringify({\n version,\n message,\n args: messageArgs.map(stringify),\n })\n )}`;\n}\n\nexport {\n invariant,\n InvariantError,\n newInvariantError,\n ApolloErrorMessageHandler,\n};\n","import {\n invariant,\n newInvariantError,\n InvariantError,\n} from \"./invariantWrappers.js\";\n\nexport { maybe } from \"./maybe.js\";\nexport { default as global } from \"./global.js\";\nexport { invariant, newInvariantError, InvariantError };\n\n/**\n * @deprecated we do not use this internally anymore,\n * it is just exported for backwards compatibility\n */\n// this file is extempt from automatic `__DEV__` replacement\n// so we have to write it out here\n// @ts-ignore\nexport const DEV = globalThis.__DEV__ !== false;\nexport { DEV as __DEV__ };\n","function _createForOfIteratorHelperLoose(o, allowArrayLike) { var it = typeof Symbol !== \"undefined\" && o[Symbol.iterator] || o[\"@@iterator\"]; if (it) return (it = it.call(o)).next.bind(it); if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") { if (it) o = it; var i = 0; return function () { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }; } throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\n\n// === Symbol Support ===\nvar hasSymbols = function () {\n return typeof Symbol === 'function';\n};\n\nvar hasSymbol = function (name) {\n return hasSymbols() && Boolean(Symbol[name]);\n};\n\nvar getSymbol = function (name) {\n return hasSymbol(name) ? Symbol[name] : '@@' + name;\n};\n\nif (hasSymbols() && !hasSymbol('observable')) {\n Symbol.observable = Symbol('observable');\n}\n\nvar SymbolIterator = getSymbol('iterator');\nvar SymbolObservable = getSymbol('observable');\nvar SymbolSpecies = getSymbol('species'); // === Abstract Operations ===\n\nfunction getMethod(obj, key) {\n var value = obj[key];\n if (value == null) return undefined;\n if (typeof value !== 'function') throw new TypeError(value + ' is not a function');\n return value;\n}\n\nfunction getSpecies(obj) {\n var ctor = obj.constructor;\n\n if (ctor !== undefined) {\n ctor = ctor[SymbolSpecies];\n\n if (ctor === null) {\n ctor = undefined;\n }\n }\n\n return ctor !== undefined ? ctor : Observable;\n}\n\nfunction isObservable(x) {\n return x instanceof Observable; // SPEC: Brand check\n}\n\nfunction hostReportError(e) {\n if (hostReportError.log) {\n hostReportError.log(e);\n } else {\n setTimeout(function () {\n throw e;\n });\n }\n}\n\nfunction enqueue(fn) {\n Promise.resolve().then(function () {\n try {\n fn();\n } catch (e) {\n hostReportError(e);\n }\n });\n}\n\nfunction cleanupSubscription(subscription) {\n var cleanup = subscription._cleanup;\n if (cleanup === undefined) return;\n subscription._cleanup = undefined;\n\n if (!cleanup) {\n return;\n }\n\n try {\n if (typeof cleanup === 'function') {\n cleanup();\n } else {\n var unsubscribe = getMethod(cleanup, 'unsubscribe');\n\n if (unsubscribe) {\n unsubscribe.call(cleanup);\n }\n }\n } catch (e) {\n hostReportError(e);\n }\n}\n\nfunction closeSubscription(subscription) {\n subscription._observer = undefined;\n subscription._queue = undefined;\n subscription._state = 'closed';\n}\n\nfunction flushSubscription(subscription) {\n var queue = subscription._queue;\n\n if (!queue) {\n return;\n }\n\n subscription._queue = undefined;\n subscription._state = 'ready';\n\n for (var i = 0; i < queue.length; ++i) {\n notifySubscription(subscription, queue[i].type, queue[i].value);\n if (subscription._state === 'closed') break;\n }\n}\n\nfunction notifySubscription(subscription, type, value) {\n subscription._state = 'running';\n var observer = subscription._observer;\n\n try {\n var m = getMethod(observer, type);\n\n switch (type) {\n case 'next':\n if (m) m.call(observer, value);\n break;\n\n case 'error':\n closeSubscription(subscription);\n if (m) m.call(observer, value);else throw value;\n break;\n\n case 'complete':\n closeSubscription(subscription);\n if (m) m.call(observer);\n break;\n }\n } catch (e) {\n hostReportError(e);\n }\n\n if (subscription._state === 'closed') cleanupSubscription(subscription);else if (subscription._state === 'running') subscription._state = 'ready';\n}\n\nfunction onNotify(subscription, type, value) {\n if (subscription._state === 'closed') return;\n\n if (subscription._state === 'buffering') {\n subscription._queue.push({\n type: type,\n value: value\n });\n\n return;\n }\n\n if (subscription._state !== 'ready') {\n subscription._state = 'buffering';\n subscription._queue = [{\n type: type,\n value: value\n }];\n enqueue(function () {\n return flushSubscription(subscription);\n });\n return;\n }\n\n notifySubscription(subscription, type, value);\n}\n\nvar Subscription = /*#__PURE__*/function () {\n function Subscription(observer, subscriber) {\n // ASSERT: observer is an object\n // ASSERT: subscriber is callable\n this._cleanup = undefined;\n this._observer = observer;\n this._queue = undefined;\n this._state = 'initializing';\n var subscriptionObserver = new SubscriptionObserver(this);\n\n try {\n this._cleanup = subscriber.call(undefined, subscriptionObserver);\n } catch (e) {\n subscriptionObserver.error(e);\n }\n\n if (this._state === 'initializing') this._state = 'ready';\n }\n\n var _proto = Subscription.prototype;\n\n _proto.unsubscribe = function unsubscribe() {\n if (this._state !== 'closed') {\n closeSubscription(this);\n cleanupSubscription(this);\n }\n };\n\n _createClass(Subscription, [{\n key: \"closed\",\n get: function () {\n return this._state === 'closed';\n }\n }]);\n\n return Subscription;\n}();\n\nvar SubscriptionObserver = /*#__PURE__*/function () {\n function SubscriptionObserver(subscription) {\n this._subscription = subscription;\n }\n\n var _proto2 = SubscriptionObserver.prototype;\n\n _proto2.next = function next(value) {\n onNotify(this._subscription, 'next', value);\n };\n\n _proto2.error = function error(value) {\n onNotify(this._subscription, 'error', value);\n };\n\n _proto2.complete = function complete() {\n onNotify(this._subscription, 'complete');\n };\n\n _createClass(SubscriptionObserver, [{\n key: \"closed\",\n get: function () {\n return this._subscription._state === 'closed';\n }\n }]);\n\n return SubscriptionObserver;\n}();\n\nvar Observable = /*#__PURE__*/function () {\n function Observable(subscriber) {\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 var _proto3 = Observable.prototype;\n\n _proto3.subscribe = 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 _proto3.forEach = function forEach(fn) {\n var _this = this;\n\n return new Promise(function (resolve, reject) {\n if (typeof fn !== 'function') {\n reject(new TypeError(fn + ' is not a function'));\n return;\n }\n\n function done() {\n subscription.unsubscribe();\n resolve();\n }\n\n var subscription = _this.subscribe({\n next: function (value) {\n try {\n fn(value, done);\n } catch (e) {\n reject(e);\n subscription.unsubscribe();\n }\n },\n error: reject,\n complete: resolve\n });\n });\n };\n\n _proto3.map = function map(fn) {\n var _this2 = this;\n\n if (typeof fn !== 'function') throw new TypeError(fn + ' is not a function');\n var C = getSpecies(this);\n return new C(function (observer) {\n return _this2.subscribe({\n next: function (value) {\n try {\n value = fn(value);\n } catch (e) {\n return observer.error(e);\n }\n\n observer.next(value);\n },\n error: function (e) {\n observer.error(e);\n },\n complete: function () {\n observer.complete();\n }\n });\n });\n };\n\n _proto3.filter = function filter(fn) {\n var _this3 = this;\n\n if (typeof fn !== 'function') throw new TypeError(fn + ' is not a function');\n var C = getSpecies(this);\n return new C(function (observer) {\n return _this3.subscribe({\n next: function (value) {\n try {\n if (!fn(value)) return;\n } catch (e) {\n return observer.error(e);\n }\n\n observer.next(value);\n },\n error: function (e) {\n observer.error(e);\n },\n complete: function () {\n observer.complete();\n }\n });\n });\n };\n\n _proto3.reduce = function reduce(fn) {\n var _this4 = this;\n\n if (typeof fn !== 'function') throw new TypeError(fn + ' is not a function');\n var C = getSpecies(this);\n var hasSeed = arguments.length > 1;\n var hasValue = false;\n var seed = arguments[1];\n var acc = seed;\n return new C(function (observer) {\n return _this4.subscribe({\n next: function (value) {\n var first = !hasValue;\n hasValue = true;\n\n if (!first || hasSeed) {\n try {\n acc = fn(acc, value);\n } catch (e) {\n return observer.error(e);\n }\n } else {\n acc = value;\n }\n },\n error: function (e) {\n observer.error(e);\n },\n complete: function () {\n if (!hasValue && !hasSeed) return observer.error(new TypeError('Cannot reduce an empty sequence'));\n observer.next(acc);\n observer.complete();\n }\n });\n });\n };\n\n _proto3.concat = function concat() {\n var _this5 = this;\n\n for (var _len = arguments.length, sources = new Array(_len), _key = 0; _key < _len; _key++) {\n sources[_key] = arguments[_key];\n }\n\n var C = getSpecies(this);\n return new C(function (observer) {\n var subscription;\n var index = 0;\n\n function startNext(next) {\n subscription = next.subscribe({\n next: function (v) {\n observer.next(v);\n },\n error: function (e) {\n observer.error(e);\n },\n complete: function () {\n if (index === sources.length) {\n subscription = undefined;\n observer.complete();\n } else {\n startNext(C.from(sources[index++]));\n }\n }\n });\n }\n\n startNext(_this5);\n return function () {\n if (subscription) {\n subscription.unsubscribe();\n subscription = undefined;\n }\n };\n });\n };\n\n _proto3.flatMap = function flatMap(fn) {\n var _this6 = this;\n\n if (typeof fn !== 'function') throw new TypeError(fn + ' is not a function');\n var C = getSpecies(this);\n return new C(function (observer) {\n var subscriptions = [];\n\n var outer = _this6.subscribe({\n next: function (value) {\n if (fn) {\n try {\n value = fn(value);\n } catch (e) {\n return observer.error(e);\n }\n }\n\n var inner = C.from(value).subscribe({\n next: function (value) {\n observer.next(value);\n },\n error: function (e) {\n observer.error(e);\n },\n complete: function () {\n var i = subscriptions.indexOf(inner);\n if (i >= 0) subscriptions.splice(i, 1);\n completeIfDone();\n }\n });\n subscriptions.push(inner);\n },\n error: function (e) {\n observer.error(e);\n },\n complete: function () {\n completeIfDone();\n }\n });\n\n function completeIfDone() {\n if (outer.closed && subscriptions.length === 0) observer.complete();\n }\n\n return function () {\n subscriptions.forEach(function (s) {\n return s.unsubscribe();\n });\n outer.unsubscribe();\n };\n });\n };\n\n _proto3[SymbolObservable] = function () {\n return this;\n };\n\n Observable.from = 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\n for (var _iterator = _createForOfIteratorHelperLoose(method.call(x)), _step; !(_step = _iterator()).done;) {\n var item = _step.value;\n observer.next(item);\n if (observer.closed) return;\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 Observable.of = 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 _createClass(Observable, null, [{\n key: SymbolSpecies,\n get: function () {\n return this;\n }\n }]);\n\n return Observable;\n}();\n\nif (hasSymbols()) {\n Object.defineProperty(Observable, Symbol('extensions'), {\n value: {\n symbol: SymbolObservable,\n hostReportError: hostReportError\n },\n configurable: true\n });\n}\n\nexport { Observable };\n","export function isNonNullObject(obj: any): obj is Record {\n return obj !== null && typeof obj === \"object\";\n}\n\nexport function isPlainObject(obj: any): obj is Record {\n return (\n obj !== null &&\n typeof obj === \"object\" &&\n (Object.getPrototypeOf(obj) === Object.prototype ||\n Object.getPrototypeOf(obj) === null)\n );\n}\n","import { invariant, newInvariantError } from \"../globals/index.js\";\n\nimport type {\n DocumentNode,\n FragmentDefinitionNode,\n InlineFragmentNode,\n SelectionNode,\n} from \"graphql\";\n\n// TODO(brian): A hack until this issue is resolved (https://github.com/graphql/graphql-js/issues/3356)\ntype Kind = any;\ntype OperationTypeNode = any;\n/**\n * Returns a query document which adds a single query operation that only\n * spreads the target fragment inside of it.\n *\n * So for example a document of:\n *\n * ```graphql\n * fragment foo on Foo { a b c }\n * ```\n *\n * Turns into:\n *\n * ```graphql\n * { ...foo }\n *\n * fragment foo on Foo { a b c }\n * ```\n *\n * The target fragment will either be the only fragment in the document, or a\n * fragment specified by the provided `fragmentName`. If there is more than one\n * fragment, but a `fragmentName` was not defined then an error will be thrown.\n */\nexport function getFragmentQueryDocument(\n document: DocumentNode,\n fragmentName?: string\n): DocumentNode {\n let actualFragmentName = fragmentName;\n\n // Build an array of all our fragment definitions that will be used for\n // validations. We also do some validations on the other definitions in the\n // document while building this list.\n const fragments: Array = [];\n document.definitions.forEach((definition) => {\n // Throw an error if we encounter an operation definition because we will\n // define our own operation definition later on.\n if (definition.kind === \"OperationDefinition\") {\n throw newInvariantError(\n `Found a %s operation%s. ` +\n \"No operations are allowed when using a fragment as a query. Only fragments are allowed.\",\n definition.operation,\n definition.name ? ` named '${definition.name.value}'` : \"\"\n );\n }\n // Add our definition to the fragments array if it is a fragment\n // definition.\n if (definition.kind === \"FragmentDefinition\") {\n fragments.push(definition);\n }\n });\n\n // If the user did not give us a fragment name then let us try to get a\n // name from a single fragment in the definition.\n if (typeof actualFragmentName === \"undefined\") {\n invariant(\n fragments.length === 1,\n `Found %s fragments. \\`fragmentName\\` must be provided when there is not exactly 1 fragment.`,\n fragments.length\n );\n actualFragmentName = fragments[0].name.value;\n }\n\n // Generate a query document with an operation that simply spreads the\n // fragment inside of it.\n const query: DocumentNode = {\n ...document,\n definitions: [\n {\n kind: \"OperationDefinition\" as Kind,\n // OperationTypeNode is an enum\n operation: \"query\" as OperationTypeNode,\n selectionSet: {\n kind: \"SelectionSet\" as Kind,\n selections: [\n {\n kind: \"FragmentSpread\" as Kind,\n name: {\n kind: \"Name\" as Kind,\n value: actualFragmentName,\n },\n },\n ],\n },\n },\n ...document.definitions,\n ],\n };\n\n return query;\n}\n\n/**\n * This is an interface that describes a map from fragment names to fragment definitions.\n */\nexport interface FragmentMap {\n [fragmentName: string]: FragmentDefinitionNode;\n}\n\nexport type FragmentMapFunction = (\n fragmentName: string\n) => FragmentDefinitionNode | null;\n\n// Utility function that takes a list of fragment definitions and makes a hash out of them\n// that maps the name of the fragment to the fragment definition.\nexport function createFragmentMap(\n fragments: FragmentDefinitionNode[] = []\n): FragmentMap {\n const symTable: FragmentMap = {};\n fragments.forEach((fragment) => {\n symTable[fragment.name.value] = fragment;\n });\n return symTable;\n}\n\nexport function getFragmentFromSelection(\n selection: SelectionNode,\n fragmentMap?: FragmentMap | FragmentMapFunction\n): InlineFragmentNode | FragmentDefinitionNode | null {\n switch (selection.kind) {\n case \"InlineFragment\":\n return selection;\n case \"FragmentSpread\": {\n const fragmentName = selection.name.value;\n if (typeof fragmentMap === \"function\") {\n return fragmentMap(fragmentName);\n }\n const fragment = fragmentMap && fragmentMap[fragmentName];\n invariant(fragment, `No fragment named %s`, fragmentName);\n return fragment || null;\n }\n default:\n return null;\n }\n}\n","import type { CommonCache } from \"./common\";\n\ninterface PartialNode {\n value: V;\n newer: Node | null;\n older: Node | null;\n}\n\ninterface UnfinalizedNode extends PartialNode {\n keyRef?: undefined;\n key: K;\n}\n\ninterface FullNode extends PartialNode {\n keyRef: WeakRef;\n key?: undefined;\n}\n\ntype Node = FullNode | UnfinalizedNode;\n\nfunction noop() {}\nconst defaultDispose = noop;\n\nconst _WeakRef =\n typeof WeakRef !== \"undefined\"\n ? WeakRef\n : (function (value: T) {\n return { deref: () => value } satisfies Omit<\n WeakRef,\n typeof Symbol.toStringTag\n >;\n } as any as typeof WeakRef);\nconst _WeakMap = typeof WeakMap !== \"undefined\" ? WeakMap : Map;\nconst _FinalizationRegistry =\n typeof FinalizationRegistry !== \"undefined\"\n ? FinalizationRegistry\n : (function () {\n return {\n register: noop,\n unregister: noop,\n } satisfies Omit, typeof Symbol.toStringTag>;\n } as any as typeof FinalizationRegistry);\n\nconst finalizationBatchSize = 10024;\n\nexport class WeakCache\n implements CommonCache\n{\n private map = new _WeakMap>();\n private registry: FinalizationRegistry>;\n private newest: Node | null = null;\n private oldest: Node | null = null;\n private unfinalizedNodes: Set> = new Set();\n private finalizationScheduled = false;\n public size = 0;\n\n constructor(\n private max = Infinity,\n public dispose: (value: V, key?: K) => void = defaultDispose\n ) {\n this.registry = new _FinalizationRegistry>(\n this.deleteNode.bind(this)\n );\n }\n\n public has(key: K): boolean {\n return this.map.has(key);\n }\n\n public get(key: K): V | undefined {\n const node = this.getNode(key);\n return node && node.value;\n }\n\n private getNode(key: K): Node | undefined {\n const node = this.map.get(key);\n\n if (node && node !== this.newest) {\n const { older, newer } = node;\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\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 public set(key: K, value: V): V {\n let node = this.getNode(key);\n if (node) {\n return (node.value = value);\n }\n\n node = {\n key,\n 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\n this.scheduleFinalization(node);\n this.map.set(key, node);\n this.size++;\n\n return node.value;\n }\n\n public clean() {\n while (this.oldest && this.size > this.max) {\n this.deleteNode(this.oldest);\n }\n }\n\n private deleteNode(node: 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.size--;\n const key = node.key || (node.keyRef && node.keyRef.deref());\n this.dispose(node.value, key);\n if (!node.keyRef) {\n this.unfinalizedNodes.delete(node);\n } else {\n this.registry.unregister(node);\n }\n if (key) this.map.delete(key);\n }\n\n public delete(key: K): boolean {\n const node = this.map.get(key);\n if (node) {\n this.deleteNode(node);\n\n return true;\n }\n\n return false;\n }\n\n private scheduleFinalization(node: UnfinalizedNode) {\n this.unfinalizedNodes.add(node);\n if (!this.finalizationScheduled) {\n this.finalizationScheduled = true;\n queueMicrotask(this.finalize);\n }\n }\n\n private finalize = () => {\n const iterator = this.unfinalizedNodes.values();\n for (let i = 0; i < finalizationBatchSize; i++) {\n const node = iterator.next().value;\n if (!node) break;\n this.unfinalizedNodes.delete(node);\n const key = node.key;\n delete (node as unknown as FullNode).key;\n (node as unknown as FullNode).keyRef = new _WeakRef(key);\n this.registry.register(key, node, node);\n }\n if (this.unfinalizedNodes.size > 0) {\n queueMicrotask(this.finalize);\n } else {\n this.finalizationScheduled = false;\n }\n };\n}\n","import type { CommonCache } from \"./common\";\n\ninterface Node {\n key: K;\n value: V;\n newer: Node | null;\n older: Node | null;\n}\n\nfunction defaultDispose() {}\n\nexport class StrongCache implements CommonCache {\n private map = new Map>();\n private newest: Node | null = null;\n private oldest: Node | null = null;\n\n constructor(\n private max = Infinity,\n public dispose: (value: V, key: K) => void = defaultDispose,\n ) {}\n\n public has(key: K): boolean {\n return this.map.has(key);\n }\n\n public get(key: K): V | undefined {\n const node = this.getNode(key);\n return node && node.value;\n }\n\n public get size() {\n return this.map.size;\n }\n\n private getNode(key: K): Node | undefined {\n const node = this.map.get(key);\n\n if (node && node !== this.newest) {\n const { older, newer } = node;\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\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 public set(key: K, value: V): V {\n let node = this.getNode(key);\n if (node) {\n return node.value = value;\n }\n\n node = {\n key,\n 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\n this.map.set(key, node);\n\n return node.value;\n }\n\n public clean() {\n while (this.oldest && this.map.size > this.max) {\n this.delete(this.oldest.key);\n }\n }\n\n public delete(key: K): boolean {\n const node = this.map.get(key);\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\n return true;\n }\n\n return false;\n }\n}\n","import type { CommonCache } from \"@wry/caches\";\nimport { WeakCache, StrongCache } from \"@wry/caches\";\n\nconst scheduledCleanup = new WeakSet>();\nfunction schedule(cache: CommonCache) {\n if (!scheduledCleanup.has(cache)) {\n scheduledCleanup.add(cache);\n setTimeout(() => {\n cache.clean();\n scheduledCleanup.delete(cache);\n }, 100);\n }\n}\n/**\n * @internal\n * A version of WeakCache that will auto-schedule a cleanup of the cache when\n * a new item is added.\n * Throttled to once per 100ms.\n *\n * @privateRemarks\n * Should be used throughout the rest of the codebase instead of WeakCache,\n * with the notable exception of usage in `wrap` from `optimism` - that one\n * already handles cleanup and should remain a `WeakCache`.\n */\nexport const AutoCleanedWeakCache = function (\n max?: number | undefined,\n dispose?: ((value: any, key: any) => void) | undefined\n) {\n /*\n Some builds of `WeakCache` are function prototypes, some are classes.\n This library still builds with an ES5 target, so we can't extend the\n real classes.\n Instead, we have to use this workaround until we switch to a newer build\n target.\n */\n const cache = new WeakCache(max, dispose);\n cache.set = function (key: any, value: any) {\n schedule(this);\n return WeakCache.prototype.set.call(this, key, value);\n };\n return cache;\n} as any as typeof WeakCache;\n/**\n * @internal\n */\nexport type AutoCleanedWeakCache = WeakCache;\n\n/**\n * @internal\n * A version of StrongCache that will auto-schedule a cleanup of the cache when\n * a new item is added.\n * Throttled to once per 100ms.\n *\n * @privateRemarks\n * Should be used throughout the rest of the codebase instead of StrongCache,\n * with the notable exception of usage in `wrap` from `optimism` - that one\n * already handles cleanup and should remain a `StrongCache`.\n */\nexport const AutoCleanedStrongCache = function (\n max?: number | undefined,\n dispose?: ((value: any, key: any) => void) | undefined\n) {\n /*\n Some builds of `StrongCache` are function prototypes, some are classes.\n This library still builds with an ES5 target, so we can't extend the\n real classes.\n Instead, we have to use this workaround until we switch to a newer build\n target.\n */\n const cache = new StrongCache(max, dispose);\n cache.set = function (key: any, value: any) {\n schedule(this);\n return StrongCache.prototype.set.call(this, key, value);\n };\n return cache;\n} as any as typeof StrongCache;\n/**\n * @internal\n */\nexport type AutoCleanedStrongCache = StrongCache;\n","import { global } from \"../globals/index.js\";\n\ndeclare global {\n interface Window {\n [cacheSizeSymbol]?: Partial;\n }\n}\n\n/**\n * The cache sizes used by various Apollo Client caches.\n *\n * @remarks\n * All configurable caches hold memoized values. If an item is\n * cache-collected, it incurs only a small performance impact and\n * doesn't cause data loss. A smaller cache size might save you memory.\n *\n * You should choose cache sizes appropriate for storing a reasonable\n * number of values rather than every value. To prevent too much recalculation,\n * choose cache sizes that are at least large enough to hold memoized values for\n * all hooks/queries on the screen at any given time.\n */\n/*\n * We assume a \"base value\" of 1000 here, which is already very generous.\n * In most applications, it will be very unlikely that 1000 different queries\n * are on screen at the same time.\n */\nexport interface CacheSizes {\n /**\n * Cache size for the [`print`](https://github.com/apollographql/apollo-client/blob/main/src/utilities/graphql/print.ts) function.\n *\n * It is called with transformed `DocumentNode`s.\n *\n * @defaultValue\n * Defaults to `2000`.\n *\n * @remarks\n * This method is called to transform a GraphQL query AST parsed by `gql`\n * back into a GraphQL string.\n *\n * @privateRemarks\n * This method is called from the `QueryManager` and various `ApolloLink`s,\n * always with the \"serverQuery\", so the server-facing part of a transformed\n * `DocumentNode`.\n */\n print: number;\n /**\n * Cache size for the [`parser`](https://github.com/apollographql/apollo-client/blob/main/src/react/parser/index.ts) function.\n *\n * It is called with user-provided `DocumentNode`s.\n *\n * @defaultValue\n * Defaults to `1000`.\n *\n * @remarks\n * This method is called by HOCs and hooks.\n *\n * @privateRemarks\n * This function is used directly in HOCs, and nowadays mainly accessed by\n * calling `verifyDocumentType` from various hooks.\n * It is called with a user-provided DocumentNode.\n */\n parser: number;\n /**\n * Cache size for the cache of [`DocumentTransform`](https://github.com/apollographql/apollo-client/blob/main/src/utilities/graphql/DocumentTransform.ts)\n * instances with the `cache` option set to `true`.\n *\n * Can be called with user-defined or already-transformed `DocumentNode`s.\n *\n * @defaultValue\n * Defaults to `2000`.\n *\n * @remarks\n * The cache size here should be chosen with other `DocumentTransform`s in mind.\n * For example, if there was a `DocumentTransform` that would take `x` `DocumentNode`s,\n * and returned a differently-transformed `DocumentNode` depending if the app is\n * online or offline, then we assume that the cache returns `2*x` documents.\n * If that were concatenated with another `DocumentTransform` that would\n * also duplicate the cache size, you'd need to account for `4*x` documents\n * returned by the second transform.\n *\n * Due to an implementation detail of Apollo Client, if you use custom document\n * transforms you should always add `n` (the \"base\" number of user-provided\n * Documents) to the resulting cache size.\n *\n * If we assume that the user-provided transforms receive `n` documents and\n * return `n` documents, the cache size should be `2*n`.\n *\n * If we assume that the chain of user-provided transforms receive `n` documents and\n * return `4*n` documents, the cache size should be `5*n`.\n *\n * This size should also then be used in every other cache that mentions that\n * it operates on a \"transformed\" `DocumentNode`.\n *\n * @privateRemarks\n * Cache size for the `performWork` method of each [`DocumentTransform`](https://github.com/apollographql/apollo-client/blob/main/src/utilities/graphql/DocumentTransform.ts).\n *\n * No user-provided DocumentNode will actually be \"the last one\", as we run the\n * `defaultDocumentTransform` before *and* after the user-provided transforms.\n * For that reason, we need the extra `n` here - `n` for \"before transformation\"\n * plus the actual maximum cache size of the user-provided transform chain.\n *\n * This method is called from `transformDocument`, which is called from\n * `QueryManager` with a user-provided DocumentNode.\n * It is also called with already-transformed DocumentNodes, assuming the\n * user provided additional transforms.\n *\n */\n \"documentTransform.cache\": number;\n /**\n * A cache inside of [`QueryManager`](https://github.com/apollographql/apollo-client/blob/main/src/core/QueryManager.ts).\n *\n * It is called with transformed `DocumentNode`s.\n *\n * @defaultValue\n * Defaults to `2000`.\n *\n * @privateRemarks\n * Cache size for the `transformCache` used in the `getDocumentInfo` method of `QueryManager`.\n * Called throughout the `QueryManager` with transformed DocumentNodes.\n */\n \"queryManager.getDocumentInfo\": number;\n /**\n * A cache inside of [`PersistedQueryLink`](https://github.com/apollographql/apollo-client/blob/main/src/link/persisted-queries/index.ts).\n *\n * It is called with transformed `DocumentNode`s.\n *\n * @defaultValue\n * Defaults to `2000`.\n *\n * @remarks\n * This cache is used to cache the hashes of persisted queries.\n *\n * @privateRemarks\n * Cache size for the `hashesByQuery` cache in the `PersistedQueryLink`.\n */\n \"PersistedQueryLink.persistedQueryHashes\": number;\n /**\n * Cache used by [`canonicalStringify`](https://github.com/apollographql/apollo-client/blob/main/src/utilities/common/canonicalStringify.ts).\n *\n * @defaultValue\n * Defaults to `1000`.\n *\n * @remarks\n * This cache contains the sorted keys of objects that are stringified by\n * `canonicalStringify`.\n * It uses the stringified unsorted keys of objects as keys.\n * The cache will not grow beyond the size of different object **shapes**\n * encountered in an application, no matter how much actual data gets stringified.\n *\n * @privateRemarks\n * Cache size for the `sortingMap` in `canonicalStringify`.\n */\n canonicalStringify: number;\n /**\n * A cache inside of [`FragmentRegistry`](https://github.com/apollographql/apollo-client/blob/main/src/cache/inmemory/fragmentRegistry.ts).\n *\n * Can be called with user-defined or already-transformed `DocumentNode`s.\n *\n * @defaultValue\n * Defaults to `2000`.\n *\n * @privateRemarks\n *\n * Cache size for the `transform` method of FragmentRegistry.\n * This function is called as part of the `defaultDocumentTransform` which will be called with\n * user-provided and already-transformed DocumentNodes.\n *\n */\n \"fragmentRegistry.transform\": number;\n /**\n * A cache inside of [`FragmentRegistry`](https://github.com/apollographql/apollo-client/blob/main/src/cache/inmemory/fragmentRegistry.ts).\n *\n * This function is called with fragment names in the form of a string.\n *\n * @defaultValue\n * Defaults to `1000`.\n *\n * @remarks\n * The size of this case should be chosen with the number of fragments in\n * your application in mind.\n *\n * Note:\n * This function is a dependency of `fragmentRegistry.transform`, so having too small of a cache size here\n * might involuntarily invalidate values in the `transform` cache.\n *\n * @privateRemarks\n * Cache size for the `lookup` method of FragmentRegistry.\n */\n \"fragmentRegistry.lookup\": number;\n /**\n * Cache size for the `findFragmentSpreads` method of [`FragmentRegistry`](https://github.com/apollographql/apollo-client/blob/main/src/cache/inmemory/fragmentRegistry.ts).\n *\n * This function is called with transformed `DocumentNode`s, as well as recursively\n * with every fragment spread referenced within that, or a fragment referenced by a\n * fragment spread.\n *\n * @defaultValue\n * Defaults to `4000`.\n *\n * @remarks\n *\n * Note: This function is a dependency of `fragmentRegistry.transform`, so having too small of cache size here\n * might involuntarily invalidate values in the `transform` cache.\n */\n \"fragmentRegistry.findFragmentSpreads\": number;\n /**\n * Cache size for the `getFragmentDoc` method of [`ApolloCache`](https://github.com/apollographql/apollo-client/blob/main/src/cache/core/cache.ts).\n *\n * This function is called with user-provided fragment definitions.\n *\n * @defaultValue\n * Defaults to `1000`.\n *\n * @remarks\n * This function is called from `readFragment` with user-provided fragment definitions.\n */\n \"cache.fragmentQueryDocuments\": number;\n /**\n * Cache used in [`removeTypenameFromVariables`](https://github.com/apollographql/apollo-client/blob/main/src/link/remove-typename/removeTypenameFromVariables.ts).\n *\n * This function is called transformed `DocumentNode`s.\n *\n * @defaultValue\n * Defaults to `2000`.\n *\n * @privateRemarks\n * Cache size for the `getVariableDefinitions` function of `removeTypenameFromVariables`.\n */\n \"removeTypenameFromVariables.getVariableDefinitions\": number;\n /**\n * Cache size for the `maybeBroadcastWatch` method on [`InMemoryCache`](https://github.com/apollographql/apollo-client/blob/main/src/cache/inmemory/inMemoryCache.ts).\n *\n * Note: `maybeBroadcastWatch` will be set to the `resultCacheMaxSize` option and\n * will fall back to this configuration value if the option is not set.\n *\n * @defaultValue\n * Defaults to `5000`.\n *\n * @remarks\n * This method is used for dependency tracking in the `InMemoryCache` and\n * prevents from unnecessary re-renders.\n * It is recommended to keep this value significantly higher than the number of\n * possible subscribers you will have active at the same time in your application\n * at any time.\n */\n \"inMemoryCache.maybeBroadcastWatch\": number;\n /**\n * Cache size for the `executeSelectionSet` method on [`StoreReader`](https://github.com/apollographql/apollo-client/blob/main/src/cache/inmemory/readFromStore.ts).\n *\n * Note:\n * `executeSelectionSet` will be set to the `resultCacheMaxSize` option and\n * will fall back to this configuration value if the option is not set.\n *\n * @defaultValue\n * Defaults to `10000`.\n *\n * @remarks\n * Every object that is read from the cache will be cached here, so it is\n * recommended to set this to a high value.\n */\n \"inMemoryCache.executeSelectionSet\": number;\n /**\n * Cache size for the `executeSubSelectedArray` method on [`StoreReader`](https://github.com/apollographql/apollo-client/blob/main/src/cache/inmemory/readFromStore.ts).\n *\n * Note:\n * `executeSubSelectedArray` will be set to the `resultCacheMaxSize` option and\n * will fall back to this configuration value if the option is not set.\n *\n * @defaultValue\n * Defaults to `5000`.\n *\n * @remarks\n * Every array that is read from the cache will be cached here, so it is\n * recommended to set this to a high value.\n */\n \"inMemoryCache.executeSubSelectedArray\": number;\n}\n\nconst cacheSizeSymbol = Symbol.for(\"apollo.cacheSize\");\n/**\n *\n * The global cache size configuration for Apollo Client.\n *\n * @remarks\n *\n * You can directly modify this object, but any modification will\n * only have an effect on caches that are created after the modification.\n *\n * So for global caches, such as `parser`, `canonicalStringify` and `print`,\n * you might need to call `.reset` on them, which will essentially re-create them.\n *\n * Alternatively, you can set `globalThis[Symbol.for(\"apollo.cacheSize\")]` before\n * you load the Apollo Client package:\n *\n * @example\n * ```ts\n * globalThis[Symbol.for(\"apollo.cacheSize\")] = {\n * parser: 100\n * } satisfies Partial // the `satisfies` is optional if using TypeScript\n * ```\n */\nexport const cacheSizes: Partial = { ...global[cacheSizeSymbol] };\n\nexport const enum defaultCacheSizes {\n parser = 1000,\n canonicalStringify = 1000,\n print = 2000,\n \"documentTransform.cache\" = 2000,\n \"queryManager.getDocumentInfo\" = 2000,\n \"PersistedQueryLink.persistedQueryHashes\" = 2000,\n \"fragmentRegistry.transform\" = 2000,\n \"fragmentRegistry.lookup\" = 1000,\n \"fragmentRegistry.findFragmentSpreads\" = 4000,\n \"cache.fragmentQueryDocuments\" = 1000,\n \"removeTypenameFromVariables.getVariableDefinitions\" = 2000,\n \"inMemoryCache.maybeBroadcastWatch\" = 5000,\n \"inMemoryCache.executeSelectionSet\" = 50000,\n \"inMemoryCache.executeSubSelectedArray\" = 10000,\n}\n","import type { OptimisticWrapperFunction } from \"optimism\";\nimport type {\n InMemoryCache,\n DocumentTransform,\n ApolloLink,\n ApolloCache,\n} from \"../../core/index.js\";\nimport type { ApolloClient } from \"../../core/index.js\";\nimport type { CacheSizes } from \"./sizes.js\";\nimport { cacheSizes, defaultCacheSizes } from \"./sizes.js\";\n\nconst globalCaches: {\n print?: () => number;\n parser?: () => number;\n canonicalStringify?: () => number;\n} = {};\n\nexport function registerGlobalCache(\n name: keyof typeof globalCaches,\n getSize: () => number\n) {\n globalCaches[name] = getSize;\n}\n\n/**\n * Transformative helper type to turn a function of the form\n * ```ts\n * (this: any) => R\n * ```\n * into a function of the form\n * ```ts\n * () => R\n * ```\n * preserving the return type, but removing the `this` parameter.\n *\n * @remarks\n *\n * Further down in the definitions of `_getApolloClientMemoryInternals`,\n * `_getApolloCacheMemoryInternals` and `_getInMemoryCacheMemoryInternals`,\n * having the `this` parameter annotation is extremely useful for type checking\n * inside the function.\n *\n * If this is preserved in the exported types, though, it leads to a situation\n * where `ApolloCache.getMemoryInternals` is a function that requires a `this`\n * of the type `ApolloCache`, while the extending class `InMemoryCache` has a\n * `getMemoryInternals` function that requires a `this` of the type\n * `InMemoryCache`.\n * This is not compatible with TypeScript's inheritence system (although it is\n * perfectly correct), and so TypeScript will complain loudly.\n *\n * We still want to define our functions with the `this` annotation, though,\n * and have the return type inferred.\n * (This requirement for return type inference here makes it impossible to use\n * a function overload that is more explicit on the inner overload than it is\n * on the external overload.)\n *\n * So in the end, we use this helper to remove the `this` annotation from the\n * exported function types, while keeping it in the internal implementation.\n *\n */\ntype RemoveThis = T extends (this: any) => infer R ? () => R : never;\n\n/**\n * For internal purposes only - please call `ApolloClient.getMemoryInternals` instead\n * @internal\n */\nexport const getApolloClientMemoryInternals =\n __DEV__ ?\n (_getApolloClientMemoryInternals as RemoveThis<\n typeof _getApolloClientMemoryInternals\n >)\n : undefined;\n\n/**\n * For internal purposes only - please call `ApolloClient.getMemoryInternals` instead\n * @internal\n */\nexport const getInMemoryCacheMemoryInternals =\n __DEV__ ?\n (_getInMemoryCacheMemoryInternals as RemoveThis<\n typeof _getInMemoryCacheMemoryInternals\n >)\n : undefined;\n\n/**\n * For internal purposes only - please call `ApolloClient.getMemoryInternals` instead\n * @internal\n */\nexport const getApolloCacheMemoryInternals =\n __DEV__ ?\n (_getApolloCacheMemoryInternals as RemoveThis<\n typeof _getApolloCacheMemoryInternals\n >)\n : undefined;\n\nfunction getCurrentCacheSizes() {\n // `defaultCacheSizes` is a `const enum` that will be inlined during build, so we have to reconstruct it's shape here\n const defaults: Record = {\n parser: defaultCacheSizes[\"parser\"],\n canonicalStringify: defaultCacheSizes[\"canonicalStringify\"],\n print: defaultCacheSizes[\"print\"],\n \"documentTransform.cache\": defaultCacheSizes[\"documentTransform.cache\"],\n \"queryManager.getDocumentInfo\":\n defaultCacheSizes[\"queryManager.getDocumentInfo\"],\n \"PersistedQueryLink.persistedQueryHashes\":\n defaultCacheSizes[\"PersistedQueryLink.persistedQueryHashes\"],\n \"fragmentRegistry.transform\":\n defaultCacheSizes[\"fragmentRegistry.transform\"],\n \"fragmentRegistry.lookup\": defaultCacheSizes[\"fragmentRegistry.lookup\"],\n \"fragmentRegistry.findFragmentSpreads\":\n defaultCacheSizes[\"fragmentRegistry.findFragmentSpreads\"],\n \"cache.fragmentQueryDocuments\":\n defaultCacheSizes[\"cache.fragmentQueryDocuments\"],\n \"removeTypenameFromVariables.getVariableDefinitions\":\n defaultCacheSizes[\"removeTypenameFromVariables.getVariableDefinitions\"],\n \"inMemoryCache.maybeBroadcastWatch\":\n defaultCacheSizes[\"inMemoryCache.maybeBroadcastWatch\"],\n \"inMemoryCache.executeSelectionSet\":\n defaultCacheSizes[\"inMemoryCache.executeSelectionSet\"],\n \"inMemoryCache.executeSubSelectedArray\":\n defaultCacheSizes[\"inMemoryCache.executeSubSelectedArray\"],\n };\n return Object.fromEntries(\n Object.entries(defaults).map(([k, v]) => [\n k,\n cacheSizes[k as keyof CacheSizes] || v,\n ])\n );\n}\n\nfunction _getApolloClientMemoryInternals(this: ApolloClient) {\n if (!__DEV__) throw new Error(\"only supported in development mode\");\n\n return {\n limits: getCurrentCacheSizes(),\n sizes: {\n print: globalCaches.print?.(),\n parser: globalCaches.parser?.(),\n canonicalStringify: globalCaches.canonicalStringify?.(),\n links: linkInfo(this.link),\n queryManager: {\n getDocumentInfo: this[\"queryManager\"][\"transformCache\"].size,\n documentTransforms: transformInfo(\n this[\"queryManager\"].documentTransform\n ),\n },\n ...(this.cache.getMemoryInternals?.() as Partial<\n ReturnType\n > &\n Partial>),\n },\n };\n}\n\nfunction _getApolloCacheMemoryInternals(this: ApolloCache) {\n return {\n cache: {\n fragmentQueryDocuments: getWrapperInformation(this[\"getFragmentDoc\"]),\n },\n };\n}\n\nfunction _getInMemoryCacheMemoryInternals(this: InMemoryCache) {\n const fragments = this.config.fragments as\n | undefined\n | {\n findFragmentSpreads?: Function;\n transform?: Function;\n lookup?: Function;\n };\n\n return {\n ..._getApolloCacheMemoryInternals.apply(this as any),\n addTypenameDocumentTransform: transformInfo(this[\"addTypenameTransform\"]),\n inMemoryCache: {\n executeSelectionSet: getWrapperInformation(\n this[\"storeReader\"][\"executeSelectionSet\"]\n ),\n executeSubSelectedArray: getWrapperInformation(\n this[\"storeReader\"][\"executeSubSelectedArray\"]\n ),\n maybeBroadcastWatch: getWrapperInformation(this[\"maybeBroadcastWatch\"]),\n },\n fragmentRegistry: {\n findFragmentSpreads: getWrapperInformation(\n fragments?.findFragmentSpreads\n ),\n lookup: getWrapperInformation(fragments?.lookup),\n transform: getWrapperInformation(fragments?.transform),\n },\n };\n}\n\nfunction isWrapper(f?: Function): f is OptimisticWrapperFunction {\n return !!f && \"dirtyKey\" in f;\n}\n\nfunction getWrapperInformation(f?: Function) {\n return isWrapper(f) ? f.size : undefined;\n}\n\nfunction isDefined(value: T | undefined | null): value is T {\n return value != null;\n}\n\nfunction transformInfo(transform?: DocumentTransform) {\n return recurseTransformInfo(transform).map((cache) => ({ cache }));\n}\n\nfunction recurseTransformInfo(transform?: DocumentTransform): number[] {\n return transform ?\n [\n getWrapperInformation(transform?.[\"performWork\"]),\n ...recurseTransformInfo(transform?.[\"left\"]),\n ...recurseTransformInfo(transform?.[\"right\"]),\n ].filter(isDefined)\n : [];\n}\n\nfunction linkInfo(link?: ApolloLink): unknown[] {\n return link ?\n [\n link?.getMemoryInternals?.(),\n ...linkInfo(link?.left),\n ...linkInfo(link?.right),\n ].filter(isDefined)\n : [];\n}\n","import {\n AutoCleanedStrongCache,\n cacheSizes,\n defaultCacheSizes,\n} from \"../../utilities/caching/index.js\";\nimport { registerGlobalCache } from \"../caching/getMemoryInternals.js\";\n\n/**\n * Like JSON.stringify, but with object keys always sorted in the same order.\n *\n * To achieve performant sorting, this function uses a Map from JSON-serialized\n * arrays of keys (in any order) to sorted arrays of the same keys, with a\n * single sorted array reference shared by all permutations of the keys.\n *\n * As a drawback, this function will add a little bit more memory for every\n * object encountered that has different (more, less, a different order of) keys\n * than in the past.\n *\n * In a typical application, this extra memory usage should not play a\n * significant role, as `canonicalStringify` will be called for only a limited\n * number of object shapes, and the cache will not grow beyond a certain point.\n * But in some edge cases, this could be a problem, so we provide\n * canonicalStringify.reset() as a way of clearing the cache.\n * */\nexport const canonicalStringify = Object.assign(\n function canonicalStringify(value: any): string {\n return JSON.stringify(value, stableObjectReplacer);\n },\n {\n reset() {\n // Clearing the sortingMap will reclaim all cached memory, without\n // affecting the logical results of canonicalStringify, but potentially\n // sacrificing performance until the cache is refilled.\n sortingMap = new AutoCleanedStrongCache(\n cacheSizes.canonicalStringify || defaultCacheSizes.canonicalStringify\n );\n },\n }\n);\n\nif (__DEV__) {\n registerGlobalCache(\"canonicalStringify\", () => sortingMap.size);\n}\n\n// Values are JSON-serialized arrays of object keys (in any order), and values\n// are sorted arrays of the same keys.\nlet sortingMap!: AutoCleanedStrongCache;\ncanonicalStringify.reset();\n\n// The JSON.stringify function takes an optional second argument called a\n// replacer function. This function is called for each key-value pair in the\n// object being stringified, and its return value is used instead of the\n// original value. If the replacer function returns a new value, that value is\n// stringified as JSON instead of the original value of the property.\n// https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/JSON/stringify#the_replacer_parameter\nfunction stableObjectReplacer(key: string, value: any) {\n if (value && typeof value === \"object\") {\n const proto = Object.getPrototypeOf(value);\n // We don't want to mess with objects that are not \"plain\" objects, which\n // means their prototype is either Object.prototype or null. This check also\n // prevents needlessly rearranging the indices of arrays.\n if (proto === Object.prototype || proto === null) {\n const keys = Object.keys(value);\n // If keys is already sorted, let JSON.stringify serialize the original\n // value instead of creating a new object with keys in the same order.\n if (keys.every(everyKeyInOrder)) return value;\n const unsortedKey = JSON.stringify(keys);\n let sortedKeys = sortingMap.get(unsortedKey);\n if (!sortedKeys) {\n keys.sort();\n const sortedKey = JSON.stringify(keys);\n // Checking for sortedKey in the sortingMap allows us to share the same\n // sorted array reference for all permutations of the same set of keys.\n sortedKeys = sortingMap.get(sortedKey) || keys;\n sortingMap.set(unsortedKey, sortedKeys);\n sortingMap.set(sortedKey, sortedKeys);\n }\n const sortedObject = Object.create(proto);\n // Reassigning the keys in sorted order will cause JSON.stringify to\n // serialize them in sorted order.\n sortedKeys.forEach((key) => {\n sortedObject[key] = value[key];\n });\n return sortedObject;\n }\n }\n return value;\n}\n\n// Since everything that happens in stableObjectReplacer benefits from being as\n// efficient as possible, we use a static function as the callback for\n// keys.every in order to test if the provided keys are already sorted without\n// allocating extra memory for a callback.\nfunction everyKeyInOrder(\n key: string,\n i: number,\n keys: readonly string[]\n): boolean {\n return i === 0 || keys[i - 1] <= key;\n}\n","import { newInvariantError } from \"../globals/index.js\";\n\nimport type {\n DirectiveNode,\n FieldNode,\n IntValueNode,\n FloatValueNode,\n StringValueNode,\n BooleanValueNode,\n ObjectValueNode,\n ListValueNode,\n EnumValueNode,\n NullValueNode,\n VariableNode,\n InlineFragmentNode,\n ValueNode,\n SelectionNode,\n NameNode,\n SelectionSetNode,\n DocumentNode,\n FragmentSpreadNode,\n} from \"graphql\";\n\nimport { isNonNullObject } from \"../common/objects.js\";\nimport type { FragmentMap } from \"./fragments.js\";\nimport { getFragmentFromSelection } from \"./fragments.js\";\nimport { canonicalStringify } from \"../common/canonicalStringify.js\";\n\nexport interface Reference {\n readonly __ref: string;\n}\n\nexport function makeReference(id: string): Reference {\n return { __ref: String(id) };\n}\n\nexport function isReference(obj: any): obj is Reference {\n return Boolean(\n obj && typeof obj === \"object\" && typeof obj.__ref === \"string\"\n );\n}\n\nexport type StoreValue =\n | number\n | string\n | string[]\n | Reference\n | Reference[]\n | null\n | undefined\n | void\n | Object;\n\nexport interface StoreObject {\n __typename?: string;\n [storeFieldName: string]: StoreValue;\n}\n\n/**\n * Workaround for a TypeScript quirk:\n * types per default have an implicit index signature that makes them\n * assignable to `StoreObject`.\n * interfaces do not have that implicit index signature, so they cannot\n * be assigned to `StoreObject`.\n * This type just maps over a type or interface that is passed in,\n * implicitly adding the index signature.\n * That way, the result can be assigned to `StoreObject`.\n *\n * This is important if some user-defined interface is used e.g.\n * in cache.modify, where the `toReference` method expects a\n * `StoreObject` as input.\n */\nexport type AsStoreObject = {\n [K in keyof T]: T[K];\n};\n\nexport function isDocumentNode(value: any): value is DocumentNode {\n return (\n isNonNullObject(value) &&\n (value as DocumentNode).kind === \"Document\" &&\n Array.isArray((value as DocumentNode).definitions)\n );\n}\n\nfunction isStringValue(value: ValueNode): value is StringValueNode {\n return value.kind === \"StringValue\";\n}\n\nfunction isBooleanValue(value: ValueNode): value is BooleanValueNode {\n return value.kind === \"BooleanValue\";\n}\n\nfunction isIntValue(value: ValueNode): value is IntValueNode {\n return value.kind === \"IntValue\";\n}\n\nfunction isFloatValue(value: ValueNode): value is FloatValueNode {\n return value.kind === \"FloatValue\";\n}\n\nfunction isVariable(value: ValueNode): value is VariableNode {\n return value.kind === \"Variable\";\n}\n\nfunction isObjectValue(value: ValueNode): value is ObjectValueNode {\n return value.kind === \"ObjectValue\";\n}\n\nfunction isListValue(value: ValueNode): value is ListValueNode {\n return value.kind === \"ListValue\";\n}\n\nfunction isEnumValue(value: ValueNode): value is EnumValueNode {\n return value.kind === \"EnumValue\";\n}\n\nfunction isNullValue(value: ValueNode): value is NullValueNode {\n return value.kind === \"NullValue\";\n}\n\nexport function valueToObjectRepresentation(\n argObj: any,\n name: NameNode,\n value: ValueNode,\n variables?: Object\n) {\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 const nestedArgObj = {};\n value.fields.map((obj) =>\n valueToObjectRepresentation(nestedArgObj, obj.name, obj.value, variables)\n );\n argObj[name.value] = nestedArgObj;\n } else if (isVariable(value)) {\n const variableValue = (variables || ({} as any))[value.name.value];\n argObj[name.value] = variableValue;\n } else if (isListValue(value)) {\n argObj[name.value] = value.values.map((listValue) => {\n const nestedArgArrayObj = {};\n valueToObjectRepresentation(\n nestedArgArrayObj,\n name,\n listValue,\n variables\n );\n return (nestedArgArrayObj as any)[name.value];\n });\n } else if (isEnumValue(value)) {\n argObj[name.value] = (value as EnumValueNode).value;\n } else if (isNullValue(value)) {\n argObj[name.value] = null;\n } else {\n throw newInvariantError(\n `The inline argument \"%s\" of kind \"%s\"` +\n \"is not supported. Use variables instead of inline arguments to \" +\n \"overcome this limitation.\",\n name.value,\n (value as any).kind\n );\n }\n}\n\nexport function storeKeyNameFromField(\n field: FieldNode,\n variables?: Object\n): string {\n let directivesObj: any = null;\n if (field.directives) {\n directivesObj = {};\n field.directives.forEach((directive) => {\n directivesObj[directive.name.value] = {};\n\n if (directive.arguments) {\n directive.arguments.forEach(({ name, value }) =>\n valueToObjectRepresentation(\n directivesObj[directive.name.value],\n name,\n value,\n variables\n )\n );\n }\n });\n }\n\n let argObj: any = null;\n if (field.arguments && field.arguments.length) {\n argObj = {};\n field.arguments.forEach(({ name, value }) =>\n valueToObjectRepresentation(argObj, name, value, variables)\n );\n }\n\n return getStoreKeyName(field.name.value, argObj, directivesObj);\n}\n\nexport type Directives = {\n [directiveName: string]: {\n [argName: string]: any;\n };\n};\n\nconst KNOWN_DIRECTIVES: string[] = [\n \"connection\",\n \"include\",\n \"skip\",\n \"client\",\n \"rest\",\n \"export\",\n \"nonreactive\",\n];\n\n// Default stable JSON.stringify implementation used by getStoreKeyName. Can be\n// updated/replaced with something better by calling\n// getStoreKeyName.setStringify(newStringifyFunction).\nlet storeKeyNameStringify: (value: any) => string = canonicalStringify;\n\nexport const getStoreKeyName = Object.assign(\n function (\n fieldName: string,\n args?: Record | null,\n directives?: Directives\n ): string {\n if (\n args &&\n directives &&\n directives[\"connection\"] &&\n directives[\"connection\"][\"key\"]\n ) {\n if (\n directives[\"connection\"][\"filter\"] &&\n (directives[\"connection\"][\"filter\"] as string[]).length > 0\n ) {\n const filterKeys =\n directives[\"connection\"][\"filter\"] ?\n (directives[\"connection\"][\"filter\"] as string[])\n : [];\n filterKeys.sort();\n\n const filteredArgs = {} as { [key: string]: any };\n filterKeys.forEach((key) => {\n filteredArgs[key] = args[key];\n });\n\n return `${directives[\"connection\"][\"key\"]}(${storeKeyNameStringify(\n filteredArgs\n )})`;\n } else {\n return directives[\"connection\"][\"key\"];\n }\n }\n\n let completeFieldName: string = fieldName;\n\n if (args) {\n // We can't use `JSON.stringify` here since it's non-deterministic,\n // and can lead to different store key names being created even though\n // the `args` object used during creation has the same properties/values.\n const stringifiedArgs: string = storeKeyNameStringify(args);\n completeFieldName += `(${stringifiedArgs})`;\n }\n\n if (directives) {\n Object.keys(directives).forEach((key) => {\n if (KNOWN_DIRECTIVES.indexOf(key) !== -1) return;\n if (directives[key] && Object.keys(directives[key]).length) {\n completeFieldName += `@${key}(${storeKeyNameStringify(\n directives[key]\n )})`;\n } else {\n completeFieldName += `@${key}`;\n }\n });\n }\n\n return completeFieldName;\n },\n {\n setStringify(s: typeof storeKeyNameStringify) {\n const previous = storeKeyNameStringify;\n storeKeyNameStringify = s;\n return previous;\n },\n }\n);\n\nexport function argumentsObjectFromField(\n field: FieldNode | DirectiveNode,\n variables?: Record\n): Object | null {\n if (field.arguments && field.arguments.length) {\n const argObj: Object = {};\n field.arguments.forEach(({ name, value }) =>\n valueToObjectRepresentation(argObj, name, value, variables)\n );\n return argObj;\n }\n return null;\n}\n\nexport function resultKeyNameFromField(field: FieldNode): string {\n return field.alias ? field.alias.value : field.name.value;\n}\n\nexport function getTypenameFromResult(\n result: Record,\n selectionSet: SelectionSetNode,\n fragmentMap?: FragmentMap\n): string | undefined {\n let fragments: undefined | Array;\n for (const selection of selectionSet.selections) {\n if (isField(selection)) {\n if (selection.name.value === \"__typename\") {\n return result[resultKeyNameFromField(selection)];\n }\n } else if (fragments) {\n fragments.push(selection);\n } else {\n fragments = [selection];\n }\n }\n if (typeof result.__typename === \"string\") {\n return result.__typename;\n }\n if (fragments) {\n for (const selection of fragments) {\n const typename = getTypenameFromResult(\n result,\n getFragmentFromSelection(selection, fragmentMap)!.selectionSet,\n fragmentMap\n );\n if (typeof typename === \"string\") {\n return typename;\n }\n }\n }\n}\n\nexport function isField(selection: SelectionNode): selection is FieldNode {\n return selection.kind === \"Field\";\n}\n\nexport function isInlineFragment(\n selection: SelectionNode\n): selection is InlineFragmentNode {\n return selection.kind === \"InlineFragment\";\n}\n\nexport type VariableValue = (node: VariableNode) => any;\n","import { invariant, newInvariantError } from \"../globals/index.js\";\n\nimport type {\n DocumentNode,\n OperationDefinitionNode,\n FragmentDefinitionNode,\n ValueNode,\n} from \"graphql\";\n\nimport { valueToObjectRepresentation } from \"./storeUtils.js\";\n\ntype OperationDefinitionWithName = OperationDefinitionNode & {\n name: NonNullable;\n};\n\n// Checks the document for errors and throws an exception if there is an error.\nexport function checkDocument(doc: DocumentNode) {\n invariant(\n doc && doc.kind === \"Document\",\n `Expecting a parsed GraphQL document. Perhaps you need to wrap the query \\\nstring in a \"gql\" tag? http://docs.apollostack.com/apollo-client/core.html#gql`\n );\n\n const operations = doc.definitions\n .filter((d) => d.kind !== \"FragmentDefinition\")\n .map((definition) => {\n if (definition.kind !== \"OperationDefinition\") {\n throw newInvariantError(\n `Schema type definitions not allowed in queries. Found: \"%s\"`,\n definition.kind\n );\n }\n return definition;\n });\n\n invariant(\n operations.length <= 1,\n `Ambiguous GraphQL document: contains %s operations`,\n operations.length\n );\n\n return doc;\n}\n\nexport function getOperationDefinition(\n doc: DocumentNode\n): OperationDefinitionNode | undefined {\n checkDocument(doc);\n return doc.definitions.filter(\n (definition): definition is OperationDefinitionNode =>\n definition.kind === \"OperationDefinition\"\n )[0];\n}\n\nexport function getOperationName(doc: DocumentNode): string | null {\n return (\n doc.definitions\n .filter(\n (definition): definition is OperationDefinitionWithName =>\n definition.kind === \"OperationDefinition\" && !!definition.name\n )\n .map((x) => x.name.value)[0] || null\n );\n}\n\n// Returns the FragmentDefinitions from a particular document as an array\nexport function getFragmentDefinitions(\n doc: DocumentNode\n): FragmentDefinitionNode[] {\n return doc.definitions.filter(\n (definition): definition is FragmentDefinitionNode =>\n definition.kind === \"FragmentDefinition\"\n );\n}\n\nexport function getQueryDefinition(doc: DocumentNode): OperationDefinitionNode {\n const queryDef = getOperationDefinition(doc)!;\n\n invariant(\n queryDef && queryDef.operation === \"query\",\n \"Must contain a query definition.\"\n );\n\n return queryDef;\n}\n\nexport function getFragmentDefinition(\n doc: DocumentNode\n): FragmentDefinitionNode {\n invariant(\n doc.kind === \"Document\",\n `Expecting a parsed GraphQL document. Perhaps you need to wrap the query \\\nstring in a \"gql\" tag? http://docs.apollostack.com/apollo-client/core.html#gql`\n );\n\n invariant(\n doc.definitions.length <= 1,\n \"Fragment must have exactly one definition.\"\n );\n\n const fragmentDef = doc.definitions[0] as FragmentDefinitionNode;\n\n invariant(\n fragmentDef.kind === \"FragmentDefinition\",\n \"Must be a fragment definition.\"\n );\n\n return fragmentDef as FragmentDefinitionNode;\n}\n\n/**\n * Returns the first operation definition found in this document.\n * If no operation definition is found, the first fragment definition will be returned.\n * If no definitions are found, an error will be thrown.\n */\nexport function getMainDefinition(\n queryDoc: DocumentNode\n): OperationDefinitionNode | FragmentDefinitionNode {\n checkDocument(queryDoc);\n\n let fragmentDefinition;\n\n for (let definition of queryDoc.definitions) {\n if (definition.kind === \"OperationDefinition\") {\n const operation = (definition as OperationDefinitionNode).operation;\n if (\n operation === \"query\" ||\n operation === \"mutation\" ||\n operation === \"subscription\"\n ) {\n return definition as OperationDefinitionNode;\n }\n }\n if (definition.kind === \"FragmentDefinition\" && !fragmentDefinition) {\n // we do this because we want to allow multiple fragment definitions\n // to precede an operation definition.\n fragmentDefinition = definition as FragmentDefinitionNode;\n }\n }\n\n if (fragmentDefinition) {\n return fragmentDefinition;\n }\n\n throw newInvariantError(\n \"Expected a parsed GraphQL query with a query, mutation, subscription, or a fragment.\"\n );\n}\n\nexport function getDefaultValues(\n definition: OperationDefinitionNode | undefined\n): Record {\n const defaultValues = Object.create(null);\n const defs = definition && definition.variableDefinitions;\n if (defs && defs.length) {\n defs.forEach((def) => {\n if (def.defaultValue) {\n valueToObjectRepresentation(\n defaultValues,\n def.variable.name,\n def.defaultValue as ValueNode\n );\n }\n });\n }\n return defaultValues;\n}\n","import { newInvariantError, invariant } from \"../../utilities/globals/index.js\";\n\nimport type { Observer } from \"../../utilities/index.js\";\nimport { Observable } from \"../../utilities/index.js\";\nimport type {\n NextLink,\n Operation,\n RequestHandler,\n FetchResult,\n GraphQLRequest,\n} from \"./types.js\";\nimport {\n validateOperation,\n createOperation,\n transformOperation,\n} from \"../utils/index.js\";\n\nfunction passthrough(op: Operation, forward: NextLink) {\n return (forward ? forward(op) : Observable.of()) as Observable;\n}\n\nfunction toLink(handler: RequestHandler | ApolloLink) {\n return typeof handler === \"function\" ? new ApolloLink(handler) : handler;\n}\n\nfunction isTerminating(link: ApolloLink): boolean {\n return link.request.length <= 1;\n}\n\nexport class ApolloLink {\n public static empty(): ApolloLink {\n return new ApolloLink(() => Observable.of());\n }\n\n public static from(links: (ApolloLink | RequestHandler)[]): ApolloLink {\n if (links.length === 0) return ApolloLink.empty();\n return links.map(toLink).reduce((x, y) => x.concat(y)) as ApolloLink;\n }\n\n public static split(\n test: (op: Operation) => boolean,\n left: ApolloLink | RequestHandler,\n right?: ApolloLink | RequestHandler\n ): ApolloLink {\n const leftLink = toLink(left);\n const rightLink = toLink(right || new ApolloLink(passthrough));\n\n let ret: ApolloLink;\n if (isTerminating(leftLink) && isTerminating(rightLink)) {\n ret = new ApolloLink((operation) => {\n return test(operation) ?\n leftLink.request(operation) || Observable.of()\n : rightLink.request(operation) || Observable.of();\n });\n } else {\n ret = new ApolloLink((operation, forward) => {\n return test(operation) ?\n leftLink.request(operation, forward) || Observable.of()\n : rightLink.request(operation, forward) || Observable.of();\n });\n }\n return Object.assign(ret, { left: leftLink, right: rightLink });\n }\n\n public static execute(\n link: ApolloLink,\n operation: GraphQLRequest\n ): Observable {\n return (\n link.request(\n createOperation(\n operation.context,\n transformOperation(validateOperation(operation))\n )\n ) || Observable.of()\n );\n }\n\n public static concat(\n first: ApolloLink | RequestHandler,\n second: ApolloLink | RequestHandler\n ) {\n const firstLink = toLink(first);\n if (isTerminating(firstLink)) {\n invariant.warn(\n `You are calling concat on a terminating link, which will have no effect %o`,\n firstLink\n );\n return firstLink;\n }\n const nextLink = toLink(second);\n\n let ret: ApolloLink;\n if (isTerminating(nextLink)) {\n ret = new ApolloLink(\n (operation) =>\n firstLink.request(\n operation,\n (op) => nextLink.request(op) || Observable.of()\n ) || Observable.of()\n );\n } else {\n ret = new ApolloLink((operation, forward) => {\n return (\n firstLink.request(operation, (op) => {\n return nextLink.request(op, forward) || Observable.of();\n }) || Observable.of()\n );\n });\n }\n return Object.assign(ret, { left: firstLink, right: nextLink });\n }\n\n constructor(request?: RequestHandler) {\n if (request) this.request = request;\n }\n\n public split(\n test: (op: Operation) => boolean,\n left: ApolloLink | RequestHandler,\n right?: ApolloLink | RequestHandler\n ): ApolloLink {\n return this.concat(\n ApolloLink.split(test, left, right || new ApolloLink(passthrough))\n );\n }\n\n public concat(next: ApolloLink | RequestHandler): ApolloLink {\n return ApolloLink.concat(this, next);\n }\n\n public request(\n operation: Operation,\n forward?: NextLink\n ): Observable | null {\n throw newInvariantError(\"request is not implemented\");\n }\n\n protected onError(\n error: any,\n observer?: Observer\n ): false | void {\n if (observer && observer.error) {\n observer.error(error);\n // Returning false indicates that observer.error does not need to be\n // called again, since it was already called (on the previous line).\n // Calling observer.error again would not cause any real problems,\n // since only the first call matters, but custom onError functions\n // might have other reasons for wanting to prevent the default\n // behavior by returning false.\n return false;\n }\n // Throw errors will be passed to observer.error.\n throw error;\n }\n\n public setOnError(fn: ApolloLink[\"onError\"]): this {\n this.onError = fn;\n return this;\n }\n\n /**\n * @internal\n * Used to iterate through all links that are concatenations or `split` links.\n */\n readonly left?: ApolloLink;\n /**\n * @internal\n * Used to iterate through all links that are concatenations or `split` links.\n */\n readonly right?: ApolloLink;\n\n /**\n * @internal\n * Can be provided by a link that has an internal cache to report it's memory details.\n */\n getMemoryInternals?: () => unknown;\n}\n","import type { GraphQLRequest, Operation } from \"../core/index.js\";\n\nexport function createOperation(\n starting: any,\n operation: GraphQLRequest\n): Operation {\n let context = { ...starting };\n const setContext = (next: any) => {\n if (typeof next === \"function\") {\n context = { ...context, ...next(context) };\n } else {\n context = { ...context, ...next };\n }\n };\n const getContext = () => ({ ...context });\n\n Object.defineProperty(operation, \"setContext\", {\n enumerable: false,\n value: setContext,\n });\n\n Object.defineProperty(operation, \"getContext\", {\n enumerable: false,\n value: getContext,\n });\n\n return operation as Operation;\n}\n","import type { GraphQLRequest, Operation } from \"../core/index.js\";\nimport { getOperationName } from \"../../utilities/index.js\";\n\nexport function transformOperation(operation: GraphQLRequest): GraphQLRequest {\n const transformedOperation: GraphQLRequest = {\n variables: operation.variables || {},\n extensions: operation.extensions || {},\n operationName: operation.operationName,\n query: operation.query,\n };\n\n // Best guess at an operation name\n if (!transformedOperation.operationName) {\n transformedOperation.operationName =\n typeof transformedOperation.query !== \"string\" ?\n getOperationName(transformedOperation.query) || undefined\n : \"\";\n }\n\n return transformedOperation as Operation;\n}\n","import { newInvariantError } from \"../../utilities/globals/index.js\";\nimport type { GraphQLRequest } from \"../core/index.js\";\n\nexport function validateOperation(operation: GraphQLRequest): GraphQLRequest {\n const OPERATION_FIELDS = [\n \"query\",\n \"operationName\",\n \"variables\",\n \"extensions\",\n \"context\",\n ];\n for (let key of Object.keys(operation)) {\n if (OPERATION_FIELDS.indexOf(key) < 0) {\n throw newInvariantError(`illegal argument: %s`, key);\n }\n }\n\n return operation;\n}\n","export default function _arrayWithHoles(arr) {\n if (Array.isArray(arr)) return arr;\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 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 = null == arr ? null : \"undefined\" != typeof Symbol && arr[Symbol.iterator] || arr[\"@@iterator\"];\n if (null != _i) {\n var _s,\n _e,\n _x,\n _r,\n _arr = [],\n _n = !0,\n _d = !1;\n try {\n if (_x = (_i = _i.call(arr)).next, 0 === i) {\n if (Object(_i) !== _i) return;\n _n = !1;\n } else for (; !(_n = (_s = _x.call(_i)).done) && (_arr.push(_s.value), _arr.length !== i); _n = !0);\n } catch (err) {\n _d = !0, _e = err;\n } finally {\n try {\n if (!_n && null != _i[\"return\"] && (_r = _i[\"return\"](), Object(_r) !== _r)) return;\n } finally {\n if (_d) throw _e;\n }\n }\n return _arr;\n }\n}","import unsupportedIterableToArray from \"./unsupportedIterableToArray.js\";\nexport default function _createForOfIteratorHelper(o, allowArrayLike) {\n var it = typeof Symbol !== \"undefined\" && o[Symbol.iterator] || o[\"@@iterator\"];\n if (!it) {\n if (Array.isArray(o) || (it = unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") {\n if (it) o = it;\n var i = 0;\n var F = function F() {};\n return {\n s: F,\n n: function n() {\n if (i >= o.length) return {\n done: true\n };\n return {\n done: false,\n value: o[i++]\n };\n },\n e: function e(_e) {\n throw _e;\n },\n f: F\n };\n }\n throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n }\n var normalCompletion = true,\n didErr = false,\n err;\n return {\n s: function s() {\n it = it.call(o);\n },\n n: function n() {\n var step = it.next();\n normalCompletion = step.done;\n return step;\n },\n e: function e(_e2) {\n didErr = true;\n err = _e2;\n },\n f: function f() {\n try {\n if (!normalCompletion && it[\"return\"] != null) it[\"return\"]();\n } finally {\n if (didErr) throw err;\n }\n }\n };\n}","export function devAssert(condition, message) {\n const booleanCondition = Boolean(condition);\n\n if (!booleanCondition) {\n throw new Error(message);\n }\n}\n","const MAX_ARRAY_LENGTH = 10;\nconst MAX_RECURSIVE_DEPTH = 2;\n/**\n * Used to print values in error messages.\n */\n\nexport 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 ${value.name}]` : '[function]';\n\n case 'object':\n return formatObjectValue(value, seenValues);\n\n default:\n return String(value);\n }\n}\n\nfunction formatObjectValue(value, previouslySeenValues) {\n if (value === null) {\n return 'null';\n }\n\n if (previouslySeenValues.includes(value)) {\n return '[Circular]';\n }\n\n const seenValues = [...previouslySeenValues, value];\n\n if (isJSONable(value)) {\n const jsonValue = value.toJSON(); // check for infinite recursion\n\n if (jsonValue !== value) {\n return typeof jsonValue === 'string'\n ? jsonValue\n : formatValue(jsonValue, seenValues);\n }\n } else if (Array.isArray(value)) {\n return formatArray(value, seenValues);\n }\n\n return formatObject(value, seenValues);\n}\n\nfunction isJSONable(value) {\n return typeof value.toJSON === 'function';\n}\n\nfunction formatObject(object, seenValues) {\n const entries = Object.entries(object);\n\n if (entries.length === 0) {\n return '{}';\n }\n\n if (seenValues.length > MAX_RECURSIVE_DEPTH) {\n return '[' + getObjectTag(object) + ']';\n }\n\n const properties = entries.map(\n ([key, value]) => key + ': ' + formatValue(value, seenValues),\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 const len = Math.min(MAX_ARRAY_LENGTH, array.length);\n const remaining = array.length - len;\n const items = [];\n\n for (let 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(`... ${remaining} more items`);\n }\n\n return '[' + items.join(', ') + ']';\n}\n\nfunction getObjectTag(object) {\n const tag = Object.prototype.toString\n .call(object)\n .replace(/^\\[object /, '')\n .replace(/]$/, '');\n\n if (tag === 'Object' && typeof object.constructor === 'function') {\n const name = object.constructor.name;\n\n if (typeof name === 'string' && name !== '') {\n return name;\n }\n }\n\n return tag;\n}\n","/**\n * Contains a range of UTF-8 character offsets and token references that\n * identify the region of the source from which the AST derived.\n */\nexport class Location {\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 constructor(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 get [Symbol.toStringTag]() {\n return 'Location';\n }\n\n toJSON() {\n return {\n start: this.start,\n end: this.end,\n };\n }\n}\n/**\n * Represents a range of characters represented by a lexical token\n * within a Source.\n */\n\nexport class Token {\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 * Note: is undefined for punctuation tokens, but typed as string for\n * convenience in the parser.\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 constructor(kind, start, end, line, column, value) {\n this.kind = kind;\n this.start = start;\n this.end = end;\n this.line = line;\n this.column = column; // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n\n this.value = value;\n this.prev = null;\n this.next = null;\n }\n\n get [Symbol.toStringTag]() {\n return 'Token';\n }\n\n toJSON() {\n return {\n kind: this.kind,\n value: this.value,\n line: this.line,\n column: this.column,\n };\n }\n}\n/**\n * The list of all possible AST node types.\n */\n\n/**\n * @internal\n */\nexport const QueryDocumentKeys = {\n Name: [],\n Document: ['definitions'],\n OperationDefinition: [\n 'name',\n 'variableDefinitions',\n 'directives',\n 'selectionSet',\n ],\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: [\n 'name', // Note: fragment variable definitions are deprecated and will removed in v17.0.0\n 'variableDefinitions',\n 'typeCondition',\n 'directives',\n 'selectionSet',\n ],\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: [\n 'description',\n 'name',\n 'interfaces',\n 'directives',\n 'fields',\n ],\n FieldDefinition: ['description', 'name', 'arguments', 'type', 'directives'],\n InputValueDefinition: [\n 'description',\n 'name',\n 'type',\n 'defaultValue',\n 'directives',\n ],\n InterfaceTypeDefinition: [\n 'description',\n 'name',\n 'interfaces',\n 'directives',\n 'fields',\n ],\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};\nconst kindValues = new Set(Object.keys(QueryDocumentKeys));\n/**\n * @internal\n */\n\nexport function isNode(maybeNode) {\n const maybeKind =\n maybeNode === null || maybeNode === void 0 ? void 0 : maybeNode.kind;\n return typeof maybeKind === 'string' && kindValues.has(maybeKind);\n}\n/** Name */\n\nvar OperationTypeNode;\n\n(function (OperationTypeNode) {\n OperationTypeNode['QUERY'] = 'query';\n OperationTypeNode['MUTATION'] = 'mutation';\n OperationTypeNode['SUBSCRIPTION'] = 'subscription';\n})(OperationTypeNode || (OperationTypeNode = {}));\n\nexport { OperationTypeNode };\n","/**\n * The set of allowed kind values for AST nodes.\n */\nvar Kind;\n\n(function (Kind) {\n Kind['NAME'] = 'Name';\n Kind['DOCUMENT'] = 'Document';\n Kind['OPERATION_DEFINITION'] = 'OperationDefinition';\n Kind['VARIABLE_DEFINITION'] = 'VariableDefinition';\n Kind['SELECTION_SET'] = 'SelectionSet';\n Kind['FIELD'] = 'Field';\n Kind['ARGUMENT'] = 'Argument';\n Kind['FRAGMENT_SPREAD'] = 'FragmentSpread';\n Kind['INLINE_FRAGMENT'] = 'InlineFragment';\n Kind['FRAGMENT_DEFINITION'] = 'FragmentDefinition';\n Kind['VARIABLE'] = 'Variable';\n Kind['INT'] = 'IntValue';\n Kind['FLOAT'] = 'FloatValue';\n Kind['STRING'] = 'StringValue';\n Kind['BOOLEAN'] = 'BooleanValue';\n Kind['NULL'] = 'NullValue';\n Kind['ENUM'] = 'EnumValue';\n Kind['LIST'] = 'ListValue';\n Kind['OBJECT'] = 'ObjectValue';\n Kind['OBJECT_FIELD'] = 'ObjectField';\n Kind['DIRECTIVE'] = 'Directive';\n Kind['NAMED_TYPE'] = 'NamedType';\n Kind['LIST_TYPE'] = 'ListType';\n Kind['NON_NULL_TYPE'] = 'NonNullType';\n Kind['SCHEMA_DEFINITION'] = 'SchemaDefinition';\n Kind['OPERATION_TYPE_DEFINITION'] = 'OperationTypeDefinition';\n Kind['SCALAR_TYPE_DEFINITION'] = 'ScalarTypeDefinition';\n Kind['OBJECT_TYPE_DEFINITION'] = 'ObjectTypeDefinition';\n Kind['FIELD_DEFINITION'] = 'FieldDefinition';\n Kind['INPUT_VALUE_DEFINITION'] = 'InputValueDefinition';\n Kind['INTERFACE_TYPE_DEFINITION'] = 'InterfaceTypeDefinition';\n Kind['UNION_TYPE_DEFINITION'] = 'UnionTypeDefinition';\n Kind['ENUM_TYPE_DEFINITION'] = 'EnumTypeDefinition';\n Kind['ENUM_VALUE_DEFINITION'] = 'EnumValueDefinition';\n Kind['INPUT_OBJECT_TYPE_DEFINITION'] = 'InputObjectTypeDefinition';\n Kind['DIRECTIVE_DEFINITION'] = 'DirectiveDefinition';\n Kind['SCHEMA_EXTENSION'] = 'SchemaExtension';\n Kind['SCALAR_TYPE_EXTENSION'] = 'ScalarTypeExtension';\n Kind['OBJECT_TYPE_EXTENSION'] = 'ObjectTypeExtension';\n Kind['INTERFACE_TYPE_EXTENSION'] = 'InterfaceTypeExtension';\n Kind['UNION_TYPE_EXTENSION'] = 'UnionTypeExtension';\n Kind['ENUM_TYPE_EXTENSION'] = 'EnumTypeExtension';\n Kind['INPUT_OBJECT_TYPE_EXTENSION'] = 'InputObjectTypeExtension';\n})(Kind || (Kind = {}));\n\nexport { Kind };\n/**\n * The enum type representing the possible kind values of AST nodes.\n *\n * @deprecated Please use `Kind`. Will be remove in v17.\n */\n","import { devAssert } from '../jsutils/devAssert.mjs';\nimport { inspect } from '../jsutils/inspect.mjs';\nimport { isNode, QueryDocumentKeys } from './ast.mjs';\nimport { Kind } from './kinds.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 const 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 * ```ts\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 *\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 three permutations of the\n * visitor API:\n *\n * 1) Named visitors triggered when entering a node of a specific kind.\n *\n * ```ts\n * visit(ast, {\n * Kind(node) {\n * // enter the \"Kind\" node\n * }\n * })\n * ```\n *\n * 2) Named visitors that trigger upon entering and leaving a node of a specific kind.\n *\n * ```ts\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 *\n * 3) Generic visitors that trigger upon entering and leaving any node.\n *\n * ```ts\n * visit(ast, {\n * enter(node) {\n * // enter any node\n * },\n * leave(node) {\n * // leave any node\n * }\n * })\n * ```\n */\n\nexport function visit(root, visitor, visitorKeys = QueryDocumentKeys) {\n const enterLeaveMap = new Map();\n\n for (const kind of Object.values(Kind)) {\n enterLeaveMap.set(kind, getEnterLeaveForKind(visitor, kind));\n }\n /* eslint-disable no-undef-init */\n\n let stack = undefined;\n let inArray = Array.isArray(root);\n let keys = [root];\n let index = -1;\n let edits = [];\n let node = root;\n let key = undefined;\n let parent = undefined;\n const path = [];\n const ancestors = [];\n /* eslint-enable no-undef-init */\n\n do {\n index++;\n const isLeaving = index === keys.length;\n const 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 let editOffset = 0;\n\n for (const [editKey, editValue] of edits) {\n const arrayKey = editKey - editOffset;\n\n if (editValue === null) {\n node.splice(arrayKey, 1);\n editOffset++;\n } else {\n node[arrayKey] = editValue;\n }\n }\n } else {\n node = Object.defineProperties(\n {},\n Object.getOwnPropertyDescriptors(node),\n );\n\n for (const [editKey, editValue] of edits) {\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 if (parent) {\n key = inArray ? index : keys[index];\n node = parent[key];\n\n if (node === null || node === undefined) {\n continue;\n }\n\n path.push(key);\n }\n\n let result;\n\n if (!Array.isArray(node)) {\n var _enterLeaveMap$get, _enterLeaveMap$get2;\n\n isNode(node) || devAssert(false, `Invalid AST Node: ${inspect(node)}.`);\n const visitFn = isLeaving\n ? (_enterLeaveMap$get = enterLeaveMap.get(node.kind)) === null ||\n _enterLeaveMap$get === void 0\n ? void 0\n : _enterLeaveMap$get.leave\n : (_enterLeaveMap$get2 = enterLeaveMap.get(node.kind)) === null ||\n _enterLeaveMap$get2 === void 0\n ? void 0\n : _enterLeaveMap$get2.enter;\n result =\n visitFn === null || visitFn === void 0\n ? void 0\n : 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 if (result === undefined && isEdited) {\n edits.push([key, node]);\n }\n\n if (isLeaving) {\n path.pop();\n } else {\n var _node$kind;\n\n stack = {\n inArray,\n index,\n keys,\n edits,\n prev: stack,\n };\n inArray = Array.isArray(node);\n keys = inArray\n ? node\n : (_node$kind = visitorKeys[node.kind]) !== null &&\n _node$kind !== void 0\n ? _node$kind\n : [];\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 // New root\n return edits[edits.length - 1][1];\n }\n\n return root;\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 const skipping = new Array(visitors.length).fill(null);\n const mergedVisitor = Object.create(null);\n\n for (const kind of Object.values(Kind)) {\n let hasVisitor = false;\n const enterList = new Array(visitors.length).fill(undefined);\n const leaveList = new Array(visitors.length).fill(undefined);\n\n for (let i = 0; i < visitors.length; ++i) {\n const { enter, leave } = getEnterLeaveForKind(visitors[i], kind);\n hasVisitor || (hasVisitor = enter != null || leave != null);\n enterList[i] = enter;\n leaveList[i] = leave;\n }\n\n if (!hasVisitor) {\n continue;\n }\n\n const mergedEnterLeave = {\n enter(...args) {\n const node = args[0];\n\n for (let i = 0; i < visitors.length; i++) {\n if (skipping[i] === null) {\n var _enterList$i;\n\n const result =\n (_enterList$i = enterList[i]) === null || _enterList$i === void 0\n ? void 0\n : _enterList$i.apply(visitors[i], args);\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(...args) {\n const node = args[0];\n\n for (let i = 0; i < visitors.length; i++) {\n if (skipping[i] === null) {\n var _leaveList$i;\n\n const result =\n (_leaveList$i = leaveList[i]) === null || _leaveList$i === void 0\n ? void 0\n : _leaveList$i.apply(visitors[i], args);\n\n if (result === BREAK) {\n skipping[i] = BREAK;\n } else if (result !== undefined && result !== false) {\n return result;\n }\n } else if (skipping[i] === node) {\n skipping[i] = null;\n }\n }\n },\n };\n mergedVisitor[kind] = mergedEnterLeave;\n }\n\n return mergedVisitor;\n}\n/**\n * Given a visitor instance and a node kind, return EnterLeaveVisitor for that kind.\n */\n\nexport function getEnterLeaveForKind(visitor, kind) {\n const kindVisitor = visitor[kind];\n\n if (typeof kindVisitor === 'object') {\n // { Kind: { enter() {}, leave() {} } }\n return kindVisitor;\n } else if (typeof kindVisitor === 'function') {\n // { Kind() {} }\n return {\n enter: kindVisitor,\n leave: undefined,\n };\n } // { enter() {}, leave() {} }\n\n return {\n enter: visitor.enter,\n leave: visitor.leave,\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 * @deprecated Please use `getEnterLeaveForKind` instead. Will be removed in v17\n */\n\n/* c8 ignore next 8 */\n\nexport function getVisitFn(visitor, kind, isLeaving) {\n const { enter, leave } = getEnterLeaveForKind(visitor, kind);\n return isLeaving ? leave : enter;\n}\n","import { invariant } from \"../globals/index.js\";\n\n// Provides the methods that allow QueryManager to handle the `skip` and\n// `include` directives within GraphQL.\nimport type {\n SelectionNode,\n VariableNode,\n BooleanValueNode,\n DirectiveNode,\n DocumentNode,\n ArgumentNode,\n ValueNode,\n ASTNode,\n} from \"graphql\";\nimport { visit, BREAK } from \"graphql\";\n\nexport type DirectiveInfo = {\n [fieldName: string]: { [argName: string]: any };\n};\n\nexport function shouldInclude(\n { directives }: SelectionNode,\n variables?: Record\n): boolean {\n if (!directives || !directives.length) {\n return true;\n }\n return getInclusionDirectives(directives).every(\n ({ directive, ifArgument }) => {\n let evaledValue: boolean = false;\n if (ifArgument.value.kind === \"Variable\") {\n evaledValue =\n variables && variables[(ifArgument.value as VariableNode).name.value];\n invariant(\n evaledValue !== void 0,\n `Invalid variable referenced in @%s directive.`,\n directive.name.value\n );\n } else {\n evaledValue = (ifArgument.value as BooleanValueNode).value;\n }\n return directive.name.value === \"skip\" ? !evaledValue : evaledValue;\n }\n );\n}\n\nexport function getDirectiveNames(root: ASTNode) {\n const names: string[] = [];\n\n visit(root, {\n Directive(node: DirectiveNode) {\n names.push(node.name.value);\n },\n });\n\n return names;\n}\n\nexport const hasAnyDirectives = (names: string[], root: ASTNode) =>\n hasDirectives(names, root, false);\n\nexport const hasAllDirectives = (names: string[], root: ASTNode) =>\n hasDirectives(names, root, true);\n\nexport function hasDirectives(names: string[], root: ASTNode, all?: boolean) {\n const nameSet = new Set(names);\n const uniqueCount = nameSet.size;\n\n visit(root, {\n Directive(node) {\n if (nameSet.delete(node.name.value) && (!all || !nameSet.size)) {\n return BREAK;\n }\n },\n });\n\n // If we found all the names, nameSet will be empty. If we only care about\n // finding some of them, the < condition is sufficient.\n return all ? !nameSet.size : nameSet.size < uniqueCount;\n}\n\nexport function hasClientExports(document: DocumentNode) {\n return document && hasDirectives([\"client\", \"export\"], document, true);\n}\n\nexport type InclusionDirectives = Array<{\n directive: DirectiveNode;\n ifArgument: ArgumentNode;\n}>;\n\nfunction isInclusionDirective({ name: { value } }: DirectiveNode): boolean {\n return value === \"skip\" || value === \"include\";\n}\n\nexport function getInclusionDirectives(\n directives: ReadonlyArray\n): InclusionDirectives {\n const result: InclusionDirectives = [];\n\n if (directives && directives.length) {\n directives.forEach((directive) => {\n if (!isInclusionDirective(directive)) return;\n\n const directiveArguments = directive.arguments;\n const directiveName = directive.name.value;\n\n invariant(\n directiveArguments && directiveArguments.length === 1,\n `Incorrect number of arguments for the @%s directive.`,\n directiveName\n );\n\n const ifArgument = directiveArguments![0];\n invariant(\n ifArgument.name && ifArgument.name.value === \"if\",\n `Invalid argument for the @%s directive.`,\n directiveName\n );\n\n const ifValue: ValueNode = ifArgument.value;\n\n // means it has to be a variable value if this is a valid @skip or @include directive\n invariant(\n ifValue &&\n (ifValue.kind === \"Variable\" || ifValue.kind === \"BooleanValue\"),\n `Argument for the @%s directive must be a variable or a boolean value.`,\n directiveName\n );\n\n result.push({ directive, ifArgument });\n });\n }\n\n return result;\n}\n","import { newInvariantError } from \"../../utilities/globals/index.js\";\nimport type { InvariantError } from \"../../utilities/globals/index.js\";\n\nexport type ClientParseError = InvariantError & {\n parseError: Error;\n};\n\nexport const serializeFetchParameter = (p: any, label: string) => {\n let serialized;\n try {\n serialized = JSON.stringify(p);\n } catch (e: any) {\n const parseError = newInvariantError(\n `Network request failed. %s is not serializable: %s`,\n label,\n e.message\n ) as ClientParseError;\n parseError.parseError = e;\n throw parseError;\n }\n return serialized;\n};\n","import { maybe } from \"../globals/index.js\";\n\nexport const canUseWeakMap =\n typeof WeakMap === \"function\" &&\n !maybe(\n () => navigator.product == \"ReactNative\" && !(global as any).HermesInternal\n );\n\nexport const canUseWeakSet = typeof WeakSet === \"function\";\n\nexport const canUseSymbol =\n typeof Symbol === \"function\" && typeof Symbol.for === \"function\";\n\nexport const canUseAsyncIteratorSymbol = canUseSymbol && Symbol.asyncIterator;\n\nexport const canUseDOM =\n typeof maybe(() => window.document.createElement) === \"function\";\n\nconst usingJSDOM: boolean =\n // Following advice found in this comment from @domenic (maintainer of jsdom):\n // https://github.com/jsdom/jsdom/issues/1537#issuecomment-229405327\n //\n // Since we control the version of Jest and jsdom used when running Apollo\n // Client tests, and that version is recent enought to include \" jsdom/x.y.z\"\n // at the end of the user agent string, I believe this case is all we need to\n // check. Testing for \"Node.js\" was recommended for backwards compatibility\n // with older version of jsdom, but we don't have that problem.\n maybe(() => navigator.userAgent.indexOf(\"jsdom\") >= 0) || false;\n\n// Our tests should all continue to pass if we remove this !usingJSDOM\n// condition, thereby allowing useLayoutEffect when using jsdom. Unfortunately,\n// if we allow useLayoutEffect, then useSyncExternalStore generates many\n// warnings about useLayoutEffect doing nothing on the server. While these\n// warnings are harmless, this !usingJSDOM condition seems to be the best way to\n// prevent them (i.e. skipping useLayoutEffect when using jsdom).\nexport const canUseLayoutEffect = canUseDOM && !usingJSDOM;\n","/**\n * Original source:\n * https://github.com/kmalakoff/response-iterator/blob/master/src/iterators/nodeStream.ts\n */\n\nimport type { Readable as NodeReadableStream } from \"stream\";\nimport { canUseAsyncIteratorSymbol } from \"../../../utilities/index.js\";\n\ninterface NodeStreamIterator {\n next(): Promise>;\n [Symbol.asyncIterator]?(): AsyncIterator;\n}\n\nexport default function nodeStreamIterator(\n stream: NodeReadableStream\n): AsyncIterableIterator {\n let cleanup: (() => void) | null = null;\n let error: Error | null = null;\n let done = false;\n const data: unknown[] = [];\n\n const waiting: [\n (\n value:\n | IteratorResult\n | PromiseLike>\n ) => void,\n (reason?: any) => void,\n ][] = [];\n\n function onData(chunk: any) {\n if (error) return;\n if (waiting.length) {\n const shiftedArr = waiting.shift();\n if (Array.isArray(shiftedArr) && shiftedArr[0]) {\n return shiftedArr[0]({ value: chunk, done: false });\n }\n }\n data.push(chunk);\n }\n function onError(err: Error) {\n error = err;\n const all = waiting.slice();\n all.forEach(function (pair) {\n pair[1](err);\n });\n !cleanup || cleanup();\n }\n function onEnd() {\n done = true;\n const all = waiting.slice();\n all.forEach(function (pair) {\n pair[0]({ value: undefined, done: true });\n });\n !cleanup || cleanup();\n }\n\n cleanup = function () {\n cleanup = null;\n stream.removeListener(\"data\", onData);\n stream.removeListener(\"error\", onError);\n stream.removeListener(\"end\", onEnd);\n stream.removeListener(\"finish\", onEnd);\n stream.removeListener(\"close\", onEnd);\n };\n stream.on(\"data\", onData);\n stream.on(\"error\", onError);\n stream.on(\"end\", onEnd);\n stream.on(\"finish\", onEnd);\n stream.on(\"close\", onEnd);\n\n function getNext(): Promise> {\n return new Promise(function (resolve, reject) {\n if (error) return reject(error);\n if (data.length)\n return resolve({ value: data.shift() as T, done: false });\n if (done) return resolve({ value: undefined, done: true });\n waiting.push([resolve, reject]);\n });\n }\n\n const iterator: NodeStreamIterator = {\n next(): Promise> {\n return getNext();\n },\n };\n\n if (canUseAsyncIteratorSymbol) {\n iterator[Symbol.asyncIterator] = function (): AsyncIterator {\n return this;\n };\n }\n\n return iterator as AsyncIterableIterator;\n}\n","/**\n * Original source:\n * https://github.com/kmalakoff/response-iterator/blob/master/src/iterators/reader.ts\n */\n\nimport { canUseAsyncIteratorSymbol } from \"../../../utilities/index.js\";\n\ninterface ReaderIterator {\n next(): Promise>;\n [Symbol.asyncIterator]?(): AsyncIterator;\n}\n\nexport default function readerIterator(\n reader: ReadableStreamDefaultReader\n): AsyncIterableIterator {\n const iterator: ReaderIterator = {\n next() {\n return reader.read() as Promise<\n | ReadableStreamReadValueResult\n // DoneResult has `value` optional, which doesn't comply with an\n // `IteratorResult`, so we assert it to `T | undefined` instead\n | Required>\n >;\n },\n };\n\n if (canUseAsyncIteratorSymbol) {\n iterator[Symbol.asyncIterator] = function (): AsyncIterator<\n T,\n T | undefined\n > {\n return this;\n };\n }\n\n return iterator as AsyncIterableIterator;\n}\n","/**\n * Original source:\n * https://github.com/kmalakoff/response-iterator/blob/master/src/index.ts\n */\n\nimport type { Response as NodeResponse } from \"node-fetch\";\nimport type { Readable as NodeReadableStream } from \"stream\";\nimport { canUseAsyncIteratorSymbol } from \"../../utilities/index.js\";\n\nimport asyncIterator from \"./iterators/async.js\";\nimport nodeStreamIterator from \"./iterators/nodeStream.js\";\nimport promiseIterator from \"./iterators/promise.js\";\nimport readerIterator from \"./iterators/reader.js\";\n\nfunction isNodeResponse(value: any): value is NodeResponse {\n return !!(value as NodeResponse).body;\n}\n\nfunction isReadableStream(value: any): value is ReadableStream {\n return !!(value as ReadableStream).getReader;\n}\n\nfunction isAsyncIterableIterator(\n value: any\n): value is AsyncIterableIterator {\n return !!(\n canUseAsyncIteratorSymbol &&\n (value as AsyncIterableIterator)[Symbol.asyncIterator]\n );\n}\n\nfunction isStreamableBlob(value: any): value is Blob {\n return !!(value as Blob).stream;\n}\n\nfunction isBlob(value: any): value is Blob {\n return !!(value as Blob).arrayBuffer;\n}\n\nfunction isNodeReadableStream(value: any): value is NodeReadableStream {\n return !!(value as NodeReadableStream).pipe;\n}\n\nexport function responseIterator(\n response: Response | NodeResponse\n): AsyncIterableIterator {\n let body: unknown = response;\n\n if (isNodeResponse(response)) body = response.body;\n\n if (isAsyncIterableIterator(body)) return asyncIterator(body);\n\n if (isReadableStream(body)) return readerIterator(body.getReader());\n\n // this errors without casting to ReadableStream\n // because Blob.stream() returns a NodeJS ReadableStream\n if (isStreamableBlob(body)) {\n return readerIterator(\n (body.stream() as unknown as ReadableStream).getReader()\n );\n }\n\n if (isBlob(body)) return promiseIterator(body.arrayBuffer());\n\n if (isNodeReadableStream(body)) return nodeStreamIterator(body);\n\n throw new Error(\n \"Unknown body type for responseIterator. Please pass a streamable response.\"\n );\n}\n","/**\n * Original source:\n * https://github.com/kmalakoff/response-iterator/blob/master/src/iterators/async.ts\n */\n\nexport default function asyncIterator(\n source: AsyncIterableIterator\n): AsyncIterableIterator {\n const iterator = source[Symbol.asyncIterator]();\n return {\n next(): Promise> {\n return iterator.next();\n },\n [Symbol.asyncIterator](): AsyncIterableIterator {\n return this;\n },\n };\n}\n","/**\n * Original source:\n * https://github.com/kmalakoff/response-iterator/blob/master/src/iterators/promise.ts\n */\n\nimport { canUseAsyncIteratorSymbol } from \"../../../utilities/index.js\";\n\ninterface PromiseIterator {\n next(): Promise>;\n [Symbol.asyncIterator]?(): AsyncIterator;\n}\n\nexport default function promiseIterator(\n promise: Promise\n): AsyncIterableIterator {\n let resolved = false;\n\n const iterator: PromiseIterator = {\n next(): Promise> {\n if (resolved)\n return Promise.resolve({\n value: undefined,\n done: true,\n });\n resolved = true;\n return new Promise(function (resolve, reject) {\n promise\n .then(function (value) {\n resolve({ value: value as unknown as T, done: false });\n })\n .catch(reject);\n });\n },\n };\n\n if (canUseAsyncIteratorSymbol) {\n iterator[Symbol.asyncIterator] = function (): AsyncIterator {\n return this;\n };\n }\n\n return iterator as AsyncIterableIterator;\n}\n","export type ServerError = Error & {\n response: Response;\n result: Record | string;\n statusCode: number;\n};\n\nexport const throwServerError = (\n response: Response,\n result: any,\n message: string\n) => {\n const error = new Error(message) as ServerError;\n error.name = \"ServerError\";\n error.response = response;\n error.statusCode = response.status;\n error.result = result;\n throw error;\n};\n","import \"../utilities/globals/index.js\";\n\nimport type { GraphQLError, GraphQLErrorExtensions } from \"graphql\";\n\nimport { isNonNullObject } from \"../utilities/index.js\";\nimport type { ServerParseError } from \"../link/http/index.js\";\nimport type { ServerError } from \"../link/utils/index.js\";\nimport type { FetchResult } from \"../link/core/index.js\";\n\n// This Symbol allows us to pass transport-specific errors from the link chain\n// into QueryManager/client internals without risking a naming collision within\n// extensions (which implementers can use as they see fit).\nexport const PROTOCOL_ERRORS_SYMBOL: unique symbol = Symbol();\n\ntype FetchResultWithSymbolExtensions = FetchResult & {\n extensions: Record;\n};\n\nexport interface ApolloErrorOptions {\n graphQLErrors?: ReadonlyArray;\n protocolErrors?: ReadonlyArray<{\n message: string;\n extensions?: GraphQLErrorExtensions[];\n }>;\n clientErrors?: ReadonlyArray;\n networkError?: Error | ServerParseError | ServerError | null;\n errorMessage?: string;\n extraInfo?: any;\n}\n\nexport function graphQLResultHasProtocolErrors(\n result: FetchResult\n): result is FetchResultWithSymbolExtensions {\n if (result.extensions) {\n return Array.isArray(\n (result as FetchResultWithSymbolExtensions).extensions[\n PROTOCOL_ERRORS_SYMBOL\n ]\n );\n }\n return false;\n}\n\nexport function isApolloError(err: Error): err is ApolloError {\n return err.hasOwnProperty(\"graphQLErrors\");\n}\n\n// Sets the error message on this error according to the\n// the GraphQL and network errors that are present.\n// If the error message has already been set through the\n// constructor or otherwise, this function is a nop.\nconst generateErrorMessage = (err: ApolloError) => {\n const errors = [\n ...err.graphQLErrors,\n ...err.clientErrors,\n ...err.protocolErrors,\n ];\n if (err.networkError) errors.push(err.networkError);\n return (\n errors\n // The rest of the code sometimes unsafely types non-Error objects as GraphQLErrors\n .map(\n (err) =>\n (isNonNullObject(err) && err.message) || \"Error message not found.\"\n )\n .join(\"\\n\")\n );\n};\n\nexport type GraphQLErrors = ReadonlyArray;\n\nexport type NetworkError = Error | ServerParseError | ServerError | null;\n\nexport class ApolloError extends Error {\n public name: string;\n public message: string;\n public graphQLErrors: GraphQLErrors;\n public protocolErrors: ReadonlyArray<{\n message: string;\n extensions?: GraphQLErrorExtensions[];\n }>;\n public clientErrors: ReadonlyArray;\n public networkError: Error | ServerParseError | ServerError | null;\n\n // An object that can be used to provide some additional information\n // about an error, e.g. specifying the type of error this is. Used\n // internally within Apollo Client.\n public extraInfo: any;\n\n // Constructs an instance of ApolloError given a GraphQLError\n // or a network error. Note that one of these has to be a valid\n // value or the constructed error will be meaningless.\n constructor({\n graphQLErrors,\n protocolErrors,\n clientErrors,\n networkError,\n errorMessage,\n extraInfo,\n }: ApolloErrorOptions) {\n super(errorMessage);\n this.name = \"ApolloError\";\n this.graphQLErrors = graphQLErrors || [];\n this.protocolErrors = protocolErrors || [];\n this.clientErrors = clientErrors || [];\n this.networkError = networkError || null;\n this.message = errorMessage || generateErrorMessage(this);\n this.extraInfo = extraInfo;\n\n // We're not using `Object.setPrototypeOf` here as it isn't fully\n // supported on Android (see issue #3236).\n (this as any).__proto__ = ApolloError.prototype;\n }\n}\n","// A version of Array.isArray that works better with readonly arrays.\nexport const isArray: (a: any) => a is any[] | readonly any[] = Array.isArray;\n\nexport function isNonEmptyArray(value?: ArrayLike): value is Array {\n return Array.isArray(value) && value.length > 0;\n}\n","import { isNonNullObject } from \"./objects.js\";\n\nconst { hasOwnProperty } = Object.prototype;\n\n// These mergeDeep and mergeDeepArray utilities merge any number of objects\n// together, sharing as much memory as possible with the source objects, while\n// remaining careful to avoid modifying any source objects.\n\n// Logically, the return type of mergeDeep should be the intersection of\n// all the argument types. The binary call signature is by far the most\n// common, but we support 0- through 5-ary as well. After that, the\n// resulting type is just the inferred array element type. Note to nerds:\n// there is a more clever way of doing this that converts the tuple type\n// first to a union type (easy enough: T[number]) and then converts the\n// union to an intersection type using distributive conditional type\n// inference, but that approach has several fatal flaws (boolean becomes\n// true & false, and the inferred type ends up as unknown in many cases),\n// in addition to being nearly impossible to explain/understand.\nexport type TupleToIntersection =\n T extends [infer A] ? A\n : T extends [infer A, infer B] ? A & B\n : T extends [infer A, infer B, infer C] ? A & B & C\n : T extends [infer A, infer B, infer C, infer D] ? A & B & C & D\n : T extends [infer A, infer B, infer C, infer D, infer E] ? A & B & C & D & E\n : T extends (infer U)[] ? U\n : any;\n\nexport function mergeDeep(\n ...sources: T\n): TupleToIntersection {\n return mergeDeepArray(sources);\n}\n\n// In almost any situation where you could succeed in getting the\n// TypeScript compiler to infer a tuple type for the sources array, you\n// could just use mergeDeep instead of mergeDeepArray, so instead of\n// trying to convert T[] to an intersection type we just infer the array\n// element type, which works perfectly when the sources array has a\n// consistent element type.\nexport function mergeDeepArray(sources: T[]): T {\n let target = sources[0] || ({} as T);\n const count = sources.length;\n if (count > 1) {\n const merger = new DeepMerger();\n for (let i = 1; i < count; ++i) {\n target = merger.merge(target, sources[i]);\n }\n }\n return target;\n}\n\nexport type ReconcilerFunction = (\n this: DeepMerger,\n target: Record,\n source: Record,\n property: string | number,\n ...context: TContextArgs\n) => any;\n\nconst defaultReconciler: ReconcilerFunction = function (\n target,\n source,\n property\n) {\n return this.merge(target[property], source[property]);\n};\n\nexport class DeepMerger {\n constructor(\n private reconciler: ReconcilerFunction = defaultReconciler as any as ReconcilerFunction\n ) {}\n\n public merge(target: any, source: any, ...context: TContextArgs): any {\n if (isNonNullObject(source) && isNonNullObject(target)) {\n Object.keys(source).forEach((sourceKey) => {\n if (hasOwnProperty.call(target, sourceKey)) {\n const targetValue = target[sourceKey];\n if (source[sourceKey] !== targetValue) {\n const result = this.reconciler(\n target,\n source,\n sourceKey,\n ...context\n );\n // A well-implemented reconciler may return targetValue to indicate\n // the merge changed nothing about the structure of the target.\n if (result !== targetValue) {\n target = this.shallowCopyForMerge(target);\n target[sourceKey] = result;\n }\n }\n } else {\n // If there is no collision, the target can safely share memory with\n // the source, and the recursion can terminate here.\n target = this.shallowCopyForMerge(target);\n target[sourceKey] = source[sourceKey];\n }\n });\n\n return target;\n }\n\n // If source (or target) is not an object, let source replace target.\n return source;\n }\n\n public isObject = isNonNullObject;\n\n private pastCopies = new Set();\n\n public shallowCopyForMerge(value: T): T {\n if (isNonNullObject(value)) {\n if (!this.pastCopies.has(value)) {\n if (Array.isArray(value)) {\n value = (value as any).slice(0);\n } else {\n value = {\n __proto__: Object.getPrototypeOf(value),\n ...value,\n };\n }\n this.pastCopies.add(value);\n }\n }\n return value;\n }\n}\n","import type {\n ExecutionPatchIncrementalResult,\n ExecutionPatchInitialResult,\n ExecutionPatchResult,\n ApolloPayloadResult,\n FetchResult,\n} from \"../../link/core/index.js\";\nimport { isNonNullObject } from \"./objects.js\";\nimport { isNonEmptyArray } from \"./arrays.js\";\nimport { DeepMerger } from \"./mergeDeep.js\";\n\nexport function isExecutionPatchIncrementalResult(\n value: FetchResult\n): value is ExecutionPatchIncrementalResult {\n return \"incremental\" in value;\n}\n\nexport function isExecutionPatchInitialResult(\n value: FetchResult\n): value is ExecutionPatchInitialResult {\n return \"hasNext\" in value && \"data\" in value;\n}\n\nexport function isExecutionPatchResult(\n value: FetchResult\n): value is ExecutionPatchResult {\n return (\n isExecutionPatchIncrementalResult(value) ||\n isExecutionPatchInitialResult(value)\n );\n}\n\n// This function detects an Apollo payload result before it is transformed\n// into a FetchResult via HttpLink; it cannot detect an ApolloPayloadResult\n// once it leaves the link chain.\nexport function isApolloPayloadResult(\n value: unknown\n): value is ApolloPayloadResult {\n return isNonNullObject(value) && \"payload\" in value;\n}\n\nexport function mergeIncrementalData(\n prevResult: TData,\n result: ExecutionPatchResult\n) {\n let mergedData = prevResult;\n const merger = new DeepMerger();\n if (\n isExecutionPatchIncrementalResult(result) &&\n isNonEmptyArray(result.incremental)\n ) {\n result.incremental.forEach(({ data, path }) => {\n for (let i = path.length - 1; i >= 0; --i) {\n const key = path[i];\n const isNumericKey = !isNaN(+key);\n const parent: Record = isNumericKey ? [] : {};\n parent[key] = data;\n data = parent as typeof data;\n }\n mergedData = merger.merge(mergedData, data);\n });\n }\n return mergedData as TData;\n}\n","import { responseIterator } from \"./responseIterator.js\";\nimport type { Operation } from \"../core/index.js\";\nimport { throwServerError } from \"../utils/index.js\";\nimport { PROTOCOL_ERRORS_SYMBOL } from \"../../errors/index.js\";\nimport { isApolloPayloadResult } from \"../../utilities/common/incrementalResult.js\";\nimport type { SubscriptionObserver } from \"zen-observable-ts\";\n\nconst { hasOwnProperty } = Object.prototype;\n\nexport type ServerParseError = Error & {\n response: Response;\n statusCode: number;\n bodyText: string;\n};\n\nexport async function readMultipartBody<\n T extends object = Record,\n>(response: Response, nextValue: (value: T) => void) {\n if (TextDecoder === undefined) {\n throw new Error(\n \"TextDecoder must be defined in the environment: please import a polyfill.\"\n );\n }\n const decoder = new TextDecoder(\"utf-8\");\n const contentType = response.headers?.get(\"content-type\");\n const delimiter = \"boundary=\";\n\n // parse boundary value and ignore any subsequent name/value pairs after ;\n // https://www.rfc-editor.org/rfc/rfc9110.html#name-parameters\n // e.g. multipart/mixed;boundary=\"graphql\";deferSpec=20220824\n // if no boundary is specified, default to -\n const boundaryVal =\n contentType?.includes(delimiter) ?\n contentType\n ?.substring(contentType?.indexOf(delimiter) + delimiter.length)\n .replace(/['\"]/g, \"\")\n .replace(/\\;(.*)/gm, \"\")\n .trim()\n : \"-\";\n\n const boundary = `\\r\\n--${boundaryVal}`;\n let buffer = \"\";\n const iterator = responseIterator(response);\n let running = true;\n\n while (running) {\n const { value, done } = await iterator.next();\n const chunk = typeof value === \"string\" ? value : decoder.decode(value);\n const searchFrom = buffer.length - boundary.length + 1;\n running = !done;\n buffer += chunk;\n let bi = buffer.indexOf(boundary, searchFrom);\n\n while (bi > -1) {\n let message: string;\n [message, buffer] = [\n buffer.slice(0, bi),\n buffer.slice(bi + boundary.length),\n ];\n const i = message.indexOf(\"\\r\\n\\r\\n\");\n const headers = parseHeaders(message.slice(0, i));\n const contentType = headers[\"content-type\"];\n if (\n contentType &&\n contentType.toLowerCase().indexOf(\"application/json\") === -1\n ) {\n throw new Error(\n \"Unsupported patch content type: application/json is required.\"\n );\n }\n // nb: Technically you'd want to slice off the beginning \"\\r\\n\" but since\n // this is going to be `JSON.parse`d there is no need.\n const body = message.slice(i);\n\n if (body) {\n const result = parseJsonBody(response, body);\n if (\n Object.keys(result).length > 1 ||\n \"data\" in result ||\n \"incremental\" in result ||\n \"errors\" in result ||\n \"payload\" in result\n ) {\n if (isApolloPayloadResult(result)) {\n let next = {};\n if (\"payload\" in result) {\n if (Object.keys(result).length === 1 && result.payload === null) {\n return;\n }\n next = { ...result.payload };\n }\n if (\"errors\" in result) {\n next = {\n ...next,\n extensions: {\n ...(\"extensions\" in next ? next.extensions : (null as any)),\n [PROTOCOL_ERRORS_SYMBOL]: result.errors,\n },\n };\n }\n nextValue(next as T);\n } else {\n // for the last chunk with only `hasNext: false`\n // we don't need to call observer.next as there is no data/errors\n nextValue(result);\n }\n } else if (\n // If the chunk contains only a \"hasNext: false\", we can call\n // observer.complete() immediately.\n Object.keys(result).length === 1 &&\n \"hasNext\" in result &&\n !result.hasNext\n ) {\n return;\n }\n }\n bi = buffer.indexOf(boundary);\n }\n }\n}\n\nexport function parseHeaders(headerText: string): Record {\n const headersInit: Record = {};\n headerText.split(\"\\n\").forEach((line) => {\n const i = line.indexOf(\":\");\n if (i > -1) {\n // normalize headers to lowercase\n const name = line.slice(0, i).trim().toLowerCase();\n const value = line.slice(i + 1).trim();\n headersInit[name] = value;\n }\n });\n return headersInit;\n}\n\nexport function parseJsonBody(response: Response, bodyText: string): T {\n if (response.status >= 300) {\n // Network error\n const getResult = (): Record | string => {\n try {\n return JSON.parse(bodyText);\n } catch (err) {\n return bodyText;\n }\n };\n throwServerError(\n response,\n getResult(),\n `Response not successful: Received status code ${response.status}`\n );\n }\n\n try {\n return JSON.parse(bodyText) as T;\n } catch (err) {\n const parseError = err as ServerParseError;\n parseError.name = \"ServerParseError\";\n parseError.response = response;\n parseError.statusCode = response.status;\n parseError.bodyText = bodyText;\n throw parseError;\n }\n}\n\nexport function handleError(err: any, observer: SubscriptionObserver) {\n // if it is a network error, BUT there is graphql result info fire\n // the next observer before calling error this gives apollo-client\n // (and react-apollo) the `graphqlErrors` and `networkErrors` to\n // pass to UI this should only happen if we *also* have data as\n // part of the response key per the spec\n if (err.result && err.result.errors && err.result.data) {\n // if we don't call next, the UI can only show networkError\n // because AC didn't get any graphqlErrors this is graphql\n // execution result info (i.e errors and possibly data) this is\n // because there is no formal spec how errors should translate to\n // http status codes. So an auth error (401) could have both data\n // from a public field, errors from a private field, and a status\n // of 401\n // {\n // user { // this will have errors\n // firstName\n // }\n // products { // this is public so will have data\n // cost\n // }\n // }\n //\n // the result of above *could* look like this:\n // {\n // data: { products: [{ cost: \"$10\" }] },\n // errors: [{\n // message: 'your session has timed out',\n // path: []\n // }]\n // }\n // status code of above would be a 401\n // in the UI you want to show data where you can, errors as data where you can\n // and use correct http status codes\n observer.next(err.result);\n }\n\n observer.error(err);\n}\n\nexport function parseAndCheckHttpResponse(operations: Operation | Operation[]) {\n return (response: Response) =>\n response\n .text()\n .then((bodyText) => parseJsonBody(response, bodyText))\n .then((result: any) => {\n if (\n !Array.isArray(result) &&\n !hasOwnProperty.call(result, \"data\") &&\n !hasOwnProperty.call(result, \"errors\")\n ) {\n // Data error\n throwServerError(\n response,\n result,\n `Server response was missing for query '${\n Array.isArray(operations) ?\n operations.map((op) => op.operationName)\n : operations.operationName\n }'.`\n );\n }\n return result;\n });\n}\n","/**\n * ```\n * WhiteSpace ::\n * - \"Horizontal Tab (U+0009)\"\n * - \"Space (U+0020)\"\n * ```\n * @internal\n */\nexport function isWhiteSpace(code) {\n return code === 0x0009 || code === 0x0020;\n}\n/**\n * ```\n * Digit :: one of\n * - `0` `1` `2` `3` `4` `5` `6` `7` `8` `9`\n * ```\n * @internal\n */\n\nexport function isDigit(code) {\n return code >= 0x0030 && code <= 0x0039;\n}\n/**\n * ```\n * Letter :: one of\n * - `A` `B` `C` `D` `E` `F` `G` `H` `I` `J` `K` `L` `M`\n * - `N` `O` `P` `Q` `R` `S` `T` `U` `V` `W` `X` `Y` `Z`\n * - `a` `b` `c` `d` `e` `f` `g` `h` `i` `j` `k` `l` `m`\n * - `n` `o` `p` `q` `r` `s` `t` `u` `v` `w` `x` `y` `z`\n * ```\n * @internal\n */\n\nexport function isLetter(code) {\n return (\n (code >= 0x0061 && code <= 0x007a) || // A-Z\n (code >= 0x0041 && code <= 0x005a) // a-z\n );\n}\n/**\n * ```\n * NameStart ::\n * - Letter\n * - `_`\n * ```\n * @internal\n */\n\nexport function isNameStart(code) {\n return isLetter(code) || code === 0x005f;\n}\n/**\n * ```\n * NameContinue ::\n * - Letter\n * - Digit\n * - `_`\n * ```\n * @internal\n */\n\nexport function isNameContinue(code) {\n return isLetter(code) || isDigit(code) || code === 0x005f;\n}\n","import { isWhiteSpace } from './characterClasses.mjs';\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 */\n\nexport function dedentBlockStringLines(lines) {\n var _firstNonEmptyLine2;\n\n let commonIndent = Number.MAX_SAFE_INTEGER;\n let firstNonEmptyLine = null;\n let lastNonEmptyLine = -1;\n\n for (let i = 0; i < lines.length; ++i) {\n var _firstNonEmptyLine;\n\n const line = lines[i];\n const indent = leadingWhitespace(line);\n\n if (indent === line.length) {\n continue; // skip empty lines\n }\n\n firstNonEmptyLine =\n (_firstNonEmptyLine = firstNonEmptyLine) !== null &&\n _firstNonEmptyLine !== void 0\n ? _firstNonEmptyLine\n : i;\n lastNonEmptyLine = i;\n\n if (i !== 0 && indent < commonIndent) {\n commonIndent = indent;\n }\n }\n\n return lines // Remove common indentation from all lines but first.\n .map((line, i) => (i === 0 ? line : line.slice(commonIndent))) // Remove leading and trailing blank lines.\n .slice(\n (_firstNonEmptyLine2 = firstNonEmptyLine) !== null &&\n _firstNonEmptyLine2 !== void 0\n ? _firstNonEmptyLine2\n : 0,\n lastNonEmptyLine + 1,\n );\n}\n\nfunction leadingWhitespace(str) {\n let i = 0;\n\n while (i < str.length && isWhiteSpace(str.charCodeAt(i))) {\n ++i;\n }\n\n return i;\n}\n/**\n * @internal\n */\n\nexport function isPrintableAsBlockString(value) {\n if (value === '') {\n return true; // empty string is printable\n }\n\n let isEmptyLine = true;\n let hasIndent = false;\n let hasCommonIndent = true;\n let seenNonEmptyLine = false;\n\n for (let i = 0; i < value.length; ++i) {\n switch (value.codePointAt(i)) {\n case 0x0000:\n case 0x0001:\n case 0x0002:\n case 0x0003:\n case 0x0004:\n case 0x0005:\n case 0x0006:\n case 0x0007:\n case 0x0008:\n case 0x000b:\n case 0x000c:\n case 0x000e:\n case 0x000f:\n return false;\n // Has non-printable characters\n\n case 0x000d:\n // \\r\n return false;\n // Has \\r or \\r\\n which will be replaced as \\n\n\n case 10:\n // \\n\n if (isEmptyLine && !seenNonEmptyLine) {\n return false; // Has leading new line\n }\n\n seenNonEmptyLine = true;\n isEmptyLine = true;\n hasIndent = false;\n break;\n\n case 9: // \\t\n\n case 32:\n // \n hasIndent || (hasIndent = isEmptyLine);\n break;\n\n default:\n hasCommonIndent && (hasCommonIndent = hasIndent);\n isEmptyLine = false;\n }\n }\n\n if (isEmptyLine) {\n return false; // Has trailing empty lines\n }\n\n if (hasCommonIndent && seenNonEmptyLine) {\n return false; // Has internal indent\n }\n\n return true;\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, options) {\n const escapedValue = value.replace(/\"\"\"/g, '\\\\\"\"\"'); // Expand a block string's raw value into independent lines.\n\n const lines = escapedValue.split(/\\r\\n|[\\n\\r]/g);\n const isSingleLine = lines.length === 1; // If common indentation is found we can fix some of those cases by adding leading new line\n\n const forceLeadingNewLine =\n lines.length > 1 &&\n lines\n .slice(1)\n .every((line) => line.length === 0 || isWhiteSpace(line.charCodeAt(0))); // Trailing triple quotes just looks confusing but doesn't force trailing new line\n\n const hasTrailingTripleQuotes = escapedValue.endsWith('\\\\\"\"\"'); // Trailing quote (single or double) or slash forces trailing new line\n\n const hasTrailingQuote = value.endsWith('\"') && !hasTrailingTripleQuotes;\n const hasTrailingSlash = value.endsWith('\\\\');\n const forceTrailingNewline = hasTrailingQuote || hasTrailingSlash;\n const printAsMultipleLines =\n !(options !== null && options !== void 0 && options.minimize) && // add leading and trailing new lines only if it improves readability\n (!isSingleLine ||\n value.length > 70 ||\n forceTrailingNewline ||\n forceLeadingNewLine ||\n hasTrailingTripleQuotes);\n let result = ''; // Format a multi-line block quote to account for leading space.\n\n const skipLeadingNewLine = isSingleLine && isWhiteSpace(value.charCodeAt(0));\n\n if ((printAsMultipleLines && !skipLeadingNewLine) || forceLeadingNewLine) {\n result += '\\n';\n }\n\n result += escapedValue;\n\n if (printAsMultipleLines || forceTrailingNewline) {\n result += '\\n';\n }\n\n return '\"\"\"' + result + '\"\"\"';\n}\n","/**\n * Prints a string as a GraphQL StringValue literal. Replaces control characters\n * and excluded characters (\" U+0022 and \\\\ U+005C) with escape sequences.\n */\nexport function printString(str) {\n return `\"${str.replace(escapedRegExp, escapedReplacer)}\"`;\n} // eslint-disable-next-line no-control-regex\n\nconst escapedRegExp = /[\\x00-\\x1f\\x22\\x5c\\x7f-\\x9f]/g;\n\nfunction escapedReplacer(str) {\n return escapeSequences[str.charCodeAt(0)];\n} // prettier-ignore\n\nconst escapeSequences = [\n '\\\\u0000',\n '\\\\u0001',\n '\\\\u0002',\n '\\\\u0003',\n '\\\\u0004',\n '\\\\u0005',\n '\\\\u0006',\n '\\\\u0007',\n '\\\\b',\n '\\\\t',\n '\\\\n',\n '\\\\u000B',\n '\\\\f',\n '\\\\r',\n '\\\\u000E',\n '\\\\u000F',\n '\\\\u0010',\n '\\\\u0011',\n '\\\\u0012',\n '\\\\u0013',\n '\\\\u0014',\n '\\\\u0015',\n '\\\\u0016',\n '\\\\u0017',\n '\\\\u0018',\n '\\\\u0019',\n '\\\\u001A',\n '\\\\u001B',\n '\\\\u001C',\n '\\\\u001D',\n '\\\\u001E',\n '\\\\u001F',\n '',\n '',\n '\\\\\"',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '', // 2F\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '', // 3F\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '', // 4F\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '\\\\\\\\',\n '',\n '',\n '', // 5F\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '', // 6F\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '\\\\u007F',\n '\\\\u0080',\n '\\\\u0081',\n '\\\\u0082',\n '\\\\u0083',\n '\\\\u0084',\n '\\\\u0085',\n '\\\\u0086',\n '\\\\u0087',\n '\\\\u0088',\n '\\\\u0089',\n '\\\\u008A',\n '\\\\u008B',\n '\\\\u008C',\n '\\\\u008D',\n '\\\\u008E',\n '\\\\u008F',\n '\\\\u0090',\n '\\\\u0091',\n '\\\\u0092',\n '\\\\u0093',\n '\\\\u0094',\n '\\\\u0095',\n '\\\\u0096',\n '\\\\u0097',\n '\\\\u0098',\n '\\\\u0099',\n '\\\\u009A',\n '\\\\u009B',\n '\\\\u009C',\n '\\\\u009D',\n '\\\\u009E',\n '\\\\u009F',\n];\n","import { printBlockString } from './blockString.mjs';\nimport { printString } from './printString.mjs';\nimport { visit } from './visitor.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, printDocASTReducer);\n}\nconst MAX_LINE_LENGTH = 80;\nconst printDocASTReducer = {\n Name: {\n leave: (node) => node.value,\n },\n Variable: {\n leave: (node) => '$' + node.name,\n },\n // Document\n Document: {\n leave: (node) => join(node.definitions, '\\n\\n'),\n },\n OperationDefinition: {\n leave(node) {\n const varDefs = wrap('(', join(node.variableDefinitions, ', '), ')');\n const prefix = join(\n [\n node.operation,\n join([node.name, varDefs]),\n join(node.directives, ' '),\n ],\n ' ',\n ); // Anonymous queries with no directives or variable definitions can use\n // the query short form.\n\n return (prefix === 'query' ? '' : prefix + ' ') + node.selectionSet;\n },\n },\n VariableDefinition: {\n leave: ({ variable, type, defaultValue, directives }) =>\n variable +\n ': ' +\n type +\n wrap(' = ', defaultValue) +\n wrap(' ', join(directives, ' ')),\n },\n SelectionSet: {\n leave: ({ selections }) => block(selections),\n },\n Field: {\n leave({ alias, name, arguments: args, directives, selectionSet }) {\n const prefix = wrap('', alias, ': ') + name;\n let 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 },\n Argument: {\n leave: ({ name, value }) => name + ': ' + value,\n },\n // Fragments\n FragmentSpread: {\n leave: ({ name, directives }) =>\n '...' + name + wrap(' ', join(directives, ' ')),\n },\n InlineFragment: {\n leave: ({ typeCondition, directives, selectionSet }) =>\n join(\n [\n '...',\n wrap('on ', typeCondition),\n join(directives, ' '),\n selectionSet,\n ],\n ' ',\n ),\n },\n FragmentDefinition: {\n leave: (\n { name, typeCondition, variableDefinitions, directives, selectionSet }, // Note: fragment variable definitions are experimental and may be changed\n ) =>\n // or removed in the future.\n `fragment ${name}${wrap('(', join(variableDefinitions, ', '), ')')} ` +\n `on ${typeCondition} ${wrap('', join(directives, ' '), ' ')}` +\n selectionSet,\n },\n // Value\n IntValue: {\n leave: ({ value }) => value,\n },\n FloatValue: {\n leave: ({ value }) => value,\n },\n StringValue: {\n leave: ({ value, block: isBlockString }) =>\n isBlockString ? printBlockString(value) : printString(value),\n },\n BooleanValue: {\n leave: ({ value }) => (value ? 'true' : 'false'),\n },\n NullValue: {\n leave: () => 'null',\n },\n EnumValue: {\n leave: ({ value }) => value,\n },\n ListValue: {\n leave: ({ values }) => '[' + join(values, ', ') + ']',\n },\n ObjectValue: {\n leave: ({ fields }) => '{' + join(fields, ', ') + '}',\n },\n ObjectField: {\n leave: ({ name, value }) => name + ': ' + value,\n },\n // Directive\n Directive: {\n leave: ({ name, arguments: args }) =>\n '@' + name + wrap('(', join(args, ', '), ')'),\n },\n // Type\n NamedType: {\n leave: ({ name }) => name,\n },\n ListType: {\n leave: ({ type }) => '[' + type + ']',\n },\n NonNullType: {\n leave: ({ type }) => type + '!',\n },\n // Type System Definitions\n SchemaDefinition: {\n leave: ({ description, directives, operationTypes }) =>\n wrap('', description, '\\n') +\n join(['schema', join(directives, ' '), block(operationTypes)], ' '),\n },\n OperationTypeDefinition: {\n leave: ({ operation, type }) => operation + ': ' + type,\n },\n ScalarTypeDefinition: {\n leave: ({ description, name, directives }) =>\n wrap('', description, '\\n') +\n join(['scalar', name, join(directives, ' ')], ' '),\n },\n ObjectTypeDefinition: {\n leave: ({ description, name, interfaces, directives, fields }) =>\n wrap('', description, '\\n') +\n join(\n [\n 'type',\n name,\n wrap('implements ', join(interfaces, ' & ')),\n join(directives, ' '),\n block(fields),\n ],\n ' ',\n ),\n },\n FieldDefinition: {\n leave: ({ description, name, arguments: args, type, directives }) =>\n wrap('', description, '\\n') +\n name +\n (hasMultilineItems(args)\n ? wrap('(\\n', indent(join(args, '\\n')), '\\n)')\n : wrap('(', join(args, ', '), ')')) +\n ': ' +\n type +\n wrap(' ', join(directives, ' ')),\n },\n InputValueDefinition: {\n leave: ({ description, name, type, defaultValue, directives }) =>\n wrap('', description, '\\n') +\n join(\n [name + ': ' + type, wrap('= ', defaultValue), join(directives, ' ')],\n ' ',\n ),\n },\n InterfaceTypeDefinition: {\n leave: ({ description, name, interfaces, directives, fields }) =>\n wrap('', description, '\\n') +\n join(\n [\n 'interface',\n name,\n wrap('implements ', join(interfaces, ' & ')),\n join(directives, ' '),\n block(fields),\n ],\n ' ',\n ),\n },\n UnionTypeDefinition: {\n leave: ({ description, name, directives, types }) =>\n wrap('', description, '\\n') +\n join(\n ['union', name, join(directives, ' '), wrap('= ', join(types, ' | '))],\n ' ',\n ),\n },\n EnumTypeDefinition: {\n leave: ({ description, name, directives, values }) =>\n wrap('', description, '\\n') +\n join(['enum', name, join(directives, ' '), block(values)], ' '),\n },\n EnumValueDefinition: {\n leave: ({ description, name, directives }) =>\n wrap('', description, '\\n') + join([name, join(directives, ' ')], ' '),\n },\n InputObjectTypeDefinition: {\n leave: ({ description, name, directives, fields }) =>\n wrap('', description, '\\n') +\n join(['input', name, join(directives, ' '), block(fields)], ' '),\n },\n DirectiveDefinition: {\n leave: ({ description, name, arguments: args, repeatable, locations }) =>\n wrap('', description, '\\n') +\n 'directive @' +\n name +\n (hasMultilineItems(args)\n ? wrap('(\\n', indent(join(args, '\\n')), '\\n)')\n : wrap('(', join(args, ', '), ')')) +\n (repeatable ? ' repeatable' : '') +\n ' on ' +\n join(locations, ' | '),\n },\n SchemaExtension: {\n leave: ({ directives, operationTypes }) =>\n join(\n ['extend schema', join(directives, ' '), block(operationTypes)],\n ' ',\n ),\n },\n ScalarTypeExtension: {\n leave: ({ name, directives }) =>\n join(['extend scalar', name, join(directives, ' ')], ' '),\n },\n ObjectTypeExtension: {\n leave: ({ name, interfaces, directives, fields }) =>\n join(\n [\n 'extend type',\n name,\n wrap('implements ', join(interfaces, ' & ')),\n join(directives, ' '),\n block(fields),\n ],\n ' ',\n ),\n },\n InterfaceTypeExtension: {\n leave: ({ name, interfaces, directives, fields }) =>\n join(\n [\n 'extend interface',\n name,\n wrap('implements ', join(interfaces, ' & ')),\n join(directives, ' '),\n block(fields),\n ],\n ' ',\n ),\n },\n UnionTypeExtension: {\n leave: ({ name, directives, types }) =>\n join(\n [\n 'extend union',\n name,\n join(directives, ' '),\n wrap('= ', join(types, ' | ')),\n ],\n ' ',\n ),\n },\n EnumTypeExtension: {\n leave: ({ name, directives, values }) =>\n join(['extend enum', name, join(directives, ' '), block(values)], ' '),\n },\n InputObjectTypeExtension: {\n leave: ({ name, directives, fields }) =>\n join(['extend input', name, join(directives, ' '), block(fields)], ' '),\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\nfunction join(maybeArray, separator = '') {\n var _maybeArray$filter$jo;\n\n return (_maybeArray$filter$jo =\n maybeArray === null || maybeArray === void 0\n ? void 0\n : maybeArray.filter((x) => x).join(separator)) !== null &&\n _maybeArray$filter$jo !== void 0\n ? _maybeArray$filter$jo\n : '';\n}\n/**\n * Given array, print each item on its own line, wrapped in an indented `{ }` block.\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\nfunction wrap(start, maybeString, end = '') {\n return maybeString != null && maybeString !== ''\n ? start + maybeString + end\n : '';\n}\n\nfunction indent(str) {\n return wrap(' ', str.replace(/\\n/g, '\\n '));\n}\n\nfunction hasMultilineItems(maybeArray) {\n var _maybeArray$some;\n\n // FIXME: https://github.com/graphql/graphql-js/issues/2203\n\n /* c8 ignore next */\n return (_maybeArray$some =\n maybeArray === null || maybeArray === void 0\n ? void 0\n : maybeArray.some((str) => str.includes('\\n'))) !== null &&\n _maybeArray$some !== void 0\n ? _maybeArray$some\n : false;\n}\n","import type { ASTNode } from \"graphql\";\nimport { print as origPrint } from \"graphql\";\nimport {\n AutoCleanedWeakCache,\n cacheSizes,\n defaultCacheSizes,\n} from \"../caching/index.js\";\nimport { registerGlobalCache } from \"../caching/getMemoryInternals.js\";\n\nlet printCache!: AutoCleanedWeakCache;\nexport const print = Object.assign(\n (ast: ASTNode) => {\n let result = printCache.get(ast);\n\n if (!result) {\n result = origPrint(ast);\n printCache.set(ast, result);\n }\n return result;\n },\n {\n reset() {\n printCache = new AutoCleanedWeakCache(\n cacheSizes.print || defaultCacheSizes.print\n );\n },\n }\n);\nprint.reset();\n\nif (__DEV__) {\n registerGlobalCache(\"print\", () => (printCache ? printCache.size : 0));\n}\n","import type { ASTNode } from \"graphql\";\nimport { print } from \"../../utilities/index.js\";\n\nimport type { Operation } from \"../core/index.js\";\n\nexport interface Printer {\n (node: ASTNode, originalPrint: typeof print): string;\n}\n\nexport interface UriFunction {\n (operation: Operation): string;\n}\n\nexport interface Body {\n query?: string;\n operationName?: string;\n variables?: Record;\n extensions?: Record;\n}\n\nexport interface HttpOptions {\n /**\n * The URI to use when fetching operations.\n *\n * Defaults to '/graphql'.\n */\n uri?: string | UriFunction;\n\n /**\n * Passes the extensions field to your graphql server.\n *\n * Defaults to false.\n */\n includeExtensions?: boolean;\n\n /**\n * A `fetch`-compatible API to use when making requests.\n */\n fetch?: typeof fetch;\n\n /**\n * An object representing values to be sent as headers on the request.\n */\n headers?: Record;\n\n /**\n * If set to true, header names won't be automatically normalized to\n * lowercase. This allows for non-http-spec-compliant servers that might\n * expect capitalized header names.\n */\n preserveHeaderCase?: boolean;\n\n /**\n * The credentials policy you want to use for the fetch call.\n */\n credentials?: string;\n\n /**\n * Any overrides of the fetch options argument to pass to the fetch call.\n */\n fetchOptions?: any;\n\n /**\n * If set to true, use the HTTP GET method for query operations. Mutations\n * will still use the method specified in fetchOptions.method (which defaults\n * to POST).\n */\n useGETForQueries?: boolean;\n\n /**\n * If set to true, the default behavior of stripping unused variables\n * from the request will be disabled.\n *\n * Unused variables are likely to trigger server-side validation errors,\n * per https://spec.graphql.org/draft/#sec-All-Variables-Used, but this\n * includeUnusedVariables option can be useful if your server deviates\n * from the GraphQL specification by not strictly enforcing that rule.\n */\n includeUnusedVariables?: boolean;\n /**\n * A function to substitute for the default query print function. Can be\n * used to apply changes to the results of the print function.\n */\n print?: Printer;\n}\n\nexport interface HttpQueryOptions {\n includeQuery?: boolean;\n includeExtensions?: boolean;\n preserveHeaderCase?: boolean;\n}\n\nexport interface HttpConfig {\n http?: HttpQueryOptions;\n options?: any;\n headers?: Record;\n credentials?: any;\n}\n\nconst defaultHttpOptions: HttpQueryOptions = {\n includeQuery: true,\n includeExtensions: false,\n preserveHeaderCase: false,\n};\n\nconst defaultHeaders = {\n // headers are case insensitive (https://stackoverflow.com/a/5259004)\n accept: \"*/*\",\n // The content-type header describes the type of the body of the request, and\n // so it typically only is sent with requests that actually have bodies. One\n // could imagine that Apollo Client would remove this header when constructing\n // a GET request (which has no body), but we historically have not done that.\n // This means that browsers will preflight all Apollo Client requests (even\n // GET requests). Apollo Server's CSRF prevention feature (introduced in\n // AS3.7) takes advantage of this fact and does not block requests with this\n // header. If you want to drop this header from GET requests, then you should\n // probably replace it with a `apollo-require-preflight` header, or servers\n // with CSRF prevention enabled might block your GET request. See\n // https://www.apollographql.com/docs/apollo-server/security/cors/#preventing-cross-site-request-forgery-csrf\n // for more details.\n \"content-type\": \"application/json\",\n};\n\nconst defaultOptions = {\n method: \"POST\",\n};\n\nexport const fallbackHttpConfig = {\n http: defaultHttpOptions,\n headers: defaultHeaders,\n options: defaultOptions,\n};\n\nexport const defaultPrinter: Printer = (ast, printer) => printer(ast);\n\nexport function selectHttpOptionsAndBody(\n operation: Operation,\n fallbackConfig: HttpConfig,\n ...configs: Array\n) {\n configs.unshift(fallbackConfig);\n return selectHttpOptionsAndBodyInternal(\n operation,\n defaultPrinter,\n ...configs\n );\n}\n\nexport function selectHttpOptionsAndBodyInternal(\n operation: Operation,\n printer: Printer,\n ...configs: HttpConfig[]\n) {\n let options = {} as HttpConfig & Record;\n let http = {} as HttpQueryOptions;\n\n configs.forEach((config) => {\n options = {\n ...options,\n ...config.options,\n headers: {\n ...options.headers,\n ...config.headers,\n },\n };\n\n if (config.credentials) {\n options.credentials = config.credentials;\n }\n\n http = {\n ...http,\n ...config.http,\n };\n });\n\n if (options.headers) {\n options.headers = removeDuplicateHeaders(\n options.headers,\n http.preserveHeaderCase\n );\n }\n\n //The body depends on the http options\n const { operationName, extensions, variables, query } = operation;\n const body: Body = { operationName, variables };\n\n if (http.includeExtensions) (body as any).extensions = extensions;\n\n // not sending the query (i.e persisted queries)\n if (http.includeQuery) (body as any).query = printer(query, print);\n\n return {\n options,\n body,\n };\n}\n\n// Remove potential duplicate header names, preserving last (by insertion order).\n// This is done to prevent unintentionally duplicating a header instead of\n// overwriting it (See #8447 and #8449).\nfunction removeDuplicateHeaders(\n headers: Record,\n preserveHeaderCase: boolean | undefined\n): typeof headers {\n // If we're not preserving the case, just remove duplicates w/ normalization.\n if (!preserveHeaderCase) {\n const normalizedHeaders = Object.create(null);\n Object.keys(Object(headers)).forEach((name) => {\n normalizedHeaders[name.toLowerCase()] = headers[name];\n });\n return normalizedHeaders;\n }\n\n // If we are preserving the case, remove duplicates w/ normalization,\n // preserving the original name.\n // This allows for non-http-spec-compliant servers that expect intentionally\n // capitalized header names (See #6741).\n const headerData = Object.create(null);\n Object.keys(Object(headers)).forEach((name) => {\n headerData[name.toLowerCase()] = {\n originalName: name,\n value: headers[name],\n };\n });\n\n const normalizedHeaders = Object.create(null);\n Object.keys(headerData).forEach((name) => {\n normalizedHeaders[headerData[name].originalName] = headerData[name].value;\n });\n return normalizedHeaders;\n}\n","import { Observable } from \"../../utilities/index.js\";\n\nexport function fromError(errorValue: any): Observable {\n return new Observable((observer) => {\n observer.error(errorValue);\n });\n}\n","import { invariant } from \"../globals/index.js\";\n\nimport type {\n DocumentNode,\n SelectionNode,\n SelectionSetNode,\n OperationDefinitionNode,\n FieldNode,\n DirectiveNode,\n FragmentDefinitionNode,\n ArgumentNode,\n FragmentSpreadNode,\n VariableDefinitionNode,\n ASTNode,\n ASTVisitFn,\n InlineFragmentNode,\n} from \"graphql\";\nimport { visit, Kind } from \"graphql\";\n\nimport {\n checkDocument,\n getOperationDefinition,\n getFragmentDefinition,\n getFragmentDefinitions,\n getMainDefinition,\n} from \"./getFromAST.js\";\nimport { isField } from \"./storeUtils.js\";\nimport type { FragmentMap } from \"./fragments.js\";\nimport { createFragmentMap } from \"./fragments.js\";\nimport { isArray, isNonEmptyArray } from \"../common/arrays.js\";\n\n// https://github.com/graphql/graphql-js/blob/8d7c8fccf5a9846a50785de04abda58a7eb13fc0/src/language/visitor.ts#L20-L23\ninterface EnterLeaveVisitor {\n readonly enter?: ASTVisitFn;\n readonly leave?: ASTVisitFn;\n}\n\nexport type RemoveNodeConfig = {\n name?: string;\n test?: (node: N) => boolean;\n remove?: boolean;\n};\n\nexport type GetNodeConfig = {\n name?: string;\n test?: (node: N) => boolean;\n};\n\nexport type RemoveDirectiveConfig = RemoveNodeConfig;\nexport type GetDirectiveConfig = GetNodeConfig;\nexport type RemoveArgumentsConfig = RemoveNodeConfig;\nexport type GetFragmentSpreadConfig = GetNodeConfig;\nexport type RemoveFragmentSpreadConfig = RemoveNodeConfig;\nexport type RemoveFragmentDefinitionConfig =\n RemoveNodeConfig;\nexport type RemoveVariableDefinitionConfig =\n RemoveNodeConfig;\n\nconst TYPENAME_FIELD: FieldNode = {\n kind: Kind.FIELD,\n name: {\n kind: Kind.NAME,\n value: \"__typename\",\n },\n};\n\nfunction isEmpty(\n op: OperationDefinitionNode | FragmentDefinitionNode,\n fragmentMap: FragmentMap\n): boolean {\n return (\n !op ||\n op.selectionSet.selections.every(\n (selection) =>\n selection.kind === Kind.FRAGMENT_SPREAD &&\n isEmpty(fragmentMap[selection.name.value], fragmentMap)\n )\n );\n}\n\nfunction nullIfDocIsEmpty(doc: DocumentNode) {\n return (\n isEmpty(\n getOperationDefinition(doc) || getFragmentDefinition(doc),\n createFragmentMap(getFragmentDefinitions(doc))\n )\n ) ?\n null\n : doc;\n}\n\nfunction getDirectiveMatcher(\n configs: (RemoveDirectiveConfig | GetDirectiveConfig)[]\n) {\n const names = new Map();\n\n const tests = new Map<\n (directive: DirectiveNode) => boolean,\n RemoveDirectiveConfig | GetDirectiveConfig\n >();\n\n configs.forEach((directive) => {\n if (directive) {\n if (directive.name) {\n names.set(directive.name, directive);\n } else if (directive.test) {\n tests.set(directive.test, directive);\n }\n }\n });\n\n return (directive: DirectiveNode) => {\n let config = names.get(directive.name.value);\n if (!config && tests.size) {\n tests.forEach((testConfig, test) => {\n if (test(directive)) {\n config = testConfig;\n }\n });\n }\n return config;\n };\n}\n\n// Helper interface and function used by removeDirectivesFromDocument to keep\n// track of variable references and fragments spreads found within a given\n// operation or fragment definition.\ninterface InternalInUseInfo {\n variables: Set;\n fragmentSpreads: Set;\n // Set to true when we deliberately remove a fragment definition, so we can\n // make sure also to remove dangling ...spreads that refer to it.\n removed?: boolean;\n // Populated by the populateTransitiveVars helper function below.\n transitiveVars?: Set;\n}\nfunction makeInUseGetterFunction(defaultKey: TKey) {\n const map = new Map();\n\n return function inUseGetterFunction(\n key: TKey = defaultKey\n ): InternalInUseInfo {\n let inUse = map.get(key);\n if (!inUse) {\n map.set(\n key,\n (inUse = {\n // Variable and fragment spread names used directly within this\n // operation or fragment definition, as identified by key. These sets\n // will be populated during the first traversal of the document in\n // removeDirectivesFromDocument below.\n variables: new Set(),\n fragmentSpreads: new Set(),\n })\n );\n }\n return inUse;\n };\n}\n\nexport function removeDirectivesFromDocument(\n directives: RemoveDirectiveConfig[],\n doc: DocumentNode\n): DocumentNode | null {\n checkDocument(doc);\n\n // Passing empty strings to makeInUseGetterFunction means we handle anonymous\n // operations as if their names were \"\". Anonymous fragment definitions are\n // not supposed to be possible, but the same default naming strategy seems\n // appropriate for that case as well.\n const getInUseByOperationName = makeInUseGetterFunction(\"\");\n const getInUseByFragmentName = makeInUseGetterFunction(\"\");\n const getInUse = (\n ancestors: readonly (ASTNode | readonly ASTNode[])[]\n ): InternalInUseInfo | null => {\n for (\n let p = 0, ancestor: ASTNode | readonly ASTNode[];\n p < ancestors.length && (ancestor = ancestors[p]);\n ++p\n ) {\n if (isArray(ancestor)) continue;\n if (ancestor.kind === Kind.OPERATION_DEFINITION) {\n // If an operation is anonymous, we use the empty string as its key.\n return getInUseByOperationName(ancestor.name && ancestor.name.value);\n }\n if (ancestor.kind === Kind.FRAGMENT_DEFINITION) {\n return getInUseByFragmentName(ancestor.name.value);\n }\n }\n invariant.error(`Could not find operation or fragment`);\n return null;\n };\n\n let operationCount = 0;\n for (let i = doc.definitions.length - 1; i >= 0; --i) {\n if (doc.definitions[i].kind === Kind.OPERATION_DEFINITION) {\n ++operationCount;\n }\n }\n\n const directiveMatcher = getDirectiveMatcher(directives);\n const shouldRemoveField = (nodeDirectives: FieldNode[\"directives\"]) =>\n isNonEmptyArray(nodeDirectives) &&\n nodeDirectives\n .map(directiveMatcher)\n .some(\n (config: RemoveDirectiveConfig | undefined) => config && config.remove\n );\n\n const originalFragmentDefsByPath = new Map();\n\n // Any time the first traversal of the document below makes a change like\n // removing a fragment (by returning null), this variable should be set to\n // true. Once it becomes true, it should never be set to false again. If this\n // variable remains false throughout the traversal, then we can return the\n // original doc immediately without any modifications.\n let firstVisitMadeChanges = false;\n\n const fieldOrInlineFragmentVisitor: EnterLeaveVisitor<\n FieldNode | InlineFragmentNode\n > = {\n enter(node) {\n if (shouldRemoveField(node.directives)) {\n firstVisitMadeChanges = true;\n return null;\n }\n },\n };\n\n const docWithoutDirectiveSubtrees = visit(doc, {\n // These two AST node types share the same implementation, defined above.\n Field: fieldOrInlineFragmentVisitor,\n InlineFragment: fieldOrInlineFragmentVisitor,\n\n VariableDefinition: {\n enter() {\n // VariableDefinition nodes do not count as variables in use, though\n // they do contain Variable nodes that might be visited below. To avoid\n // counting variable declarations as usages, we skip visiting the\n // contents of this VariableDefinition node by returning false.\n return false;\n },\n },\n\n Variable: {\n enter(node, _key, _parent, _path, ancestors) {\n const inUse = getInUse(ancestors);\n if (inUse) {\n inUse.variables.add(node.name.value);\n }\n },\n },\n\n FragmentSpread: {\n enter(node, _key, _parent, _path, ancestors) {\n if (shouldRemoveField(node.directives)) {\n firstVisitMadeChanges = true;\n return null;\n }\n const inUse = getInUse(ancestors);\n if (inUse) {\n inUse.fragmentSpreads.add(node.name.value);\n }\n // We might like to remove this FragmentSpread by returning null here if\n // the corresponding FragmentDefinition node is also going to be removed\n // by the logic below, but we can't control the relative order of those\n // events, so we have to postpone the removal of dangling FragmentSpread\n // nodes until after the current visit of the document has finished.\n },\n },\n\n FragmentDefinition: {\n enter(node, _key, _parent, path) {\n originalFragmentDefsByPath.set(JSON.stringify(path), node);\n },\n leave(node, _key, _parent, path) {\n const originalNode = originalFragmentDefsByPath.get(\n JSON.stringify(path)\n );\n if (node === originalNode) {\n // If the FragmentNode received by this leave function is identical to\n // the one received by the corresponding enter function (above), then\n // the visitor must not have made any changes within this\n // FragmentDefinition node. This fragment definition may still be\n // removed if there are no ...spread references to it, but it won't be\n // removed just because it has only a __typename field.\n return node;\n }\n\n if (\n // This logic applies only if the document contains one or more\n // operations, since removing all fragments from a document containing\n // only fragments makes the document useless.\n operationCount > 0 &&\n node.selectionSet.selections.every(\n (selection) =>\n selection.kind === Kind.FIELD &&\n selection.name.value === \"__typename\"\n )\n ) {\n // This is a somewhat opinionated choice: if a FragmentDefinition ends\n // up having no fields other than __typename, we remove the whole\n // fragment definition, and later prune ...spread references to it.\n getInUseByFragmentName(node.name.value).removed = true;\n firstVisitMadeChanges = true;\n return null;\n }\n },\n },\n\n Directive: {\n leave(node) {\n // If a matching directive is found, remove the directive itself. Note\n // that this does not remove the target (field, argument, etc) of the\n // directive, but only the directive itself.\n if (directiveMatcher(node)) {\n firstVisitMadeChanges = true;\n return null;\n }\n },\n },\n });\n\n if (!firstVisitMadeChanges) {\n // If our first pass did not change anything about the document, then there\n // is no cleanup we need to do, and we can return the original doc.\n return doc;\n }\n\n // Utility for making sure inUse.transitiveVars is recursively populated.\n // Because this logic assumes inUse.fragmentSpreads has been completely\n // populated and inUse.removed has been set if appropriate,\n // populateTransitiveVars must be called after that information has been\n // collected by the first traversal of the document.\n const populateTransitiveVars = (inUse: InternalInUseInfo) => {\n if (!inUse.transitiveVars) {\n inUse.transitiveVars = new Set(inUse.variables);\n if (!inUse.removed) {\n inUse.fragmentSpreads.forEach((childFragmentName) => {\n populateTransitiveVars(\n getInUseByFragmentName(childFragmentName)\n ).transitiveVars!.forEach((varName) => {\n inUse.transitiveVars!.add(varName);\n });\n });\n }\n }\n return inUse;\n };\n\n // Since we've been keeping track of fragment spreads used by particular\n // operations and fragment definitions, we now need to compute the set of all\n // spreads used (transitively) by any operations in the document.\n const allFragmentNamesUsed = new Set();\n docWithoutDirectiveSubtrees.definitions.forEach((def) => {\n if (def.kind === Kind.OPERATION_DEFINITION) {\n populateTransitiveVars(\n getInUseByOperationName(def.name && def.name.value)\n ).fragmentSpreads.forEach((childFragmentName) => {\n allFragmentNamesUsed.add(childFragmentName);\n });\n } else if (\n def.kind === Kind.FRAGMENT_DEFINITION &&\n // If there are no operations in the document, then all fragment\n // definitions count as usages of their own fragment names. This heuristic\n // prevents accidentally removing all fragment definitions from the\n // document just because it contains no operations that use the fragments.\n operationCount === 0 &&\n !getInUseByFragmentName(def.name.value).removed\n ) {\n allFragmentNamesUsed.add(def.name.value);\n }\n });\n // Now that we have added all fragment spreads used by operations to the\n // allFragmentNamesUsed set, we can complete the set by transitively adding\n // all fragment spreads used by those fragments, and so on.\n allFragmentNamesUsed.forEach((fragmentName) => {\n // Once all the childFragmentName strings added here have been seen already,\n // the top-level allFragmentNamesUsed.forEach loop will terminate.\n populateTransitiveVars(\n getInUseByFragmentName(fragmentName)\n ).fragmentSpreads.forEach((childFragmentName) => {\n allFragmentNamesUsed.add(childFragmentName);\n });\n });\n\n const fragmentWillBeRemoved = (fragmentName: string) =>\n !!(\n // A fragment definition will be removed if there are no spreads that refer\n // to it, or the fragment was explicitly removed because it had no fields\n // other than __typename.\n (\n !allFragmentNamesUsed.has(fragmentName) ||\n getInUseByFragmentName(fragmentName).removed\n )\n );\n\n const enterVisitor: EnterLeaveVisitor<\n FragmentSpreadNode | FragmentDefinitionNode\n > = {\n enter(node) {\n if (fragmentWillBeRemoved(node.name.value)) {\n return null;\n }\n },\n };\n\n return nullIfDocIsEmpty(\n visit(docWithoutDirectiveSubtrees, {\n // If the fragment is going to be removed, then leaving any dangling\n // FragmentSpread nodes with the same name would be a mistake.\n FragmentSpread: enterVisitor,\n\n // This is where the fragment definition is actually removed.\n FragmentDefinition: enterVisitor,\n\n OperationDefinition: {\n leave(node) {\n // Upon leaving each operation in the depth-first AST traversal, prune\n // any variables that are declared by the operation but unused within.\n if (node.variableDefinitions) {\n const usedVariableNames = populateTransitiveVars(\n // If an operation is anonymous, we use the empty string as its key.\n getInUseByOperationName(node.name && node.name.value)\n ).transitiveVars!;\n\n // According to the GraphQL spec, all variables declared by an\n // operation must either be used by that operation or used by some\n // fragment included transitively into that operation:\n // https://spec.graphql.org/draft/#sec-All-Variables-Used\n //\n // To stay on the right side of this validation rule, if/when we\n // remove the last $var references from an operation or its fragments,\n // we must also remove the corresponding $var declaration from the\n // enclosing operation. This pruning applies only to operations and\n // not fragment definitions, at the moment. Fragments may be able to\n // declare variables eventually, but today they can only consume them.\n if (usedVariableNames.size < node.variableDefinitions.length) {\n return {\n ...node,\n variableDefinitions: node.variableDefinitions.filter((varDef) =>\n usedVariableNames.has(varDef.variable.name.value)\n ),\n };\n }\n }\n },\n },\n })\n );\n}\n\nexport const addTypenameToDocument = Object.assign(\n function (doc: TNode): TNode {\n return visit(doc, {\n SelectionSet: {\n enter(node, _key, parent) {\n // Don't add __typename to OperationDefinitions.\n if (\n parent &&\n (parent as OperationDefinitionNode).kind ===\n Kind.OPERATION_DEFINITION\n ) {\n return;\n }\n\n // No changes if no selections.\n const { selections } = node;\n if (!selections) {\n return;\n }\n\n // If selections already have a __typename, or are part of an\n // introspection query, do nothing.\n const skip = selections.some((selection) => {\n return (\n isField(selection) &&\n (selection.name.value === \"__typename\" ||\n selection.name.value.lastIndexOf(\"__\", 0) === 0)\n );\n });\n if (skip) {\n return;\n }\n\n // If this SelectionSet is @export-ed as an input variable, it should\n // not have a __typename field (see issue #4691).\n const field = parent as FieldNode;\n if (\n isField(field) &&\n field.directives &&\n field.directives.some((d) => d.name.value === \"export\")\n ) {\n return;\n }\n\n // Create and return a new SelectionSet with a __typename Field.\n return {\n ...node,\n selections: [...selections, TYPENAME_FIELD],\n };\n },\n },\n });\n },\n {\n added(field: FieldNode): boolean {\n return field === TYPENAME_FIELD;\n },\n }\n);\n\nconst connectionRemoveConfig = {\n test: (directive: DirectiveNode) => {\n const willRemove = directive.name.value === \"connection\";\n if (willRemove) {\n if (\n !directive.arguments ||\n !directive.arguments.some((arg) => arg.name.value === \"key\")\n ) {\n invariant.warn(\n \"Removing an @connection directive even though it does not have a key. \" +\n \"You may want to use the key parameter to specify a store key.\"\n );\n }\n }\n\n return willRemove;\n },\n};\n\nexport function removeConnectionDirectiveFromDocument(doc: DocumentNode) {\n return removeDirectivesFromDocument(\n [connectionRemoveConfig],\n checkDocument(doc)\n );\n}\n\nfunction hasDirectivesInSelectionSet(\n directives: GetDirectiveConfig[],\n selectionSet: SelectionSetNode | undefined,\n nestedCheck = true\n): boolean {\n return (\n !!selectionSet &&\n selectionSet.selections &&\n selectionSet.selections.some((selection) =>\n hasDirectivesInSelection(directives, selection, nestedCheck)\n )\n );\n}\n\nfunction hasDirectivesInSelection(\n directives: GetDirectiveConfig[],\n selection: SelectionNode,\n nestedCheck = true\n): boolean {\n if (!isField(selection)) {\n return true;\n }\n\n if (!selection.directives) {\n return false;\n }\n\n return (\n selection.directives.some(getDirectiveMatcher(directives)) ||\n (nestedCheck &&\n hasDirectivesInSelectionSet(\n directives,\n selection.selectionSet,\n nestedCheck\n ))\n );\n}\n\nfunction getArgumentMatcher(config: RemoveArgumentsConfig[]) {\n return function argumentMatcher(argument: ArgumentNode) {\n return config.some(\n (aConfig: RemoveArgumentsConfig) =>\n argument.value &&\n argument.value.kind === Kind.VARIABLE &&\n argument.value.name &&\n (aConfig.name === argument.value.name.value ||\n (aConfig.test && aConfig.test(argument)))\n );\n };\n}\n\nexport function removeArgumentsFromDocument(\n config: RemoveArgumentsConfig[],\n doc: DocumentNode\n): DocumentNode | null {\n const argMatcher = getArgumentMatcher(config);\n\n return nullIfDocIsEmpty(\n visit(doc, {\n OperationDefinition: {\n enter(node) {\n return {\n ...node,\n // Remove matching top level variables definitions.\n variableDefinitions:\n node.variableDefinitions ?\n node.variableDefinitions.filter(\n (varDef) =>\n !config.some(\n (arg) => arg.name === varDef.variable.name.value\n )\n )\n : [],\n };\n },\n },\n\n Field: {\n enter(node) {\n // If `remove` is set to true for an argument, and an argument match\n // is found for a field, remove the field as well.\n const shouldRemoveField = config.some(\n (argConfig) => argConfig.remove\n );\n\n if (shouldRemoveField) {\n let argMatchCount = 0;\n if (node.arguments) {\n node.arguments.forEach((arg) => {\n if (argMatcher(arg)) {\n argMatchCount += 1;\n }\n });\n }\n\n if (argMatchCount === 1) {\n return null;\n }\n }\n },\n },\n\n Argument: {\n enter(node) {\n // Remove all matching arguments.\n if (argMatcher(node)) {\n return null;\n }\n },\n },\n })\n );\n}\n\nexport function removeFragmentSpreadFromDocument(\n config: RemoveFragmentSpreadConfig[],\n doc: DocumentNode\n): DocumentNode | null {\n function enter(\n node: FragmentSpreadNode | FragmentDefinitionNode\n ): null | void {\n if (config.some((def) => def.name === node.name.value)) {\n return null;\n }\n }\n\n return nullIfDocIsEmpty(\n visit(doc, {\n FragmentSpread: { enter },\n FragmentDefinition: { enter },\n })\n );\n}\n\n// If the incoming document is a query, return it as is. Otherwise, build a\n// new document containing a query operation based on the selection set\n// of the previous main operation.\nexport function buildQueryFromSelectionSet(\n document: DocumentNode\n): DocumentNode {\n const definition = getMainDefinition(document);\n const definitionOperation = (definition).operation;\n\n if (definitionOperation === \"query\") {\n // Already a query, so return the existing document.\n return document;\n }\n\n // Build a new query using the selection set of the main operation.\n const modifiedDoc = visit(document, {\n OperationDefinition: {\n enter(node) {\n return {\n ...node,\n operation: \"query\",\n };\n },\n },\n });\n return modifiedDoc;\n}\n\n// Remove fields / selection sets that include an @client directive.\nexport function removeClientSetsFromDocument(\n document: DocumentNode\n): DocumentNode | null {\n checkDocument(document);\n\n let modifiedDoc = removeDirectivesFromDocument(\n [\n {\n test: (directive: DirectiveNode) => directive.name.value === \"client\",\n remove: true,\n },\n ],\n document\n );\n\n return modifiedDoc;\n}\n","import { invariant } from \"../../utilities/globals/index.js\";\n\nimport type { DefinitionNode } from \"graphql\";\n\nimport { ApolloLink } from \"../core/index.js\";\nimport { Observable, hasDirectives } from \"../../utilities/index.js\";\nimport { serializeFetchParameter } from \"./serializeFetchParameter.js\";\nimport { selectURI } from \"./selectURI.js\";\nimport {\n handleError,\n readMultipartBody,\n parseAndCheckHttpResponse,\n} from \"./parseAndCheckHttpResponse.js\";\nimport { checkFetcher } from \"./checkFetcher.js\";\nimport type { HttpOptions } from \"./selectHttpOptionsAndBody.js\";\nimport {\n selectHttpOptionsAndBodyInternal,\n defaultPrinter,\n fallbackHttpConfig,\n} from \"./selectHttpOptionsAndBody.js\";\nimport { rewriteURIForGET } from \"./rewriteURIForGET.js\";\nimport { fromError, filterOperationVariables } from \"../utils/index.js\";\nimport {\n maybe,\n getMainDefinition,\n removeClientSetsFromDocument,\n} from \"../../utilities/index.js\";\n\nconst backupFetch = maybe(() => fetch);\n\nexport const createHttpLink = (linkOptions: HttpOptions = {}) => {\n let {\n uri = \"/graphql\",\n // use default global fetch if nothing passed in\n fetch: preferredFetch,\n print = defaultPrinter,\n includeExtensions,\n preserveHeaderCase,\n useGETForQueries,\n includeUnusedVariables = false,\n ...requestOptions\n } = linkOptions;\n\n if (__DEV__) {\n // Make sure at least one of preferredFetch, window.fetch, or backupFetch is\n // defined, so requests won't fail at runtime.\n checkFetcher(preferredFetch || backupFetch);\n }\n\n const linkConfig = {\n http: { includeExtensions, preserveHeaderCase },\n options: requestOptions.fetchOptions,\n credentials: requestOptions.credentials,\n headers: requestOptions.headers,\n };\n\n return new ApolloLink((operation) => {\n let chosenURI = selectURI(operation, uri);\n\n const context = operation.getContext();\n\n // `apollographql-client-*` headers are automatically set if a\n // `clientAwareness` object is found in the context. These headers are\n // set first, followed by the rest of the headers pulled from\n // `context.headers`. If desired, `apollographql-client-*` headers set by\n // the `clientAwareness` object can be overridden by\n // `apollographql-client-*` headers set in `context.headers`.\n const clientAwarenessHeaders: {\n \"apollographql-client-name\"?: string;\n \"apollographql-client-version\"?: string;\n } = {};\n\n if (context.clientAwareness) {\n const { name, version } = context.clientAwareness;\n if (name) {\n clientAwarenessHeaders[\"apollographql-client-name\"] = name;\n }\n if (version) {\n clientAwarenessHeaders[\"apollographql-client-version\"] = version;\n }\n }\n\n const contextHeaders = { ...clientAwarenessHeaders, ...context.headers };\n\n const contextConfig = {\n http: context.http,\n options: context.fetchOptions,\n credentials: context.credentials,\n headers: contextHeaders,\n };\n\n if (hasDirectives([\"client\"], operation.query)) {\n const transformedQuery = removeClientSetsFromDocument(operation.query);\n\n if (!transformedQuery) {\n return fromError(\n new Error(\n \"HttpLink: Trying to send a client-only query to the server. To send to the server, ensure a non-client field is added to the query or set the `transformOptions.removeClientFields` option to `true`.\"\n )\n );\n }\n\n operation.query = transformedQuery;\n }\n\n //uses fallback, link, and then context to build options\n const { options, body } = selectHttpOptionsAndBodyInternal(\n operation,\n print,\n fallbackHttpConfig,\n linkConfig,\n contextConfig\n );\n\n if (body.variables && !includeUnusedVariables) {\n body.variables = filterOperationVariables(\n body.variables,\n operation.query\n );\n }\n\n let controller: AbortController | undefined;\n if (!options.signal && typeof AbortController !== \"undefined\") {\n controller = new AbortController();\n options.signal = controller.signal;\n }\n\n // If requested, set method to GET if there are no mutations.\n const definitionIsMutation = (d: DefinitionNode) => {\n return d.kind === \"OperationDefinition\" && d.operation === \"mutation\";\n };\n const definitionIsSubscription = (d: DefinitionNode) => {\n return d.kind === \"OperationDefinition\" && d.operation === \"subscription\";\n };\n const isSubscription = definitionIsSubscription(\n getMainDefinition(operation.query)\n );\n // does not match custom directives beginning with @defer\n const hasDefer = hasDirectives([\"defer\"], operation.query);\n if (\n useGETForQueries &&\n !operation.query.definitions.some(definitionIsMutation)\n ) {\n options.method = \"GET\";\n }\n\n if (hasDefer || isSubscription) {\n options.headers = options.headers || {};\n let acceptHeader = \"multipart/mixed;\";\n // Omit defer-specific headers if the user attempts to defer a selection\n // set on a subscription and log a warning.\n if (isSubscription && hasDefer) {\n invariant.warn(\"Multipart-subscriptions do not support @defer\");\n }\n\n if (isSubscription) {\n acceptHeader +=\n \"boundary=graphql;subscriptionSpec=1.0,application/json\";\n } else if (hasDefer) {\n acceptHeader += \"deferSpec=20220824,application/json\";\n }\n options.headers.accept = acceptHeader;\n }\n\n if (options.method === \"GET\") {\n const { newURI, parseError } = rewriteURIForGET(chosenURI, body);\n if (parseError) {\n return fromError(parseError);\n }\n chosenURI = newURI;\n } else {\n try {\n (options as any).body = serializeFetchParameter(body, \"Payload\");\n } catch (parseError) {\n return fromError(parseError);\n }\n }\n\n return new Observable((observer) => {\n // Prefer linkOptions.fetch (preferredFetch) if provided, and otherwise\n // fall back to the *current* global window.fetch function (see issue\n // #7832), or (if all else fails) the backupFetch function we saved when\n // this module was first evaluated. This last option protects against the\n // removal of window.fetch, which is unlikely but not impossible.\n const currentFetch = preferredFetch || maybe(() => fetch) || backupFetch;\n\n const observerNext = observer.next.bind(observer);\n currentFetch!(chosenURI, options)\n .then((response) => {\n operation.setContext({ response });\n const ctype = response.headers?.get(\"content-type\");\n\n if (ctype !== null && /^multipart\\/mixed/i.test(ctype)) {\n return readMultipartBody(response, observerNext);\n } else {\n return parseAndCheckHttpResponse(operation)(response).then(\n observerNext\n );\n }\n })\n .then(() => {\n controller = undefined;\n observer.complete();\n })\n .catch((err) => {\n controller = undefined;\n handleError(err, observer);\n });\n\n return () => {\n // XXX support canceling this request\n // https://developers.google.com/web/updates/2017/09/abortable-fetch\n if (controller) controller.abort();\n };\n });\n });\n};\n","import { newInvariantError } from \"../../utilities/globals/index.js\";\n\nexport const checkFetcher = (fetcher: typeof fetch | undefined) => {\n if (!fetcher && typeof fetch === \"undefined\") {\n throw newInvariantError(`\n\"fetch\" has not been found globally and no fetcher has been \\\nconfigured. To fix this, install a fetch package (like \\\nhttps://www.npmjs.com/package/cross-fetch), instantiate the \\\nfetcher, 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};\n","import type { Operation } from \"../core/index.js\";\n\nexport const selectURI = (\n operation: Operation,\n fallbackURI?: string | ((operation: Operation) => string)\n) => {\n const context = operation.getContext();\n const 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 as string) || \"/graphql\";\n }\n};\n","import type { VariableDefinitionNode, DocumentNode } from \"graphql\";\nimport { visit } from \"graphql\";\n\nexport function filterOperationVariables(\n variables: Record,\n query: DocumentNode\n) {\n const result = { ...variables };\n const unusedNames = new Set(Object.keys(variables));\n visit(query, {\n Variable(node, _key, parent) {\n // A variable type definition at the top level of a query is not\n // enough to silence server-side errors about the variable being\n // unused, so variable definitions do not count as usage.\n // https://spec.graphql.org/draft/#sec-All-Variables-Used\n if (\n parent &&\n (parent as VariableDefinitionNode).kind !== \"VariableDefinition\"\n ) {\n unusedNames.delete(node.name.value);\n }\n },\n });\n unusedNames.forEach((name) => {\n delete result![name];\n });\n return result;\n}\n","import { serializeFetchParameter } from \"./serializeFetchParameter.js\";\nimport type { Body } from \"./selectHttpOptionsAndBody.js\";\n\n// For GET operations, returns the given URI rewritten with parameters, or a\n// parse error.\nexport function rewriteURIForGET(chosenURI: string, body: Body) {\n // Implement the standard HTTP GET serialization, plus 'extensions'. Note\n // the extra level of JSON serialization!\n const queryParams: string[] = [];\n const addQueryParam = (key: string, value: string) => {\n queryParams.push(`${key}=${encodeURIComponent(value)}`);\n };\n\n if (\"query\" in body) {\n addQueryParam(\"query\", body.query!);\n }\n if (body.operationName) {\n addQueryParam(\"operationName\", body.operationName);\n }\n if (body.variables) {\n let serializedVariables;\n try {\n serializedVariables = serializeFetchParameter(\n body.variables,\n \"Variables map\"\n );\n } catch (parseError) {\n return { parseError };\n }\n addQueryParam(\"variables\", serializedVariables);\n }\n if (body.extensions) {\n let serializedExtensions;\n try {\n serializedExtensions = serializeFetchParameter(\n body.extensions,\n \"Extensions map\"\n );\n } catch (parseError) {\n return { parseError };\n }\n addQueryParam(\"extensions\", serializedExtensions);\n }\n\n // Reconstruct the URI with added query params.\n // XXX This assumes that the URI is well-formed and that it doesn't\n // already contain any of these query params. We could instead use the\n // URL API and take a polyfill (whatwg-url@6) for older browsers that\n // don't support URLSearchParams. Note that some browsers (and\n // versions of whatwg-url) support URL but not URLSearchParams!\n let fragment = \"\",\n preFragment = chosenURI;\n const fragmentStart = chosenURI.indexOf(\"#\");\n if (fragmentStart !== -1) {\n fragment = chosenURI.substr(fragmentStart);\n preFragment = chosenURI.substr(0, fragmentStart);\n }\n const queryParamsPrefix = preFragment.indexOf(\"?\") === -1 ? \"?\" : \"&\";\n const newURI =\n preFragment + queryParamsPrefix + queryParams.join(\"&\") + fragment;\n return { newURI };\n}\n","import { ApolloLink } from \"./ApolloLink.js\";\n\nexport const execute = ApolloLink.execute;\n","import { ApolloLink } from \"../core/index.js\";\nimport type { HttpOptions } from \"./selectHttpOptionsAndBody.js\";\nimport { createHttpLink } from \"./createHttpLink.js\";\n\nexport class HttpLink extends ApolloLink {\n constructor(public options: HttpOptions = {}) {\n super(createHttpLink(options).request);\n }\n}\n","const { toString, hasOwnProperty } = Object.prototype;\nconst fnToStr = Function.prototype.toString;\nconst previousComparisons = new Map>();\n\n/**\n * Performs a deep equality check on two JavaScript values, tolerating cycles.\n */\nexport function equal(a: any, b: any): boolean {\n try {\n return check(a, b);\n } finally {\n previousComparisons.clear();\n }\n}\n\n// Allow default imports as well.\nexport default equal;\n\nfunction check(a: any, b: any): boolean {\n // If the two values are strictly equal, our job is easy.\n if (a === b) {\n return true;\n }\n\n // Object.prototype.toString returns a representation of the runtime type of\n // the given value that is considerably more precise than typeof.\n const aTag = toString.call(a);\n const bTag = toString.call(b);\n\n // 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 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 case '[object Object]': {\n if (previouslyCompared(a, b)) return true;\n\n const aKeys = definedKeys(a);\n const bKeys = definedKeys(b);\n\n // If `a` and `b` have a different number of enumerable keys, they\n // must be different.\n const keyCount = aKeys.length;\n if (keyCount !== bKeys.length) return false;\n\n // Now make sure they have the same keys.\n for (let k = 0; k < keyCount; ++k) {\n if (!hasOwnProperty.call(b, aKeys[k])) {\n return false;\n }\n }\n\n // Finally, check deep equality of all child properties.\n for (let k = 0; k < keyCount; ++k) {\n const key = aKeys[k];\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 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 if (a.size !== b.size) return false;\n if (previouslyCompared(a, b)) return true;\n\n const aIterator = a.entries();\n const isMap = aTag === '[object Map]';\n\n while (true) {\n const info = aIterator.next();\n if (info.done) break;\n\n // If a instanceof Set, aValue === aKey.\n const [aKey, aValue] = info.value;\n\n // So this works the same way for both Set and Map.\n if (!b.has(aKey)) {\n return false;\n }\n\n // However, we care about deep equality of values only when dealing\n // with Map structures.\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 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 case '[object DataView]': {\n let len = a.byteLength;\n if (len === b.byteLength) {\n while (len-- && a[len] === b[len]) {\n // Keep looping as long as the bytes are equal.\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 const aCode = fnToStr.call(a);\n if (aCode !== fnToStr.call(b)) {\n return false;\n }\n\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 return !endsWith(aCode, nativeCodeSuffix);\n }\n }\n\n // Otherwise the values are not equal.\n return false;\n}\n\nfunction definedKeys(obj: TObject) {\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}\nfunction isDefinedKey(\n this: TObject,\n key: keyof TObject,\n) {\n return this[key] !== void 0;\n}\n\nconst nativeCodeSuffix = \"{ [native code] }\";\n\nfunction endsWith(full: string, suffix: string) {\n const fromIndex = full.length - suffix.length;\n return fromIndex >= 0 &&\n full.indexOf(suffix, fromIndex) === fromIndex;\n}\n\nfunction previouslyCompared(a: object, b: object): boolean {\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 let bSet = previousComparisons.get(a);\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 bSet.add(b);\n return false;\n}\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\n// If no makeData function is supplied, the looked-up data will be an empty,\n// null-prototype Object.\nconst defaultMakeData = () => Object.create(null);\n\n// Useful for processing arguments objects as well as arrays.\nconst { forEach, slice } = Array.prototype;\nconst { hasOwnProperty } = Object.prototype;\n\nexport class Trie {\n // Since a `WeakMap` cannot hold primitive values as keys, we need a\n // backup `Map` instance to hold primitive keys. Both `this._weakMap`\n // and `this._strongMap` are lazily initialized.\n private weak?: WeakMap>;\n private strong?: Map>;\n private data?: Data;\n\n constructor(\n private weakness = true,\n private makeData: (array: any[]) => Data = defaultMakeData,\n ) {}\n\n public lookup(...array: T): Data;\n public lookup(): Data {\n return this.lookupArray(arguments);\n }\n\n public lookupArray(array: T): Data {\n let node: Trie = this;\n forEach.call(array, key => node = node.getChildTrie(key));\n return hasOwnProperty.call(node, \"data\")\n ? node.data as Data\n : node.data = this.makeData(slice.call(array));\n }\n\n public peek(...array: T): Data | undefined;\n public peek(): Data | undefined {\n return this.peekArray(arguments);\n }\n\n public peekArray(array: T): Data | undefined {\n let node: Trie | undefined = this;\n\n for (let i = 0, len = array.length; node && i < len; ++i) {\n const map = node.mapFor(array[i], false);\n node = map && map.get(array[i]);\n }\n\n return node && node.data;\n }\n\n public remove(...array: any[]): Data | undefined;\n public remove(): Data | undefined {\n return this.removeArray(arguments);\n }\n\n public removeArray(array: T): Data | undefined {\n let data: Data | undefined;\n\n if (array.length) {\n const head = array[0];\n const map = this.mapFor(head, false);\n const child = map && map.get(head);\n if (child) {\n data = child.removeArray(slice.call(array, 1));\n if (!child.data && !child.weak && !(child.strong && child.strong.size)) {\n map.delete(head);\n }\n }\n } else {\n data = this.data;\n delete this.data;\n }\n\n return data;\n }\n\n private getChildTrie(key: any) {\n const map = this.mapFor(key, true)!;\n let child = map.get(key);\n if (!child) map.set(key, child = new Trie(this.weakness, this.makeData));\n return child;\n }\n\n private mapFor(key: any, create: boolean): Trie[\"weak\" | \"strong\"] | undefined {\n return this.weakness && isObjRef(key)\n ? this.weak || (create ? this.weak = new WeakMap : void 0)\n : this.strong || (create ? this.strong = new Map : void 0);\n }\n}\n\nfunction isObjRef(value: any) {\n switch (typeof value) {\n case \"object\":\n if (value === null) break;\n // Fall through to return true...\n case \"function\":\n return true;\n }\n return false;\n}\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\n// If no makeData function is supplied, the looked-up data will be an empty,\n// null-prototype Object.\nconst defaultMakeData = () => Object.create(null);\n\n// Useful for processing arguments objects as well as arrays.\nconst { forEach, slice } = Array.prototype;\nconst { hasOwnProperty } = Object.prototype;\n\nexport class Trie {\n // Since a `WeakMap` cannot hold primitive values as keys, we need a\n // backup `Map` instance to hold primitive keys. Both `this._weakMap`\n // and `this._strongMap` are lazily initialized.\n private weak?: WeakMap>;\n private strong?: Map>;\n private data?: Data;\n\n constructor(\n private weakness = true,\n private makeData: (array: any[]) => Data = defaultMakeData,\n ) {}\n\n public lookup(...array: T): Data {\n return this.lookupArray(array);\n }\n\n public lookupArray(array: T): Data {\n let node: Trie = this;\n forEach.call(array, key => node = node.getChildTrie(key));\n return hasOwnProperty.call(node, \"data\")\n ? node.data as Data\n : node.data = this.makeData(slice.call(array));\n }\n\n public peek(...array: T): Data | undefined {\n return this.peekArray(array);\n }\n\n public peekArray(array: T): Data | undefined {\n let node: Trie | undefined = this;\n\n for (let i = 0, len = array.length; node && i < len; ++i) {\n const map: Trie[\"weak\" | \"strong\"] =\n this.weakness && isObjRef(array[i]) ? node.weak : node.strong;\n\n node = map && map.get(array[i]);\n }\n\n return node && node.data;\n }\n\n private getChildTrie(key: any) {\n const map = this.weakness && isObjRef(key)\n ? this.weak || (this.weak = new WeakMap>())\n : this.strong || (this.strong = new Map>());\n let child = map.get(key);\n if (!child) map.set(key, child = new Trie(this.weakness, this.makeData));\n return child;\n }\n}\n\nfunction isObjRef(value: any) {\n switch (typeof value) {\n case \"object\":\n if (value === null) break;\n // Fall through to return true...\n case \"function\":\n return true;\n }\n return false;\n}\n","type Context = {\n parent: Context | null;\n slots: { [slotId: string]: any };\n}\n\n// 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.\nlet currentContext: Context | null = null;\n\n// 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.\nconst MISSING_VALUE: any = {};\n\nlet idCounter = 1;\n\n// 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.\nconst makeSlotClass = () => class 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 public readonly id = [\n \"slot\",\n idCounter++,\n Date.now(),\n Math.random().toString(36).slice(2),\n ].join(\":\");\n\n public hasValue() {\n for (let context = currentContext; context; context = context.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.slots) {\n const value = context.slots[this.id];\n if (value === MISSING_VALUE) break;\n if (context !== 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 return true;\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 return false;\n }\n\n public getValue(): TValue | undefined {\n if (this.hasValue()) {\n return currentContext!.slots[this.id] as TValue;\n }\n }\n\n public withValue(\n value: TValue,\n callback: (this: TThis, ...args: TArgs) => TResult,\n // Given the prevalence of arrow functions, specifying arguments is likely\n // to be much more common than specifying `this`, hence this ordering:\n args?: TArgs,\n thisArg?: TThis,\n ): TResult {\n const slots = {\n __proto__: null,\n [this.id]: value,\n };\n const parent = currentContext;\n currentContext = { parent, slots };\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 }\n\n // Capture the current context and wrap a callback function so that it\n // reestablishes the captured context when called.\n static bind(\n callback: (this: TThis, ...args: TArgs) => TResult,\n ) {\n const context = currentContext;\n return function (this: TThis) {\n const saved = currentContext;\n try {\n currentContext = context;\n return callback.apply(this, arguments as any);\n } finally {\n currentContext = saved;\n }\n } as typeof callback;\n }\n\n // Immediately run a callback function without any captured context.\n static noContext(\n callback: (this: TThis, ...args: TArgs) => TResult,\n // Given the prevalence of arrow functions, specifying arguments is likely\n // to be much more common than specifying `this`, hence this ordering:\n args?: TArgs,\n thisArg?: TThis,\n ) {\n if (currentContext) {\n const saved = currentContext;\n try {\n currentContext = null;\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 = saved;\n }\n } else {\n return callback.apply(thisArg!, args!);\n }\n }\n};\n\nfunction maybe(fn: () => T): T | undefined {\n try {\n return fn();\n } catch (ignored) {}\n}\n\n// We store a single global implementation of the Slot class as a permanent\n// non-enumerable property of the globalThis object. This obfuscation does\n// nothing to prevent access to the Slot class, but at least it ensures the\n// implementation (i.e. currentContext) cannot be tampered with, and all copies\n// of the @wry/context package (hopefully just one) will share the same Slot\n// implementation. Since the first copy of the @wry/context package to be\n// imported wins, this technique imposes a steep cost for any future breaking\n// changes to the Slot class.\nconst globalKey = \"@wry/context:Slot\";\n\nconst host =\n // Prefer globalThis when available.\n // https://github.com/benjamn/wryware/issues/347\n maybe(() => globalThis) ||\n // Fall back to global, which works in Node.js and may be converted by some\n // bundlers to the appropriate identifier (window, self, ...) depending on the\n // bundling target. https://github.com/endojs/endo/issues/576#issuecomment-1178515224\n maybe(() => global) ||\n // Otherwise, use a dummy host that's local to this module. We used to fall\n // back to using the Array constructor as a namespace, but that was flagged in\n // https://github.com/benjamn/wryware/issues/347, and can be avoided.\n Object.create(null) as typeof Array;\n\n// Whichever globalHost we're using, make TypeScript happy about the additional\n// globalKey property.\nconst globalHost: typeof host & {\n [globalKey]?: typeof Slot;\n} = host;\n\nexport const Slot: ReturnType =\n globalHost[globalKey] ||\n // Earlier versions of this package stored the globalKey property on the Array\n // constructor, so we check there as well, to prevent Slot class duplication.\n (Array as typeof globalHost)[globalKey] ||\n (function (Slot) {\n try {\n Object.defineProperty(globalHost, globalKey, {\n value: Slot,\n enumerable: false,\n writable: false,\n // When it was possible for globalHost to be the Array constructor (a\n // legacy Slot dedup strategy), it was important for the property to be\n // configurable:true so it could be deleted. That does not seem to be as\n // important when globalHost is the global object, but I don't want to\n // cause similar problems again, and configurable:true seems safest.\n // https://github.com/endojs/endo/issues/576#issuecomment-1178274008\n configurable: true\n });\n } finally {\n return Slot;\n }\n })(makeSlotClass());\n","import { Slot } from \"./slot.js\";\nexport { Slot }\nexport const { bind, noContext } = Slot;\n\n// Relying on the @types/node declaration of global.setTimeout can make\n// things tricky for dowstream projects (see PR #7).\ndeclare function setTimeout(\n callback: (...args: any[]) => any,\n ms?: number,\n ...args: any[]\n): any;\n\n// Like global.setTimeout, except the callback runs with captured context.\nexport { setTimeoutWithContext as setTimeout };\nfunction setTimeoutWithContext(callback: () => any, delay: number) {\n return setTimeout(bind(callback), delay);\n}\n\n// Turn any generator function into an async function (using yield instead\n// of await), with context automatically preserved across yields.\nexport function asyncFromGen<\n TArgs extends any[],\n TYield = any,\n TReturn = any,\n TNext = any,\n>(\n genFn: (...args: TArgs) => Generator\n) {\n return function (this: any) {\n const gen = genFn.apply(this, arguments as any);\n\n type Method = (\n this: Generator,\n arg: any,\n ) => IteratorResult;\n\n const boundNext: Method = bind(gen.next);\n const boundThrow: Method = bind(gen.throw!);\n\n return new Promise((resolve, reject) => {\n function invoke(method: Method, argument: any) {\n try {\n var result: any = method.call(gen, argument);\n } catch (error) {\n return reject(error);\n }\n const next = result.done ? resolve : invokeNext;\n if (isPromiseLike(result.value)) {\n result.value.then(next, result.done ? reject : invokeThrow);\n } else {\n next(result.value);\n }\n }\n const invokeNext = (value?: any) => invoke(boundNext, value);\n const invokeThrow = (error: any) => invoke(boundThrow, error);\n invokeNext();\n });\n } as (...args: TArgs) => Promise;\n}\n\nfunction isPromiseLike(value: any): value is PromiseLike {\n return value && typeof value.then === \"function\";\n}\n\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.\nconst wrappedFibers: Function[] = [];\nexport function wrapYieldingFiberMethods(Fiber: F): F {\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 const wrap = (obj: any, method: string) => {\n const fn = obj[method];\n obj[method] = function () {\n return noContext(fn, arguments as any, this);\n };\n }\n // These methods can yield, according to\n // https://github.com/laverdet/node-fibers/blob/ddebed9b8ae3883e57f822e2108e6943e5c8d2a8/fibers.js#L97-L100\n wrap(Fiber, \"yield\");\n wrap(Fiber.prototype, \"run\");\n wrap(Fiber.prototype, \"throwInto\");\n wrappedFibers.push(Fiber);\n }\n return Fiber;\n}\n","import { Slot } from \"@wry/context\";\nimport { AnyEntry } from \"./entry.js\";\n\nexport const parentEntrySlot = new Slot();\n\nexport function nonReactive(fn: () => R): R {\n return parentEntrySlot.withValue(void 0, fn);\n}\n\nexport { Slot }\nexport {\n bind as bindContext,\n noContext,\n setTimeout,\n asyncFromGen,\n} from \"@wry/context\";\n","export type NoInfer = [T][T extends any ? 0 : never];\n\nexport const {\n hasOwnProperty,\n} = Object.prototype;\n\nexport const arrayFromSet: (set: Set) => T[] =\n Array.from ||\n function (set) {\n const array: any[] = [];\n set.forEach(item => array.push(item));\n return array;\n };\n\nexport type Unsubscribable = {\n unsubscribe?: void | (() => any);\n}\n\nexport function maybeUnsubscribe(entryOrDep: Unsubscribable) {\n const { unsubscribe } = entryOrDep;\n if (typeof unsubscribe === \"function\") {\n entryOrDep.unsubscribe = void 0;\n unsubscribe();\n }\n}\n","import { parentEntrySlot } from \"./context.js\";\nimport { OptimisticWrapOptions } from \"./index.js\";\nimport { Dep } from \"./dep.js\";\nimport { maybeUnsubscribe, arrayFromSet, Unsubscribable } from \"./helpers.js\";\n\nconst emptySetPool: Set[] = [];\nconst POOL_TARGET_SIZE = 100;\n\n// Since this package might be used browsers, we should avoid using the\n// Node built-in assert module.\nfunction assert(condition: any, optionalMessage?: string) {\n if (! condition) {\n throw new Error(optionalMessage || \"assertion failure\");\n }\n}\n\n// Since exceptions are cached just like normal values, we need an efficient\n// way of representing unknown, ordinary, and exceptional values.\ntype Value =\n | [] // unknown\n | [T] // known value\n | [void, any]; // known exception\n\nfunction valueIs(a: Value, b: Value) {\n const len = a.length;\n return (\n // Unknown values are not equal to each other.\n len > 0 &&\n // Both values must be ordinary (or both exceptional) to be equal.\n len === b.length &&\n // The underlying value or exception must be the same.\n a[len - 1] === b[len - 1]\n );\n}\n\nfunction valueGet(value: Value): T {\n switch (value.length) {\n case 0: throw new Error(\"unknown value\");\n case 1: return value[0];\n case 2: throw value[1];\n }\n}\n\nfunction valueCopy(value: Value): Value {\n return value.slice(0) as Value;\n}\n\nexport type AnyEntry = Entry;\n\nexport class Entry {\n public static count = 0;\n\n public normalizeResult: OptimisticWrapOptions[\"normalizeResult\"];\n public subscribe: OptimisticWrapOptions[\"subscribe\"];\n public unsubscribe: Unsubscribable[\"unsubscribe\"];\n\n public readonly parents = new Set();\n public readonly childValues = new Map>();\n\n // 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 public dirtyChildren: Set | null = null;\n\n public dirty = true;\n public recomputing = false;\n public readonly value: Value = [];\n\n constructor(\n public readonly fn: (...args: TArgs) => TValue,\n ) {\n ++Entry.count;\n }\n\n public peek(): TValue | undefined {\n if (this.value.length === 1 && !mightBeDirty(this)) {\n rememberParent(this);\n return this.value[0];\n }\n }\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 public recompute(args: TArgs): TValue {\n assert(! this.recomputing, \"already recomputing\");\n rememberParent(this);\n return mightBeDirty(this)\n ? reallyRecompute(this, args)\n : valueGet(this.value);\n }\n\n public setDirty() {\n if (this.dirty) return;\n this.dirty = true;\n reportDirty(this);\n // 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 maybeUnsubscribe(this);\n }\n\n public dispose() {\n this.setDirty();\n\n // 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 forgetChildren(this);\n\n // 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 eachParent(this, (parent, child) => {\n parent.setDirty();\n forgetChild(parent, this);\n });\n }\n\n public forget() {\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 private deps: Set> | null = null;\n\n public dependOn(dep: Dep) {\n dep.add(this);\n if (! this.deps) {\n this.deps = emptySetPool.pop() || new Set>();\n }\n this.deps.add(dep);\n }\n\n public forgetDeps() {\n if (this.deps) {\n arrayFromSet(this.deps).forEach(dep => dep.delete(this));\n this.deps.clear();\n emptySetPool.push(this.deps);\n this.deps = null;\n }\n }\n}\n\nfunction rememberParent(child: AnyEntry) {\n const parent = parentEntrySlot.getValue();\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: AnyEntry, args: any[]) {\n forgetChildren(entry);\n\n // Set entry as the parent entry while calling recomputeNewValue(entry).\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: AnyEntry, args: any[]) {\n entry.recomputing = true;\n\n const { normalizeResult } = entry;\n let oldValueCopy: Value | undefined;\n if (normalizeResult && entry.value.length === 1) {\n oldValueCopy = valueCopy(entry.value);\n }\n\n // Make entry.value an empty array, representing an unknown value.\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\n // If we have a viable oldValueCopy to compare with the (successfully\n // recomputed) new entry.value, and they are not already === identical, give\n // normalizeResult a chance to pick/choose/reuse parts of oldValueCopy[0]\n // and/or entry.value[0] to determine the final cached entry.value.\n if (normalizeResult && oldValueCopy && !valueIs(oldValueCopy, entry.value)) {\n try {\n entry.value[0] = normalizeResult(entry.value[0], oldValueCopy[0]);\n } catch {\n // If normalizeResult throws, just use the newer value, rather than\n // saving the exception as entry.value[1].\n }\n }\n\n } catch (e) {\n // If entry.fn throws, entry.value will hold that exception.\n entry.value[1] = e;\n }\n\n // Either way, this line is always reached.\n entry.recomputing = false;\n}\n\nfunction mightBeDirty(entry: AnyEntry) {\n return entry.dirty || !!(entry.dirtyChildren && entry.dirtyChildren.size);\n}\n\nfunction setClean(entry: AnyEntry) {\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: AnyEntry) {\n eachParent(child, reportDirtyChild);\n}\n\nfunction reportClean(child: AnyEntry) {\n eachParent(child, reportCleanChild);\n}\n\nfunction eachParent(\n child: AnyEntry,\n callback: (parent: AnyEntry, child: AnyEntry) => any,\n) {\n const parentCount = child.parents.size;\n if (parentCount) {\n const parents = arrayFromSet(child.parents);\n for (let i = 0; i < parentCount; ++i) {\n callback(parents[i], child);\n }\n }\n}\n\n// Let a parent Entry know that one of its children may be dirty.\nfunction reportDirtyChild(parent: AnyEntry, child: AnyEntry) {\n // Must have called rememberParent(child) before calling\n // reportDirtyChild(parent, child).\n assert(parent.childValues.has(child));\n assert(mightBeDirty(child));\n const parentWasClean = !mightBeDirty(parent);\n\n if (! parent.dirtyChildren) {\n parent.dirtyChildren = emptySetPool.pop() || new Set;\n\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);\n\n // If parent was clean before, it just became (possibly) dirty (according to\n // mightBeDirty), since we just added child to parent.dirtyChildren.\n if (parentWasClean) {\n reportDirty(parent);\n }\n}\n\n// Let a parent Entry know that one of its children is no longer dirty.\nfunction reportCleanChild(parent: AnyEntry, child: AnyEntry) {\n // Must have called rememberChild(child) before calling\n // reportCleanChild(parent, child).\n assert(parent.childValues.has(child));\n assert(! mightBeDirty(child));\n\n const childValue = parent.childValues.get(child)!;\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: AnyEntry, child: AnyEntry) {\n const dc = parent.dirtyChildren;\n if (dc) {\n dc.delete(child);\n if (dc.size === 0) {\n if (emptySetPool.length < POOL_TARGET_SIZE) {\n emptySetPool.push(dc);\n }\n parent.dirtyChildren = null;\n }\n }\n}\n\n// Removes all children from this entry and returns an array of the\n// removed children.\nfunction forgetChildren(parent: AnyEntry) {\n if (parent.childValues.size > 0) {\n parent.childValues.forEach((_value, child) => {\n forgetChild(parent, child);\n });\n }\n\n // Remove this parent Entry from any sets to which it was added by the\n // addToSet method.\n parent.forgetDeps();\n\n // After we forget all our children, this.dirtyChildren must be empty\n // and therefore must have been reset to null.\n assert(parent.dirtyChildren === null);\n}\n\nfunction forgetChild(parent: AnyEntry, child: AnyEntry) {\n child.parents.delete(parent);\n parent.childValues.delete(child);\n removeDirtyChild(parent, child);\n}\n\nfunction maybeSubscribe(entry: AnyEntry, args: any[]) {\n if (typeof entry.subscribe === \"function\") {\n try {\n maybeUnsubscribe(entry); // Prevent double subscriptions.\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 }\n\n // Returning true indicates either that there was no entry.subscribe\n // function or that it succeeded.\n return true;\n}\n","import { AnyEntry } from \"./entry.js\";\nimport { OptimisticWrapOptions } from \"./index.js\";\nimport { parentEntrySlot } from \"./context.js\";\nimport {\n hasOwnProperty,\n Unsubscribable,\n maybeUnsubscribe,\n arrayFromSet,\n } from \"./helpers.js\";\n\ntype EntryMethodName = keyof typeof EntryMethods;\nconst EntryMethods = {\n setDirty: true, // Mark parent Entry as needing to be recomputed (default)\n dispose: true, // Detach parent Entry from parents and children, but leave in LRU cache\n forget: true, // Fully remove parent Entry from LRU cache and computation graph\n};\n\nexport type OptimisticDependencyFunction =\n ((key: TKey) => void) & {\n dirty: (key: TKey, entryMethodName?: EntryMethodName) => void;\n };\n\nexport type Dep = Set & {\n subscribe: OptimisticWrapOptions<[TKey]>[\"subscribe\"];\n} & Unsubscribable;\n\nexport function dep(options?: {\n subscribe: Dep[\"subscribe\"];\n}) {\n const depsByKey = new Map>();\n const subscribe = options && options.subscribe;\n\n function depend(key: TKey) {\n const parent = parentEntrySlot.getValue();\n if (parent) {\n let dep = depsByKey.get(key);\n if (!dep) {\n depsByKey.set(key, dep = new Set as Dep);\n }\n parent.dependOn(dep);\n if (typeof subscribe === \"function\") {\n maybeUnsubscribe(dep);\n dep.unsubscribe = subscribe(key);\n }\n }\n }\n\n depend.dirty = function dirty(\n key: TKey,\n entryMethodName?: EntryMethodName,\n ) {\n const dep = depsByKey.get(key);\n if (dep) {\n const m: EntryMethodName = (\n entryMethodName &&\n hasOwnProperty.call(EntryMethods, entryMethodName)\n ) ? entryMethodName : \"setDirty\";\n // We have to use arrayFromSet(dep).forEach instead of dep.forEach,\n // because modifying a Set while iterating over it can cause elements in\n // the Set to be removed from the Set before they've been iterated over.\n arrayFromSet(dep).forEach(entry => entry[m]());\n depsByKey.delete(key);\n maybeUnsubscribe(dep);\n }\n };\n\n return depend as OptimisticDependencyFunction;\n}\n","import { Trie } from \"@wry/trie\";\n\nimport { StrongCache, CommonCache } from \"@wry/caches\";\nimport { Entry, AnyEntry } from \"./entry.js\";\nimport { parentEntrySlot } from \"./context.js\";\nimport type { NoInfer } from \"./helpers.js\";\n\n// These helper functions are important for making optimism work with\n// asynchronous code. In order to register parent-child dependencies,\n// optimism needs to know about any currently active parent computations.\n// In ordinary synchronous code, the parent context is implicit in the\n// execution stack, but asynchronous code requires some extra guidance in\n// order to propagate context from one async task segment to the next.\nexport {\n bindContext,\n noContext,\n nonReactive,\n setTimeout,\n asyncFromGen,\n Slot,\n} from \"./context.js\";\n\n// A lighter-weight dependency, similar to OptimisticWrapperFunction, except\n// with only one argument, no makeCacheKey, no wrapped function to recompute,\n// and no result value. Useful for representing dependency leaves in the graph\n// of computation. Subscriptions are supported.\nexport { dep, OptimisticDependencyFunction } from \"./dep.js\";\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.\nlet defaultKeyTrie: Trie | undefined;\nexport function defaultMakeCacheKey(...args: any[]): object {\n const trie = defaultKeyTrie || (\n defaultKeyTrie = new Trie(typeof WeakMap === \"function\")\n );\n return trie.lookupArray(args);\n}\n\n// If you're paranoid about memory leaks, or you want to avoid using WeakMap\n// under the hood, but you still need the behavior of defaultMakeCacheKey,\n// import this constructor to create your own tries.\nexport { Trie as KeyTrie }\n\nexport type OptimisticWrapperFunction<\n TArgs extends any[],\n TResult,\n TKeyArgs extends any[] = TArgs,\n TCacheKey = any,\n> = ((...args: TArgs) => TResult) & {\n // Get the current number of Entry objects in the LRU cache.\n readonly size: number;\n\n // Snapshot of wrap options used to create this wrapper function.\n options: OptionsWithCacheInstance;\n\n // \"Dirty\" any cached Entry stored for the given arguments, marking that Entry\n // and its ancestors as potentially needing to be recomputed. The .dirty(...)\n // method of an optimistic function takes the same parameter types as the\n // original function by default, unless a keyArgs function is configured, and\n // then it matters that .dirty takes TKeyArgs instead of TArgs.\n dirty: (...args: TKeyArgs) => void;\n // A version of .dirty that accepts a key returned by .getKey.\n dirtyKey: (key: TCacheKey | undefined) => void;\n\n // Examine the current value without recomputing it.\n peek: (...args: TKeyArgs) => TResult | undefined;\n // A version of .peek that accepts a key returned by .getKey.\n peekKey: (key: TCacheKey | undefined) => TResult | undefined;\n\n // Completely remove the entry from the cache, dirtying any parent entries.\n forget: (...args: TKeyArgs) => boolean;\n // A version of .forget that accepts a key returned by .getKey.\n forgetKey: (key: TCacheKey | undefined) => boolean;\n\n // In order to use the -Key version of the above functions, you need a key\n // rather than the arguments used to compute the key. These two functions take\n // TArgs or TKeyArgs and return the corresponding TCacheKey. If no keyArgs\n // function has been configured, TArgs will be the same as TKeyArgs, and thus\n // getKey and makeCacheKey will be synonymous.\n getKey: (...args: TArgs) => TCacheKey | undefined;\n\n // This property is equivalent to the makeCacheKey function provided in the\n // OptimisticWrapOptions, or (if no options.makeCacheKey function is provided)\n // a default implementation of makeCacheKey. This function is also exposed as\n // optimistic.options.makeCacheKey, somewhat redundantly.\n makeCacheKey: (...args: TKeyArgs) => TCacheKey | undefined;\n};\n\nexport { CommonCache }\nexport interface CommonCacheConstructor extends Function {\n new >(max?: number, dispose?: (value: V, key?: K) => void): CommonCache;\n}\n\nexport type OptimisticWrapOptions<\n TArgs extends any[],\n TKeyArgs extends any[] = TArgs,\n TCacheKey = any,\n TResult = any,\n> = {\n // The maximum number of cache entries that should be retained before the\n // cache begins evicting the oldest ones.\n max?: number;\n // Transform the raw arguments to some other type of array, which will then\n // be passed to makeCacheKey.\n keyArgs?: (...args: TArgs) => TKeyArgs;\n // The makeCacheKey function takes the same arguments that were passed to\n // the wrapper function and returns a single value that can be used as a key\n // in a Map to identify the cached result.\n makeCacheKey?: (...args: NoInfer) => TCacheKey | undefined;\n // Called when a new value is computed to allow efficient normalization of\n // results over time, for example by returning older if equal(newer, older).\n normalizeResult?: (newer: TResult, older: TResult) => TResult;\n // If provided, the subscribe function should either return an unsubscribe\n // function or return nothing.\n subscribe?: (...args: TArgs) => void | (() => any);\n cache?: CommonCache, Entry, NoInfer>>\n | CommonCacheConstructor, NoInfer, NoInfer>;\n};\n\nexport interface OptionsWithCacheInstance<\n TArgs extends any[],\n TKeyArgs extends any[] = TArgs,\n TCacheKey = any,\n TResult = any,\n> extends OptimisticWrapOptions {\n cache: CommonCache, Entry, NoInfer>>;\n};\n\nconst caches = new Set>();\n\nexport function wrap<\n TArgs extends any[],\n TResult,\n TKeyArgs extends any[] = TArgs,\n TCacheKey = any,\n>(originalFunction: (...args: TArgs) => TResult, {\n max = Math.pow(2, 16),\n keyArgs,\n makeCacheKey = (defaultMakeCacheKey as () => TCacheKey),\n normalizeResult,\n subscribe,\n cache: cacheOption = StrongCache,\n}: OptimisticWrapOptions = Object.create(null)) {\n const cache: CommonCache> =\n typeof cacheOption === \"function\"\n ? new cacheOption(max, entry => entry.dispose())\n : cacheOption;\n\n const optimistic = function (): TResult {\n const key = makeCacheKey.apply(\n null,\n keyArgs ? keyArgs.apply(null, arguments as any) : arguments as any\n );\n\n if (key === void 0) {\n return originalFunction.apply(null, arguments as any);\n }\n\n let entry = cache.get(key)!;\n if (!entry) {\n cache.set(key, entry = new Entry(originalFunction));\n entry.normalizeResult = normalizeResult;\n entry.subscribe = subscribe;\n // Give the Entry the ability to trigger cache.delete(key), even though\n // the Entry itself does not know about key or cache.\n entry.forget = () => cache.delete(key);\n }\n\n const value = entry.recompute(\n Array.prototype.slice.call(arguments) as TArgs,\n );\n\n // Move this entry to the front of the least-recently used queue,\n // since we just finished computing its value.\n cache.set(key, entry);\n\n caches.add(cache);\n\n // 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 if (! parentEntrySlot.hasValue()) {\n caches.forEach(cache => cache.clean());\n caches.clear();\n }\n\n return value;\n } as OptimisticWrapperFunction;\n\n Object.defineProperty(optimistic, \"size\", {\n get: () => cache.size,\n configurable: false,\n enumerable: false,\n });\n\n Object.freeze(optimistic.options = {\n max,\n keyArgs,\n makeCacheKey,\n normalizeResult,\n subscribe,\n cache,\n });\n\n function dirtyKey(key: TCacheKey | undefined) {\n const entry = key && cache.get(key);\n if (entry) {\n entry.setDirty();\n }\n }\n optimistic.dirtyKey = dirtyKey;\n optimistic.dirty = function dirty() {\n dirtyKey(makeCacheKey.apply(null, arguments as any));\n };\n\n function peekKey(key: TCacheKey | undefined) {\n const entry = key && cache.get(key);\n if (entry) {\n return entry.peek();\n }\n }\n optimistic.peekKey = peekKey;\n optimistic.peek = function peek() {\n return peekKey(makeCacheKey.apply(null, arguments as any));\n };\n\n function forgetKey(key: TCacheKey | undefined) {\n return key ? cache.delete(key) : false;\n }\n optimistic.forgetKey = forgetKey;\n optimistic.forget = function forget() {\n return forgetKey(makeCacheKey.apply(null, arguments as any));\n };\n\n optimistic.makeCacheKey = makeCacheKey;\n optimistic.getKey = keyArgs ? function getKey() {\n return makeCacheKey.apply(null, keyArgs.apply(null, arguments as any));\n } : makeCacheKey as (...args: any[]) => TCacheKey | undefined;\n\n return Object.freeze(optimistic);\n}\n","import { Trie } from \"@wry/trie\";\nimport { canUseWeakMap, canUseWeakSet } from \"../common/canUse.js\";\nimport { checkDocument } from \"./getFromAST.js\";\nimport { invariant } from \"../globals/index.js\";\nimport type { DocumentNode } from \"graphql\";\nimport { WeakCache } from \"@wry/caches\";\nimport { wrap } from \"optimism\";\nimport { cacheSizes } from \"../caching/index.js\";\n\nexport type DocumentTransformCacheKey = ReadonlyArray;\n\ntype TransformFn = (document: DocumentNode) => DocumentNode;\n\ninterface DocumentTransformOptions {\n /**\n * Determines whether to cache the transformed GraphQL document. Caching can speed up repeated calls to the document transform for the same input document. Set to `false` to completely disable caching for the document transform. When disabled, this option takes precedence over the [`getCacheKey`](#getcachekey) option.\n *\n * The default value is `true`.\n */\n cache?: boolean;\n /**\n * Defines a custom cache key for a GraphQL document that will determine whether to re-run the document transform when given the same input GraphQL document. Returns an array that defines the cache key. Return `undefined` to disable caching for that GraphQL document.\n *\n * > **Note:** The items in the array may be any type, but also need to be referentially stable to guarantee a stable cache key.\n *\n * The default implementation of this function returns the `document` as the cache key.\n */\n getCacheKey?: (\n document: DocumentNode\n ) => DocumentTransformCacheKey | undefined;\n}\n\nfunction identity(document: DocumentNode) {\n return document;\n}\n\nexport class DocumentTransform {\n private readonly transform: TransformFn;\n private cached: boolean;\n\n private readonly resultCache =\n canUseWeakSet ? new WeakSet() : new Set();\n\n // This default implementation of getCacheKey can be overridden by providing\n // options.getCacheKey to the DocumentTransform constructor. In general, a\n // getCacheKey function may either return an array of keys (often including\n // the document) to be used as a cache key, or undefined to indicate the\n // transform for this document should not be cached.\n private getCacheKey(\n document: DocumentNode\n ): DocumentTransformCacheKey | undefined {\n return [document];\n }\n\n static identity() {\n // No need to cache this transform since it just returns the document\n // unchanged. This should save a bit of memory that would otherwise be\n // needed to populate the `documentCache` of this transform.\n return new DocumentTransform(identity, { cache: false });\n }\n\n static split(\n predicate: (document: DocumentNode) => boolean,\n left: DocumentTransform,\n right: DocumentTransform = DocumentTransform.identity()\n ) {\n return Object.assign(\n new DocumentTransform(\n (document) => {\n const documentTransform = predicate(document) ? left : right;\n\n return documentTransform.transformDocument(document);\n },\n // Reasonably assume both `left` and `right` transforms handle their own caching\n { cache: false }\n ),\n { left, right }\n );\n }\n\n constructor(\n transform: TransformFn,\n options: DocumentTransformOptions = Object.create(null)\n ) {\n this.transform = transform;\n\n if (options.getCacheKey) {\n // Override default `getCacheKey` function, which returns [document].\n this.getCacheKey = options.getCacheKey;\n }\n this.cached = options.cache !== false;\n\n this.resetCache();\n }\n\n /**\n * Resets the internal cache of this transform, if it has one.\n */\n resetCache() {\n if (this.cached) {\n const stableCacheKeys = new Trie(canUseWeakMap);\n this.performWork = wrap(\n DocumentTransform.prototype.performWork.bind(this),\n {\n makeCacheKey: (document) => {\n const cacheKeys = this.getCacheKey(document);\n if (cacheKeys) {\n invariant(\n Array.isArray(cacheKeys),\n \"`getCacheKey` must return an array or undefined\"\n );\n return stableCacheKeys.lookupArray(cacheKeys);\n }\n },\n max: cacheSizes[\"documentTransform.cache\"],\n cache: WeakCache,\n }\n );\n }\n }\n\n private performWork(document: DocumentNode) {\n checkDocument(document);\n return this.transform(document);\n }\n\n transformDocument(document: DocumentNode) {\n // If a user passes an already transformed result back to this function,\n // immediately return it.\n if (this.resultCache.has(document)) {\n return document;\n }\n\n const transformedDocument = this.performWork(document);\n\n this.resultCache.add(transformedDocument);\n\n return transformedDocument;\n }\n\n concat(otherTransform: DocumentTransform): DocumentTransform {\n return Object.assign(\n new DocumentTransform(\n (document) => {\n return otherTransform.transformDocument(\n this.transformDocument(document)\n );\n },\n // Reasonably assume both transforms handle their own caching\n { cache: false }\n ),\n {\n left: this,\n right: otherTransform,\n }\n );\n }\n\n /**\n * @internal\n * Used to iterate through all transforms that are concatenations or `split` links.\n */\n readonly left?: DocumentTransform;\n /**\n * @internal\n * Used to iterate through all transforms that are concatenations or `split` links.\n */\n readonly right?: DocumentTransform;\n}\n","import type { Observer } from \"./Observable.js\";\nimport { Observable } from \"./Observable.js\";\n\n// Like Observable.prototype.map, except that the mapping function can\n// optionally return a Promise (or be async).\nexport function asyncMap(\n observable: Observable,\n mapFn: (value: V) => R | PromiseLike,\n catchFn?: (error: any) => R | PromiseLike\n): Observable {\n return new Observable((observer) => {\n let promiseQueue = {\n // Normally we would initialize promiseQueue to Promise.resolve(), but\n // in this case, for backwards compatibility, we need to be careful to\n // invoke the first callback synchronously.\n then(callback: () => any) {\n return new Promise((resolve) => resolve(callback()));\n },\n } as Promise;\n\n function makeCallback(\n examiner: typeof mapFn | typeof catchFn,\n key: \"next\" | \"error\"\n ): (arg: any) => void {\n return (arg) => {\n if (examiner) {\n const both = () =>\n // If the observer is closed, we don't want to continue calling the\n // mapping function - it's result will be swallowed anyways.\n observer.closed ?\n /* will be swallowed */ (0 as any)\n : examiner(arg);\n\n promiseQueue = promiseQueue.then(both, both).then(\n (result) => observer.next(result),\n (error) => observer.error(error)\n );\n } else {\n observer[key](arg);\n }\n };\n }\n\n const handler: Observer = {\n next: makeCallback(mapFn, \"next\"),\n error: makeCallback(catchFn, \"error\"),\n complete() {\n // no need to reassign `promiseQueue`, after `observer.complete`,\n // the observer will be closed and short-circuit everything anyways\n /*promiseQueue = */ promiseQueue.then(() => observer.complete());\n },\n };\n\n const sub = observable.subscribe(handler);\n return () => sub.unsubscribe();\n });\n}\n","import type { FetchResult } from \"../../link/core/index.js\";\nimport { isNonEmptyArray } from \"./arrays.js\";\nimport { isExecutionPatchIncrementalResult } from \"./incrementalResult.js\";\n\nexport function graphQLResultHasError(result: FetchResult): boolean {\n const errors = getGraphQLErrorsFromResult(result);\n return isNonEmptyArray(errors);\n}\n\nexport function getGraphQLErrorsFromResult(result: FetchResult) {\n const graphQLErrors =\n isNonEmptyArray(result.errors) ? result.errors.slice(0) : [];\n\n if (\n isExecutionPatchIncrementalResult(result) &&\n isNonEmptyArray(result.incremental)\n ) {\n result.incremental.forEach((incrementalResult) => {\n if (incrementalResult.errors) {\n graphQLErrors.push(...incrementalResult.errors);\n }\n });\n }\n return graphQLErrors;\n}\n","import type { Observer } from \"./Observable.js\";\n\nexport function iterateObserversSafely(\n observers: Set>,\n method: keyof Observer,\n argument?: A\n) {\n // In case observers is modified during iteration, we need to commit to the\n // original elements, which also provides an opportunity to filter them down\n // to just the observers with the given method.\n const observersWithMethod: Observer[] = [];\n observers.forEach((obs) => obs[method] && observersWithMethod.push(obs));\n observersWithMethod.forEach((obs) => (obs as any)[method](argument));\n}\n","import { Observable } from \"./Observable.js\";\nimport { canUseSymbol } from \"../common/canUse.js\";\n\n// Generic implementations of Observable.prototype methods like map and\n// filter need to know how to create a new Observable from an Observable\n// subclass (like Concast or ObservableQuery). Those methods assume\n// (perhaps unwisely?) that they can call the subtype's constructor with a\n// Subscriber function, even though the subclass constructor might expect\n// different parameters. Defining this static Symbol.species property on\n// the subclass is a hint to generic Observable code to use the default\n// constructor instead of trying to do `new Subclass(observer => ...)`.\nexport function fixObservableSubclass<\n S extends new (...args: any[]) => Observable,\n>(subclass: S): S {\n function set(key: symbol | string) {\n // Object.defineProperty is necessary because the Symbol.species\n // property is a getter by default in modern JS environments, so we\n // can't assign to it with a normal assignment expression.\n Object.defineProperty(subclass, key, { value: Observable });\n }\n if (canUseSymbol && Symbol.species) {\n set(Symbol.species);\n }\n // The \"@@species\" string is used as a fake Symbol.species value in some\n // polyfill systems (including the SymbolSpecies variable used by\n // zen-observable), so we should set it as well, to be safe.\n set(\"@@species\");\n return subclass;\n}\n","import type {\n Observer,\n ObservableSubscription,\n Subscriber,\n} from \"./Observable.js\";\nimport { Observable } from \"./Observable.js\";\nimport { iterateObserversSafely } from \"./iteration.js\";\nimport { fixObservableSubclass } from \"./subclassing.js\";\n\ntype MaybeAsync = T | PromiseLike;\n\nfunction isPromiseLike(value: MaybeAsync): value is PromiseLike {\n return value && typeof (value as any).then === \"function\";\n}\n\n// Any individual Source can be an Observable or a promise for one.\ntype Source = MaybeAsync>;\n\nexport type ConcastSourcesIterable = Iterable>;\nexport type ConcastSourcesArray = Array>;\n\n// A Concast observable concatenates the given sources into a single\n// non-overlapping sequence of Ts, automatically unwrapping any promises,\n// and broadcasts the T elements of that sequence to any number of\n// subscribers, all without creating a bunch of intermediary Observable\n// wrapper objects.\n//\n// Even though any number of observers can subscribe to the Concast, each\n// source observable is guaranteed to receive at most one subscribe call,\n// and the results are multicast to all observers.\n//\n// In addition to broadcasting every next/error message to this.observers,\n// the Concast stores the most recent message using this.latest, so any\n// new observers can immediately receive the latest message, even if it\n// was originally delivered in the past. This behavior means we can assume\n// every active observer in this.observers has received the same most\n// recent message.\n//\n// With the exception of this.latest replay, a Concast is a \"hot\"\n// observable in the sense that it does not replay past results from the\n// beginning of time for each new observer.\n//\n// Could we have used some existing RxJS class instead? Concast is\n// similar to a BehaviorSubject, because it is multicast and redelivers\n// the latest next/error message to new subscribers. Unlike Subject,\n// Concast does not expose an Observer interface (this.handlers is\n// intentionally private), since Concast gets its inputs from the\n// concatenated sources. If we ever switch to RxJS, there may be some\n// value in reusing their code, but for now we use zen-observable, which\n// does not contain any Subject implementations.\nexport class Concast extends Observable {\n // Active observers receiving broadcast messages. Thanks to this.latest,\n // we can assume all observers in this Set have received the same most\n // recent message, though possibly at different times in the past.\n private observers = new Set>();\n\n // This property starts off undefined to indicate the initial\n // subscription has not yet begun, then points to each source\n // subscription in turn, and finally becomes null after the sources have\n // been exhausted. After that, it stays null.\n private sub?: ObservableSubscription | null;\n\n // Not only can the individual elements of the iterable be promises, but\n // also the iterable itself can be wrapped in a promise.\n constructor(sources: MaybeAsync> | Subscriber) {\n super((observer) => {\n this.addObserver(observer);\n return () => this.removeObserver(observer);\n });\n\n // Suppress rejection warnings for this.promise, since it's perfectly\n // acceptable to pay no attention to this.promise if you're consuming\n // the results through the normal observable API.\n this.promise.catch((_) => {});\n\n // If someone accidentally tries to create a Concast using a subscriber\n // function, recover by creating an Observable from that subscriber and\n // using it as the source.\n if (typeof sources === \"function\") {\n sources = [new Observable(sources)];\n }\n\n if (isPromiseLike(sources)) {\n sources.then((iterable) => this.start(iterable), this.handlers.error);\n } else {\n this.start(sources);\n }\n }\n\n // A consumable array of source observables, incrementally consumed each time\n // this.handlers.complete is called. This private field is not initialized\n // until the concast.start method is called, which can happen asynchronously\n // if a Promise is passed to the Concast constructor, so undefined is a\n // possible value for this.sources before concast.start is called.\n private sources: Source[] | undefined;\n\n private start(sources: ConcastSourcesIterable) {\n if (this.sub !== void 0) return;\n\n // In practice, sources is most often simply an Array of observables.\n // TODO Consider using sources[Symbol.iterator]() to take advantage\n // of the laziness of non-Array iterables.\n this.sources = Array.from(sources);\n\n // Calling this.handlers.complete() kicks off consumption of the first\n // source observable. It's tempting to do this step lazily in\n // addObserver, but this.promise can be accessed without calling\n // addObserver, so consumption needs to begin eagerly.\n this.handlers.complete();\n }\n\n private deliverLastMessage(observer: Observer) {\n if (this.latest) {\n const nextOrError = this.latest[0];\n const method = observer[nextOrError];\n if (method) {\n method.call(observer, this.latest[1]);\n }\n // If the subscription is already closed, and the last message was\n // a 'next' message, simulate delivery of the final 'complete'\n // message again.\n if (this.sub === null && nextOrError === \"next\" && observer.complete) {\n observer.complete();\n }\n }\n }\n\n public addObserver(observer: Observer) {\n if (!this.observers.has(observer)) {\n // Immediately deliver the most recent message, so we can always\n // be sure all observers have the latest information.\n this.deliverLastMessage(observer);\n this.observers.add(observer);\n }\n }\n\n public removeObserver(observer: Observer) {\n if (this.observers.delete(observer) && this.observers.size < 1) {\n // In case there are still any listeners in this.nextResultListeners, and\n // no error or completion has been broadcast yet, make sure those\n // observers have a chance to run and then remove themselves from\n // this.observers.\n this.handlers.complete();\n }\n }\n\n // Any Concast object can be trivially converted to a Promise, without\n // having to create a new wrapper Observable. This promise provides an\n // easy way to observe the final state of the Concast.\n private resolve!: (result?: T | PromiseLike) => void;\n private reject!: (reason: any) => void;\n public readonly promise = new Promise((resolve, reject) => {\n this.resolve = resolve;\n this.reject = reject;\n });\n\n // Name and argument of the most recently invoked observer method, used\n // to deliver latest results immediately to new observers.\n private latest?: [\"next\", T] | [\"error\", any];\n\n // Bound handler functions that can be reused for every internal\n // subscription.\n private handlers = {\n next: (result: T) => {\n if (this.sub !== null) {\n this.latest = [\"next\", result];\n this.notify(\"next\", result);\n iterateObserversSafely(this.observers, \"next\", result);\n }\n },\n\n error: (error: any) => {\n const { sub } = this;\n if (sub !== null) {\n // Delay unsubscribing from the underlying subscription slightly,\n // so that immediately subscribing another observer can keep the\n // subscription active.\n if (sub) setTimeout(() => sub.unsubscribe());\n this.sub = null;\n this.latest = [\"error\", error];\n this.reject(error);\n this.notify(\"error\", error);\n iterateObserversSafely(this.observers, \"error\", error);\n }\n },\n\n complete: () => {\n const { sub, sources = [] } = this;\n if (sub !== null) {\n // If complete is called before concast.start, this.sources may be\n // undefined, so we use a default value of [] for sources. That works\n // here because it falls into the if (!value) {...} block, which\n // appropriately terminates the Concast, even if this.sources might\n // eventually have been initialized to a non-empty array.\n const value = sources.shift();\n if (!value) {\n if (sub) setTimeout(() => sub.unsubscribe());\n this.sub = null;\n if (this.latest && this.latest[0] === \"next\") {\n this.resolve(this.latest[1]);\n } else {\n this.resolve();\n }\n this.notify(\"complete\");\n // We do not store this.latest = [\"complete\"], because doing so\n // discards useful information about the previous next (or\n // error) message. Instead, if new observers subscribe after\n // this Concast has completed, they will receive the final\n // 'next' message (unless there was an error) immediately\n // followed by a 'complete' message (see addObserver).\n iterateObserversSafely(this.observers, \"complete\");\n } else if (isPromiseLike(value)) {\n value.then(\n (obs) => (this.sub = obs.subscribe(this.handlers)),\n this.handlers.error\n );\n } else {\n this.sub = value.subscribe(this.handlers);\n }\n }\n },\n };\n\n private nextResultListeners = new Set();\n\n private notify(\n method: Parameters[0],\n arg?: Parameters[1]\n ) {\n const { nextResultListeners } = this;\n if (nextResultListeners.size) {\n // Replacing this.nextResultListeners first ensures it does not grow while\n // we are iterating over it, potentially leading to infinite loops.\n this.nextResultListeners = new Set();\n nextResultListeners.forEach((listener) => listener(method, arg));\n }\n }\n\n // We need a way to run callbacks just *before* the next result (or error or\n // completion) is delivered by this Concast, so we can be sure any code that\n // runs as a result of delivering that result/error observes the effects of\n // running the callback(s). It was tempting to reuse the Observer type instead\n // of introducing NextResultListener, but that messes with the sizing and\n // maintenance of this.observers, and ends up being more code overall.\n beforeNext(callback: NextResultListener) {\n let called = false;\n this.nextResultListeners.add((method, arg) => {\n if (!called) {\n called = true;\n callback(method, arg);\n }\n });\n }\n\n // A public way to abort observation and broadcast.\n public cancel = (reason: any) => {\n this.reject(reason);\n this.sources = [];\n this.handlers.complete();\n };\n}\n\ntype NextResultListener = (\n method: \"next\" | \"error\" | \"complete\",\n arg?: any\n) => any;\n\n// Necessary because the Concast constructor has a different signature\n// than the Observable constructor.\nfixObservableSubclass(Concast);\n","/**\n * The current status of a query’s execution in our system.\n */\nexport enum NetworkStatus {\n /**\n * The query has never been run before and the query is now currently running. A query will still\n * have this network status even if a partial data result was returned from the cache, but a\n * query was dispatched anyway.\n */\n loading = 1,\n\n /**\n * If `setVariables` was called and a query was fired because of that then the network status\n * will be `setVariables` until the result of that query comes back.\n */\n setVariables = 2,\n\n /**\n * Indicates that `fetchMore` was called on this query and that the query created is currently in\n * flight.\n */\n fetchMore = 3,\n\n /**\n * Similar to the `setVariables` network status. It means that `refetch` was called on a query\n * and the refetch request is currently in flight.\n */\n refetch = 4,\n\n /**\n * Indicates that a polling query is currently in flight. So for example if you are polling a\n * query every 10 seconds then the network status will switch to `poll` every 10 seconds whenever\n * a poll request has been sent but not resolved.\n */\n poll = 6,\n\n /**\n * No request is in flight for this query, and no errors happened. Everything is OK.\n */\n ready = 7,\n\n /**\n * No request is in flight for this query, but one or more errors were detected.\n */\n error = 8,\n}\n\n/**\n * Returns true if there is currently a network request in flight according to a given network\n * status.\n */\nexport function isNetworkRequestInFlight(\n networkStatus?: NetworkStatus\n): boolean {\n return networkStatus ? networkStatus < 7 : false;\n}\n\n/**\n * Returns true if the network request is in ready or error state according to a given network\n * status.\n */\nexport function isNetworkRequestSettled(\n networkStatus?: NetworkStatus\n): boolean {\n return networkStatus === 7 || networkStatus === 8;\n}\n","import type { TupleToIntersection } from \"./mergeDeep.js\";\n\n/**\n * Merges the provided objects shallowly and removes\n * all properties with an `undefined` value\n */\nexport function compact(\n ...objects: TArgs\n): TupleToIntersection {\n const result = Object.create(null);\n\n objects.forEach((obj) => {\n if (!obj) return;\n Object.keys(obj).forEach((key) => {\n const value = (obj as any)[key];\n if (value !== void 0) {\n result[key] = value;\n }\n });\n });\n\n return result;\n}\n","const { toString } = Object.prototype;\n\n/**\n * Deeply clones a value to create a new instance.\n */\nexport function cloneDeep(value: T): T {\n return cloneDeepHelper(value);\n}\n\nfunction cloneDeepHelper(val: T, seen?: Map): T {\n switch (toString.call(val)) {\n case \"[object Array]\": {\n seen = seen || new Map();\n if (seen.has(val)) return seen.get(val);\n const copy: T & any[] = (val as any).slice(0);\n seen.set(val, copy);\n copy.forEach(function (child, i) {\n copy[i] = cloneDeepHelper(child, seen);\n });\n return copy;\n }\n\n case \"[object Object]\": {\n seen = seen || new Map();\n if (seen.has(val)) return seen.get(val);\n // High fidelity polyfills of Object.create and Object.getPrototypeOf are\n // possible in all JS environments, so we will assume they exist/work.\n const copy = Object.create(Object.getPrototypeOf(val));\n seen.set(val, copy);\n Object.keys(val as T & Record).forEach((key) => {\n copy[key] = cloneDeepHelper((val as any)[key], seen);\n });\n return copy;\n }\n\n default:\n return val;\n }\n}\n","import equal from \"@wry/equality\";\n\nimport type {\n DirectiveNode,\n DocumentNode,\n FieldNode,\n FragmentDefinitionNode,\n FragmentSpreadNode,\n InlineFragmentNode,\n SelectionNode,\n SelectionSetNode,\n} from \"graphql\";\n\nimport type { ApolloQueryResult, OperationVariables } from \"./types.js\";\n\nimport type { FragmentMap } from \"../utilities/index.js\";\nimport {\n createFragmentMap,\n getFragmentDefinitions,\n getFragmentFromSelection,\n getMainDefinition,\n isField,\n resultKeyNameFromField,\n shouldInclude,\n} from \"../utilities/index.js\";\n\n// Returns true if aResult and bResult are deeply equal according to the fields\n// selected by the given query, ignoring any fields marked as @nonreactive.\nexport function equalByQuery(\n query: DocumentNode,\n { data: aData, ...aRest }: Partial>,\n { data: bData, ...bRest }: Partial>,\n variables?: OperationVariables\n): boolean {\n return (\n equal(aRest, bRest) &&\n equalBySelectionSet(getMainDefinition(query).selectionSet, aData, bData, {\n fragmentMap: createFragmentMap(getFragmentDefinitions(query)),\n variables,\n })\n );\n}\n\n// Encapsulates the information used by equalBySelectionSet that does not change\n// during the recursion.\ninterface CompareContext {\n fragmentMap: FragmentMap;\n variables: TVariables | undefined;\n}\n\nfunction equalBySelectionSet(\n selectionSet: SelectionSetNode,\n aResult: any,\n bResult: any,\n context: CompareContext\n): boolean {\n if (aResult === bResult) {\n return true;\n }\n\n const seenSelections = new Set();\n\n // Returning true from this Array.prototype.every callback function skips the\n // current field/subtree. Returning false aborts the entire traversal\n // immediately, causing equalBySelectionSet to return false.\n return selectionSet.selections.every((selection) => {\n // Avoid re-processing the same selection at the same level of recursion, in\n // case the same field gets included via multiple indirect fragment spreads.\n if (seenSelections.has(selection)) return true;\n seenSelections.add(selection);\n\n // Ignore @skip(if: true) and @include(if: false) fields.\n if (!shouldInclude(selection, context.variables)) return true;\n\n // If the field or (named) fragment spread has a @nonreactive directive on\n // it, we don't care if it's different, so we pretend it's the same.\n if (selectionHasNonreactiveDirective(selection)) return true;\n\n if (isField(selection)) {\n const resultKey = resultKeyNameFromField(selection);\n const aResultChild = aResult && aResult[resultKey];\n const bResultChild = bResult && bResult[resultKey];\n const childSelectionSet = selection.selectionSet;\n\n if (!childSelectionSet) {\n // These are scalar values, so we can compare them with deep equal\n // without redoing the main recursive work.\n return equal(aResultChild, bResultChild);\n }\n\n const aChildIsArray = Array.isArray(aResultChild);\n const bChildIsArray = Array.isArray(bResultChild);\n if (aChildIsArray !== bChildIsArray) return false;\n if (aChildIsArray && bChildIsArray) {\n const length = aResultChild.length;\n if (bResultChild.length !== length) {\n return false;\n }\n for (let i = 0; i < length; ++i) {\n if (\n !equalBySelectionSet(\n childSelectionSet,\n aResultChild[i],\n bResultChild[i],\n context\n )\n ) {\n return false;\n }\n }\n return true;\n }\n\n return equalBySelectionSet(\n childSelectionSet,\n aResultChild,\n bResultChild,\n context\n );\n } else {\n const fragment = getFragmentFromSelection(selection, context.fragmentMap);\n if (fragment) {\n // The fragment might === selection if it's an inline fragment, but\n // could be !== if it's a named fragment ...spread.\n if (selectionHasNonreactiveDirective(fragment)) return true;\n\n return equalBySelectionSet(\n fragment.selectionSet,\n // Notice that we reuse the same aResult and bResult values here,\n // since the fragment ...spread does not specify a field name, but\n // consists of multiple fields (within the fragment's selection set)\n // that should be applied to the current result value(s).\n aResult,\n bResult,\n context\n );\n }\n }\n });\n}\n\nfunction selectionHasNonreactiveDirective(\n selection:\n | FieldNode\n | InlineFragmentNode\n | FragmentSpreadNode\n | FragmentDefinitionNode\n): boolean {\n return (\n !!selection.directives && selection.directives.some(directiveIsNonreactive)\n );\n}\n\nfunction directiveIsNonreactive(dir: DirectiveNode): boolean {\n return dir.name.value === \"nonreactive\";\n}\n","import { invariant } from \"../utilities/globals/index.js\";\nimport type { DocumentNode } from \"graphql\";\nimport { equal } from \"@wry/equality\";\n\nimport { NetworkStatus, isNetworkRequestInFlight } from \"./networkStatus.js\";\nimport type {\n Concast,\n Observer,\n ObservableSubscription,\n} from \"../utilities/index.js\";\nimport {\n cloneDeep,\n compact,\n getOperationDefinition,\n Observable,\n iterateObserversSafely,\n fixObservableSubclass,\n getQueryDefinition,\n} from \"../utilities/index.js\";\nimport type { ApolloError } from \"../errors/index.js\";\nimport type { QueryManager } from \"./QueryManager.js\";\nimport type {\n ApolloQueryResult,\n OperationVariables,\n TypedDocumentNode,\n} from \"./types.js\";\nimport type {\n WatchQueryOptions,\n FetchMoreQueryOptions,\n SubscribeToMoreOptions,\n NextFetchPolicyContext,\n WatchQueryFetchPolicy,\n} from \"./watchQueryOptions.js\";\nimport type { QueryInfo } from \"./QueryInfo.js\";\nimport type { MissingFieldError } from \"../cache/index.js\";\nimport type { MissingTree } from \"../cache/core/types/common.js\";\nimport { equalByQuery } from \"./equalByQuery.js\";\nimport type { TODO } from \"../utilities/types/TODO.js\";\n\nconst { assign, hasOwnProperty } = Object;\n\nexport interface FetchMoreOptions<\n TData = any,\n TVariables = OperationVariables,\n> {\n updateQuery?: (\n previousQueryResult: TData,\n options: {\n fetchMoreResult?: TData;\n variables?: TVariables;\n }\n ) => TData;\n}\n\nexport interface UpdateQueryOptions {\n variables?: TVariables;\n}\n\ninterface Last {\n result: ApolloQueryResult;\n variables?: TVariables;\n error?: ApolloError;\n}\n\nexport class ObservableQuery<\n TData = any,\n TVariables extends OperationVariables = OperationVariables,\n> extends Observable> {\n public readonly options: WatchQueryOptions;\n public readonly queryId: string;\n public readonly queryName?: string;\n\n // The `query` computed property will always reflect the document transformed\n // by the last run query. `this.options.query` will always reflect the raw\n // untransformed query to ensure document transforms with runtime conditionals\n // are run on the original document.\n public get query(): TypedDocumentNode {\n return this.lastQuery || this.options.query;\n }\n\n // Computed shorthand for this.options.variables, preserved for\n // backwards compatibility.\n /**\n * An object containing the variables that were provided for the query.\n */\n public get variables(): TVariables | undefined {\n return this.options.variables;\n }\n\n private isTornDown: boolean;\n private queryManager: QueryManager;\n private observers = new Set>>();\n private subscriptions = new Set();\n\n private waitForOwnResult: boolean;\n private last?: Last;\n private lastQuery?: DocumentNode;\n\n private queryInfo: QueryInfo;\n\n // When this.concast is defined, this.observer is the Observer currently\n // subscribed to that Concast.\n private concast?: Concast>;\n private observer?: Observer>;\n\n private pollingInfo?: {\n interval: number;\n timeout: ReturnType;\n };\n\n constructor({\n queryManager,\n queryInfo,\n options,\n }: {\n queryManager: QueryManager;\n queryInfo: QueryInfo;\n options: WatchQueryOptions;\n }) {\n super((observer: Observer>) => {\n // Zen Observable has its own error function, so in order to log correctly\n // we need to provide a custom error callback.\n try {\n var subObserver = (observer as any)._subscription._observer;\n if (subObserver && !subObserver.error) {\n subObserver.error = defaultSubscriptionObserverErrorCallback;\n }\n } catch {}\n\n const first = !this.observers.size;\n this.observers.add(observer);\n\n // Deliver most recent error or result.\n const last = this.last;\n if (last && last.error) {\n observer.error && observer.error(last.error);\n } else if (last && last.result) {\n observer.next && observer.next(last.result);\n }\n\n // Initiate observation of this query if it hasn't been reported to\n // the QueryManager yet.\n if (first) {\n // Blindly catching here prevents unhandled promise rejections,\n // and is safe because the ObservableQuery handles this error with\n // this.observer.error, so we're not just swallowing the error by\n // ignoring it here.\n this.reobserve().catch(() => {});\n }\n\n return () => {\n if (this.observers.delete(observer) && !this.observers.size) {\n this.tearDownQuery();\n }\n };\n });\n\n // related classes\n this.queryInfo = queryInfo;\n this.queryManager = queryManager;\n\n // active state\n this.waitForOwnResult = skipCacheDataFor(options.fetchPolicy);\n this.isTornDown = false;\n\n const {\n watchQuery: { fetchPolicy: defaultFetchPolicy = \"cache-first\" } = {},\n } = queryManager.defaultOptions;\n\n const {\n fetchPolicy = defaultFetchPolicy,\n // Make sure we don't store \"standby\" as the initialFetchPolicy.\n initialFetchPolicy = fetchPolicy === \"standby\" ? defaultFetchPolicy : (\n fetchPolicy\n ),\n } = options;\n\n this.options = {\n ...options,\n\n // Remember the initial options.fetchPolicy so we can revert back to this\n // policy when variables change. This information can also be specified\n // (or overridden) by providing options.initialFetchPolicy explicitly.\n initialFetchPolicy,\n\n // This ensures this.options.fetchPolicy always has a string value, in\n // case options.fetchPolicy was not provided.\n fetchPolicy,\n };\n\n this.queryId = queryInfo.queryId || queryManager.generateQueryId();\n\n const opDef = getOperationDefinition(this.query);\n this.queryName = opDef && opDef.name && opDef.name.value;\n }\n\n public result(): Promise> {\n return new Promise((resolve, reject) => {\n // TODO: this code doesn’t actually make sense insofar as the observer\n // will never exist in this.observers due how zen-observable wraps observables.\n // https://github.com/zenparsing/zen-observable/blob/master/src/Observable.js#L169\n const observer: Observer> = {\n next: (result: ApolloQueryResult) => {\n resolve(result);\n\n // Stop the query within the QueryManager if we can before\n // this function returns.\n //\n // We do this in order to prevent observers piling up within\n // the QueryManager. Notice that we only fully unsubscribe\n // from the subscription in a setTimeout(..., 0) call. This call can\n // actually be handled by the browser at a much later time. If queries\n // are fired in the meantime, observers that should have been removed\n // from the QueryManager will continue to fire, causing an unnecessary\n // performance hit.\n this.observers.delete(observer);\n if (!this.observers.size) {\n this.queryManager.removeQuery(this.queryId);\n }\n\n setTimeout(() => {\n subscription.unsubscribe();\n }, 0);\n },\n error: reject,\n };\n const subscription = this.subscribe(observer);\n });\n }\n\n /** @internal */\n public resetDiff() {\n this.queryInfo.resetDiff();\n }\n\n public getCurrentResult(saveAsLastResult = true): ApolloQueryResult {\n // Use the last result as long as the variables match this.variables.\n const lastResult = this.getLastResult(true);\n\n const networkStatus =\n this.queryInfo.networkStatus ||\n (lastResult && lastResult.networkStatus) ||\n NetworkStatus.ready;\n\n const result = {\n ...lastResult,\n loading: isNetworkRequestInFlight(networkStatus),\n networkStatus,\n } as ApolloQueryResult;\n\n const { fetchPolicy = \"cache-first\" } = this.options;\n if (\n // These fetch policies should never deliver data from the cache, unless\n // redelivering a previously delivered result.\n skipCacheDataFor(fetchPolicy) ||\n // If this.options.query has @client(always: true) fields, we cannot\n // trust diff.result, since it was read from the cache without running\n // local resolvers (and it's too late to run resolvers now, since we must\n // return a result synchronously).\n this.queryManager.getDocumentInfo(this.query).hasForcedResolvers\n ) {\n // Fall through.\n } else if (this.waitForOwnResult) {\n // This would usually be a part of `QueryInfo.getDiff()`.\n // which we skip in the waitForOwnResult case since we are not\n // interested in the diff.\n this.queryInfo[\"updateWatch\"]();\n } else {\n const diff = this.queryInfo.getDiff();\n\n if (diff.complete || this.options.returnPartialData) {\n result.data = diff.result;\n }\n\n if (equal(result.data, {})) {\n result.data = void 0 as any;\n }\n\n if (diff.complete) {\n // Similar to setting result.partial to false, but taking advantage of the\n // falsiness of missing fields.\n delete result.partial;\n\n // If the diff is complete, and we're using a FetchPolicy that\n // terminates after a complete cache read, we can assume the next result\n // we receive will have NetworkStatus.ready and !loading.\n if (\n diff.complete &&\n result.networkStatus === NetworkStatus.loading &&\n (fetchPolicy === \"cache-first\" || fetchPolicy === \"cache-only\")\n ) {\n result.networkStatus = NetworkStatus.ready;\n result.loading = false;\n }\n } else {\n result.partial = true;\n }\n\n if (\n __DEV__ &&\n !diff.complete &&\n !this.options.partialRefetch &&\n !result.loading &&\n !result.data &&\n !result.error\n ) {\n logMissingFieldErrors(diff.missing);\n }\n }\n\n if (saveAsLastResult) {\n this.updateLastResult(result);\n }\n\n return result;\n }\n\n // Compares newResult to the snapshot we took of this.lastResult when it was\n // first received.\n public isDifferentFromLastResult(\n newResult: ApolloQueryResult,\n variables?: TVariables\n ) {\n if (!this.last) {\n return true;\n }\n\n const resultIsDifferent =\n this.queryManager.getDocumentInfo(this.query).hasNonreactiveDirective ?\n !equalByQuery(this.query, this.last.result, newResult, this.variables)\n : !equal(this.last.result, newResult);\n\n return (\n resultIsDifferent || (variables && !equal(this.last.variables, variables))\n );\n }\n\n private getLast>(\n key: K,\n variablesMustMatch?: boolean\n ) {\n const last = this.last;\n if (\n last &&\n last[key] &&\n (!variablesMustMatch || equal(last.variables, this.variables))\n ) {\n return last[key];\n }\n }\n\n public getLastResult(\n variablesMustMatch?: boolean\n ): ApolloQueryResult | undefined {\n return this.getLast(\"result\", variablesMustMatch);\n }\n\n public getLastError(variablesMustMatch?: boolean): ApolloError | undefined {\n return this.getLast(\"error\", variablesMustMatch);\n }\n\n public resetLastResults(): void {\n delete this.last;\n this.isTornDown = false;\n }\n\n public resetQueryStoreErrors() {\n this.queryManager.resetErrors(this.queryId);\n }\n\n /**\n * Update the variables of this observable query, and fetch the new results.\n * This method should be preferred over `setVariables` in most use cases.\n *\n * @param variables - The new set of variables. If there are missing variables,\n * the previous values of those variables will be used.\n */\n public refetch(\n variables?: Partial\n ): Promise> {\n const reobserveOptions: Partial> = {\n // Always disable polling for refetches.\n pollInterval: 0,\n };\n\n // Unless the provided fetchPolicy always consults the network\n // (no-cache, network-only, or cache-and-network), override it with\n // network-only to force the refetch for this fetchQuery call.\n const { fetchPolicy } = this.options;\n if (fetchPolicy === \"cache-and-network\") {\n reobserveOptions.fetchPolicy = fetchPolicy;\n } else if (fetchPolicy === \"no-cache\") {\n reobserveOptions.fetchPolicy = \"no-cache\";\n } else {\n reobserveOptions.fetchPolicy = \"network-only\";\n }\n\n if (__DEV__ && variables && hasOwnProperty.call(variables, \"variables\")) {\n const queryDef = getQueryDefinition(this.query);\n const vars = queryDef.variableDefinitions;\n if (!vars || !vars.some((v) => v.variable.name.value === \"variables\")) {\n invariant.warn(\n `Called refetch(%o) for query %o, which does not declare a $variables variable.\nDid you mean to call refetch(variables) instead of refetch({ variables })?`,\n variables,\n queryDef.name?.value || queryDef\n );\n }\n }\n\n if (variables && !equal(this.options.variables, variables)) {\n // Update the existing options with new variables\n reobserveOptions.variables = this.options.variables = {\n ...this.options.variables,\n ...variables,\n } as TVariables;\n }\n\n this.queryInfo.resetLastWrite();\n return this.reobserve(reobserveOptions, NetworkStatus.refetch);\n }\n\n /**\n * A function that helps you fetch the next set of results for a [paginated list field](https://www.apollographql.com/docs/react/pagination/core-api/).\n */\n public fetchMore<\n TFetchData = TData,\n TFetchVars extends OperationVariables = TVariables,\n >(\n fetchMoreOptions: FetchMoreQueryOptions & {\n updateQuery?: (\n previousQueryResult: TData,\n options: {\n fetchMoreResult: TFetchData;\n variables: TFetchVars;\n }\n ) => TData;\n }\n ): Promise> {\n const combinedOptions = {\n ...(fetchMoreOptions.query ? fetchMoreOptions : (\n {\n ...this.options,\n query: this.options.query,\n ...fetchMoreOptions,\n variables: {\n ...this.options.variables,\n ...fetchMoreOptions.variables,\n },\n }\n )),\n // The fetchMore request goes immediately to the network and does\n // not automatically write its result to the cache (hence no-cache\n // instead of network-only), because we allow the caller of\n // fetchMore to provide an updateQuery callback that determines how\n // the data gets written to the cache.\n fetchPolicy: \"no-cache\",\n } as WatchQueryOptions;\n\n combinedOptions.query = this.transformDocument(combinedOptions.query);\n\n const qid = this.queryManager.generateQueryId();\n\n // If a temporary query is passed to `fetchMore`, we don't want to store\n // it as the last query result since it may be an optimized query for\n // pagination. We will however run the transforms on the original document\n // as well as the document passed in `fetchMoreOptions` to ensure the cache\n // uses the most up-to-date document which may rely on runtime conditionals.\n this.lastQuery =\n fetchMoreOptions.query ?\n this.transformDocument(this.options.query)\n : combinedOptions.query;\n\n // Simulate a loading result for the original query with\n // result.networkStatus === NetworkStatus.fetchMore.\n const { queryInfo } = this;\n const originalNetworkStatus = queryInfo.networkStatus;\n queryInfo.networkStatus = NetworkStatus.fetchMore;\n if (combinedOptions.notifyOnNetworkStatusChange) {\n this.observe();\n }\n\n const updatedQuerySet = new Set();\n\n return this.queryManager\n .fetchQuery(qid, combinedOptions, NetworkStatus.fetchMore)\n .then((fetchMoreResult) => {\n this.queryManager.removeQuery(qid);\n\n if (queryInfo.networkStatus === NetworkStatus.fetchMore) {\n queryInfo.networkStatus = originalNetworkStatus;\n }\n\n // Performing this cache update inside a cache.batch transaction ensures\n // any affected cache.watch watchers are notified at most once about any\n // updates. Most watchers will be using the QueryInfo class, which\n // responds to notifications by calling reobserveCacheFirst to deliver\n // fetchMore cache results back to this ObservableQuery.\n this.queryManager.cache.batch({\n update: (cache) => {\n const { updateQuery } = fetchMoreOptions;\n if (updateQuery) {\n cache.updateQuery(\n {\n query: this.query,\n variables: this.variables,\n returnPartialData: true,\n optimistic: false,\n },\n (previous) =>\n updateQuery(previous!, {\n fetchMoreResult: fetchMoreResult.data,\n variables: combinedOptions.variables as TFetchVars,\n })\n );\n } else {\n // If we're using a field policy instead of updateQuery, the only\n // thing we need to do is write the new data to the cache using\n // combinedOptions.variables (instead of this.variables, which is\n // what this.updateQuery uses, because it works by abusing the\n // original field value, keyed by the original variables).\n cache.writeQuery({\n query: combinedOptions.query,\n variables: combinedOptions.variables,\n data: fetchMoreResult.data,\n });\n }\n },\n\n onWatchUpdated: (watch) => {\n // Record the DocumentNode associated with any watched query whose\n // data were updated by the cache writes above.\n updatedQuerySet.add(watch.query);\n },\n });\n\n return fetchMoreResult;\n })\n .finally(() => {\n // In case the cache writes above did not generate a broadcast\n // notification (which would have been intercepted by onWatchUpdated),\n // likely because the written data were the same as what was already in\n // the cache, we still want fetchMore to deliver its final loading:false\n // result with the unchanged data.\n if (!updatedQuerySet.has(this.query)) {\n reobserveCacheFirst(this);\n }\n });\n }\n\n // XXX the subscription variables are separate from the query variables.\n // if you want to update subscription variables, right now you have to do that separately,\n // and you can only do it by stopping the subscription and then subscribing again with new variables.\n /**\n * A function that enables you to execute a [subscription](https://www.apollographql.com/docs/react/data/subscriptions/), usually to subscribe to specific fields that were included in the query.\n *\n * This function returns _another_ function that you can call to terminate the subscription.\n */\n public subscribeToMore<\n TSubscriptionData = TData,\n TSubscriptionVariables extends OperationVariables = TVariables,\n >(\n options: SubscribeToMoreOptions<\n TData,\n TSubscriptionVariables,\n TSubscriptionData\n >\n ) {\n const subscription = this.queryManager\n .startGraphQLSubscription({\n query: options.document,\n variables: options.variables,\n context: options.context,\n })\n .subscribe({\n next: (subscriptionData: { data: TSubscriptionData }) => {\n const { updateQuery } = options;\n if (updateQuery) {\n this.updateQuery(\n (previous, { variables }) =>\n updateQuery(previous, {\n subscriptionData,\n variables,\n })\n );\n }\n },\n error: (err: any) => {\n if (options.onError) {\n options.onError(err);\n return;\n }\n invariant.error(\"Unhandled GraphQL subscription error\", err);\n },\n });\n\n this.subscriptions.add(subscription);\n\n return () => {\n if (this.subscriptions.delete(subscription)) {\n subscription.unsubscribe();\n }\n };\n }\n\n public setOptions(\n newOptions: Partial>\n ): Promise> {\n return this.reobserve(newOptions);\n }\n\n public silentSetOptions(\n newOptions: Partial>\n ) {\n const mergedOptions = compact(this.options, newOptions || {});\n assign(this.options, mergedOptions);\n }\n\n /**\n * Update the variables of this observable query, and fetch the new results\n * if they've changed. Most users should prefer `refetch` instead of\n * `setVariables` in order to to be properly notified of results even when\n * they come from the cache.\n *\n * Note: the `next` callback will *not* fire if the variables have not changed\n * or if the result is coming from cache.\n *\n * Note: the promise will return the old results immediately if the variables\n * have not changed.\n *\n * Note: the promise will return null immediately if the query is not active\n * (there are no subscribers).\n *\n * @param variables - The new set of variables. If there are missing variables,\n * the previous values of those variables will be used.\n */\n public setVariables(\n variables: TVariables\n ): Promise | void> {\n if (equal(this.variables, variables)) {\n // If we have no observers, then we don't actually want to make a network\n // request. As soon as someone observes the query, the request will kick\n // off. For now, we just store any changes. (See #1077)\n return this.observers.size ? this.result() : Promise.resolve();\n }\n\n this.options.variables = variables;\n\n // See comment above\n if (!this.observers.size) {\n return Promise.resolve();\n }\n\n return this.reobserve(\n {\n // Reset options.fetchPolicy to its original value.\n fetchPolicy: this.options.initialFetchPolicy,\n variables,\n },\n NetworkStatus.setVariables\n );\n }\n\n /**\n * A function that enables you to update the query's cached result without executing a followup GraphQL operation.\n *\n * See [using updateQuery and updateFragment](https://www.apollographql.com/docs/react/caching/cache-interaction/#using-updatequery-and-updatefragment) for additional information.\n */\n public updateQuery(\n mapFn: (\n previousQueryResult: TData,\n options: Pick, \"variables\">\n ) => TData\n ): void {\n const { queryManager } = this;\n const { result } = queryManager.cache.diff({\n query: this.options.query,\n variables: this.variables,\n returnPartialData: true,\n optimistic: false,\n });\n\n const newResult = mapFn(result!, {\n variables: (this as any).variables,\n });\n\n if (newResult) {\n queryManager.cache.writeQuery({\n query: this.options.query,\n data: newResult,\n variables: this.variables,\n });\n\n queryManager.broadcastQueries();\n }\n }\n\n /**\n * A function that instructs the query to begin re-executing at a specified interval (in milliseconds).\n */\n public startPolling(pollInterval: number) {\n this.options.pollInterval = pollInterval;\n this.updatePolling();\n }\n\n /**\n * A function that instructs the query to stop polling after a previous call to `startPolling`.\n */\n public stopPolling() {\n this.options.pollInterval = 0;\n this.updatePolling();\n }\n\n // Update options.fetchPolicy according to options.nextFetchPolicy.\n private applyNextFetchPolicy(\n reason: NextFetchPolicyContext[\"reason\"],\n // It's possible to use this method to apply options.nextFetchPolicy to\n // options.fetchPolicy even if options !== this.options, though that happens\n // most often when the options are temporary, used for only one request and\n // then thrown away, so nextFetchPolicy may not end up mattering.\n options: WatchQueryOptions\n ) {\n if (options.nextFetchPolicy) {\n const { fetchPolicy = \"cache-first\", initialFetchPolicy = fetchPolicy } =\n options;\n\n if (fetchPolicy === \"standby\") {\n // Do nothing, leaving options.fetchPolicy unchanged.\n } else if (typeof options.nextFetchPolicy === \"function\") {\n // When someone chooses \"cache-and-network\" or \"network-only\" as their\n // initial FetchPolicy, they often do not want future cache updates to\n // trigger unconditional network requests, which is what repeatedly\n // applying the \"cache-and-network\" or \"network-only\" policies would\n // seem to imply. Instead, when the cache reports an update after the\n // initial network request, it may be desirable for subsequent network\n // requests to be triggered only if the cache result is incomplete. To\n // that end, the options.nextFetchPolicy option provides an easy way to\n // update options.fetchPolicy after the initial network request, without\n // having to call observableQuery.setOptions.\n options.fetchPolicy = options.nextFetchPolicy(fetchPolicy, {\n reason,\n options,\n observable: this,\n initialFetchPolicy,\n });\n } else if (reason === \"variables-changed\") {\n options.fetchPolicy = initialFetchPolicy;\n } else {\n options.fetchPolicy = options.nextFetchPolicy;\n }\n }\n\n return options.fetchPolicy;\n }\n\n private fetch(\n options: WatchQueryOptions,\n newNetworkStatus?: NetworkStatus,\n query?: DocumentNode\n ) {\n // TODO Make sure we update the networkStatus (and infer fetchVariables)\n // before actually committing to the fetch.\n this.queryManager.setObservableQuery(this);\n return this.queryManager[\"fetchConcastWithInfo\"](\n this.queryId,\n options,\n newNetworkStatus,\n query\n );\n }\n\n // Turns polling on or off based on this.options.pollInterval.\n private updatePolling() {\n // Avoid polling in SSR mode\n if (this.queryManager.ssrMode) {\n return;\n }\n\n const {\n pollingInfo,\n options: { pollInterval },\n } = this;\n\n if (!pollInterval) {\n if (pollingInfo) {\n clearTimeout(pollingInfo.timeout);\n delete this.pollingInfo;\n }\n return;\n }\n\n if (pollingInfo && pollingInfo.interval === pollInterval) {\n return;\n }\n\n invariant(\n pollInterval,\n \"Attempted to start a polling query without a polling interval.\"\n );\n\n const info = pollingInfo || (this.pollingInfo = {} as any);\n info.interval = pollInterval;\n\n const maybeFetch = () => {\n if (this.pollingInfo) {\n if (\n !isNetworkRequestInFlight(this.queryInfo.networkStatus) &&\n !this.options.skipPollAttempt?.()\n ) {\n this.reobserve(\n {\n // Most fetchPolicy options don't make sense to use in a polling context, as\n // users wouldn't want to be polling the cache directly. However, network-only and\n // no-cache are both useful for when the user wants to control whether or not the\n // polled results are written to the cache.\n fetchPolicy:\n this.options.initialFetchPolicy === \"no-cache\" ?\n \"no-cache\"\n : \"network-only\",\n },\n NetworkStatus.poll\n ).then(poll, poll);\n } else {\n poll();\n }\n }\n };\n\n const poll = () => {\n const info = this.pollingInfo;\n if (info) {\n clearTimeout(info.timeout);\n info.timeout = setTimeout(maybeFetch, info.interval);\n }\n };\n\n poll();\n }\n\n private updateLastResult(\n newResult: ApolloQueryResult,\n variables = this.variables\n ) {\n let error: ApolloError | undefined = this.getLastError();\n // Preserve this.last.error unless the variables have changed.\n if (error && this.last && !equal(variables, this.last.variables)) {\n error = void 0;\n }\n return (this.last = {\n result:\n this.queryManager.assumeImmutableResults ?\n newResult\n : cloneDeep(newResult),\n variables,\n ...(error ? { error } : null),\n });\n }\n\n public reobserveAsConcast(\n newOptions?: Partial>,\n newNetworkStatus?: NetworkStatus\n ): Concast> {\n this.isTornDown = false;\n\n const useDisposableConcast =\n // Refetching uses a disposable Concast to allow refetches using different\n // options/variables, without permanently altering the options of the\n // original ObservableQuery.\n newNetworkStatus === NetworkStatus.refetch ||\n // The fetchMore method does not actually call the reobserve method, but,\n // if it did, it would definitely use a disposable Concast.\n newNetworkStatus === NetworkStatus.fetchMore ||\n // Polling uses a disposable Concast so the polling options (which force\n // fetchPolicy to be \"network-only\" or \"no-cache\") won't override the original options.\n newNetworkStatus === NetworkStatus.poll;\n\n // Save the old variables, since Object.assign may modify them below.\n const oldVariables = this.options.variables;\n const oldFetchPolicy = this.options.fetchPolicy;\n\n const mergedOptions = compact(this.options, newOptions || {});\n const options =\n useDisposableConcast ?\n // Disposable Concast fetches receive a shallow copy of this.options\n // (merged with newOptions), leaving this.options unmodified.\n mergedOptions\n : assign(this.options, mergedOptions);\n\n // Don't update options.query with the transformed query to avoid\n // overwriting this.options.query when we aren't using a disposable concast.\n // We want to ensure we can re-run the custom document transforms the next\n // time a request is made against the original query.\n const query = this.transformDocument(options.query);\n\n this.lastQuery = query;\n\n if (!useDisposableConcast) {\n // We can skip calling updatePolling if we're not changing this.options.\n this.updatePolling();\n\n // Reset options.fetchPolicy to its original value when variables change,\n // unless a new fetchPolicy was provided by newOptions.\n if (\n newOptions &&\n newOptions.variables &&\n !equal(newOptions.variables, oldVariables) &&\n // Don't mess with the fetchPolicy if it's currently \"standby\".\n options.fetchPolicy !== \"standby\" &&\n // If we're changing the fetchPolicy anyway, don't try to change it here\n // using applyNextFetchPolicy. The explicit options.fetchPolicy wins.\n options.fetchPolicy === oldFetchPolicy\n ) {\n this.applyNextFetchPolicy(\"variables-changed\", options);\n if (newNetworkStatus === void 0) {\n newNetworkStatus = NetworkStatus.setVariables;\n }\n }\n }\n\n this.waitForOwnResult &&= skipCacheDataFor(options.fetchPolicy);\n const finishWaitingForOwnResult = () => {\n if (this.concast === concast) {\n this.waitForOwnResult = false;\n }\n };\n\n const variables = options.variables && { ...options.variables };\n const { concast, fromLink } = this.fetch(options, newNetworkStatus, query);\n const observer: Observer> = {\n next: (result) => {\n if (equal(this.variables, variables)) {\n finishWaitingForOwnResult();\n this.reportResult(result, variables);\n }\n },\n error: (error) => {\n if (equal(this.variables, variables)) {\n finishWaitingForOwnResult();\n this.reportError(error, variables);\n }\n },\n };\n\n if (!useDisposableConcast && (fromLink || !this.concast)) {\n // We use the {add,remove}Observer methods directly to avoid wrapping\n // observer with an unnecessary SubscriptionObserver object.\n if (this.concast && this.observer) {\n this.concast.removeObserver(this.observer);\n }\n\n this.concast = concast;\n this.observer = observer;\n }\n\n concast.addObserver(observer);\n\n return concast;\n }\n\n public reobserve(\n newOptions?: Partial>,\n newNetworkStatus?: NetworkStatus\n ): Promise> {\n return this.reobserveAsConcast(newOptions, newNetworkStatus)\n .promise as TODO;\n }\n\n public resubscribeAfterError(\n onNext: (value: ApolloQueryResult) => void,\n onError?: (error: any) => void,\n onComplete?: () => void\n ): ObservableSubscription;\n\n public resubscribeAfterError(\n observer: Observer>\n ): ObservableSubscription;\n\n public resubscribeAfterError(...args: [any, any?, any?]) {\n // If `lastError` is set in the current when the subscription is re-created,\n // the subscription will immediately receive the error, which will\n // cause it to terminate again. To avoid this, we first clear\n // the last error/result from the `observableQuery` before re-starting\n // the subscription, and restore the last value afterwards so that the\n // subscription has a chance to stay open.\n const last = this.last;\n this.resetLastResults();\n\n const subscription = this.subscribe(...args);\n this.last = last;\n\n return subscription;\n }\n\n // (Re)deliver the current result to this.observers without applying fetch\n // policies or making network requests.\n private observe() {\n this.reportResult(\n // Passing false is important so that this.getCurrentResult doesn't\n // save the fetchMore result as this.lastResult, causing it to be\n // ignored due to the this.isDifferentFromLastResult check in\n // this.reportResult.\n this.getCurrentResult(false),\n this.variables\n );\n }\n\n private reportResult(\n result: ApolloQueryResult,\n variables: TVariables | undefined\n ) {\n const lastError = this.getLastError();\n const isDifferent = this.isDifferentFromLastResult(result, variables);\n // Update the last result even when isDifferentFromLastResult returns false,\n // because the query may be using the @nonreactive directive, and we want to\n // save the the latest version of any nonreactive subtrees (in case\n // getCurrentResult is called), even though we skip broadcasting changes.\n if (lastError || !result.partial || this.options.returnPartialData) {\n this.updateLastResult(result, variables);\n }\n if (lastError || isDifferent) {\n iterateObserversSafely(this.observers, \"next\", result);\n }\n }\n\n private reportError(error: ApolloError, variables: TVariables | undefined) {\n // Since we don't get the current result on errors, only the error, we\n // must mirror the updates that occur in QueryStore.markQueryError here\n const errorResult = {\n ...this.getLastResult(),\n error,\n errors: error.graphQLErrors,\n networkStatus: NetworkStatus.error,\n loading: false,\n } as ApolloQueryResult;\n\n this.updateLastResult(errorResult, variables);\n\n iterateObserversSafely(this.observers, \"error\", (this.last!.error = error));\n }\n\n public hasObservers() {\n return this.observers.size > 0;\n }\n\n private tearDownQuery() {\n if (this.isTornDown) return;\n if (this.concast && this.observer) {\n this.concast.removeObserver(this.observer);\n delete this.concast;\n delete this.observer;\n }\n\n this.stopPolling();\n // stop all active GraphQL subscriptions\n this.subscriptions.forEach((sub) => sub.unsubscribe());\n this.subscriptions.clear();\n this.queryManager.stopQuery(this.queryId);\n this.observers.clear();\n this.isTornDown = true;\n }\n\n private transformDocument(document: DocumentNode) {\n return this.queryManager.transform(document);\n }\n}\n\n// Necessary because the ObservableQuery constructor has a different\n// signature than the Observable constructor.\nfixObservableSubclass(ObservableQuery);\n\n// Reobserve with fetchPolicy effectively set to \"cache-first\", triggering\n// delivery of any new data from the cache, possibly falling back to the network\n// if any cache data are missing. This allows _complete_ cache results to be\n// delivered without also kicking off unnecessary network requests when\n// this.options.fetchPolicy is \"cache-and-network\" or \"network-only\". When\n// this.options.fetchPolicy is any other policy (\"cache-first\", \"cache-only\",\n// \"standby\", or \"no-cache\"), we call this.reobserve() as usual.\nexport function reobserveCacheFirst(\n obsQuery: ObservableQuery\n) {\n const { fetchPolicy, nextFetchPolicy } = obsQuery.options;\n\n if (fetchPolicy === \"cache-and-network\" || fetchPolicy === \"network-only\") {\n return obsQuery.reobserve({\n fetchPolicy: \"cache-first\",\n // Use a temporary nextFetchPolicy function that replaces itself with the\n // previous nextFetchPolicy value and returns the original fetchPolicy.\n nextFetchPolicy(\n this: WatchQueryOptions,\n currentFetchPolicy: WatchQueryFetchPolicy,\n context: NextFetchPolicyContext\n ) {\n // Replace this nextFetchPolicy function in the options object with the\n // original this.options.nextFetchPolicy value.\n this.nextFetchPolicy = nextFetchPolicy;\n // If the original nextFetchPolicy value was a function, give it a\n // chance to decide what happens here.\n if (typeof this.nextFetchPolicy === \"function\") {\n return this.nextFetchPolicy(currentFetchPolicy, context);\n }\n // Otherwise go back to the original this.options.fetchPolicy.\n return fetchPolicy!;\n },\n });\n }\n\n return obsQuery.reobserve();\n}\n\nfunction defaultSubscriptionObserverErrorCallback(error: ApolloError) {\n invariant.error(\"Unhandled error\", error.message, error.stack);\n}\n\nexport function logMissingFieldErrors(\n missing: MissingFieldError[] | MissingTree | undefined\n) {\n if (__DEV__ && missing) {\n invariant.debug(`Missing cache result fields: %o`, missing);\n }\n}\n\nfunction skipCacheDataFor(\n fetchPolicy?: WatchQueryFetchPolicy /* `undefined` would mean `\"cache-first\"` */\n) {\n return (\n fetchPolicy === \"network-only\" ||\n fetchPolicy === \"no-cache\" ||\n fetchPolicy === \"standby\"\n );\n}\n","import { Kind } from './kinds.mjs';\nexport function isDefinitionNode(node) {\n return (\n isExecutableDefinitionNode(node) ||\n isTypeSystemDefinitionNode(node) ||\n isTypeSystemExtensionNode(node)\n );\n}\nexport function isExecutableDefinitionNode(node) {\n return (\n node.kind === Kind.OPERATION_DEFINITION ||\n node.kind === Kind.FRAGMENT_DEFINITION\n );\n}\nexport function isSelectionNode(node) {\n return (\n node.kind === Kind.FIELD ||\n node.kind === Kind.FRAGMENT_SPREAD ||\n node.kind === Kind.INLINE_FRAGMENT\n );\n}\nexport function isValueNode(node) {\n return (\n node.kind === Kind.VARIABLE ||\n node.kind === Kind.INT ||\n node.kind === Kind.FLOAT ||\n node.kind === Kind.STRING ||\n node.kind === Kind.BOOLEAN ||\n node.kind === Kind.NULL ||\n node.kind === Kind.ENUM ||\n node.kind === Kind.LIST ||\n node.kind === Kind.OBJECT\n );\n}\nexport function isConstValueNode(node) {\n return (\n isValueNode(node) &&\n (node.kind === Kind.LIST\n ? node.values.some(isConstValueNode)\n : node.kind === Kind.OBJECT\n ? node.fields.some((field) => isConstValueNode(field.value))\n : node.kind !== Kind.VARIABLE)\n );\n}\nexport function isTypeNode(node) {\n return (\n node.kind === Kind.NAMED_TYPE ||\n node.kind === Kind.LIST_TYPE ||\n node.kind === Kind.NON_NULL_TYPE\n );\n}\nexport function isTypeSystemDefinitionNode(node) {\n return (\n node.kind === Kind.SCHEMA_DEFINITION ||\n isTypeDefinitionNode(node) ||\n node.kind === Kind.DIRECTIVE_DEFINITION\n );\n}\nexport function isTypeDefinitionNode(node) {\n return (\n node.kind === Kind.SCALAR_TYPE_DEFINITION ||\n node.kind === Kind.OBJECT_TYPE_DEFINITION ||\n node.kind === Kind.INTERFACE_TYPE_DEFINITION ||\n node.kind === Kind.UNION_TYPE_DEFINITION ||\n node.kind === Kind.ENUM_TYPE_DEFINITION ||\n node.kind === Kind.INPUT_OBJECT_TYPE_DEFINITION\n );\n}\nexport function isTypeSystemExtensionNode(node) {\n return node.kind === Kind.SCHEMA_EXTENSION || isTypeExtensionNode(node);\n}\nexport function isTypeExtensionNode(node) {\n return (\n node.kind === Kind.SCALAR_TYPE_EXTENSION ||\n node.kind === Kind.OBJECT_TYPE_EXTENSION ||\n node.kind === Kind.INTERFACE_TYPE_EXTENSION ||\n node.kind === Kind.UNION_TYPE_EXTENSION ||\n node.kind === Kind.ENUM_TYPE_EXTENSION ||\n node.kind === Kind.INPUT_OBJECT_TYPE_EXTENSION\n );\n}\n","import type { OptimisticDependencyFunction } from \"optimism\";\nimport { dep, Slot } from \"optimism\";\nimport type { InMemoryCache } from \"./inMemoryCache.js\";\nimport type { ApolloCache } from \"../../core/index.js\";\n\nexport interface ReactiveVar {\n (newValue?: T): T;\n onNextChange(listener: ReactiveListener): () => void;\n attachCache(cache: ApolloCache): this;\n forgetCache(cache: ApolloCache): boolean;\n}\n\nexport type ReactiveListener = (value: T) => any;\n\n// Contextual Slot that acquires its value when custom read functions are\n// called in Policies#readField.\nexport const cacheSlot = new Slot>();\n\nconst cacheInfoMap = new WeakMap<\n ApolloCache,\n {\n vars: Set>;\n dep: OptimisticDependencyFunction>;\n }\n>();\n\nfunction getCacheInfo(cache: ApolloCache) {\n let info = cacheInfoMap.get(cache)!;\n if (!info) {\n cacheInfoMap.set(\n cache,\n (info = {\n vars: new Set(),\n dep: dep(),\n })\n );\n }\n return info;\n}\n\nexport function forgetCache(cache: ApolloCache) {\n getCacheInfo(cache).vars.forEach((rv) => rv.forgetCache(cache));\n}\n\n// Calling forgetCache(cache) serves to silence broadcasts and allows the\n// cache to be garbage collected. However, the varsByCache WeakMap\n// preserves the set of reactive variables that were previously associated\n// with this cache, which makes it possible to \"recall\" the cache at a\n// later time, by reattaching it to those variables. If the cache has been\n// garbage collected in the meantime, because it is no longer reachable,\n// you won't be able to call recallCache(cache), and the cache will\n// automatically disappear from the varsByCache WeakMap.\nexport function recallCache(cache: ApolloCache) {\n getCacheInfo(cache).vars.forEach((rv) => rv.attachCache(cache));\n}\n\nexport function makeVar(value: T): ReactiveVar {\n const caches = new Set>();\n const listeners = new Set>();\n\n const rv: ReactiveVar = function (newValue) {\n if (arguments.length > 0) {\n if (value !== newValue) {\n value = newValue!;\n caches.forEach((cache) => {\n // Invalidate any fields with custom read functions that\n // consumed this variable, so query results involving those\n // fields will be recomputed the next time we read them.\n getCacheInfo(cache).dep.dirty(rv);\n // Broadcast changes to any caches that have previously read\n // from this variable.\n broadcast(cache);\n });\n // Finally, notify any listeners added via rv.onNextChange.\n const oldListeners = Array.from(listeners);\n listeners.clear();\n oldListeners.forEach((listener) => listener(value));\n }\n } else {\n // When reading from the variable, obtain the current cache from\n // context via cacheSlot. This isn't entirely foolproof, but it's\n // the same system that powers varDep.\n const cache = cacheSlot.getValue();\n if (cache) {\n attach(cache);\n getCacheInfo(cache).dep(rv);\n }\n }\n\n return value;\n };\n\n rv.onNextChange = (listener) => {\n listeners.add(listener);\n return () => {\n listeners.delete(listener);\n };\n };\n\n const attach = (rv.attachCache = (cache) => {\n caches.add(cache);\n getCacheInfo(cache).vars.add(rv);\n return rv;\n });\n\n rv.forgetCache = (cache) => caches.delete(cache);\n\n return rv;\n}\n\ntype Broadcastable = ApolloCache & {\n // This method is protected in InMemoryCache, which we are ignoring, but\n // we still want some semblance of type safety when we call it.\n broadcastWatches?: InMemoryCache[\"broadcastWatches\"];\n};\n\nfunction broadcast(cache: Broadcastable) {\n if (cache.broadcastWatches) {\n cache.broadcastWatches();\n }\n}\n","import { invariant } from \"../utilities/globals/index.js\";\n\nimport type {\n DocumentNode,\n OperationDefinitionNode,\n SelectionSetNode,\n SelectionNode,\n InlineFragmentNode,\n FragmentDefinitionNode,\n FieldNode,\n ASTNode,\n DirectiveNode,\n FragmentSpreadNode,\n ExecutableDefinitionNode,\n} from \"graphql\";\nimport { visit, BREAK, isSelectionNode } from \"graphql\";\n\nimport type { ApolloCache } from \"../cache/index.js\";\nimport type { FragmentMap, StoreObject } from \"../utilities/index.js\";\nimport {\n argumentsObjectFromField,\n buildQueryFromSelectionSet,\n createFragmentMap,\n getFragmentDefinitions,\n getMainDefinition,\n hasDirectives,\n isField,\n isInlineFragment,\n mergeDeep,\n mergeDeepArray,\n removeClientSetsFromDocument,\n resultKeyNameFromField,\n shouldInclude,\n} from \"../utilities/index.js\";\nimport type { ApolloClient } from \"./ApolloClient.js\";\nimport type { Resolvers, OperationVariables } from \"./types.js\";\nimport type { FetchResult } from \"../link/core/index.js\";\nimport { cacheSlot } from \"../cache/index.js\";\n\nexport type Resolver = (\n rootValue?: any,\n args?: any,\n context?: any,\n info?: {\n field: FieldNode;\n fragmentMap: FragmentMap;\n }\n) => any;\n\nexport type VariableMap = { [name: string]: any };\n\nexport type FragmentMatcher = (\n rootValue: any,\n typeCondition: string,\n context: any\n) => boolean;\n\nexport type ExecContext = {\n fragmentMap: FragmentMap;\n context: any;\n variables: VariableMap;\n fragmentMatcher: FragmentMatcher;\n defaultOperationType: string;\n exportedVariables: Record;\n onlyRunForcedResolvers: boolean;\n selectionsToResolve: Set;\n};\n\nexport type LocalStateOptions = {\n cache: ApolloCache;\n client?: ApolloClient;\n resolvers?: Resolvers | Resolvers[];\n fragmentMatcher?: FragmentMatcher;\n};\n\nexport class LocalState {\n private cache: ApolloCache;\n private client?: ApolloClient;\n private resolvers?: Resolvers;\n private fragmentMatcher?: FragmentMatcher;\n private selectionsToResolveCache = new WeakMap<\n ExecutableDefinitionNode,\n Set\n >();\n\n constructor({\n cache,\n client,\n resolvers,\n fragmentMatcher,\n }: LocalStateOptions) {\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 public addResolvers(resolvers: Resolvers | Resolvers[]) {\n this.resolvers = this.resolvers || {};\n if (Array.isArray(resolvers)) {\n resolvers.forEach((resolverGroup) => {\n this.resolvers = mergeDeep(this.resolvers, resolverGroup);\n });\n } else {\n this.resolvers = mergeDeep(this.resolvers, resolvers);\n }\n }\n\n public setResolvers(resolvers: Resolvers | Resolvers[]) {\n this.resolvers = {};\n this.addResolvers(resolvers);\n }\n\n public getResolvers() {\n return this.resolvers || {};\n }\n\n // Run local client resolvers against the incoming query and remote data.\n // Locally resolved field values are merged with the incoming remote data,\n // and returned. Note that locally resolved fields will overwrite\n // remote data using the same field name.\n public async runResolvers({\n document,\n remoteResult,\n context,\n variables,\n onlyRunForcedResolvers = false,\n }: {\n document: DocumentNode | null;\n remoteResult: FetchResult;\n context?: Record;\n variables?: Record;\n onlyRunForcedResolvers?: boolean;\n }): Promise> {\n if (document) {\n return this.resolveDocument(\n document,\n remoteResult.data,\n context,\n variables,\n this.fragmentMatcher,\n onlyRunForcedResolvers\n ).then((localResult) => ({\n ...remoteResult,\n data: localResult.result,\n }));\n }\n\n return remoteResult;\n }\n\n public setFragmentMatcher(fragmentMatcher: FragmentMatcher) {\n this.fragmentMatcher = fragmentMatcher;\n }\n\n public getFragmentMatcher(): FragmentMatcher | undefined {\n return this.fragmentMatcher;\n }\n\n // Client queries contain everything in the incoming document (if a @client\n // directive is found).\n public clientQuery(document: DocumentNode) {\n if (hasDirectives([\"client\"], document)) {\n if (this.resolvers) {\n return document;\n }\n }\n return null;\n }\n\n // Server queries are stripped of all @client based selection sets.\n public serverQuery(document: DocumentNode) {\n return removeClientSetsFromDocument(document);\n }\n\n public prepareContext(context?: Record) {\n const { cache } = this;\n return {\n ...context,\n cache,\n // Getting an entry's cache key is useful for local state resolvers.\n getCacheKey(obj: StoreObject) {\n return cache.identify(obj);\n },\n };\n }\n\n // To support `@client @export(as: \"someVar\")` syntax, we'll first resolve\n // @client @export fields locally, then pass the resolved values back to be\n // used alongside the original operation variables.\n public async addExportedVariables(\n document: DocumentNode,\n variables: TVars = {} as TVars,\n context = {}\n ): /* returns at least the variables that were passed in */ Promise {\n if (document) {\n return this.resolveDocument(\n document,\n this.buildRootValueFromCache(document, variables) || {},\n this.prepareContext(context),\n variables\n ).then((data) => ({\n ...variables,\n ...data.exportedVariables,\n }));\n }\n\n return {\n ...variables,\n };\n }\n\n public shouldForceResolvers(document: ASTNode) {\n let forceResolvers = false;\n visit(document, {\n Directive: {\n enter(node) {\n if (node.name.value === \"client\" && node.arguments) {\n forceResolvers = node.arguments.some(\n (arg) =>\n arg.name.value === \"always\" &&\n arg.value.kind === \"BooleanValue\" &&\n arg.value.value === true\n );\n if (forceResolvers) {\n return BREAK;\n }\n }\n },\n },\n });\n return forceResolvers;\n }\n\n // Query the cache and return matching data.\n private buildRootValueFromCache(\n document: DocumentNode,\n variables?: Record\n ) {\n return this.cache.diff({\n query: buildQueryFromSelectionSet(document),\n variables,\n returnPartialData: true,\n optimistic: false,\n }).result;\n }\n\n private async resolveDocument(\n document: DocumentNode,\n rootValue: TData,\n context: any = {},\n variables: VariableMap = {},\n fragmentMatcher: FragmentMatcher = () => true,\n onlyRunForcedResolvers: boolean = false\n ) {\n const mainDefinition = getMainDefinition(\n document\n ) as OperationDefinitionNode;\n const fragments = getFragmentDefinitions(document);\n const fragmentMap = createFragmentMap(fragments);\n const selectionsToResolve = this.collectSelectionsToResolve(\n mainDefinition,\n fragmentMap\n );\n\n const definitionOperation = mainDefinition.operation;\n\n const defaultOperationType =\n definitionOperation ?\n definitionOperation.charAt(0).toUpperCase() +\n definitionOperation.slice(1)\n : \"Query\";\n\n const { cache, client } = this;\n const execContext: ExecContext = {\n fragmentMap,\n context: {\n ...context,\n cache,\n client,\n },\n variables,\n fragmentMatcher,\n defaultOperationType,\n exportedVariables: {},\n selectionsToResolve,\n onlyRunForcedResolvers,\n };\n const isClientFieldDescendant = false;\n\n return this.resolveSelectionSet(\n mainDefinition.selectionSet,\n isClientFieldDescendant,\n rootValue,\n execContext\n ).then((result) => ({\n result,\n exportedVariables: execContext.exportedVariables,\n }));\n }\n\n private async resolveSelectionSet(\n selectionSet: SelectionSetNode,\n isClientFieldDescendant: boolean,\n rootValue: TData,\n execContext: ExecContext\n ) {\n const { fragmentMap, context, variables } = execContext;\n const resultsToMerge: TData[] = [rootValue];\n\n const execute = async (selection: SelectionNode): Promise => {\n if (\n !isClientFieldDescendant &&\n !execContext.selectionsToResolve.has(selection)\n ) {\n // Skip selections without @client directives\n // (still processing if one of the ancestors or one of the child fields has @client directive)\n return;\n }\n if (!shouldInclude(selection, variables)) {\n // Skip this entirely.\n return;\n }\n\n if (isField(selection)) {\n return this.resolveField(\n selection,\n isClientFieldDescendant,\n rootValue,\n execContext\n ).then((fieldResult) => {\n if (typeof fieldResult !== \"undefined\") {\n resultsToMerge.push({\n [resultKeyNameFromField(selection)]: fieldResult,\n } as TData);\n }\n });\n }\n\n let fragment: InlineFragmentNode | FragmentDefinitionNode;\n\n if (isInlineFragment(selection)) {\n fragment = selection;\n } else {\n // This is a named fragment.\n fragment = fragmentMap[selection.name.value];\n invariant(fragment, `No fragment named %s`, selection.name.value);\n }\n\n if (fragment && fragment.typeCondition) {\n const typeCondition = fragment.typeCondition.name.value;\n if (execContext.fragmentMatcher(rootValue, typeCondition, context)) {\n return this.resolveSelectionSet(\n fragment.selectionSet,\n isClientFieldDescendant,\n rootValue,\n execContext\n ).then((fragmentResult) => {\n resultsToMerge.push(fragmentResult);\n });\n }\n }\n };\n\n return Promise.all(selectionSet.selections.map(execute)).then(function () {\n return mergeDeepArray(resultsToMerge);\n });\n }\n\n private async resolveField(\n field: FieldNode,\n isClientFieldDescendant: boolean,\n rootValue: any,\n execContext: ExecContext\n ): Promise {\n if (!rootValue) {\n return null;\n }\n\n const { variables } = execContext;\n const fieldName = field.name.value;\n const aliasedFieldName = resultKeyNameFromField(field);\n const aliasUsed = fieldName !== aliasedFieldName;\n const defaultResult = rootValue[aliasedFieldName] || rootValue[fieldName];\n let resultPromise = Promise.resolve(defaultResult);\n\n // Usually all local resolvers are run when passing through here, but\n // if we've specifically identified that we only want to run forced\n // resolvers (that is, resolvers for fields marked with\n // `@client(always: true)`), then we'll skip running non-forced resolvers.\n if (\n !execContext.onlyRunForcedResolvers ||\n this.shouldForceResolvers(field)\n ) {\n const resolverType =\n rootValue.__typename || execContext.defaultOperationType;\n const resolverMap = this.resolvers && this.resolvers[resolverType];\n if (resolverMap) {\n const resolve = resolverMap[aliasUsed ? fieldName : aliasedFieldName];\n if (resolve) {\n resultPromise = Promise.resolve(\n // In case the resolve function accesses reactive variables,\n // set cacheSlot to the current cache instance.\n cacheSlot.withValue(this.cache, resolve, [\n rootValue,\n argumentsObjectFromField(field, variables),\n execContext.context,\n { field, fragmentMap: execContext.fragmentMap },\n ])\n );\n }\n }\n }\n\n return resultPromise.then((result = defaultResult) => {\n // If an @export directive is associated with the current field, store\n // the `as` export variable name and current result for later use.\n if (field.directives) {\n field.directives.forEach((directive) => {\n if (directive.name.value === \"export\" && directive.arguments) {\n directive.arguments.forEach((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 // Handle all scalar types here.\n if (!field.selectionSet) {\n return result;\n }\n\n // From here down, the field has a selection set, which means it's trying\n // to query a GraphQLObjectType.\n if (result == null) {\n // Basically any field in a GraphQL response can be null, or missing\n return result;\n }\n\n const isClientField =\n field.directives?.some((d) => d.name.value === \"client\") ?? false;\n\n if (Array.isArray(result)) {\n return this.resolveSubSelectedArray(\n field,\n isClientFieldDescendant || isClientField,\n result,\n execContext\n );\n }\n\n // Returned value is an object, and the query has a sub-selection. Recurse.\n if (field.selectionSet) {\n return this.resolveSelectionSet(\n field.selectionSet,\n isClientFieldDescendant || isClientField,\n result,\n execContext\n );\n }\n });\n }\n\n private resolveSubSelectedArray(\n field: FieldNode,\n isClientFieldDescendant: boolean,\n result: any[],\n execContext: ExecContext\n ): any {\n return Promise.all(\n result.map((item) => {\n if (item === null) {\n return null;\n }\n\n // This is a nested array, recurse.\n if (Array.isArray(item)) {\n return this.resolveSubSelectedArray(\n field,\n isClientFieldDescendant,\n item,\n execContext\n );\n }\n\n // This is an object, run the selection set on it.\n if (field.selectionSet) {\n return this.resolveSelectionSet(\n field.selectionSet,\n isClientFieldDescendant,\n item,\n execContext\n );\n }\n })\n );\n }\n\n // Collect selection nodes on paths from document root down to all @client directives.\n // This function takes into account transitive fragment spreads.\n // Complexity equals to a single `visit` over the full document.\n private collectSelectionsToResolve(\n mainDefinition: OperationDefinitionNode,\n fragmentMap: FragmentMap\n ): Set {\n const isSingleASTNode = (\n node: ASTNode | readonly ASTNode[]\n ): node is ASTNode => !Array.isArray(node);\n const selectionsToResolveCache = this.selectionsToResolveCache;\n\n function collectByDefinition(\n definitionNode: ExecutableDefinitionNode\n ): Set {\n if (!selectionsToResolveCache.has(definitionNode)) {\n const matches = new Set();\n selectionsToResolveCache.set(definitionNode, matches);\n\n visit(definitionNode, {\n Directive(node: DirectiveNode, _, __, ___, ancestors) {\n if (node.name.value === \"client\") {\n ancestors.forEach((node) => {\n if (isSingleASTNode(node) && isSelectionNode(node)) {\n matches.add(node);\n }\n });\n }\n },\n FragmentSpread(spread: FragmentSpreadNode, _, __, ___, ancestors) {\n const fragment = fragmentMap[spread.name.value];\n invariant(fragment, `No fragment named %s`, spread.name.value);\n\n const fragmentSelections = collectByDefinition(fragment);\n if (fragmentSelections.size > 0) {\n // Fragment for this spread contains @client directive (either directly or transitively)\n // Collect selection nodes on paths from the root down to fields with the @client directive\n ancestors.forEach((node) => {\n if (isSingleASTNode(node) && isSelectionNode(node)) {\n matches.add(node);\n }\n });\n matches.add(spread);\n fragmentSelections.forEach((selection) => {\n matches.add(selection);\n });\n }\n },\n });\n }\n return selectionsToResolveCache.get(definitionNode)!;\n }\n return collectByDefinition(mainDefinition);\n }\n}\n","import type { DocumentNode, GraphQLError } from \"graphql\";\nimport { equal } from \"@wry/equality\";\n\nimport type { Cache, ApolloCache } from \"../cache/index.js\";\nimport { DeepMerger } from \"../utilities/index.js\";\nimport { mergeIncrementalData } from \"../utilities/index.js\";\nimport type { WatchQueryOptions, ErrorPolicy } from \"./watchQueryOptions.js\";\nimport type { ObservableQuery } from \"./ObservableQuery.js\";\nimport { reobserveCacheFirst } from \"./ObservableQuery.js\";\nimport type { QueryListener } from \"./types.js\";\nimport type { FetchResult } from \"../link/core/index.js\";\nimport {\n isNonEmptyArray,\n graphQLResultHasError,\n canUseWeakMap,\n} from \"../utilities/index.js\";\nimport { NetworkStatus, isNetworkRequestInFlight } from \"./networkStatus.js\";\nimport type { ApolloError } from \"../errors/index.js\";\nimport type { QueryManager } from \"./QueryManager.js\";\n\nexport type QueryStoreValue = Pick<\n QueryInfo,\n \"variables\" | \"networkStatus\" | \"networkError\" | \"graphQLErrors\"\n>;\n\nexport const enum CacheWriteBehavior {\n FORBID,\n OVERWRITE,\n MERGE,\n}\n\nconst destructiveMethodCounts = new (canUseWeakMap ? WeakMap : Map)<\n ApolloCache,\n number\n>();\n\nfunction wrapDestructiveCacheMethod(\n cache: ApolloCache,\n methodName: \"evict\" | \"modify\" | \"reset\"\n) {\n const original = cache[methodName];\n if (typeof original === \"function\") {\n // @ts-expect-error this is just too generic to be typed correctly\n cache[methodName] = function () {\n destructiveMethodCounts.set(\n cache,\n // The %1e15 allows the count to wrap around to 0 safely every\n // quadrillion evictions, so there's no risk of overflow. To be\n // clear, this is more of a pedantic principle than something\n // that matters in any conceivable practical scenario.\n (destructiveMethodCounts.get(cache)! + 1) % 1e15\n );\n // @ts-expect-error this is just too generic to be typed correctly\n return original.apply(this, arguments);\n };\n }\n}\n\nfunction cancelNotifyTimeout(info: QueryInfo) {\n if (info[\"notifyTimeout\"]) {\n clearTimeout(info[\"notifyTimeout\"]);\n info[\"notifyTimeout\"] = void 0;\n }\n}\n\n// A QueryInfo object represents a single query managed by the\n// QueryManager, which tracks all QueryInfo objects by queryId in its\n// this.queries Map. QueryInfo objects store the latest results and errors\n// for the given query, and are responsible for reporting those results to\n// the corresponding ObservableQuery, via the QueryInfo.notify method.\n// Results are reported asynchronously whenever setDiff marks the\n// QueryInfo object as dirty, though a call to the QueryManager's\n// broadcastQueries method may trigger the notification before it happens\n// automatically. This class used to be a simple interface type without\n// any field privacy or meaningful methods, which is why it still has so\n// many public fields. The effort to lock down and simplify the QueryInfo\n// interface is ongoing, and further improvements are welcome.\nexport class QueryInfo {\n listeners = new Set();\n document: DocumentNode | null = null;\n lastRequestId = 1;\n variables?: Record;\n networkStatus?: NetworkStatus;\n networkError?: Error | null;\n graphQLErrors?: ReadonlyArray;\n stopped = false;\n\n private cache: ApolloCache;\n\n constructor(\n queryManager: QueryManager,\n public readonly queryId = queryManager.generateQueryId()\n ) {\n const cache = (this.cache = queryManager.cache);\n\n // Track how often cache.evict is called, since we want eviction to\n // override the feud-stopping logic in the markResult method, by\n // causing shouldWrite to return true. Wrapping the cache.evict method\n // is a bit of a hack, but it saves us from having to make eviction\n // counting an official part of the ApolloCache API.\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 public init(query: {\n document: DocumentNode;\n variables: Record | undefined;\n // The initial networkStatus for this fetch, most often\n // NetworkStatus.loading, but also possibly fetchMore, poll, refetch,\n // or setVariables.\n networkStatus?: NetworkStatus;\n observableQuery?: ObservableQuery;\n lastRequestId?: number;\n }): this {\n let networkStatus = query.networkStatus || NetworkStatus.loading;\n if (\n this.variables &&\n this.networkStatus !== NetworkStatus.loading &&\n !equal(this.variables, query.variables)\n ) {\n networkStatus = NetworkStatus.setVariables;\n }\n\n if (!equal(query.variables, this.variables)) {\n this.lastDiff = void 0;\n }\n\n Object.assign(this, {\n document: query.document,\n variables: query.variables,\n networkError: null,\n graphQLErrors: this.graphQLErrors || [],\n 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 private dirty: boolean = false;\n\n private notifyTimeout?: ReturnType;\n\n reset() {\n cancelNotifyTimeout(this);\n this.dirty = false;\n }\n\n resetDiff() {\n this.lastDiff = void 0;\n }\n\n getDiff(): Cache.DiffResult {\n const options = this.getDiffOptions();\n\n if (this.lastDiff && equal(options, this.lastDiff.options)) {\n return this.lastDiff.diff;\n }\n\n this.updateWatch(this.variables);\n\n const oq = this.observableQuery;\n if (oq && oq.options.fetchPolicy === \"no-cache\") {\n return { complete: false };\n }\n\n const diff = this.cache.diff(options);\n this.updateLastDiff(diff, options);\n return diff;\n }\n\n private lastDiff?: {\n diff: Cache.DiffResult;\n options: Cache.DiffOptions;\n };\n\n private updateLastDiff(\n diff: Cache.DiffResult | null,\n options?: Cache.DiffOptions\n ) {\n this.lastDiff =\n diff ?\n {\n diff,\n options: options || this.getDiffOptions(),\n }\n : void 0;\n }\n\n private getDiffOptions(variables = this.variables): Cache.DiffOptions {\n return {\n query: this.document!,\n variables,\n returnPartialData: true,\n optimistic: true,\n canonizeResults: this.observableQuery?.options.canonizeResults,\n };\n }\n\n setDiff(diff: Cache.DiffResult | null) {\n const oldDiff = this.lastDiff && this.lastDiff.diff;\n\n // If we do not tolerate partial results, skip this update to prevent it\n // from being reported. This prevents a situtuation where a query that\n // errors and another succeeds with overlapping data does not report the\n // partial data result to the errored query.\n //\n // See https://github.com/apollographql/apollo-client/issues/11400 for more\n // information on this issue.\n if (\n diff &&\n !diff.complete &&\n !this.observableQuery?.options.returnPartialData &&\n // In the case of a cache eviction, the diff will become partial so we\n // schedule a notification to send a network request (this.oqListener) to\n // go and fetch the missing data.\n !(oldDiff && oldDiff.complete)\n ) {\n return;\n }\n\n this.updateLastDiff(diff);\n\n if (!this.dirty && !equal(oldDiff && oldDiff.result, diff && diff.result)) {\n this.dirty = true;\n if (!this.notifyTimeout) {\n this.notifyTimeout = setTimeout(() => this.notify(), 0);\n }\n }\n }\n\n public readonly observableQuery: ObservableQuery | null = null;\n private oqListener?: QueryListener;\n\n setObservableQuery(oq: ObservableQuery | null) {\n if (oq === this.observableQuery) return;\n\n if (this.oqListener) {\n this.listeners.delete(this.oqListener);\n }\n\n (this as any).observableQuery = oq;\n\n if (oq) {\n oq[\"queryInfo\"] = this;\n this.listeners.add(\n (this.oqListener = () => {\n const diff = this.getDiff();\n if (diff.fromOptimisticTransaction) {\n // If this diff came from an optimistic transaction, deliver the\n // current cache data to the ObservableQuery, but don't perform a\n // reobservation, since oq.reobserveCacheFirst might make a network\n // request, and we never want to trigger network requests in the\n // middle of optimistic updates.\n oq[\"observe\"]();\n } else {\n // Otherwise, make the ObservableQuery \"reobserve\" the latest data\n // using a temporary fetch policy of \"cache-first\", so complete cache\n // results have a chance to be delivered without triggering additional\n // network requests, even when options.fetchPolicy is \"network-only\"\n // or \"cache-and-network\". All other fetch policies are preserved by\n // this method, and are handled by calling oq.reobserve(). If this\n // reobservation is spurious, isDifferentFromLastResult still has a\n // chance to catch it before delivery to ObservableQuery subscribers.\n reobserveCacheFirst(oq);\n }\n })\n );\n } else {\n delete this.oqListener;\n }\n }\n\n notify() {\n cancelNotifyTimeout(this);\n\n if (this.shouldNotify()) {\n this.listeners.forEach((listener) => listener(this));\n }\n\n this.dirty = false;\n }\n\n private shouldNotify() {\n if (!this.dirty || !this.listeners.size) {\n return false;\n }\n\n if (isNetworkRequestInFlight(this.networkStatus) && this.observableQuery) {\n const { fetchPolicy } = this.observableQuery.options;\n if (fetchPolicy !== \"cache-only\" && fetchPolicy !== \"cache-and-network\") {\n return false;\n }\n }\n\n return true;\n }\n\n public stop() {\n if (!this.stopped) {\n this.stopped = true;\n\n // Cancel the pending notify timeout\n this.reset();\n\n this.cancel();\n // Revert back to the no-op version of cancel inherited from\n // QueryInfo.prototype.\n this.cancel = QueryInfo.prototype.cancel;\n\n const oq = this.observableQuery;\n if (oq) oq.stopPolling();\n }\n }\n\n // This method is a no-op by default, until/unless overridden by the\n // updateWatch method.\n private cancel() {}\n\n private lastWatch?: Cache.WatchOptions;\n\n private updateWatch(variables = this.variables) {\n const oq = this.observableQuery;\n if (oq && oq.options.fetchPolicy === \"no-cache\") {\n return;\n }\n\n const watchOptions: Cache.WatchOptions = {\n // Although this.getDiffOptions returns Cache.DiffOptions instead of\n // Cache.WatchOptions, all the overlapping options should be the same, so\n // we can reuse getDiffOptions here, for consistency.\n ...this.getDiffOptions(variables),\n watcher: this,\n callback: (diff) => this.setDiff(diff),\n };\n\n if (!this.lastWatch || !equal(watchOptions, this.lastWatch)) {\n this.cancel();\n this.cancel = this.cache.watch((this.lastWatch = watchOptions));\n }\n }\n\n private lastWrite?: {\n result: FetchResult;\n variables: WatchQueryOptions[\"variables\"];\n dmCount: number | undefined;\n };\n\n public resetLastWrite() {\n this.lastWrite = void 0;\n }\n\n private shouldWrite(\n result: FetchResult,\n variables: WatchQueryOptions[\"variables\"]\n ) {\n const { lastWrite } = this;\n return !(\n lastWrite &&\n // If cache.evict has been called since the last time we wrote this\n // data into the cache, there's a chance writing this result into\n // the cache will repair what was evicted.\n lastWrite.dmCount === destructiveMethodCounts.get(this.cache) &&\n equal(variables, lastWrite.variables) &&\n equal(result.data, lastWrite.result.data)\n );\n }\n\n public markResult(\n result: FetchResult,\n document: DocumentNode,\n options: Pick<\n WatchQueryOptions,\n \"variables\" | \"fetchPolicy\" | \"errorPolicy\"\n >,\n cacheWriteBehavior: CacheWriteBehavior\n ) {\n const merger = new DeepMerger();\n const graphQLErrors =\n isNonEmptyArray(result.errors) ? result.errors.slice(0) : [];\n\n // Cancel the pending notify timeout (if it exists) to prevent extraneous network\n // requests. To allow future notify timeouts, diff and dirty are reset as well.\n this.reset();\n\n if (\"incremental\" in result && isNonEmptyArray(result.incremental)) {\n const mergedData = mergeIncrementalData(this.getDiff().result, result);\n result.data = mergedData;\n\n // Detect the first chunk of a deferred query and merge it with existing\n // cache data. This ensures a `cache-first` fetch policy that returns\n // partial cache data or a `cache-and-network` fetch policy that already\n // has full data in the cache does not complain when trying to merge the\n // initial deferred server data with existing cache data.\n } else if (\"hasNext\" in result && result.hasNext) {\n const diff = this.getDiff();\n result.data = merger.merge(diff.result, result.data);\n }\n\n this.graphQLErrors = graphQLErrors;\n\n if (options.fetchPolicy === \"no-cache\") {\n this.updateLastDiff(\n { result: result.data, complete: true },\n this.getDiffOptions(options.variables)\n );\n } else if (cacheWriteBehavior !== CacheWriteBehavior.FORBID) {\n if (shouldWriteResult(result, options.errorPolicy)) {\n // Using a transaction here so we have a chance to read the result\n // back from the cache before the watch callback fires as a result\n // of writeQuery, so we can store the new diff quietly and ignore\n // it when we receive it redundantly from the watch callback.\n this.cache.performTransaction((cache) => {\n if (this.shouldWrite(result, options.variables)) {\n cache.writeQuery({\n query: document,\n data: result.data as T,\n variables: options.variables,\n overwrite: cacheWriteBehavior === CacheWriteBehavior.OVERWRITE,\n });\n\n this.lastWrite = {\n result,\n variables: options.variables,\n dmCount: destructiveMethodCounts.get(this.cache),\n };\n } else {\n // If result is the same as the last result we received from\n // the network (and the variables match too), avoid writing\n // result into the cache again. The wisdom of skipping this\n // cache write is far from obvious, since any cache write\n // could be the one that puts the cache back into a desired\n // state, fixing corruption or missing data. However, if we\n // always write every network result into the cache, we enable\n // feuds between queries competing to update the same data in\n // incompatible ways, which can lead to an endless cycle of\n // cache broadcasts and useless network requests. As with any\n // feud, eventually one side must step back from the brink,\n // letting the other side(s) have the last word(s). There may\n // be other points where we could break this cycle, such as\n // silencing the broadcast for cache.writeQuery (not a good\n // idea, since it just delays the feud a bit) or somehow\n // avoiding the network request that just happened (also bad,\n // because the server could return useful new data). All\n // options considered, skipping this cache write seems to be\n // the least damaging place to break the cycle, because it\n // reflects the intuition that we recently wrote this exact\n // result into the cache, so the cache *should* already/still\n // contain this data. If some other query has clobbered that\n // data in the meantime, that's too bad, but there will be no\n // winners if every query blindly reverts to its own version\n // of the data. This approach also gives the network a chance\n // to return new data, which will be written into the cache as\n // usual, notifying only those queries that are directly\n // affected by the cache updates, as usual. In the future, an\n // even more sophisticated cache could perhaps prevent or\n // mitigate the clobbering somehow, but that would make this\n // particular cache write even less important, and thus\n // skipping it would be even safer than it is today.\n if (this.lastDiff && this.lastDiff.diff.complete) {\n // Reuse data from the last good (complete) diff that we\n // received, when possible.\n result.data = this.lastDiff.diff.result;\n return;\n }\n // If the previous this.diff was incomplete, fall through to\n // re-reading the latest data with cache.diff, below.\n }\n\n const diffOptions = this.getDiffOptions(options.variables);\n const diff = cache.diff(diffOptions);\n\n // In case the QueryManager stops this QueryInfo before its\n // results are delivered, it's important to avoid restarting the\n // cache watch when markResult is called. We also avoid updating\n // the watch if we are writing a result that doesn't match the current\n // variables to avoid race conditions from broadcasting the wrong\n // result.\n if (!this.stopped && equal(this.variables, options.variables)) {\n // Any time we're about to update this.diff, we need to make\n // sure we've started watching the cache.\n this.updateWatch(options.variables);\n }\n\n // If we're allowed to write to the cache, and we can read a\n // complete result from the cache, update result.data to be the\n // result from the cache, rather than the raw network result.\n // Set without setDiff to avoid triggering a notify call, since\n // we have other ways of notifying for this result.\n this.updateLastDiff(diff, diffOptions);\n if (diff.complete) {\n result.data = diff.result;\n }\n });\n } else {\n this.lastWrite = void 0;\n }\n }\n }\n\n public markReady() {\n this.networkError = null;\n return (this.networkStatus = NetworkStatus.ready);\n }\n\n public markError(error: ApolloError) {\n this.networkStatus = NetworkStatus.error;\n this.lastWrite = void 0;\n\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\nexport function shouldWriteResult(\n result: FetchResult,\n errorPolicy: ErrorPolicy = \"none\"\n) {\n const ignoreErrors = errorPolicy === \"ignore\" || errorPolicy === \"all\";\n let writeWithErrors = !graphQLResultHasError(result);\n if (!writeWithErrors && ignoreErrors && result.data) {\n writeWithErrors = true;\n }\n return writeWithErrors;\n}\n","import { invariant, newInvariantError } from \"../utilities/globals/index.js\";\n\nimport type { DocumentNode } from \"graphql\";\n// TODO(brian): A hack until this issue is resolved (https://github.com/graphql/graphql-js/issues/3356)\ntype OperationTypeNode = any;\nimport { equal } from \"@wry/equality\";\n\nimport type { ApolloLink, FetchResult } from \"../link/core/index.js\";\nimport { execute } from \"../link/core/index.js\";\nimport {\n defaultCacheSizes,\n hasDirectives,\n isExecutionPatchIncrementalResult,\n isExecutionPatchResult,\n removeDirectivesFromDocument,\n} from \"../utilities/index.js\";\nimport type { Cache, ApolloCache } from \"../cache/index.js\";\nimport { canonicalStringify } from \"../cache/index.js\";\n\nimport type {\n ObservableSubscription,\n ConcastSourcesArray,\n} from \"../utilities/index.js\";\nimport {\n getDefaultValues,\n getOperationDefinition,\n getOperationName,\n hasClientExports,\n graphQLResultHasError,\n getGraphQLErrorsFromResult,\n Observable,\n asyncMap,\n isNonEmptyArray,\n Concast,\n makeUniqueId,\n isDocumentNode,\n isNonNullObject,\n DocumentTransform,\n} from \"../utilities/index.js\";\nimport { mergeIncrementalData } from \"../utilities/common/incrementalResult.js\";\nimport {\n ApolloError,\n isApolloError,\n graphQLResultHasProtocolErrors,\n} from \"../errors/index.js\";\nimport type {\n QueryOptions,\n WatchQueryOptions,\n SubscriptionOptions,\n MutationOptions,\n ErrorPolicy,\n MutationFetchPolicy,\n} from \"./watchQueryOptions.js\";\nimport { ObservableQuery, logMissingFieldErrors } from \"./ObservableQuery.js\";\nimport { NetworkStatus, isNetworkRequestInFlight } from \"./networkStatus.js\";\nimport type {\n ApolloQueryResult,\n OperationVariables,\n MutationUpdaterFunction,\n OnQueryUpdated,\n InternalRefetchQueriesInclude,\n InternalRefetchQueriesOptions,\n InternalRefetchQueriesResult,\n InternalRefetchQueriesMap,\n DefaultContext,\n} from \"./types.js\";\nimport { LocalState } from \"./LocalState.js\";\n\nimport type { QueryStoreValue } from \"./QueryInfo.js\";\nimport {\n QueryInfo,\n shouldWriteResult,\n CacheWriteBehavior,\n} from \"./QueryInfo.js\";\nimport type { ApolloErrorOptions } from \"../errors/index.js\";\nimport { PROTOCOL_ERRORS_SYMBOL } from \"../errors/index.js\";\nimport { print } from \"../utilities/index.js\";\nimport type { IgnoreModifier } from \"../cache/core/types/common.js\";\nimport type { TODO } from \"../utilities/types/TODO.js\";\n\nconst { hasOwnProperty } = Object.prototype;\n\nconst IGNORE: IgnoreModifier = Object.create(null);\n\ninterface MutationStoreValue {\n mutation: DocumentNode;\n variables: Record;\n loading: boolean;\n error: Error | null;\n}\n\ntype UpdateQueries = MutationOptions[\"updateQueries\"];\n\ninterface TransformCacheEntry {\n hasClientExports: boolean;\n hasForcedResolvers: boolean;\n hasNonreactiveDirective: boolean;\n clientQuery: DocumentNode | null;\n serverQuery: DocumentNode | null;\n defaultVars: OperationVariables;\n asQuery: DocumentNode;\n}\n\nimport type { DefaultOptions } from \"./ApolloClient.js\";\nimport { Trie } from \"@wry/trie\";\nimport { AutoCleanedWeakCache, cacheSizes } from \"../utilities/index.js\";\n\nexport class QueryManager {\n public cache: ApolloCache;\n public link: ApolloLink;\n public defaultOptions: DefaultOptions;\n\n public readonly assumeImmutableResults: boolean;\n public readonly documentTransform: DocumentTransform;\n public readonly ssrMode: boolean;\n public readonly defaultContext: Partial;\n\n private queryDeduplication: boolean;\n private clientAwareness: Record = {};\n private localState: LocalState;\n\n private onBroadcast?: () => void;\n public mutationStore?: {\n [mutationId: string]: MutationStoreValue;\n };\n\n // All the queries that the QueryManager is currently managing (not\n // including mutations and subscriptions).\n private queries = new Map();\n\n // Maps from queryId strings to Promise rejection functions for\n // currently active queries and fetches.\n // Use protected instead of private field so\n // @apollo/experimental-nextjs-app-support can access type info.\n protected fetchCancelFns = new Map any>();\n\n constructor({\n cache,\n link,\n defaultOptions,\n documentTransform,\n queryDeduplication = false,\n onBroadcast,\n ssrMode = false,\n clientAwareness = {},\n localState,\n assumeImmutableResults = !!cache.assumeImmutableResults,\n defaultContext,\n }: {\n cache: ApolloCache;\n link: ApolloLink;\n defaultOptions?: DefaultOptions;\n documentTransform?: DocumentTransform;\n queryDeduplication?: boolean;\n onBroadcast?: () => void;\n ssrMode?: boolean;\n clientAwareness?: Record;\n localState?: LocalState;\n assumeImmutableResults?: boolean;\n defaultContext?: Partial;\n }) {\n const defaultDocumentTransform = new DocumentTransform(\n (document) => this.cache.transformDocument(document),\n // Allow the apollo cache to manage its own transform caches\n { cache: false }\n );\n\n this.cache = cache;\n this.link = link;\n this.defaultOptions = defaultOptions || Object.create(null);\n this.queryDeduplication = queryDeduplication;\n this.clientAwareness = clientAwareness;\n this.localState = localState || new LocalState({ cache });\n this.ssrMode = ssrMode;\n this.assumeImmutableResults = assumeImmutableResults;\n this.documentTransform =\n documentTransform ?\n defaultDocumentTransform\n .concat(documentTransform)\n // The custom document transform may add new fragment spreads or new\n // field selections, so we want to give the cache a chance to run\n // again. For example, the InMemoryCache adds __typename to field\n // selections and fragments from the fragment registry.\n .concat(defaultDocumentTransform)\n : defaultDocumentTransform;\n this.defaultContext = defaultContext || Object.create(null);\n\n if ((this.onBroadcast = onBroadcast)) {\n this.mutationStore = Object.create(null);\n }\n }\n\n /**\n * Call this method to terminate any active query processes, making it safe\n * to dispose of this QueryManager instance.\n */\n public stop() {\n this.queries.forEach((_info, queryId) => {\n this.stopQueryNoBroadcast(queryId);\n });\n\n this.cancelPendingFetches(\n newInvariantError(\"QueryManager stopped while query was in flight\")\n );\n }\n\n private cancelPendingFetches(error: Error) {\n this.fetchCancelFns.forEach((cancel) => cancel(error));\n this.fetchCancelFns.clear();\n }\n\n public async mutate<\n TData,\n TVariables extends OperationVariables,\n TContext extends Record,\n TCache extends ApolloCache,\n >({\n mutation,\n variables,\n optimisticResponse,\n updateQueries,\n refetchQueries = [],\n awaitRefetchQueries = false,\n update: updateWithProxyFn,\n onQueryUpdated,\n fetchPolicy = this.defaultOptions.mutate?.fetchPolicy || \"network-only\",\n errorPolicy = this.defaultOptions.mutate?.errorPolicy || \"none\",\n keepRootFields,\n context,\n }: MutationOptions): Promise<\n FetchResult\n > {\n invariant(\n mutation,\n \"mutation option is required. You must specify your GraphQL document in the mutation option.\"\n );\n\n invariant(\n fetchPolicy === \"network-only\" || fetchPolicy === \"no-cache\",\n \"Mutations support only 'network-only' or 'no-cache' fetchPolicy strings. The default `network-only` behavior automatically writes mutation results to the cache. Passing `no-cache` skips the cache write.\"\n );\n\n const mutationId = this.generateMutationId();\n\n mutation = this.cache.transformForLink(this.transform(mutation));\n const { hasClientExports } = this.getDocumentInfo(mutation);\n\n variables = this.getVariables(mutation, variables) as TVariables;\n if (hasClientExports) {\n variables = (await this.localState.addExportedVariables(\n mutation,\n variables,\n context\n )) as TVariables;\n }\n\n const mutationStoreValue =\n this.mutationStore &&\n (this.mutationStore[mutationId] = {\n mutation,\n variables,\n loading: true,\n error: null,\n } as MutationStoreValue);\n\n const isOptimistic =\n optimisticResponse &&\n this.markMutationOptimistic(\n optimisticResponse,\n {\n mutationId,\n document: mutation,\n variables,\n fetchPolicy,\n errorPolicy,\n context,\n updateQueries,\n update: updateWithProxyFn,\n keepRootFields,\n }\n );\n\n this.broadcastQueries();\n\n const self = this;\n\n return new Promise((resolve, reject) => {\n return asyncMap(\n self.getObservableFromLink(\n mutation,\n {\n ...context,\n optimisticResponse: isOptimistic ? optimisticResponse : void 0,\n },\n variables,\n false\n ),\n\n (result: FetchResult) => {\n if (graphQLResultHasError(result) && errorPolicy === \"none\") {\n throw new ApolloError({\n graphQLErrors: getGraphQLErrorsFromResult(result),\n });\n }\n\n if (mutationStoreValue) {\n mutationStoreValue.loading = false;\n mutationStoreValue.error = null;\n }\n\n const storeResult: typeof result = { ...result };\n\n if (typeof refetchQueries === \"function\") {\n refetchQueries = refetchQueries(storeResult);\n }\n\n if (errorPolicy === \"ignore\" && graphQLResultHasError(storeResult)) {\n delete storeResult.errors;\n }\n\n return self.markMutationResult({\n mutationId,\n result: storeResult,\n document: mutation,\n variables,\n fetchPolicy,\n errorPolicy,\n context,\n update: updateWithProxyFn,\n updateQueries,\n awaitRefetchQueries,\n refetchQueries,\n removeOptimistic: isOptimistic ? mutationId : void 0,\n onQueryUpdated,\n keepRootFields,\n });\n }\n ).subscribe({\n next(storeResult) {\n self.broadcastQueries();\n\n // Since mutations might receive multiple payloads from the\n // ApolloLink chain (e.g. when used with @defer),\n // we resolve with a SingleExecutionResult or after the final\n // ExecutionPatchResult has arrived and we have assembled the\n // multipart response into a single result.\n if (!(\"hasNext\" in storeResult) || storeResult.hasNext === false) {\n resolve(storeResult);\n }\n },\n\n error(err: Error) {\n if (mutationStoreValue) {\n mutationStoreValue.loading = false;\n mutationStoreValue.error = err;\n }\n\n if (isOptimistic) {\n self.cache.removeOptimistic(mutationId);\n }\n\n self.broadcastQueries();\n\n reject(\n err instanceof ApolloError ? err : (\n new ApolloError({\n networkError: err,\n })\n )\n );\n },\n });\n });\n }\n\n public markMutationResult<\n TData,\n TVariables,\n TContext,\n TCache extends ApolloCache,\n >(\n mutation: {\n mutationId: string;\n result: FetchResult;\n document: DocumentNode;\n variables?: TVariables;\n fetchPolicy?: MutationFetchPolicy;\n errorPolicy: ErrorPolicy;\n context?: TContext;\n updateQueries: UpdateQueries;\n update?: MutationUpdaterFunction;\n awaitRefetchQueries?: boolean;\n refetchQueries?: InternalRefetchQueriesInclude;\n removeOptimistic?: string;\n onQueryUpdated?: OnQueryUpdated;\n keepRootFields?: boolean;\n },\n cache = this.cache\n ): Promise> {\n let { result } = mutation;\n const cacheWrites: Cache.WriteOptions[] = [];\n const skipCache = mutation.fetchPolicy === \"no-cache\";\n\n if (!skipCache && shouldWriteResult(result, mutation.errorPolicy)) {\n if (!isExecutionPatchIncrementalResult(result)) {\n cacheWrites.push({\n result: result.data,\n dataId: \"ROOT_MUTATION\",\n query: mutation.document,\n variables: mutation.variables,\n });\n }\n if (\n isExecutionPatchIncrementalResult(result) &&\n isNonEmptyArray(result.incremental)\n ) {\n const diff = cache.diff({\n id: \"ROOT_MUTATION\",\n // The cache complains if passed a mutation where it expects a\n // query, so we transform mutations and subscriptions to queries\n // (only once, thanks to this.transformCache).\n query: this.getDocumentInfo(mutation.document).asQuery,\n variables: mutation.variables,\n optimistic: false,\n returnPartialData: true,\n });\n let mergedData;\n if (diff.result) {\n mergedData = mergeIncrementalData(diff.result, result);\n }\n if (typeof mergedData !== \"undefined\") {\n // cast the ExecutionPatchResult to FetchResult here since\n // ExecutionPatchResult never has `data` when returned from the server\n (result as FetchResult).data = mergedData;\n cacheWrites.push({\n result: mergedData,\n dataId: \"ROOT_MUTATION\",\n query: mutation.document,\n variables: mutation.variables,\n });\n }\n }\n\n const { updateQueries } = mutation;\n if (updateQueries) {\n this.queries.forEach(({ observableQuery }, queryId) => {\n const queryName = observableQuery && observableQuery.queryName;\n if (!queryName || !hasOwnProperty.call(updateQueries, queryName)) {\n return;\n }\n const updater = updateQueries[queryName];\n const { document, variables } = this.queries.get(queryId)!;\n\n // Read the current query result from the store.\n const { result: currentQueryResult, complete } = cache.diff({\n query: document!,\n variables,\n returnPartialData: true,\n optimistic: false,\n });\n\n if (complete && currentQueryResult) {\n // Run our reducer using the current query result and the mutation result.\n const nextQueryResult = updater(currentQueryResult, {\n mutationResult: result,\n queryName: (document && getOperationName(document)) || void 0,\n queryVariables: variables!,\n });\n\n // Write the modified result back into the store if we got a new result.\n if (nextQueryResult) {\n cacheWrites.push({\n result: nextQueryResult,\n dataId: \"ROOT_QUERY\",\n query: document!,\n variables,\n });\n }\n }\n });\n }\n }\n\n if (\n cacheWrites.length > 0 ||\n (mutation.refetchQueries || \"\").length > 0 ||\n mutation.update ||\n mutation.onQueryUpdated ||\n mutation.removeOptimistic\n ) {\n const results: any[] = [];\n\n this.refetchQueries({\n updateCache: (cache) => {\n if (!skipCache) {\n cacheWrites.forEach((write) => cache.write(write));\n }\n\n // If the mutation has some writes associated with it then we need to\n // apply those writes to the store by running this reducer again with\n // a write action.\n const { update } = mutation;\n // Determine whether result is a SingleExecutionResult,\n // or the final ExecutionPatchResult.\n const isFinalResult =\n !isExecutionPatchResult(result) ||\n (isExecutionPatchIncrementalResult(result) && !result.hasNext);\n\n if (update) {\n if (!skipCache) {\n // Re-read the ROOT_MUTATION data we just wrote into the cache\n // (the first cache.write call in the cacheWrites.forEach loop\n // above), so field read functions have a chance to run for\n // fields within mutation result objects.\n const diff = cache.diff({\n id: \"ROOT_MUTATION\",\n // The cache complains if passed a mutation where it expects a\n // query, so we transform mutations and subscriptions to queries\n // (only once, thanks to this.transformCache).\n query: this.getDocumentInfo(mutation.document).asQuery,\n variables: mutation.variables,\n optimistic: false,\n returnPartialData: true,\n });\n\n if (diff.complete) {\n result = { ...(result as FetchResult), data: diff.result };\n if (\"incremental\" in result) {\n delete result.incremental;\n }\n if (\"hasNext\" in result) {\n delete result.hasNext;\n }\n }\n }\n\n // If we've received the whole response,\n // either a SingleExecutionResult or the final ExecutionPatchResult,\n // call the update function.\n if (isFinalResult) {\n update(cache as TCache, result, {\n context: mutation.context,\n variables: mutation.variables,\n });\n }\n }\n\n // TODO Do this with cache.evict({ id: 'ROOT_MUTATION' }) but make it\n // shallow to allow rolling back optimistic evictions.\n if (!skipCache && !mutation.keepRootFields && isFinalResult) {\n cache.modify({\n id: \"ROOT_MUTATION\",\n fields(value, { fieldName, DELETE }) {\n return fieldName === \"__typename\" ? value : DELETE;\n },\n });\n }\n },\n\n include: mutation.refetchQueries,\n\n // Write the final mutation.result to the root layer of the cache.\n optimistic: false,\n\n // Remove the corresponding optimistic layer at the same time as we\n // write the final non-optimistic result.\n removeOptimistic: mutation.removeOptimistic,\n\n // Let the caller of client.mutate optionally determine the refetching\n // behavior for watched queries after the mutation.update function runs.\n // If no onQueryUpdated function was provided for this mutation, pass\n // null instead of undefined to disable the default refetching behavior.\n onQueryUpdated: mutation.onQueryUpdated || null,\n }).forEach((result) => results.push(result));\n\n if (mutation.awaitRefetchQueries || mutation.onQueryUpdated) {\n // Returning a promise here makes the mutation await that promise, so we\n // include results in that promise's work if awaitRefetchQueries or an\n // onQueryUpdated function was specified.\n return Promise.all(results).then(() => result);\n }\n }\n\n return Promise.resolve(result);\n }\n\n public markMutationOptimistic<\n TData,\n TVariables,\n TContext,\n TCache extends ApolloCache,\n >(\n optimisticResponse: any,\n mutation: {\n mutationId: string;\n document: DocumentNode;\n variables?: TVariables;\n fetchPolicy?: MutationFetchPolicy;\n errorPolicy: ErrorPolicy;\n context?: TContext;\n updateQueries: UpdateQueries;\n update?: MutationUpdaterFunction;\n keepRootFields?: boolean;\n }\n ) {\n const data =\n typeof optimisticResponse === \"function\" ?\n optimisticResponse(mutation.variables, { IGNORE })\n : optimisticResponse;\n\n if (data === IGNORE) {\n return false;\n }\n\n this.cache.recordOptimisticTransaction((cache) => {\n try {\n this.markMutationResult(\n {\n ...mutation,\n result: { data },\n },\n cache\n );\n } catch (error) {\n invariant.error(error);\n }\n }, mutation.mutationId);\n\n return true;\n }\n\n public fetchQuery(\n queryId: string,\n options: WatchQueryOptions,\n networkStatus?: NetworkStatus\n ): Promise> {\n return this.fetchConcastWithInfo(queryId, options, networkStatus).concast\n .promise as TODO;\n }\n\n public getQueryStore() {\n const store: Record = Object.create(null);\n this.queries.forEach((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 public resetErrors(queryId: string) {\n const queryInfo = this.queries.get(queryId);\n if (queryInfo) {\n queryInfo.networkError = undefined;\n queryInfo.graphQLErrors = [];\n }\n }\n\n public transform(document: DocumentNode) {\n return this.documentTransform.transformDocument(document);\n }\n\n private transformCache = new AutoCleanedWeakCache<\n DocumentNode,\n TransformCacheEntry\n >(\n cacheSizes[\"queryManager.getDocumentInfo\"] ||\n defaultCacheSizes[\"queryManager.getDocumentInfo\"]\n );\n\n public getDocumentInfo(document: DocumentNode) {\n const { transformCache } = this;\n\n if (!transformCache.has(document)) {\n const cacheEntry: TransformCacheEntry = {\n // TODO These three calls (hasClientExports, shouldForceResolvers, and\n // usesNonreactiveDirective) are performing independent full traversals\n // of the transformed document. We should consider merging these\n // traversals into a single pass in the future, though the work is\n // cached after the first time.\n hasClientExports: hasClientExports(document),\n hasForcedResolvers: this.localState.shouldForceResolvers(document),\n hasNonreactiveDirective: hasDirectives([\"nonreactive\"], document),\n clientQuery: this.localState.clientQuery(document),\n serverQuery: removeDirectivesFromDocument(\n [\n { name: \"client\", remove: true },\n { name: \"connection\" },\n { name: \"nonreactive\" },\n ],\n document\n ),\n defaultVars: getDefaultValues(\n getOperationDefinition(document)\n ) as OperationVariables,\n // Transform any mutation or subscription operations to query operations\n // so we can read/write them from/to the cache.\n asQuery: {\n ...document,\n definitions: document.definitions.map((def) => {\n if (\n def.kind === \"OperationDefinition\" &&\n def.operation !== \"query\"\n ) {\n return { ...def, operation: \"query\" as OperationTypeNode };\n }\n return def;\n }),\n },\n };\n\n transformCache.set(document, cacheEntry);\n }\n\n return transformCache.get(document)!;\n }\n\n private getVariables(\n document: DocumentNode,\n variables?: TVariables\n ): OperationVariables {\n return {\n ...this.getDocumentInfo(document).defaultVars,\n ...variables,\n };\n }\n\n public watchQuery<\n T,\n TVariables extends OperationVariables = OperationVariables,\n >(options: WatchQueryOptions): ObservableQuery {\n const query = this.transform(options.query);\n\n // assign variable default values if supplied\n // NOTE: We don't modify options.query here with the transformed query to\n // ensure observable.options.query is set to the raw untransformed query.\n options = {\n ...options,\n variables: this.getVariables(query, options.variables) as TVariables,\n };\n\n if (typeof options.notifyOnNetworkStatusChange === \"undefined\") {\n options.notifyOnNetworkStatusChange = false;\n }\n\n const queryInfo = new QueryInfo(this);\n const observable = new ObservableQuery({\n queryManager: this,\n queryInfo,\n options,\n });\n observable[\"lastQuery\"] = query;\n\n this.queries.set(observable.queryId, queryInfo);\n\n // We give queryInfo the transformed query to ensure the first cache diff\n // uses the transformed query instead of the raw query\n queryInfo.init({\n document: query,\n observableQuery: observable,\n variables: observable.variables,\n });\n\n return observable;\n }\n\n public query(\n options: QueryOptions,\n queryId = this.generateQueryId()\n ): Promise> {\n invariant(\n options.query,\n \"query option is required. You must specify your GraphQL document \" +\n \"in the query option.\"\n );\n\n invariant(\n options.query.kind === \"Document\",\n 'You must wrap the query string in a \"gql\" tag.'\n );\n\n invariant(\n !(options as any).returnPartialData,\n \"returnPartialData option only supported on watchQuery.\"\n );\n\n invariant(\n !(options as any).pollInterval,\n \"pollInterval option only supported on watchQuery.\"\n );\n\n return this.fetchQuery(queryId, {\n ...options,\n query: this.transform(options.query),\n }).finally(() => this.stopQuery(queryId));\n }\n\n private queryIdCounter = 1;\n public generateQueryId() {\n return String(this.queryIdCounter++);\n }\n\n private requestIdCounter = 1;\n public generateRequestId() {\n return this.requestIdCounter++;\n }\n\n private mutationIdCounter = 1;\n public generateMutationId() {\n return String(this.mutationIdCounter++);\n }\n\n public stopQueryInStore(queryId: string) {\n this.stopQueryInStoreNoBroadcast(queryId);\n this.broadcastQueries();\n }\n\n private stopQueryInStoreNoBroadcast(queryId: string) {\n const queryInfo = this.queries.get(queryId);\n if (queryInfo) queryInfo.stop();\n }\n\n public clearStore(\n options: Cache.ResetOptions = {\n discardWatches: true,\n }\n ): Promise {\n // Before we have sent the reset action to the store, we can no longer\n // rely on the results returned by in-flight requests since these may\n // depend on values that previously existed in the data portion of the\n // store. So, we cancel the promises and observers that we have issued\n // so far and not yet resolved (in the case of queries).\n this.cancelPendingFetches(\n newInvariantError(\n \"Store reset while query was in flight (not completed in link chain)\"\n )\n );\n\n this.queries.forEach((queryInfo) => {\n if (queryInfo.observableQuery) {\n // Set loading to true so listeners don't trigger unless they want\n // results with partial data.\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 // begin removing data from the store\n return this.cache.reset(options);\n }\n\n public getObservableQueries(\n include: InternalRefetchQueriesInclude = \"active\"\n ) {\n const queries = new Map>();\n const queryNamesAndDocs = new Map();\n const legacyQueryOptions = new Set();\n\n if (Array.isArray(include)) {\n include.forEach((desc) => {\n if (typeof desc === \"string\") {\n queryNamesAndDocs.set(desc, false);\n } else if (isDocumentNode(desc)) {\n queryNamesAndDocs.set(this.transform(desc), false);\n } else if (isNonNullObject(desc) && desc.query) {\n legacyQueryOptions.add(desc);\n }\n });\n }\n\n this.queries.forEach(({ observableQuery: oq, document }, queryId) => {\n if (oq) {\n if (include === \"all\") {\n queries.set(queryId, oq);\n return;\n }\n\n const {\n queryName,\n options: { fetchPolicy },\n } = oq;\n\n if (\n fetchPolicy === \"standby\" ||\n (include === \"active\" && !oq.hasObservers())\n ) {\n return;\n }\n\n if (\n include === \"active\" ||\n (queryName && queryNamesAndDocs.has(queryName)) ||\n (document && queryNamesAndDocs.has(document))\n ) {\n queries.set(queryId, oq);\n if (queryName) queryNamesAndDocs.set(queryName, true);\n if (document) queryNamesAndDocs.set(document, true);\n }\n }\n });\n\n if (legacyQueryOptions.size) {\n legacyQueryOptions.forEach((options: QueryOptions) => {\n // We will be issuing a fresh network request for this query, so we\n // pre-allocate a new query ID here, using a special prefix to enable\n // cleaning up these temporary queries later, after fetching.\n const queryId = makeUniqueId(\"legacyOneTimeQuery\");\n const queryInfo = this.getQuery(queryId).init({\n document: options.query,\n variables: options.variables,\n });\n const oq = new ObservableQuery({\n queryManager: this,\n queryInfo,\n options: {\n ...options,\n fetchPolicy: \"network-only\",\n },\n });\n invariant(oq.queryId === queryId);\n queryInfo.setObservableQuery(oq);\n queries.set(queryId, oq);\n });\n }\n\n if (__DEV__ && queryNamesAndDocs.size) {\n queryNamesAndDocs.forEach((included, nameOrDoc) => {\n if (!included) {\n invariant.warn(\n typeof nameOrDoc === \"string\" ?\n `Unknown query named \"%s\" requested in refetchQueries options.include array`\n : `Unknown query %o requested in refetchQueries options.include array`,\n nameOrDoc\n );\n }\n });\n }\n\n return queries;\n }\n\n public reFetchObservableQueries(\n includeStandby: boolean = false\n ): Promise[]> {\n const observableQueryPromises: Promise>[] = [];\n\n this.getObservableQueries(includeStandby ? \"all\" : \"active\").forEach(\n (observableQuery, queryId) => {\n const { fetchPolicy } = observableQuery.options;\n observableQuery.resetLastResults();\n if (\n includeStandby ||\n (fetchPolicy !== \"standby\" && fetchPolicy !== \"cache-only\")\n ) {\n observableQueryPromises.push(observableQuery.refetch());\n }\n this.getQuery(queryId).setDiff(null);\n }\n );\n\n this.broadcastQueries();\n\n return Promise.all(observableQueryPromises);\n }\n\n public setObservableQuery(observableQuery: ObservableQuery) {\n this.getQuery(observableQuery.queryId).setObservableQuery(observableQuery);\n }\n\n public startGraphQLSubscription({\n query,\n fetchPolicy,\n errorPolicy = \"none\",\n variables,\n context = {},\n }: SubscriptionOptions): Observable> {\n query = this.transform(query);\n variables = this.getVariables(query, variables);\n\n const makeObservable = (variables: OperationVariables) =>\n this.getObservableFromLink(query, context, variables).map((result) => {\n if (fetchPolicy !== \"no-cache\") {\n // the subscription interface should handle not sending us results we no longer subscribe to.\n // XXX I don't think we ever send in an object with errors, but we might in the future...\n if (shouldWriteResult(result, errorPolicy)) {\n this.cache.write({\n query,\n result: result.data,\n dataId: \"ROOT_SUBSCRIPTION\",\n variables: variables,\n });\n }\n\n this.broadcastQueries();\n }\n\n const hasErrors = graphQLResultHasError(result);\n const hasProtocolErrors = graphQLResultHasProtocolErrors(result);\n if (hasErrors || hasProtocolErrors) {\n const errors: ApolloErrorOptions = {};\n if (hasErrors) {\n errors.graphQLErrors = result.errors;\n }\n if (hasProtocolErrors) {\n errors.protocolErrors = result.extensions[PROTOCOL_ERRORS_SYMBOL];\n }\n\n // `errorPolicy` is a mechanism for handling GraphQL errors, according\n // to our documentation, so we throw protocol errors regardless of the\n // set error policy.\n if (errorPolicy === \"none\" || hasProtocolErrors) {\n throw new ApolloError(errors);\n }\n }\n\n if (errorPolicy === \"ignore\") {\n delete result.errors;\n }\n\n return result;\n });\n\n if (this.getDocumentInfo(query).hasClientExports) {\n const observablePromise = this.localState\n .addExportedVariables(query, variables, context)\n .then(makeObservable);\n\n return new Observable>((observer) => {\n let sub: ObservableSubscription | null = null;\n observablePromise.then(\n (observable) => (sub = observable.subscribe(observer)),\n observer.error\n );\n return () => sub && sub.unsubscribe();\n });\n }\n\n return makeObservable(variables);\n }\n\n public stopQuery(queryId: string) {\n this.stopQueryNoBroadcast(queryId);\n this.broadcastQueries();\n }\n\n private stopQueryNoBroadcast(queryId: string) {\n this.stopQueryInStoreNoBroadcast(queryId);\n this.removeQuery(queryId);\n }\n\n public removeQuery(queryId: string) {\n // teardown all links\n // Both `QueryManager.fetchRequest` and `QueryManager.query` create separate promises\n // that each add their reject functions to fetchCancelFns.\n // A query created with `QueryManager.query()` could trigger a `QueryManager.fetchRequest`.\n // The same queryId could have two rejection fns for two promises\n this.fetchCancelFns.delete(queryId);\n if (this.queries.has(queryId)) {\n this.getQuery(queryId).stop();\n this.queries.delete(queryId);\n }\n }\n\n public broadcastQueries() {\n if (this.onBroadcast) this.onBroadcast();\n this.queries.forEach((info) => info.notify());\n }\n\n public getLocalState(): LocalState {\n return this.localState;\n }\n\n // Use protected instead of private field so\n // @apollo/experimental-nextjs-app-support can access type info.\n protected inFlightLinkObservables = new Trie<{\n observable?: Observable>;\n }>(false);\n\n private getObservableFromLink(\n query: DocumentNode,\n context: any,\n variables?: OperationVariables,\n // Prefer context.queryDeduplication if specified.\n deduplication: boolean = context?.queryDeduplication ??\n this.queryDeduplication\n ): Observable> {\n let observable: Observable> | undefined;\n\n const { serverQuery, clientQuery } = this.getDocumentInfo(query);\n if (serverQuery) {\n const { inFlightLinkObservables, link } = this;\n\n const operation = {\n query: serverQuery,\n variables,\n operationName: getOperationName(serverQuery) || void 0,\n context: this.prepareContext({\n ...context,\n forceFetch: !deduplication,\n }),\n };\n\n context = operation.context;\n\n if (deduplication) {\n const printedServerQuery = print(serverQuery);\n const varJson = canonicalStringify(variables);\n\n const entry = inFlightLinkObservables.lookup(\n printedServerQuery,\n varJson\n );\n\n observable = entry.observable;\n if (!observable) {\n const concast = new Concast([\n execute(link, operation) as Observable>,\n ]);\n observable = entry.observable = concast;\n\n concast.beforeNext(() => {\n inFlightLinkObservables.remove(printedServerQuery, varJson);\n });\n }\n } else {\n observable = new Concast([\n execute(link, operation) as Observable>,\n ]);\n }\n } else {\n observable = new Concast([Observable.of({ data: {} } as FetchResult)]);\n context = this.prepareContext(context);\n }\n\n if (clientQuery) {\n observable = asyncMap(observable, (result) => {\n return this.localState.runResolvers({\n document: clientQuery,\n remoteResult: result,\n context,\n variables,\n });\n });\n }\n\n return observable;\n }\n\n private getResultsFromLink(\n queryInfo: QueryInfo,\n cacheWriteBehavior: CacheWriteBehavior,\n options: Pick<\n WatchQueryOptions,\n \"query\" | \"variables\" | \"context\" | \"fetchPolicy\" | \"errorPolicy\"\n >\n ): Observable> {\n const requestId = (queryInfo.lastRequestId = this.generateRequestId());\n\n // Performing transformForLink here gives this.cache a chance to fill in\n // missing fragment definitions (for example) before sending this document\n // through the link chain.\n const linkDocument = this.cache.transformForLink(options.query);\n\n return asyncMap(\n this.getObservableFromLink(\n linkDocument,\n options.context,\n options.variables\n ),\n\n (result) => {\n const graphQLErrors = getGraphQLErrorsFromResult(result);\n const hasErrors = graphQLErrors.length > 0;\n\n // If we interrupted this request by calling getResultsFromLink again\n // with the same QueryInfo object, we ignore the old results.\n if (requestId >= queryInfo.lastRequestId) {\n if (hasErrors && options.errorPolicy === \"none\") {\n // Throwing here effectively calls observer.error.\n throw queryInfo.markError(\n new ApolloError({\n graphQLErrors,\n })\n );\n }\n // Use linkDocument rather than queryInfo.document so the\n // operation/fragments used to write the result are the same as the\n // ones used to obtain it from the link.\n queryInfo.markResult(\n result,\n linkDocument,\n options,\n cacheWriteBehavior\n );\n queryInfo.markReady();\n }\n\n const aqr: ApolloQueryResult = {\n data: result.data,\n loading: false,\n networkStatus: NetworkStatus.ready,\n };\n\n if (hasErrors && options.errorPolicy !== \"ignore\") {\n aqr.errors = graphQLErrors;\n aqr.networkStatus = NetworkStatus.error;\n }\n\n return aqr;\n },\n\n (networkError) => {\n const error =\n isApolloError(networkError) ? networkError : (\n new ApolloError({ networkError })\n );\n\n // Avoid storing errors from older interrupted queries.\n if (requestId >= queryInfo.lastRequestId) {\n queryInfo.markError(error);\n }\n\n throw error;\n }\n );\n }\n\n private fetchConcastWithInfo(\n queryId: string,\n options: WatchQueryOptions,\n // The initial networkStatus for this fetch, most often\n // NetworkStatus.loading, but also possibly fetchMore, poll, refetch,\n // or setVariables.\n networkStatus = NetworkStatus.loading,\n query = options.query\n ): ConcastAndInfo {\n const variables = this.getVariables(query, options.variables) as TVars;\n const queryInfo = this.getQuery(queryId);\n\n const defaults = this.defaultOptions.watchQuery;\n let {\n fetchPolicy = (defaults && defaults.fetchPolicy) || \"cache-first\",\n errorPolicy = (defaults && defaults.errorPolicy) || \"none\",\n returnPartialData = false,\n notifyOnNetworkStatusChange = false,\n context = {},\n } = options;\n\n const normalized = Object.assign({}, options, {\n query,\n variables,\n fetchPolicy,\n errorPolicy,\n returnPartialData,\n notifyOnNetworkStatusChange,\n context,\n });\n\n const fromVariables = (variables: TVars) => {\n // Since normalized is always a fresh copy of options, it's safe to\n // modify its properties here, rather than creating yet another new\n // WatchQueryOptions object.\n normalized.variables = variables;\n\n const sourcesWithInfo = this.fetchQueryByPolicy(\n queryInfo,\n normalized,\n networkStatus\n );\n\n if (\n // If we're in standby, postpone advancing options.fetchPolicy using\n // applyNextFetchPolicy.\n normalized.fetchPolicy !== \"standby\" &&\n // The \"standby\" policy currently returns [] from fetchQueryByPolicy, so\n // this is another way to detect when nothing was done/fetched.\n sourcesWithInfo.sources.length > 0 &&\n queryInfo.observableQuery\n ) {\n queryInfo.observableQuery[\"applyNextFetchPolicy\"](\n \"after-fetch\",\n options\n );\n }\n\n return sourcesWithInfo;\n };\n\n // This cancel function needs to be set before the concast is created,\n // in case concast creation synchronously cancels the request.\n const cleanupCancelFn = () => this.fetchCancelFns.delete(queryId);\n this.fetchCancelFns.set(queryId, (reason) => {\n cleanupCancelFn();\n // This delay ensures the concast variable has been initialized.\n setTimeout(() => concast.cancel(reason));\n });\n\n let concast: Concast>,\n containsDataFromLink: boolean;\n // If the query has @export(as: ...) directives, then we need to\n // process those directives asynchronously. When there are no\n // @export directives (the common case), we deliberately avoid\n // wrapping the result of this.fetchQueryByPolicy in a Promise,\n // since the timing of result delivery is (unfortunately) important\n // for backwards compatibility. TODO This code could be simpler if\n // we deprecated and removed LocalState.\n if (this.getDocumentInfo(normalized.query).hasClientExports) {\n concast = new Concast(\n this.localState\n .addExportedVariables(\n normalized.query,\n normalized.variables,\n normalized.context\n )\n .then(fromVariables)\n .then((sourcesWithInfo) => sourcesWithInfo.sources)\n );\n // there is just no way we can synchronously get the *right* value here,\n // so we will assume `true`, which is the behaviour before the bug fix in\n // #10597. This means that bug is not fixed in that case, and is probably\n // un-fixable with reasonable effort for the edge case of @export as\n // directives.\n containsDataFromLink = true;\n } else {\n const sourcesWithInfo = fromVariables(normalized.variables);\n containsDataFromLink = sourcesWithInfo.fromLink;\n concast = new Concast(sourcesWithInfo.sources);\n }\n\n concast.promise.then(cleanupCancelFn, cleanupCancelFn);\n\n return {\n concast,\n fromLink: containsDataFromLink,\n };\n }\n\n public refetchQueries({\n updateCache,\n include,\n optimistic = false,\n removeOptimistic = optimistic ? makeUniqueId(\"refetchQueries\") : void 0,\n onQueryUpdated,\n }: InternalRefetchQueriesOptions<\n ApolloCache,\n TResult\n >): InternalRefetchQueriesMap {\n const includedQueriesById = new Map<\n string,\n {\n oq: ObservableQuery;\n lastDiff?: Cache.DiffResult;\n diff?: Cache.DiffResult;\n }\n >();\n\n if (include) {\n this.getObservableQueries(include).forEach((oq, queryId) => {\n includedQueriesById.set(queryId, {\n oq,\n lastDiff: this.getQuery(queryId).getDiff(),\n });\n });\n }\n\n const results: InternalRefetchQueriesMap = new Map();\n\n if (updateCache) {\n this.cache.batch({\n update: updateCache,\n\n // Since you can perform any combination of cache reads and/or writes in\n // the cache.batch update function, its optimistic option can be either\n // a boolean or a string, representing three distinct modes of\n // operation:\n //\n // * false: read/write only the root layer\n // * true: read/write the topmost layer\n // * string: read/write a fresh optimistic layer with that ID string\n //\n // When typeof optimistic === \"string\", a new optimistic layer will be\n // temporarily created within cache.batch with that string as its ID. If\n // we then pass that same string as the removeOptimistic option, we can\n // make cache.batch immediately remove the optimistic layer after\n // running the updateCache function, triggering only one broadcast.\n //\n // However, the refetchQueries method accepts only true or false for its\n // optimistic option (not string). We interpret true to mean a temporary\n // optimistic layer should be created, to allow efficiently rolling back\n // the effect of the updateCache function, which involves passing a\n // string instead of true as the optimistic option to cache.batch, when\n // refetchQueries receives optimistic: true.\n //\n // In other words, we are deliberately not supporting the use case of\n // writing to an *existing* optimistic layer (using the refetchQueries\n // updateCache function), since that would potentially interfere with\n // other optimistic updates in progress. Instead, you can read/write\n // only the root layer by passing optimistic: false to refetchQueries,\n // or you can read/write a brand new optimistic layer that will be\n // automatically removed by passing optimistic: true.\n optimistic: (optimistic && removeOptimistic) || false,\n\n // The removeOptimistic option can also be provided by itself, even if\n // optimistic === false, to remove some previously-added optimistic\n // layer safely and efficiently, like we do in markMutationResult.\n //\n // If an explicit removeOptimistic string is provided with optimistic:\n // true, the removeOptimistic string will determine the ID of the\n // temporary optimistic layer, in case that ever matters.\n removeOptimistic,\n\n onWatchUpdated(watch, diff, lastDiff) {\n const oq =\n watch.watcher instanceof QueryInfo && watch.watcher.observableQuery;\n\n if (oq) {\n if (onQueryUpdated) {\n // Since we're about to handle this query now, remove it from\n // includedQueriesById, in case it was added earlier because of\n // options.include.\n includedQueriesById.delete(oq.queryId);\n\n let result: TResult | boolean | Promise> =\n onQueryUpdated(oq, diff, lastDiff);\n\n if (result === true) {\n // The onQueryUpdated function requested the default refetching\n // behavior by returning true.\n result = oq.refetch();\n }\n\n // Record the result in the results Map, as long as onQueryUpdated\n // did not return false to skip/ignore this result.\n if (result !== false) {\n results.set(\n oq,\n result as InternalRefetchQueriesResult\n );\n }\n\n // Allow the default cache broadcast to happen, except when\n // onQueryUpdated returns false.\n return result;\n }\n\n if (onQueryUpdated !== null) {\n // If we don't have an onQueryUpdated function, and onQueryUpdated\n // was not disabled by passing null, make sure this query is\n // \"included\" like any other options.include-specified query.\n includedQueriesById.set(oq.queryId, { oq, lastDiff, diff });\n }\n }\n },\n });\n }\n\n if (includedQueriesById.size) {\n includedQueriesById.forEach(({ oq, lastDiff, diff }, queryId) => {\n let result:\n | TResult\n | boolean\n | Promise>\n | undefined;\n\n // If onQueryUpdated is provided, we want to use it for all included\n // queries, even the QueryOptions ones.\n if (onQueryUpdated) {\n if (!diff) {\n const info = oq[\"queryInfo\"];\n info.reset(); // Force info.getDiff() to read from cache.\n diff = info.getDiff();\n }\n result = onQueryUpdated(oq, diff, lastDiff);\n }\n\n // Otherwise, we fall back to refetching.\n if (!onQueryUpdated || result === true) {\n result = oq.refetch();\n }\n\n if (result !== false) {\n results.set(oq, result as InternalRefetchQueriesResult);\n }\n\n if (queryId.indexOf(\"legacyOneTimeQuery\") >= 0) {\n this.stopQueryNoBroadcast(queryId);\n }\n });\n }\n\n if (removeOptimistic) {\n // In case no updateCache callback was provided (so cache.batch was not\n // called above, and thus did not already remove the optimistic layer),\n // remove it here. Since this is a no-op when the layer has already been\n // removed, we do it even if we called cache.batch above, since it's\n // possible this.cache is an instance of some ApolloCache subclass other\n // than InMemoryCache, and does not fully support the removeOptimistic\n // option for cache.batch.\n this.cache.removeOptimistic(removeOptimistic);\n }\n\n return results;\n }\n\n private fetchQueryByPolicy(\n queryInfo: QueryInfo,\n {\n query,\n variables,\n fetchPolicy,\n refetchWritePolicy,\n errorPolicy,\n returnPartialData,\n context,\n notifyOnNetworkStatusChange,\n }: WatchQueryOptions,\n // The initial networkStatus for this fetch, most often\n // NetworkStatus.loading, but also possibly fetchMore, poll, refetch,\n // or setVariables.\n networkStatus: NetworkStatus\n ): SourcesAndInfo {\n const oldNetworkStatus = queryInfo.networkStatus;\n\n queryInfo.init({\n document: query,\n variables,\n networkStatus,\n });\n\n const readCache = () => queryInfo.getDiff();\n\n const resultsFromCache = (\n diff: Cache.DiffResult,\n networkStatus = queryInfo.networkStatus || NetworkStatus.loading\n ) => {\n const data = diff.result;\n\n if (__DEV__ && !returnPartialData && !equal(data, {})) {\n logMissingFieldErrors(diff.missing);\n }\n\n const fromData = (data: TData | undefined) =>\n Observable.of({\n data,\n loading: isNetworkRequestInFlight(networkStatus),\n networkStatus,\n ...(diff.complete ? null : { partial: true }),\n } as ApolloQueryResult);\n\n if (data && this.getDocumentInfo(query).hasForcedResolvers) {\n return this.localState\n .runResolvers({\n document: query,\n remoteResult: { data },\n context,\n variables,\n onlyRunForcedResolvers: true,\n })\n .then((resolved) => fromData(resolved.data || void 0));\n }\n\n // Resolves https://github.com/apollographql/apollo-client/issues/10317.\n // If errorPolicy is 'none' and notifyOnNetworkStatusChange is true,\n // data was incorrectly returned from the cache on refetch:\n // if diff.missing exists, we should not return cache data.\n if (\n errorPolicy === \"none\" &&\n networkStatus === NetworkStatus.refetch &&\n Array.isArray(diff.missing)\n ) {\n return fromData(void 0);\n }\n\n return fromData(data);\n };\n\n const cacheWriteBehavior =\n fetchPolicy === \"no-cache\" ? CacheWriteBehavior.FORBID\n // Watched queries must opt into overwriting existing data on refetch,\n // by passing refetchWritePolicy: \"overwrite\" in their WatchQueryOptions.\n : (\n networkStatus === NetworkStatus.refetch &&\n refetchWritePolicy !== \"merge\"\n ) ?\n CacheWriteBehavior.OVERWRITE\n : CacheWriteBehavior.MERGE;\n\n const resultsFromLink = () =>\n this.getResultsFromLink(queryInfo, cacheWriteBehavior, {\n query,\n variables,\n context,\n fetchPolicy,\n errorPolicy,\n });\n\n const shouldNotify =\n notifyOnNetworkStatusChange &&\n typeof oldNetworkStatus === \"number\" &&\n oldNetworkStatus !== networkStatus &&\n isNetworkRequestInFlight(networkStatus);\n\n switch (fetchPolicy) {\n default:\n case \"cache-first\": {\n const diff = readCache();\n\n if (diff.complete) {\n return {\n fromLink: false,\n sources: [resultsFromCache(diff, queryInfo.markReady())],\n };\n }\n\n if (returnPartialData || shouldNotify) {\n return {\n fromLink: true,\n sources: [resultsFromCache(diff), resultsFromLink()],\n };\n }\n\n return { fromLink: true, sources: [resultsFromLink()] };\n }\n\n case \"cache-and-network\": {\n const diff = readCache();\n\n if (diff.complete || returnPartialData || shouldNotify) {\n return {\n fromLink: true,\n sources: [resultsFromCache(diff), resultsFromLink()],\n };\n }\n\n return { fromLink: true, sources: [resultsFromLink()] };\n }\n\n case \"cache-only\":\n return {\n fromLink: false,\n sources: [resultsFromCache(readCache(), queryInfo.markReady())],\n };\n\n case \"network-only\":\n if (shouldNotify) {\n return {\n fromLink: true,\n sources: [resultsFromCache(readCache()), resultsFromLink()],\n };\n }\n\n return { fromLink: true, sources: [resultsFromLink()] };\n\n case \"no-cache\":\n if (shouldNotify) {\n return {\n fromLink: true,\n // Note that queryInfo.getDiff() for no-cache queries does not call\n // cache.diff, but instead returns a { complete: false } stub result\n // when there is no queryInfo.diff already defined.\n sources: [resultsFromCache(queryInfo.getDiff()), resultsFromLink()],\n };\n }\n\n return { fromLink: true, sources: [resultsFromLink()] };\n\n case \"standby\":\n return { fromLink: false, sources: [] };\n }\n }\n\n private getQuery(queryId: string): QueryInfo {\n if (queryId && !this.queries.has(queryId)) {\n this.queries.set(queryId, new QueryInfo(this, queryId));\n }\n return this.queries.get(queryId)!;\n }\n\n private prepareContext(context = {}) {\n const newContext = this.localState.prepareContext(context);\n return {\n ...this.defaultContext,\n ...newContext,\n clientAwareness: this.clientAwareness,\n };\n }\n}\n\n// Return types used by fetchQueryByPolicy and other private methods above.\ninterface FetchConcastInfo {\n // Metadata properties that can be returned in addition to the Concast.\n fromLink: boolean;\n}\ninterface SourcesAndInfo extends FetchConcastInfo {\n sources: ConcastSourcesArray>;\n}\ninterface ConcastAndInfo extends FetchConcastInfo {\n concast: Concast>;\n}\n","import type {\n QueryOptions,\n WatchQueryOptions,\n MutationOptions,\n OperationVariables,\n} from \"../../core/index.js\";\n\nimport { compact } from \"./compact.js\";\n\ntype OptionsUnion =\n | WatchQueryOptions\n | QueryOptions\n | MutationOptions;\n\nexport function mergeOptions<\n TDefaultOptions extends Partial>,\n TOptions extends TDefaultOptions,\n>(\n defaults: TDefaultOptions | Partial | undefined,\n options: TOptions | Partial\n): TOptions & TDefaultOptions {\n return compact(\n defaults,\n options,\n options.variables && {\n variables: compact({\n ...(defaults && defaults.variables),\n ...options.variables,\n }),\n }\n );\n}\n","import { invariant, newInvariantError } from \"../utilities/globals/index.js\";\n\nimport type { ExecutionResult, DocumentNode } from \"graphql\";\n\nimport type { FetchResult, GraphQLRequest } from \"../link/core/index.js\";\nimport { ApolloLink, execute } from \"../link/core/index.js\";\nimport type { ApolloCache, DataProxy, Reference } from \"../cache/index.js\";\nimport type { DocumentTransform, Observable } from \"../utilities/index.js\";\nimport { version } from \"../version.js\";\nimport type { UriFunction } from \"../link/http/index.js\";\nimport { HttpLink } from \"../link/http/index.js\";\n\nimport { QueryManager } from \"./QueryManager.js\";\nimport type { ObservableQuery } from \"./ObservableQuery.js\";\n\nimport type {\n ApolloQueryResult,\n DefaultContext,\n OperationVariables,\n Resolvers,\n RefetchQueriesOptions,\n RefetchQueriesResult,\n InternalRefetchQueriesResult,\n RefetchQueriesInclude,\n} from \"./types.js\";\n\nimport type {\n QueryOptions,\n WatchQueryOptions,\n MutationOptions,\n SubscriptionOptions,\n WatchQueryFetchPolicy,\n} from \"./watchQueryOptions.js\";\n\nimport type { FragmentMatcher } from \"./LocalState.js\";\nimport { LocalState } from \"./LocalState.js\";\n\nexport interface DefaultOptions {\n watchQuery?: Partial>;\n query?: Partial>;\n mutate?: Partial>;\n}\n\nlet hasSuggestedDevtools = false;\n\nexport interface ApolloClientOptions {\n /**\n * The URI of the GraphQL endpoint that Apollo Client will communicate with.\n *\n * One of `uri` or `link` is **required**. If you provide both, `link` takes precedence.\n */\n uri?: string | UriFunction;\n credentials?: string;\n /**\n * An object representing headers to include in every HTTP request, such as `{Authorization: 'Bearer 1234'}`\n *\n * This value will be ignored when using the `link` option.\n */\n headers?: Record;\n /**\n * You can provide an `ApolloLink` instance to serve as Apollo Client's network layer. For more information, see [Advanced HTTP networking](https://www.apollographql.com/docs/react/networking/advanced-http-networking/).\n *\n * One of `uri` or `link` is **required**. If you provide both, `link` takes precedence.\n */\n link?: ApolloLink;\n /**\n * The cache that Apollo Client should use to store query results locally. The recommended cache is `InMemoryCache`, which is provided by the `@apollo/client` package.\n *\n * For more information, see [Configuring the cache](https://www.apollographql.com/docs/react/caching/cache-configuration/).\n */\n cache: ApolloCache;\n /**\n * The time interval (in milliseconds) before Apollo Client force-fetches queries after a server-side render.\n *\n * @defaultValue `0` (no delay)\n */\n ssrForceFetchDelay?: number;\n /**\n * When using Apollo Client for [server-side rendering](https://www.apollographql.com/docs/react/performance/server-side-rendering/), set this to `true` so that the [`getDataFromTree` function](../react/ssr/#getdatafromtree) can work effectively.\n *\n * @defaultValue `false`\n */\n ssrMode?: boolean;\n /**\n * If `true`, the [Apollo Client Devtools](https://www.apollographql.com/docs/react/development-testing/developer-tooling/#apollo-client-devtools) browser extension can connect to Apollo Client.\n *\n * The default value is `false` in production and `true` in development (if there is a `window` object).\n */\n connectToDevTools?: boolean;\n /**\n * If `false`, Apollo Client sends every created query to the server, even if a _completely_ identical query (identical in terms of query string, variable values, and operationName) is already in flight.\n *\n * @defaultValue `true`\n */\n queryDeduplication?: boolean;\n /**\n * Provide this object to set application-wide default values for options you can provide to the `watchQuery`, `query`, and `mutate` functions. See below for an example object.\n *\n * See this [example object](https://www.apollographql.com/docs/react/api/core/ApolloClient#example-defaultoptions-object).\n */\n defaultOptions?: DefaultOptions;\n defaultContext?: Partial;\n /**\n * If `true`, Apollo Client will assume results read from the cache are never mutated by application code, which enables substantial performance optimizations.\n *\n * @defaultValue `false`\n */\n assumeImmutableResults?: boolean;\n resolvers?: Resolvers | Resolvers[];\n typeDefs?: string | string[] | DocumentNode | DocumentNode[];\n fragmentMatcher?: FragmentMatcher;\n /**\n * A custom name (e.g., `iOS`) that identifies this particular client among your set of clients. Apollo Server and Apollo Studio use this property as part of the [client awareness](https://www.apollographql.com/docs/apollo-server/monitoring/metrics#identifying-distinct-clients) feature.\n */\n name?: string;\n /**\n * A custom version that identifies the current version of this particular client (e.g., `1.2`). Apollo Server and Apollo Studio use this property as part of the [client awareness](https://www.apollographql.com/docs/apollo-server/monitoring/metrics#identifying-distinct-clients) feature.\n *\n * This is **not** the version of Apollo Client that you are using, but rather any version string that helps you differentiate between versions of your client.\n */\n version?: string;\n documentTransform?: DocumentTransform;\n}\n\n// Though mergeOptions now resides in @apollo/client/utilities, it was\n// previously declared and exported from this module, and then reexported from\n// @apollo/client/core. Since we need to preserve that API anyway, the easiest\n// solution is to reexport mergeOptions where it was previously declared (here).\nimport { mergeOptions } from \"../utilities/index.js\";\nimport { getApolloClientMemoryInternals } from \"../utilities/caching/getMemoryInternals.js\";\nexport { mergeOptions };\n\n/**\n * This is the primary Apollo Client class. It is used to send GraphQL documents (i.e. queries\n * and mutations) to a GraphQL spec-compliant server over an `ApolloLink` instance,\n * receive results from the server and cache the results in a store. It also delivers updates\n * to GraphQL queries through `Observable` instances.\n */\nexport class ApolloClient implements DataProxy {\n public link: ApolloLink;\n public cache: ApolloCache;\n public disableNetworkFetches: boolean;\n public version: string;\n public queryDeduplication: boolean;\n public defaultOptions: DefaultOptions;\n public readonly typeDefs: ApolloClientOptions[\"typeDefs\"];\n\n private queryManager: QueryManager;\n private devToolsHookCb?: Function;\n private resetStoreCallbacks: Array<() => Promise> = [];\n private clearStoreCallbacks: Array<() => Promise> = [];\n private localState: LocalState;\n\n /**\n * Constructs an instance of `ApolloClient`.\n *\n * @example\n * ```js\n * import { ApolloClient, InMemoryCache } from '@apollo/client';\n *\n * const cache = new InMemoryCache();\n *\n * const client = new ApolloClient({\n * // Provide required constructor fields\n * cache: cache,\n * uri: 'http://localhost:4000/',\n *\n * // Provide some optional constructor fields\n * name: 'react-web-client',\n * version: '1.3',\n * queryDeduplication: false,\n * defaultOptions: {\n * watchQuery: {\n * fetchPolicy: 'cache-and-network',\n * },\n * },\n * });\n * ```\n */\n constructor(options: ApolloClientOptions) {\n if (!options.cache) {\n throw newInvariantError(\n \"To initialize Apollo Client, you must specify a 'cache' property \" +\n \"in the options object. \\n\" +\n \"For more information, please visit: https://go.apollo.dev/c/docs\"\n );\n }\n\n const {\n uri,\n credentials,\n headers,\n cache,\n documentTransform,\n ssrMode = false,\n ssrForceFetchDelay = 0,\n // Expose the client instance as window.__APOLLO_CLIENT__ and call\n // onBroadcast in queryManager.broadcastQueries to enable browser\n // devtools, but disable them by default in production.\n connectToDevTools = typeof window === \"object\" &&\n !(window as any).__APOLLO_CLIENT__ &&\n __DEV__,\n queryDeduplication = true,\n defaultOptions,\n defaultContext,\n assumeImmutableResults = cache.assumeImmutableResults,\n resolvers,\n typeDefs,\n fragmentMatcher,\n name: clientAwarenessName,\n version: clientAwarenessVersion,\n } = options;\n\n let { link } = options;\n\n if (!link) {\n link =\n uri ? new HttpLink({ uri, credentials, headers }) : ApolloLink.empty();\n }\n\n this.link = link;\n this.cache = cache;\n this.disableNetworkFetches = ssrMode || ssrForceFetchDelay > 0;\n this.queryDeduplication = queryDeduplication;\n this.defaultOptions = defaultOptions || Object.create(null);\n this.typeDefs = typeDefs;\n\n if (ssrForceFetchDelay) {\n setTimeout(\n () => (this.disableNetworkFetches = false),\n ssrForceFetchDelay\n );\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 this.version = version;\n\n this.localState = new LocalState({\n cache,\n client: this,\n resolvers,\n fragmentMatcher,\n });\n\n this.queryManager = new QueryManager({\n cache: this.cache,\n link: this.link,\n defaultOptions: this.defaultOptions,\n defaultContext,\n documentTransform,\n queryDeduplication,\n ssrMode,\n clientAwareness: {\n name: clientAwarenessName!,\n version: clientAwarenessVersion!,\n },\n localState: this.localState,\n assumeImmutableResults,\n onBroadcast:\n connectToDevTools ?\n () => {\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 }\n : void 0,\n });\n\n if (connectToDevTools) this.connectToDevTools();\n }\n\n private connectToDevTools() {\n if (typeof window === \"object\") {\n type DevToolsConnector = {\n push(client: ApolloClient): void;\n };\n const windowWithDevTools = window as Window & {\n [devtoolsSymbol]?: DevToolsConnector;\n __APOLLO_CLIENT__?: ApolloClient;\n };\n const devtoolsSymbol = Symbol.for(\"apollo.devtools\");\n (windowWithDevTools[devtoolsSymbol] =\n windowWithDevTools[devtoolsSymbol] || ([] as DevToolsConnector)).push(\n this\n );\n windowWithDevTools.__APOLLO_CLIENT__ = this;\n }\n\n /**\n * Suggest installing the devtools for developers who don't have them\n */\n if (!hasSuggestedDevtools && __DEV__) {\n hasSuggestedDevtools = true;\n setTimeout(() => {\n if (\n typeof window !== \"undefined\" &&\n window.document &&\n window.top === window.self &&\n !(window as any).__APOLLO_DEVTOOLS_GLOBAL_HOOK__\n ) {\n const nav = window.navigator;\n const ua = nav && nav.userAgent;\n let url: string | undefined;\n if (typeof ua === \"string\") {\n if (ua.indexOf(\"Chrome/\") > -1) {\n url =\n \"https://chrome.google.com/webstore/detail/\" +\n \"apollo-client-developer-t/jdkknkkbebbapilgoeccciglkfbmbnfm\";\n } else if (ua.indexOf(\"Firefox/\") > -1) {\n url =\n \"https://addons.mozilla.org/en-US/firefox/addon/apollo-developer-tools/\";\n }\n }\n if (url) {\n invariant.log(\n \"Download the Apollo DevTools for a better development \" +\n \"experience: %s\",\n url\n );\n }\n }\n }, 10000);\n }\n }\n\n /**\n * The `DocumentTransform` used to modify GraphQL documents before a request\n * is made. If a custom `DocumentTransform` is not provided, this will be the\n * default document transform.\n */\n get documentTransform() {\n return this.queryManager.documentTransform;\n }\n\n /**\n * Call this method to terminate any active client processes, making it safe\n * to dispose of this `ApolloClient` instance.\n */\n public stop() {\n this.queryManager.stop();\n }\n\n /**\n * This watches the cache store of the query according to the options specified and\n * returns an `ObservableQuery`. We can subscribe to this `ObservableQuery` and\n * receive updated results through a GraphQL observer when the cache store changes.\n *\n * Note that this method is not an implementation of GraphQL subscriptions. Rather,\n * it uses Apollo's store in order to reactively deliver updates to your query results.\n *\n * For example, suppose you call watchQuery on a GraphQL query that fetches a person's\n * first and last name and this person has a particular object identifier, provided by\n * dataIdFromObject. Later, a different query fetches that same person's\n * first and last name and the first name has now changed. Then, any observers associated\n * with the results of the first query will be updated with a new result object.\n *\n * Note that if the cache does not change, the subscriber will *not* be notified.\n *\n * See [here](https://medium.com/apollo-stack/the-concepts-of-graphql-bc68bd819be3#.3mb0cbcmc) for\n * a description of store reactivity.\n */\n public watchQuery<\n T = any,\n TVariables extends OperationVariables = OperationVariables,\n >(options: WatchQueryOptions): ObservableQuery {\n if (this.defaultOptions.watchQuery) {\n options = mergeOptions(this.defaultOptions.watchQuery, options);\n }\n\n // XXX Overwriting options is probably not the best way to do this long term...\n if (\n this.disableNetworkFetches &&\n (options.fetchPolicy === \"network-only\" ||\n options.fetchPolicy === \"cache-and-network\")\n ) {\n options = { ...options, fetchPolicy: \"cache-first\" };\n }\n\n return this.queryManager.watchQuery(options);\n }\n\n /**\n * This resolves a single query according to the options specified and\n * returns a `Promise` which is either resolved with the resulting data\n * or rejected with an error.\n *\n * @param options - An object of type `QueryOptions` that allows us to\n * describe how this query should be treated e.g. whether it should hit the\n * server at all or just resolve from the cache, etc.\n */\n public query<\n T = any,\n TVariables extends OperationVariables = OperationVariables,\n >(options: QueryOptions): Promise> {\n if (this.defaultOptions.query) {\n options = mergeOptions(this.defaultOptions.query, options);\n }\n\n invariant(\n (options.fetchPolicy as WatchQueryFetchPolicy) !== \"cache-and-network\",\n \"The cache-and-network fetchPolicy does not work with client.query, because \" +\n \"client.query can only return a single result. Please use client.watchQuery \" +\n \"to receive multiple results from the cache and the network, or consider \" +\n \"using a different fetchPolicy, such as cache-first or network-only.\"\n );\n\n if (this.disableNetworkFetches && options.fetchPolicy === \"network-only\") {\n options = { ...options, fetchPolicy: \"cache-first\" };\n }\n\n return this.queryManager.query(options);\n }\n\n /**\n * This resolves a single mutation according to the options specified and returns a\n * Promise which is either resolved with the resulting data or rejected with an\n * error. In some cases both `data` and `errors` might be undefined, for example\n * when `errorPolicy` is set to `'ignore'`.\n *\n * It takes options as an object with the following keys and values:\n */\n public mutate<\n TData = any,\n TVariables extends OperationVariables = OperationVariables,\n TContext extends Record = DefaultContext,\n TCache extends ApolloCache = ApolloCache,\n >(\n options: MutationOptions\n ): Promise> {\n if (this.defaultOptions.mutate) {\n options = mergeOptions(this.defaultOptions.mutate, options);\n }\n return this.queryManager.mutate(\n options\n );\n }\n\n /**\n * This subscribes to a graphql subscription according to the options specified and returns an\n * `Observable` which either emits received data or an error.\n */\n public subscribe<\n T = any,\n TVariables extends OperationVariables = OperationVariables,\n >(options: SubscriptionOptions): Observable> {\n return this.queryManager.startGraphQLSubscription(options);\n }\n\n /**\n * Tries to read some data from the store in the shape of the provided\n * GraphQL query without making a network request. This method will start at\n * the root query. To start at a specific id returned by `dataIdFromObject`\n * use `readFragment`.\n *\n * @param optimistic - Set to `true` to allow `readQuery` to return\n * optimistic results. Is `false` by default.\n */\n public readQuery(\n options: DataProxy.Query,\n optimistic: boolean = false\n ): T | null {\n return this.cache.readQuery(options, optimistic);\n }\n\n /**\n * Tries to read some data from the store in the shape of the provided\n * GraphQL fragment without making a network request. This method will read a\n * GraphQL fragment from any arbitrary id that is currently cached, unlike\n * `readQuery` which will only read from the root query.\n *\n * You must pass in a GraphQL document with a single fragment or a document\n * with multiple fragments that represent what you are reading. If you pass\n * in a document with multiple fragments then you must also specify a\n * `fragmentName`.\n *\n * @param optimistic - Set to `true` to allow `readFragment` to return\n * optimistic results. Is `false` by default.\n */\n public readFragment(\n options: DataProxy.Fragment,\n optimistic: boolean = false\n ): T | null {\n return this.cache.readFragment(options, optimistic);\n }\n\n /**\n * Writes some data in the shape of the provided GraphQL query directly to\n * the store. This method will start at the root query. To start at a\n * specific id returned by `dataIdFromObject` then use `writeFragment`.\n */\n public writeQuery(\n options: DataProxy.WriteQueryOptions\n ): Reference | undefined {\n const ref = this.cache.writeQuery(options);\n\n if (options.broadcast !== false) {\n this.queryManager.broadcastQueries();\n }\n\n return ref;\n }\n\n /**\n * Writes some data in the shape of the provided GraphQL fragment directly to\n * the store. This method will write to a GraphQL fragment from any arbitrary\n * id that is currently cached, unlike `writeQuery` which will only write\n * from the root query.\n *\n * You must pass in a GraphQL document with a single fragment or a document\n * with multiple fragments that represent what you are writing. If you pass\n * in a document with multiple fragments then you must also specify a\n * `fragmentName`.\n */\n public writeFragment(\n options: DataProxy.WriteFragmentOptions\n ): Reference | undefined {\n const ref = this.cache.writeFragment(options);\n\n if (options.broadcast !== false) {\n this.queryManager.broadcastQueries();\n }\n\n return ref;\n }\n\n public __actionHookForDevTools(cb: () => any) {\n this.devToolsHookCb = cb;\n }\n\n public __requestRaw(payload: GraphQLRequest): Observable {\n return execute(this.link, payload);\n }\n\n /**\n * Resets your entire store by clearing out your cache and then re-executing\n * all of your active queries. This makes it so that you may guarantee that\n * there is no data left in your store from a time before you called this\n * method.\n *\n * `resetStore()` is useful when your user just logged out. You’ve removed the\n * user session, and you now want to make sure that any references to data you\n * might have fetched while the user session was active is gone.\n *\n * It is important to remember that `resetStore()` *will* refetch any active\n * queries. This means that any components that might be mounted will execute\n * their queries again using your network interface. If you do not want to\n * re-execute any queries then you should make sure to stop watching any\n * active queries.\n */\n public resetStore(): Promise[] | null> {\n return Promise.resolve()\n .then(() =>\n this.queryManager.clearStore({\n discardWatches: false,\n })\n )\n .then(() => Promise.all(this.resetStoreCallbacks.map((fn) => fn())))\n .then(() => this.reFetchObservableQueries());\n }\n\n /**\n * Remove all data from the store. Unlike `resetStore`, `clearStore` will\n * not refetch any active queries.\n */\n public clearStore(): Promise {\n return Promise.resolve()\n .then(() =>\n this.queryManager.clearStore({\n discardWatches: true,\n })\n )\n .then(() => Promise.all(this.clearStoreCallbacks.map((fn) => fn())));\n }\n\n /**\n * Allows callbacks to be registered that are executed when the store is\n * reset. `onResetStore` returns an unsubscribe function that can be used\n * to remove registered callbacks.\n */\n public onResetStore(cb: () => Promise): () => void {\n this.resetStoreCallbacks.push(cb);\n return () => {\n this.resetStoreCallbacks = this.resetStoreCallbacks.filter(\n (c) => c !== cb\n );\n };\n }\n\n /**\n * Allows callbacks to be registered that are executed when the store is\n * cleared. `onClearStore` returns an unsubscribe function that can be used\n * to remove registered callbacks.\n */\n public onClearStore(cb: () => Promise): () => void {\n this.clearStoreCallbacks.push(cb);\n return () => {\n this.clearStoreCallbacks = this.clearStoreCallbacks.filter(\n (c) => c !== cb\n );\n };\n }\n\n /**\n * Refetches all of your active queries.\n *\n * `reFetchObservableQueries()` is useful if you want to bring the client back to proper state in case of a network outage\n *\n * It is important to remember that `reFetchObservableQueries()` *will* refetch any active\n * queries. This means that any components that might be mounted will execute\n * their queries again using your network interface. If you do not want to\n * re-execute any queries then you should make sure to stop watching any\n * active queries.\n * Takes optional parameter `includeStandby` which will include queries in standby-mode when refetching.\n */\n public reFetchObservableQueries(\n includeStandby?: boolean\n ): Promise[]> {\n return this.queryManager.reFetchObservableQueries(includeStandby);\n }\n\n /**\n * Refetches specified active queries. Similar to \"reFetchObservableQueries()\" but with a specific list of queries.\n *\n * `refetchQueries()` is useful for use cases to imperatively refresh a selection of queries.\n *\n * It is important to remember that `refetchQueries()` *will* refetch specified active\n * queries. This means that any components that might be mounted will execute\n * their queries again using your network interface. If you do not want to\n * re-execute any queries then you should make sure to stop watching any\n * active queries.\n */\n public refetchQueries<\n TCache extends ApolloCache = ApolloCache,\n TResult = Promise>,\n >(\n options: RefetchQueriesOptions\n ): RefetchQueriesResult {\n const map = this.queryManager.refetchQueries(\n options as RefetchQueriesOptions, TResult>\n );\n const queries: ObservableQuery[] = [];\n const results: InternalRefetchQueriesResult[] = [];\n\n map.forEach((result, obsQuery) => {\n queries.push(obsQuery);\n results.push(result);\n });\n\n const result = Promise.all(\n results as TResult[]\n ) as RefetchQueriesResult;\n\n // In case you need the raw results immediately, without awaiting\n // Promise.all(results):\n result.queries = queries;\n result.results = results;\n\n // If you decide to ignore the result Promise because you're using\n // result.queries and result.results instead, you shouldn't have to worry\n // about preventing uncaught rejections for the Promise.all result.\n result.catch((error) => {\n invariant.debug(\n `In client.refetchQueries, Promise.all promise rejected with error %o`,\n error\n );\n });\n\n return result;\n }\n\n /**\n * Get all currently active `ObservableQuery` objects, in a `Map` keyed by\n * query ID strings.\n *\n * An \"active\" query is one that has observers and a `fetchPolicy` other than\n * \"standby\" or \"cache-only\".\n *\n * You can include all `ObservableQuery` objects (including the inactive ones)\n * by passing \"all\" instead of \"active\", or you can include just a subset of\n * active queries by passing an array of query names or DocumentNode objects.\n */\n public getObservableQueries(\n include: RefetchQueriesInclude = \"active\"\n ): Map> {\n return this.queryManager.getObservableQueries(include);\n }\n\n /**\n * Exposes the cache's complete state, in a serializable format for later restoration.\n */\n public extract(optimistic?: boolean): TCacheShape {\n return this.cache.extract(optimistic);\n }\n\n /**\n * Replaces existing state in the cache (if any) with the values expressed by\n * `serializedState`.\n *\n * Called when hydrating a cache (server side rendering, or offline storage),\n * and also (potentially) during hot reloads.\n */\n public restore(serializedState: TCacheShape): ApolloCache {\n return this.cache.restore(serializedState);\n }\n\n /**\n * Add additional local resolvers.\n */\n public addResolvers(resolvers: Resolvers | Resolvers[]) {\n this.localState.addResolvers(resolvers);\n }\n\n /**\n * Set (override existing) local resolvers.\n */\n public setResolvers(resolvers: Resolvers | Resolvers[]) {\n this.localState.setResolvers(resolvers);\n }\n\n /**\n * Get all registered local resolvers.\n */\n public getResolvers() {\n return this.localState.getResolvers();\n }\n\n /**\n * Set a custom local state fragment matcher.\n */\n public setLocalStateFragmentMatcher(fragmentMatcher: FragmentMatcher) {\n this.localState.setFragmentMatcher(fragmentMatcher);\n }\n\n /**\n * Define a new ApolloLink (or link chain) that Apollo Client will use.\n */\n public setLink(newLink: ApolloLink) {\n this.link = this.queryManager.link = newLink;\n }\n\n public get defaultContext() {\n return this.queryManager.defaultContext;\n }\n\n /**\n * @experimental\n * This is not a stable API - it is used in development builds to expose\n * information to the DevTools.\n * Use at your own risk!\n * For more details, see [Memory Management](https://www.apollographql.com/docs/react/caching/memory-management/#measuring-cache-usage)\n *\n * @example\n * ```ts\n * console.log(client.getMemoryInternals())\n * ```\n * Logs output in the following JSON format:\n * @example\n * ```json\n *{\n * limits: {\n * parser: 1000,\n * canonicalStringify: 1000,\n * print: 2000,\n * 'documentTransform.cache': 2000,\n * 'queryManager.getDocumentInfo': 2000,\n * 'PersistedQueryLink.persistedQueryHashes': 2000,\n * 'fragmentRegistry.transform': 2000,\n * 'fragmentRegistry.lookup': 1000,\n * 'fragmentRegistry.findFragmentSpreads': 4000,\n * 'cache.fragmentQueryDocuments': 1000,\n * 'removeTypenameFromVariables.getVariableDefinitions': 2000,\n * 'inMemoryCache.maybeBroadcastWatch': 5000,\n * 'inMemoryCache.executeSelectionSet': 10000,\n * 'inMemoryCache.executeSubSelectedArray': 5000\n * },\n * sizes: {\n * parser: 26,\n * canonicalStringify: 4,\n * print: 14,\n * addTypenameDocumentTransform: [\n * {\n * cache: 14,\n * },\n * ],\n * queryManager: {\n * getDocumentInfo: 14,\n * documentTransforms: [\n * {\n * cache: 14,\n * },\n * {\n * cache: 14,\n * },\n * ],\n * },\n * fragmentRegistry: {\n * findFragmentSpreads: 34,\n * lookup: 20,\n * transform: 14,\n * },\n * cache: {\n * fragmentQueryDocuments: 22,\n * },\n * inMemoryCache: {\n * executeSelectionSet: 4345,\n * executeSubSelectedArray: 1206,\n * maybeBroadcastWatch: 32,\n * },\n * links: [\n * {\n * PersistedQueryLink: {\n * persistedQueryHashes: 14,\n * },\n * },\n * {\n * removeTypenameFromVariables: {\n * getVariableDefinitions: 14,\n * },\n * },\n * ],\n * },\n * }\n *```\n */\n public getMemoryInternals?: typeof getApolloClientMemoryInternals;\n}\n\nif (__DEV__) {\n ApolloClient.prototype.getMemoryInternals = getApolloClientMemoryInternals;\n}\n","import type { DocumentNode } from \"graphql\";\nimport { wrap } from \"optimism\";\n\nimport type { StoreObject, Reference } from \"../../utilities/index.js\";\nimport {\n cacheSizes,\n defaultCacheSizes,\n getFragmentQueryDocument,\n} from \"../../utilities/index.js\";\nimport type { DataProxy } from \"./types/DataProxy.js\";\nimport type { Cache } from \"./types/Cache.js\";\nimport { WeakCache } from \"@wry/caches\";\nimport { getApolloCacheMemoryInternals } from \"../../utilities/caching/getMemoryInternals.js\";\n\nexport type Transaction = (c: ApolloCache) => void;\n\nexport abstract class ApolloCache implements DataProxy {\n public readonly assumeImmutableResults: boolean = false;\n\n // required to implement\n // core API\n public abstract read(\n query: Cache.ReadOptions\n ): TData | null;\n public abstract write(\n write: Cache.WriteOptions\n ): Reference | undefined;\n public abstract diff(query: Cache.DiffOptions): Cache.DiffResult;\n public abstract watch(\n watch: Cache.WatchOptions\n ): () => void;\n\n // Empty the cache and restart all current watches (unless\n // options.discardWatches is true).\n public abstract reset(options?: Cache.ResetOptions): Promise;\n\n // Remove whole objects from the cache by passing just options.id, or\n // specific fields by passing options.field and/or options.args. If no\n // options.args are provided, all fields matching options.field (even\n // those with arguments) will be removed. Returns true iff any data was\n // removed from the cache.\n public abstract evict(options: Cache.EvictOptions): boolean;\n\n // initializer / offline / ssr API\n /**\n * Replaces existing state in the cache (if any) with the values expressed by\n * `serializedState`.\n *\n * Called when hydrating a cache (server side rendering, or offline storage),\n * and also (potentially) during hot reloads.\n */\n public abstract restore(\n serializedState: TSerialized\n ): ApolloCache;\n\n /**\n * Exposes the cache's complete state, in a serializable format for later restoration.\n */\n public abstract extract(optimistic?: boolean): TSerialized;\n\n // Optimistic API\n\n public abstract removeOptimistic(id: string): void;\n\n // Transactional API\n\n // The batch method is intended to replace/subsume both performTransaction\n // and recordOptimisticTransaction, but performTransaction came first, so we\n // provide a default batch implementation that's just another way of calling\n // performTransaction. Subclasses of ApolloCache (such as InMemoryCache) can\n // override the batch method to do more interesting things with its options.\n public batch(options: Cache.BatchOptions): U {\n const optimisticId =\n typeof options.optimistic === \"string\" ? options.optimistic\n : options.optimistic === false ? null\n : void 0;\n let updateResult: U;\n this.performTransaction(\n () => (updateResult = options.update(this)),\n optimisticId\n );\n return updateResult!;\n }\n\n public abstract performTransaction(\n transaction: Transaction,\n // Although subclasses may implement recordOptimisticTransaction\n // however they choose, the default implementation simply calls\n // performTransaction with a string as the second argument, allowing\n // performTransaction to handle both optimistic and non-optimistic\n // (broadcast-batching) transactions. Passing null for optimisticId is\n // also allowed, and indicates that performTransaction should apply\n // the transaction non-optimistically (ignoring optimistic data).\n optimisticId?: string | null\n ): void;\n\n public recordOptimisticTransaction(\n transaction: Transaction,\n optimisticId: string\n ) {\n this.performTransaction(transaction, optimisticId);\n }\n\n // Optional API\n\n // Called once per input document, allowing the cache to make static changes\n // to the query, such as adding __typename fields.\n public transformDocument(document: DocumentNode): DocumentNode {\n return document;\n }\n\n // Called before each ApolloLink request, allowing the cache to make dynamic\n // changes to the query, such as filling in missing fragment definitions.\n public transformForLink(document: DocumentNode): DocumentNode {\n return document;\n }\n\n public identify(object: StoreObject | Reference): string | undefined {\n return;\n }\n\n public gc(): string[] {\n return [];\n }\n\n public modify = Record>(\n options: Cache.ModifyOptions\n ): boolean {\n return false;\n }\n\n // DataProxy API\n public readQuery(\n options: Cache.ReadQueryOptions,\n optimistic = !!options.optimistic\n ): QueryType | null {\n return this.read({\n ...options,\n rootId: options.id || \"ROOT_QUERY\",\n optimistic,\n });\n }\n\n // Make sure we compute the same (===) fragment query document every\n // time we receive the same fragment in readFragment.\n private getFragmentDoc = wrap(getFragmentQueryDocument, {\n max:\n cacheSizes[\"cache.fragmentQueryDocuments\"] ||\n defaultCacheSizes[\"cache.fragmentQueryDocuments\"],\n cache: WeakCache,\n });\n\n public readFragment(\n options: Cache.ReadFragmentOptions,\n optimistic = !!options.optimistic\n ): FragmentType | null {\n return this.read({\n ...options,\n query: this.getFragmentDoc(options.fragment, options.fragmentName),\n rootId: options.id,\n optimistic,\n });\n }\n\n public writeQuery({\n id,\n data,\n ...options\n }: Cache.WriteQueryOptions): Reference | undefined {\n return this.write(\n Object.assign(options, {\n dataId: id || \"ROOT_QUERY\",\n result: data,\n })\n );\n }\n\n public writeFragment({\n id,\n data,\n fragment,\n fragmentName,\n ...options\n }: Cache.WriteFragmentOptions): Reference | undefined {\n return this.write(\n Object.assign(options, {\n query: this.getFragmentDoc(fragment, fragmentName),\n dataId: id,\n result: data,\n })\n );\n }\n\n public updateQuery(\n options: Cache.UpdateQueryOptions,\n update: (data: TData | null) => TData | null | void\n ): TData | null {\n return this.batch({\n update(cache) {\n const value = cache.readQuery(options);\n const data = update(value);\n if (data === void 0 || data === null) return value;\n cache.writeQuery({ ...options, data });\n return data;\n },\n });\n }\n\n public updateFragment(\n options: Cache.UpdateFragmentOptions,\n update: (data: TData | null) => TData | null | void\n ): TData | null {\n return this.batch({\n update(cache) {\n const value = cache.readFragment(options);\n const data = update(value);\n if (data === void 0 || data === null) return value;\n cache.writeFragment({ ...options, data });\n return data;\n },\n });\n }\n\n /**\n * @experimental\n * @internal\n * This is not a stable API - it is used in development builds to expose\n * information to the DevTools.\n * Use at your own risk!\n */\n public getMemoryInternals?: typeof getApolloCacheMemoryInternals;\n}\n\nif (__DEV__) {\n ApolloCache.prototype.getMemoryInternals = getApolloCacheMemoryInternals;\n}\n","import type { DocumentNode, FieldNode } from \"graphql\";\n\nimport type {\n Reference,\n StoreObject,\n StoreValue,\n isReference,\n AsStoreObject,\n} from \"../../../utilities/index.js\";\n\nimport type { StorageType } from \"../../inmemory/policies.js\";\n\n// The Readonly type only really works for object types, since it marks\n// all of the object's properties as readonly, but there are many cases when\n// a generic type parameter like TExisting might be a string or some other\n// primitive type, in which case we need to avoid wrapping it with Readonly.\n// SafeReadonly collapses to just string, which makes string\n// assignable to SafeReadonly, whereas string is not assignable to\n// Readonly, somewhat surprisingly.\nexport type SafeReadonly = T extends object ? Readonly : T;\n\nexport type MissingTree =\n | string\n | {\n readonly [key: string]: MissingTree;\n };\n\nexport class MissingFieldError extends Error {\n constructor(\n public readonly message: string,\n public readonly path: MissingTree | Array,\n public readonly query: DocumentNode,\n public readonly variables?: Record\n ) {\n // 'Error' breaks prototype chain here\n super(message);\n\n if (Array.isArray(this.path)) {\n this.missing = this.message;\n for (let i = this.path.length - 1; i >= 0; --i) {\n this.missing = { [this.path[i]]: this.missing };\n }\n } else {\n this.missing = this.path;\n }\n\n // We're not using `Object.setPrototypeOf` here as it isn't fully supported\n // on Android (see issue #3236).\n (this as any).__proto__ = MissingFieldError.prototype;\n }\n\n public readonly missing: MissingTree;\n}\n\nexport interface FieldSpecifier {\n typename?: string;\n fieldName: string;\n field?: FieldNode;\n args?: Record;\n variables?: Record;\n}\n\nexport interface ReadFieldOptions extends FieldSpecifier {\n from?: StoreObject | Reference;\n}\n\nexport interface ReadFieldFunction {\n (options: ReadFieldOptions): SafeReadonly | undefined;\n (\n fieldName: string,\n from?: StoreObject | Reference\n ): SafeReadonly | undefined;\n}\n\nexport type ToReferenceFunction = (\n objOrIdOrRef: StoreObject | string | Reference,\n mergeIntoStore?: boolean\n) => Reference | undefined;\n\nexport type CanReadFunction = (value: StoreValue) => boolean;\n\ndeclare const _deleteModifier: unique symbol;\nexport interface DeleteModifier {\n [_deleteModifier]: true;\n}\ndeclare const _invalidateModifier: unique symbol;\nexport interface InvalidateModifier {\n [_invalidateModifier]: true;\n}\ndeclare const _ignoreModifier: unique symbol;\nexport interface IgnoreModifier {\n [_ignoreModifier]: true;\n}\n\nexport type ModifierDetails = {\n DELETE: DeleteModifier;\n INVALIDATE: InvalidateModifier;\n fieldName: string;\n storeFieldName: string;\n readField: ReadFieldFunction;\n canRead: CanReadFunction;\n isReference: typeof isReference;\n toReference: ToReferenceFunction;\n storage: StorageType;\n};\n\nexport type Modifier = (\n value: T,\n details: ModifierDetails\n) => T | DeleteModifier | InvalidateModifier;\n\ntype StoreObjectValueMaybeReference =\n StoreVal extends Array> ?\n StoreVal extends Array ?\n Item extends Record ?\n ReadonlyArray | Reference>\n : never\n : never\n : StoreVal extends Record ? AsStoreObject | Reference\n : StoreVal;\n\nexport type AllFieldsModifier> = Modifier<\n Entity[keyof Entity] extends infer Value ?\n StoreObjectValueMaybeReference>\n : never\n>;\n\nexport type Modifiers = Record> =\n Partial<{\n [FieldName in keyof T]: Modifier<\n StoreObjectValueMaybeReference>\n >;\n }>;\n","import { isNonNullObject } from \"./objects.js\";\n\nfunction deepFreeze(value: any) {\n const workSet = new Set([value]);\n workSet.forEach((obj) => {\n if (isNonNullObject(obj) && shallowFreeze(obj) === obj) {\n Object.getOwnPropertyNames(obj).forEach((name) => {\n if (isNonNullObject(obj[name])) workSet.add(obj[name]);\n });\n }\n });\n return value;\n}\n\nfunction shallowFreeze(obj: T): T | null {\n if (__DEV__ && !Object.isFrozen(obj)) {\n try {\n Object.freeze(obj);\n } catch (e) {\n // Some types like Uint8Array and Node.js's Buffer cannot be frozen, but\n // they all throw a TypeError when you try, so we re-throw any exceptions\n // that are not TypeErrors, since that would be unexpected.\n if (e instanceof TypeError) return null;\n throw e;\n }\n }\n return obj;\n}\n\nexport function maybeDeepFreeze(obj: T): T {\n if (__DEV__) {\n deepFreeze(obj);\n }\n return obj;\n}\n","import type {\n DocumentNode,\n FragmentDefinitionNode,\n SelectionSetNode,\n} from \"graphql\";\n\nimport type { NormalizedCache, InMemoryCacheConfig } from \"./types.js\";\n\nimport type { KeyFieldsContext } from \"./policies.js\";\nimport type { FragmentRegistryAPI } from \"./fragmentRegistry.js\";\n\nimport type {\n Reference,\n StoreValue,\n StoreObject,\n FragmentMap,\n FragmentMapFunction,\n} from \"../../utilities/index.js\";\nimport {\n isReference,\n isField,\n DeepMerger,\n resultKeyNameFromField,\n shouldInclude,\n isNonNullObject,\n compact,\n createFragmentMap,\n getFragmentDefinitions,\n isArray,\n} from \"../../utilities/index.js\";\n\nexport const { hasOwnProperty: hasOwn } = Object.prototype;\n\nexport function isNullish(value: any): value is null | undefined {\n return value === null || value === void 0;\n}\n\nexport { isArray };\n\nexport function defaultDataIdFromObject(\n { __typename, id, _id }: Readonly,\n context?: KeyFieldsContext\n): string | undefined {\n if (typeof __typename === \"string\") {\n if (context) {\n context.keyObject =\n !isNullish(id) ? { id }\n : !isNullish(_id) ? { _id }\n : void 0;\n }\n\n // If there is no object.id, fall back to object._id.\n if (isNullish(id) && !isNullish(_id)) {\n id = _id;\n }\n\n if (!isNullish(id)) {\n return `${__typename}:${\n typeof id === \"number\" || typeof id === \"string\" ?\n id\n : JSON.stringify(id)\n }`;\n }\n }\n}\n\nconst defaultConfig = {\n dataIdFromObject: defaultDataIdFromObject,\n addTypename: true,\n resultCaching: true,\n // Thanks to the shouldCanonizeResults helper, this should be the only line\n // you have to change to reenable canonization by default in the future.\n canonizeResults: false,\n};\n\nexport function normalizeConfig(config: InMemoryCacheConfig) {\n return compact(defaultConfig, config);\n}\n\nexport function shouldCanonizeResults(\n config: Pick\n): boolean {\n const value = config.canonizeResults;\n return value === void 0 ? defaultConfig.canonizeResults : value;\n}\n\nexport function getTypenameFromStoreObject(\n store: NormalizedCache,\n objectOrReference: StoreObject | Reference\n): string | undefined {\n return isReference(objectOrReference) ?\n (store.get(objectOrReference.__ref, \"__typename\") as string)\n : objectOrReference && objectOrReference.__typename;\n}\n\nexport const TypeOrFieldNameRegExp = /^[_a-z][_0-9a-z]*/i;\n\nexport function fieldNameFromStoreName(storeFieldName: string): string {\n const match = storeFieldName.match(TypeOrFieldNameRegExp);\n return match ? match[0] : storeFieldName;\n}\n\nexport function selectionSetMatchesResult(\n selectionSet: SelectionSetNode,\n result: Record,\n variables?: Record\n): boolean {\n if (isNonNullObject(result)) {\n return isArray(result) ?\n result.every((item) =>\n selectionSetMatchesResult(selectionSet, item, variables)\n )\n : selectionSet.selections.every((field) => {\n if (isField(field) && shouldInclude(field, variables)) {\n const key = resultKeyNameFromField(field);\n return (\n hasOwn.call(result, key) &&\n (!field.selectionSet ||\n selectionSetMatchesResult(\n field.selectionSet,\n result[key],\n variables\n ))\n );\n }\n // If the selection has been skipped with @skip(true) or\n // @include(false), it should not count against the matching. If\n // the selection is not a field, it must be a fragment (inline or\n // named). We will determine if selectionSetMatchesResult for that\n // fragment when we get to it, so for now we return true.\n return true;\n });\n }\n return false;\n}\n\nexport function storeValueIsStoreObject(\n value: StoreValue\n): value is StoreObject {\n return isNonNullObject(value) && !isReference(value) && !isArray(value);\n}\n\nexport function makeProcessedFieldsMerger() {\n return new DeepMerger();\n}\n\nexport function extractFragmentContext(\n document: DocumentNode,\n fragments?: FragmentRegistryAPI\n): {\n fragmentMap: FragmentMap;\n lookupFragment: FragmentMapFunction;\n} {\n // FragmentMap consisting only of fragments defined directly in document, not\n // including other fragments registered in the FragmentRegistry.\n const fragmentMap = createFragmentMap(getFragmentDefinitions(document));\n return {\n fragmentMap,\n lookupFragment(name) {\n let def: FragmentDefinitionNode | null = fragmentMap[name];\n if (!def && fragments) {\n def = fragments.lookup(name);\n }\n return def || null;\n },\n };\n}\n","import { invariant } from \"../../utilities/globals/index.js\";\nimport type { OptimisticDependencyFunction } from \"optimism\";\nimport { dep } from \"optimism\";\nimport { equal } from \"@wry/equality\";\nimport { Trie } from \"@wry/trie\";\n\nimport type {\n StoreValue,\n StoreObject,\n Reference,\n} from \"../../utilities/index.js\";\nimport {\n isReference,\n makeReference,\n DeepMerger,\n maybeDeepFreeze,\n canUseWeakMap,\n isNonNullObject,\n} from \"../../utilities/index.js\";\nimport type { NormalizedCache, NormalizedCacheObject } from \"./types.js\";\nimport { hasOwn, fieldNameFromStoreName } from \"./helpers.js\";\nimport type { Policies, StorageType } from \"./policies.js\";\nimport type { Cache } from \"../core/types/Cache.js\";\nimport type {\n SafeReadonly,\n Modifier,\n Modifiers,\n ReadFieldOptions,\n ToReferenceFunction,\n CanReadFunction,\n InvalidateModifier,\n DeleteModifier,\n ModifierDetails,\n} from \"../core/types/common.js\";\nimport type { DocumentNode, FieldNode, SelectionSetNode } from \"graphql\";\n\nconst DELETE: DeleteModifier = Object.create(null);\nconst delModifier: Modifier = () => DELETE;\nconst INVALIDATE: InvalidateModifier = Object.create(null);\n\nexport abstract class EntityStore implements NormalizedCache {\n protected data: NormalizedCacheObject = Object.create(null);\n\n constructor(\n public readonly policies: Policies,\n public readonly group: CacheGroup\n ) {}\n\n public abstract addLayer(\n layerId: string,\n replay: (layer: EntityStore) => any\n ): Layer;\n\n public abstract removeLayer(layerId: string): EntityStore;\n\n // Although the EntityStore class is abstract, it contains concrete\n // implementations of the various NormalizedCache interface methods that\n // are inherited by the Root and Layer subclasses.\n\n public toObject(): NormalizedCacheObject {\n return { ...this.data };\n }\n\n public has(dataId: string): boolean {\n return this.lookup(dataId, true) !== void 0;\n }\n\n public get(dataId: string, fieldName: string): StoreValue {\n this.group.depend(dataId, fieldName);\n if (hasOwn.call(this.data, dataId)) {\n const storeObject = this.data[dataId];\n if (storeObject && hasOwn.call(storeObject, fieldName)) {\n return storeObject[fieldName];\n }\n }\n if (\n fieldName === \"__typename\" &&\n hasOwn.call(this.policies.rootTypenamesById, dataId)\n ) {\n return this.policies.rootTypenamesById[dataId];\n }\n if (this instanceof Layer) {\n return this.parent.get(dataId, fieldName);\n }\n }\n\n protected lookup(\n dataId: string,\n dependOnExistence?: boolean\n ): StoreObject | undefined {\n // The has method (above) calls lookup with dependOnExistence = true, so\n // that it can later be invalidated when we add or remove a StoreObject for\n // this dataId. Any consumer who cares about the contents of the StoreObject\n // should not rely on this dependency, since the contents could change\n // without the object being added or removed.\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 public merge(older: string | StoreObject, newer: StoreObject | string): void {\n let dataId: string | undefined;\n\n // Convert unexpected references to ID strings.\n if (isReference(older)) older = older.__ref;\n if (isReference(newer)) newer = newer.__ref;\n\n const existing: StoreObject | undefined =\n typeof older === \"string\" ? this.lookup((dataId = older)) : older;\n\n const incoming: StoreObject | undefined =\n typeof newer === \"string\" ? this.lookup((dataId = newer)) : newer;\n\n // If newer was a string ID, but that ID was not defined in this store,\n // then there are no fields to be merged, so we're done.\n if (!incoming) return;\n\n invariant(typeof dataId === \"string\", \"store.merge expects a string ID\");\n\n const merged: StoreObject = new DeepMerger(storeObjectReconciler).merge(\n existing,\n incoming\n );\n\n // Even if merged === existing, existing may have come from a lower\n // layer, so we always need to set this.data[dataId] on this level.\n this.data[dataId] = merged;\n\n if (merged !== existing) {\n delete this.refs[dataId];\n if (this.group.caching) {\n const fieldsToDirty: Record = Object.create(null);\n\n // If we added a new StoreObject where there was previously none, dirty\n // anything that depended on the existence of this dataId, such as the\n // EntityStore#has method.\n if (!existing) fieldsToDirty.__exists = 1;\n\n // Now invalidate dependents who called getFieldValue for any fields\n // that are changing as a result of this merge.\n Object.keys(incoming).forEach((storeFieldName) => {\n if (\n !existing ||\n existing[storeFieldName] !== merged[storeFieldName]\n ) {\n // Always dirty the full storeFieldName, which may include\n // serialized arguments following the fieldName prefix.\n fieldsToDirty[storeFieldName] = 1;\n\n // Also dirty fieldNameFromStoreName(storeFieldName) if it's\n // different from storeFieldName and this field does not have\n // keyArgs configured, because that means the cache can't make\n // any assumptions about how field values with the same field\n // name but different arguments might be interrelated, so it\n // must err on the side of invalidating all field values that\n // share the same short fieldName, regardless of arguments.\n const fieldName = fieldNameFromStoreName(storeFieldName);\n if (\n fieldName !== storeFieldName &&\n !this.policies.hasKeyArgs(merged.__typename, fieldName)\n ) {\n fieldsToDirty[fieldName] = 1;\n }\n\n // If merged[storeFieldName] has become undefined, and this is the\n // Root layer, actually delete the property from the merged object,\n // which is guaranteed to have been created fresh in this method.\n if (merged[storeFieldName] === void 0 && !(this instanceof Layer)) {\n delete merged[storeFieldName];\n }\n }\n });\n\n if (\n fieldsToDirty.__typename &&\n !(existing && existing.__typename) &&\n // Since we return default root __typename strings\n // automatically from store.get, we don't need to dirty the\n // ROOT_QUERY.__typename field if merged.__typename is equal\n // to the default string (usually \"Query\").\n this.policies.rootTypenamesById[dataId] === merged.__typename\n ) {\n delete fieldsToDirty.__typename;\n }\n\n Object.keys(fieldsToDirty).forEach((fieldName) =>\n this.group.dirty(dataId as string, fieldName)\n );\n }\n }\n }\n\n public modify(\n dataId: string,\n fields: Modifier | Modifiers>\n ): boolean {\n const storeObject = this.lookup(dataId);\n\n if (storeObject) {\n const changedFields: Record = Object.create(null);\n let needToMerge = false;\n let allDeleted = true;\n\n const sharedDetails = {\n DELETE,\n INVALIDATE,\n isReference,\n toReference: this.toReference,\n canRead: this.canRead,\n readField: (\n fieldNameOrOptions: string | ReadFieldOptions,\n from?: StoreObject | Reference\n ) =>\n this.policies.readField(\n typeof fieldNameOrOptions === \"string\" ?\n {\n fieldName: fieldNameOrOptions,\n from: from || makeReference(dataId),\n }\n : fieldNameOrOptions,\n { store: this }\n ),\n } satisfies Partial;\n\n Object.keys(storeObject).forEach((storeFieldName) => {\n const fieldName = fieldNameFromStoreName(storeFieldName);\n let fieldValue = storeObject[storeFieldName];\n if (fieldValue === void 0) return;\n const modify: Modifier | undefined =\n typeof fields === \"function\" ? fields : (\n fields[storeFieldName] || fields[fieldName]\n );\n if (modify) {\n let newValue =\n modify === delModifier ? DELETE : (\n modify(maybeDeepFreeze(fieldValue), {\n ...sharedDetails,\n fieldName,\n 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 if (newValue !== fieldValue) {\n changedFields[storeFieldName] = newValue;\n needToMerge = true;\n fieldValue = newValue;\n\n if (__DEV__) {\n const checkReference = (ref: Reference) => {\n if (this.lookup(ref.__ref) === undefined) {\n invariant.warn(\n \"cache.modify: You are trying to write a Reference that is not part of the store: %o\\n\" +\n \"Please make sure to set the `mergeIntoStore` parameter to `true` when creating a Reference that is not part of the store yet:\\n\" +\n \"`toReference(object, true)`\",\n ref\n );\n return true;\n }\n };\n if (isReference(newValue)) {\n checkReference(newValue);\n } else if (Array.isArray(newValue)) {\n // Warn about writing \"mixed\" arrays of Reference and non-Reference objects\n let seenReference: boolean = false;\n let someNonReference: unknown;\n for (const value of newValue) {\n if (isReference(value)) {\n seenReference = true;\n if (checkReference(value)) break;\n } else {\n // Do not warn on primitive values, since those could never be represented\n // by a reference. This is a valid (albeit uncommon) use case.\n if (typeof value === \"object\" && !!value) {\n const [id] = this.policies.identify(value);\n // check if object could even be referenced, otherwise we are not interested in it for this warning\n if (id) {\n someNonReference = value;\n }\n }\n }\n if (seenReference && someNonReference !== undefined) {\n invariant.warn(\n \"cache.modify: Writing an array with a mix of both References and Objects will not result in the Objects being normalized correctly.\\n\" +\n \"Please convert the object instance %o to a Reference before writing it to the cache by calling `toReference(object, true)`.\",\n someNonReference\n );\n break;\n }\n }\n }\n }\n }\n }\n }\n if (fieldValue !== void 0) {\n allDeleted = false;\n }\n });\n\n if (needToMerge) {\n this.merge(dataId, changedFields);\n\n if (allDeleted) {\n if (this instanceof Layer) {\n this.data[dataId] = void 0;\n } else {\n delete this.data[dataId];\n }\n this.group.dirty(dataId, \"__exists\");\n }\n\n return true;\n }\n }\n\n return false;\n }\n\n // If called with only one argument, removes the entire entity\n // identified by dataId. If called with a fieldName as well, removes all\n // fields of that entity whose names match fieldName according to the\n // fieldNameFromStoreName helper function. If called with a fieldName\n // and variables, removes all fields of that entity whose names match fieldName\n // and whose arguments when cached exactly match the variables passed.\n public delete(\n dataId: string,\n fieldName?: string,\n args?: Record\n ) {\n const storeObject = this.lookup(dataId);\n if (storeObject) {\n const typename = this.getFieldValue(storeObject, \"__typename\");\n const storeFieldName =\n fieldName && args ?\n this.policies.getStoreFieldName({ typename, fieldName, args })\n : fieldName;\n return this.modify(\n dataId,\n storeFieldName ?\n {\n [storeFieldName]: delModifier,\n }\n : delModifier\n );\n }\n return false;\n }\n\n public evict(options: Cache.EvictOptions, limit: EntityStore): boolean {\n let evicted = false;\n if (options.id) {\n if (hasOwn.call(this.data, options.id)) {\n evicted = this.delete(options.id, options.fieldName, options.args);\n }\n if (this instanceof Layer && this !== limit) {\n evicted = this.parent.evict(options, limit) || evicted;\n }\n // Always invalidate the field to trigger rereading of watched\n // queries, even if no cache data was modified by the eviction,\n // because queries may depend on computed fields with custom read\n // functions, whose values are not stored in the EntityStore.\n if (options.fieldName || evicted) {\n this.group.dirty(options.id, options.fieldName || \"__exists\");\n }\n }\n return evicted;\n }\n\n public clear(): void {\n this.replace(null);\n }\n\n public extract(): NormalizedCacheObject {\n const obj = this.toObject();\n const extraRootIds: string[] = [];\n this.getRootIdSet().forEach((id) => {\n if (!hasOwn.call(this.policies.rootTypenamesById, id)) {\n extraRootIds.push(id);\n }\n });\n if (extraRootIds.length) {\n obj.__META = { extraRootIds: extraRootIds.sort() };\n }\n return obj;\n }\n\n public replace(newData: NormalizedCacheObject | null): void {\n Object.keys(this.data).forEach((dataId) => {\n if (!(newData && hasOwn.call(newData, dataId))) {\n this.delete(dataId);\n }\n });\n if (newData) {\n const { __META, ...rest } = newData;\n Object.keys(rest).forEach((dataId) => {\n this.merge(dataId, rest[dataId] as StoreObject);\n });\n if (__META) {\n __META.extraRootIds.forEach(this.retain, this);\n }\n }\n }\n\n public abstract getStorage(\n idOrObj: string | StoreObject,\n ...storeFieldNames: (string | number)[]\n ): StorageType;\n\n // Maps root entity IDs to the number of times they have been retained, minus\n // the number of times they have been released. Retained entities keep other\n // entities they reference (even indirectly) from being garbage collected.\n private rootIds: {\n [rootId: string]: number;\n } = Object.create(null);\n\n public retain(rootId: string): number {\n return (this.rootIds[rootId] = (this.rootIds[rootId] || 0) + 1);\n }\n\n public release(rootId: string): number {\n if (this.rootIds[rootId] > 0) {\n const count = --this.rootIds[rootId];\n if (!count) delete this.rootIds[rootId];\n return count;\n }\n return 0;\n }\n\n // Return a Set of all the ID strings that have been retained by\n // this layer/root *and* any layers/roots beneath it.\n public getRootIdSet(ids = new Set()) {\n Object.keys(this.rootIds).forEach(ids.add, ids);\n if (this instanceof Layer) {\n this.parent.getRootIdSet(ids);\n } else {\n // Official singleton IDs like ROOT_QUERY and ROOT_MUTATION are\n // always considered roots for garbage collection, regardless of\n // their retainment counts in this.rootIds.\n Object.keys(this.policies.rootTypenamesById).forEach(ids.add, ids);\n }\n return ids;\n }\n\n // The goal of garbage collection is to remove IDs from the Root layer of the\n // store that are no longer reachable starting from any IDs that have been\n // explicitly retained (see retain and release, above). Returns an array of\n // dataId strings that were removed from the store.\n public gc() {\n const ids = this.getRootIdSet();\n const snapshot = this.toObject();\n ids.forEach((id) => {\n if (hasOwn.call(snapshot, id)) {\n // Because we are iterating over an ECMAScript Set, the IDs we add here\n // will be visited in later iterations of the forEach loop only if they\n // were not previously contained by the Set.\n Object.keys(this.findChildRefIds(id)).forEach(ids.add, ids);\n // By removing IDs from the snapshot object here, we protect them from\n // getting removed from the root store layer below.\n delete snapshot[id];\n }\n });\n const idsToRemove = Object.keys(snapshot);\n if (idsToRemove.length) {\n let root: EntityStore = this;\n while (root instanceof Layer) root = root.parent;\n idsToRemove.forEach((id) => root.delete(id));\n }\n return idsToRemove;\n }\n\n // Lazily tracks { __ref: } strings contained by this.data[dataId].\n private refs: {\n [dataId: string]: Record;\n } = Object.create(null);\n\n public findChildRefIds(dataId: string): Record {\n if (!hasOwn.call(this.refs, dataId)) {\n const found = (this.refs[dataId] = Object.create(null));\n const root = this.data[dataId];\n if (!root) return found;\n\n const workSet = new Set>([root]);\n // Within the store, only arrays and objects can contain child entity\n // references, so we can prune the traversal using this predicate:\n workSet.forEach((obj) => {\n if (isReference(obj)) {\n found[obj.__ref] = true;\n // In rare cases, a { __ref } Reference object may have other fields.\n // This often indicates a mismerging of References with StoreObjects,\n // but garbage collection should not be fooled by a stray __ref\n // property in a StoreObject (ignoring all the other fields just\n // because the StoreObject looks like a Reference). To avoid this\n // premature termination of findChildRefIds recursion, we fall through\n // to the code below, which will handle any other properties of obj.\n }\n if (isNonNullObject(obj)) {\n Object.keys(obj).forEach((key) => {\n const child = obj[key];\n // No need to add primitive values to the workSet, since they cannot\n // contain reference objects.\n if (isNonNullObject(child)) {\n workSet.add(child);\n }\n });\n }\n });\n }\n return this.refs[dataId];\n }\n\n // Used to compute cache keys specific to this.group.\n /** overload for `InMemoryCache.maybeBroadcastWatch` */\n public makeCacheKey(\n document: DocumentNode,\n callback: Cache.WatchCallback,\n details: string\n ): object;\n /** overload for `StoreReader.executeSelectionSet` */\n public makeCacheKey(\n selectionSet: SelectionSetNode,\n parent: string /* = ( Reference.__ref ) */ | StoreObject,\n varString: string | undefined,\n canonizeResults: boolean\n ): object;\n /** overload for `StoreReader.executeSubSelectedArray` */\n public makeCacheKey(\n field: FieldNode,\n array: readonly any[],\n varString: string | undefined\n ): object;\n /** @deprecated This is only meant for internal usage,\n * in your own code please use a `Trie` instance instead. */\n public makeCacheKey(...args: any[]): object;\n public makeCacheKey() {\n return this.group.keyMaker.lookupArray(arguments);\n }\n\n // Bound function that can be passed around to provide easy access to fields\n // of Reference objects as well as ordinary objects.\n public getFieldValue = (\n objectOrReference: StoreObject | Reference | undefined,\n storeFieldName: string\n ) =>\n maybeDeepFreeze(\n isReference(objectOrReference) ?\n this.get(objectOrReference.__ref, storeFieldName)\n : objectOrReference && objectOrReference[storeFieldName]\n ) as SafeReadonly;\n\n // Returns true for non-normalized StoreObjects and non-dangling\n // References, indicating that readField(name, objOrRef) has a chance of\n // working. Useful for filtering out dangling references from lists.\n public canRead: CanReadFunction = (objOrRef) => {\n return isReference(objOrRef) ?\n this.has(objOrRef.__ref)\n : typeof objOrRef === \"object\";\n };\n\n // Bound function that converts an id or an object with a __typename and\n // primary key fields to a Reference object. If called with a Reference object,\n // that same Reference object is returned. Pass true for mergeIntoStore to persist\n // an object into the store.\n public toReference: ToReferenceFunction = (objOrIdOrRef, mergeIntoStore) => {\n if (typeof objOrIdOrRef === \"string\") {\n return makeReference(objOrIdOrRef);\n }\n\n if (isReference(objOrIdOrRef)) {\n return objOrIdOrRef;\n }\n\n const [id] = this.policies.identify(objOrIdOrRef);\n\n if (id) {\n const ref = makeReference(id);\n if (mergeIntoStore) {\n this.merge(id, objOrIdOrRef);\n }\n return ref;\n }\n };\n}\n\nexport type FieldValueGetter = EntityStore[\"getFieldValue\"];\n\n// A single CacheGroup represents a set of one or more EntityStore objects,\n// typically the Root store in a CacheGroup by itself, and all active Layer\n// stores in a group together. A single EntityStore object belongs to only\n// one CacheGroup, store.group. The CacheGroup is responsible for tracking\n// dependencies, so store.group is helpful for generating unique keys for\n// cached results that need to be invalidated when/if those dependencies\n// change. If we used the EntityStore objects themselves as cache keys (that\n// is, store rather than store.group), the cache would become unnecessarily\n// fragmented by all the different Layer objects. Instead, the CacheGroup\n// approach allows all optimistic Layer objects in the same linked list to\n// belong to one CacheGroup, with the non-optimistic Root object belonging\n// to another CacheGroup, allowing resultCaching dependencies to be tracked\n// separately for optimistic and non-optimistic entity data.\nclass CacheGroup {\n private d: OptimisticDependencyFunction | null = null;\n\n // Used by the EntityStore#makeCacheKey method to compute cache keys\n // specific to this CacheGroup.\n public keyMaker!: Trie;\n\n constructor(\n public readonly caching: boolean,\n private parent: CacheGroup | null = null\n ) {\n this.resetCaching();\n }\n\n public resetCaching() {\n this.d = this.caching ? dep() : null;\n this.keyMaker = new Trie(canUseWeakMap);\n }\n\n public depend(dataId: string, storeFieldName: string) {\n if (this.d) {\n this.d(makeDepKey(dataId, storeFieldName));\n const fieldName = fieldNameFromStoreName(storeFieldName);\n if (fieldName !== storeFieldName) {\n // Fields with arguments that contribute extra identifying\n // information to the fieldName (thus forming the storeFieldName)\n // depend not only on the full storeFieldName but also on the\n // short fieldName, so the field can be invalidated using either\n // level of specificity.\n this.d(makeDepKey(dataId, fieldName));\n }\n if (this.parent) {\n this.parent.depend(dataId, storeFieldName);\n }\n }\n }\n\n public dirty(dataId: string, storeFieldName: string) {\n if (this.d) {\n this.d.dirty(\n makeDepKey(dataId, storeFieldName),\n // When storeFieldName === \"__exists\", that means the entity identified\n // by dataId has either disappeared from the cache or was newly added,\n // so the result caching system would do well to \"forget everything it\n // knows\" about that object. To achieve that kind of invalidation, we\n // not only dirty the associated result cache entry, but also remove it\n // completely from the dependency graph. For the optimism implementation\n // details, see https://github.com/benjamn/optimism/pull/195.\n storeFieldName === \"__exists\" ? \"forget\" : \"setDirty\"\n );\n }\n }\n}\n\nfunction makeDepKey(dataId: string, storeFieldName: string) {\n // Since field names cannot have '#' characters in them, this method\n // of joining the field name and the ID should be unambiguous, and much\n // cheaper than JSON.stringify([dataId, fieldName]).\n return storeFieldName + \"#\" + dataId;\n}\n\nexport function maybeDependOnExistenceOfEntity(\n store: NormalizedCache,\n entityId: string\n) {\n if (supportsResultCaching(store)) {\n // We use this pseudo-field __exists elsewhere in the EntityStore code to\n // represent changes in the existence of the entity object identified by\n // entityId. This dependency gets reliably dirtied whenever an object with\n // this ID is deleted (or newly created) within this group, so any result\n // cache entries (for example, StoreReader#executeSelectionSet results) that\n // depend on __exists for this entityId will get dirtied as well, leading to\n // the eventual recomputation (instead of reuse) of those result objects the\n // next time someone reads them from the cache.\n store.group.depend(entityId, \"__exists\");\n }\n}\n\nexport namespace EntityStore {\n // Refer to this class as EntityStore.Root outside this namespace.\n export class Root extends EntityStore {\n constructor({\n policies,\n resultCaching = true,\n seed,\n }: {\n policies: Policies;\n resultCaching?: boolean;\n seed?: NormalizedCacheObject;\n }) {\n super(policies, new CacheGroup(resultCaching));\n if (seed) this.replace(seed);\n }\n\n public readonly stump = new Stump(this);\n\n public addLayer(\n layerId: string,\n replay: (layer: EntityStore) => any\n ): Layer {\n // Adding an optimistic Layer on top of the Root actually adds the Layer\n // on top of the Stump, so the Stump always comes between the Root and\n // any Layer objects that we've added.\n return this.stump.addLayer(layerId, replay);\n }\n\n public removeLayer(): Root {\n // Never remove the root layer.\n return this;\n }\n\n public readonly storageTrie = new Trie(canUseWeakMap);\n public getStorage(): StorageType {\n return this.storageTrie.lookupArray(arguments);\n }\n }\n}\n\n// Not exported, since all Layer instances are created by the addLayer method\n// of the EntityStore.Root class.\nclass Layer extends EntityStore {\n constructor(\n public readonly id: string,\n public readonly parent: EntityStore,\n public readonly replay: (layer: EntityStore) => any,\n public readonly group: CacheGroup\n ) {\n super(parent.policies, group);\n replay(this);\n }\n\n public addLayer(layerId: string, replay: (layer: EntityStore) => any): Layer {\n return new Layer(layerId, this, replay, this.group);\n }\n\n public removeLayer(layerId: string): EntityStore {\n // Remove all instances of the given id, not just the first one.\n const parent = this.parent.removeLayer(layerId);\n\n if (layerId === this.id) {\n if (this.group.caching) {\n // Dirty every ID we're removing. Technically we might be able to avoid\n // dirtying fields that have values in higher layers, but we don't have\n // easy access to higher layers here, and we're about to recreate those\n // layers anyway (see parent.addLayer below).\n Object.keys(this.data).forEach((dataId) => {\n const ownStoreObject = this.data[dataId];\n const parentStoreObject = parent[\"lookup\"](dataId);\n if (!parentStoreObject) {\n // The StoreObject identified by dataId was defined in this layer\n // but will be undefined in the parent layer, so we can delete the\n // whole entity using this.delete(dataId). Since we're about to\n // throw this layer away, the only goal of this deletion is to dirty\n // the removed fields.\n this.delete(dataId);\n } else if (!ownStoreObject) {\n // This layer had an entry for dataId but it was undefined, which\n // means the entity was deleted in this layer, and it's about to\n // become undeleted when we remove this layer, so we need to dirty\n // all fields that are about to be reexposed.\n this.group.dirty(dataId, \"__exists\");\n Object.keys(parentStoreObject).forEach((storeFieldName) => {\n this.group.dirty(dataId, storeFieldName);\n });\n } else if (ownStoreObject !== parentStoreObject) {\n // If ownStoreObject is not exactly the same as parentStoreObject,\n // dirty any fields whose values will change as a result of this\n // removal.\n Object.keys(ownStoreObject).forEach((storeFieldName) => {\n if (\n !equal(\n ownStoreObject[storeFieldName],\n parentStoreObject[storeFieldName]\n )\n ) {\n this.group.dirty(dataId, storeFieldName);\n }\n });\n }\n });\n }\n\n return parent;\n }\n\n // No changes are necessary if the parent chain remains identical.\n if (parent === this.parent) return this;\n\n // Recreate this layer on top of the new parent.\n return parent.addLayer(this.id, this.replay);\n }\n\n public toObject(): NormalizedCacheObject {\n return {\n ...this.parent.toObject(),\n ...this.data,\n };\n }\n\n public findChildRefIds(dataId: string): Record {\n const fromParent = this.parent.findChildRefIds(dataId);\n return hasOwn.call(this.data, dataId) ?\n {\n ...fromParent,\n ...super.findChildRefIds(dataId),\n }\n : fromParent;\n }\n\n public getStorage(): StorageType {\n let p: EntityStore = this.parent;\n while ((p as Layer).parent) p = (p as Layer).parent;\n return p.getStorage.apply(\n p,\n // @ts-expect-error\n arguments\n );\n }\n}\n\n// Represents a Layer permanently installed just above the Root, which allows\n// reading optimistically (and registering optimistic dependencies) even when\n// no optimistic layers are currently active. The stump.group CacheGroup object\n// is shared by any/all Layer objects added on top of the Stump.\nclass Stump extends Layer {\n constructor(root: EntityStore.Root) {\n super(\n \"EntityStore.Stump\",\n root,\n () => {},\n new CacheGroup(root.group.caching, root.group)\n );\n }\n\n public removeLayer() {\n // Never remove the Stump layer.\n return this;\n }\n\n public merge(older: string | StoreObject, newer: string | StoreObject) {\n // We never want to write any data into the Stump, so we forward any merge\n // calls to the Root instead. Another option here would be to throw an\n // exception, but the toReference(object, true) function can sometimes\n // trigger Stump writes (which used to be Root writes, before the Stump\n // concept was introduced).\n return this.parent.merge(older, newer);\n }\n}\n\nfunction storeObjectReconciler(\n existingObject: StoreObject,\n incomingObject: StoreObject,\n property: string | number\n): StoreValue {\n const existingValue = existingObject[property];\n const incomingValue = incomingObject[property];\n // Wherever there is a key collision, prefer the incoming value, unless\n // it is deeply equal to the existing value. It's worth checking deep\n // equality here (even though blindly returning incoming would be\n // logically correct) because preserving the referential identity of\n // existing data can prevent needless rereading and rerendering.\n return equal(existingValue, incomingValue) ? existingValue : incomingValue;\n}\n\nexport function supportsResultCaching(store: any): store is EntityStore {\n // When result caching is disabled, store.depend will be null.\n return !!(store instanceof EntityStore && store.group.caching);\n}\n","import { Trie } from \"@wry/trie\";\nimport {\n canUseWeakMap,\n canUseWeakSet,\n isNonNullObject as isObjectOrArray,\n} from \"../../utilities/index.js\";\nimport { isArray } from \"./helpers.js\";\n\nfunction shallowCopy(value: T): T {\n if (isObjectOrArray(value)) {\n return isArray(value) ?\n (value.slice(0) as any as T)\n : { __proto__: Object.getPrototypeOf(value), ...value };\n }\n return value;\n}\n\n// When programmers talk about the \"canonical form\" of an object, they\n// usually have the following meaning in mind, which I've copied from\n// https://en.wiktionary.org/wiki/canonical_form:\n//\n// 1. A standard or normal presentation of a mathematical entity [or\n// object]. A canonical form is an element of a set of representatives\n// of equivalence classes of forms such that there is a function or\n// procedure which projects every element of each equivalence class\n// onto that one element, the canonical form of that equivalence\n// class. The canonical form is expected to be simpler than the rest of\n// the forms in some way.\n//\n// That's a long-winded way of saying any two objects that have the same\n// canonical form may be considered equivalent, even if they are !==,\n// which usually means the objects are structurally equivalent (deeply\n// equal), but don't necessarily use the same memory.\n//\n// Like a literary or musical canon, this ObjectCanon class represents a\n// collection of unique canonical items (JavaScript objects), with the\n// important property that canon.admit(a) === canon.admit(b) if a and b\n// are deeply equal to each other. In terms of the definition above, the\n// canon.admit method is the \"function or procedure which projects every\"\n// object \"onto that one element, the canonical form.\"\n//\n// In the worst case, the canonicalization process may involve looking at\n// every property in the provided object tree, so it takes the same order\n// of time as deep equality checking. Fortunately, already-canonicalized\n// objects are returned immediately from canon.admit, so the presence of\n// canonical subtrees tends to speed up canonicalization.\n//\n// Since consumers of canonical objects can check for deep equality in\n// constant time, canonicalizing cache results can massively improve the\n// performance of application code that skips re-rendering unchanged\n// results, such as \"pure\" UI components in a framework like React.\n//\n// Of course, since canonical objects may be shared widely between\n// unrelated consumers, it's important to think of them as immutable, even\n// though they are not actually frozen with Object.freeze in production,\n// due to the extra performance overhead that comes with frozen objects.\n//\n// Custom scalar objects whose internal class name is neither Array nor\n// Object can be included safely in the admitted tree, but they will not\n// be replaced with a canonical version (to put it another way, they are\n// assumed to be canonical already).\n//\n// If we ignore custom objects, no detection of cycles or repeated object\n// references is currently required by the StoreReader class, since\n// GraphQL result objects are JSON-serializable trees (and thus contain\n// neither cycles nor repeated subtrees), so we can avoid the complexity\n// of keeping track of objects we've already seen during the recursion of\n// the admit method.\n//\n// In the future, we may consider adding additional cases to the switch\n// statement to handle other common object types, such as \"[object Date]\"\n// objects, as needed.\nexport class ObjectCanon {\n // Set of all canonical objects this ObjectCanon has admitted, allowing\n // canon.admit to return previously-canonicalized objects immediately.\n private known = new (canUseWeakSet ? WeakSet : Set)();\n\n // Efficient storage/lookup structure for canonical objects.\n private pool = new Trie<{\n array?: any[];\n object?: Record;\n keys?: SortedKeysInfo;\n }>(canUseWeakMap);\n\n public isKnown(value: any): boolean {\n return isObjectOrArray(value) && this.known.has(value);\n }\n\n // Make the ObjectCanon assume this value has already been\n // canonicalized.\n private passes = new WeakMap();\n public pass(value: T): T;\n public pass(value: any) {\n if (isObjectOrArray(value)) {\n const copy = shallowCopy(value);\n this.passes.set(copy, value);\n return copy;\n }\n return value;\n }\n\n // Returns the canonical version of value.\n public admit(value: T): T;\n public admit(value: any) {\n if (isObjectOrArray(value)) {\n const original = this.passes.get(value);\n if (original) return original;\n\n const proto = Object.getPrototypeOf(value);\n switch (proto) {\n case Array.prototype: {\n if (this.known.has(value)) return value;\n const array: any[] = (value as any[]).map(this.admit, this);\n // Arrays are looked up in the Trie using their recursively\n // canonicalized elements, and the known version of the array is\n // preserved as node.array.\n const node = this.pool.lookupArray(array);\n if (!node.array) {\n this.known.add((node.array = array));\n // Since canonical arrays may be shared widely between\n // unrelated consumers, it's important to regard them as\n // immutable, even if they are not frozen in production.\n if (__DEV__) {\n Object.freeze(array);\n }\n }\n return node.array;\n }\n\n case null:\n case Object.prototype: {\n if (this.known.has(value)) return value;\n const proto = Object.getPrototypeOf(value);\n const array = [proto];\n const keys = this.sortedKeys(value);\n array.push(keys.json);\n const firstValueIndex = array.length;\n keys.sorted.forEach((key) => {\n array.push(this.admit((value as any)[key]));\n });\n // Objects are looked up in the Trie by their prototype (which\n // is *not* recursively canonicalized), followed by a JSON\n // representation of their (sorted) keys, followed by the\n // sequence of recursively canonicalized values corresponding to\n // those keys. To keep the final results unambiguous with other\n // sequences (such as arrays that just happen to contain [proto,\n // keys.json, value1, value2, ...]), the known version of the\n // object is stored as node.object.\n const node = this.pool.lookupArray(array);\n if (!node.object) {\n const obj = (node.object = Object.create(proto));\n this.known.add(obj);\n keys.sorted.forEach((key, i) => {\n obj[key] = array[firstValueIndex + i];\n });\n // Since canonical objects may be shared widely between\n // unrelated consumers, it's important to regard them as\n // immutable, even if they are not frozen in production.\n if (__DEV__) {\n Object.freeze(obj);\n }\n }\n return node.object;\n }\n }\n }\n return value;\n }\n\n // It's worthwhile to cache the sorting of arrays of strings, since the\n // same initial unsorted arrays tend to be encountered many times.\n // Fortunately, we can reuse the Trie machinery to look up the sorted\n // arrays in linear time (which is faster than sorting large arrays).\n private sortedKeys(obj: object) {\n const keys = Object.keys(obj);\n const node = this.pool.lookupArray(keys);\n if (!node.keys) {\n keys.sort();\n const json = JSON.stringify(keys);\n if (!(node.keys = this.keysByJSON.get(json))) {\n this.keysByJSON.set(json, (node.keys = { sorted: keys, json }));\n }\n }\n return node.keys;\n }\n // Arrays that contain the same elements in a different order can share\n // the same SortedKeysInfo object, to save memory.\n private keysByJSON = new Map();\n\n // This has to come last because it depends on keysByJSON.\n public readonly empty = this.admit({});\n}\n\ntype SortedKeysInfo = {\n sorted: string[];\n json: string;\n};\n","import { invariant, newInvariantError } from \"../../utilities/globals/index.js\";\n\nimport type { DocumentNode, FieldNode, SelectionSetNode } from \"graphql\";\nimport { Kind } from \"graphql\";\nimport type { OptimisticWrapperFunction } from \"optimism\";\nimport { wrap } from \"optimism\";\n\nimport type {\n Reference,\n StoreObject,\n FragmentMap,\n FragmentMapFunction,\n} from \"../../utilities/index.js\";\nimport {\n isField,\n resultKeyNameFromField,\n isReference,\n makeReference,\n shouldInclude,\n addTypenameToDocument,\n getDefaultValues,\n getMainDefinition,\n getQueryDefinition,\n getFragmentFromSelection,\n maybeDeepFreeze,\n mergeDeepArray,\n DeepMerger,\n isNonNullObject,\n canUseWeakMap,\n compact,\n canonicalStringify,\n cacheSizes,\n defaultCacheSizes,\n} from \"../../utilities/index.js\";\nimport type { Cache } from \"../core/types/Cache.js\";\nimport type {\n DiffQueryAgainstStoreOptions,\n InMemoryCacheConfig,\n NormalizedCache,\n ReadMergeModifyContext,\n} from \"./types.js\";\nimport {\n maybeDependOnExistenceOfEntity,\n supportsResultCaching,\n} from \"./entityStore.js\";\nimport {\n isArray,\n extractFragmentContext,\n getTypenameFromStoreObject,\n shouldCanonizeResults,\n} from \"./helpers.js\";\nimport type { Policies } from \"./policies.js\";\nimport type { InMemoryCache } from \"./inMemoryCache.js\";\nimport type { MissingTree } from \"../core/types/common.js\";\nimport { MissingFieldError } from \"../core/types/common.js\";\nimport { ObjectCanon } from \"./object-canon.js\";\n\nexport type VariableMap = { [name: string]: any };\n\ninterface ReadContext extends ReadMergeModifyContext {\n query: DocumentNode;\n policies: Policies;\n canonizeResults: boolean;\n fragmentMap: FragmentMap;\n lookupFragment: FragmentMapFunction;\n}\n\nexport type ExecResult = {\n result: R;\n missing?: MissingTree;\n};\n\ntype ExecSelectionSetOptions = {\n selectionSet: SelectionSetNode;\n objectOrReference: StoreObject | Reference;\n enclosingRef: Reference;\n context: ReadContext;\n};\n\ntype ExecSubSelectedArrayOptions = {\n field: FieldNode;\n array: readonly any[];\n enclosingRef: Reference;\n context: ReadContext;\n};\n\nexport interface StoreReaderConfig {\n cache: InMemoryCache;\n addTypename?: boolean;\n resultCacheMaxSize?: number;\n canonizeResults?: boolean;\n canon?: ObjectCanon;\n fragments?: InMemoryCacheConfig[\"fragments\"];\n}\n\n// Arguments type after keyArgs translation.\ntype ExecSelectionSetKeyArgs = [\n SelectionSetNode,\n StoreObject | Reference,\n ReadMergeModifyContext,\n boolean,\n];\n\nfunction execSelectionSetKeyArgs(\n options: ExecSelectionSetOptions\n): ExecSelectionSetKeyArgs {\n return [\n options.selectionSet,\n options.objectOrReference,\n options.context,\n // We split out this property so we can pass different values\n // independently without modifying options.context itself.\n options.context.canonizeResults,\n ];\n}\n\nexport class StoreReader {\n // cached version of executeSelectionSet\n private executeSelectionSet: OptimisticWrapperFunction<\n [ExecSelectionSetOptions], // Actual arguments tuple type.\n ExecResult, // Actual return type.\n ExecSelectionSetKeyArgs\n >;\n\n // cached version of executeSubSelectedArray\n private executeSubSelectedArray: OptimisticWrapperFunction<\n [ExecSubSelectedArrayOptions],\n ExecResult,\n [ExecSubSelectedArrayOptions]\n >;\n\n private config: {\n cache: InMemoryCache;\n addTypename: boolean;\n resultCacheMaxSize?: number;\n canonizeResults: boolean;\n fragments?: InMemoryCacheConfig[\"fragments\"];\n };\n\n private knownResults = new (canUseWeakMap ? WeakMap : Map)<\n Record,\n SelectionSetNode\n >();\n\n public canon: ObjectCanon;\n public resetCanon() {\n this.canon = new ObjectCanon();\n }\n\n constructor(config: StoreReaderConfig) {\n this.config = compact(config, {\n addTypename: config.addTypename !== false,\n canonizeResults: shouldCanonizeResults(config),\n });\n\n this.canon = config.canon || new ObjectCanon();\n\n // memoized functions in this class will be \"garbage-collected\"\n // by recreating the whole `StoreReader` in\n // `InMemoryCache.resetResultsCache`\n // (triggered from `InMemoryCache.gc` with `resetResultCache: true`)\n this.executeSelectionSet = wrap(\n (options) => {\n const { canonizeResults } = options.context;\n\n const peekArgs = execSelectionSetKeyArgs(options);\n\n // Negate this boolean option so we can find out if we've already read\n // this result using the other boolean value.\n peekArgs[3] = !canonizeResults;\n\n const other = this.executeSelectionSet.peek(...peekArgs);\n\n if (other) {\n if (canonizeResults) {\n return {\n ...other,\n // If we previously read this result without canonizing it, we can\n // reuse that result simply by canonizing it now.\n result: this.canon.admit(other.result),\n };\n }\n // If we previously read this result with canonization enabled, we can\n // return that canonized result as-is.\n return other;\n }\n\n maybeDependOnExistenceOfEntity(\n options.context.store,\n options.enclosingRef.__ref\n );\n\n // Finally, if we didn't find any useful previous results, run the real\n // execSelectionSetImpl method with the given options.\n return this.execSelectionSetImpl(options);\n },\n {\n max:\n this.config.resultCacheMaxSize ||\n cacheSizes[\"inMemoryCache.executeSelectionSet\"] ||\n defaultCacheSizes[\"inMemoryCache.executeSelectionSet\"],\n keyArgs: execSelectionSetKeyArgs,\n // Note that the parameters of makeCacheKey are determined by the\n // array returned by keyArgs.\n makeCacheKey(selectionSet, parent, context, canonizeResults) {\n if (supportsResultCaching(context.store)) {\n return context.store.makeCacheKey(\n selectionSet,\n isReference(parent) ? parent.__ref : parent,\n context.varString,\n canonizeResults\n );\n }\n },\n }\n );\n\n this.executeSubSelectedArray = wrap(\n (options: ExecSubSelectedArrayOptions) => {\n maybeDependOnExistenceOfEntity(\n options.context.store,\n options.enclosingRef.__ref\n );\n return this.execSubSelectedArrayImpl(options);\n },\n {\n max:\n this.config.resultCacheMaxSize ||\n cacheSizes[\"inMemoryCache.executeSubSelectedArray\"] ||\n defaultCacheSizes[\"inMemoryCache.executeSubSelectedArray\"],\n makeCacheKey({ field, array, context }) {\n if (supportsResultCaching(context.store)) {\n return context.store.makeCacheKey(field, array, context.varString);\n }\n },\n }\n );\n }\n\n /**\n * Given a store and a query, return as much of the result as possible and\n * identify if any data was missing from the store.\n */\n public diffQueryAgainstStore({\n store,\n query,\n rootId = \"ROOT_QUERY\",\n variables,\n returnPartialData = true,\n canonizeResults = this.config.canonizeResults,\n }: DiffQueryAgainstStoreOptions): Cache.DiffResult {\n const policies = this.config.cache.policies;\n\n variables = {\n ...getDefaultValues(getQueryDefinition(query)),\n ...variables!,\n };\n\n const rootRef = makeReference(rootId);\n const execResult = this.executeSelectionSet({\n selectionSet: getMainDefinition(query).selectionSet,\n objectOrReference: rootRef,\n enclosingRef: rootRef,\n context: {\n store,\n query,\n policies,\n variables,\n varString: canonicalStringify(variables),\n canonizeResults,\n ...extractFragmentContext(query, this.config.fragments),\n },\n });\n\n let missing: MissingFieldError[] | undefined;\n if (execResult.missing) {\n // For backwards compatibility we still report an array of\n // MissingFieldError objects, even though there will only ever be at most\n // one of them, now that all missing field error messages are grouped\n // together in the execResult.missing tree.\n missing = [\n new MissingFieldError(\n firstMissing(execResult.missing)!,\n execResult.missing,\n query,\n variables\n ),\n ];\n if (!returnPartialData) {\n throw missing[0];\n }\n }\n\n return {\n result: execResult.result,\n complete: !missing,\n missing,\n };\n }\n\n public isFresh(\n result: Record,\n parent: StoreObject | Reference,\n selectionSet: SelectionSetNode,\n context: ReadMergeModifyContext\n ): boolean {\n if (\n supportsResultCaching(context.store) &&\n this.knownResults.get(result) === selectionSet\n ) {\n const latest = this.executeSelectionSet.peek(\n selectionSet,\n parent,\n context,\n // If result is canonical, then it could only have been previously\n // cached by the canonizing version of executeSelectionSet, so we can\n // avoid checking both possibilities here.\n this.canon.isKnown(result)\n );\n if (latest && result === latest.result) {\n return true;\n }\n }\n return false;\n }\n\n // Uncached version of executeSelectionSet.\n private execSelectionSetImpl({\n selectionSet,\n objectOrReference,\n enclosingRef,\n context,\n }: ExecSelectionSetOptions): ExecResult {\n if (\n isReference(objectOrReference) &&\n !context.policies.rootTypenamesById[objectOrReference.__ref] &&\n !context.store.has(objectOrReference.__ref)\n ) {\n return {\n result: this.canon.empty,\n missing: `Dangling reference to missing ${objectOrReference.__ref} object`,\n };\n }\n\n const { variables, policies, store } = context;\n const typename = store.getFieldValue(\n objectOrReference,\n \"__typename\"\n );\n\n const objectsToMerge: Record[] = [];\n let missing: MissingTree | undefined;\n const missingMerger = new DeepMerger();\n\n if (\n this.config.addTypename &&\n typeof typename === \"string\" &&\n !policies.rootIdsByTypename[typename]\n ) {\n // Ensure we always include a default value for the __typename\n // field, if we have one, and this.config.addTypename is true. Note\n // that this field can be overridden by other merged objects.\n objectsToMerge.push({ __typename: typename });\n }\n\n function handleMissing(result: ExecResult, resultName: string): T {\n if (result.missing) {\n missing = missingMerger.merge(missing, {\n [resultName]: result.missing,\n });\n }\n return result.result;\n }\n\n const workSet = new Set(selectionSet.selections);\n\n workSet.forEach((selection) => {\n // Omit fields with directives @skip(if: ) or\n // @include(if: ).\n if (!shouldInclude(selection, variables)) return;\n\n if (isField(selection)) {\n let fieldValue = policies.readField(\n {\n fieldName: selection.name.value,\n field: selection,\n variables: context.variables,\n from: objectOrReference,\n },\n context\n );\n\n const resultName = resultKeyNameFromField(selection);\n\n if (fieldValue === void 0) {\n if (!addTypenameToDocument.added(selection)) {\n missing = missingMerger.merge(missing, {\n [resultName]: `Can't find field '${selection.name.value}' on ${\n isReference(objectOrReference) ?\n objectOrReference.__ref + \" object\"\n : \"object \" + JSON.stringify(objectOrReference, null, 2)\n }`,\n });\n }\n } else if (isArray(fieldValue)) {\n fieldValue = handleMissing(\n this.executeSubSelectedArray({\n field: selection,\n array: fieldValue,\n enclosingRef,\n context,\n }),\n resultName\n );\n } else if (!selection.selectionSet) {\n // If the field does not have a selection set, then we handle it\n // as a scalar value. To keep this.canon from canonicalizing\n // this value, we use this.canon.pass to wrap fieldValue in a\n // Pass object that this.canon.admit will later unwrap as-is.\n if (context.canonizeResults) {\n fieldValue = this.canon.pass(fieldValue);\n }\n } else if (fieldValue != null) {\n // In this case, because we know the field has a selection set,\n // it must be trying to query a GraphQLObjectType, which is why\n // fieldValue must be != null.\n fieldValue = handleMissing(\n this.executeSelectionSet({\n selectionSet: selection.selectionSet,\n objectOrReference: fieldValue as StoreObject | Reference,\n enclosingRef: isReference(fieldValue) ? fieldValue : enclosingRef,\n context,\n }),\n resultName\n );\n }\n\n if (fieldValue !== void 0) {\n objectsToMerge.push({ [resultName]: fieldValue });\n }\n } else {\n const fragment = getFragmentFromSelection(\n selection,\n context.lookupFragment\n );\n\n if (!fragment && selection.kind === Kind.FRAGMENT_SPREAD) {\n throw newInvariantError(`No fragment named %s`, selection.name.value);\n }\n\n if (fragment && policies.fragmentMatches(fragment, typename)) {\n fragment.selectionSet.selections.forEach(workSet.add, workSet);\n }\n }\n });\n\n const result = mergeDeepArray(objectsToMerge);\n const finalResult: ExecResult = { result, missing };\n const frozen =\n context.canonizeResults ?\n this.canon.admit(finalResult)\n // Since this.canon is normally responsible for freezing results (only in\n // development), freeze them manually if canonization is disabled.\n : maybeDeepFreeze(finalResult);\n\n // Store this result with its selection set so that we can quickly\n // recognize it again in the StoreReader#isFresh method.\n if (frozen.result) {\n this.knownResults.set(frozen.result, selectionSet);\n }\n\n return frozen;\n }\n\n // Uncached version of executeSubSelectedArray.\n private execSubSelectedArrayImpl({\n field,\n array,\n enclosingRef,\n context,\n }: ExecSubSelectedArrayOptions): ExecResult {\n let missing: MissingTree | undefined;\n let missingMerger = new DeepMerger();\n\n function handleMissing(childResult: ExecResult, i: number): T {\n if (childResult.missing) {\n missing = missingMerger.merge(missing, { [i]: childResult.missing });\n }\n return childResult.result;\n }\n\n if (field.selectionSet) {\n array = array.filter(context.store.canRead);\n }\n\n array = array.map((item, i) => {\n // null value in array\n if (item === null) {\n return null;\n }\n\n // This is a nested array, recurse\n if (isArray(item)) {\n return handleMissing(\n this.executeSubSelectedArray({\n field,\n array: item,\n enclosingRef,\n context,\n }),\n i\n );\n }\n\n // This is an object, run the selection set on it\n if (field.selectionSet) {\n return handleMissing(\n this.executeSelectionSet({\n selectionSet: field.selectionSet,\n objectOrReference: item,\n enclosingRef: isReference(item) ? item : enclosingRef,\n context,\n }),\n i\n );\n }\n\n if (__DEV__) {\n assertSelectionSetForIdValue(context.store, field, item);\n }\n\n return item;\n });\n\n return {\n result: context.canonizeResults ? this.canon.admit(array) : array,\n missing,\n };\n }\n}\n\nfunction firstMissing(tree: MissingTree): string | undefined {\n try {\n JSON.stringify(tree, (_, value) => {\n if (typeof value === \"string\") throw value;\n return value;\n });\n } catch (result) {\n return result as string;\n }\n}\n\nfunction assertSelectionSetForIdValue(\n store: NormalizedCache,\n field: FieldNode,\n fieldValue: any\n) {\n if (!field.selectionSet) {\n const workSet = new Set([fieldValue]);\n workSet.forEach((value) => {\n if (isNonNullObject(value)) {\n invariant(\n !isReference(value),\n `Missing selection set for object of type %s returned for query field %s`,\n getTypenameFromStoreObject(store, value),\n field.name.value\n );\n Object.values(value).forEach(workSet.add, workSet);\n }\n });\n }\n}\n","import { invariant } from \"../../utilities/globals/index.js\";\n\nimport {\n argumentsObjectFromField,\n DeepMerger,\n isNonEmptyArray,\n isNonNullObject,\n} from \"../../utilities/index.js\";\n\nimport { hasOwn, isArray } from \"./helpers.js\";\nimport type {\n KeySpecifier,\n KeyFieldsFunction,\n KeyArgsFunction,\n} from \"./policies.js\";\n\n// Mapping from JSON-encoded KeySpecifier strings to associated information.\nconst specifierInfoCache: Record<\n string,\n {\n paths?: string[][];\n keyFieldsFn?: KeyFieldsFunction;\n keyArgsFn?: KeyArgsFunction;\n }\n> = Object.create(null);\n\nfunction lookupSpecifierInfo(spec: KeySpecifier) {\n // It's safe to encode KeySpecifier arrays with JSON.stringify, since they're\n // just arrays of strings or nested KeySpecifier arrays, and the order of the\n // array elements is important (and suitably preserved by JSON.stringify).\n const cacheKey = JSON.stringify(spec);\n return (\n specifierInfoCache[cacheKey] ||\n (specifierInfoCache[cacheKey] = Object.create(null))\n );\n}\n\nexport function keyFieldsFnFromSpecifier(\n specifier: KeySpecifier\n): KeyFieldsFunction {\n const info = lookupSpecifierInfo(specifier);\n\n return (\n info.keyFieldsFn ||\n (info.keyFieldsFn = (object, context) => {\n const extract: typeof extractKey = (from, key) =>\n context.readField(key, from);\n\n const keyObject = (context.keyObject = collectSpecifierPaths(\n specifier,\n (schemaKeyPath) => {\n let extracted = extractKeyPath(\n context.storeObject,\n schemaKeyPath,\n // Using context.readField to extract paths from context.storeObject\n // allows the extraction to see through Reference objects and respect\n // custom read functions.\n extract\n );\n\n if (\n extracted === void 0 &&\n object !== context.storeObject &&\n hasOwn.call(object, schemaKeyPath[0])\n ) {\n // If context.storeObject fails to provide a value for the requested\n // path, fall back to the raw result object, if it has a top-level key\n // matching the first key in the path (schemaKeyPath[0]). This allows\n // key fields included in the written data to be saved in the cache\n // even if they are not selected explicitly in context.selectionSet.\n // Not being mentioned by context.selectionSet is convenient here,\n // since it means these extra fields cannot be affected by field\n // aliasing, which is why we can use extractKey instead of\n // context.readField for this extraction.\n extracted = extractKeyPath(object, schemaKeyPath, extractKey);\n }\n\n invariant(\n extracted !== void 0,\n `Missing field '%s' while extracting keyFields from %s`,\n schemaKeyPath.join(\".\"),\n object\n );\n\n return extracted;\n }\n ));\n\n return `${context.typename}:${JSON.stringify(keyObject)}`;\n })\n );\n}\n\n// The keyArgs extraction process is roughly analogous to keyFields extraction,\n// but there are no aliases involved, missing fields are tolerated (by merely\n// omitting them from the key), and drawing from field.directives or variables\n// is allowed (in addition to drawing from the field's arguments object).\n// Concretely, these differences mean passing a different key path extractor\n// function to collectSpecifierPaths, reusing the shared extractKeyPath helper\n// wherever possible.\nexport function keyArgsFnFromSpecifier(\n specifier: KeySpecifier\n): KeyArgsFunction {\n const info = lookupSpecifierInfo(specifier);\n\n return (\n info.keyArgsFn ||\n (info.keyArgsFn = (args, { field, variables, fieldName }) => {\n const collected = collectSpecifierPaths(specifier, (keyPath) => {\n const firstKey = keyPath[0];\n const firstChar = firstKey.charAt(0);\n\n if (firstChar === \"@\") {\n if (field && isNonEmptyArray(field.directives)) {\n const directiveName = firstKey.slice(1);\n // If the directive appears multiple times, only the first\n // occurrence's arguments will be used. TODO Allow repetition?\n // TODO Cache this work somehow, a la aliasMap?\n const d = field.directives.find(\n (d) => d.name.value === directiveName\n );\n // Fortunately argumentsObjectFromField works for DirectiveNode!\n const directiveArgs = d && argumentsObjectFromField(d, variables);\n // For directives without arguments (d defined, but directiveArgs ===\n // null), the presence or absence of the directive still counts as\n // part of the field key, so we return null in those cases. If no\n // directive with this name was found for this field (d undefined and\n // thus directiveArgs undefined), we return undefined, which causes\n // this value to be omitted from the key object returned by\n // collectSpecifierPaths.\n return (\n directiveArgs &&\n extractKeyPath(\n directiveArgs,\n // If keyPath.length === 1, this code calls extractKeyPath with an\n // empty path, which works because it uses directiveArgs as the\n // extracted value.\n keyPath.slice(1)\n )\n );\n }\n // If the key started with @ but there was no corresponding directive,\n // we want to omit this value from the key object, not fall through to\n // treating @whatever as a normal argument name.\n return;\n }\n\n if (firstChar === \"$\") {\n const variableName = firstKey.slice(1);\n if (variables && hasOwn.call(variables, variableName)) {\n const varKeyPath = keyPath.slice(0);\n varKeyPath[0] = variableName;\n return extractKeyPath(variables, varKeyPath);\n }\n // If the key started with $ but there was no corresponding variable, we\n // want to omit this value from the key object, not fall through to\n // treating $whatever as a normal argument name.\n return;\n }\n\n if (args) {\n return extractKeyPath(args, keyPath);\n }\n });\n\n const suffix = JSON.stringify(collected);\n\n // If no arguments were passed to this field, and it didn't have any other\n // field key contributions from directives or variables, hide the empty\n // :{} suffix from the field key. However, a field passed no arguments can\n // still end up with a non-empty :{...} suffix if its key configuration\n // refers to directives or variables.\n if (args || suffix !== \"{}\") {\n fieldName += \":\" + suffix;\n }\n\n return fieldName;\n })\n );\n}\n\nexport function collectSpecifierPaths(\n specifier: KeySpecifier,\n extractor: (path: string[]) => any\n): Record {\n // For each path specified by specifier, invoke the extractor, and repeatedly\n // merge the results together, with appropriate ancestor context.\n const merger = new DeepMerger();\n return getSpecifierPaths(specifier).reduce((collected, path) => {\n let toMerge = extractor(path);\n if (toMerge !== void 0) {\n // This path is not expected to contain array indexes, so the toMerge\n // reconstruction will not contain arrays. TODO Fix this?\n for (let i = path.length - 1; i >= 0; --i) {\n toMerge = { [path[i]]: toMerge };\n }\n collected = merger.merge(collected, toMerge);\n }\n return collected;\n }, Object.create(null));\n}\n\nexport function getSpecifierPaths(spec: KeySpecifier): string[][] {\n const info = lookupSpecifierInfo(spec);\n\n if (!info.paths) {\n const paths: string[][] = (info.paths = []);\n const currentPath: string[] = [];\n\n spec.forEach((s, i) => {\n if (isArray(s)) {\n getSpecifierPaths(s).forEach((p) => paths.push(currentPath.concat(p)));\n currentPath.length = 0;\n } else {\n currentPath.push(s);\n if (!isArray(spec[i + 1])) {\n paths.push(currentPath.slice(0));\n currentPath.length = 0;\n }\n }\n });\n }\n\n return info.paths!;\n}\n\nfunction extractKey, TKey extends string>(\n object: TObj,\n key: TKey\n): TObj[TKey] | undefined {\n return object[key];\n}\n\nexport function extractKeyPath(\n object: Record,\n path: string[],\n extract?: typeof extractKey\n): any {\n // For each key in path, extract the corresponding child property from obj,\n // flattening arrays if encountered (uncommon for keyFields and keyArgs, but\n // possible). The final result of path.reduce is normalized so unexpected leaf\n // objects have their keys safely sorted. That final result is difficult to\n // type as anything other than any. You're welcome to try to improve the\n // return type, but keep in mind extractKeyPath is not a public function\n // (exported only for testing), so the effort may not be worthwhile unless the\n // limited set of actual callers (see above) pass arguments that TypeScript\n // can statically type. If we know only that path is some array of strings\n // (and not, say, a specific tuple of statically known strings), any (or\n // possibly unknown) is the honest answer.\n extract = extract || extractKey;\n return normalize(\n path.reduce(function reducer(obj, key): any {\n return isArray(obj) ?\n obj.map((child) => reducer(child, key))\n : obj && extract!(obj, key);\n }, object)\n );\n}\n\nfunction normalize(value: T): T {\n // Usually the extracted value will be a scalar value, since most primary\n // key fields are scalar, but just in case we get an object or an array, we\n // need to do some normalization of the order of (nested) keys.\n if (isNonNullObject(value)) {\n if (isArray(value)) {\n return value.map(normalize) as any;\n }\n return collectSpecifierPaths(Object.keys(value).sort(), (path) =>\n extractKeyPath(value, path)\n ) as T;\n }\n return value;\n}\n","import { invariant, newInvariantError } from \"../../utilities/globals/index.js\";\n\nimport type {\n InlineFragmentNode,\n FragmentDefinitionNode,\n SelectionSetNode,\n FieldNode,\n} from \"graphql\";\n\nimport type {\n FragmentMap,\n StoreValue,\n StoreObject,\n Reference,\n} from \"../../utilities/index.js\";\nimport {\n storeKeyNameFromField,\n argumentsObjectFromField,\n isReference,\n getStoreKeyName,\n isNonNullObject,\n stringifyForDisplay,\n} from \"../../utilities/index.js\";\nimport type {\n IdGetter,\n MergeInfo,\n NormalizedCache,\n ReadMergeModifyContext,\n} from \"./types.js\";\nimport {\n hasOwn,\n fieldNameFromStoreName,\n storeValueIsStoreObject,\n selectionSetMatchesResult,\n TypeOrFieldNameRegExp,\n defaultDataIdFromObject,\n isArray,\n} from \"./helpers.js\";\nimport { cacheSlot } from \"./reactiveVars.js\";\nimport type { InMemoryCache } from \"./inMemoryCache.js\";\nimport type {\n SafeReadonly,\n FieldSpecifier,\n ToReferenceFunction,\n ReadFieldFunction,\n ReadFieldOptions,\n CanReadFunction,\n} from \"../core/types/common.js\";\nimport type { WriteContext } from \"./writeToStore.js\";\n\nimport {\n keyArgsFnFromSpecifier,\n keyFieldsFnFromSpecifier,\n} from \"./key-extractor.js\";\n\nexport type TypePolicies = {\n [__typename: string]: TypePolicy;\n};\n\n// TypeScript 3.7 will allow recursive type aliases, so this should work:\n// type KeySpecifier = (string | KeySpecifier)[]\nexport type KeySpecifier = ReadonlyArray;\n\nexport type KeyFieldsContext = {\n // The __typename of the incoming object, even if the __typename field was\n // aliased to another name in the raw result object. May be undefined when\n // dataIdFromObject is called for objects without __typename fields.\n typename: string | undefined;\n\n // The object to be identified, after processing to remove aliases and\n // normalize identifiable child objects with references.\n storeObject: StoreObject;\n\n // Handy tool for reading additional fields from context.storeObject, either\n // readField(\"fieldName\") to read storeObject[fieldName], or readField(\"name\",\n // objectOrReference) to read from another object or Reference. If you read a\n // field with a read function, that function will be invoked.\n readField: ReadFieldFunction;\n\n // If you are writing a custom keyFields function, and you plan to use the raw\n // result object passed as the first argument, you may also need access to the\n // selection set and available fragments for this object, just in case any\n // fields have aliases. Since this logic is tricky to get right, and these\n // context properties are not even always provided (for example, they are\n // omitted when calling cache.identify(object), where object is assumed to be\n // a StoreObject), we recommend you use context.storeObject (which has already\n // been de-aliased) and context.readField (which can read from references as\n // well as objects) instead of the raw result object in your keyFields\n // functions, or just rely on the internal implementation of keyFields:[...]\n // syntax to get these details right for you.\n selectionSet?: SelectionSetNode;\n fragmentMap?: FragmentMap;\n\n // Internal. May be set by the KeyFieldsFunction to report fields that were\n // involved in computing the ID. Never passed in by the caller.\n keyObject?: Record;\n};\n\nexport type KeyFieldsFunction = (\n object: Readonly,\n context: KeyFieldsContext\n) => KeySpecifier | false | ReturnType;\n\ntype KeyFieldsResult = Exclude, KeySpecifier>;\n\n// TODO Should TypePolicy be a generic type, with a TObject or TEntity\n// type parameter?\nexport type TypePolicy = {\n // Allows defining the primary key fields for this type, either using an\n // array of field names or a function that returns an arbitrary string.\n keyFields?: KeySpecifier | KeyFieldsFunction | false;\n\n // Allows defining a merge function (or merge:true/false shorthand) to\n // be used for merging objects of this type wherever they appear, unless\n // the parent field also defines a merge function/boolean (that is,\n // parent field merge functions take precedence over type policy merge\n // functions). In many cases, defining merge:true for a given type\n // policy can save you from specifying merge:true for all the field\n // policies where that type might be encountered.\n merge?: FieldMergeFunction | boolean;\n\n // In the rare event that your schema happens to use a different\n // __typename for the root Query, Mutation, and/or Schema types, you can\n // express your deviant preferences by enabling one of these options.\n queryType?: true;\n mutationType?: true;\n subscriptionType?: true;\n\n fields?: {\n [fieldName: string]: FieldPolicy | FieldReadFunction;\n };\n};\n\nexport type KeyArgsFunction = (\n args: Record | null,\n context: {\n typename: string;\n fieldName: string;\n field: FieldNode | null;\n variables?: Record;\n }\n) => KeySpecifier | false | ReturnType;\n\nexport type FieldPolicy<\n // The internal representation used to store the field's data in the\n // cache. Must be JSON-serializable if you plan to serialize the result\n // of cache.extract() using JSON.\n TExisting = any,\n // The type of the incoming parameter passed to the merge function,\n // typically matching the GraphQL response format, but with Reference\n // objects substituted for any identifiable child objects. Often the\n // same as TExisting, but not necessarily.\n TIncoming = TExisting,\n // The type that the read function actually returns, using TExisting\n // data and options.args as input. Usually the same as TIncoming.\n TReadResult = TIncoming,\n // Allows FieldFunctionOptions definition to be overwritten by the\n // developer\n TOptions extends FieldFunctionOptions = FieldFunctionOptions,\n> = {\n keyArgs?: KeySpecifier | KeyArgsFunction | false;\n read?: FieldReadFunction;\n merge?: FieldMergeFunction | boolean;\n};\n\nexport type StorageType = Record;\n\nfunction argsFromFieldSpecifier(spec: FieldSpecifier) {\n return (\n spec.args !== void 0 ? spec.args\n : spec.field ? argumentsObjectFromField(spec.field, spec.variables)\n : null\n );\n}\n\nexport interface FieldFunctionOptions<\n TArgs = Record,\n TVars = Record,\n> {\n args: TArgs | null;\n\n // The name of the field, equal to options.field.name.value when\n // options.field is available. Useful if you reuse the same function for\n // multiple fields, and you need to know which field you're currently\n // processing. Always a string, even when options.field is null.\n fieldName: string;\n\n // The full field key used internally, including serialized key arguments.\n storeFieldName: string;\n\n // The FieldNode object used to read this field. Useful if you need to\n // know about other attributes of the field, such as its directives. This\n // option will be null when a string was passed to options.readField.\n field: FieldNode | null;\n\n variables?: TVars;\n\n // Utilities for dealing with { __ref } objects.\n isReference: typeof isReference;\n toReference: ToReferenceFunction;\n\n // A handy place to put field-specific data that you want to survive\n // across multiple read function calls. Useful for field-level caching,\n // if your read function does any expensive work.\n storage: StorageType;\n\n cache: InMemoryCache;\n\n // Helper function for reading other fields within the current object.\n // If a foreign object or reference is provided, the field will be read\n // from that object instead of the current object, so this function can\n // be used (together with isReference) to examine the cache outside the\n // current object. If a FieldNode is passed instead of a string, and\n // that FieldNode has arguments, the same options.variables will be used\n // to compute the argument values. Note that this function will invoke\n // custom read functions for other fields, if defined. Always returns\n // immutable data (enforced with Object.freeze in development).\n readField: ReadFieldFunction;\n\n // Returns true for non-normalized StoreObjects and non-dangling\n // References, indicating that readField(name, objOrRef) has a chance of\n // working. Useful for filtering out dangling references from lists.\n canRead: CanReadFunction;\n\n // Instead of just merging objects with { ...existing, ...incoming }, this\n // helper function can be used to merge objects in a way that respects any\n // custom merge functions defined for their fields.\n mergeObjects: MergeObjectsFunction;\n}\n\ntype MergeObjectsFunction = (\n existing: T,\n incoming: T\n) => T;\n\nexport type FieldReadFunction<\n TExisting = any,\n TReadResult = TExisting,\n TOptions extends FieldFunctionOptions = FieldFunctionOptions,\n> = (\n // When reading a field, one often needs to know about any existing\n // value stored for that field. If the field is read before any value\n // has been written to the cache, this existing parameter will be\n // undefined, which makes it easy to use a default parameter expression\n // to supply the initial value. This parameter is positional (rather\n // than one of the named options) because that makes it possible for the\n // developer to annotate it with a type, without also having to provide\n // a whole new type for the options object.\n existing: SafeReadonly | undefined,\n options: TOptions\n) => TReadResult | undefined;\n\nexport type FieldMergeFunction<\n TExisting = any,\n TIncoming = TExisting,\n // Passing the whole FieldFunctionOptions makes the current definition\n // independent from its implementation\n TOptions extends FieldFunctionOptions = FieldFunctionOptions,\n> = (\n existing: SafeReadonly | undefined,\n // The incoming parameter needs to be positional as well, for the same\n // reasons discussed in FieldReadFunction above.\n incoming: SafeReadonly,\n options: TOptions\n) => SafeReadonly;\n\nconst nullKeyFieldsFn: KeyFieldsFunction = () => void 0;\nconst simpleKeyArgsFn: KeyArgsFunction = (_args, context) => context.fieldName;\n\n// These merge functions can be selected by specifying merge:true or\n// merge:false in a field policy.\nconst mergeTrueFn: FieldMergeFunction = (\n existing,\n incoming,\n { mergeObjects }\n) => mergeObjects(existing, incoming);\nconst mergeFalseFn: FieldMergeFunction = (_, incoming) => incoming;\n\nexport type PossibleTypesMap = {\n [supertype: string]: string[];\n};\n\nexport class Policies {\n private typePolicies: {\n [__typename: string]: {\n keyFn?: KeyFieldsFunction;\n merge?: FieldMergeFunction;\n fields: {\n [fieldName: string]: {\n keyFn?: KeyArgsFunction;\n read?: FieldReadFunction;\n merge?: FieldMergeFunction;\n };\n };\n };\n } = Object.create(null);\n\n private toBeAdded: {\n [__typename: string]: TypePolicy[];\n } = Object.create(null);\n\n // Map from subtype names to sets of supertype names. Note that this\n // representation inverts the structure of possibleTypes (whose keys are\n // supertypes and whose values are arrays of subtypes) because it tends\n // to be much more efficient to search upwards than downwards.\n private supertypeMap = new Map>();\n\n // Any fuzzy subtypes specified by possibleTypes will be converted to\n // RegExp objects and recorded here. Every key of this map can also be\n // found in supertypeMap. In many cases this Map will be empty, which\n // means no fuzzy subtype checking will happen in fragmentMatches.\n private fuzzySubtypes = new Map();\n\n public readonly cache: InMemoryCache;\n\n public readonly rootIdsByTypename: Record =\n Object.create(null);\n public readonly rootTypenamesById: Record =\n Object.create(null);\n\n public readonly usingPossibleTypes = false;\n\n constructor(\n private config: {\n cache: InMemoryCache;\n dataIdFromObject?: KeyFieldsFunction;\n possibleTypes?: PossibleTypesMap;\n typePolicies?: TypePolicies;\n }\n ) {\n this.config = {\n dataIdFromObject: defaultDataIdFromObject,\n ...config,\n };\n\n this.cache = this.config.cache;\n\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 public identify(\n object: StoreObject,\n partialContext?: Partial\n ): [string?, StoreObject?] {\n const policies = this;\n\n const typename =\n (partialContext &&\n (partialContext.typename || partialContext.storeObject?.__typename)) ||\n object.__typename;\n\n // It should be possible to write root Query fields with writeFragment,\n // using { __typename: \"Query\", ... } as the data, but it does not make\n // sense to allow the same identification behavior for the Mutation and\n // Subscription types, since application code should never be writing\n // directly to (or reading directly from) those root objects.\n if (typename === this.rootTypenamesById.ROOT_QUERY) {\n return [\"ROOT_QUERY\"];\n }\n\n // Default context.storeObject to object if not otherwise provided.\n const storeObject =\n (partialContext && partialContext.storeObject) || object;\n\n const context: KeyFieldsContext = {\n ...partialContext,\n typename,\n storeObject,\n readField:\n (partialContext && partialContext.readField) ||\n function () {\n const options = normalizeReadFieldOptions(arguments, storeObject);\n return policies.readField(options, {\n store: policies.cache[\"data\"],\n variables: options.variables,\n });\n },\n };\n\n let id: KeyFieldsResult;\n\n const policy = typename && this.getTypePolicy(typename);\n let keyFn = (policy && policy.keyFn) || this.config.dataIdFromObject;\n while (keyFn) {\n const specifierOrId = keyFn({ ...object, ...storeObject }, context);\n if (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 public addTypePolicies(typePolicies: TypePolicies) {\n Object.keys(typePolicies).forEach((typename) => {\n const { queryType, mutationType, subscriptionType, ...incoming } =\n typePolicies[typename];\n\n // Though {query,mutation,subscription}Type configurations are rare,\n // it's important to call setRootTypename as early as possible,\n // since these configurations should apply consistently for the\n // entire lifetime of the cache. Also, since only one __typename can\n // qualify as one of these root types, these three properties cannot\n // be inherited, unlike the rest of the incoming properties. That\n // restriction is convenient, because the purpose of this.toBeAdded\n // is to delay the processing of type/field policies until the first\n // time they're used, allowing policies to be added in any order as\n // long as all relevant policies (including policies for supertypes)\n // have been added by the time a given policy is used for the first\n // time. In other words, since inheritance doesn't matter for these\n // properties, there's also no need to delay their processing using\n // the this.toBeAdded queue.\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 private updateTypePolicy(typename: string, incoming: TypePolicy) {\n const existing = this.getTypePolicy(typename);\n const { keyFields, fields } = incoming;\n\n function setMerge(\n existing: { merge?: FieldMergeFunction | boolean },\n merge?: FieldMergeFunction | boolean\n ) {\n existing.merge =\n typeof merge === \"function\" ? merge\n // Pass merge:true as a shorthand for a merge implementation\n // that returns options.mergeObjects(existing, incoming).\n : merge === true ? mergeTrueFn\n // Pass merge:false to make incoming always replace existing\n // without any warnings about data clobbering.\n : merge === false ? mergeFalseFn\n : existing.merge;\n }\n\n // Type policies can define merge functions, as an alternative to\n // using field policies to merge child objects.\n setMerge(existing, incoming.merge);\n\n existing.keyFn =\n // Pass false to disable normalization for this typename.\n keyFields === false ? nullKeyFieldsFn\n // Pass an array of strings to use those fields to compute a\n // composite ID for objects of this typename.\n : isArray(keyFields) ? keyFieldsFnFromSpecifier(keyFields)\n // Pass a function to take full control over identification.\n : typeof keyFields === \"function\" ? keyFields\n // Leave existing.keyFn unchanged if above cases fail.\n : existing.keyFn;\n\n if (fields) {\n Object.keys(fields).forEach((fieldName) => {\n const existing = this.getFieldPolicy(typename, fieldName, true)!;\n const incoming = fields[fieldName];\n\n if (typeof incoming === \"function\") {\n existing.read = incoming;\n } else {\n const { keyArgs, read, merge } = incoming;\n\n existing.keyFn =\n // Pass false to disable argument-based differentiation of\n // field identities.\n keyArgs === false ? simpleKeyArgsFn\n // Pass an array of strings to use named arguments to\n // compute a composite identity for the field.\n : isArray(keyArgs) ? keyArgsFnFromSpecifier(keyArgs)\n // Pass a function to take full control over field identity.\n : typeof keyArgs === \"function\" ? keyArgs\n // Leave existing.keyFn unchanged if above cases fail.\n : 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 // If we have both a read and a merge function, assume\n // keyArgs:false, because read and merge together can take\n // responsibility for interpreting arguments in and out. This\n // default assumption can always be overridden by specifying\n // keyArgs explicitly in the FieldPolicy.\n existing.keyFn = existing.keyFn || simpleKeyArgsFn;\n }\n });\n }\n }\n\n private setRootTypename(\n which: \"Query\" | \"Mutation\" | \"Subscription\",\n typename: string = which\n ) {\n const rootId = \"ROOT_\" + which.toUpperCase();\n const old = this.rootTypenamesById[rootId];\n if (typename !== old) {\n invariant(\n !old || old === which,\n `Cannot change root %s __typename more than once`,\n which\n );\n // First, delete any old __typename associated with this rootId from\n // rootIdsByTypename.\n if (old) delete this.rootIdsByTypename[old];\n // Now make this the only __typename that maps to this rootId.\n this.rootIdsByTypename[typename] = rootId;\n // Finally, update the __typename associated with this rootId.\n this.rootTypenamesById[rootId] = typename;\n }\n }\n\n public addPossibleTypes(possibleTypes: PossibleTypesMap) {\n (this.usingPossibleTypes as boolean) = true;\n Object.keys(possibleTypes).forEach((supertype) => {\n // Make sure all types have an entry in this.supertypeMap, even if\n // their supertype set is empty, so we can return false immediately\n // from policies.fragmentMatches for unknown supertypes.\n this.getSupertypeSet(supertype, true);\n\n possibleTypes[supertype].forEach((subtype) => {\n this.getSupertypeSet(subtype, true)!.add(supertype);\n const match = subtype.match(TypeOrFieldNameRegExp);\n if (!match || match[0] !== subtype) {\n // TODO Don't interpret just any invalid typename as a RegExp.\n this.fuzzySubtypes.set(subtype, new RegExp(subtype));\n }\n });\n });\n }\n\n private getTypePolicy(typename: string): Policies[\"typePolicies\"][string] {\n if (!hasOwn.call(this.typePolicies, typename)) {\n const policy: Policies[\"typePolicies\"][string] = (this.typePolicies[\n typename\n ] = Object.create(null));\n policy.fields = Object.create(null);\n\n // When the TypePolicy for typename is first accessed, instead of\n // starting with an empty policy object, inherit any properties or\n // fields from the type policies of the supertypes of typename.\n //\n // Any properties or fields defined explicitly within the TypePolicy\n // for typename will take precedence, and if there are multiple\n // supertypes, the properties of policies whose types were added\n // later via addPossibleTypes will take precedence over those of\n // earlier supertypes. TODO Perhaps we should warn about these\n // conflicts in development, and recommend defining the property\n // explicitly in the subtype policy?\n //\n // Field policy inheritance is atomic/shallow: you can't inherit a\n // field policy and then override just its read function, since read\n // and merge functions often need to cooperate, so changing only one\n // of them would be a recipe for inconsistency.\n //\n // Once the TypePolicy for typename has been accessed, its properties can\n // still be updated directly using addTypePolicies, but future changes to\n // inherited supertype policies will not be reflected in this subtype\n // policy, because this code runs at most once per typename.\n let supertypes = this.supertypeMap.get(typename);\n if (!supertypes && this.fuzzySubtypes.size) {\n // To make the inheritance logic work for unknown typename strings that\n // may have fuzzy supertypes, we give this typename an empty supertype\n // set and then populate it with any fuzzy supertypes that match.\n supertypes = this.getSupertypeSet(typename, true)!;\n // This only works for typenames that are directly matched by a fuzzy\n // supertype. What if there is an intermediate chain of supertypes?\n // While possible, that situation can only be solved effectively by\n // specifying the intermediate relationships via possibleTypes, manually\n // and in a non-fuzzy way.\n this.fuzzySubtypes.forEach((regExp, fuzzy) => {\n if (regExp.test(typename)) {\n // The fuzzy parameter is just the original string version of regExp\n // (not a valid __typename string), but we can look up the\n // associated supertype(s) in this.supertypeMap.\n const fuzzySupertypes = this.supertypeMap.get(fuzzy);\n if (fuzzySupertypes) {\n fuzzySupertypes.forEach((supertype) =>\n supertypes!.add(supertype)\n );\n }\n }\n });\n }\n if (supertypes && supertypes.size) {\n supertypes.forEach((supertype) => {\n const { fields, ...rest } = this.getTypePolicy(supertype);\n Object.assign(policy, rest);\n Object.assign(policy.fields, fields);\n });\n }\n }\n\n const inbox = this.toBeAdded[typename];\n if (inbox && inbox.length) {\n // Merge the pending policies into this.typePolicies, in the order they\n // were originally passed to addTypePolicy.\n inbox.splice(0).forEach((policy) => {\n this.updateTypePolicy(typename, policy);\n });\n }\n\n return this.typePolicies[typename];\n }\n\n private getFieldPolicy(\n typename: string | undefined,\n fieldName: string,\n createIfMissing: boolean\n ):\n | {\n keyFn?: KeyArgsFunction;\n read?: FieldReadFunction;\n merge?: FieldMergeFunction;\n }\n | undefined {\n if (typename) {\n const fieldPolicies = this.getTypePolicy(typename).fields;\n return (\n fieldPolicies[fieldName] ||\n (createIfMissing && (fieldPolicies[fieldName] = Object.create(null)))\n );\n }\n }\n\n private getSupertypeSet(\n subtype: string,\n createIfMissing: boolean\n ): Set | undefined {\n let supertypeSet = this.supertypeMap.get(subtype);\n if (!supertypeSet && createIfMissing) {\n this.supertypeMap.set(subtype, (supertypeSet = new Set()));\n }\n return supertypeSet;\n }\n\n public fragmentMatches(\n fragment: InlineFragmentNode | FragmentDefinitionNode,\n typename: string | undefined,\n result?: Record,\n variables?: Record\n ): boolean {\n if (!fragment.typeCondition) return true;\n\n // If the fragment has a type condition but the object we're matching\n // against does not have a __typename, the fragment cannot match.\n if (!typename) return false;\n\n const supertype = fragment.typeCondition.name.value;\n // Common case: fragment type condition and __typename are the same.\n if (typename === supertype) return true;\n\n if (this.usingPossibleTypes && this.supertypeMap.has(supertype)) {\n const typenameSupertypeSet = this.getSupertypeSet(typename, true)!;\n const workQueue = [typenameSupertypeSet];\n const maybeEnqueue = (subtype: string) => {\n const supertypeSet = this.getSupertypeSet(subtype, false);\n if (\n supertypeSet &&\n supertypeSet.size &&\n workQueue.indexOf(supertypeSet) < 0\n ) {\n workQueue.push(supertypeSet);\n }\n };\n\n // We need to check fuzzy subtypes only if we encountered fuzzy\n // subtype strings in addPossibleTypes, and only while writing to\n // the cache, since that's when selectionSetMatchesResult gives a\n // strong signal of fragment matching. The StoreReader class calls\n // policies.fragmentMatches without passing a result object, so\n // needToCheckFuzzySubtypes is always false while reading.\n let needToCheckFuzzySubtypes = !!(result && this.fuzzySubtypes.size);\n let checkingFuzzySubtypes = false;\n\n // It's important to keep evaluating workQueue.length each time through\n // the loop, because the queue can grow while we're iterating over it.\n for (let i = 0; i < workQueue.length; ++i) {\n const supertypeSet = workQueue[i];\n\n if (supertypeSet.has(supertype)) {\n if (!typenameSupertypeSet.has(supertype)) {\n if (checkingFuzzySubtypes) {\n invariant.warn(\n `Inferring subtype %s of supertype %s`,\n typename,\n supertype\n );\n }\n // Record positive results for faster future lookup.\n // Unfortunately, we cannot safely cache negative results,\n // because new possibleTypes data could always be added to the\n // Policies class.\n typenameSupertypeSet.add(supertype);\n }\n return true;\n }\n\n supertypeSet.forEach(maybeEnqueue);\n\n if (\n needToCheckFuzzySubtypes &&\n // Start checking fuzzy subtypes only after exhausting all\n // non-fuzzy subtypes (after the final iteration of the loop).\n i === workQueue.length - 1 &&\n // We could wait to compare fragment.selectionSet to result\n // after we verify the supertype, but this check is often less\n // expensive than that search, and we will have to do the\n // comparison anyway whenever we find a potential match.\n selectionSetMatchesResult(fragment.selectionSet, result!, variables)\n ) {\n // We don't always need to check fuzzy subtypes (if no result\n // was provided, or !this.fuzzySubtypes.size), but, when we do,\n // we only want to check them once.\n needToCheckFuzzySubtypes = false;\n checkingFuzzySubtypes = true;\n\n // If we find any fuzzy subtypes that match typename, extend the\n // workQueue to search through the supertypes of those fuzzy\n // subtypes. Otherwise the for-loop will terminate and we'll\n // return false below.\n this.fuzzySubtypes.forEach((regExp, fuzzyString) => {\n const match = typename.match(regExp);\n if (match && match[0] === typename) {\n maybeEnqueue(fuzzyString);\n }\n });\n }\n }\n }\n\n return false;\n }\n\n public hasKeyArgs(typename: string | undefined, fieldName: string) {\n const policy = this.getFieldPolicy(typename, fieldName, false);\n return !!(policy && policy.keyFn);\n }\n\n public getStoreFieldName(fieldSpec: FieldSpecifier): string {\n const { typename, fieldName } = fieldSpec;\n const policy = this.getFieldPolicy(typename, fieldName, false);\n let storeFieldName: Exclude, KeySpecifier>;\n\n let keyFn = policy && policy.keyFn;\n if (keyFn && typename) {\n const context: Parameters[1] = {\n typename,\n fieldName,\n field: fieldSpec.field || null,\n variables: fieldSpec.variables,\n };\n const args = argsFromFieldSpecifier(fieldSpec);\n while (keyFn) {\n const specifierOrString = keyFn(args, context);\n if (isArray(specifierOrString)) {\n keyFn = keyArgsFnFromSpecifier(specifierOrString);\n } else {\n // If the custom keyFn returns a falsy value, fall back to\n // fieldName instead.\n storeFieldName = specifierOrString || fieldName;\n break;\n }\n }\n }\n\n if (storeFieldName === void 0) {\n storeFieldName =\n fieldSpec.field ?\n storeKeyNameFromField(fieldSpec.field, fieldSpec.variables)\n : getStoreKeyName(fieldName, argsFromFieldSpecifier(fieldSpec));\n }\n\n // Returning false from a keyArgs function is like configuring\n // keyArgs: false, but more dynamic.\n if (storeFieldName === false) {\n return fieldName;\n }\n\n // Make sure custom field names start with the actual field.name.value\n // of the field, so we can always figure out which properties of a\n // StoreObject correspond to which original field names.\n return fieldName === fieldNameFromStoreName(storeFieldName) ? storeFieldName\n : fieldName + \":\" + storeFieldName;\n }\n\n public readField(\n options: ReadFieldOptions,\n context: ReadMergeModifyContext\n ): SafeReadonly | undefined {\n const objectOrReference = options.from;\n if (!objectOrReference) return;\n\n const nameOrField = options.field || options.fieldName;\n if (!nameOrField) return;\n\n if (options.typename === void 0) {\n const typename = context.store.getFieldValue(\n objectOrReference,\n \"__typename\"\n );\n if (typename) options.typename = typename;\n }\n\n const storeFieldName = this.getStoreFieldName(options);\n const fieldName = fieldNameFromStoreName(storeFieldName);\n const existing = context.store.getFieldValue(\n objectOrReference,\n storeFieldName\n );\n const policy = this.getFieldPolicy(options.typename, fieldName, false);\n const read = policy && policy.read;\n\n if (read) {\n const readOptions = makeFieldFunctionOptions(\n this,\n objectOrReference,\n options,\n context,\n context.store.getStorage(\n isReference(objectOrReference) ?\n objectOrReference.__ref\n : objectOrReference,\n storeFieldName\n )\n );\n\n // Call read(existing, readOptions) with cacheSlot holding this.cache.\n return cacheSlot.withValue(this.cache, read, [\n existing,\n readOptions,\n ]) as SafeReadonly;\n }\n\n return existing;\n }\n\n public getReadFunction(\n typename: string | undefined,\n fieldName: string\n ): FieldReadFunction | undefined {\n const policy = this.getFieldPolicy(typename, fieldName, false);\n return policy && policy.read;\n }\n\n public getMergeFunction(\n parentTypename: string | undefined,\n fieldName: string,\n childTypename: string | undefined\n ): FieldMergeFunction | undefined {\n let policy:\n | Policies[\"typePolicies\"][string]\n | Policies[\"typePolicies\"][string][\"fields\"][string]\n | undefined = this.getFieldPolicy(parentTypename, fieldName, false);\n let merge = policy && policy.merge;\n if (!merge && childTypename) {\n policy = this.getTypePolicy(childTypename);\n merge = policy && policy.merge;\n }\n return merge;\n }\n\n public runMergeFunction(\n existing: StoreValue,\n incoming: StoreValue,\n { field, typename, merge }: MergeInfo,\n context: WriteContext,\n storage?: StorageType\n ) {\n if (merge === mergeTrueFn) {\n // Instead of going to the trouble of creating a full\n // FieldFunctionOptions object and calling mergeTrueFn, we can\n // simply call mergeObjects, as mergeTrueFn would.\n return makeMergeObjectsFunction(context.store)(\n existing as StoreObject,\n incoming as StoreObject\n );\n }\n\n if (merge === mergeFalseFn) {\n // Likewise for mergeFalseFn, whose implementation is even simpler.\n return incoming;\n }\n\n // If cache.writeQuery or cache.writeFragment was called with\n // options.overwrite set to true, we still call merge functions, but\n // the existing data is always undefined, so the merge function will\n // not attempt to combine the incoming data with the existing data.\n if (context.overwrite) {\n existing = void 0;\n }\n\n return merge(\n existing,\n incoming,\n makeFieldFunctionOptions(\n this,\n // Unlike options.readField for read functions, we do not fall\n // back to the current object if no foreignObjOrRef is provided,\n // because it's not clear what the current object should be for\n // merge functions: the (possibly undefined) existing object, or\n // the incoming object? If you think your merge function needs\n // to read sibling fields in order to produce a new value for\n // the current field, you might want to rethink your strategy,\n // because that's a recipe for making merge behavior sensitive\n // to the order in which fields are written into the cache.\n // However, readField(name, ref) is useful for merge functions\n // that need to deduplicate child objects and references.\n void 0,\n {\n typename,\n fieldName: field.name.value,\n field,\n variables: context.variables,\n },\n context,\n storage || Object.create(null)\n )\n );\n }\n}\n\nfunction makeFieldFunctionOptions(\n policies: Policies,\n objectOrReference: StoreObject | Reference | undefined,\n fieldSpec: FieldSpecifier,\n context: ReadMergeModifyContext,\n storage: StorageType\n): FieldFunctionOptions {\n const storeFieldName = policies.getStoreFieldName(fieldSpec);\n const fieldName = fieldNameFromStoreName(storeFieldName);\n const variables = fieldSpec.variables || context.variables;\n const { toReference, canRead } = context.store;\n\n return {\n args: argsFromFieldSpecifier(fieldSpec),\n field: fieldSpec.field || null,\n fieldName,\n storeFieldName,\n variables,\n isReference,\n toReference,\n storage,\n cache: policies.cache,\n canRead,\n readField() {\n return policies.readField(\n normalizeReadFieldOptions(arguments, objectOrReference, variables),\n context\n );\n },\n mergeObjects: makeMergeObjectsFunction(context.store),\n };\n}\n\nexport function normalizeReadFieldOptions(\n readFieldArgs: IArguments,\n objectOrReference: StoreObject | Reference | undefined,\n variables?: ReadMergeModifyContext[\"variables\"]\n): ReadFieldOptions {\n const { 0: fieldNameOrOptions, 1: from, length: argc } = readFieldArgs;\n\n let options: ReadFieldOptions;\n\n if (typeof fieldNameOrOptions === \"string\") {\n options = {\n fieldName: fieldNameOrOptions,\n // Default to objectOrReference only when no second argument was\n // passed for the from parameter, not when undefined is explicitly\n // passed as the second argument.\n from: argc > 1 ? from : objectOrReference,\n };\n } else {\n options = { ...fieldNameOrOptions };\n // Default to objectOrReference only when fieldNameOrOptions.from is\n // actually omitted, rather than just undefined.\n if (!hasOwn.call(options, \"from\")) {\n options.from = objectOrReference;\n }\n }\n\n if (__DEV__ && options.from === void 0) {\n invariant.warn(\n `Undefined 'from' passed to readField with arguments %s`,\n stringifyForDisplay(Array.from(readFieldArgs))\n );\n }\n\n if (void 0 === options.variables) {\n options.variables = variables;\n }\n\n return options;\n}\n\nfunction makeMergeObjectsFunction(\n store: NormalizedCache\n): MergeObjectsFunction {\n return function mergeObjects(existing, incoming) {\n if (isArray(existing) || isArray(incoming)) {\n throw newInvariantError(\"Cannot automatically merge arrays\");\n }\n\n // These dynamic checks are necessary because the parameters of a\n // custom merge function can easily have the any type, so the type\n // system cannot always enforce the StoreObject | Reference parameter\n // types of options.mergeObjects.\n if (isNonNullObject(existing) && isNonNullObject(incoming)) {\n const eType = store.getFieldValue(existing, \"__typename\");\n const iType = store.getFieldValue(incoming, \"__typename\");\n const typesDiffer = eType && iType && eType !== iType;\n\n if (typesDiffer) {\n return incoming;\n }\n\n if (isReference(existing) && storeValueIsStoreObject(incoming)) {\n // Update the normalized EntityStore for the entity identified by\n // existing.__ref, preferring/overwriting any fields contributed by the\n // newer incoming StoreObject.\n store.merge(existing.__ref, incoming);\n return existing;\n }\n\n if (storeValueIsStoreObject(existing) && isReference(incoming)) {\n // Update the normalized EntityStore for the entity identified by\n // incoming.__ref, taking fields from the older existing object only if\n // those fields are not already present in the newer StoreObject\n // identified by incoming.__ref.\n store.merge(existing, incoming.__ref);\n return incoming;\n }\n\n if (\n storeValueIsStoreObject(existing) &&\n storeValueIsStoreObject(incoming)\n ) {\n return { ...existing, ...incoming };\n }\n }\n\n return incoming;\n };\n}\n","import { invariant, newInvariantError } from \"../../utilities/globals/index.js\";\nimport { equal } from \"@wry/equality\";\nimport { Trie } from \"@wry/trie\";\nimport type { SelectionSetNode, FieldNode } from \"graphql\";\nimport { Kind } from \"graphql\";\n\nimport type {\n FragmentMap,\n FragmentMapFunction,\n StoreValue,\n StoreObject,\n Reference,\n} from \"../../utilities/index.js\";\nimport {\n getFragmentFromSelection,\n getDefaultValues,\n getOperationDefinition,\n getTypenameFromResult,\n makeReference,\n isField,\n resultKeyNameFromField,\n isReference,\n shouldInclude,\n cloneDeep,\n addTypenameToDocument,\n isNonEmptyArray,\n argumentsObjectFromField,\n canonicalStringify,\n} from \"../../utilities/index.js\";\n\nimport type {\n NormalizedCache,\n ReadMergeModifyContext,\n MergeTree,\n InMemoryCacheConfig,\n} from \"./types.js\";\nimport {\n isArray,\n makeProcessedFieldsMerger,\n fieldNameFromStoreName,\n storeValueIsStoreObject,\n extractFragmentContext,\n} from \"./helpers.js\";\nimport type { StoreReader } from \"./readFromStore.js\";\nimport type { InMemoryCache } from \"./inMemoryCache.js\";\nimport type { EntityStore } from \"./entityStore.js\";\nimport type { Cache } from \"../../core/index.js\";\nimport { normalizeReadFieldOptions } from \"./policies.js\";\nimport type { ReadFieldFunction } from \"../core/types/common.js\";\n\nexport interface WriteContext extends ReadMergeModifyContext {\n readonly written: {\n [dataId: string]: SelectionSetNode[];\n };\n readonly fragmentMap: FragmentMap;\n lookupFragment: FragmentMapFunction;\n // General-purpose deep-merge function for use during writes.\n merge(existing: T, incoming: T): T;\n // If true, merge functions will be called with undefined existing data.\n overwrite: boolean;\n incomingById: Map<\n string,\n {\n storeObject: StoreObject;\n mergeTree?: MergeTree;\n fieldNodeSet: Set;\n }\n >;\n // Directive metadata for @client and @defer. We could use a bitfield for this\n // information to save some space, and use that bitfield number as the keys in\n // the context.flavors Map.\n clientOnly: boolean;\n deferred: boolean;\n flavors: Map;\n}\n\ntype FlavorableWriteContext = Pick<\n WriteContext,\n \"clientOnly\" | \"deferred\" | \"flavors\"\n>;\n\n// Since there are only four possible combinations of context.clientOnly and\n// context.deferred values, we should need at most four \"flavors\" of any given\n// WriteContext. To avoid creating multiple copies of the same context, we cache\n// the contexts in the context.flavors Map (shared by all flavors) according to\n// their clientOnly and deferred values (always in that order).\nfunction getContextFlavor(\n context: TContext,\n clientOnly: TContext[\"clientOnly\"],\n deferred: TContext[\"deferred\"]\n): TContext {\n const key = `${clientOnly}${deferred}`;\n let flavored = context.flavors.get(key);\n if (!flavored) {\n context.flavors.set(\n key,\n (flavored =\n context.clientOnly === clientOnly && context.deferred === deferred ?\n context\n : {\n ...context,\n clientOnly,\n deferred,\n })\n );\n }\n return flavored as TContext;\n}\n\ninterface ProcessSelectionSetOptions {\n dataId?: string;\n result: Record;\n selectionSet: SelectionSetNode;\n context: WriteContext;\n mergeTree: MergeTree;\n}\n\nexport class StoreWriter {\n constructor(\n public readonly cache: InMemoryCache,\n private reader?: StoreReader,\n private fragments?: InMemoryCacheConfig[\"fragments\"]\n ) {}\n\n public writeToStore(\n store: NormalizedCache,\n { query, result, dataId, variables, overwrite }: Cache.WriteOptions\n ): Reference | undefined {\n const operationDefinition = getOperationDefinition(query)!;\n const merger = makeProcessedFieldsMerger();\n\n variables = {\n ...getDefaultValues(operationDefinition),\n ...variables!,\n };\n\n const context: WriteContext = {\n store,\n written: Object.create(null),\n merge(existing: T, incoming: T) {\n return merger.merge(existing, incoming) as T;\n },\n variables,\n varString: canonicalStringify(variables),\n ...extractFragmentContext(query, this.fragments),\n overwrite: !!overwrite,\n incomingById: new Map(),\n clientOnly: false,\n deferred: false,\n flavors: new Map(),\n };\n\n const ref = this.processSelectionSet({\n result: result || Object.create(null),\n dataId,\n selectionSet: operationDefinition.selectionSet,\n mergeTree: { map: new Map() },\n context,\n });\n\n if (!isReference(ref)) {\n throw newInvariantError(`Could not identify object %s`, result);\n }\n\n // So far, the store has not been modified, so now it's time to process\n // context.incomingById and merge those incoming fields into context.store.\n context.incomingById.forEach(\n ({ storeObject, mergeTree, fieldNodeSet }, dataId) => {\n const entityRef = makeReference(dataId);\n\n if (mergeTree && mergeTree.map.size) {\n const applied = this.applyMerges(\n mergeTree,\n entityRef,\n storeObject,\n context\n );\n if (isReference(applied)) {\n // Assume References returned by applyMerges have already been merged\n // into the store. See makeMergeObjectsFunction in policies.ts for an\n // example of how this can happen.\n return;\n }\n // Otherwise, applyMerges returned a StoreObject, whose fields we should\n // merge into the store (see store.merge statement below).\n storeObject = applied;\n }\n\n if (__DEV__ && !context.overwrite) {\n const fieldsWithSelectionSets: Record =\n Object.create(null);\n fieldNodeSet.forEach((field) => {\n if (field.selectionSet) {\n fieldsWithSelectionSets[field.name.value] = true;\n }\n });\n\n const hasSelectionSet = (storeFieldName: string) =>\n fieldsWithSelectionSets[fieldNameFromStoreName(storeFieldName)] ===\n true;\n\n const hasMergeFunction = (storeFieldName: string) => {\n const childTree = mergeTree && mergeTree.map.get(storeFieldName);\n return Boolean(childTree && childTree.info && childTree.info.merge);\n };\n\n Object.keys(storeObject).forEach((storeFieldName) => {\n // If a merge function was defined for this field, trust that it\n // did the right thing about (not) clobbering data. If the field\n // has no selection set, it's a scalar field, so it doesn't need\n // a merge function (even if it's an object, like JSON data).\n if (\n hasSelectionSet(storeFieldName) &&\n !hasMergeFunction(storeFieldName)\n ) {\n warnAboutDataLoss(\n entityRef,\n storeObject,\n storeFieldName,\n context.store\n );\n }\n });\n }\n\n store.merge(dataId, storeObject);\n }\n );\n\n // Any IDs written explicitly to the cache will be retained as\n // reachable root IDs for garbage collection purposes. Although this\n // logic includes root IDs like ROOT_QUERY and ROOT_MUTATION, their\n // retainment counts are effectively ignored because cache.gc() always\n // includes them in its root ID set.\n store.retain(ref.__ref);\n\n return ref;\n }\n\n private processSelectionSet({\n dataId,\n result,\n selectionSet,\n context,\n // This object allows processSelectionSet to report useful information\n // to its callers without explicitly returning that information.\n mergeTree,\n }: ProcessSelectionSetOptions): StoreObject | Reference {\n const { policies } = this.cache;\n\n // This variable will be repeatedly updated using context.merge to\n // accumulate all fields that need to be written into the store.\n let incoming: StoreObject = Object.create(null);\n\n // If typename was not passed in, infer it. Note that typename is\n // always passed in for tricky-to-infer cases such as \"Query\" for\n // ROOT_QUERY.\n const typename: string | undefined =\n (dataId && policies.rootTypenamesById[dataId]) ||\n getTypenameFromResult(result, selectionSet, context.fragmentMap) ||\n (dataId && (context.store.get(dataId, \"__typename\") as string));\n\n if (\"string\" === typeof typename) {\n incoming.__typename = typename;\n }\n\n // This readField function will be passed as context.readField in the\n // KeyFieldsContext object created within policies.identify (called below).\n // In addition to reading from the existing context.store (thanks to the\n // policies.readField(options, context) line at the very bottom), this\n // version of readField can read from Reference objects that are currently\n // pending in context.incomingById, which is important whenever keyFields\n // need to be extracted from a child object that processSelectionSet has\n // turned into a Reference.\n const readField: ReadFieldFunction = function (this: void) {\n const options = normalizeReadFieldOptions(\n arguments,\n incoming,\n context.variables\n );\n\n if (isReference(options.from)) {\n const info = context.incomingById.get(options.from.__ref);\n if (info) {\n const result = policies.readField(\n {\n ...options,\n from: info.storeObject,\n },\n context\n );\n\n if (result !== void 0) {\n return result;\n }\n }\n }\n\n return policies.readField(options, context);\n };\n\n const fieldNodeSet = new Set();\n\n this.flattenFields(\n selectionSet,\n result,\n // This WriteContext will be the default context value for fields returned\n // by the flattenFields method, but some fields may be assigned a modified\n // context, depending on the presence of @client and other directives.\n context,\n typename\n ).forEach((context, field) => {\n const resultFieldKey = resultKeyNameFromField(field);\n const value = result[resultFieldKey];\n\n fieldNodeSet.add(field);\n\n if (value !== void 0) {\n const storeFieldName = policies.getStoreFieldName({\n typename,\n fieldName: field.name.value,\n field,\n variables: context.variables,\n });\n\n const childTree = getChildMergeTree(mergeTree, storeFieldName);\n\n let incomingValue = this.processFieldValue(\n value,\n field,\n // Reset context.clientOnly and context.deferred to their default\n // values before processing nested selection sets.\n field.selectionSet ?\n getContextFlavor(context, false, false)\n : context,\n childTree\n );\n\n // To determine if this field holds a child object with a merge function\n // defined in its type policy (see PR #7070), we need to figure out the\n // child object's __typename.\n let childTypename: string | undefined;\n\n // The field's value can be an object that has a __typename only if the\n // field has a selection set. Otherwise incomingValue is scalar.\n if (\n field.selectionSet &&\n (isReference(incomingValue) || storeValueIsStoreObject(incomingValue))\n ) {\n childTypename = readField(\"__typename\", incomingValue);\n }\n\n const merge = policies.getMergeFunction(\n typename,\n field.name.value,\n childTypename\n );\n\n if (merge) {\n childTree.info = {\n // TODO Check compatibility against any existing childTree.field?\n field,\n typename,\n merge,\n };\n } else {\n maybeRecycleChildMergeTree(mergeTree, storeFieldName);\n }\n\n incoming = context.merge(incoming, {\n [storeFieldName]: incomingValue,\n });\n } else if (\n __DEV__ &&\n !context.clientOnly &&\n !context.deferred &&\n !addTypenameToDocument.added(field) &&\n // If the field has a read function, it may be a synthetic field or\n // provide a default value, so its absence from the written data should\n // not be cause for alarm.\n !policies.getReadFunction(typename, field.name.value)\n ) {\n invariant.error(\n `Missing field '%s' while writing result %o`,\n resultKeyNameFromField(field),\n result\n );\n }\n });\n\n // Identify the result object, even if dataId was already provided,\n // since we always need keyObject below.\n try {\n const [id, keyObject] = policies.identify(result, {\n typename,\n selectionSet,\n fragmentMap: context.fragmentMap,\n storeObject: incoming,\n readField,\n });\n\n // If dataId was not provided, fall back to the id just generated by\n // policies.identify.\n dataId = dataId || id;\n\n // Write any key fields that were used during identification, even if\n // they were not mentioned in the original query.\n if (keyObject) {\n // TODO Reverse the order of the arguments?\n incoming = context.merge(incoming, keyObject);\n }\n } catch (e) {\n // If dataId was provided, tolerate failure of policies.identify.\n if (!dataId) throw e;\n }\n\n if (\"string\" === typeof dataId) {\n const dataRef = makeReference(dataId);\n\n // Avoid processing the same entity object using the same selection\n // set more than once. We use an array instead of a Set since most\n // entity IDs will be written using only one selection set, so the\n // size of this array is likely to be very small, meaning indexOf is\n // likely to be faster than Set.prototype.has.\n const sets = context.written[dataId] || (context.written[dataId] = []);\n if (sets.indexOf(selectionSet) >= 0) return dataRef;\n sets.push(selectionSet);\n\n // If we're about to write a result object into the store, but we\n // happen to know that the exact same (===) result object would be\n // returned if we were to reread the result with the same inputs,\n // then we can skip the rest of the processSelectionSet work for\n // this object, and immediately return a Reference to it.\n if (\n this.reader &&\n this.reader.isFresh(result, dataRef, selectionSet, context)\n ) {\n return dataRef;\n }\n\n const previous = context.incomingById.get(dataId);\n if (previous) {\n previous.storeObject = context.merge(previous.storeObject, incoming);\n previous.mergeTree = mergeMergeTrees(previous.mergeTree, mergeTree);\n fieldNodeSet.forEach((field) => previous.fieldNodeSet.add(field));\n } else {\n context.incomingById.set(dataId, {\n storeObject: incoming,\n // Save a reference to mergeTree only if it is not empty, because\n // empty MergeTrees may be recycled by maybeRecycleChildMergeTree and\n // reused for entirely different parts of the result tree.\n mergeTree: mergeTreeIsEmpty(mergeTree) ? void 0 : mergeTree,\n fieldNodeSet,\n });\n }\n\n return dataRef;\n }\n\n return incoming;\n }\n\n private processFieldValue(\n value: any,\n field: FieldNode,\n context: WriteContext,\n mergeTree: MergeTree\n ): StoreValue {\n if (!field.selectionSet || value === null) {\n // In development, we need to clone scalar values so that they can be\n // safely frozen with maybeDeepFreeze in readFromStore.ts. In production,\n // it's cheaper to store the scalar values directly in the cache.\n return __DEV__ ? cloneDeep(value) : value;\n }\n\n if (isArray(value)) {\n return value.map((item, i) => {\n const value = this.processFieldValue(\n item,\n field,\n context,\n 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,\n mergeTree,\n });\n }\n\n // Implements https://spec.graphql.org/draft/#sec-Field-Collection, but with\n // some additions for tracking @client and @defer directives.\n private flattenFields<\n TContext extends Pick<\n WriteContext,\n | \"clientOnly\"\n | \"deferred\"\n | \"flavors\"\n | \"fragmentMap\"\n | \"lookupFragment\"\n | \"variables\"\n >,\n >(\n selectionSet: SelectionSetNode,\n result: Record,\n context: TContext,\n typename = getTypenameFromResult(result, selectionSet, context.fragmentMap)\n ): Map {\n const fieldMap = new Map();\n const { policies } = this.cache;\n\n const limitingTrie = new Trie<{\n // Tracks whether (selectionSet, clientOnly, deferred) has been flattened\n // before. The GraphQL specification only uses the fragment name for\n // skipping previously visited fragments, but the top-level fragment\n // selection set corresponds 1:1 with the fagment name (and is slightly\n // easier too work with), and we need to consider clientOnly and deferred\n // values as well, potentially revisiting selection sets that were\n // previously visited with different inherited configurations of those\n // directives.\n visited?: boolean;\n }>(false); // No need for WeakMap, since limitingTrie does not escape.\n\n (function flatten(\n this: void,\n selectionSet: SelectionSetNode,\n inheritedContext: TContext\n ) {\n const visitedNode = limitingTrie.lookup(\n selectionSet,\n // Because we take inheritedClientOnly and inheritedDeferred into\n // consideration here (in addition to selectionSet), it's possible for\n // the same selection set to be flattened more than once, if it appears\n // in the query with different @client and/or @directive configurations.\n inheritedContext.clientOnly,\n inheritedContext.deferred\n );\n if (visitedNode.visited) return;\n visitedNode.visited = true;\n\n selectionSet.selections.forEach((selection) => {\n if (!shouldInclude(selection, context.variables)) return;\n\n let { clientOnly, deferred } = inheritedContext;\n if (\n // Since the presence of @client or @defer on this field can only\n // cause clientOnly or deferred to become true, we can skip the\n // forEach loop if both clientOnly and deferred are already true.\n !(clientOnly && deferred) &&\n isNonEmptyArray(selection.directives)\n ) {\n selection.directives.forEach((dir) => {\n const name = dir.name.value;\n if (name === \"client\") clientOnly = true;\n if (name === \"defer\") {\n const args = argumentsObjectFromField(dir, context.variables);\n // The @defer directive takes an optional args.if boolean\n // argument, similar to @include(if: boolean). Note that\n // @defer(if: false) does not make context.deferred false, but\n // instead behaves as if there was no @defer directive.\n if (!args || (args as { if?: boolean }).if !== false) {\n deferred = true;\n }\n // TODO In the future, we may want to record args.label using\n // context.deferred, if a label is specified.\n }\n });\n }\n\n if (isField(selection)) {\n const existing = fieldMap.get(selection);\n if (existing) {\n // If this field has been visited along another recursive path\n // before, the final context should have clientOnly or deferred set\n // to true only if *all* paths have the directive (hence the &&).\n clientOnly = clientOnly && existing.clientOnly;\n deferred = deferred && existing.deferred;\n }\n\n fieldMap.set(\n selection,\n getContextFlavor(context, clientOnly, deferred)\n );\n } else {\n const fragment = getFragmentFromSelection(\n selection,\n context.lookupFragment\n );\n\n if (!fragment && selection.kind === Kind.FRAGMENT_SPREAD) {\n throw newInvariantError(\n `No fragment named %s`,\n selection.name.value\n );\n }\n\n if (\n fragment &&\n policies.fragmentMatches(\n fragment,\n typename,\n result,\n context.variables\n )\n ) {\n flatten(\n fragment.selectionSet,\n getContextFlavor(context, clientOnly, deferred)\n );\n }\n }\n });\n })(selectionSet, context);\n\n return fieldMap;\n }\n\n private applyMerges(\n mergeTree: MergeTree,\n existing: StoreValue,\n incoming: T,\n context: WriteContext,\n getStorageArgs?: Parameters\n ): T | Reference {\n if (mergeTree.map.size && !isReference(incoming)) {\n const e: StoreObject | Reference | undefined =\n // Items in the same position in different arrays are not\n // necessarily related to each other, so when incoming is an array\n // we process its elements as if there was no existing data.\n (\n !isArray(incoming) &&\n // Likewise, existing must be either a Reference or a StoreObject\n // in order for its fields to be safe to merge with the fields of\n // the incoming object.\n (isReference(existing) || storeValueIsStoreObject(existing))\n ) ?\n existing\n : void 0;\n\n // This narrowing is implied by mergeTree.map.size > 0 and\n // !isReference(incoming), though TypeScript understandably cannot\n // hope to infer this type.\n const i = incoming as StoreObject | StoreValue[];\n\n // The options.storage objects provided to read and merge functions\n // are derived from the identity of the parent object plus a\n // sequence of storeFieldName strings/numbers identifying the nested\n // field name path of each field value to be merged.\n if (e && !getStorageArgs) {\n getStorageArgs = [isReference(e) ? e.__ref : e];\n }\n\n // It's possible that applying merge functions to this subtree will\n // not change the incoming data, so this variable tracks the fields\n // that did change, so we can create a new incoming object when (and\n // only when) at least one incoming field has changed. We use a Map\n // to preserve the type of numeric keys.\n let changedFields: Map | undefined;\n\n const getValue = (\n from: typeof e | typeof i,\n name: string | number\n ): StoreValue => {\n return (\n isArray(from) ?\n typeof name === \"number\" ?\n from[name]\n : void 0\n : context.store.getFieldValue(from, String(name))\n );\n };\n\n mergeTree.map.forEach((childTree, storeFieldName) => {\n const eVal = getValue(e, storeFieldName);\n const iVal = getValue(i, storeFieldName);\n // If we have no incoming data, leave any existing data untouched.\n if (void 0 === iVal) return;\n if (getStorageArgs) {\n getStorageArgs.push(storeFieldName);\n }\n const aVal = this.applyMerges(\n childTree,\n eVal,\n iVal,\n context,\n getStorageArgs\n );\n if (aVal !== iVal) {\n changedFields = changedFields || new Map();\n changedFields.set(storeFieldName, aVal);\n }\n if (getStorageArgs) {\n invariant(getStorageArgs.pop() === storeFieldName);\n }\n });\n\n if (changedFields) {\n // Shallow clone i so we can add changed fields to it.\n incoming = (isArray(i) ? i.slice(0) : { ...i }) as T;\n changedFields.forEach((value, name) => {\n (incoming as any)[name] = value;\n });\n }\n }\n\n if (mergeTree.info) {\n return this.cache.policies.runMergeFunction(\n existing,\n incoming,\n mergeTree.info,\n context,\n getStorageArgs && context.store.getStorage(...getStorageArgs)\n );\n }\n\n return incoming;\n }\n}\n\nconst emptyMergeTreePool: MergeTree[] = [];\n\nfunction getChildMergeTree(\n { map }: MergeTree,\n name: string | number\n): MergeTree {\n if (!map.has(name)) {\n map.set(name, emptyMergeTreePool.pop() || { map: new Map() });\n }\n return map.get(name)!;\n}\n\nfunction mergeMergeTrees(\n left: MergeTree | undefined,\n right: MergeTree | undefined\n): MergeTree {\n if (left === right || !right || mergeTreeIsEmpty(right)) return left!;\n if (!left || mergeTreeIsEmpty(left)) return right;\n\n const info =\n left.info && right.info ?\n {\n ...left.info,\n ...right.info,\n }\n : left.info || right.info;\n\n const needToMergeMaps = left.map.size && right.map.size;\n const map =\n needToMergeMaps ? new Map()\n : left.map.size ? left.map\n : right.map;\n\n const merged = { info, map };\n\n if (needToMergeMaps) {\n const remainingRightKeys = new Set(right.map.keys());\n\n left.map.forEach((leftTree, key) => {\n merged.map.set(key, mergeMergeTrees(leftTree, right.map.get(key)));\n remainingRightKeys.delete(key);\n });\n\n remainingRightKeys.forEach((key) => {\n merged.map.set(\n key,\n mergeMergeTrees(right.map.get(key), left.map.get(key))\n );\n });\n }\n\n return merged;\n}\n\nfunction mergeTreeIsEmpty(tree: MergeTree | undefined): boolean {\n return !tree || !(tree.info || tree.map.size);\n}\n\nfunction maybeRecycleChildMergeTree({ map }: MergeTree, name: string | number) {\n const childTree = map.get(name);\n if (childTree && mergeTreeIsEmpty(childTree)) {\n emptyMergeTreePool.push(childTree);\n map.delete(name);\n }\n}\n\nconst warnings = new Set();\n\n// Note that this function is unused in production, and thus should be\n// pruned by any well-configured minifier.\nfunction warnAboutDataLoss(\n existingRef: Reference,\n incomingObj: StoreObject,\n storeFieldName: string,\n store: NormalizedCache\n) {\n const getChild = (objOrRef: StoreObject | Reference): StoreObject | false => {\n const child = store.getFieldValue(objOrRef, storeFieldName);\n return typeof child === \"object\" && child;\n };\n\n const existing = getChild(existingRef);\n if (!existing) return;\n\n const incoming = getChild(incomingObj);\n if (!incoming) return;\n\n // It's always safe to replace a reference, since it refers to data\n // safely stored elsewhere.\n if (isReference(existing)) return;\n\n // If the values are structurally equivalent, we do not need to worry\n // about incoming replacing existing.\n if (equal(existing, incoming)) return;\n\n // If we're replacing every key of the existing object, then the\n // existing data would be overwritten even if the objects were\n // normalized, so warning would not be helpful here.\n if (\n Object.keys(existing).every(\n (key) => store.getFieldValue(incoming, key) !== void 0\n )\n ) {\n return;\n }\n\n const parentType =\n store.getFieldValue(existingRef, \"__typename\") ||\n store.getFieldValue(incomingObj, \"__typename\");\n const fieldName = fieldNameFromStoreName(storeFieldName);\n const typeDotName = `${parentType}.${fieldName}`;\n // Avoid warning more than once for the same type and field name.\n if (warnings.has(typeDotName)) return;\n warnings.add(typeDotName);\n\n const childTypenames: string[] = [];\n // Arrays do not have __typename fields, and always need a custom merge\n // function, even if their elements are normalized entities.\n if (!isArray(existing) && !isArray(incoming)) {\n [existing, incoming].forEach((child) => {\n const typename = store.getFieldValue(child, \"__typename\");\n if (typeof typename === \"string\" && !childTypenames.includes(typename)) {\n childTypenames.push(typename);\n }\n });\n }\n\n invariant.warn(\n `Cache data may be lost when replacing the %s field of a %s object.\n\nThis could cause additional (usually avoidable) network requests to fetch data that were otherwise cached.\n\nTo address this problem (which is not a bug in Apollo Client), %sdefine a custom merge function for the %s field, so InMemoryCache can safely merge these objects:\n\n existing: %o\n incoming: %o\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 fieldName,\n parentType,\n childTypenames.length ?\n \"either ensure all objects of type \" +\n childTypenames.join(\" and \") +\n \" have an ID or a custom merge function, or \"\n : \"\",\n typeDotName,\n existing,\n incoming\n );\n}\n","import { invariant } from \"../../utilities/globals/index.js\";\n\n// Make builtins like Map and Set safe to use with non-extensible objects.\nimport \"./fixPolyfills.js\";\n\nimport type { DocumentNode } from \"graphql\";\nimport type { OptimisticWrapperFunction } from \"optimism\";\nimport { wrap } from \"optimism\";\nimport { equal } from \"@wry/equality\";\n\nimport { ApolloCache } from \"../core/cache.js\";\nimport type { Cache } from \"../core/types/Cache.js\";\nimport { MissingFieldError } from \"../core/types/common.js\";\nimport type { StoreObject, Reference } from \"../../utilities/index.js\";\nimport {\n addTypenameToDocument,\n isReference,\n DocumentTransform,\n canonicalStringify,\n print,\n cacheSizes,\n defaultCacheSizes,\n} from \"../../utilities/index.js\";\nimport type { InMemoryCacheConfig, NormalizedCacheObject } from \"./types.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 { Policies } from \"./policies.js\";\nimport { hasOwn, normalizeConfig, shouldCanonizeResults } from \"./helpers.js\";\nimport type { OperationVariables } from \"../../core/index.js\";\nimport { getInMemoryCacheMemoryInternals } from \"../../utilities/caching/getMemoryInternals.js\";\n\ntype BroadcastOptions = Pick<\n Cache.BatchOptions,\n \"optimistic\" | \"onWatchUpdated\"\n>;\n\nexport class InMemoryCache extends ApolloCache {\n private data!: EntityStore;\n private optimisticData!: EntityStore;\n\n protected config: InMemoryCacheConfig;\n private watches = new Set();\n private addTypename: boolean;\n\n private storeReader!: StoreReader;\n private storeWriter!: StoreWriter;\n private addTypenameTransform = new DocumentTransform(addTypenameToDocument);\n\n private maybeBroadcastWatch!: OptimisticWrapperFunction<\n [Cache.WatchOptions, BroadcastOptions?],\n any,\n [Cache.WatchOptions]\n >;\n\n // Override the default value, since InMemoryCache result objects are frozen\n // in development and expected to remain logically immutable in production.\n public readonly assumeImmutableResults = true;\n\n // Dynamically imported code can augment existing typePolicies or\n // possibleTypes by calling cache.policies.addTypePolicies or\n // cache.policies.addPossibletypes.\n public readonly policies: Policies;\n\n public readonly makeVar = makeVar;\n\n constructor(config: InMemoryCacheConfig = {}) {\n super();\n this.config = normalizeConfig(config);\n this.addTypename = !!this.config.addTypename;\n\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\n this.init();\n }\n\n private init() {\n // Passing { resultCaching: false } in the InMemoryCache constructor options\n // will completely disable dependency tracking, which will improve memory\n // usage but worsen the performance of repeated reads.\n const rootStore = (this.data = new EntityStore.Root({\n policies: this.policies,\n resultCaching: this.config.resultCaching,\n }));\n\n // When no optimistic writes are currently active, cache.optimisticData ===\n // cache.data, so there are no additional layers on top of the actual data.\n // When an optimistic update happens, this.optimisticData will become a\n // linked list of EntityStore Layer objects that terminates with the\n // original this.data cache object.\n this.optimisticData = rootStore.stump;\n\n this.resetResultCache();\n }\n\n private resetResultCache(resetResultIdentities?: boolean) {\n const previousReader = this.storeReader;\n const { fragments } = this.config;\n\n // The StoreWriter is mostly stateless and so doesn't really need to be\n // reset, but it does need to have its writer.storeReader reference updated,\n // so it's simpler to update this.storeWriter as well.\n this.storeWriter = new StoreWriter(\n this,\n (this.storeReader = new StoreReader({\n cache: this,\n addTypename: this.addTypename,\n resultCacheMaxSize: this.config.resultCacheMaxSize,\n canonizeResults: shouldCanonizeResults(this.config),\n canon:\n resetResultIdentities ? void 0 : (\n previousReader && previousReader.canon\n ),\n fragments,\n })),\n fragments\n );\n\n this.maybeBroadcastWatch = wrap(\n (c: Cache.WatchOptions, options?: BroadcastOptions) => {\n return this.broadcastWatch(c, options);\n },\n {\n max:\n this.config.resultCacheMaxSize ||\n cacheSizes[\"inMemoryCache.maybeBroadcastWatch\"] ||\n defaultCacheSizes[\"inMemoryCache.maybeBroadcastWatch\"],\n makeCacheKey: (c: Cache.WatchOptions) => {\n // Return a cache key (thus enabling result caching) only if we're\n // currently using a data store that can track cache dependencies.\n const store = c.optimistic ? this.optimisticData : this.data;\n if (supportsResultCaching(store)) {\n const { optimistic, id, variables } = c;\n return store.makeCacheKey(\n c.query,\n // Different watches can have the same query, optimistic\n // status, rootId, and variables, but if their callbacks are\n // different, the (identical) result needs to be delivered to\n // each distinct callback. The easiest way to achieve that\n // separation is to include c.callback in the cache key for\n // maybeBroadcastWatch calls. See issue #5733.\n c.callback,\n canonicalStringify({ optimistic, id, variables })\n );\n }\n },\n }\n );\n\n // Since we have thrown away all the cached functions that depend on the\n // CacheGroup dependencies maintained by EntityStore, we should also reset\n // all CacheGroup dependency information.\n new Set([this.data.group, this.optimisticData.group]).forEach((group) =>\n group.resetCaching()\n );\n }\n\n public restore(data: NormalizedCacheObject): this {\n this.init();\n // Since calling this.init() discards/replaces the entire StoreReader, along\n // with the result caches it maintains, this.data.replace(data) won't have\n // to bother deleting the old data.\n if (data) this.data.replace(data);\n return this;\n }\n\n public extract(optimistic: boolean = false): NormalizedCacheObject {\n return (optimistic ? this.optimisticData : this.data).extract();\n }\n\n public read(options: Cache.ReadOptions): T | null {\n const {\n // Since read returns data or null, without any additional metadata\n // about whether/where there might have been missing fields, the\n // default behavior cannot be returnPartialData = true (like it is\n // for the diff method), since defaulting to true would violate the\n // integrity of the T in the return type. However, partial data may\n // be useful in some cases, so returnPartialData:true may be\n // specified explicitly.\n returnPartialData = false,\n } = options;\n try {\n return (\n this.storeReader.diffQueryAgainstStore({\n ...options,\n store: options.optimistic ? this.optimisticData : this.data,\n config: this.config,\n returnPartialData,\n }).result || null\n );\n } catch (e) {\n if (e instanceof MissingFieldError) {\n // Swallow MissingFieldError and return null, so callers do not need to\n // worry about catching \"normal\" exceptions resulting from incomplete\n // cache data. Unexpected errors will be re-thrown. If you need more\n // information about which fields were missing, use cache.diff instead,\n // and examine diffResult.missing.\n return null;\n }\n throw e;\n }\n }\n\n public write(options: Cache.WriteOptions): Reference | undefined {\n try {\n ++this.txCount;\n return this.storeWriter.writeToStore(this.data, options);\n } finally {\n if (!--this.txCount && options.broadcast !== false) {\n this.broadcastWatches();\n }\n }\n }\n\n public modify = Record>(\n options: Cache.ModifyOptions\n ): boolean {\n if (hasOwn.call(options, \"id\") && !options.id) {\n // To my knowledge, TypeScript does not currently provide a way to\n // enforce that an optional property?:type must *not* be undefined\n // when present. That ability would be useful here, because we want\n // options.id to default to ROOT_QUERY only when no options.id was\n // provided. If the caller attempts to pass options.id with a\n // falsy/undefined value (perhaps because cache.identify failed), we\n // should not assume the goal was to modify the ROOT_QUERY object.\n // We could throw, but it seems natural to return false to indicate\n // that nothing was modified.\n return false;\n }\n const store =\n (\n options.optimistic // Defaults to false.\n ) ?\n this.optimisticData\n : this.data;\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 public diff(\n options: Cache.DiffOptions\n ): Cache.DiffResult {\n return this.storeReader.diffQueryAgainstStore({\n ...options,\n store: options.optimistic ? this.optimisticData : this.data,\n rootId: options.id || \"ROOT_QUERY\",\n config: this.config,\n });\n }\n\n public watch(\n watch: Cache.WatchOptions\n ): () => void {\n if (!this.watches.size) {\n // In case we previously called forgetCache(this) because\n // this.watches became empty (see below), reattach this cache to any\n // reactive variables on which it previously depended. It might seem\n // paradoxical that we're able to recall something we supposedly\n // forgot, but the point of calling forgetCache(this) is to silence\n // useless broadcasts while this.watches is empty, and to allow the\n // cache to be garbage collected. If, however, we manage to call\n // recallCache(this) here, this cache object must not have been\n // garbage collected yet, and should resume receiving updates from\n // reactive variables, now that it has a watcher to notify.\n recallCache(this);\n }\n this.watches.add(watch);\n if (watch.immediate) {\n this.maybeBroadcastWatch(watch);\n }\n return () => {\n // Once we remove the last watch from this.watches, cache.broadcastWatches\n // no longer does anything, so we preemptively tell the reactive variable\n // system to exclude this cache from future broadcasts.\n if (this.watches.delete(watch) && !this.watches.size) {\n forgetCache(this);\n }\n // Remove this watch from the LRU cache managed by the\n // maybeBroadcastWatch OptimisticWrapperFunction, to prevent memory\n // leaks involving the closure of watch.callback.\n this.maybeBroadcastWatch.forget(watch);\n };\n }\n\n public gc(options?: {\n // If true, also free non-essential result cache memory by bulk-releasing\n // this.{store{Reader,Writer},maybeBroadcastWatch}. Defaults to false.\n resetResultCache?: boolean;\n // If resetResultCache is true, this.storeReader.canon will be preserved by\n // default, but can also be discarded by passing resetResultIdentities:true.\n // Defaults to false.\n resetResultIdentities?: boolean;\n }) {\n canonicalStringify.reset();\n print.reset();\n this.addTypenameTransform.resetCache();\n this.config.fragments?.resetCaches();\n const ids = this.optimisticData.gc();\n if (options && !this.txCount) {\n if (options.resetResultCache) {\n this.resetResultCache(options.resetResultIdentities);\n } else if (options.resetResultIdentities) {\n this.storeReader.resetCanon();\n }\n }\n return ids;\n }\n\n // Call this method to ensure the given root ID remains in the cache after\n // garbage collection, along with its transitive child entities. Note that\n // the cache automatically retains all directly written entities. By default,\n // the retainment persists after optimistic updates are removed. Pass true\n // for the optimistic argument if you would prefer for the retainment to be\n // discarded when the top-most optimistic layer is removed. Returns the\n // resulting (non-negative) retainment count.\n public retain(rootId: string, optimistic?: boolean): number {\n return (optimistic ? this.optimisticData : this.data).retain(rootId);\n }\n\n // Call this method to undo the effect of the retain method, above. Once the\n // retainment count falls to zero, the given ID will no longer be preserved\n // during garbage collection, though it may still be preserved by other safe\n // entities that refer to it. Returns the resulting (non-negative) retainment\n // count, in case that's useful.\n public release(rootId: string, optimistic?: boolean): number {\n return (optimistic ? this.optimisticData : this.data).release(rootId);\n }\n\n // Returns the canonical ID for a given StoreObject, obeying typePolicies\n // and keyFields (and dataIdFromObject, if you still use that). At minimum,\n // the object must contain a __typename and any primary key fields required\n // to identify entities of that type. If you pass a query result object, be\n // sure that none of the primary key fields have been renamed by aliasing.\n // If you pass a Reference object, its __ref ID string will be returned.\n public identify(object: StoreObject | Reference): string | undefined {\n if (isReference(object)) return object.__ref;\n try {\n return this.policies.identify(object)[0];\n } catch (e) {\n invariant.warn(e);\n }\n }\n\n public evict(options: Cache.EvictOptions): boolean {\n if (!options.id) {\n if (hasOwn.call(options, \"id\")) {\n // See comment in modify method about why we return false when\n // options.id exists but is falsy/undefined.\n return false;\n }\n options = { ...options, id: \"ROOT_QUERY\" };\n }\n try {\n // It's unlikely that the eviction will end up invoking any other\n // cache update operations while it's running, but {in,de}crementing\n // this.txCount still seems like a good idea, for uniformity with\n // the other update methods.\n ++this.txCount;\n // Pass this.data as a limit on the depth of the eviction, so evictions\n // during optimistic updates (when this.data is temporarily set equal to\n // this.optimisticData) do not escape their optimistic Layer.\n return this.optimisticData.evict(options, this.data);\n } finally {\n if (!--this.txCount && options.broadcast !== false) {\n this.broadcastWatches();\n }\n }\n }\n\n public reset(options?: Cache.ResetOptions): Promise {\n this.init();\n\n canonicalStringify.reset();\n\n if (options && options.discardWatches) {\n // Similar to what happens in the unsubscribe function returned by\n // cache.watch, applied to all current watches.\n this.watches.forEach((watch) => this.maybeBroadcastWatch.forget(watch));\n this.watches.clear();\n forgetCache(this);\n } else {\n // Calling this.init() above unblocks all maybeBroadcastWatch caching, so\n // this.broadcastWatches() triggers a broadcast to every current watcher\n // (letting them know their data is now missing). This default behavior is\n // convenient because it means the watches do not have to be manually\n // reestablished after resetting the cache. To prevent this broadcast and\n // cancel all watches, pass true for options.discardWatches.\n this.broadcastWatches();\n }\n\n return Promise.resolve();\n }\n\n public removeOptimistic(idToRemove: string) {\n const newOptimisticData = this.optimisticData.removeLayer(idToRemove);\n if (newOptimisticData !== this.optimisticData) {\n this.optimisticData = newOptimisticData;\n this.broadcastWatches();\n }\n }\n\n private txCount = 0;\n\n public batch(\n options: Cache.BatchOptions\n ): TUpdateResult {\n const {\n update,\n optimistic = true,\n removeOptimistic,\n onWatchUpdated,\n } = options;\n\n let updateResult: TUpdateResult;\n const perform = (layer?: EntityStore): TUpdateResult => {\n const { data, optimisticData } = this;\n ++this.txCount;\n if (layer) {\n this.data = this.optimisticData = layer;\n }\n try {\n return (updateResult = update(this));\n } finally {\n --this.txCount;\n this.data = data;\n this.optimisticData = optimisticData;\n }\n };\n\n const alreadyDirty = new Set();\n\n if (onWatchUpdated && !this.txCount) {\n // If an options.onWatchUpdated callback is provided, we want to call it\n // with only the Cache.WatchOptions objects affected by options.update,\n // but there might be dirty watchers already waiting to be broadcast that\n // have nothing to do with the update. To prevent including those watchers\n // in the post-update broadcast, we perform this initial broadcast to\n // collect the dirty watchers, so we can re-dirty them later, after the\n // post-update broadcast, allowing them to receive their pending\n // broadcasts the next time broadcastWatches is called, just as they would\n // if we never called cache.batch.\n this.broadcastWatches({\n ...options,\n onWatchUpdated(watch) {\n alreadyDirty.add(watch);\n return false;\n },\n });\n }\n\n if (typeof optimistic === \"string\") {\n // Note that there can be multiple layers with the same optimistic ID.\n // When removeOptimistic(id) is called for that id, all matching layers\n // will be removed, and the remaining layers will be reapplied.\n this.optimisticData = this.optimisticData.addLayer(optimistic, perform);\n } else if (optimistic === false) {\n // Ensure both this.data and this.optimisticData refer to the root\n // (non-optimistic) layer of the cache during the update. Note that\n // this.data could be a Layer if we are currently executing an optimistic\n // update function, but otherwise will always be an EntityStore.Root\n // instance.\n perform(this.data);\n } else {\n // Otherwise, leave this.data and this.optimisticData unchanged and run\n // the update with broadcast batching.\n perform();\n }\n\n if (typeof removeOptimistic === \"string\") {\n this.optimisticData = this.optimisticData.removeLayer(removeOptimistic);\n }\n\n // Note: if this.txCount > 0, then alreadyDirty.size === 0, so this code\n // takes the else branch and calls this.broadcastWatches(options), which\n // does nothing when this.txCount > 0.\n if (onWatchUpdated && alreadyDirty.size) {\n this.broadcastWatches({\n ...options,\n onWatchUpdated(watch, diff) {\n const result = onWatchUpdated.call(this, watch, diff);\n if (result !== false) {\n // Since onWatchUpdated did not return false, this diff is\n // about to be broadcast to watch.callback, so we don't need\n // to re-dirty it with the other alreadyDirty watches below.\n alreadyDirty.delete(watch);\n }\n return result;\n },\n });\n // Silently re-dirty any watches that were already dirty before the update\n // was performed, and were not broadcast just now.\n if (alreadyDirty.size) {\n alreadyDirty.forEach((watch) => this.maybeBroadcastWatch.dirty(watch));\n }\n } else {\n // If alreadyDirty is empty or we don't have an onWatchUpdated\n // function, we don't need to go to the trouble of wrapping\n // options.onWatchUpdated.\n this.broadcastWatches(options);\n }\n\n return updateResult!;\n }\n\n public performTransaction(\n update: (cache: InMemoryCache) => any,\n optimisticId?: string | null\n ) {\n return this.batch({\n update,\n optimistic: optimisticId || optimisticId !== null,\n });\n }\n\n public transformDocument(document: DocumentNode): DocumentNode {\n return this.addTypenameToDocument(this.addFragmentsToDocument(document));\n }\n\n protected broadcastWatches(options?: BroadcastOptions) {\n if (!this.txCount) {\n this.watches.forEach((c) => this.maybeBroadcastWatch(c, options));\n }\n }\n\n private addFragmentsToDocument(document: DocumentNode) {\n const { fragments } = this.config;\n return fragments ? fragments.transform(document) : document;\n }\n\n private addTypenameToDocument(document: DocumentNode) {\n if (this.addTypename) {\n return this.addTypenameTransform.transformDocument(document);\n }\n return document;\n }\n\n // This method is wrapped by maybeBroadcastWatch, which is called by\n // broadcastWatches, so that we compute and broadcast results only when\n // the data that would be broadcast might have changed. It would be\n // simpler to check for changes after recomputing a result but before\n // broadcasting it, but this wrapping approach allows us to skip both\n // the recomputation and the broadcast, in most cases.\n private broadcastWatch(c: Cache.WatchOptions, options?: BroadcastOptions) {\n const { lastDiff } = c;\n\n // Both WatchOptions and DiffOptions extend ReadOptions, and DiffOptions\n // currently requires no additional properties, so we can use c (a\n // WatchOptions object) as DiffOptions, without having to allocate a new\n // object, and without having to enumerate the relevant properties (query,\n // variables, etc.) explicitly. There will be some additional properties\n // (lastDiff, callback, etc.), but cache.diff ignores them.\n const diff = this.diff(c);\n\n if (options) {\n if (c.optimistic && typeof options.optimistic === \"string\") {\n diff.fromOptimisticTransaction = true;\n }\n\n if (\n options.onWatchUpdated &&\n options.onWatchUpdated.call(this, c, diff, lastDiff) === false\n ) {\n // Returning false from the onWatchUpdated callback will prevent\n // calling c.callback(diff) for this watcher.\n return;\n }\n }\n\n if (!lastDiff || !equal(lastDiff.result, diff.result)) {\n c.callback((c.lastDiff = diff), lastDiff);\n }\n }\n\n /**\n * @experimental\n * @internal\n * This is not a stable API - it is used in development builds to expose\n * information to the DevTools.\n * Use at your own risk!\n */\n public getMemoryInternals?: typeof getInMemoryCacheMemoryInternals;\n}\n\nif (__DEV__) {\n InMemoryCache.prototype.getMemoryInternals = getInMemoryCacheMemoryInternals;\n}\n","import { ApolloClient, InMemoryCache, createHttpLink } from \"@apollo/client\";\nimport { setContext } from \"@apollo/client/link/context\";\n\nimport AuthService from \"../services/AuthService\";\n\nconst authLink = setContext(async (_, { headers }) => {\n const authorization = await AuthService.getJwtToken();\n\n return {\n headers: {\n ...headers,\n authorization,\n },\n };\n});\n\nconst httpLink = createHttpLink({ uri: `${process.env.REACT_APP_API_URL}/graphql` });\n\nexport const apolloClient = new ApolloClient({\n cache: new InMemoryCache({\n addTypename: false,\n }),\n link: authLink.concat(httpLink),\n});\n","import type { Operation, GraphQLRequest, NextLink } from \"../core/index.js\";\nimport { ApolloLink } from \"../core/index.js\";\nimport type { ObservableSubscription } from \"../../utilities/index.js\";\nimport { Observable } from \"../../utilities/index.js\";\nimport type { DefaultContext } from \"../../core/index.js\";\n\nexport type ContextSetter = (\n operation: GraphQLRequest,\n prevContext: DefaultContext\n) => Promise | DefaultContext;\n\nexport function setContext(setter: ContextSetter): ApolloLink {\n return new ApolloLink((operation: Operation, forward: NextLink) => {\n const { ...request } = operation;\n\n return new Observable((observer) => {\n let handle: ObservableSubscription;\n let closed = false;\n Promise.resolve(request)\n .then((req) => setter(req, operation.getContext()))\n .then(operation.setContext)\n .then(() => {\n // if the observer is already closed, no need to subscribe.\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 })\n .catch(observer.error.bind(observer));\n\n return () => {\n closed = true;\n if (handle) handle.unsubscribe();\n };\n });\n });\n}\n","export default function _taggedTemplateLiteral(strings, raw) {\n if (!raw) {\n raw = strings.slice(0);\n }\n return Object.freeze(Object.defineProperties(strings, {\n raw: {\n value: Object.freeze(raw)\n }\n }));\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 return self;\n}","export default function _setPrototypeOf(o, p) {\n _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n return _setPrototypeOf(o, p);\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 subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n writable: true,\n configurable: true\n }\n });\n Object.defineProperty(subClass, \"prototype\", {\n writable: false\n });\n if (superClass) setPrototypeOf(subClass, superClass);\n}","export default function _getPrototypeOf(o) {\n _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) {\n return o.__proto__ || Object.getPrototypeOf(o);\n };\n return _getPrototypeOf(o);\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 try {\n Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {}));\n return true;\n } catch (e) {\n return false;\n }\n}","import _typeof from \"./typeof.js\";\nimport assertThisInitialized from \"./assertThisInitialized.js\";\nexport default function _possibleConstructorReturn(self, call) {\n if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) {\n return call;\n } else if (call !== void 0) {\n throw new TypeError(\"Derived constructors may only return object or undefined\");\n }\n return assertThisInitialized(self);\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 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 return possibleConstructorReturn(this, result);\n };\n}","import setPrototypeOf from \"./setPrototypeOf.js\";\nimport isNativeReflectConstruct from \"./isNativeReflectConstruct.js\";\nexport default function _construct(Parent, args, Class) {\n if (isNativeReflectConstruct()) {\n _construct = Reflect.construct.bind();\n } else {\n _construct = function _construct(Parent, args, Class) {\n var a = [null];\n a.push.apply(a, args);\n var Constructor = Function.bind.apply(Parent, a);\n var instance = new Constructor();\n if (Class) setPrototypeOf(instance, Class.prototype);\n return instance;\n };\n }\n return _construct.apply(null, arguments);\n}","import getPrototypeOf from \"./getPrototypeOf.js\";\nimport setPrototypeOf from \"./setPrototypeOf.js\";\nimport isNativeFunction from \"./isNativeFunction.js\";\nimport construct from \"./construct.js\";\nexport default function _wrapNativeSuper(Class) {\n var _cache = typeof Map === \"function\" ? new Map() : undefined;\n _wrapNativeSuper = function _wrapNativeSuper(Class) {\n if (Class === null || !isNativeFunction(Class)) return Class;\n if (typeof Class !== \"function\") {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n if (typeof _cache !== \"undefined\") {\n if (_cache.has(Class)) return _cache.get(Class);\n _cache.set(Class, Wrapper);\n }\n function Wrapper() {\n return construct(Class, arguments, getPrototypeOf(this).constructor);\n }\n Wrapper.prototype = Object.create(Class.prototype, {\n constructor: {\n value: Wrapper,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n return setPrototypeOf(Wrapper, Class);\n };\n return _wrapNativeSuper(Class);\n}","export default function _isNativeFunction(fn) {\n return Function.toString.call(fn).indexOf(\"[native code]\") !== -1;\n}","/**\n * Return true if `value` is object-like. A value is object-like if it's not\n * `null` and has a `typeof` result of \"object\".\n */\nexport function isObjectLike(value) {\n return typeof value == 'object' && value !== null;\n}\n","export function invariant(condition, message) {\n const booleanCondition = Boolean(condition);\n\n if (!booleanCondition) {\n throw new Error(\n message != null ? message : 'Unexpected invariant triggered.',\n );\n }\n}\n","import { invariant } from '../jsutils/invariant.mjs';\nconst LineRegExp = /\\r\\n|[\\n\\r]/g;\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 let lastLineStart = 0;\n let line = 1;\n\n for (const match of source.body.matchAll(LineRegExp)) {\n typeof match.index === 'number' || invariant(false);\n\n if (match.index >= position) {\n break;\n }\n\n lastLineStart = match.index + match[0].length;\n line += 1;\n }\n\n return {\n line,\n column: position + 1 - lastLineStart,\n };\n}\n","import { getLocation } from './location.mjs';\n\n/**\n * Render a helpful description of the location in the GraphQL Source document.\n */\nexport function printLocation(location) {\n return printSourceLocation(\n location.source,\n getLocation(location.source, location.start),\n );\n}\n/**\n * Render a helpful description of the location in the GraphQL Source document.\n */\n\nexport function printSourceLocation(source, sourceLocation) {\n const firstLineColumnOffset = source.locationOffset.column - 1;\n const body = ''.padStart(firstLineColumnOffset) + source.body;\n const lineIndex = sourceLocation.line - 1;\n const lineOffset = source.locationOffset.line - 1;\n const lineNum = sourceLocation.line + lineOffset;\n const columnOffset = sourceLocation.line === 1 ? firstLineColumnOffset : 0;\n const columnNum = sourceLocation.column + columnOffset;\n const locationStr = `${source.name}:${lineNum}:${columnNum}\\n`;\n const lines = body.split(/\\r\\n|[\\n\\r]/g);\n const locationLine = lines[lineIndex]; // Special case for minified documents\n\n if (locationLine.length > 120) {\n const subLineIndex = Math.floor(columnNum / 80);\n const subLineColumnNum = columnNum % 80;\n const subLines = [];\n\n for (let i = 0; i < locationLine.length; i += 80) {\n subLines.push(locationLine.slice(i, i + 80));\n }\n\n return (\n locationStr +\n printPrefixedLines([\n [`${lineNum} |`, subLines[0]],\n ...subLines.slice(1, subLineIndex + 1).map((subLine) => ['|', subLine]),\n ['|', '^'.padStart(subLineColumnNum)],\n ['|', subLines[subLineIndex + 1]],\n ])\n );\n }\n\n return (\n locationStr +\n printPrefixedLines([\n // Lines specified like this: [\"prefix\", \"string\"],\n [`${lineNum - 1} |`, lines[lineIndex - 1]],\n [`${lineNum} |`, locationLine],\n ['|', '^'.padStart(columnNum)],\n [`${lineNum + 1} |`, lines[lineIndex + 1]],\n ])\n );\n}\n\nfunction printPrefixedLines(lines) {\n const existingLines = lines.filter(([_, line]) => line !== undefined);\n const padLen = Math.max(...existingLines.map(([prefix]) => prefix.length));\n return existingLines\n .map(([prefix, line]) => prefix.padStart(padLen) + (line ? ' ' + line : ''))\n .join('\\n');\n}\n","import { isObjectLike } from '../jsutils/isObjectLike.mjs';\nimport { getLocation } from '../language/location.mjs';\nimport {\n printLocation,\n printSourceLocation,\n} from '../language/printLocation.mjs';\n\nfunction toNormalizedOptions(args) {\n const firstArg = args[0];\n\n if (firstArg == null || 'kind' in firstArg || 'length' in firstArg) {\n return {\n nodes: firstArg,\n source: args[1],\n positions: args[2],\n path: args[3],\n originalError: args[4],\n extensions: args[5],\n };\n }\n\n return firstArg;\n}\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 class GraphQLError extends Error {\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 * @deprecated Please use the `GraphQLErrorOptions` constructor overload instead.\n */\n constructor(message, ...rawArgs) {\n var _this$nodes, _nodeLocations$, _ref;\n\n const { nodes, source, positions, path, originalError, extensions } =\n toNormalizedOptions(rawArgs);\n super(message);\n this.name = 'GraphQLError';\n this.path = path !== null && path !== void 0 ? path : undefined;\n this.originalError =\n originalError !== null && originalError !== void 0\n ? originalError\n : undefined; // Compute list of blame nodes.\n\n this.nodes = undefinedIfEmpty(\n Array.isArray(nodes) ? nodes : nodes ? [nodes] : undefined,\n );\n const nodeLocations = undefinedIfEmpty(\n (_this$nodes = this.nodes) === null || _this$nodes === void 0\n ? void 0\n : _this$nodes.map((node) => node.loc).filter((loc) => loc != null),\n ); // Compute locations in the source for the given nodes/positions.\n\n this.source =\n source !== null && source !== void 0\n ? source\n : nodeLocations === null || nodeLocations === void 0\n ? void 0\n : (_nodeLocations$ = nodeLocations[0]) === null ||\n _nodeLocations$ === void 0\n ? void 0\n : _nodeLocations$.source;\n this.positions =\n positions !== null && positions !== void 0\n ? positions\n : nodeLocations === null || nodeLocations === void 0\n ? void 0\n : nodeLocations.map((loc) => loc.start);\n this.locations =\n positions && source\n ? positions.map((pos) => getLocation(source, pos))\n : nodeLocations === null || nodeLocations === void 0\n ? void 0\n : nodeLocations.map((loc) => getLocation(loc.source, loc.start));\n const originalExtensions = isObjectLike(\n originalError === null || originalError === void 0\n ? void 0\n : originalError.extensions,\n )\n ? originalError === null || originalError === void 0\n ? void 0\n : originalError.extensions\n : undefined;\n this.extensions =\n (_ref =\n extensions !== null && extensions !== void 0\n ? extensions\n : originalExtensions) !== null && _ref !== void 0\n ? _ref\n : Object.create(null); // Only properties prescribed by the spec should be enumerable.\n // Keep the rest as non-enumerable.\n\n Object.defineProperties(this, {\n message: {\n writable: true,\n enumerable: true,\n },\n name: {\n enumerable: false,\n },\n nodes: {\n enumerable: false,\n },\n source: {\n enumerable: false,\n },\n positions: {\n enumerable: false,\n },\n originalError: {\n enumerable: false,\n },\n }); // Include (non-enumerable) stack trace.\n\n /* c8 ignore start */\n // FIXME: https://github.com/graphql/graphql-js/issues/2317\n\n if (\n originalError !== null &&\n originalError !== void 0 &&\n originalError.stack\n ) {\n Object.defineProperty(this, 'stack', {\n value: originalError.stack,\n writable: true,\n configurable: true,\n });\n } else if (Error.captureStackTrace) {\n Error.captureStackTrace(this, GraphQLError);\n } else {\n Object.defineProperty(this, 'stack', {\n value: Error().stack,\n writable: true,\n configurable: true,\n });\n }\n /* c8 ignore stop */\n }\n\n get [Symbol.toStringTag]() {\n return 'GraphQLError';\n }\n\n toString() {\n let output = this.message;\n\n if (this.nodes) {\n for (const node of this.nodes) {\n if (node.loc) {\n output += '\\n\\n' + printLocation(node.loc);\n }\n }\n } else if (this.source && this.locations) {\n for (const location of this.locations) {\n output += '\\n\\n' + printSourceLocation(this.source, location);\n }\n }\n\n return output;\n }\n\n toJSON() {\n const formattedError = {\n message: this.message,\n };\n\n if (this.locations != null) {\n formattedError.locations = this.locations;\n }\n\n if (this.path != null) {\n formattedError.path = this.path;\n }\n\n if (this.extensions != null && Object.keys(this.extensions).length > 0) {\n formattedError.extensions = this.extensions;\n }\n\n return formattedError;\n }\n}\n\nfunction undefinedIfEmpty(array) {\n return array === undefined || array.length === 0 ? undefined : array;\n}\n/**\n * See: https://spec.graphql.org/draft/#sec-Errors\n */\n\n/**\n * Prints a GraphQLError to a string, representing useful location information\n * about the error's position in the source.\n *\n * @deprecated Please use `error.toString` instead. Will be removed in v17\n */\nexport function printError(error) {\n return error.toString();\n}\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 * @deprecated Please use `error.toJSON` instead. Will be removed in v17\n */\n\nexport function formatError(error) {\n return error.toJSON();\n}\n","/**\n * The set of allowed directive location values.\n */\nvar DirectiveLocation;\n\n(function (DirectiveLocation) {\n DirectiveLocation['QUERY'] = 'QUERY';\n DirectiveLocation['MUTATION'] = 'MUTATION';\n DirectiveLocation['SUBSCRIPTION'] = 'SUBSCRIPTION';\n DirectiveLocation['FIELD'] = 'FIELD';\n DirectiveLocation['FRAGMENT_DEFINITION'] = 'FRAGMENT_DEFINITION';\n DirectiveLocation['FRAGMENT_SPREAD'] = 'FRAGMENT_SPREAD';\n DirectiveLocation['INLINE_FRAGMENT'] = 'INLINE_FRAGMENT';\n DirectiveLocation['VARIABLE_DEFINITION'] = 'VARIABLE_DEFINITION';\n DirectiveLocation['SCHEMA'] = 'SCHEMA';\n DirectiveLocation['SCALAR'] = 'SCALAR';\n DirectiveLocation['OBJECT'] = 'OBJECT';\n DirectiveLocation['FIELD_DEFINITION'] = 'FIELD_DEFINITION';\n DirectiveLocation['ARGUMENT_DEFINITION'] = 'ARGUMENT_DEFINITION';\n DirectiveLocation['INTERFACE'] = 'INTERFACE';\n DirectiveLocation['UNION'] = 'UNION';\n DirectiveLocation['ENUM'] = 'ENUM';\n DirectiveLocation['ENUM_VALUE'] = 'ENUM_VALUE';\n DirectiveLocation['INPUT_OBJECT'] = 'INPUT_OBJECT';\n DirectiveLocation['INPUT_FIELD_DEFINITION'] = 'INPUT_FIELD_DEFINITION';\n})(DirectiveLocation || (DirectiveLocation = {}));\n\nexport { DirectiveLocation };\n/**\n * The enum type representing the directive location values.\n *\n * @deprecated Please use `DirectiveLocation`. Will be remove in v17.\n */\n","/**\n * An exported enum describing the different kinds of tokens that the\n * lexer emits.\n */\nvar TokenKind;\n\n(function (TokenKind) {\n TokenKind['SOF'] = '';\n TokenKind['EOF'] = '';\n TokenKind['BANG'] = '!';\n TokenKind['DOLLAR'] = '$';\n TokenKind['AMP'] = '&';\n TokenKind['PAREN_L'] = '(';\n TokenKind['PAREN_R'] = ')';\n TokenKind['SPREAD'] = '...';\n TokenKind['COLON'] = ':';\n TokenKind['EQUALS'] = '=';\n TokenKind['AT'] = '@';\n TokenKind['BRACKET_L'] = '[';\n TokenKind['BRACKET_R'] = ']';\n TokenKind['BRACE_L'] = '{';\n TokenKind['PIPE'] = '|';\n TokenKind['BRACE_R'] = '}';\n TokenKind['NAME'] = 'Name';\n TokenKind['INT'] = 'Int';\n TokenKind['FLOAT'] = 'Float';\n TokenKind['STRING'] = 'String';\n TokenKind['BLOCK_STRING'] = 'BlockString';\n TokenKind['COMMENT'] = 'Comment';\n})(TokenKind || (TokenKind = {}));\n\nexport { TokenKind };\n/**\n * The enum type representing the token kinds values.\n *\n * @deprecated Please use `TokenKind`. Will be remove in v17.\n */\n","import { GraphQLError } from './GraphQLError.mjs';\n/**\n * Produces a GraphQLError representing a syntax error, containing useful\n * descriptive information about the syntax error's position in the source.\n */\n\nexport function syntaxError(source, position, description) {\n return new GraphQLError(`Syntax Error: ${description}`, {\n source,\n positions: [position],\n });\n}\n","import { syntaxError } from '../error/syntaxError.mjs';\nimport { Token } from './ast.mjs';\nimport { dedentBlockStringLines } from './blockString.mjs';\nimport { isDigit, isNameContinue, isNameStart } from './characterClasses.mjs';\nimport { TokenKind } from './tokenKind.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 class Lexer {\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 constructor(source) {\n const startOfFileToken = new Token(TokenKind.SOF, 0, 0, 0, 0);\n this.source = source;\n this.lastToken = startOfFileToken;\n this.token = startOfFileToken;\n this.line = 1;\n this.lineStart = 0;\n }\n\n get [Symbol.toStringTag]() {\n return 'Lexer';\n }\n /**\n * Advances the token stream to the next non-ignored token.\n */\n\n advance() {\n this.lastToken = this.token;\n const 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 lookahead() {\n let token = this.token;\n\n if (token.kind !== TokenKind.EOF) {\n do {\n if (token.next) {\n token = token.next;\n } else {\n // Read the next token and form a link in the token linked-list.\n const nextToken = readNextToken(this, token.end); // @ts-expect-error next is only mutable during parsing.\n\n token.next = nextToken; // @ts-expect-error prev is only mutable during parsing.\n\n nextToken.prev = token;\n token = nextToken;\n }\n } while (token.kind === TokenKind.COMMENT);\n }\n\n return token;\n }\n}\n/**\n * @internal\n */\n\nexport function isPunctuatorTokenKind(kind) {\n return (\n kind === TokenKind.BANG ||\n kind === TokenKind.DOLLAR ||\n kind === TokenKind.AMP ||\n kind === TokenKind.PAREN_L ||\n kind === TokenKind.PAREN_R ||\n kind === TokenKind.SPREAD ||\n kind === TokenKind.COLON ||\n kind === TokenKind.EQUALS ||\n kind === TokenKind.AT ||\n kind === TokenKind.BRACKET_L ||\n kind === TokenKind.BRACKET_R ||\n kind === TokenKind.BRACE_L ||\n kind === TokenKind.PIPE ||\n kind === TokenKind.BRACE_R\n );\n}\n/**\n * A Unicode scalar value is any Unicode code point except surrogate code\n * points. In other words, the inclusive ranges of values 0x0000 to 0xD7FF and\n * 0xE000 to 0x10FFFF.\n *\n * SourceCharacter ::\n * - \"Any Unicode scalar value\"\n */\n\nfunction isUnicodeScalarValue(code) {\n return (\n (code >= 0x0000 && code <= 0xd7ff) || (code >= 0xe000 && code <= 0x10ffff)\n );\n}\n/**\n * The GraphQL specification defines source text as a sequence of unicode scalar\n * values (which Unicode defines to exclude surrogate code points). However\n * JavaScript defines strings as a sequence of UTF-16 code units which may\n * include surrogates. A surrogate pair is a valid source character as it\n * encodes a supplementary code point (above U+FFFF), but unpaired surrogate\n * code points are not valid source characters.\n */\n\nfunction isSupplementaryCodePoint(body, location) {\n return (\n isLeadingSurrogate(body.charCodeAt(location)) &&\n isTrailingSurrogate(body.charCodeAt(location + 1))\n );\n}\n\nfunction isLeadingSurrogate(code) {\n return code >= 0xd800 && code <= 0xdbff;\n}\n\nfunction isTrailingSurrogate(code) {\n return code >= 0xdc00 && code <= 0xdfff;\n}\n/**\n * Prints the code point (or end of file reference) at a given location in a\n * source for use in error messages.\n *\n * Printable ASCII is printed quoted, while other points are printed in Unicode\n * code point form (ie. U+1234).\n */\n\nfunction printCodePointAt(lexer, location) {\n const code = lexer.source.body.codePointAt(location);\n\n if (code === undefined) {\n return TokenKind.EOF;\n } else if (code >= 0x0020 && code <= 0x007e) {\n // Printable ASCII\n const char = String.fromCodePoint(code);\n return char === '\"' ? \"'\\\"'\" : `\"${char}\"`;\n } // Unicode code point\n\n return 'U+' + code.toString(16).toUpperCase().padStart(4, '0');\n}\n/**\n * Create a token with line and column location information.\n */\n\nfunction createToken(lexer, kind, start, end, value) {\n const line = lexer.line;\n const col = 1 + start - lexer.lineStart;\n return new Token(kind, start, end, line, col, value);\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\nfunction readNextToken(lexer, start) {\n const body = lexer.source.body;\n const bodyLength = body.length;\n let position = start;\n\n while (position < bodyLength) {\n const code = body.charCodeAt(position); // SourceCharacter\n\n switch (code) {\n // Ignored ::\n // - UnicodeBOM\n // - WhiteSpace\n // - LineTerminator\n // - Comment\n // - Comma\n //\n // UnicodeBOM :: \"Byte Order Mark (U+FEFF)\"\n //\n // WhiteSpace ::\n // - \"Horizontal Tab (U+0009)\"\n // - \"Space (U+0020)\"\n //\n // Comma :: ,\n case 0xfeff: // \n\n case 0x0009: // \\t\n\n case 0x0020: // \n\n case 0x002c:\n // ,\n ++position;\n continue;\n // LineTerminator ::\n // - \"New Line (U+000A)\"\n // - \"Carriage Return (U+000D)\" [lookahead != \"New Line (U+000A)\"]\n // - \"Carriage Return (U+000D)\" \"New Line (U+000A)\"\n\n case 0x000a:\n // \\n\n ++position;\n ++lexer.line;\n lexer.lineStart = position;\n continue;\n\n case 0x000d:\n // \\r\n if (body.charCodeAt(position + 1) === 0x000a) {\n position += 2;\n } else {\n ++position;\n }\n\n ++lexer.line;\n lexer.lineStart = position;\n continue;\n // Comment\n\n case 0x0023:\n // #\n return readComment(lexer, position);\n // Token ::\n // - Punctuator\n // - Name\n // - IntValue\n // - FloatValue\n // - StringValue\n //\n // Punctuator :: one of ! $ & ( ) ... : = @ [ ] { | }\n\n case 0x0021:\n // !\n return createToken(lexer, TokenKind.BANG, position, position + 1);\n\n case 0x0024:\n // $\n return createToken(lexer, TokenKind.DOLLAR, position, position + 1);\n\n case 0x0026:\n // &\n return createToken(lexer, TokenKind.AMP, position, position + 1);\n\n case 0x0028:\n // (\n return createToken(lexer, TokenKind.PAREN_L, position, position + 1);\n\n case 0x0029:\n // )\n return createToken(lexer, TokenKind.PAREN_R, position, position + 1);\n\n case 0x002e:\n // .\n if (\n body.charCodeAt(position + 1) === 0x002e &&\n body.charCodeAt(position + 2) === 0x002e\n ) {\n return createToken(lexer, TokenKind.SPREAD, position, position + 3);\n }\n\n break;\n\n case 0x003a:\n // :\n return createToken(lexer, TokenKind.COLON, position, position + 1);\n\n case 0x003d:\n // =\n return createToken(lexer, TokenKind.EQUALS, position, position + 1);\n\n case 0x0040:\n // @\n return createToken(lexer, TokenKind.AT, position, position + 1);\n\n case 0x005b:\n // [\n return createToken(lexer, TokenKind.BRACKET_L, position, position + 1);\n\n case 0x005d:\n // ]\n return createToken(lexer, TokenKind.BRACKET_R, position, position + 1);\n\n case 0x007b:\n // {\n return createToken(lexer, TokenKind.BRACE_L, position, position + 1);\n\n case 0x007c:\n // |\n return createToken(lexer, TokenKind.PIPE, position, position + 1);\n\n case 0x007d:\n // }\n return createToken(lexer, TokenKind.BRACE_R, position, position + 1);\n // StringValue\n\n case 0x0022:\n // \"\n if (\n body.charCodeAt(position + 1) === 0x0022 &&\n body.charCodeAt(position + 2) === 0x0022\n ) {\n return readBlockString(lexer, position);\n }\n\n return readString(lexer, position);\n } // IntValue | FloatValue (Digit | -)\n\n if (isDigit(code) || code === 0x002d) {\n return readNumber(lexer, position, code);\n } // Name\n\n if (isNameStart(code)) {\n return readName(lexer, position);\n }\n\n throw syntaxError(\n lexer.source,\n position,\n code === 0x0027\n ? 'Unexpected single quote character (\\'), did you mean to use a double quote (\")?'\n : isUnicodeScalarValue(code) || isSupplementaryCodePoint(body, position)\n ? `Unexpected character: ${printCodePointAt(lexer, position)}.`\n : `Invalid character: ${printCodePointAt(lexer, position)}.`,\n );\n }\n\n return createToken(lexer, TokenKind.EOF, bodyLength, bodyLength);\n}\n/**\n * Reads a comment token from the source file.\n *\n * ```\n * Comment :: # CommentChar* [lookahead != CommentChar]\n *\n * CommentChar :: SourceCharacter but not LineTerminator\n * ```\n */\n\nfunction readComment(lexer, start) {\n const body = lexer.source.body;\n const bodyLength = body.length;\n let position = start + 1;\n\n while (position < bodyLength) {\n const code = body.charCodeAt(position); // LineTerminator (\\n | \\r)\n\n if (code === 0x000a || code === 0x000d) {\n break;\n } // SourceCharacter\n\n if (isUnicodeScalarValue(code)) {\n ++position;\n } else if (isSupplementaryCodePoint(body, position)) {\n position += 2;\n } else {\n break;\n }\n }\n\n return createToken(\n lexer,\n TokenKind.COMMENT,\n start,\n position,\n body.slice(start + 1, position),\n );\n}\n/**\n * Reads a number token from the source file, either a FloatValue or an IntValue\n * depending on whether a FractionalPart or ExponentPart is encountered.\n *\n * ```\n * IntValue :: IntegerPart [lookahead != {Digit, `.`, NameStart}]\n *\n * IntegerPart ::\n * - NegativeSign? 0\n * - NegativeSign? NonZeroDigit Digit*\n *\n * NegativeSign :: -\n *\n * NonZeroDigit :: Digit but not `0`\n *\n * FloatValue ::\n * - IntegerPart FractionalPart ExponentPart [lookahead != {Digit, `.`, NameStart}]\n * - IntegerPart FractionalPart [lookahead != {Digit, `.`, NameStart}]\n * - IntegerPart ExponentPart [lookahead != {Digit, `.`, NameStart}]\n *\n * FractionalPart :: . Digit+\n *\n * ExponentPart :: ExponentIndicator Sign? Digit+\n *\n * ExponentIndicator :: one of `e` `E`\n *\n * Sign :: one of + -\n * ```\n */\n\nfunction readNumber(lexer, start, firstCode) {\n const body = lexer.source.body;\n let position = start;\n let code = firstCode;\n let isFloat = false; // NegativeSign (-)\n\n if (code === 0x002d) {\n code = body.charCodeAt(++position);\n } // Zero (0)\n\n if (code === 0x0030) {\n code = body.charCodeAt(++position);\n\n if (isDigit(code)) {\n throw syntaxError(\n lexer.source,\n position,\n `Invalid number, unexpected digit after 0: ${printCodePointAt(\n lexer,\n position,\n )}.`,\n );\n }\n } else {\n position = readDigits(lexer, position, code);\n code = body.charCodeAt(position);\n } // Full stop (.)\n\n if (code === 0x002e) {\n isFloat = true;\n code = body.charCodeAt(++position);\n position = readDigits(lexer, position, code);\n code = body.charCodeAt(position);\n } // E e\n\n if (code === 0x0045 || code === 0x0065) {\n isFloat = true;\n code = body.charCodeAt(++position); // + -\n\n if (code === 0x002b || code === 0x002d) {\n code = body.charCodeAt(++position);\n }\n\n position = readDigits(lexer, position, code);\n code = body.charCodeAt(position);\n } // Numbers cannot be followed by . or NameStart\n\n if (code === 0x002e || isNameStart(code)) {\n throw syntaxError(\n lexer.source,\n position,\n `Invalid number, expected digit but got: ${printCodePointAt(\n lexer,\n position,\n )}.`,\n );\n }\n\n return createToken(\n lexer,\n isFloat ? TokenKind.FLOAT : TokenKind.INT,\n start,\n position,\n body.slice(start, position),\n );\n}\n/**\n * Returns the new position in the source after reading one or more digits.\n */\n\nfunction readDigits(lexer, start, firstCode) {\n if (!isDigit(firstCode)) {\n throw syntaxError(\n lexer.source,\n start,\n `Invalid number, expected digit but got: ${printCodePointAt(\n lexer,\n start,\n )}.`,\n );\n }\n\n const body = lexer.source.body;\n let position = start + 1; // +1 to skip first firstCode\n\n while (isDigit(body.charCodeAt(position))) {\n ++position;\n }\n\n return position;\n}\n/**\n * Reads a single-quote string token from the source file.\n *\n * ```\n * StringValue ::\n * - `\"\"` [lookahead != `\"`]\n * - `\"` StringCharacter+ `\"`\n *\n * StringCharacter ::\n * - SourceCharacter but not `\"` or `\\` or LineTerminator\n * - `\\u` EscapedUnicode\n * - `\\` EscapedCharacter\n *\n * EscapedUnicode ::\n * - `{` HexDigit+ `}`\n * - HexDigit HexDigit HexDigit HexDigit\n *\n * EscapedCharacter :: one of `\"` `\\` `/` `b` `f` `n` `r` `t`\n * ```\n */\n\nfunction readString(lexer, start) {\n const body = lexer.source.body;\n const bodyLength = body.length;\n let position = start + 1;\n let chunkStart = position;\n let value = '';\n\n while (position < bodyLength) {\n const code = body.charCodeAt(position); // Closing Quote (\")\n\n if (code === 0x0022) {\n value += body.slice(chunkStart, position);\n return createToken(lexer, TokenKind.STRING, start, position + 1, value);\n } // Escape Sequence (\\)\n\n if (code === 0x005c) {\n value += body.slice(chunkStart, position);\n const escape =\n body.charCodeAt(position + 1) === 0x0075 // u\n ? body.charCodeAt(position + 2) === 0x007b // {\n ? readEscapedUnicodeVariableWidth(lexer, position)\n : readEscapedUnicodeFixedWidth(lexer, position)\n : readEscapedCharacter(lexer, position);\n value += escape.value;\n position += escape.size;\n chunkStart = position;\n continue;\n } // LineTerminator (\\n | \\r)\n\n if (code === 0x000a || code === 0x000d) {\n break;\n } // SourceCharacter\n\n if (isUnicodeScalarValue(code)) {\n ++position;\n } else if (isSupplementaryCodePoint(body, position)) {\n position += 2;\n } else {\n throw syntaxError(\n lexer.source,\n position,\n `Invalid character within String: ${printCodePointAt(\n lexer,\n position,\n )}.`,\n );\n }\n }\n\n throw syntaxError(lexer.source, position, 'Unterminated string.');\n} // The string value and lexed size of an escape sequence.\n\nfunction readEscapedUnicodeVariableWidth(lexer, position) {\n const body = lexer.source.body;\n let point = 0;\n let size = 3; // Cannot be larger than 12 chars (\\u{00000000}).\n\n while (size < 12) {\n const code = body.charCodeAt(position + size++); // Closing Brace (})\n\n if (code === 0x007d) {\n // Must be at least 5 chars (\\u{0}) and encode a Unicode scalar value.\n if (size < 5 || !isUnicodeScalarValue(point)) {\n break;\n }\n\n return {\n value: String.fromCodePoint(point),\n size,\n };\n } // Append this hex digit to the code point.\n\n point = (point << 4) | readHexDigit(code);\n\n if (point < 0) {\n break;\n }\n }\n\n throw syntaxError(\n lexer.source,\n position,\n `Invalid Unicode escape sequence: \"${body.slice(\n position,\n position + size,\n )}\".`,\n );\n}\n\nfunction readEscapedUnicodeFixedWidth(lexer, position) {\n const body = lexer.source.body;\n const code = read16BitHexCode(body, position + 2);\n\n if (isUnicodeScalarValue(code)) {\n return {\n value: String.fromCodePoint(code),\n size: 6,\n };\n } // GraphQL allows JSON-style surrogate pair escape sequences, but only when\n // a valid pair is formed.\n\n if (isLeadingSurrogate(code)) {\n // \\u\n if (\n body.charCodeAt(position + 6) === 0x005c &&\n body.charCodeAt(position + 7) === 0x0075\n ) {\n const trailingCode = read16BitHexCode(body, position + 8);\n\n if (isTrailingSurrogate(trailingCode)) {\n // JavaScript defines strings as a sequence of UTF-16 code units and\n // encodes Unicode code points above U+FFFF using a surrogate pair of\n // code units. Since this is a surrogate pair escape sequence, just\n // include both codes into the JavaScript string value. Had JavaScript\n // not been internally based on UTF-16, then this surrogate pair would\n // be decoded to retrieve the supplementary code point.\n return {\n value: String.fromCodePoint(code, trailingCode),\n size: 12,\n };\n }\n }\n }\n\n throw syntaxError(\n lexer.source,\n position,\n `Invalid Unicode escape sequence: \"${body.slice(position, position + 6)}\".`,\n );\n}\n/**\n * Reads four hexadecimal characters and returns the positive integer that 16bit\n * hexadecimal string represents. For example, \"000f\" will return 15, and \"dead\"\n * will return 57005.\n *\n * Returns a negative number if any char was not a valid hexadecimal digit.\n */\n\nfunction read16BitHexCode(body, position) {\n // readHexDigit() returns -1 on error. ORing a negative value with any other\n // value always produces a negative value.\n return (\n (readHexDigit(body.charCodeAt(position)) << 12) |\n (readHexDigit(body.charCodeAt(position + 1)) << 8) |\n (readHexDigit(body.charCodeAt(position + 2)) << 4) |\n readHexDigit(body.charCodeAt(position + 3))\n );\n}\n/**\n * Reads a hexadecimal character and returns its positive integer value (0-15).\n *\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 if the provided character code was not a valid hexadecimal digit.\n *\n * HexDigit :: one of\n * - `0` `1` `2` `3` `4` `5` `6` `7` `8` `9`\n * - `A` `B` `C` `D` `E` `F`\n * - `a` `b` `c` `d` `e` `f`\n */\n\nfunction readHexDigit(code) {\n return code >= 0x0030 && code <= 0x0039 // 0-9\n ? code - 0x0030\n : code >= 0x0041 && code <= 0x0046 // A-F\n ? code - 0x0037\n : code >= 0x0061 && code <= 0x0066 // a-f\n ? code - 0x0057\n : -1;\n}\n/**\n * | Escaped Character | Code Point | Character Name |\n * | ----------------- | ---------- | ---------------------------- |\n * | `\"` | U+0022 | double quote |\n * | `\\` | U+005C | reverse solidus (back slash) |\n * | `/` | U+002F | solidus (forward slash) |\n * | `b` | U+0008 | backspace |\n * | `f` | U+000C | form feed |\n * | `n` | U+000A | line feed (new line) |\n * | `r` | U+000D | carriage return |\n * | `t` | U+0009 | horizontal tab |\n */\n\nfunction readEscapedCharacter(lexer, position) {\n const body = lexer.source.body;\n const code = body.charCodeAt(position + 1);\n\n switch (code) {\n case 0x0022:\n // \"\n return {\n value: '\\u0022',\n size: 2,\n };\n\n case 0x005c:\n // \\\n return {\n value: '\\u005c',\n size: 2,\n };\n\n case 0x002f:\n // /\n return {\n value: '\\u002f',\n size: 2,\n };\n\n case 0x0062:\n // b\n return {\n value: '\\u0008',\n size: 2,\n };\n\n case 0x0066:\n // f\n return {\n value: '\\u000c',\n size: 2,\n };\n\n case 0x006e:\n // n\n return {\n value: '\\u000a',\n size: 2,\n };\n\n case 0x0072:\n // r\n return {\n value: '\\u000d',\n size: 2,\n };\n\n case 0x0074:\n // t\n return {\n value: '\\u0009',\n size: 2,\n };\n }\n\n throw syntaxError(\n lexer.source,\n position,\n `Invalid character escape sequence: \"${body.slice(\n position,\n position + 2,\n )}\".`,\n );\n}\n/**\n * Reads a block string token from the source file.\n *\n * ```\n * StringValue ::\n * - `\"\"\"` BlockStringCharacter* `\"\"\"`\n *\n * BlockStringCharacter ::\n * - SourceCharacter but not `\"\"\"` or `\\\"\"\"`\n * - `\\\"\"\"`\n * ```\n */\n\nfunction readBlockString(lexer, start) {\n const body = lexer.source.body;\n const bodyLength = body.length;\n let lineStart = lexer.lineStart;\n let position = start + 3;\n let chunkStart = position;\n let currentLine = '';\n const blockLines = [];\n\n while (position < bodyLength) {\n const code = body.charCodeAt(position); // Closing Triple-Quote (\"\"\")\n\n if (\n code === 0x0022 &&\n body.charCodeAt(position + 1) === 0x0022 &&\n body.charCodeAt(position + 2) === 0x0022\n ) {\n currentLine += body.slice(chunkStart, position);\n blockLines.push(currentLine);\n const token = createToken(\n lexer,\n TokenKind.BLOCK_STRING,\n start,\n position + 3, // Return a string of the lines joined with U+000A.\n dedentBlockStringLines(blockLines).join('\\n'),\n );\n lexer.line += blockLines.length - 1;\n lexer.lineStart = lineStart;\n return token;\n } // Escaped Triple-Quote (\\\"\"\")\n\n if (\n code === 0x005c &&\n body.charCodeAt(position + 1) === 0x0022 &&\n body.charCodeAt(position + 2) === 0x0022 &&\n body.charCodeAt(position + 3) === 0x0022\n ) {\n currentLine += body.slice(chunkStart, position);\n chunkStart = position + 1; // skip only slash\n\n position += 4;\n continue;\n } // LineTerminator\n\n if (code === 0x000a || code === 0x000d) {\n currentLine += body.slice(chunkStart, position);\n blockLines.push(currentLine);\n\n if (code === 0x000d && body.charCodeAt(position + 1) === 0x000a) {\n position += 2;\n } else {\n ++position;\n }\n\n currentLine = '';\n chunkStart = position;\n lineStart = position;\n continue;\n } // SourceCharacter\n\n if (isUnicodeScalarValue(code)) {\n ++position;\n } else if (isSupplementaryCodePoint(body, position)) {\n position += 2;\n } else {\n throw syntaxError(\n lexer.source,\n position,\n `Invalid character within String: ${printCodePointAt(\n lexer,\n position,\n )}.`,\n );\n }\n }\n\n throw syntaxError(lexer.source, position, 'Unterminated string.');\n}\n/**\n * Reads an alphanumeric + underscore name from the source.\n *\n * ```\n * Name ::\n * - NameStart NameContinue* [lookahead != NameContinue]\n * ```\n */\n\nfunction readName(lexer, start) {\n const body = lexer.source.body;\n const bodyLength = body.length;\n let position = start + 1;\n\n while (position < bodyLength) {\n const code = body.charCodeAt(position);\n\n if (isNameContinue(code)) {\n ++position;\n } else {\n break;\n }\n }\n\n return createToken(\n lexer,\n TokenKind.NAME,\n start,\n position,\n body.slice(start, position),\n );\n}\n","import { inspect } from './inspect.mjs';\n/**\n * A replacement for instanceof which includes an error warning when multi-realm\n * constructors are detected.\n * See: https://expressjs.com/en/advanced/best-practice-performance.html#set-node_env-to-production\n * See: https://webpack.js.org/guides/production/\n */\n\nexport const instanceOf =\n /* c8 ignore next 6 */\n // FIXME: https://github.com/graphql/graphql-js/issues/2317\n // eslint-disable-next-line no-undef\n process.env.NODE_ENV === 'production'\n ? function instanceOf(value, constructor) {\n return value instanceof constructor;\n }\n : function instanceOf(value, constructor) {\n if (value instanceof constructor) {\n return true;\n }\n\n if (typeof value === 'object' && value !== null) {\n var _value$constructor;\n\n // Prefer Symbol.toStringTag since it is immune to minification.\n const className = constructor.prototype[Symbol.toStringTag];\n const valueClassName = // We still need to support constructor's name to detect conflicts with older versions of this library.\n Symbol.toStringTag in value // @ts-expect-error TS bug see, https://github.com/microsoft/TypeScript/issues/38009\n ? value[Symbol.toStringTag]\n : (_value$constructor = value.constructor) === null ||\n _value$constructor === void 0\n ? void 0\n : _value$constructor.name;\n\n if (className === valueClassName) {\n const stringifiedValue = inspect(value);\n throw new Error(`Cannot use ${className} \"${stringifiedValue}\" from another module or realm.\n\nEnsure that there is only one instance of \"graphql\" in the node_modules\ndirectory. If different versions of \"graphql\" are the dependencies of other\nrelied on modules, use \"resolutions\" to ensure only one version is installed.\n\nhttps://yarnpkg.com/en/docs/selective-version-resolutions\n\nDuplicate \"graphql\" modules cannot be used at the same time since different\nversions may have different capabilities and behavior. The data from one\nversion used in the function from another could produce confusing and\nspurious results.`);\n }\n }\n\n return false;\n };\n","import { devAssert } from '../jsutils/devAssert.mjs';\nimport { inspect } from '../jsutils/inspect.mjs';\nimport { instanceOf } from '../jsutils/instanceOf.mjs';\n\n/**\n * A representation of source input to GraphQL. The `name` and `locationOffset` parameters are\n * optional, but they are useful for clients who store GraphQL documents in source files.\n * For example, if the GraphQL input starts at line 40 in a file named `Foo.graphql`, it might\n * be useful for `name` to be `\"Foo.graphql\"` and location to be `{ line: 40, column: 1 }`.\n * The `line` and `column` properties in `locationOffset` are 1-indexed.\n */\nexport class Source {\n constructor(\n body,\n name = 'GraphQL request',\n locationOffset = {\n line: 1,\n column: 1,\n },\n ) {\n typeof body === 'string' ||\n devAssert(false, `Body must be a string. Received: ${inspect(body)}.`);\n this.body = body;\n this.name = name;\n this.locationOffset = locationOffset;\n this.locationOffset.line > 0 ||\n devAssert(\n false,\n 'line in locationOffset is 1-indexed and must be positive.',\n );\n this.locationOffset.column > 0 ||\n devAssert(\n false,\n 'column in locationOffset is 1-indexed and must be positive.',\n );\n }\n\n get [Symbol.toStringTag]() {\n return 'Source';\n }\n}\n/**\n * Test if the given value is a Source object.\n *\n * @internal\n */\n\nexport function isSource(source) {\n return instanceOf(source, Source);\n}\n","import { syntaxError } from '../error/syntaxError.mjs';\nimport { Location, OperationTypeNode } from './ast.mjs';\nimport { DirectiveLocation } from './directiveLocation.mjs';\nimport { Kind } from './kinds.mjs';\nimport { isPunctuatorTokenKind, Lexer } from './lexer.mjs';\nimport { isSource, Source } from './source.mjs';\nimport { TokenKind } from './tokenKind.mjs';\n/**\n * Configuration options to control parser behavior\n */\n\n/**\n * Given a GraphQL source, parses it into a Document.\n * Throws GraphQLError if a syntax error is encountered.\n */\nexport function parse(source, options) {\n const 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 const parser = new Parser(source, options);\n parser.expectToken(TokenKind.SOF);\n const value = parser.parseValueLiteral(false);\n parser.expectToken(TokenKind.EOF);\n return value;\n}\n/**\n * Similar to parseValue(), but raises a parse error if it encounters a\n * variable. The return type will be a constant value.\n */\n\nexport function parseConstValue(source, options) {\n const parser = new Parser(source, options);\n parser.expectToken(TokenKind.SOF);\n const value = parser.parseConstValueLiteral();\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 const parser = new Parser(source, options);\n parser.expectToken(TokenKind.SOF);\n const 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 class Parser {\n constructor(source, options = {}) {\n const sourceObj = isSource(source) ? source : new Source(source);\n this._lexer = new Lexer(sourceObj);\n this._options = options;\n this._tokenCounter = 0;\n }\n /**\n * Converts a name lex token into a name parse node.\n */\n\n parseName() {\n const token = this.expectToken(TokenKind.NAME);\n return this.node(token, {\n kind: Kind.NAME,\n value: token.value,\n });\n } // Implements the parsing rules in the Document section.\n\n /**\n * Document : Definition+\n */\n\n parseDocument() {\n return this.node(this._lexer.token, {\n kind: Kind.DOCUMENT,\n definitions: this.many(\n TokenKind.SOF,\n this.parseDefinition,\n TokenKind.EOF,\n ),\n });\n }\n /**\n * Definition :\n * - ExecutableDefinition\n * - TypeSystemDefinition\n * - TypeSystemExtension\n *\n * ExecutableDefinition :\n * - OperationDefinition\n * - FragmentDefinition\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 parseDefinition() {\n if (this.peek(TokenKind.BRACE_L)) {\n return this.parseOperationDefinition();\n } // Many definitions begin with a description and require a lookahead.\n\n const hasDescription = this.peekDescription();\n const keywordToken = hasDescription\n ? this._lexer.lookahead()\n : 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 if (hasDescription) {\n throw syntaxError(\n this._lexer.source,\n this._lexer.token.start,\n 'Unexpected description, descriptions are supported only on type definitions.',\n );\n }\n\n switch (keywordToken.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 'extend':\n return this.parseTypeSystemExtension();\n }\n }\n\n throw this.unexpected(keywordToken);\n } // Implements the parsing rules in the Operations section.\n\n /**\n * OperationDefinition :\n * - SelectionSet\n * - OperationType Name? VariableDefinitions? Directives? SelectionSet\n */\n\n parseOperationDefinition() {\n const start = this._lexer.token;\n\n if (this.peek(TokenKind.BRACE_L)) {\n return this.node(start, {\n kind: Kind.OPERATION_DEFINITION,\n operation: OperationTypeNode.QUERY,\n name: undefined,\n variableDefinitions: [],\n directives: [],\n selectionSet: this.parseSelectionSet(),\n });\n }\n\n const operation = this.parseOperationType();\n let name;\n\n if (this.peek(TokenKind.NAME)) {\n name = this.parseName();\n }\n\n return this.node(start, {\n kind: Kind.OPERATION_DEFINITION,\n operation,\n name,\n variableDefinitions: this.parseVariableDefinitions(),\n directives: this.parseDirectives(false),\n selectionSet: this.parseSelectionSet(),\n });\n }\n /**\n * OperationType : one of query mutation subscription\n */\n\n parseOperationType() {\n const operationToken = this.expectToken(TokenKind.NAME);\n\n switch (operationToken.value) {\n case 'query':\n return OperationTypeNode.QUERY;\n\n case 'mutation':\n return OperationTypeNode.MUTATION;\n\n case 'subscription':\n return OperationTypeNode.SUBSCRIPTION;\n }\n\n throw this.unexpected(operationToken);\n }\n /**\n * VariableDefinitions : ( VariableDefinition+ )\n */\n\n parseVariableDefinitions() {\n return this.optionalMany(\n TokenKind.PAREN_L,\n this.parseVariableDefinition,\n TokenKind.PAREN_R,\n );\n }\n /**\n * VariableDefinition : Variable : Type DefaultValue? Directives[Const]?\n */\n\n parseVariableDefinition() {\n return this.node(this._lexer.token, {\n kind: Kind.VARIABLE_DEFINITION,\n variable: this.parseVariable(),\n type: (this.expectToken(TokenKind.COLON), this.parseTypeReference()),\n defaultValue: this.expectOptionalToken(TokenKind.EQUALS)\n ? this.parseConstValueLiteral()\n : undefined,\n directives: this.parseConstDirectives(),\n });\n }\n /**\n * Variable : $ Name\n */\n\n parseVariable() {\n const start = this._lexer.token;\n this.expectToken(TokenKind.DOLLAR);\n return this.node(start, {\n kind: Kind.VARIABLE,\n name: this.parseName(),\n });\n }\n /**\n * ```\n * SelectionSet : { Selection+ }\n * ```\n */\n\n parseSelectionSet() {\n return this.node(this._lexer.token, {\n kind: Kind.SELECTION_SET,\n selections: this.many(\n TokenKind.BRACE_L,\n this.parseSelection,\n TokenKind.BRACE_R,\n ),\n });\n }\n /**\n * Selection :\n * - Field\n * - FragmentSpread\n * - InlineFragment\n */\n\n parseSelection() {\n return this.peek(TokenKind.SPREAD)\n ? this.parseFragment()\n : this.parseField();\n }\n /**\n * Field : Alias? Name Arguments? Directives? SelectionSet?\n *\n * Alias : Name :\n */\n\n parseField() {\n const start = this._lexer.token;\n const nameOrAlias = this.parseName();\n let alias;\n let name;\n\n if (this.expectOptionalToken(TokenKind.COLON)) {\n alias = nameOrAlias;\n name = this.parseName();\n } else {\n name = nameOrAlias;\n }\n\n return this.node(start, {\n kind: Kind.FIELD,\n alias,\n name,\n arguments: this.parseArguments(false),\n directives: this.parseDirectives(false),\n selectionSet: this.peek(TokenKind.BRACE_L)\n ? this.parseSelectionSet()\n : undefined,\n });\n }\n /**\n * Arguments[Const] : ( Argument[?Const]+ )\n */\n\n parseArguments(isConst) {\n const 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 parseArgument(isConst = false) {\n const start = this._lexer.token;\n const name = this.parseName();\n this.expectToken(TokenKind.COLON);\n return this.node(start, {\n kind: Kind.ARGUMENT,\n name,\n value: this.parseValueLiteral(isConst),\n });\n }\n\n parseConstArgument() {\n return this.parseArgument(true);\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 parseFragment() {\n const start = this._lexer.token;\n this.expectToken(TokenKind.SPREAD);\n const hasTypeCondition = this.expectOptionalKeyword('on');\n\n if (!hasTypeCondition && this.peek(TokenKind.NAME)) {\n return this.node(start, {\n kind: Kind.FRAGMENT_SPREAD,\n name: this.parseFragmentName(),\n directives: this.parseDirectives(false),\n });\n }\n\n return this.node(start, {\n kind: Kind.INLINE_FRAGMENT,\n typeCondition: hasTypeCondition ? this.parseNamedType() : undefined,\n directives: this.parseDirectives(false),\n selectionSet: this.parseSelectionSet(),\n });\n }\n /**\n * FragmentDefinition :\n * - fragment FragmentName on TypeCondition Directives? SelectionSet\n *\n * TypeCondition : NamedType\n */\n\n parseFragmentDefinition() {\n const start = this._lexer.token;\n this.expectKeyword('fragment'); // Legacy 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.allowLegacyFragmentVariables === true) {\n return this.node(start, {\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 });\n }\n\n return this.node(start, {\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 });\n }\n /**\n * FragmentName : Name but not `on`\n */\n\n 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 parseValueLiteral(isConst) {\n const 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.advanceLexer();\n return this.node(token, {\n kind: Kind.INT,\n value: token.value,\n });\n\n case TokenKind.FLOAT:\n this.advanceLexer();\n return this.node(token, {\n kind: Kind.FLOAT,\n value: token.value,\n });\n\n case TokenKind.STRING:\n case TokenKind.BLOCK_STRING:\n return this.parseStringLiteral();\n\n case TokenKind.NAME:\n this.advanceLexer();\n\n switch (token.value) {\n case 'true':\n return this.node(token, {\n kind: Kind.BOOLEAN,\n value: true,\n });\n\n case 'false':\n return this.node(token, {\n kind: Kind.BOOLEAN,\n value: false,\n });\n\n case 'null':\n return this.node(token, {\n kind: Kind.NULL,\n });\n\n default:\n return this.node(token, {\n kind: Kind.ENUM,\n value: token.value,\n });\n }\n\n case TokenKind.DOLLAR:\n if (isConst) {\n this.expectToken(TokenKind.DOLLAR);\n\n if (this._lexer.token.kind === TokenKind.NAME) {\n const varName = this._lexer.token.value;\n throw syntaxError(\n this._lexer.source,\n token.start,\n `Unexpected variable \"$${varName}\" in constant value.`,\n );\n } else {\n throw this.unexpected(token);\n }\n }\n\n return this.parseVariable();\n\n default:\n throw this.unexpected();\n }\n }\n\n parseConstValueLiteral() {\n return this.parseValueLiteral(true);\n }\n\n parseStringLiteral() {\n const token = this._lexer.token;\n this.advanceLexer();\n return this.node(token, {\n kind: Kind.STRING,\n value: token.value,\n block: token.kind === TokenKind.BLOCK_STRING,\n });\n }\n /**\n * ListValue[Const] :\n * - [ ]\n * - [ Value[?Const]+ ]\n */\n\n parseList(isConst) {\n const item = () => this.parseValueLiteral(isConst);\n\n return this.node(this._lexer.token, {\n kind: Kind.LIST,\n values: this.any(TokenKind.BRACKET_L, item, TokenKind.BRACKET_R),\n });\n }\n /**\n * ```\n * ObjectValue[Const] :\n * - { }\n * - { ObjectField[?Const]+ }\n * ```\n */\n\n parseObject(isConst) {\n const item = () => this.parseObjectField(isConst);\n\n return this.node(this._lexer.token, {\n kind: Kind.OBJECT,\n fields: this.any(TokenKind.BRACE_L, item, TokenKind.BRACE_R),\n });\n }\n /**\n * ObjectField[Const] : Name : Value[?Const]\n */\n\n parseObjectField(isConst) {\n const start = this._lexer.token;\n const name = this.parseName();\n this.expectToken(TokenKind.COLON);\n return this.node(start, {\n kind: Kind.OBJECT_FIELD,\n name,\n value: this.parseValueLiteral(isConst),\n });\n } // Implements the parsing rules in the Directives section.\n\n /**\n * Directives[Const] : Directive[?Const]+\n */\n\n parseDirectives(isConst) {\n const directives = [];\n\n while (this.peek(TokenKind.AT)) {\n directives.push(this.parseDirective(isConst));\n }\n\n return directives;\n }\n\n parseConstDirectives() {\n return this.parseDirectives(true);\n }\n /**\n * ```\n * Directive[Const] : @ Name Arguments[?Const]?\n * ```\n */\n\n parseDirective(isConst) {\n const start = this._lexer.token;\n this.expectToken(TokenKind.AT);\n return this.node(start, {\n kind: Kind.DIRECTIVE,\n name: this.parseName(),\n arguments: this.parseArguments(isConst),\n });\n } // Implements the parsing rules in the Types section.\n\n /**\n * Type :\n * - NamedType\n * - ListType\n * - NonNullType\n */\n\n parseTypeReference() {\n const start = this._lexer.token;\n let type;\n\n if (this.expectOptionalToken(TokenKind.BRACKET_L)) {\n const innerType = this.parseTypeReference();\n this.expectToken(TokenKind.BRACKET_R);\n type = this.node(start, {\n kind: Kind.LIST_TYPE,\n type: innerType,\n });\n } else {\n type = this.parseNamedType();\n }\n\n if (this.expectOptionalToken(TokenKind.BANG)) {\n return this.node(start, {\n kind: Kind.NON_NULL_TYPE,\n type,\n });\n }\n\n return type;\n }\n /**\n * NamedType : Name\n */\n\n parseNamedType() {\n return this.node(this._lexer.token, {\n kind: Kind.NAMED_TYPE,\n name: this.parseName(),\n });\n } // Implements the parsing rules in the Type Definition section.\n\n peekDescription() {\n return this.peek(TokenKind.STRING) || this.peek(TokenKind.BLOCK_STRING);\n }\n /**\n * Description : StringValue\n */\n\n parseDescription() {\n if (this.peekDescription()) {\n return this.parseStringLiteral();\n }\n }\n /**\n * ```\n * SchemaDefinition : Description? schema Directives[Const]? { OperationTypeDefinition+ }\n * ```\n */\n\n parseSchemaDefinition() {\n const start = this._lexer.token;\n const description = this.parseDescription();\n this.expectKeyword('schema');\n const directives = this.parseConstDirectives();\n const operationTypes = this.many(\n TokenKind.BRACE_L,\n this.parseOperationTypeDefinition,\n TokenKind.BRACE_R,\n );\n return this.node(start, {\n kind: Kind.SCHEMA_DEFINITION,\n description,\n directives,\n operationTypes,\n });\n }\n /**\n * OperationTypeDefinition : OperationType : NamedType\n */\n\n parseOperationTypeDefinition() {\n const start = this._lexer.token;\n const operation = this.parseOperationType();\n this.expectToken(TokenKind.COLON);\n const type = this.parseNamedType();\n return this.node(start, {\n kind: Kind.OPERATION_TYPE_DEFINITION,\n operation,\n type,\n });\n }\n /**\n * ScalarTypeDefinition : Description? scalar Name Directives[Const]?\n */\n\n parseScalarTypeDefinition() {\n const start = this._lexer.token;\n const description = this.parseDescription();\n this.expectKeyword('scalar');\n const name = this.parseName();\n const directives = this.parseConstDirectives();\n return this.node(start, {\n kind: Kind.SCALAR_TYPE_DEFINITION,\n description,\n name,\n directives,\n });\n }\n /**\n * ObjectTypeDefinition :\n * Description?\n * type Name ImplementsInterfaces? Directives[Const]? FieldsDefinition?\n */\n\n parseObjectTypeDefinition() {\n const start = this._lexer.token;\n const description = this.parseDescription();\n this.expectKeyword('type');\n const name = this.parseName();\n const interfaces = this.parseImplementsInterfaces();\n const directives = this.parseConstDirectives();\n const fields = this.parseFieldsDefinition();\n return this.node(start, {\n kind: Kind.OBJECT_TYPE_DEFINITION,\n description,\n name,\n interfaces,\n directives,\n fields,\n });\n }\n /**\n * ImplementsInterfaces :\n * - implements `&`? NamedType\n * - ImplementsInterfaces & NamedType\n */\n\n parseImplementsInterfaces() {\n return this.expectOptionalKeyword('implements')\n ? this.delimitedMany(TokenKind.AMP, this.parseNamedType)\n : [];\n }\n /**\n * ```\n * FieldsDefinition : { FieldDefinition+ }\n * ```\n */\n\n parseFieldsDefinition() {\n return this.optionalMany(\n TokenKind.BRACE_L,\n this.parseFieldDefinition,\n TokenKind.BRACE_R,\n );\n }\n /**\n * FieldDefinition :\n * - Description? Name ArgumentsDefinition? : Type Directives[Const]?\n */\n\n parseFieldDefinition() {\n const start = this._lexer.token;\n const description = this.parseDescription();\n const name = this.parseName();\n const args = this.parseArgumentDefs();\n this.expectToken(TokenKind.COLON);\n const type = this.parseTypeReference();\n const directives = this.parseConstDirectives();\n return this.node(start, {\n kind: Kind.FIELD_DEFINITION,\n description,\n name,\n arguments: args,\n type,\n directives,\n });\n }\n /**\n * ArgumentsDefinition : ( InputValueDefinition+ )\n */\n\n parseArgumentDefs() {\n return this.optionalMany(\n TokenKind.PAREN_L,\n this.parseInputValueDef,\n TokenKind.PAREN_R,\n );\n }\n /**\n * InputValueDefinition :\n * - Description? Name : Type DefaultValue? Directives[Const]?\n */\n\n parseInputValueDef() {\n const start = this._lexer.token;\n const description = this.parseDescription();\n const name = this.parseName();\n this.expectToken(TokenKind.COLON);\n const type = this.parseTypeReference();\n let defaultValue;\n\n if (this.expectOptionalToken(TokenKind.EQUALS)) {\n defaultValue = this.parseConstValueLiteral();\n }\n\n const directives = this.parseConstDirectives();\n return this.node(start, {\n kind: Kind.INPUT_VALUE_DEFINITION,\n description,\n name,\n type,\n defaultValue,\n directives,\n });\n }\n /**\n * InterfaceTypeDefinition :\n * - Description? interface Name Directives[Const]? FieldsDefinition?\n */\n\n parseInterfaceTypeDefinition() {\n const start = this._lexer.token;\n const description = this.parseDescription();\n this.expectKeyword('interface');\n const name = this.parseName();\n const interfaces = this.parseImplementsInterfaces();\n const directives = this.parseConstDirectives();\n const fields = this.parseFieldsDefinition();\n return this.node(start, {\n kind: Kind.INTERFACE_TYPE_DEFINITION,\n description,\n name,\n interfaces,\n directives,\n fields,\n });\n }\n /**\n * UnionTypeDefinition :\n * - Description? union Name Directives[Const]? UnionMemberTypes?\n */\n\n parseUnionTypeDefinition() {\n const start = this._lexer.token;\n const description = this.parseDescription();\n this.expectKeyword('union');\n const name = this.parseName();\n const directives = this.parseConstDirectives();\n const types = this.parseUnionMemberTypes();\n return this.node(start, {\n kind: Kind.UNION_TYPE_DEFINITION,\n description,\n name,\n directives,\n types,\n });\n }\n /**\n * UnionMemberTypes :\n * - = `|`? NamedType\n * - UnionMemberTypes | NamedType\n */\n\n parseUnionMemberTypes() {\n return this.expectOptionalToken(TokenKind.EQUALS)\n ? this.delimitedMany(TokenKind.PIPE, this.parseNamedType)\n : [];\n }\n /**\n * EnumTypeDefinition :\n * - Description? enum Name Directives[Const]? EnumValuesDefinition?\n */\n\n parseEnumTypeDefinition() {\n const start = this._lexer.token;\n const description = this.parseDescription();\n this.expectKeyword('enum');\n const name = this.parseName();\n const directives = this.parseConstDirectives();\n const values = this.parseEnumValuesDefinition();\n return this.node(start, {\n kind: Kind.ENUM_TYPE_DEFINITION,\n description,\n name,\n directives,\n values,\n });\n }\n /**\n * ```\n * EnumValuesDefinition : { EnumValueDefinition+ }\n * ```\n */\n\n parseEnumValuesDefinition() {\n return this.optionalMany(\n TokenKind.BRACE_L,\n this.parseEnumValueDefinition,\n TokenKind.BRACE_R,\n );\n }\n /**\n * EnumValueDefinition : Description? EnumValue Directives[Const]?\n */\n\n parseEnumValueDefinition() {\n const start = this._lexer.token;\n const description = this.parseDescription();\n const name = this.parseEnumValueName();\n const directives = this.parseConstDirectives();\n return this.node(start, {\n kind: Kind.ENUM_VALUE_DEFINITION,\n description,\n name,\n directives,\n });\n }\n /**\n * EnumValue : Name but not `true`, `false` or `null`\n */\n\n parseEnumValueName() {\n if (\n this._lexer.token.value === 'true' ||\n this._lexer.token.value === 'false' ||\n this._lexer.token.value === 'null'\n ) {\n throw syntaxError(\n this._lexer.source,\n this._lexer.token.start,\n `${getTokenDesc(\n this._lexer.token,\n )} is reserved and cannot be used for an enum value.`,\n );\n }\n\n return this.parseName();\n }\n /**\n * InputObjectTypeDefinition :\n * - Description? input Name Directives[Const]? InputFieldsDefinition?\n */\n\n parseInputObjectTypeDefinition() {\n const start = this._lexer.token;\n const description = this.parseDescription();\n this.expectKeyword('input');\n const name = this.parseName();\n const directives = this.parseConstDirectives();\n const fields = this.parseInputFieldsDefinition();\n return this.node(start, {\n kind: Kind.INPUT_OBJECT_TYPE_DEFINITION,\n description,\n name,\n directives,\n fields,\n });\n }\n /**\n * ```\n * InputFieldsDefinition : { InputValueDefinition+ }\n * ```\n */\n\n parseInputFieldsDefinition() {\n return this.optionalMany(\n TokenKind.BRACE_L,\n this.parseInputValueDef,\n TokenKind.BRACE_R,\n );\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 parseTypeSystemExtension() {\n const 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 * ```\n * SchemaExtension :\n * - extend schema Directives[Const]? { OperationTypeDefinition+ }\n * - extend schema Directives[Const]\n * ```\n */\n\n parseSchemaExtension() {\n const start = this._lexer.token;\n this.expectKeyword('extend');\n this.expectKeyword('schema');\n const directives = this.parseConstDirectives();\n const operationTypes = this.optionalMany(\n TokenKind.BRACE_L,\n this.parseOperationTypeDefinition,\n TokenKind.BRACE_R,\n );\n\n if (directives.length === 0 && operationTypes.length === 0) {\n throw this.unexpected();\n }\n\n return this.node(start, {\n kind: Kind.SCHEMA_EXTENSION,\n directives,\n operationTypes,\n });\n }\n /**\n * ScalarTypeExtension :\n * - extend scalar Name Directives[Const]\n */\n\n parseScalarTypeExtension() {\n const start = this._lexer.token;\n this.expectKeyword('extend');\n this.expectKeyword('scalar');\n const name = this.parseName();\n const directives = this.parseConstDirectives();\n\n if (directives.length === 0) {\n throw this.unexpected();\n }\n\n return this.node(start, {\n kind: Kind.SCALAR_TYPE_EXTENSION,\n name,\n directives,\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 parseObjectTypeExtension() {\n const start = this._lexer.token;\n this.expectKeyword('extend');\n this.expectKeyword('type');\n const name = this.parseName();\n const interfaces = this.parseImplementsInterfaces();\n const directives = this.parseConstDirectives();\n const fields = this.parseFieldsDefinition();\n\n if (\n interfaces.length === 0 &&\n directives.length === 0 &&\n fields.length === 0\n ) {\n throw this.unexpected();\n }\n\n return this.node(start, {\n kind: Kind.OBJECT_TYPE_EXTENSION,\n name,\n interfaces,\n directives,\n fields,\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 parseInterfaceTypeExtension() {\n const start = this._lexer.token;\n this.expectKeyword('extend');\n this.expectKeyword('interface');\n const name = this.parseName();\n const interfaces = this.parseImplementsInterfaces();\n const directives = this.parseConstDirectives();\n const fields = this.parseFieldsDefinition();\n\n if (\n interfaces.length === 0 &&\n directives.length === 0 &&\n fields.length === 0\n ) {\n throw this.unexpected();\n }\n\n return this.node(start, {\n kind: Kind.INTERFACE_TYPE_EXTENSION,\n name,\n interfaces,\n directives,\n fields,\n });\n }\n /**\n * UnionTypeExtension :\n * - extend union Name Directives[Const]? UnionMemberTypes\n * - extend union Name Directives[Const]\n */\n\n parseUnionTypeExtension() {\n const start = this._lexer.token;\n this.expectKeyword('extend');\n this.expectKeyword('union');\n const name = this.parseName();\n const directives = this.parseConstDirectives();\n const types = this.parseUnionMemberTypes();\n\n if (directives.length === 0 && types.length === 0) {\n throw this.unexpected();\n }\n\n return this.node(start, {\n kind: Kind.UNION_TYPE_EXTENSION,\n name,\n directives,\n types,\n });\n }\n /**\n * EnumTypeExtension :\n * - extend enum Name Directives[Const]? EnumValuesDefinition\n * - extend enum Name Directives[Const]\n */\n\n parseEnumTypeExtension() {\n const start = this._lexer.token;\n this.expectKeyword('extend');\n this.expectKeyword('enum');\n const name = this.parseName();\n const directives = this.parseConstDirectives();\n const values = this.parseEnumValuesDefinition();\n\n if (directives.length === 0 && values.length === 0) {\n throw this.unexpected();\n }\n\n return this.node(start, {\n kind: Kind.ENUM_TYPE_EXTENSION,\n name,\n directives,\n values,\n });\n }\n /**\n * InputObjectTypeExtension :\n * - extend input Name Directives[Const]? InputFieldsDefinition\n * - extend input Name Directives[Const]\n */\n\n parseInputObjectTypeExtension() {\n const start = this._lexer.token;\n this.expectKeyword('extend');\n this.expectKeyword('input');\n const name = this.parseName();\n const directives = this.parseConstDirectives();\n const fields = this.parseInputFieldsDefinition();\n\n if (directives.length === 0 && fields.length === 0) {\n throw this.unexpected();\n }\n\n return this.node(start, {\n kind: Kind.INPUT_OBJECT_TYPE_EXTENSION,\n name,\n directives,\n fields,\n });\n }\n /**\n * ```\n * DirectiveDefinition :\n * - Description? directive @ Name ArgumentsDefinition? `repeatable`? on DirectiveLocations\n * ```\n */\n\n parseDirectiveDefinition() {\n const start = this._lexer.token;\n const description = this.parseDescription();\n this.expectKeyword('directive');\n this.expectToken(TokenKind.AT);\n const name = this.parseName();\n const args = this.parseArgumentDefs();\n const repeatable = this.expectOptionalKeyword('repeatable');\n this.expectKeyword('on');\n const locations = this.parseDirectiveLocations();\n return this.node(start, {\n kind: Kind.DIRECTIVE_DEFINITION,\n description,\n name,\n arguments: args,\n repeatable,\n locations,\n });\n }\n /**\n * DirectiveLocations :\n * - `|`? DirectiveLocation\n * - DirectiveLocations | DirectiveLocation\n */\n\n 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 parseDirectiveLocation() {\n const start = this._lexer.token;\n const name = this.parseName();\n\n if (Object.prototype.hasOwnProperty.call(DirectiveLocation, name.value)) {\n return name;\n }\n\n throw this.unexpected(start);\n } // Core parsing utility functions\n\n /**\n * Returns a node that, if configured to do so, sets a \"loc\" field as a\n * location object, used to identify the place in the source that created a\n * given parsed object.\n */\n\n node(startToken, node) {\n if (this._options.noLocation !== true) {\n node.loc = new Location(\n startToken,\n this._lexer.lastToken,\n this._lexer.source,\n );\n }\n\n return node;\n }\n /**\n * Determines if the next token is of a given kind\n */\n\n 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 expectToken(kind) {\n const token = this._lexer.token;\n\n if (token.kind === kind) {\n this.advanceLexer();\n return token;\n }\n\n throw syntaxError(\n this._lexer.source,\n token.start,\n `Expected ${getTokenKindDesc(kind)}, found ${getTokenDesc(token)}.`,\n );\n }\n /**\n * If the next token is of the given kind, return \"true\" after advancing the lexer.\n * Otherwise, do not change the parser state and return \"false\".\n */\n\n expectOptionalToken(kind) {\n const token = this._lexer.token;\n\n if (token.kind === kind) {\n this.advanceLexer();\n return true;\n }\n\n return false;\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 expectKeyword(value) {\n const token = this._lexer.token;\n\n if (token.kind === TokenKind.NAME && token.value === value) {\n this.advanceLexer();\n } else {\n throw syntaxError(\n this._lexer.source,\n token.start,\n `Expected \"${value}\", found ${getTokenDesc(token)}.`,\n );\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 expectOptionalKeyword(value) {\n const token = this._lexer.token;\n\n if (token.kind === TokenKind.NAME && token.value === value) {\n this.advanceLexer();\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 unexpected(atToken) {\n const token =\n atToken !== null && atToken !== void 0 ? atToken : this._lexer.token;\n return syntaxError(\n this._lexer.source,\n token.start,\n `Unexpected ${getTokenDesc(token)}.`,\n );\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 any(openKind, parseFn, closeKind) {\n this.expectToken(openKind);\n const 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 optionalMany(openKind, parseFn, closeKind) {\n if (this.expectOptionalToken(openKind)) {\n const 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 many(openKind, parseFn, closeKind) {\n this.expectToken(openKind);\n const 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 delimitedMany(delimiterKind, parseFn) {\n this.expectOptionalToken(delimiterKind);\n const nodes = [];\n\n do {\n nodes.push(parseFn.call(this));\n } while (this.expectOptionalToken(delimiterKind));\n\n return nodes;\n }\n\n advanceLexer() {\n const { maxTokens } = this._options;\n\n const token = this._lexer.advance();\n\n if (maxTokens !== undefined && token.kind !== TokenKind.EOF) {\n ++this._tokenCounter;\n\n if (this._tokenCounter > maxTokens) {\n throw syntaxError(\n this._lexer.source,\n token.start,\n `Document contains more that ${maxTokens} tokens. Parsing aborted.`,\n );\n }\n }\n }\n}\n/**\n * A helper function to describe a token as a string for debugging.\n */\n\nfunction getTokenDesc(token) {\n const value = token.value;\n return getTokenKindDesc(token.kind) + (value != null ? ` \"${value}\"` : '');\n}\n/**\n * A helper function to describe a token kind as a string for debugging.\n */\n\nfunction getTokenKindDesc(kind) {\n return isPunctuatorTokenKind(kind) ? `\"${kind}\"` : kind;\n}\n","import { parse } from 'graphql';\n\nimport {\n DocumentNode,\n DefinitionNode,\n Location,\n} from 'graphql/language/ast';\n\n// A map docString -> graphql document\nconst docCache = new Map();\n\n// A map fragmentName -> [normalized source]\nconst fragmentSourceMap = new Map>();\n\nlet printFragmentWarnings = true;\nlet experimentalFragmentVariables = false;\n\n// Strip insignificant whitespace\n// Note that this could do a lot more, such as reorder fields etc.\nfunction normalize(string: string) {\n return string.replace(/[\\s,]+/g, ' ').trim();\n}\n\nfunction cacheKeyFromLoc(loc: Location) {\n return normalize(loc.source.body.substring(loc.start, loc.end));\n}\n\n// Take a unstripped parsed document (query/mutation or even fragment), and\n// check all fragment definitions, checking for name->source uniqueness.\n// We also want to make sure only unique fragments exist in the document.\nfunction processFragments(ast: DocumentNode) {\n const seenKeys = new Set();\n const definitions: DefinitionNode[] = [];\n\n ast.definitions.forEach(fragmentDefinition => {\n if (fragmentDefinition.kind === 'FragmentDefinition') {\n var fragmentName = fragmentDefinition.name.value;\n var sourceKey = cacheKeyFromLoc(fragmentDefinition.loc!);\n\n // We know something about this fragment\n let sourceKeySet = fragmentSourceMap.get(fragmentName)!;\n if (sourceKeySet && !sourceKeySet.has(sourceKey)) {\n // this is a problem because the app developer is trying to register another fragment with\n // the same name as one previously registered. So, we tell them about it.\n if (printFragmentWarnings) {\n console.warn(\"Warning: fragment with name \" + fragmentName + \" already exists.\\n\"\n + \"graphql-tag enforces all fragment names across your application to be unique; read more about\\n\"\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\n return {\n ...ast,\n definitions,\n };\n}\n\nfunction stripLoc(doc: DocumentNode) {\n const workSet = new Set>(doc.definitions);\n\n workSet.forEach(node => {\n if (node.loc) delete node.loc;\n Object.keys(node).forEach(key => {\n const value = node[key];\n if (value && typeof value === 'object') {\n workSet.add(value);\n }\n });\n });\n\n const loc = doc.loc as Record;\n if (loc) {\n delete loc.startToken;\n delete loc.endToken;\n }\n\n return doc;\n}\n\nfunction parseDocument(source: string) {\n var cacheKey = normalize(source);\n if (!docCache.has(cacheKey)) {\n const parsed = parse(source, {\n experimentalFragmentVariables,\n allowLegacyFragmentVariables: experimentalFragmentVariables,\n } as any);\n if (!parsed || parsed.kind !== 'Document') {\n throw new Error('Not a valid GraphQL document.');\n }\n docCache.set(\n cacheKey,\n // check that all \"new\" fragments inside the documents are consistent with\n // existing fragments of the same name\n stripLoc(processFragments(parsed)),\n );\n }\n return docCache.get(cacheKey)!;\n}\n\n// XXX This should eventually disallow arbitrary string interpolation, like Relay does\nexport function gql(\n literals: string | readonly string[],\n ...args: any[]\n) {\n\n if (typeof literals === 'string') {\n literals = [literals];\n }\n\n let result = literals[0];\n\n args.forEach((arg, i) => {\n if (arg && arg.kind === 'Document') {\n result += arg.loc.source.body;\n } else {\n result += arg;\n }\n result += literals[i + 1];\n });\n\n return parseDocument(result);\n}\n\nexport function resetCaches() {\n docCache.clear();\n fragmentSourceMap.clear();\n}\n\nexport function disableFragmentWarnings() {\n printFragmentWarnings = false;\n}\n\nexport function enableExperimentalFragmentVariables() {\n experimentalFragmentVariables = true;\n}\n\nexport function disableExperimentalFragmentVariables() {\n experimentalFragmentVariables = false;\n}\n\nconst extras = {\n gql,\n resetCaches,\n disableFragmentWarnings,\n enableExperimentalFragmentVariables,\n disableExperimentalFragmentVariables,\n};\n\nexport namespace gql {\n export const {\n gql,\n resetCaches,\n disableFragmentWarnings,\n enableExperimentalFragmentVariables,\n disableExperimentalFragmentVariables,\n } = extras;\n}\n\ngql.default = gql;\n\nexport default gql;\n","import gql from \"graphql-tag\";\n\nconst getCurrentUserInfo = gql`\n query getCurrentUserInfo {\n getCurrentUserInfo {\n name\n email\n organization_id\n }\n }\n`;\n\nexport default getCurrentUserInfo;\n","import gql from \"graphql-tag\";\n\nconst attachIOTPolicy = gql`\n mutation attachIOTPolicy($identity_id: ID!) {\n attachIOTPolicy(identity_id: $identity_id) {\n result\n }\n }\n`;\n\nexport default attachIOTPolicy;\n","import { Auth } from \"@aws-amplify/auth\";\nimport { CurrentUserOpts } from \"@aws-amplify/auth/lib-esm/types\";\nimport { Hub } from \"@aws-amplify/core\";\nimport PostHog from \"posthog-js\";\n\nimport { logUser, signOut } from \"../redux/actions/authActions\";\nimport store from \"../redux/store/index\";\nimport { apolloClient } from \"../configs/apollo-client\";\nimport getCurrentUserInfo from \"../scenes/Settings/Profile/Account/Info/graphql/getCurrentUserInfo\";\n\nimport attachIOTPolicy from \"./graphql/attachIOTPolicy.mutation\";\n\nexport default abstract class AuthService {\n static startAuthListener() {\n Hub.listen(\"auth\", (data) => {\n const { payload } = data;\n\n switch (payload.event) {\n case \"signIn\":\n this.onUserSignedIn(payload.data);\n break;\n case \"signOut\":\n this.onUserSignedOut();\n break;\n case \"signIn_failure\":\n console.error(\"[AuthService] User sign in failed\");\n break;\n case \"signUp\":\n break;\n default:\n break;\n }\n });\n }\n\n static async onUserSignedIn(data: any) {\n console.log(\"[AuthService] onUserSignedIn\", data);\n\n if (data && data.attributes) {\n try {\n console.log(\"[AuthService] getting current user info\");\n const response = await apolloClient.query({\n query: getCurrentUserInfo,\n fetchPolicy: \"no-cache\",\n });\n\n store.dispatch(\n logUser(\n data.attributes.email,\n response.data.getCurrentUserInfo.name,\n response.data.getCurrentUserInfo.organization_id\n )\n );\n\n PostHog.__loaded &&\n PostHog.identify(data.attributes.email, {\n name: response.data.getCurrentUserInfo.name,\n email: data.attributes.email,\n });\n } catch (error) {\n console.log(\"[AuthService] onUserSignedIn error\");\n console.log(error);\n }\n }\n\n if (!process.env.REACT_APP_SELF_HOSTED) {\n const credentials = await Auth.currentCredentials();\n const cognitoIdentityId = credentials && credentials.identityId;\n\n if (cognitoIdentityId) {\n await apolloClient.mutate({\n mutation: attachIOTPolicy,\n variables: {\n identity_id: cognitoIdentityId,\n },\n });\n }\n }\n }\n\n static onUserSignedOut() {\n console.log(\"[AuthService] onUserSignedOut\");\n store.dispatch(signOut());\n PostHog.__loaded && PostHog.reset();\n }\n\n static signUp(attributes: { email: string; password: string; fullName: string }) {\n return Auth.signUp({\n username: attributes.email,\n password: attributes.password,\n attributes: {\n email: attributes.email,\n name: attributes.fullName,\n \"custom:admin_signup\": \"true\",\n },\n });\n }\n\n static async signIn(email: string, password: string) {\n if (process.env.REACT_APP_SELF_HOSTED) {\n const response = await fetch(`${process.env.REACT_APP_API_URL}/signIn`, {\n method: \"POST\",\n headers: {\n Accept: \"application/json\",\n \"Content-Type\": \"application/x-www-form-urlencoded\",\n },\n body: new URLSearchParams({\n email,\n password,\n }),\n });\n\n if (!response.ok) {\n const error = new Error();\n\n if (response.status === 401) {\n const json = await response.json();\n error.message = json.error;\n throw error;\n } else {\n error.message = \"Something went wrong\";\n throw error;\n }\n }\n\n const { token } = await response.json();\n // 1. Save token to local storage\n localStorage.setItem(\"bkalerts_self_hosted_auth_token\", token);\n\n // 2. Notify Hub\n const payload = JSON.parse(atob(token.split(\".\")[1]));\n Hub.dispatch(\"auth\", {\n event: \"signIn\",\n data: {\n attributes: {\n email: payload.email,\n email_verified: true,\n name: payload.name,\n },\n signInUserSession: {\n idToken: {\n payload,\n },\n },\n },\n });\n\n return;\n }\n\n return Auth.signIn(email, password);\n }\n\n static completeNewPassword(user: any, password: string) {\n return Auth.completeNewPassword(user, password);\n }\n\n static forgotPassword(email: string) {\n return Auth.forgotPassword(email);\n }\n\n static forgotPasswordSubmit(username: string, code: string, password: string) {\n return Auth.forgotPasswordSubmit(username, code, password);\n }\n\n static changePassword(user: any, currentPassword: string, newPassword: string) {\n return Auth.changePassword(user, currentPassword, newPassword);\n }\n\n static async currentAuthenticatedUser(params?: CurrentUserOpts) {\n if (process.env.REACT_APP_SELF_HOSTED) {\n const currentToken = localStorage.getItem(\"bkalerts_self_hosted_auth_token\");\n if (!currentToken) return null;\n\n const response = await fetch(`${process.env.REACT_APP_API_URL}/currentSession`, {\n method: \"GET\",\n headers: {\n Accept: \"application/json\",\n Authorization: currentToken,\n },\n });\n\n if (!response.ok) {\n localStorage.removeItem(\"bkalerts_self_hosted_auth_token\");\n throw new Error(\"Invalid token\");\n }\n\n const { token } = await response.json();\n localStorage.setItem(\"bkalerts_self_hosted_auth_token\", token);\n\n const payload = JSON.parse(atob(token.split(\".\")[1]));\n\n return {\n attributes: {\n email: payload.email,\n email_verified: true,\n name: payload.name,\n },\n signInUserSession: {\n idToken: {\n payload,\n },\n },\n };\n }\n\n return Auth.currentAuthenticatedUser(params);\n }\n\n static async checkAuthentication() {\n try {\n console.log(\"[AuthService] checkAuthentication\");\n const user = await this.currentAuthenticatedUser();\n this.onUserSignedIn(user);\n return user;\n } catch (error) {\n console.log(\"[AuthService] checkAuthentication error\");\n console.log(error);\n this.onUserSignedOut();\n return null;\n }\n }\n\n static currentSession() {\n return Auth.currentSession();\n }\n\n static async getJwtToken() {\n if (process.env.REACT_APP_SELF_HOSTED) return localStorage.getItem(\"bkalerts_self_hosted_auth_token\");\n\n try {\n const currentSession = await this.currentSession();\n\n return currentSession.getIdToken().getJwtToken();\n } catch (error) {\n return null;\n }\n }\n\n static async getInstalledApps(): Promise {\n try {\n const currentAuthenticatedUser = await this.currentAuthenticatedUser({ bypassCache: true });\n\n return JSON.parse(currentAuthenticatedUser.signInUserSession.idToken.payload.installedApps) as string[];\n } catch (error) {\n return [];\n }\n }\n\n static logout() {\n console.log(\"[AuthService] logout\");\n if (process.env.REACT_APP_SELF_HOSTED) {\n localStorage.removeItem(\"bkalerts_self_hosted_auth_token\");\n\n Hub.dispatch(\"auth\", {\n event: \"signOut\",\n });\n\n return;\n }\n\n return Auth.signOut();\n }\n}\n\n// @ts-ignore\nwindow.AuthService = AuthService;\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 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 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 if (Object.getOwnPropertySymbols) {\n var sourceSymbolKeys = Object.getOwnPropertySymbols(source);\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 return target;\n}","function r(e){var t,f,n=\"\";if(\"string\"==typeof e||\"number\"==typeof e)n+=e;else if(\"object\"==typeof e)if(Array.isArray(e))for(t=0;t\n typeof v === 'number' && !isNaN(v);\n\nexport const isStr = (v: any): v is String => typeof v === 'string';\n\nexport const isFn = (v: any): v is Function => typeof v === 'function';\n\nexport const parseClassName = (v: any) => (isStr(v) || isFn(v) ? v : null);\n\nexport const getAutoCloseDelay = (\n toastAutoClose?: false | number,\n containerAutoClose?: false | number\n) =>\n toastAutoClose === false || (isNum(toastAutoClose) && toastAutoClose > 0)\n ? toastAutoClose\n : containerAutoClose;\n\nexport const canBeRendered = (content: T): boolean =>\n isValidElement(content) || isStr(content) || isFn(content) || isNum(content);\n","import { Default } from './constant';\n\n/**\n * Used to collapse toast after exit animation\n */\nexport function collapseToast(\n node: HTMLElement,\n done: () => void,\n duration = Default.COLLAPSE_DURATION\n) {\n const { scrollHeight, style } = node;\n\n requestAnimationFrame(() => {\n style.minHeight = 'initial';\n style.height = scrollHeight + 'px';\n style.transition = `all ${duration}ms`;\n\n requestAnimationFrame(() => {\n style.height = '0';\n style.padding = '0';\n style.margin = '0';\n setTimeout(done, duration as number);\n });\n });\n}\n","import React, { useEffect, useLayoutEffect, useRef } from 'react';\nimport { collapseToast } from './collapseToast';\nimport { Default, SyntheticEvent } from './constant';\n\nimport { ToastTransitionProps } from '../types';\n\nexport interface CSSTransitionProps {\n /**\n * Css class to apply when toast enter\n */\n enter: string;\n\n /**\n * Css class to apply when toast leave\n */\n exit: string;\n\n /**\n * Append current toast position to the classname.\n * If multiple classes are provided, only the last one will get the position\n * For instance `myclass--top-center`...\n * `Default: false`\n */\n appendPosition?: boolean;\n\n /**\n * Collapse toast smoothly when exit animation end\n * `Default: true`\n */\n collapse?: boolean;\n\n /**\n * Collapse transition duration\n * `Default: 300`\n */\n collapseDuration?: number;\n}\n\nconst enum AnimationStep {\n Enter,\n Exit\n}\n\n/**\n * Css animation that just work.\n * You could use animate.css for instance\n *\n *\n * ```\n * cssTransition({\n * enter: \"animate__animated animate__bounceIn\",\n * exit: \"animate__animated animate__bounceOut\"\n * })\n * ```\n *\n */\nexport function cssTransition({\n enter,\n exit,\n appendPosition = false,\n collapse = true,\n collapseDuration = Default.COLLAPSE_DURATION\n}: CSSTransitionProps) {\n return function ToastTransition({\n children,\n position,\n preventExitTransition,\n done,\n nodeRef,\n isIn\n }: ToastTransitionProps) {\n const enterClassName = appendPosition ? `${enter}--${position}` : enter;\n const exitClassName = appendPosition ? `${exit}--${position}` : exit;\n const animationStep = useRef(AnimationStep.Enter);\n\n useLayoutEffect(() => {\n const node = nodeRef.current!;\n const classToToken = enterClassName.split(' ');\n\n const onEntered = (e: AnimationEvent) => {\n if (e.target !== nodeRef.current) return;\n\n node.dispatchEvent(new Event(SyntheticEvent.ENTRANCE_ANIMATION_END));\n node.removeEventListener('animationend', onEntered);\n node.removeEventListener('animationcancel', onEntered);\n if (\n animationStep.current === AnimationStep.Enter &&\n e.type !== 'animationcancel'\n ) {\n node.classList.remove(...classToToken);\n }\n };\n\n const onEnter = () => {\n node.classList.add(...classToToken);\n node.addEventListener('animationend', onEntered);\n node.addEventListener('animationcancel', onEntered);\n };\n\n onEnter();\n }, []);\n\n useEffect(() => {\n const node = nodeRef.current!;\n\n const onExited = () => {\n node.removeEventListener('animationend', onExited);\n collapse ? collapseToast(node, done, collapseDuration) : done();\n };\n\n const onExit = () => {\n animationStep.current = AnimationStep.Exit;\n node.className += ` ${exitClassName}`;\n node.addEventListener('animationend', onExited);\n };\n\n if (!isIn) preventExitTransition ? onExited() : onExit();\n }, [isIn]);\n\n return <>{children};\n };\n}\n","import { Toast, ToastItem, ToastItemStatus } from '../types';\n\nexport function toToastItem(toast: Toast, status: ToastItemStatus): ToastItem {\n return {\n content: toast.content,\n containerId: toast.props.containerId,\n id: toast.props.toastId,\n theme: toast.props.theme,\n type: toast.props.type,\n data: toast.props.data || {},\n isLoading: toast.props.isLoading,\n icon: toast.props.icon,\n status\n };\n}\n","import {\n Id,\n ToastContent,\n ClearWaitingQueueParams,\n NotValidatedToastProps,\n ToastItem\n} from '../types';\nimport { ContainerInstance } from '../hooks';\n\nexport const enum Event {\n Show,\n Clear,\n DidMount,\n WillUnmount,\n Change,\n ClearWaitingQueue\n}\n\ntype OnShowCallback = (\n content: ToastContent,\n options: NotValidatedToastProps\n) => void;\ntype OnClearCallback = (id?: Id) => void;\ntype OnClearWaitingQueue = (params: ClearWaitingQueueParams) => void;\ntype OnDidMountCallback = (containerInstance: ContainerInstance) => void;\ntype OnWillUnmountCallback = OnDidMountCallback;\n\nexport type OnChangeCallback = (toast: ToastItem) => void;\n\ntype Callback =\n | OnShowCallback\n | OnClearCallback\n | OnClearWaitingQueue\n | OnDidMountCallback\n | OnWillUnmountCallback\n | OnChangeCallback;\ntype TimeoutId = ReturnType;\n\nexport interface EventManager {\n list: Map;\n emitQueue: Map;\n on(event: Event.Show, callback: OnShowCallback): EventManager;\n on(event: Event.Clear, callback: OnClearCallback): EventManager;\n on(\n event: Event.ClearWaitingQueue,\n callback: OnClearWaitingQueue\n ): EventManager;\n on(event: Event.DidMount, callback: OnDidMountCallback): EventManager;\n on(event: Event.WillUnmount, callback: OnWillUnmountCallback): EventManager;\n on(event: Event.Change, callback: OnChangeCallback): EventManager;\n off(event: Event, callback?: Callback): EventManager;\n cancelEmit(event: Event): EventManager;\n emit(\n event: Event.Show,\n content: React.ReactNode | ToastContent,\n options: NotValidatedToastProps\n ): void;\n emit(event: Event.Clear, id?: string | number): void;\n emit(event: Event.ClearWaitingQueue, params: ClearWaitingQueueParams): void;\n emit(event: Event.DidMount, containerInstance: ContainerInstance): void;\n emit(event: Event.WillUnmount, containerInstance: ContainerInstance): void;\n emit(event: Event.Change, data: ToastItem): void;\n}\n\nexport const eventManager: EventManager = {\n list: new Map(),\n emitQueue: new Map(),\n\n on(event: Event, callback: Callback) {\n this.list.has(event) || this.list.set(event, []);\n this.list.get(event)!.push(callback);\n return this;\n },\n\n off(event, callback) {\n if (callback) {\n const cb = this.list.get(event)!.filter(cb => cb !== callback);\n this.list.set(event, cb);\n return this;\n }\n this.list.delete(event);\n return this;\n },\n\n cancelEmit(event) {\n const timers = this.emitQueue.get(event);\n if (timers) {\n timers.forEach(clearTimeout);\n this.emitQueue.delete(event);\n }\n\n return this;\n },\n\n /**\n * Enqueue the event at the end of the call stack\n * Doing so let the user call toast as follow:\n * toast('1')\n * toast('2')\n * toast('3')\n * Without setTimemout the code above will not work\n */\n emit(event: Event, ...args: any[]) {\n this.list.has(event) &&\n this.list.get(event)!.forEach((callback: Callback) => {\n const timer: TimeoutId = setTimeout(() => {\n // @ts-ignore\n callback(...args);\n }, 0);\n\n this.emitQueue.has(event) || this.emitQueue.set(event, []);\n this.emitQueue.get(event)!.push(timer);\n });\n }\n};\n","import React, { cloneElement, isValidElement } from 'react';\n\nimport { Theme, ToastProps, TypeOptions } from '../types';\nimport { Default, isFn, isNum, isStr } from '../utils';\n\n/**\n * Used when providing custom icon\n */\nexport interface IconProps {\n theme: Theme;\n type: TypeOptions;\n}\n\nexport type BuiltInIconProps = React.SVGProps & IconProps;\n\nconst Svg: React.FC = ({ theme, type, ...rest }) => (\n \n);\n\nfunction Warning(props: BuiltInIconProps) {\n return (\n \n \n \n );\n}\n\nfunction Info(props: BuiltInIconProps) {\n return (\n \n \n \n );\n}\n\nfunction Success(props: BuiltInIconProps) {\n return (\n \n \n \n );\n}\n\nfunction Error(props: BuiltInIconProps) {\n return (\n \n \n \n );\n}\n\nfunction Spinner() {\n return
;\n}\n\nexport const Icons = {\n info: Info,\n warning: Warning,\n success: Success,\n error: Error,\n spinner: Spinner\n};\n\nconst maybeIcon = (type: string): type is keyof typeof Icons => type in Icons;\n\nexport function getIcon({ theme, type, isLoading, icon }: ToastProps) {\n let Icon: React.ReactNode = null;\n const iconProps = { theme, type };\n\n if (icon === false) {\n // hide\n } else if (isFn(icon)) {\n Icon = icon(iconProps);\n } else if (isValidElement(icon)) {\n Icon = cloneElement(icon, iconProps);\n } else if (isStr(icon) || isNum(icon)) {\n Icon = icon;\n } else if (isLoading) {\n Icon = Icons.spinner();\n } else if (maybeIcon(type)) {\n Icon = Icons[type](iconProps);\n }\n\n return Icon;\n}\n","import {\n useState,\n useRef,\n useEffect,\n isValidElement,\n DOMAttributes\n} from 'react';\n\nimport { isFn, Default, Direction, SyntheticEvent } from '../utils';\nimport { ToastProps } from '../types';\n\ninterface Draggable {\n start: number;\n x: number;\n y: number;\n delta: number;\n removalDistance: number;\n canCloseOnClick: boolean;\n canDrag: boolean;\n boundingRect: DOMRect | null;\n didMove: boolean;\n}\n\ntype DragEvent = MouseEvent & TouchEvent;\n\nfunction getX(e: DragEvent) {\n return e.targetTouches && e.targetTouches.length >= 1\n ? e.targetTouches[0].clientX\n : e.clientX;\n}\n\nfunction getY(e: DragEvent) {\n return e.targetTouches && e.targetTouches.length >= 1\n ? e.targetTouches[0].clientY\n : e.clientY;\n}\n\nexport function useToast(props: ToastProps) {\n const [isRunning, setIsRunning] = useState(false);\n const [preventExitTransition, setPreventExitTransition] = useState(false);\n const toastRef = useRef(null);\n const drag = useRef({\n start: 0,\n x: 0,\n y: 0,\n delta: 0,\n removalDistance: 0,\n canCloseOnClick: true,\n canDrag: false,\n boundingRect: null,\n didMove: false\n }).current;\n const syncProps = useRef(props);\n const { autoClose, pauseOnHover, closeToast, onClick, closeOnClick } = props;\n\n useEffect(() => {\n syncProps.current = props;\n });\n\n useEffect(() => {\n if (toastRef.current)\n toastRef.current.addEventListener(\n SyntheticEvent.ENTRANCE_ANIMATION_END,\n playToast,\n { once: true }\n );\n\n if (isFn(props.onOpen))\n props.onOpen(isValidElement(props.children) && props.children.props);\n\n return () => {\n const props = syncProps.current;\n if (isFn(props.onClose))\n props.onClose(isValidElement(props.children) && props.children.props);\n };\n }, []);\n\n useEffect(() => {\n props.pauseOnFocusLoss && bindFocusEvents();\n return () => {\n props.pauseOnFocusLoss && unbindFocusEvents();\n };\n }, [props.pauseOnFocusLoss]);\n\n function onDragStart(\n e: React.MouseEvent | React.TouchEvent\n ) {\n if (props.draggable) {\n // required for ios safari to prevent default swipe behavior\n if (e.nativeEvent.type === 'touchstart') e.nativeEvent.preventDefault();\n\n bindDragEvents();\n const toast = toastRef.current!;\n drag.canCloseOnClick = true;\n drag.canDrag = true;\n drag.boundingRect = toast.getBoundingClientRect();\n toast.style.transition = '';\n drag.x = getX(e.nativeEvent as DragEvent);\n drag.y = getY(e.nativeEvent as DragEvent);\n\n if (props.draggableDirection === Direction.X) {\n drag.start = drag.x;\n drag.removalDistance =\n toast.offsetWidth * (props.draggablePercent / 100);\n } else {\n drag.start = drag.y;\n drag.removalDistance =\n toast.offsetHeight *\n (props.draggablePercent === Default.DRAGGABLE_PERCENT\n ? props.draggablePercent * 1.5\n : props.draggablePercent / 100);\n }\n }\n }\n\n function onDragTransitionEnd(\n e: React.MouseEvent | React.TouchEvent\n ) {\n if (drag.boundingRect) {\n const { top, bottom, left, right } = drag.boundingRect;\n\n if (\n e.nativeEvent.type !== 'touchend' &&\n props.pauseOnHover &&\n drag.x >= left &&\n drag.x <= right &&\n drag.y >= top &&\n drag.y <= bottom\n ) {\n pauseToast();\n } else {\n playToast();\n }\n }\n }\n\n function playToast() {\n setIsRunning(true);\n }\n\n function pauseToast() {\n setIsRunning(false);\n }\n\n function bindFocusEvents() {\n if (!document.hasFocus()) pauseToast();\n\n window.addEventListener('focus', playToast);\n window.addEventListener('blur', pauseToast);\n }\n\n function unbindFocusEvents() {\n window.removeEventListener('focus', playToast);\n window.removeEventListener('blur', pauseToast);\n }\n\n function bindDragEvents() {\n drag.didMove = false;\n document.addEventListener('mousemove', onDragMove);\n document.addEventListener('mouseup', onDragEnd);\n\n document.addEventListener('touchmove', onDragMove);\n document.addEventListener('touchend', onDragEnd);\n }\n\n function unbindDragEvents() {\n document.removeEventListener('mousemove', onDragMove);\n document.removeEventListener('mouseup', onDragEnd);\n\n document.removeEventListener('touchmove', onDragMove);\n document.removeEventListener('touchend', onDragEnd);\n }\n\n function onDragMove(e: MouseEvent | TouchEvent) {\n const toast = toastRef.current!;\n if (drag.canDrag && toast) {\n drag.didMove = true;\n if (isRunning) pauseToast();\n drag.x = getX(e as DragEvent);\n drag.y = getY(e as DragEvent);\n if (props.draggableDirection === Direction.X) {\n drag.delta = drag.x - drag.start;\n } else {\n drag.delta = drag.y - drag.start;\n }\n\n // prevent false positif during a toast click\n if (drag.start !== drag.x) drag.canCloseOnClick = false;\n toast.style.transform = `translate${props.draggableDirection}(${drag.delta}px)`;\n toast.style.opacity = `${\n 1 - Math.abs(drag.delta / drag.removalDistance)\n }`;\n }\n }\n\n function onDragEnd() {\n unbindDragEvents();\n const toast = toastRef.current!;\n if (drag.canDrag && drag.didMove && toast) {\n drag.canDrag = false;\n if (Math.abs(drag.delta) > drag.removalDistance) {\n setPreventExitTransition(true);\n props.closeToast();\n return;\n }\n toast.style.transition = 'transform 0.2s, opacity 0.2s';\n toast.style.transform = `translate${props.draggableDirection}(0)`;\n toast.style.opacity = '1';\n }\n }\n\n const eventHandlers: DOMAttributes = {\n onMouseDown: onDragStart,\n onTouchStart: onDragStart,\n onMouseUp: onDragTransitionEnd,\n onTouchEnd: onDragTransitionEnd\n };\n\n if (autoClose && pauseOnHover) {\n eventHandlers.onMouseEnter = pauseToast;\n eventHandlers.onMouseLeave = playToast;\n }\n\n // prevent toast from closing when user drags the toast\n if (closeOnClick) {\n eventHandlers.onClick = (e: React.MouseEvent) => {\n onClick && onClick(e);\n drag.canCloseOnClick && closeToast();\n };\n }\n\n return {\n playToast,\n pauseToast,\n isRunning,\n preventExitTransition,\n toastRef,\n eventHandlers\n };\n}\n","import React from 'react';\nimport { Default } from '../utils';\nimport { Theme, TypeOptions } from '../types';\n\nexport interface CloseButtonProps {\n closeToast: (e: React.MouseEvent) => void;\n type: TypeOptions;\n ariaLabel?: string;\n theme: Theme;\n}\n\nexport function CloseButton({\n closeToast,\n theme,\n ariaLabel = 'close'\n}: CloseButtonProps) {\n return (\n {\n e.stopPropagation();\n closeToast(e);\n }}\n aria-label={ariaLabel}\n >\n \n \n \n \n );\n}\n","import React from 'react';\nimport cx from 'clsx';\n\nimport { Default, isFn, Type } from './../utils';\nimport { TypeOptions, ToastClassName, Theme } from '../types';\n\nexport interface ProgressBarProps {\n /**\n * The animation delay which determine when to close the toast\n */\n delay: number;\n\n /**\n * Whether or not the animation is running or paused\n */\n isRunning: boolean;\n\n /**\n * Func to close the current toast\n */\n closeToast: () => void;\n\n /**\n * Optional type : info, success ...\n */\n type: TypeOptions;\n\n /**\n * The theme that is currently used\n */\n theme: Theme;\n\n /**\n * Hide or not the progress bar\n */\n hide?: boolean;\n\n /**\n * Optionnal className\n */\n className?: ToastClassName;\n\n /**\n * Optionnal inline style\n */\n style?: React.CSSProperties;\n\n /**\n * Tell wether or not controlled progress bar is used\n */\n controlledProgress?: boolean;\n\n /**\n * Controlled progress value\n */\n progress?: number | string;\n\n /**\n * Support rtl content\n */\n rtl?: boolean;\n\n /**\n * Tell if the component is visible on screen or not\n */\n isIn?: boolean;\n}\n\nexport function ProgressBar({\n delay,\n isRunning,\n closeToast,\n type = Type.DEFAULT,\n hide,\n className,\n style: userStyle,\n controlledProgress,\n progress,\n rtl,\n isIn,\n theme\n}: ProgressBarProps) {\n const isHidden = hide || (controlledProgress && progress === 0);\n const style: React.CSSProperties = {\n ...userStyle,\n animationDuration: `${delay}ms`,\n animationPlayState: isRunning ? 'running' : 'paused',\n opacity: isHidden ? 0 : 1\n };\n\n if (controlledProgress) style.transform = `scaleX(${progress})`;\n const defaultClassName = cx(\n `${Default.CSS_NAMESPACE}__progress-bar`,\n controlledProgress\n ? `${Default.CSS_NAMESPACE}__progress-bar--controlled`\n : `${Default.CSS_NAMESPACE}__progress-bar--animated`,\n `${Default.CSS_NAMESPACE}__progress-bar-theme--${theme}`,\n `${Default.CSS_NAMESPACE}__progress-bar--${type}`,\n {\n [`${Default.CSS_NAMESPACE}__progress-bar--rtl`]: rtl\n }\n );\n const classNames = isFn(className)\n ? className({\n rtl,\n type,\n defaultClassName\n })\n : cx(defaultClassName, className);\n\n // 🧐 controlledProgress is derived from progress\n // so if controlledProgress is set\n // it means that this is also the case for progress\n const animationEvent = {\n [controlledProgress && progress! >= 1\n ? 'onTransitionEnd'\n : 'onAnimationEnd']:\n controlledProgress && progress! < 1\n ? null\n : () => {\n isIn && closeToast();\n }\n };\n\n // TODO: add aria-valuenow, aria-valuemax, aria-valuemin\n\n return (\n \n );\n}\n","import React, { cloneElement, isValidElement, ReactNode } from 'react';\nimport cx from 'clsx';\n\nimport { ProgressBar } from './ProgressBar';\nimport { CloseButton } from './CloseButton';\nimport { ToastProps } from '../types';\nimport { Default, isFn } from '../utils';\nimport { useToast } from '../hooks/useToast';\n\nexport const Toast: React.FC = props => {\n const { isRunning, preventExitTransition, toastRef, eventHandlers } =\n useToast(props);\n const {\n closeButton,\n children,\n autoClose,\n onClick,\n type,\n hideProgressBar,\n closeToast,\n transition: Transition,\n position,\n className,\n style,\n bodyClassName,\n bodyStyle,\n progressClassName,\n progressStyle,\n updateId,\n role,\n progress,\n rtl,\n toastId,\n deleteToast,\n isIn,\n isLoading,\n iconOut,\n closeOnClick,\n theme\n } = props;\n const defaultClassName = cx(\n `${Default.CSS_NAMESPACE}__toast`,\n `${Default.CSS_NAMESPACE}__toast-theme--${theme}`,\n `${Default.CSS_NAMESPACE}__toast--${type}`,\n {\n [`${Default.CSS_NAMESPACE}__toast--rtl`]: rtl\n },\n {\n [`${Default.CSS_NAMESPACE}__toast--close-on-click`]: closeOnClick\n }\n );\n const cssClasses = isFn(className)\n ? className({\n rtl,\n position,\n type,\n defaultClassName\n })\n : cx(defaultClassName, className);\n const isProgressControlled = !!progress || !autoClose;\n\n const closeButtonProps = { closeToast, type, theme };\n let Close: React.ReactNode = null;\n\n if (closeButton === false) {\n // hide\n } else if (isFn(closeButton)) {\n Close = closeButton(closeButtonProps);\n } else if (isValidElement(closeButton)) {\n Close = cloneElement(closeButton, closeButtonProps);\n } else {\n Close = CloseButton(closeButtonProps);\n }\n\n return (\n \n \n \n {iconOut != null && (\n \n {iconOut}\n
\n )}\n
{children as ReactNode}
\n \n {Close}\n \n \n \n );\n};\n","import { Default, cssTransition } from '../utils';\n\nconst getConfig = (animationName: string, appendPosition = false) => ({\n enter: `${Default.CSS_NAMESPACE}--animate ${Default.CSS_NAMESPACE}__${animationName}-enter`,\n exit: `${Default.CSS_NAMESPACE}--animate ${Default.CSS_NAMESPACE}__${animationName}-exit`,\n appendPosition\n});\n\nconst Bounce = cssTransition(getConfig('bounce', true));\n\nconst Slide = cssTransition(getConfig('slide', true));\n\nconst Zoom = cssTransition(getConfig('zoom'));\n\nconst Flip = cssTransition(getConfig('flip'));\n\nexport { Bounce, Slide, Zoom, Flip };\n","// https://github.com/yannickcr/eslint-plugin-react/issues/3140\n/* eslint react/prop-types: \"off\" */\nimport React, { forwardRef, StyleHTMLAttributes, useEffect } from 'react';\nimport cx from 'clsx';\n\nimport { Toast } from './Toast';\nimport { CloseButton } from './CloseButton';\nimport { Bounce } from './Transitions';\nimport { Direction, Default, parseClassName, isFn } from '../utils';\nimport { useToastContainer } from '../hooks/useToastContainer';\nimport { ToastContainerProps, ToastPosition } from '../types';\n\nexport const ToastContainer = forwardRef(\n (props, ref) => {\n const { getToastToRender, containerRef, isToastActive } =\n useToastContainer(props);\n const { className, style, rtl, containerId } = props;\n\n function getClassName(position: ToastPosition) {\n const defaultClassName = cx(\n `${Default.CSS_NAMESPACE}__toast-container`,\n `${Default.CSS_NAMESPACE}__toast-container--${position}`,\n { [`${Default.CSS_NAMESPACE}__toast-container--rtl`]: rtl }\n );\n return isFn(className)\n ? className({\n position,\n rtl,\n defaultClassName\n })\n : cx(defaultClassName, parseClassName(className));\n }\n\n useEffect(() => {\n if (ref) {\n (ref as React.MutableRefObject).current =\n containerRef.current!;\n }\n }, []);\n\n return (\n \n {getToastToRender((position, toastList) => {\n const containerStyle: React.CSSProperties = !toastList.length\n ? { ...style, pointerEvents: 'none' }\n : { ...style };\n\n return (\n \n {toastList.map(({ content, props: toastProps }, i) => {\n return (\n \n }\n key={`toast-${toastProps.key}`}\n >\n {content}\n \n );\n })}\n \n );\n })}\n \n );\n }\n);\n\nToastContainer.displayName = 'ToastContainer';\n\nToastContainer.defaultProps = {\n position: 'top-right',\n transition: Bounce,\n autoClose: 5000,\n closeButton: CloseButton,\n pauseOnHover: true,\n pauseOnFocusLoss: true,\n closeOnClick: true,\n draggable: true,\n draggablePercent: Default.DRAGGABLE_PERCENT as number,\n draggableDirection: Direction.X,\n role: 'alert',\n theme: 'light'\n};\n","import {\n useEffect,\n useRef,\n useReducer,\n cloneElement,\n isValidElement,\n useState,\n ReactElement\n} from 'react';\nimport {\n parseClassName,\n canBeRendered,\n isFn,\n isNum,\n isStr,\n getAutoCloseDelay,\n toToastItem\n} from '../utils';\nimport { eventManager, Event } from '../core/eventManager';\n\nimport {\n Id,\n ToastContainerProps,\n ToastProps,\n ToastContent,\n Toast,\n ToastPosition,\n ClearWaitingQueueParams,\n NotValidatedToastProps\n} from '../types';\n\nimport { getIcon } from '../components/Icons';\n\ninterface QueuedToast {\n toastContent: ToastContent;\n toastProps: ToastProps;\n staleId?: Id;\n}\n\nexport interface ContainerInstance {\n toastKey: number;\n displayedToast: number;\n props: ToastContainerProps;\n containerId?: Id | null;\n isToastActive: (toastId: Id) => boolean;\n getToast: (id: Id) => Toast | null | undefined;\n queue: QueuedToast[];\n count: number;\n}\n\nexport function useToastContainer(props: ToastContainerProps) {\n const [, forceUpdate] = useReducer(x => x + 1, 0);\n const [toastIds, setToastIds] = useState([]);\n const containerRef = useRef(null);\n const toastToRender = useRef(new Map()).current;\n const isToastActive = (id: Id) => toastIds.indexOf(id) !== -1;\n const instance = useRef({\n toastKey: 1,\n displayedToast: 0,\n count: 0,\n queue: [],\n props,\n containerId: null,\n isToastActive,\n getToast: id => toastToRender.get(id)\n }).current;\n\n useEffect(() => {\n instance.containerId = props.containerId;\n eventManager\n .cancelEmit(Event.WillUnmount)\n .on(Event.Show, buildToast)\n .on(Event.Clear, toastId => containerRef.current && removeToast(toastId))\n .on(Event.ClearWaitingQueue, clearWaitingQueue)\n .emit(Event.DidMount, instance);\n\n return () => {\n toastToRender.clear();\n eventManager.emit(Event.WillUnmount, instance);\n };\n }, []);\n\n useEffect(() => {\n instance.props = props;\n instance.isToastActive = isToastActive;\n instance.displayedToast = toastIds.length;\n });\n\n function clearWaitingQueue({ containerId }: ClearWaitingQueueParams) {\n const { limit } = instance.props;\n if (limit && (!containerId || instance.containerId === containerId)) {\n instance.count -= instance.queue.length;\n instance.queue = [];\n }\n }\n\n function removeToast(toastId?: Id) {\n setToastIds(state =>\n toastId == null ? [] : state.filter(id => id !== toastId)\n );\n }\n\n function dequeueToast() {\n const { toastContent, toastProps, staleId } =\n instance.queue.shift() as QueuedToast;\n appendToast(toastContent, toastProps, staleId);\n }\n\n /**\n * check if a container is attached to the dom\n * check for multi-container, build only if associated\n * check for duplicate toastId if no update\n */\n function isNotValid(options: NotValidatedToastProps) {\n return (\n !containerRef.current ||\n (instance.props.enableMultiContainer &&\n options.containerId !== instance.props.containerId) ||\n (toastToRender.has(options.toastId) && options.updateId == null)\n );\n }\n\n // this function and all the function called inside needs to rely on refs\n function buildToast(\n content: ToastContent,\n { delay, staleId, ...options }: NotValidatedToastProps\n ) {\n if (!canBeRendered(content) || isNotValid(options)) return;\n\n const { toastId, updateId, data } = options;\n const { props } = instance;\n const closeToast = () => removeToast(toastId);\n const isNotAnUpdate = updateId == null;\n\n if (isNotAnUpdate) instance.count++;\n\n const toastProps = {\n ...props,\n style: props.toastStyle,\n key: instance.toastKey++,\n ...options,\n toastId,\n updateId,\n data,\n closeToast,\n isIn: false,\n className: parseClassName(options.className || props.toastClassName),\n bodyClassName: parseClassName(\n options.bodyClassName || props.bodyClassName\n ),\n progressClassName: parseClassName(\n options.progressClassName || props.progressClassName\n ),\n autoClose: options.isLoading\n ? false\n : getAutoCloseDelay(options.autoClose, props.autoClose),\n deleteToast() {\n const removed = toToastItem(toastToRender.get(toastId)!, 'removed');\n toastToRender.delete(toastId);\n\n eventManager.emit(Event.Change, removed);\n\n const queueLen = instance.queue.length;\n instance.count =\n toastId == null\n ? instance.count - instance.displayedToast\n : instance.count - 1;\n\n if (instance.count < 0) instance.count = 0;\n\n if (queueLen > 0) {\n const freeSlot = toastId == null ? instance.props.limit! : 1;\n\n if (queueLen === 1 || freeSlot === 1) {\n instance.displayedToast++;\n dequeueToast();\n } else {\n const toDequeue = freeSlot > queueLen ? queueLen : freeSlot;\n instance.displayedToast = toDequeue;\n\n for (let i = 0; i < toDequeue; i++) dequeueToast();\n }\n } else {\n forceUpdate();\n }\n }\n } as ToastProps;\n\n toastProps.iconOut = getIcon(toastProps);\n\n if (isFn(options.onOpen)) toastProps.onOpen = options.onOpen;\n if (isFn(options.onClose)) toastProps.onClose = options.onClose;\n\n toastProps.closeButton = props.closeButton;\n\n if (options.closeButton === false || canBeRendered(options.closeButton)) {\n toastProps.closeButton = options.closeButton;\n } else if (options.closeButton === true) {\n toastProps.closeButton = canBeRendered(props.closeButton)\n ? props.closeButton\n : true;\n }\n\n let toastContent = content;\n\n if (isValidElement(content) && !isStr(content.type)) {\n toastContent = cloneElement(content as ReactElement, {\n closeToast,\n toastProps,\n data\n });\n } else if (isFn(content)) {\n toastContent = content({ closeToast, toastProps, data });\n }\n\n // not handling limit + delay by design. Waiting for user feedback first\n if (\n props.limit &&\n props.limit > 0 &&\n instance.count > props.limit &&\n isNotAnUpdate\n ) {\n instance.queue.push({ toastContent, toastProps, staleId });\n } else if (isNum(delay)) {\n setTimeout(() => {\n appendToast(toastContent, toastProps, staleId);\n }, delay);\n } else {\n appendToast(toastContent, toastProps, staleId);\n }\n }\n\n function appendToast(\n content: ToastContent,\n toastProps: ToastProps,\n staleId?: Id\n ) {\n const { toastId } = toastProps;\n\n if (staleId) toastToRender.delete(staleId);\n\n const toast = {\n content,\n props: toastProps\n };\n toastToRender.set(toastId, toast);\n\n setToastIds(state => [...state, toastId].filter(id => id !== staleId));\n eventManager.emit(\n Event.Change,\n toToastItem(toast, toast.props.updateId == null ? 'added' : 'updated')\n );\n }\n\n function getToastToRender(\n cb: (position: ToastPosition, toastList: Toast[]) => T\n ) {\n const toRender = new Map();\n const collection = Array.from(toastToRender.values());\n\n if (props.newestOnTop) collection.reverse();\n\n collection.forEach(toast => {\n const { position } = toast.props;\n toRender.has(position) || toRender.set(position, []);\n toRender.get(position)!.push(toast);\n });\n\n return Array.from(toRender, p => cb(p[0], p[1]));\n }\n\n return {\n getToastToRender,\n containerRef,\n isToastActive\n };\n}\n","import { POSITION, TYPE, isStr, isNum, isFn, Type } from '../utils';\nimport { eventManager, OnChangeCallback, Event } from './eventManager';\nimport {\n ToastContent,\n ToastOptions,\n ToastProps,\n Id,\n UpdateOptions,\n ClearWaitingQueueParams,\n NotValidatedToastProps,\n TypeOptions\n} from '../types';\nimport { ContainerInstance } from '../hooks';\n\ninterface EnqueuedToast {\n content: ToastContent;\n options: NotValidatedToastProps;\n}\n\nlet containers = new Map();\nlet latestInstance: ContainerInstance | Id;\nlet queue: EnqueuedToast[] = [];\nlet TOAST_ID = 1;\n\n/**\n * Get the toast by id, given it's in the DOM, otherwise returns null\n */\nfunction getToast(toastId: Id, { containerId }: ToastOptions) {\n const container = containers.get(containerId || latestInstance);\n return container && container.getToast(toastId);\n}\n\n/**\n * Generate a random toastId\n */\nfunction generateToastId() {\n return `${TOAST_ID++}`;\n}\n\n/**\n * Generate a toastId or use the one provided\n */\nfunction getToastId(options?: ToastOptions) {\n return options && (isStr(options.toastId) || isNum(options.toastId))\n ? options.toastId\n : generateToastId();\n}\n\n/**\n * If the container is not mounted, the toast is enqueued and\n * the container lazy mounted\n */\nfunction dispatchToast(\n content: ToastContent,\n options: NotValidatedToastProps\n): Id {\n if (containers.size > 0) {\n eventManager.emit(Event.Show, content, options);\n } else {\n queue.push({ content, options });\n }\n\n return options.toastId;\n}\n\n/**\n * Merge provided options with the defaults settings and generate the toastId\n */\nfunction mergeOptions(type: string, options?: ToastOptions) {\n return {\n ...options,\n type: (options && options.type) || type,\n toastId: getToastId(options)\n } as NotValidatedToastProps;\n}\n\nfunction createToastByType(type: string) {\n return (\n content: ToastContent,\n options?: ToastOptions\n ) => dispatchToast(content, mergeOptions(type, options));\n}\n\nfunction toast(\n content: ToastContent,\n options?: ToastOptions\n) {\n return dispatchToast(content, mergeOptions(Type.DEFAULT, options));\n}\n\ntoast.loading = (\n content: ToastContent,\n options?: ToastOptions\n) =>\n dispatchToast(\n content,\n mergeOptions(Type.DEFAULT, {\n isLoading: true,\n autoClose: false,\n closeOnClick: false,\n closeButton: false,\n draggable: false,\n ...options\n })\n );\n\nexport interface ToastPromiseParams<\n TData = unknown,\n TError = unknown,\n TPending = unknown\n> {\n pending?: string | UpdateOptions;\n success?: string | UpdateOptions;\n error?: string | UpdateOptions;\n}\n\nfunction handlePromise(\n promise: Promise | (() => Promise),\n { pending, error, success }: ToastPromiseParams,\n options?: ToastOptions\n) {\n let id: Id;\n\n if (pending) {\n id = isStr(pending)\n ? toast.loading(pending, options)\n : toast.loading(pending.render, {\n ...options,\n ...(pending as ToastOptions)\n });\n }\n\n const resetParams = {\n isLoading: null,\n autoClose: null,\n closeOnClick: null,\n closeButton: null,\n draggable: null,\n delay: 100\n };\n\n const resolver = (\n type: TypeOptions,\n input: string | UpdateOptions | undefined,\n result: T\n ) => {\n // Remove the toast if the input has not been provided. This prevents the toast from hanging\n // in the pending state if a success/error toast has not been provided.\n if (input == null) {\n toast.dismiss(id);\n return;\n }\n\n const baseParams = {\n type,\n ...resetParams,\n ...options,\n data: result\n };\n const params = isStr(input) ? { render: input } : input;\n\n // if the id is set we know that it's an update\n if (id) {\n toast.update(id, {\n ...baseParams,\n ...params\n } as UpdateOptions);\n } else {\n // using toast.promise without loading\n toast(params!.render, {\n ...baseParams,\n ...params\n } as ToastOptions);\n }\n\n return result;\n };\n\n const p = isFn(promise) ? promise() : promise;\n\n //call the resolvers only when needed\n p.then(result => resolver('success', success, result)).catch(err =>\n resolver('error', error, err)\n );\n\n return p;\n}\n\ntoast.promise = handlePromise;\ntoast.success = createToastByType(Type.SUCCESS);\ntoast.info = createToastByType(Type.INFO);\ntoast.error = createToastByType(Type.ERROR);\ntoast.warning = createToastByType(Type.WARNING);\ntoast.warn = toast.warning;\ntoast.dark = (content: ToastContent, options?: ToastOptions) =>\n dispatchToast(\n content,\n mergeOptions(Type.DEFAULT, {\n theme: 'dark',\n ...options\n })\n );\n\n/**\n * Remove toast programmaticaly\n */\ntoast.dismiss = (id?: Id) => {\n if (containers.size > 0) {\n eventManager.emit(Event.Clear, id);\n } else {\n queue = queue.filter(t => id != null && t.options.toastId !== id);\n }\n};\n\n/**\n * Clear waiting queue when limit is used\n */\ntoast.clearWaitingQueue = (params: ClearWaitingQueueParams = {}) =>\n eventManager.emit(Event.ClearWaitingQueue, params);\n\n/**\n * return true if one container is displaying the toast\n */\ntoast.isActive = (id: Id) => {\n let isToastActive = false;\n\n containers.forEach(container => {\n if (container.isToastActive && container.isToastActive(id)) {\n isToastActive = true;\n }\n });\n\n return isToastActive;\n};\n\ntoast.update = (\n toastId: Id,\n options: UpdateOptions = {}\n) => {\n // if you call toast and toast.update directly nothing will be displayed\n // this is why I defered the update\n setTimeout(() => {\n const toast = getToast(toastId, options as ToastOptions);\n if (toast) {\n const { props: oldOptions, content: oldContent } = toast;\n\n const nextOptions = {\n ...oldOptions,\n ...options,\n toastId: options.toastId || toastId,\n updateId: generateToastId()\n } as ToastProps & UpdateOptions;\n\n if (nextOptions.toastId !== toastId) nextOptions.staleId = toastId;\n\n const content = nextOptions.render || oldContent;\n delete nextOptions.render;\n\n dispatchToast(content, nextOptions);\n }\n }, 0);\n};\n\n/**\n * Used for controlled progress bar.\n */\ntoast.done = (id: Id) => {\n toast.update(id, {\n progress: 1\n });\n};\n\n/**\n * Subscribe to change when a toast is added, removed and updated\n *\n * Usage:\n * ```\n * const unsubscribe = toast.onChange((payload) => {\n * switch (payload.status) {\n * case \"added\":\n * // new toast added\n * break;\n * case \"updated\":\n * // toast updated\n * break;\n * case \"removed\":\n * // toast has been removed\n * break;\n * }\n * })\n * ```\n */\ntoast.onChange = (callback: OnChangeCallback) => {\n eventManager.on(Event.Change, callback);\n return () => {\n eventManager.off(Event.Change, callback);\n };\n};\n\n/**\n * @deprecated\n * Will be removed in the next major release.\n */\ntoast.POSITION = POSITION;\n\n/**\n * @deprecated\n * Will be removed in the next major release.\n */\ntoast.TYPE = TYPE;\n\n/**\n * Wait until the ToastContainer is mounted to dispatch the toast\n * and attach isActive method\n */\neventManager\n .on(Event.DidMount, (containerInstance: ContainerInstance) => {\n latestInstance = containerInstance.containerId || containerInstance;\n containers.set(latestInstance, containerInstance);\n\n queue.forEach(item => {\n eventManager.emit(Event.Show, item.content, item.options);\n });\n\n queue = [];\n })\n .on(Event.WillUnmount, (containerInstance: ContainerInstance) => {\n containers.delete(containerInstance.containerId || containerInstance);\n\n if (containers.size === 0) {\n eventManager\n .off(Event.Show)\n .off(Event.Clear)\n .off(Event.ClearWaitingQueue);\n }\n });\n\nexport { toast };\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}","import { ToastPosition, TypeOptions } from '../types';\n\ntype KeyOfPosition =\n | 'TOP_LEFT'\n | 'TOP_RIGHT'\n | 'TOP_CENTER'\n | 'BOTTOM_LEFT'\n | 'BOTTOM_RIGHT'\n | 'BOTTOM_CENTER';\n\ntype KeyOfType = 'INFO' | 'SUCCESS' | 'WARNING' | 'ERROR' | 'DEFAULT';\n\n/**\n * @deprecated\n */\nexport const POSITION: { [key in KeyOfPosition]: ToastPosition } = {\n TOP_LEFT: 'top-left',\n TOP_RIGHT: 'top-right',\n TOP_CENTER: 'top-center',\n BOTTOM_LEFT: 'bottom-left',\n BOTTOM_RIGHT: 'bottom-right',\n BOTTOM_CENTER: 'bottom-center'\n};\n\n/**\n * @deprecated\n */\nexport const TYPE: { [key in KeyOfType]: TypeOptions } = {\n INFO: 'info',\n SUCCESS: 'success',\n WARNING: 'warning',\n ERROR: 'error',\n DEFAULT: 'default'\n};\n\nexport const enum Type {\n INFO = 'info',\n SUCCESS = 'success',\n WARNING = 'warning',\n ERROR = 'error',\n DEFAULT = 'default'\n}\n\nexport const enum Default {\n COLLAPSE_DURATION = 300,\n DEBOUNCE_DURATION = 50,\n CSS_NAMESPACE = 'Toastify',\n DRAGGABLE_PERCENT = 80\n}\n\nexport const enum Direction {\n X = 'x',\n Y = 'y'\n}\n\nexport const enum SyntheticEvent {\n ENTRANCE_ANIMATION_END = 'd'\n}\n","function isAbsolute(pathname) {\n return pathname.charAt(0) === '/';\n}\n\n// About 1.5x faster than the two-arg version of Array#splice()\nfunction spliceOne(list, index) {\n for (var i = index, k = i + 1, n = list.length; k < n; i += 1, k += 1) {\n list[i] = list[k];\n }\n\n list.pop();\n}\n\n// This implementation is based heavily on node's url.parse\nfunction resolvePathname(to, from) {\n if (from === undefined) from = '';\n\n var toParts = (to && to.split('/')) || [];\n var fromParts = (from && from.split('/')) || [];\n\n var isToAbs = to && isAbsolute(to);\n var isFromAbs = from && isAbsolute(from);\n var mustEndAbs = isToAbs || isFromAbs;\n\n if (to && isAbsolute(to)) {\n // to is absolute\n fromParts = toParts;\n } else if (toParts.length) {\n // to is relative, drop the filename\n fromParts.pop();\n fromParts = fromParts.concat(toParts);\n }\n\n if (!fromParts.length) return '/';\n\n var hasTrailingSlash;\n if (fromParts.length) {\n var last = fromParts[fromParts.length - 1];\n hasTrailingSlash = last === '.' || last === '..' || last === '';\n } else {\n hasTrailingSlash = false;\n }\n\n var up = 0;\n for (var i = fromParts.length; i >= 0; i--) {\n var part = fromParts[i];\n\n if (part === '.') {\n spliceOne(fromParts, i);\n } else if (part === '..') {\n spliceOne(fromParts, i);\n up++;\n } else if (up) {\n spliceOne(fromParts, i);\n up--;\n }\n }\n\n if (!mustEndAbs) for (; up--; up) fromParts.unshift('..');\n\n if (\n mustEndAbs &&\n fromParts[0] !== '' &&\n (!fromParts[0] || !isAbsolute(fromParts[0]))\n )\n fromParts.unshift('');\n\n var result = fromParts.join('/');\n\n if (hasTrailingSlash && result.substr(-1) !== '/') result += '/';\n\n return result;\n}\n\nexport default resolvePathname;\n","function valueOf(obj) {\n return obj.valueOf ? obj.valueOf() : Object.prototype.valueOf.call(obj);\n}\n\nfunction valueEqual(a, b) {\n // Test for strict equality first.\n if (a === b) return true;\n\n // Otherwise, if either of them == null they are not equal.\n if (a == null || b == null) return false;\n\n if (Array.isArray(a)) {\n return (\n Array.isArray(b) &&\n a.length === b.length &&\n a.every(function(item, index) {\n return valueEqual(item, b[index]);\n })\n );\n }\n\n if (typeof a === 'object' || typeof b === 'object') {\n var aValue = valueOf(a);\n var bValue = valueOf(b);\n\n if (aValue !== a || bValue !== b) return valueEqual(aValue, bValue);\n\n return Object.keys(Object.assign({}, a, b)).every(function(key) {\n return valueEqual(a[key], b[key]);\n });\n }\n\n return false;\n}\n\nexport default valueEqual;\n","var isProduction = process.env.NODE_ENV === 'production';\nvar prefix = 'Invariant failed';\nfunction invariant(condition, message) {\n if (condition) {\n return;\n }\n if (isProduction) {\n throw new Error(prefix);\n }\n var provided = typeof message === 'function' ? message() : message;\n var value = provided ? \"\".concat(prefix, \": \").concat(provided) : prefix;\n throw new Error(value);\n}\n\nexport { invariant as default };\n","import _extends from '@babel/runtime/helpers/esm/extends';\nimport resolvePathname from 'resolve-pathname';\nimport valueEqual from 'value-equal';\nimport warning from 'tiny-warning';\nimport invariant from 'tiny-invariant';\n\nfunction addLeadingSlash(path) {\n return path.charAt(0) === '/' ? path : '/' + path;\n}\nfunction stripLeadingSlash(path) {\n return path.charAt(0) === '/' ? path.substr(1) : path;\n}\nfunction hasBasename(path, prefix) {\n return path.toLowerCase().indexOf(prefix.toLowerCase()) === 0 && '/?#'.indexOf(path.charAt(prefix.length)) !== -1;\n}\nfunction stripBasename(path, prefix) {\n return hasBasename(path, prefix) ? path.substr(prefix.length) : path;\n}\nfunction stripTrailingSlash(path) {\n return path.charAt(path.length - 1) === '/' ? path.slice(0, -1) : path;\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}\nfunction createPath(location) {\n var pathname = location.pathname,\n search = location.search,\n hash = location.hash;\n var path = pathname || '/';\n if (search && search !== '?') path += search.charAt(0) === '?' ? search : \"?\" + search;\n if (hash && hash !== '#') path += hash.charAt(0) === '#' ? hash : \"#\" + hash;\n return path;\n}\n\nfunction createLocation(path, state, key, currentLocation) {\n var location;\n\n if (typeof path === 'string') {\n // Two-arg form: push(path, state)\n location = parsePath(path);\n location.state = state;\n } else {\n // One-arg form: push(location)\n location = _extends({}, path);\n if (location.pathname === undefined) location.pathname = '';\n\n if (location.search) {\n if (location.search.charAt(0) !== '?') location.search = '?' + location.search;\n } else {\n location.search = '';\n }\n\n if (location.hash) {\n if (location.hash.charAt(0) !== '#') location.hash = '#' + location.hash;\n } else {\n location.hash = '';\n }\n\n if (state !== undefined && location.state === undefined) location.state = state;\n }\n\n try {\n location.pathname = decodeURI(location.pathname);\n } catch (e) {\n if (e instanceof URIError) {\n throw new URIError('Pathname \"' + location.pathname + '\" could not be decoded. ' + 'This is likely caused by an invalid percent-encoding.');\n } else {\n throw e;\n }\n }\n\n if (key) location.key = key;\n\n if (currentLocation) {\n // Resolve incomplete/relative pathname relative to current location.\n if (!location.pathname) {\n location.pathname = currentLocation.pathname;\n } else if (location.pathname.charAt(0) !== '/') {\n location.pathname = resolvePathname(location.pathname, currentLocation.pathname);\n }\n } else {\n // When there is no prior location and pathname is empty, set it to /\n if (!location.pathname) {\n location.pathname = '/';\n }\n }\n\n return location;\n}\nfunction locationsAreEqual(a, b) {\n return a.pathname === b.pathname && a.search === b.search && a.hash === b.hash && a.key === b.key && valueEqual(a.state, b.state);\n}\n\nfunction createTransitionManager() {\n var prompt = null;\n\n function setPrompt(nextPrompt) {\n process.env.NODE_ENV !== \"production\" ? warning(prompt == null, 'A history supports only one prompt at a time') : void 0;\n prompt = nextPrompt;\n return function () {\n if (prompt === nextPrompt) prompt = null;\n };\n }\n\n function confirmTransitionTo(location, action, getUserConfirmation, callback) {\n // TODO: If another transition starts while we're still confirming\n // the previous one, we may end up in a weird state. Figure out the\n // best way to handle this.\n if (prompt != null) {\n var result = typeof prompt === 'function' ? prompt(location, action) : prompt;\n\n if (typeof result === 'string') {\n if (typeof getUserConfirmation === 'function') {\n getUserConfirmation(result, callback);\n } else {\n process.env.NODE_ENV !== \"production\" ? warning(false, 'A history needs a getUserConfirmation function in order to use a prompt message') : void 0;\n callback(true);\n }\n } else {\n // Return false from a transition hook to cancel the transition.\n callback(result !== false);\n }\n } else {\n callback(true);\n }\n }\n\n var listeners = [];\n\n function appendListener(fn) {\n var isActive = true;\n\n function listener() {\n if (isActive) fn.apply(void 0, arguments);\n }\n\n listeners.push(listener);\n return function () {\n isActive = false;\n listeners = listeners.filter(function (item) {\n return item !== listener;\n });\n };\n }\n\n function notifyListeners() {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n listeners.forEach(function (listener) {\n return listener.apply(void 0, args);\n });\n }\n\n return {\n setPrompt: setPrompt,\n confirmTransitionTo: confirmTransitionTo,\n appendListener: appendListener,\n notifyListeners: notifyListeners\n };\n}\n\nvar canUseDOM = !!(typeof window !== 'undefined' && window.document && window.document.createElement);\nfunction getConfirmation(message, callback) {\n callback(window.confirm(message)); // eslint-disable-line no-alert\n}\n/**\n * Returns true if the HTML5 history API is supported. Taken from Modernizr.\n *\n * https://github.com/Modernizr/Modernizr/blob/master/LICENSE\n * https://github.com/Modernizr/Modernizr/blob/master/feature-detects/history.js\n * changed to avoid false negatives for Windows Phones: https://github.com/reactjs/react-router/issues/586\n */\n\nfunction supportsHistory() {\n var ua = window.navigator.userAgent;\n if ((ua.indexOf('Android 2.') !== -1 || ua.indexOf('Android 4.0') !== -1) && ua.indexOf('Mobile Safari') !== -1 && ua.indexOf('Chrome') === -1 && ua.indexOf('Windows Phone') === -1) return false;\n return window.history && 'pushState' in window.history;\n}\n/**\n * Returns true if browser fires popstate on hash change.\n * IE10 and IE11 do not.\n */\n\nfunction supportsPopStateOnHashChange() {\n return window.navigator.userAgent.indexOf('Trident') === -1;\n}\n/**\n * Returns false if using go(n) with hash history causes a full page reload.\n */\n\nfunction supportsGoWithoutReloadUsingHash() {\n return window.navigator.userAgent.indexOf('Firefox') === -1;\n}\n/**\n * Returns true if a given popstate event is an extraneous WebKit event.\n * Accounts for the fact that Chrome on iOS fires real popstate events\n * containing undefined state when pressing the back button.\n */\n\nfunction isExtraneousPopstateEvent(event) {\n return event.state === undefined && navigator.userAgent.indexOf('CriOS') === -1;\n}\n\nvar PopStateEvent = 'popstate';\nvar HashChangeEvent = 'hashchange';\n\nfunction getHistoryState() {\n try {\n return window.history.state || {};\n } catch (e) {\n // IE 11 sometimes throws when accessing window.history.state\n // See https://github.com/ReactTraining/history/pull/289\n return {};\n }\n}\n/**\n * Creates a history object that uses the HTML5 history API including\n * pushState, replaceState, and the popstate event.\n */\n\n\nfunction createBrowserHistory(props) {\n if (props === void 0) {\n props = {};\n }\n\n !canUseDOM ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'Browser history needs a DOM') : invariant(false) : void 0;\n var globalHistory = window.history;\n var canUseHistory = supportsHistory();\n var needsHashChangeListener = !supportsPopStateOnHashChange();\n var _props = props,\n _props$forceRefresh = _props.forceRefresh,\n forceRefresh = _props$forceRefresh === void 0 ? false : _props$forceRefresh,\n _props$getUserConfirm = _props.getUserConfirmation,\n getUserConfirmation = _props$getUserConfirm === void 0 ? getConfirmation : _props$getUserConfirm,\n _props$keyLength = _props.keyLength,\n keyLength = _props$keyLength === void 0 ? 6 : _props$keyLength;\n var basename = props.basename ? stripTrailingSlash(addLeadingSlash(props.basename)) : '';\n\n function getDOMLocation(historyState) {\n var _ref = historyState || {},\n key = _ref.key,\n state = _ref.state;\n\n var _window$location = window.location,\n pathname = _window$location.pathname,\n search = _window$location.search,\n hash = _window$location.hash;\n var path = pathname + search + hash;\n process.env.NODE_ENV !== \"production\" ? warning(!basename || hasBasename(path, basename), 'You are attempting to use a basename on a page whose URL path does not begin ' + 'with the basename. Expected path \"' + path + '\" to begin with \"' + basename + '\".') : void 0;\n if (basename) path = stripBasename(path, basename);\n return createLocation(path, state, key);\n }\n\n function createKey() {\n return Math.random().toString(36).substr(2, keyLength);\n }\n\n var transitionManager = createTransitionManager();\n\n function setState(nextState) {\n _extends(history, nextState);\n\n history.length = globalHistory.length;\n transitionManager.notifyListeners(history.location, history.action);\n }\n\n function handlePopState(event) {\n // Ignore extraneous popstate events in WebKit.\n if (isExtraneousPopstateEvent(event)) return;\n handlePop(getDOMLocation(event.state));\n }\n\n function handleHashChange() {\n handlePop(getDOMLocation(getHistoryState()));\n }\n\n var forceNextPop = false;\n\n function handlePop(location) {\n if (forceNextPop) {\n forceNextPop = false;\n setState();\n } else {\n var action = 'POP';\n transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n if (ok) {\n setState({\n action: action,\n location: location\n });\n } else {\n revertPop(location);\n }\n });\n }\n }\n\n function revertPop(fromLocation) {\n var toLocation = history.location; // TODO: We could probably make this more reliable by\n // keeping a list of keys we've seen in sessionStorage.\n // Instead, we just default to 0 for keys we don't know.\n\n var toIndex = allKeys.indexOf(toLocation.key);\n if (toIndex === -1) toIndex = 0;\n var fromIndex = allKeys.indexOf(fromLocation.key);\n if (fromIndex === -1) fromIndex = 0;\n var delta = toIndex - fromIndex;\n\n if (delta) {\n forceNextPop = true;\n go(delta);\n }\n }\n\n var initialLocation = getDOMLocation(getHistoryState());\n var allKeys = [initialLocation.key]; // Public interface\n\n function createHref(location) {\n return basename + createPath(location);\n }\n\n function push(path, state) {\n process.env.NODE_ENV !== \"production\" ? warning(!(typeof path === 'object' && path.state !== undefined && state !== undefined), 'You should avoid providing a 2nd state argument to push when the 1st ' + 'argument is a location-like object that already has state; it is ignored') : void 0;\n var action = 'PUSH';\n var location = createLocation(path, state, createKey(), history.location);\n transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n if (!ok) return;\n var href = createHref(location);\n var key = location.key,\n state = location.state;\n\n if (canUseHistory) {\n globalHistory.pushState({\n key: key,\n state: state\n }, null, href);\n\n if (forceRefresh) {\n window.location.href = href;\n } else {\n var prevIndex = allKeys.indexOf(history.location.key);\n var nextKeys = allKeys.slice(0, prevIndex + 1);\n nextKeys.push(location.key);\n allKeys = nextKeys;\n setState({\n action: action,\n location: location\n });\n }\n } else {\n process.env.NODE_ENV !== \"production\" ? warning(state === undefined, 'Browser history cannot push state in browsers that do not support HTML5 history') : void 0;\n window.location.href = href;\n }\n });\n }\n\n function replace(path, state) {\n process.env.NODE_ENV !== \"production\" ? warning(!(typeof path === 'object' && path.state !== undefined && state !== undefined), 'You should avoid providing a 2nd state argument to replace when the 1st ' + 'argument is a location-like object that already has state; it is ignored') : void 0;\n var action = 'REPLACE';\n var location = createLocation(path, state, createKey(), history.location);\n transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n if (!ok) return;\n var href = createHref(location);\n var key = location.key,\n state = location.state;\n\n if (canUseHistory) {\n globalHistory.replaceState({\n key: key,\n state: state\n }, null, href);\n\n if (forceRefresh) {\n window.location.replace(href);\n } else {\n var prevIndex = allKeys.indexOf(history.location.key);\n if (prevIndex !== -1) allKeys[prevIndex] = location.key;\n setState({\n action: action,\n location: location\n });\n }\n } else {\n process.env.NODE_ENV !== \"production\" ? warning(state === undefined, 'Browser history cannot replace state in browsers that do not support HTML5 history') : void 0;\n window.location.replace(href);\n }\n });\n }\n\n function go(n) {\n globalHistory.go(n);\n }\n\n function goBack() {\n go(-1);\n }\n\n function goForward() {\n go(1);\n }\n\n var listenerCount = 0;\n\n function checkDOMListeners(delta) {\n listenerCount += delta;\n\n if (listenerCount === 1 && delta === 1) {\n window.addEventListener(PopStateEvent, handlePopState);\n if (needsHashChangeListener) window.addEventListener(HashChangeEvent, handleHashChange);\n } else if (listenerCount === 0) {\n window.removeEventListener(PopStateEvent, handlePopState);\n if (needsHashChangeListener) window.removeEventListener(HashChangeEvent, handleHashChange);\n }\n }\n\n var isBlocked = false;\n\n function block(prompt) {\n if (prompt === void 0) {\n prompt = false;\n }\n\n var unblock = transitionManager.setPrompt(prompt);\n\n if (!isBlocked) {\n checkDOMListeners(1);\n isBlocked = true;\n }\n\n return function () {\n if (isBlocked) {\n isBlocked = false;\n checkDOMListeners(-1);\n }\n\n return unblock();\n };\n }\n\n function listen(listener) {\n var unlisten = transitionManager.appendListener(listener);\n checkDOMListeners(1);\n return function () {\n checkDOMListeners(-1);\n unlisten();\n };\n }\n\n var history = {\n length: globalHistory.length,\n action: 'POP',\n location: initialLocation,\n createHref: createHref,\n push: push,\n replace: replace,\n go: go,\n goBack: goBack,\n goForward: goForward,\n block: block,\n listen: listen\n };\n return history;\n}\n\nvar HashChangeEvent$1 = 'hashchange';\nvar HashPathCoders = {\n hashbang: {\n encodePath: function encodePath(path) {\n return path.charAt(0) === '!' ? path : '!/' + stripLeadingSlash(path);\n },\n decodePath: function decodePath(path) {\n return path.charAt(0) === '!' ? path.substr(1) : path;\n }\n },\n noslash: {\n encodePath: stripLeadingSlash,\n decodePath: addLeadingSlash\n },\n slash: {\n encodePath: addLeadingSlash,\n decodePath: addLeadingSlash\n }\n};\n\nfunction stripHash(url) {\n var hashIndex = url.indexOf('#');\n return hashIndex === -1 ? url : url.slice(0, hashIndex);\n}\n\nfunction getHashPath() {\n // We can't use window.location.hash here because it's not\n // consistent across browsers - Firefox will pre-decode it!\n var href = window.location.href;\n var hashIndex = href.indexOf('#');\n return hashIndex === -1 ? '' : href.substring(hashIndex + 1);\n}\n\nfunction pushHashPath(path) {\n window.location.hash = path;\n}\n\nfunction replaceHashPath(path) {\n window.location.replace(stripHash(window.location.href) + '#' + path);\n}\n\nfunction createHashHistory(props) {\n if (props === void 0) {\n props = {};\n }\n\n !canUseDOM ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'Hash history needs a DOM') : invariant(false) : void 0;\n var globalHistory = window.history;\n var canGoWithoutReload = supportsGoWithoutReloadUsingHash();\n var _props = props,\n _props$getUserConfirm = _props.getUserConfirmation,\n getUserConfirmation = _props$getUserConfirm === void 0 ? getConfirmation : _props$getUserConfirm,\n _props$hashType = _props.hashType,\n hashType = _props$hashType === void 0 ? 'slash' : _props$hashType;\n var basename = props.basename ? stripTrailingSlash(addLeadingSlash(props.basename)) : '';\n var _HashPathCoders$hashT = HashPathCoders[hashType],\n encodePath = _HashPathCoders$hashT.encodePath,\n decodePath = _HashPathCoders$hashT.decodePath;\n\n function getDOMLocation() {\n var path = decodePath(getHashPath());\n process.env.NODE_ENV !== \"production\" ? warning(!basename || hasBasename(path, basename), 'You are attempting to use a basename on a page whose URL path does not begin ' + 'with the basename. Expected path \"' + path + '\" to begin with \"' + basename + '\".') : void 0;\n if (basename) path = stripBasename(path, basename);\n return createLocation(path);\n }\n\n var transitionManager = createTransitionManager();\n\n function setState(nextState) {\n _extends(history, nextState);\n\n history.length = globalHistory.length;\n transitionManager.notifyListeners(history.location, history.action);\n }\n\n var forceNextPop = false;\n var ignorePath = null;\n\n function locationsAreEqual$$1(a, b) {\n return a.pathname === b.pathname && a.search === b.search && a.hash === b.hash;\n }\n\n function handleHashChange() {\n var path = getHashPath();\n var encodedPath = encodePath(path);\n\n if (path !== encodedPath) {\n // Ensure we always have a properly-encoded hash.\n replaceHashPath(encodedPath);\n } else {\n var location = getDOMLocation();\n var prevLocation = history.location;\n if (!forceNextPop && locationsAreEqual$$1(prevLocation, location)) return; // A hashchange doesn't always == location change.\n\n if (ignorePath === createPath(location)) return; // Ignore this change; we already setState in push/replace.\n\n ignorePath = null;\n handlePop(location);\n }\n }\n\n function handlePop(location) {\n if (forceNextPop) {\n forceNextPop = false;\n setState();\n } else {\n var action = 'POP';\n transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n if (ok) {\n setState({\n action: action,\n location: location\n });\n } else {\n revertPop(location);\n }\n });\n }\n }\n\n function revertPop(fromLocation) {\n var toLocation = history.location; // TODO: We could probably make this more reliable by\n // keeping a list of paths we've seen in sessionStorage.\n // Instead, we just default to 0 for paths we don't know.\n\n var toIndex = allPaths.lastIndexOf(createPath(toLocation));\n if (toIndex === -1) toIndex = 0;\n var fromIndex = allPaths.lastIndexOf(createPath(fromLocation));\n if (fromIndex === -1) fromIndex = 0;\n var delta = toIndex - fromIndex;\n\n if (delta) {\n forceNextPop = true;\n go(delta);\n }\n } // Ensure the hash is encoded properly before doing anything else.\n\n\n var path = getHashPath();\n var encodedPath = encodePath(path);\n if (path !== encodedPath) replaceHashPath(encodedPath);\n var initialLocation = getDOMLocation();\n var allPaths = [createPath(initialLocation)]; // Public interface\n\n function createHref(location) {\n var baseTag = document.querySelector('base');\n var href = '';\n\n if (baseTag && baseTag.getAttribute('href')) {\n href = stripHash(window.location.href);\n }\n\n return href + '#' + encodePath(basename + createPath(location));\n }\n\n function push(path, state) {\n process.env.NODE_ENV !== \"production\" ? warning(state === undefined, 'Hash history cannot push state; it is ignored') : void 0;\n var action = 'PUSH';\n var location = createLocation(path, undefined, undefined, history.location);\n transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n if (!ok) return;\n var path = createPath(location);\n var encodedPath = encodePath(basename + path);\n var hashChanged = getHashPath() !== encodedPath;\n\n if (hashChanged) {\n // We cannot tell if a hashchange was caused by a PUSH, so we'd\n // rather setState here and ignore the hashchange. The caveat here\n // is that other hash histories in the page will consider it a POP.\n ignorePath = path;\n pushHashPath(encodedPath);\n var prevIndex = allPaths.lastIndexOf(createPath(history.location));\n var nextPaths = allPaths.slice(0, prevIndex + 1);\n nextPaths.push(path);\n allPaths = nextPaths;\n setState({\n action: action,\n location: location\n });\n } else {\n process.env.NODE_ENV !== \"production\" ? warning(false, 'Hash history cannot PUSH the same path; a new entry will not be added to the history stack') : void 0;\n setState();\n }\n });\n }\n\n function replace(path, state) {\n process.env.NODE_ENV !== \"production\" ? warning(state === undefined, 'Hash history cannot replace state; it is ignored') : void 0;\n var action = 'REPLACE';\n var location = createLocation(path, undefined, undefined, history.location);\n transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n if (!ok) return;\n var path = createPath(location);\n var encodedPath = encodePath(basename + path);\n var hashChanged = getHashPath() !== encodedPath;\n\n if (hashChanged) {\n // We cannot tell if a hashchange was caused by a REPLACE, so we'd\n // rather setState here and ignore the hashchange. The caveat here\n // is that other hash histories in the page will consider it a POP.\n ignorePath = path;\n replaceHashPath(encodedPath);\n }\n\n var prevIndex = allPaths.indexOf(createPath(history.location));\n if (prevIndex !== -1) allPaths[prevIndex] = path;\n setState({\n action: action,\n location: location\n });\n });\n }\n\n function go(n) {\n process.env.NODE_ENV !== \"production\" ? warning(canGoWithoutReload, 'Hash history go(n) causes a full page reload in this browser') : void 0;\n globalHistory.go(n);\n }\n\n function goBack() {\n go(-1);\n }\n\n function goForward() {\n go(1);\n }\n\n var listenerCount = 0;\n\n function checkDOMListeners(delta) {\n listenerCount += delta;\n\n if (listenerCount === 1 && delta === 1) {\n window.addEventListener(HashChangeEvent$1, handleHashChange);\n } else if (listenerCount === 0) {\n window.removeEventListener(HashChangeEvent$1, handleHashChange);\n }\n }\n\n var isBlocked = false;\n\n function block(prompt) {\n if (prompt === void 0) {\n prompt = false;\n }\n\n var unblock = transitionManager.setPrompt(prompt);\n\n if (!isBlocked) {\n checkDOMListeners(1);\n isBlocked = true;\n }\n\n return function () {\n if (isBlocked) {\n isBlocked = false;\n checkDOMListeners(-1);\n }\n\n return unblock();\n };\n }\n\n function listen(listener) {\n var unlisten = transitionManager.appendListener(listener);\n checkDOMListeners(1);\n return function () {\n checkDOMListeners(-1);\n unlisten();\n };\n }\n\n var history = {\n length: globalHistory.length,\n action: 'POP',\n location: initialLocation,\n createHref: createHref,\n push: push,\n replace: replace,\n go: go,\n goBack: goBack,\n goForward: goForward,\n block: block,\n listen: listen\n };\n return history;\n}\n\nfunction clamp(n, lowerBound, upperBound) {\n return Math.min(Math.max(n, lowerBound), upperBound);\n}\n/**\n * Creates a history object that stores locations in memory.\n */\n\n\nfunction createMemoryHistory(props) {\n if (props === void 0) {\n props = {};\n }\n\n var _props = props,\n getUserConfirmation = _props.getUserConfirmation,\n _props$initialEntries = _props.initialEntries,\n initialEntries = _props$initialEntries === void 0 ? ['/'] : _props$initialEntries,\n _props$initialIndex = _props.initialIndex,\n initialIndex = _props$initialIndex === void 0 ? 0 : _props$initialIndex,\n _props$keyLength = _props.keyLength,\n keyLength = _props$keyLength === void 0 ? 6 : _props$keyLength;\n var transitionManager = createTransitionManager();\n\n function setState(nextState) {\n _extends(history, nextState);\n\n history.length = history.entries.length;\n transitionManager.notifyListeners(history.location, history.action);\n }\n\n function createKey() {\n return Math.random().toString(36).substr(2, keyLength);\n }\n\n var index = clamp(initialIndex, 0, initialEntries.length - 1);\n var entries = initialEntries.map(function (entry) {\n return typeof entry === 'string' ? createLocation(entry, undefined, createKey()) : createLocation(entry, undefined, entry.key || createKey());\n }); // Public interface\n\n var createHref = createPath;\n\n function push(path, state) {\n process.env.NODE_ENV !== \"production\" ? warning(!(typeof path === 'object' && path.state !== undefined && state !== undefined), 'You should avoid providing a 2nd state argument to push when the 1st ' + 'argument is a location-like object that already has state; it is ignored') : void 0;\n var action = 'PUSH';\n var location = createLocation(path, state, createKey(), history.location);\n transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n if (!ok) return;\n var prevIndex = history.index;\n var nextIndex = prevIndex + 1;\n var nextEntries = history.entries.slice(0);\n\n if (nextEntries.length > nextIndex) {\n nextEntries.splice(nextIndex, nextEntries.length - nextIndex, location);\n } else {\n nextEntries.push(location);\n }\n\n setState({\n action: action,\n location: location,\n index: nextIndex,\n entries: nextEntries\n });\n });\n }\n\n function replace(path, state) {\n process.env.NODE_ENV !== \"production\" ? warning(!(typeof path === 'object' && path.state !== undefined && state !== undefined), 'You should avoid providing a 2nd state argument to replace when the 1st ' + 'argument is a location-like object that already has state; it is ignored') : void 0;\n var action = 'REPLACE';\n var location = createLocation(path, state, createKey(), history.location);\n transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n if (!ok) return;\n history.entries[history.index] = location;\n setState({\n action: action,\n location: location\n });\n });\n }\n\n function go(n) {\n var nextIndex = clamp(history.index + n, 0, history.entries.length - 1);\n var action = 'POP';\n var location = history.entries[nextIndex];\n transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n if (ok) {\n setState({\n action: action,\n location: location,\n index: nextIndex\n });\n } else {\n // Mimic the behavior of DOM histories by\n // causing a render after a cancelled POP.\n setState();\n }\n });\n }\n\n function goBack() {\n go(-1);\n }\n\n function goForward() {\n go(1);\n }\n\n function canGo(n) {\n var nextIndex = history.index + n;\n return nextIndex >= 0 && nextIndex < history.entries.length;\n }\n\n function block(prompt) {\n if (prompt === void 0) {\n prompt = false;\n }\n\n return transitionManager.setPrompt(prompt);\n }\n\n function listen(listener) {\n return transitionManager.appendListener(listener);\n }\n\n var history = {\n length: entries.length,\n action: 'POP',\n location: entries[index],\n index: index,\n entries: entries,\n createHref: createHref,\n push: push,\n replace: replace,\n go: go,\n goBack: goBack,\n goForward: goForward,\n canGo: canGo,\n block: block,\n listen: listen\n };\n return history;\n}\n\nexport { createBrowserHistory, createHashHistory, createMemoryHistory, createLocation, locationsAreEqual, parsePath, createPath };\n","// MIT License\n// Copyright (c) 2019-present StringEpsilon \n// Copyright (c) 2017-2019 James Kyle \n// https://github.com/StringEpsilon/mini-create-react-context\nimport React from \"react\";\nimport PropTypes from \"prop-types\";\nimport warning from \"tiny-warning\";\n\nconst MAX_SIGNED_31_BIT_INT = 1073741823;\n\nconst commonjsGlobal =\n typeof globalThis !== \"undefined\" // 'global proper'\n ? // eslint-disable-next-line no-undef\n globalThis\n : typeof window !== \"undefined\"\n ? window // Browser\n : typeof global !== \"undefined\"\n ? global // node.js\n : {};\n\nfunction getUniqueId() {\n let key = \"__global_unique_id__\";\n return (commonjsGlobal[key] = (commonjsGlobal[key] || 0) + 1);\n}\n\n// Inlined Object.is polyfill.\n// https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/is\nfunction objectIs(x, y) {\n if (x === y) {\n return x !== 0 || 1 / x === 1 / y;\n } else {\n // eslint-disable-next-line no-self-compare\n return x !== x && y !== y;\n }\n}\n\nfunction createEventEmitter(value) {\n let handlers = [];\n return {\n on(handler) {\n handlers.push(handler);\n },\n\n off(handler) {\n handlers = handlers.filter(h => h !== handler);\n },\n\n get() {\n return value;\n },\n\n set(newValue, changedBits) {\n value = newValue;\n handlers.forEach(handler => handler(value, changedBits));\n }\n };\n}\n\nfunction onlyChild(children) {\n return Array.isArray(children) ? children[0] : children;\n}\n\nexport default function createReactContext(defaultValue, calculateChangedBits) {\n const contextProp = \"__create-react-context-\" + getUniqueId() + \"__\";\n\n class Provider extends React.Component {\n emitter = createEventEmitter(this.props.value);\n\n static childContextTypes = {\n [contextProp]: PropTypes.object.isRequired\n };\n\n getChildContext() {\n return {\n [contextProp]: this.emitter\n };\n }\n\n componentWillReceiveProps(nextProps) {\n if (this.props.value !== nextProps.value) {\n let oldValue = this.props.value;\n let newValue = nextProps.value;\n let changedBits;\n\n if (objectIs(oldValue, newValue)) {\n changedBits = 0; // No change\n } else {\n changedBits =\n typeof calculateChangedBits === \"function\"\n ? calculateChangedBits(oldValue, newValue)\n : MAX_SIGNED_31_BIT_INT;\n if (process.env.NODE_ENV !== \"production\") {\n warning(\n (changedBits & MAX_SIGNED_31_BIT_INT) === changedBits,\n \"calculateChangedBits: Expected the return value to be a \" +\n \"31-bit integer. Instead received: \" +\n changedBits\n );\n }\n\n changedBits |= 0;\n\n if (changedBits !== 0) {\n this.emitter.set(nextProps.value, changedBits);\n }\n }\n }\n }\n\n render() {\n return this.props.children;\n }\n }\n\n class Consumer extends React.Component {\n static contextTypes = {\n [contextProp]: PropTypes.object\n };\n\n observedBits;\n\n state = {\n value: this.getValue()\n };\n\n componentWillReceiveProps(nextProps) {\n let { observedBits } = nextProps;\n this.observedBits =\n observedBits === undefined || observedBits === null\n ? MAX_SIGNED_31_BIT_INT // Subscribe to all changes by default\n : observedBits;\n }\n\n componentDidMount() {\n if (this.context[contextProp]) {\n this.context[contextProp].on(this.onUpdate);\n }\n let { observedBits } = this.props;\n this.observedBits =\n observedBits === undefined || observedBits === null\n ? MAX_SIGNED_31_BIT_INT // Subscribe to all changes by default\n : observedBits;\n }\n\n componentWillUnmount() {\n if (this.context[contextProp]) {\n this.context[contextProp].off(this.onUpdate);\n }\n }\n\n getValue() {\n if (this.context[contextProp]) {\n return this.context[contextProp].get();\n } else {\n return defaultValue;\n }\n }\n\n onUpdate = (newValue, changedBits) => {\n const observedBits = this.observedBits | 0;\n if ((observedBits & changedBits) !== 0) {\n this.setState({ value: this.getValue() });\n }\n };\n\n render() {\n return onlyChild(this.props.children)(this.state.value);\n }\n }\n\n return {\n Provider,\n Consumer\n };\n}\n","// MIT License\n// Copyright (c) 2019-present StringEpsilon \n// Copyright (c) 2017-2019 James Kyle \n// https://github.com/StringEpsilon/mini-create-react-context\nimport React from \"react\";\nimport createReactContext from \"./miniCreateReactContext\";\n\nexport default React.createContext || createReactContext;\n","// TODO: Replace with React.createContext once we can assume React 16+\nimport createContext from \"./createContext\";\n\nconst createNamedContext = name => {\n const context = createContext();\n context.displayName = name;\n\n return context;\n};\n\nexport default createNamedContext;\n","import createNamedContext from \"./createNamedContext\";\n\nconst historyContext = /*#__PURE__*/ createNamedContext(\"Router-History\");\nexport default historyContext;\n","import createNamedContext from \"./createNamedContext\";\n\nconst context = /*#__PURE__*/ createNamedContext(\"Router\");\nexport default context;\n","import React from \"react\";\nimport PropTypes from \"prop-types\";\nimport warning from \"tiny-warning\";\n\nimport HistoryContext from \"./HistoryContext.js\";\nimport RouterContext from \"./RouterContext.js\";\n\n/**\n * The public API for putting history on context.\n */\nclass Router extends React.Component {\n static computeRootMatch(pathname) {\n return { path: \"/\", url: \"/\", params: {}, isExact: pathname === \"/\" };\n }\n\n constructor(props) {\n super(props);\n\n this.state = {\n location: props.history.location\n };\n\n // This is a bit of a hack. We have to start listening for location\n // changes here in the constructor in case there are any s\n // on the initial render. If there are, they will replace/push when\n // they mount and since cDM fires in children before parents, we may\n // get a new location before the is mounted.\n this._isMounted = false;\n this._pendingLocation = null;\n\n if (!props.staticContext) {\n this.unlisten = props.history.listen(location => {\n this._pendingLocation = location;\n });\n }\n }\n\n componentDidMount() {\n this._isMounted = true;\n\n if (this.unlisten) {\n // Any pre-mount location changes have been captured at\n // this point, so unregister the listener.\n this.unlisten();\n }\n if (!this.props.staticContext) {\n this.unlisten = this.props.history.listen(location => {\n if (this._isMounted) {\n this.setState({ location });\n }\n });\n }\n if (this._pendingLocation) {\n this.setState({ location: this._pendingLocation });\n }\n }\n\n componentWillUnmount() {\n if (this.unlisten) {\n this.unlisten();\n this._isMounted = false;\n this._pendingLocation = null;\n }\n }\n\n render() {\n return (\n \n \n \n );\n }\n}\n\nif (__DEV__) {\n Router.propTypes = {\n children: PropTypes.node,\n history: PropTypes.object.isRequired,\n staticContext: PropTypes.object\n };\n\n Router.prototype.componentDidUpdate = function(prevProps) {\n warning(\n prevProps.history === this.props.history,\n \"You cannot change \"\n );\n };\n}\n\nexport default Router;\n","import React from \"react\";\nimport PropTypes from \"prop-types\";\nimport { createMemoryHistory as createHistory } from \"history\";\nimport warning from \"tiny-warning\";\n\nimport Router from \"./Router.js\";\n\n/**\n * The public API for a that stores location in memory.\n */\nclass MemoryRouter extends React.Component {\n history = createHistory(this.props);\n\n render() {\n return ;\n }\n}\n\nif (__DEV__) {\n MemoryRouter.propTypes = {\n initialEntries: PropTypes.array,\n initialIndex: PropTypes.number,\n getUserConfirmation: PropTypes.func,\n keyLength: PropTypes.number,\n children: PropTypes.node\n };\n\n MemoryRouter.prototype.componentDidMount = function() {\n warning(\n !this.props.history,\n \" ignores the history prop. To use a custom history, \" +\n \"use `import { Router }` instead of `import { MemoryRouter as Router }`.\"\n );\n };\n}\n\nexport default MemoryRouter;\n","import React from \"react\";\n\nclass Lifecycle extends React.Component {\n componentDidMount() {\n if (this.props.onMount) this.props.onMount.call(this, this);\n }\n\n componentDidUpdate(prevProps) {\n if (this.props.onUpdate) this.props.onUpdate.call(this, this, prevProps);\n }\n\n componentWillUnmount() {\n if (this.props.onUnmount) this.props.onUnmount.call(this, this);\n }\n\n render() {\n return null;\n }\n}\n\nexport default Lifecycle;\n","import pathToRegexp from \"path-to-regexp\";\n\nconst cache = {};\nconst cacheLimit = 10000;\nlet cacheCount = 0;\n\nfunction compilePath(path) {\n if (cache[path]) return cache[path];\n\n const generator = pathToRegexp.compile(path);\n\n if (cacheCount < cacheLimit) {\n cache[path] = generator;\n cacheCount++;\n }\n\n return generator;\n}\n\n/**\n * Public API for generating a URL pathname from a path and parameters.\n */\nfunction generatePath(path = \"/\", params = {}) {\n return path === \"/\" ? path : compilePath(path)(params, { pretty: true });\n}\n\nexport default generatePath;\n","import React from \"react\";\nimport PropTypes from \"prop-types\";\nimport { createLocation, locationsAreEqual } from \"history\";\nimport invariant from \"tiny-invariant\";\n\nimport Lifecycle from \"./Lifecycle.js\";\nimport RouterContext from \"./RouterContext.js\";\nimport generatePath from \"./generatePath.js\";\n\n/**\n * The public API for navigating programmatically with a component.\n */\nfunction Redirect({ computedMatch, to, push = false }) {\n return (\n \n {context => {\n invariant(context, \"You should not use outside a \");\n\n const { history, staticContext } = context;\n\n const method = push ? history.push : history.replace;\n const location = createLocation(\n computedMatch\n ? typeof to === \"string\"\n ? generatePath(to, computedMatch.params)\n : {\n ...to,\n pathname: generatePath(to.pathname, computedMatch.params)\n }\n : to\n );\n\n // When rendering in a static context,\n // set the new location immediately.\n if (staticContext) {\n method(location);\n return null;\n }\n\n return (\n {\n method(location);\n }}\n onUpdate={(self, prevProps) => {\n const prevLocation = createLocation(prevProps.to);\n if (\n !locationsAreEqual(prevLocation, {\n ...location,\n key: prevLocation.key\n })\n ) {\n method(location);\n }\n }}\n to={to}\n />\n );\n }}\n \n );\n}\n\nif (__DEV__) {\n Redirect.propTypes = {\n push: PropTypes.bool,\n from: PropTypes.string,\n to: PropTypes.oneOfType([PropTypes.string, PropTypes.object]).isRequired\n };\n}\n\nexport default Redirect;\n","import pathToRegexp from \"path-to-regexp\";\n\nconst cache = {};\nconst cacheLimit = 10000;\nlet cacheCount = 0;\n\nfunction compilePath(path, options) {\n const cacheKey = `${options.end}${options.strict}${options.sensitive}`;\n const pathCache = cache[cacheKey] || (cache[cacheKey] = {});\n\n if (pathCache[path]) return pathCache[path];\n\n const keys = [];\n const regexp = pathToRegexp(path, keys, options);\n const result = { regexp, keys };\n\n if (cacheCount < cacheLimit) {\n pathCache[path] = result;\n cacheCount++;\n }\n\n return result;\n}\n\n/**\n * Public API for matching a URL pathname to a path.\n */\nfunction matchPath(pathname, options = {}) {\n if (typeof options === \"string\" || Array.isArray(options)) {\n options = { path: options };\n }\n\n const { path, exact = false, strict = false, sensitive = false } = options;\n\n const paths = [].concat(path);\n\n return paths.reduce((matched, path) => {\n if (!path && path !== \"\") return null;\n if (matched) return matched;\n\n const { regexp, keys } = compilePath(path, {\n end: exact,\n strict,\n sensitive\n });\n const match = regexp.exec(pathname);\n\n if (!match) return null;\n\n const [url, ...values] = match;\n const isExact = pathname === url;\n\n if (exact && !isExact) return null;\n\n return {\n path, // the path used to match\n url: path === \"/\" && url === \"\" ? \"/\" : url, // the matched portion of the URL\n isExact, // whether or not we matched exactly\n params: keys.reduce((memo, key, index) => {\n memo[key.name] = values[index];\n return memo;\n }, {})\n };\n }, null);\n}\n\nexport default matchPath;\n","import React from \"react\";\nimport { isValidElementType } from \"react-is\";\nimport PropTypes from \"prop-types\";\nimport invariant from \"tiny-invariant\";\nimport warning from \"tiny-warning\";\n\nimport RouterContext from \"./RouterContext.js\";\nimport matchPath from \"./matchPath.js\";\n\nfunction isEmptyChildren(children) {\n return React.Children.count(children) === 0;\n}\n\nfunction evalChildrenDev(children, props, path) {\n const value = children(props);\n\n warning(\n value !== undefined,\n \"You returned `undefined` from the `children` function of \" +\n `, but you ` +\n \"should have returned a React element or `null`\"\n );\n\n return value || null;\n}\n\n/**\n * The public API for matching a single path and rendering.\n */\nclass Route extends React.Component {\n render() {\n return (\n \n {context => {\n invariant(context, \"You should not use outside a \");\n\n const location = this.props.location || context.location;\n const match = this.props.computedMatch\n ? this.props.computedMatch // already computed the match for us\n : this.props.path\n ? matchPath(location.pathname, this.props)\n : context.match;\n\n const props = { ...context, location, match };\n\n let { children, component, render } = this.props;\n\n // Preact uses an empty array as children by\n // default, so use null if that's the case.\n if (Array.isArray(children) && isEmptyChildren(children)) {\n children = null;\n }\n\n return (\n \n {props.match\n ? children\n ? typeof children === \"function\"\n ? __DEV__\n ? evalChildrenDev(children, props, this.props.path)\n : children(props)\n : children\n : component\n ? React.createElement(component, props)\n : render\n ? render(props)\n : null\n : typeof children === \"function\"\n ? __DEV__\n ? evalChildrenDev(children, props, this.props.path)\n : children(props)\n : null}\n \n );\n }}\n \n );\n }\n}\n\nif (__DEV__) {\n Route.propTypes = {\n children: PropTypes.oneOfType([PropTypes.func, PropTypes.node]),\n component: (props, propName) => {\n if (props[propName] && !isValidElementType(props[propName])) {\n return new Error(\n `Invalid prop 'component' supplied to 'Route': the prop is not a valid React component`\n );\n }\n },\n exact: PropTypes.bool,\n location: PropTypes.object,\n path: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.arrayOf(PropTypes.string)\n ]),\n render: PropTypes.func,\n sensitive: PropTypes.bool,\n strict: PropTypes.bool\n };\n\n Route.prototype.componentDidMount = function() {\n warning(\n !(\n this.props.children &&\n !isEmptyChildren(this.props.children) &&\n this.props.component\n ),\n \"You should not use and in the same route; will be ignored\"\n );\n\n warning(\n !(\n this.props.children &&\n !isEmptyChildren(this.props.children) &&\n this.props.render\n ),\n \"You should not use and in the same route; will be ignored\"\n );\n\n warning(\n !(this.props.component && this.props.render),\n \"You should not use and in the same route; will be ignored\"\n );\n };\n\n Route.prototype.componentDidUpdate = function(prevProps) {\n warning(\n !(this.props.location && !prevProps.location),\n ' elements should not change from uncontrolled to controlled (or vice versa). You initially used no \"location\" prop and then provided one on a subsequent render.'\n );\n\n warning(\n !(!this.props.location && prevProps.location),\n ' elements should not change from controlled to uncontrolled (or vice versa). You provided a \"location\" prop initially but omitted it on a subsequent render.'\n );\n };\n}\n\nexport default Route;\n","import React from \"react\";\nimport PropTypes from \"prop-types\";\nimport { createLocation, createPath } from \"history\";\nimport invariant from \"tiny-invariant\";\nimport warning from \"tiny-warning\";\n\nimport Router from \"./Router.js\";\n\nfunction addLeadingSlash(path) {\n return path.charAt(0) === \"/\" ? path : \"/\" + path;\n}\n\nfunction addBasename(basename, location) {\n if (!basename) return location;\n\n return {\n ...location,\n pathname: addLeadingSlash(basename) + location.pathname\n };\n}\n\nfunction stripBasename(basename, location) {\n if (!basename) return location;\n\n const base = addLeadingSlash(basename);\n\n if (location.pathname.indexOf(base) !== 0) return location;\n\n return {\n ...location,\n pathname: location.pathname.substr(base.length)\n };\n}\n\nfunction createURL(location) {\n return typeof location === \"string\" ? location : createPath(location);\n}\n\nfunction staticHandler(methodName) {\n return () => {\n invariant(false, \"You cannot %s with \", methodName);\n };\n}\n\nfunction noop() {}\n\n/**\n * The public top-level API for a \"static\" , so-called because it\n * can't actually change the current location. Instead, it just records\n * location changes in a context object. Useful mainly in testing and\n * server-rendering scenarios.\n */\nclass StaticRouter extends React.Component {\n navigateTo(location, action) {\n const { basename = \"\", context = {} } = this.props;\n context.action = action;\n context.location = addBasename(basename, createLocation(location));\n context.url = createURL(context.location);\n }\n\n handlePush = location => this.navigateTo(location, \"PUSH\");\n handleReplace = location => this.navigateTo(location, \"REPLACE\");\n handleListen = () => noop;\n handleBlock = () => noop;\n\n render() {\n const { basename = \"\", context = {}, location = \"/\", ...rest } = this.props;\n\n const history = {\n createHref: path => addLeadingSlash(basename + createURL(path)),\n action: \"POP\",\n location: stripBasename(basename, createLocation(location)),\n push: this.handlePush,\n replace: this.handleReplace,\n go: staticHandler(\"go\"),\n goBack: staticHandler(\"goBack\"),\n goForward: staticHandler(\"goForward\"),\n listen: this.handleListen,\n block: this.handleBlock\n };\n\n return ;\n }\n}\n\nif (__DEV__) {\n StaticRouter.propTypes = {\n basename: PropTypes.string,\n context: PropTypes.object,\n location: PropTypes.oneOfType([PropTypes.string, PropTypes.object])\n };\n\n StaticRouter.prototype.componentDidMount = function() {\n warning(\n !this.props.history,\n \" ignores the history prop. To use a custom history, \" +\n \"use `import { Router }` instead of `import { StaticRouter as Router }`.\"\n );\n };\n}\n\nexport default StaticRouter;\n","import React from \"react\";\nimport PropTypes from \"prop-types\";\nimport invariant from \"tiny-invariant\";\nimport warning from \"tiny-warning\";\n\nimport RouterContext from \"./RouterContext.js\";\nimport matchPath from \"./matchPath.js\";\n\n/**\n * The public API for rendering the first that matches.\n */\nclass Switch extends React.Component {\n render() {\n return (\n \n {context => {\n invariant(context, \"You should not use outside a \");\n\n const location = this.props.location || context.location;\n\n let element, match;\n\n // We use React.Children.forEach instead of React.Children.toArray().find()\n // here because toArray adds keys to all child elements and we do not want\n // to trigger an unmount/remount for two s that render the same\n // component at different URLs.\n React.Children.forEach(this.props.children, child => {\n if (match == null && React.isValidElement(child)) {\n element = child;\n\n const path = child.props.path || child.props.from;\n\n match = path\n ? matchPath(location.pathname, { ...child.props, path })\n : context.match;\n }\n });\n\n return match\n ? React.cloneElement(element, { location, computedMatch: match })\n : null;\n }}\n \n );\n }\n}\n\nif (__DEV__) {\n Switch.propTypes = {\n children: PropTypes.node,\n location: PropTypes.object\n };\n\n Switch.prototype.componentDidUpdate = function(prevProps) {\n warning(\n !(this.props.location && !prevProps.location),\n ' elements should not change from uncontrolled to controlled (or vice versa). You initially used no \"location\" prop and then provided one on a subsequent render.'\n );\n\n warning(\n !(!this.props.location && prevProps.location),\n ' elements should not change from controlled to uncontrolled (or vice versa). You provided a \"location\" prop initially but omitted it on a subsequent render.'\n );\n };\n}\n\nexport default Switch;\n","import React from \"react\";\nimport invariant from \"tiny-invariant\";\n\nimport RouterContext from \"./RouterContext.js\";\nimport HistoryContext from \"./HistoryContext.js\";\nimport matchPath from \"./matchPath.js\";\n\nconst useContext = React.useContext;\n\nexport function useHistory() {\n if (__DEV__) {\n invariant(\n typeof useContext === \"function\",\n \"You must use React >= 16.8 in order to use useHistory()\"\n );\n }\n\n return useContext(HistoryContext);\n}\n\nexport function useLocation() {\n if (__DEV__) {\n invariant(\n typeof useContext === \"function\",\n \"You must use React >= 16.8 in order to use useLocation()\"\n );\n }\n\n return useContext(RouterContext).location;\n}\n\nexport function useParams() {\n if (__DEV__) {\n invariant(\n typeof useContext === \"function\",\n \"You must use React >= 16.8 in order to use useParams()\"\n );\n }\n\n const match = useContext(RouterContext).match;\n return match ? match.params : {};\n}\n\nexport function useRouteMatch(path) {\n if (__DEV__) {\n invariant(\n typeof useContext === \"function\",\n \"You must use React >= 16.8 in order to use useRouteMatch()\"\n );\n }\n\n const location = useLocation();\n const match = useContext(RouterContext).match;\n return path ? matchPath(location.pathname, path) : match;\n}\n","import React from \"react\";\nimport { Router } from \"react-router\";\nimport { createBrowserHistory as createHistory } from \"history\";\nimport PropTypes from \"prop-types\";\nimport warning from \"tiny-warning\";\n\n/**\n * The public API for a that uses HTML5 history.\n */\nclass BrowserRouter extends React.Component {\n history = createHistory(this.props);\n\n render() {\n return ;\n }\n}\n\nif (__DEV__) {\n BrowserRouter.propTypes = {\n basename: PropTypes.string,\n children: PropTypes.node,\n forceRefresh: PropTypes.bool,\n getUserConfirmation: PropTypes.func,\n keyLength: PropTypes.number\n };\n\n BrowserRouter.prototype.componentDidMount = function() {\n warning(\n !this.props.history,\n \" ignores the history prop. To use a custom history, \" +\n \"use `import { Router }` instead of `import { BrowserRouter as Router }`.\"\n );\n };\n}\n\nexport default BrowserRouter;\n","import React from \"react\";\nimport { Router } from \"react-router\";\nimport { createHashHistory as createHistory } from \"history\";\nimport PropTypes from \"prop-types\";\nimport warning from \"tiny-warning\";\n\n/**\n * The public API for a that uses window.location.hash.\n */\nclass HashRouter extends React.Component {\n history = createHistory(this.props);\n\n render() {\n return ;\n }\n}\n\nif (__DEV__) {\n HashRouter.propTypes = {\n basename: PropTypes.string,\n children: PropTypes.node,\n getUserConfirmation: PropTypes.func,\n hashType: PropTypes.oneOf([\"hashbang\", \"noslash\", \"slash\"])\n };\n\n HashRouter.prototype.componentDidMount = function() {\n warning(\n !this.props.history,\n \" ignores the history prop. To use a custom history, \" +\n \"use `import { Router }` instead of `import { HashRouter as Router }`.\"\n );\n };\n}\n\nexport default HashRouter;\n","import { createLocation } from \"history\";\n\nexport const resolveToLocation = (to, currentLocation) =>\n typeof to === \"function\" ? to(currentLocation) : to;\n\nexport const normalizeToLocation = (to, currentLocation) => {\n return typeof to === \"string\"\n ? createLocation(to, null, null, currentLocation)\n : to;\n};\n","import React from \"react\";\nimport { __RouterContext as RouterContext } from \"react-router\";\nimport { createPath } from 'history';\nimport PropTypes from \"prop-types\";\nimport invariant from \"tiny-invariant\";\nimport {\n resolveToLocation,\n normalizeToLocation\n} from \"./utils/locationUtils.js\";\n\n// React 15 compat\nconst forwardRefShim = C => C;\nlet { forwardRef } = React;\nif (typeof forwardRef === \"undefined\") {\n forwardRef = forwardRefShim;\n}\n\nfunction isModifiedEvent(event) {\n return !!(event.metaKey || event.altKey || event.ctrlKey || event.shiftKey);\n}\n\nconst LinkAnchor = forwardRef(\n (\n {\n innerRef, // TODO: deprecate\n navigate,\n onClick,\n ...rest\n },\n forwardedRef\n ) => {\n const { target } = rest;\n\n let props = {\n ...rest,\n onClick: event => {\n try {\n if (onClick) onClick(event);\n } catch (ex) {\n event.preventDefault();\n throw ex;\n }\n\n if (\n !event.defaultPrevented && // onClick prevented default\n event.button === 0 && // ignore everything but left clicks\n (!target || target === \"_self\") && // let browser handle \"target=_blank\" etc.\n !isModifiedEvent(event) // ignore clicks with modifier keys\n ) {\n event.preventDefault();\n navigate();\n }\n }\n };\n\n // React 15 compat\n if (forwardRefShim !== forwardRef) {\n props.ref = forwardedRef || innerRef;\n } else {\n props.ref = innerRef;\n }\n\n /* eslint-disable-next-line jsx-a11y/anchor-has-content */\n return ;\n }\n);\n\nif (__DEV__) {\n LinkAnchor.displayName = \"LinkAnchor\";\n}\n\n/**\n * The public API for rendering a history-aware .\n */\nconst Link = forwardRef(\n (\n {\n component = LinkAnchor,\n replace,\n to,\n innerRef, // TODO: deprecate\n ...rest\n },\n forwardedRef\n ) => {\n return (\n \n {context => {\n invariant(context, \"You should not use outside a \");\n\n const { history } = context;\n\n const location = normalizeToLocation(\n resolveToLocation(to, context.location),\n context.location\n );\n\n const href = location ? history.createHref(location) : \"\";\n const props = {\n ...rest,\n href,\n navigate() {\n const location = resolveToLocation(to, context.location);\n const isDuplicateNavigation = createPath(context.location) === createPath(normalizeToLocation(location));\n const method = (replace || isDuplicateNavigation) ? history.replace : history.push;\n\n method(location);\n }\n };\n\n // React 15 compat\n if (forwardRefShim !== forwardRef) {\n props.ref = forwardedRef || innerRef;\n } else {\n props.innerRef = innerRef;\n }\n\n return React.createElement(component, props);\n }}\n \n );\n }\n);\n\nif (__DEV__) {\n const toType = PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.object,\n PropTypes.func\n ]);\n const refType = PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.func,\n PropTypes.shape({ current: PropTypes.any })\n ]);\n\n Link.displayName = \"Link\";\n\n Link.propTypes = {\n innerRef: refType,\n onClick: PropTypes.func,\n replace: PropTypes.bool,\n target: PropTypes.string,\n to: toType.isRequired\n };\n}\n\nexport default Link;\n","import React from \"react\";\nimport { __RouterContext as RouterContext, matchPath } from \"react-router\";\nimport PropTypes from \"prop-types\";\nimport invariant from \"tiny-invariant\";\nimport Link from \"./Link.js\";\nimport {\n resolveToLocation,\n normalizeToLocation\n} from \"./utils/locationUtils.js\";\n\n// React 15 compat\nconst forwardRefShim = C => C;\nlet { forwardRef } = React;\nif (typeof forwardRef === \"undefined\") {\n forwardRef = forwardRefShim;\n}\n\nfunction joinClassnames(...classnames) {\n return classnames.filter(i => i).join(\" \");\n}\n\n/**\n * A wrapper that knows if it's \"active\" or not.\n */\nconst NavLink = forwardRef(\n (\n {\n \"aria-current\": ariaCurrent = \"page\",\n activeClassName = \"active\", // TODO: deprecate\n activeStyle, // TODO: deprecate\n className: classNameProp,\n exact,\n isActive: isActiveProp,\n location: locationProp,\n sensitive,\n strict,\n style: styleProp,\n to,\n innerRef, // TODO: deprecate\n ...rest\n },\n forwardedRef\n ) => {\n return (\n \n {context => {\n invariant(context, \"You should not use outside a \");\n\n const currentLocation = locationProp || context.location;\n const toLocation = normalizeToLocation(\n resolveToLocation(to, currentLocation),\n currentLocation\n );\n const { pathname: path } = toLocation;\n // Regex taken from: https://github.com/pillarjs/path-to-regexp/blob/master/index.js#L202\n const escapedPath =\n path && path.replace(/([.+*?=^!:${}()[\\]|/\\\\])/g, \"\\\\$1\");\n\n const match = escapedPath\n ? matchPath(currentLocation.pathname, {\n path: escapedPath,\n exact,\n sensitive,\n strict\n })\n : null;\n const isActive = !!(isActiveProp\n ? isActiveProp(match, currentLocation)\n : match);\n\n let className =\n typeof classNameProp === \"function\"\n ? classNameProp(isActive)\n : classNameProp;\n\n let style =\n typeof styleProp === \"function\" ? styleProp(isActive) : styleProp;\n\n if (isActive) {\n className = joinClassnames(className, activeClassName);\n style = { ...style, ...activeStyle };\n }\n\n const props = {\n \"aria-current\": (isActive && ariaCurrent) || null,\n className,\n style,\n to: toLocation,\n ...rest\n };\n\n // React 15 compat\n if (forwardRefShim !== forwardRef) {\n props.ref = forwardedRef || innerRef;\n } else {\n props.innerRef = innerRef;\n }\n\n return ;\n }}\n \n );\n }\n);\n\nif (__DEV__) {\n NavLink.displayName = \"NavLink\";\n\n const ariaCurrentType = PropTypes.oneOf([\n \"page\",\n \"step\",\n \"location\",\n \"date\",\n \"time\",\n \"true\",\n \"false\"\n ]);\n\n NavLink.propTypes = {\n ...Link.propTypes,\n \"aria-current\": ariaCurrentType,\n activeClassName: PropTypes.string,\n activeStyle: PropTypes.object,\n className: PropTypes.oneOfType([PropTypes.string, PropTypes.func]),\n exact: PropTypes.bool,\n isActive: PropTypes.func,\n location: PropTypes.object,\n sensitive: PropTypes.bool,\n strict: PropTypes.bool,\n style: PropTypes.oneOfType([PropTypes.object, PropTypes.func])\n };\n}\n\nexport default NavLink;\n","import * as React from 'react';\nimport { useContext, useMemo } from 'react';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nexport const DEFAULT_BREAKPOINTS = ['xxl', 'xl', 'lg', 'md', 'sm', 'xs'];\nexport const DEFAULT_MIN_BREAKPOINT = 'xs';\nconst ThemeContext = /*#__PURE__*/React.createContext({\n prefixes: {},\n breakpoints: DEFAULT_BREAKPOINTS,\n minBreakpoint: DEFAULT_MIN_BREAKPOINT\n});\nconst {\n Consumer,\n Provider\n} = ThemeContext;\n\nfunction ThemeProvider({\n prefixes = {},\n breakpoints = DEFAULT_BREAKPOINTS,\n minBreakpoint = DEFAULT_MIN_BREAKPOINT,\n dir,\n children\n}) {\n const contextValue = useMemo(() => ({\n prefixes: { ...prefixes\n },\n breakpoints,\n minBreakpoint,\n dir\n }), [prefixes, breakpoints, minBreakpoint, dir]);\n return /*#__PURE__*/_jsx(Provider, {\n value: contextValue,\n children: children\n });\n}\n\nexport function useBootstrapPrefix(prefix, defaultPrefix) {\n const {\n prefixes\n } = useContext(ThemeContext);\n return prefix || prefixes[defaultPrefix] || defaultPrefix;\n}\nexport function useBootstrapBreakpoints() {\n const {\n breakpoints\n } = useContext(ThemeContext);\n return breakpoints;\n}\nexport function useBootstrapMinBreakpoint() {\n const {\n minBreakpoint\n } = useContext(ThemeContext);\n return minBreakpoint;\n}\nexport function useIsRTL() {\n const {\n dir\n } = useContext(ThemeContext);\n return dir === 'rtl';\n}\n\nfunction createBootstrapComponent(Component, opts) {\n if (typeof opts === 'string') opts = {\n prefix: opts\n };\n const isClassy = Component.prototype && Component.prototype.isReactComponent; // If it's a functional component make sure we don't break it with a ref\n\n const {\n prefix,\n forwardRefAs = isClassy ? 'ref' : 'innerRef'\n } = opts;\n const Wrapped = /*#__PURE__*/React.forwardRef(({ ...props\n }, ref) => {\n props[forwardRefAs] = ref;\n const bsPrefix = useBootstrapPrefix(props.bsPrefix, prefix);\n return /*#__PURE__*/_jsx(Component, { ...props,\n bsPrefix: bsPrefix\n });\n });\n Wrapped.displayName = `Bootstrap(${Component.displayName || Component.name})`;\n return Wrapped;\n}\n\nexport { createBootstrapComponent, Consumer as ThemeConsumer };\nexport default ThemeProvider;","import classNames from 'classnames';\nimport * as React from 'react';\nimport { useBootstrapPrefix, useBootstrapBreakpoints, useBootstrapMinBreakpoint } from './ThemeProvider';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst Row = /*#__PURE__*/React.forwardRef(({\n bsPrefix,\n className,\n // Need to define the default \"as\" during prop destructuring to be compatible with styled-components github.com/react-bootstrap/react-bootstrap/issues/3595\n as: Component = 'div',\n ...props\n}, ref) => {\n const decoratedBsPrefix = useBootstrapPrefix(bsPrefix, 'row');\n const breakpoints = useBootstrapBreakpoints();\n const minBreakpoint = useBootstrapMinBreakpoint();\n const sizePrefix = `${decoratedBsPrefix}-cols`;\n const classes = [];\n breakpoints.forEach(brkPoint => {\n const propValue = props[brkPoint];\n delete props[brkPoint];\n let cols;\n\n if (propValue != null && typeof propValue === 'object') {\n ({\n cols\n } = propValue);\n } else {\n cols = propValue;\n }\n\n const infix = brkPoint !== minBreakpoint ? `-${brkPoint}` : '';\n if (cols != null) classes.push(`${sizePrefix}${infix}-${cols}`);\n });\n return /*#__PURE__*/_jsx(Component, {\n ref: ref,\n ...props,\n className: classNames(className, decoratedBsPrefix, ...classes)\n });\n});\nRow.displayName = 'Row';\nexport default Row;","import classNames from 'classnames';\nimport * as React from 'react';\nimport { useBootstrapPrefix, useBootstrapBreakpoints, useBootstrapMinBreakpoint } from './ThemeProvider';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nexport function useCol({\n as,\n bsPrefix,\n className,\n ...props\n}) {\n bsPrefix = useBootstrapPrefix(bsPrefix, 'col');\n const breakpoints = useBootstrapBreakpoints();\n const minBreakpoint = useBootstrapMinBreakpoint();\n const spans = [];\n const classes = [];\n breakpoints.forEach(brkPoint => {\n const propValue = props[brkPoint];\n delete props[brkPoint];\n let span;\n let offset;\n let order;\n\n if (typeof propValue === 'object' && propValue != null) {\n ({\n span,\n offset,\n order\n } = propValue);\n } else {\n span = propValue;\n }\n\n const infix = brkPoint !== minBreakpoint ? `-${brkPoint}` : '';\n if (span) spans.push(span === true ? `${bsPrefix}${infix}` : `${bsPrefix}${infix}-${span}`);\n if (order != null) classes.push(`order${infix}-${order}`);\n if (offset != null) classes.push(`offset${infix}-${offset}`);\n });\n return [{ ...props,\n className: classNames(className, ...spans, ...classes)\n }, {\n as,\n bsPrefix,\n spans\n }];\n}\nconst Col = /*#__PURE__*/React.forwardRef( // Need to define the default \"as\" during prop destructuring to be compatible with styled-components github.com/react-bootstrap/react-bootstrap/issues/3595\n(props, ref) => {\n const [{\n className,\n ...colProps\n }, {\n as: Component = 'div',\n bsPrefix,\n spans\n }] = useCol(props);\n return /*#__PURE__*/_jsx(Component, { ...colProps,\n ref: ref,\n className: classNames(className, !spans.length && bsPrefix)\n });\n});\nCol.displayName = 'Col';\nexport default Col;","var rHyphen = /-(.)/g;\nexport default function camelize(string) {\n return string.replace(rHyphen, function (_, chr) {\n return chr.toUpperCase();\n });\n}","import classNames from 'classnames';\nimport camelize from 'dom-helpers/camelize';\nimport * as React from 'react';\nimport { useBootstrapPrefix } from './ThemeProvider';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\n\nconst pascalCase = str => str[0].toUpperCase() + camelize(str).slice(1);\n\n// TODO: emstricten & fix the typing here! `createWithBsPrefix...`\nexport default function createWithBsPrefix(prefix, {\n displayName = pascalCase(prefix),\n Component,\n defaultProps\n} = {}) {\n const BsComponent = /*#__PURE__*/React.forwardRef(({\n className,\n bsPrefix,\n as: Tag = Component || 'div',\n ...props\n }, ref) => {\n const resolvedPrefix = useBootstrapPrefix(bsPrefix, prefix);\n return /*#__PURE__*/_jsx(Tag, {\n ref: ref,\n className: classNames(className, resolvedPrefix),\n ...props\n });\n });\n BsComponent.defaultProps = defaultProps;\n BsComponent.displayName = displayName;\n return BsComponent;\n}","import * as React from 'react';\nimport classNames from 'classnames';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nexport default (className => /*#__PURE__*/React.forwardRef((p, ref) => /*#__PURE__*/_jsx(\"div\", { ...p,\n ref: ref,\n className: classNames(p.className, className)\n})));","import classNames from 'classnames';\nimport * as React from 'react';\nimport { useBootstrapPrefix } from './ThemeProvider';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst CardImg = /*#__PURE__*/React.forwardRef( // Need to define the default \"as\" during prop destructuring to be compatible with styled-components github.com/react-bootstrap/react-bootstrap/issues/3595\n({\n bsPrefix,\n className,\n variant,\n as: Component = 'img',\n ...props\n}, ref) => {\n const prefix = useBootstrapPrefix(bsPrefix, 'card-img');\n return /*#__PURE__*/_jsx(Component, {\n ref: ref,\n className: classNames(variant ? `${prefix}-${variant}` : prefix, className),\n ...props\n });\n});\nCardImg.displayName = 'CardImg';\nexport default CardImg;","import * as React from 'react';\nconst context = /*#__PURE__*/React.createContext(null);\ncontext.displayName = 'CardHeaderContext';\nexport default context;","import classNames from 'classnames';\nimport * as React from 'react';\nimport { useMemo } from 'react';\nimport { useBootstrapPrefix } from './ThemeProvider';\nimport CardHeaderContext from './CardHeaderContext';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst CardHeader = /*#__PURE__*/React.forwardRef(({\n bsPrefix,\n className,\n // Need to define the default \"as\" during prop destructuring to be compatible with styled-components github.com/react-bootstrap/react-bootstrap/issues/3595\n as: Component = 'div',\n ...props\n}, ref) => {\n const prefix = useBootstrapPrefix(bsPrefix, 'card-header');\n const contextValue = useMemo(() => ({\n cardHeaderBsPrefix: prefix\n }), [prefix]);\n return /*#__PURE__*/_jsx(CardHeaderContext.Provider, {\n value: contextValue,\n children: /*#__PURE__*/_jsx(Component, {\n ref: ref,\n ...props,\n className: classNames(className, prefix)\n })\n });\n});\nCardHeader.displayName = 'CardHeader';\nexport default CardHeader;","import classNames from 'classnames';\nimport * as React from 'react';\nimport { useBootstrapPrefix } from './ThemeProvider';\nimport createWithBsPrefix from './createWithBsPrefix';\nimport divWithClassName from './divWithClassName';\nimport CardImg from './CardImg';\nimport CardHeader from './CardHeader';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst DivStyledAsH5 = divWithClassName('h5');\nconst DivStyledAsH6 = divWithClassName('h6');\nconst CardBody = createWithBsPrefix('card-body');\nconst CardTitle = createWithBsPrefix('card-title', {\n Component: DivStyledAsH5\n});\nconst CardSubtitle = createWithBsPrefix('card-subtitle', {\n Component: DivStyledAsH6\n});\nconst CardLink = createWithBsPrefix('card-link', {\n Component: 'a'\n});\nconst CardText = createWithBsPrefix('card-text', {\n Component: 'p'\n});\nconst CardFooter = createWithBsPrefix('card-footer');\nconst CardImgOverlay = createWithBsPrefix('card-img-overlay');\nconst defaultProps = {\n body: false\n};\nconst Card = /*#__PURE__*/React.forwardRef(({\n bsPrefix,\n className,\n bg,\n text,\n border,\n body,\n children,\n // Need to define the default \"as\" during prop destructuring to be compatible with styled-components github.com/react-bootstrap/react-bootstrap/issues/3595\n as: Component = 'div',\n ...props\n}, ref) => {\n const prefix = useBootstrapPrefix(bsPrefix, 'card');\n return /*#__PURE__*/_jsx(Component, {\n ref: ref,\n ...props,\n className: classNames(className, prefix, bg && `bg-${bg}`, text && `text-${text}`, border && `border-${border}`),\n children: body ? /*#__PURE__*/_jsx(CardBody, {\n children: children\n }) : children\n });\n});\nCard.displayName = 'Card';\nCard.defaultProps = defaultProps;\nexport default Object.assign(Card, {\n Img: CardImg,\n Title: CardTitle,\n Subtitle: CardSubtitle,\n Body: CardBody,\n Link: CardLink,\n Text: CardText,\n Header: CardHeader,\n Footer: CardFooter,\n ImgOverlay: CardImgOverlay\n});","export const somethingWentWrong =\n \"Oops! Something went wrong, please try again later or contact support at support@bkalerts.com\";\n\nexport const loginLinkExpired =\n \"Login link expired, please reset your password or contact support at support@bkalerts.com\";\n","import classNames from 'classnames';\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst propTypes = {\n /**\n * Specify whether the feedback is for valid or invalid fields\n *\n * @type {('valid'|'invalid')}\n */\n type: PropTypes.string,\n\n /** Display feedback as a tooltip. */\n tooltip: PropTypes.bool,\n as: PropTypes.elementType\n};\nconst Feedback = /*#__PURE__*/React.forwardRef( // Need to define the default \"as\" during prop destructuring to be compatible with styled-components github.com/react-bootstrap/react-bootstrap/issues/3595\n({\n as: Component = 'div',\n className,\n type = 'valid',\n tooltip = false,\n ...props\n}, ref) => /*#__PURE__*/_jsx(Component, { ...props,\n ref: ref,\n className: classNames(className, `${type}-${tooltip ? 'tooltip' : 'feedback'}`)\n}));\nFeedback.displayName = 'Feedback';\nFeedback.propTypes = propTypes;\nexport default Feedback;","import * as React from 'react'; // TODO\n\nconst FormContext = /*#__PURE__*/React.createContext({});\nexport default FormContext;","import classNames from 'classnames';\nimport * as React from 'react';\nimport { useContext } from 'react';\nimport FormContext from './FormContext';\nimport { useBootstrapPrefix } from './ThemeProvider';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst FormCheckInput = /*#__PURE__*/React.forwardRef(({\n id,\n bsPrefix,\n className,\n type = 'checkbox',\n isValid = false,\n isInvalid = false,\n // Need to define the default \"as\" during prop destructuring to be compatible with styled-components github.com/react-bootstrap/react-bootstrap/issues/3595\n as: Component = 'input',\n ...props\n}, ref) => {\n const {\n controlId\n } = useContext(FormContext);\n bsPrefix = useBootstrapPrefix(bsPrefix, 'form-check-input');\n return /*#__PURE__*/_jsx(Component, { ...props,\n ref: ref,\n type: type,\n id: id || controlId,\n className: classNames(className, bsPrefix, isValid && 'is-valid', isInvalid && 'is-invalid')\n });\n});\nFormCheckInput.displayName = 'FormCheckInput';\nexport default FormCheckInput;","import classNames from 'classnames';\nimport * as React from 'react';\nimport { useContext } from 'react';\nimport FormContext from './FormContext';\nimport { useBootstrapPrefix } from './ThemeProvider';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst FormCheckLabel = /*#__PURE__*/React.forwardRef(({\n bsPrefix,\n className,\n htmlFor,\n ...props\n}, ref) => {\n const {\n controlId\n } = useContext(FormContext);\n bsPrefix = useBootstrapPrefix(bsPrefix, 'form-check-label');\n return /*#__PURE__*/_jsx(\"label\", { ...props,\n ref: ref,\n htmlFor: htmlFor || controlId,\n className: classNames(className, bsPrefix)\n });\n});\nFormCheckLabel.displayName = 'FormCheckLabel';\nexport default FormCheckLabel;","import * as React from 'react';\n/**\n * Iterates through children that are typically specified as `props.children`,\n * but only maps over children that are \"valid elements\".\n *\n * The mapFunction provided index will be normalised to the components mapped,\n * so an invalid component would not increase the index.\n *\n */\n\nfunction map(children, func) {\n let index = 0;\n return React.Children.map(children, child => /*#__PURE__*/React.isValidElement(child) ? func(child, index++) : child);\n}\n/**\n * Iterates through children that are \"valid elements\".\n *\n * The provided forEachFunc(child, index) will be called for each\n * leaf child with the index reflecting the position relative to \"valid components\".\n */\n\n\nfunction forEach(children, func) {\n let index = 0;\n React.Children.forEach(children, child => {\n if ( /*#__PURE__*/React.isValidElement(child)) func(child, index++);\n });\n}\n/**\n * Finds whether a component's `children` prop includes a React element of the\n * specified type.\n */\n\n\nfunction hasChildOfType(children, type) {\n return React.Children.toArray(children).some(child => /*#__PURE__*/React.isValidElement(child) && child.type === type);\n}\n\nexport { map, forEach, hasChildOfType };","import classNames from 'classnames';\nimport * as React from 'react';\nimport { useContext, useMemo } from 'react';\nimport Feedback from './Feedback';\nimport FormCheckInput from './FormCheckInput';\nimport FormCheckLabel from './FormCheckLabel';\nimport FormContext from './FormContext';\nimport { useBootstrapPrefix } from './ThemeProvider';\nimport { hasChildOfType } from './ElementChildren';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nimport { Fragment as _Fragment } from \"react/jsx-runtime\";\nimport { jsxs as _jsxs } from \"react/jsx-runtime\";\nconst FormCheck = /*#__PURE__*/React.forwardRef(({\n id,\n bsPrefix,\n bsSwitchPrefix,\n inline = false,\n reverse = false,\n disabled = false,\n isValid = false,\n isInvalid = false,\n feedbackTooltip = false,\n feedback,\n feedbackType,\n className,\n style,\n title = '',\n type = 'checkbox',\n label,\n children,\n // Need to define the default \"as\" during prop destructuring to be compatible with styled-components github.com/react-bootstrap/react-bootstrap/issues/3595\n as = 'input',\n ...props\n}, ref) => {\n bsPrefix = useBootstrapPrefix(bsPrefix, 'form-check');\n bsSwitchPrefix = useBootstrapPrefix(bsSwitchPrefix, 'form-switch');\n const {\n controlId\n } = useContext(FormContext);\n const innerFormContext = useMemo(() => ({\n controlId: id || controlId\n }), [controlId, id]);\n const hasLabel = !children && label != null && label !== false || hasChildOfType(children, FormCheckLabel);\n\n const input = /*#__PURE__*/_jsx(FormCheckInput, { ...props,\n type: type === 'switch' ? 'checkbox' : type,\n ref: ref,\n isValid: isValid,\n isInvalid: isInvalid,\n disabled: disabled,\n as: as\n });\n\n return /*#__PURE__*/_jsx(FormContext.Provider, {\n value: innerFormContext,\n children: /*#__PURE__*/_jsx(\"div\", {\n style: style,\n className: classNames(className, hasLabel && bsPrefix, inline && `${bsPrefix}-inline`, reverse && `${bsPrefix}-reverse`, type === 'switch' && bsSwitchPrefix),\n children: children || /*#__PURE__*/_jsxs(_Fragment, {\n children: [input, hasLabel && /*#__PURE__*/_jsx(FormCheckLabel, {\n title: title,\n children: label\n }), feedback && /*#__PURE__*/_jsx(Feedback, {\n type: feedbackType,\n tooltip: feedbackTooltip,\n children: feedback\n })]\n })\n })\n });\n});\nFormCheck.displayName = 'FormCheck';\nexport default Object.assign(FormCheck, {\n Input: FormCheckInput,\n Label: FormCheckLabel\n});","import classNames from 'classnames';\nimport * as React from 'react';\nimport { useContext } from 'react';\nimport warning from 'warning';\nimport Feedback from './Feedback';\nimport FormContext from './FormContext';\nimport { useBootstrapPrefix } from './ThemeProvider';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst FormControl = /*#__PURE__*/React.forwardRef(({\n bsPrefix,\n type,\n size,\n htmlSize,\n id,\n className,\n isValid = false,\n isInvalid = false,\n plaintext,\n readOnly,\n // Need to define the default \"as\" during prop destructuring to be compatible with styled-components github.com/react-bootstrap/react-bootstrap/issues/3595\n as: Component = 'input',\n ...props\n}, ref) => {\n const {\n controlId\n } = useContext(FormContext);\n bsPrefix = useBootstrapPrefix(bsPrefix, 'form-control');\n let classes;\n\n if (plaintext) {\n classes = {\n [`${bsPrefix}-plaintext`]: true\n };\n } else {\n classes = {\n [bsPrefix]: true,\n [`${bsPrefix}-${size}`]: size\n };\n }\n\n process.env.NODE_ENV !== \"production\" ? warning(controlId == null || !id, '`controlId` is ignored on `` when `id` is specified.') : void 0;\n return /*#__PURE__*/_jsx(Component, { ...props,\n type: type,\n size: htmlSize,\n ref: ref,\n readOnly: readOnly,\n id: id || controlId,\n className: classNames(className, classes, isValid && `is-valid`, isInvalid && `is-invalid`, type === 'color' && `${bsPrefix}-color`)\n });\n});\nFormControl.displayName = 'FormControl';\nexport default Object.assign(FormControl, {\n Feedback\n});","import createWithBsPrefix from './createWithBsPrefix';\nexport default createWithBsPrefix('form-floating');","import * as React from 'react';\nimport { useMemo } from 'react';\nimport FormContext from './FormContext';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst FormGroup = /*#__PURE__*/React.forwardRef(({\n controlId,\n // Need to define the default \"as\" during prop destructuring to be compatible with styled-components github.com/react-bootstrap/react-bootstrap/issues/3595\n as: Component = 'div',\n ...props\n}, ref) => {\n const context = useMemo(() => ({\n controlId\n }), [controlId]);\n return /*#__PURE__*/_jsx(FormContext.Provider, {\n value: context,\n children: /*#__PURE__*/_jsx(Component, { ...props,\n ref: ref\n })\n });\n});\nFormGroup.displayName = 'FormGroup';\nexport default FormGroup;","import classNames from 'classnames';\nimport * as React from 'react';\nimport { useContext } from 'react';\nimport warning from 'warning';\nimport Col from './Col';\nimport FormContext from './FormContext';\nimport { useBootstrapPrefix } from './ThemeProvider';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst defaultProps = {\n column: false,\n visuallyHidden: false\n};\nconst FormLabel = /*#__PURE__*/React.forwardRef(({\n // Need to define the default \"as\" during prop destructuring to be compatible with styled-components github.com/react-bootstrap/react-bootstrap/issues/3595\n as: Component = 'label',\n bsPrefix,\n column,\n visuallyHidden,\n className,\n htmlFor,\n ...props\n}, ref) => {\n const {\n controlId\n } = useContext(FormContext);\n bsPrefix = useBootstrapPrefix(bsPrefix, 'form-label');\n let columnClass = 'col-form-label';\n if (typeof column === 'string') columnClass = `${columnClass} ${columnClass}-${column}`;\n const classes = classNames(className, bsPrefix, visuallyHidden && 'visually-hidden', column && columnClass);\n process.env.NODE_ENV !== \"production\" ? warning(controlId == null || !htmlFor, '`controlId` is ignored on `` when `htmlFor` is specified.') : void 0;\n htmlFor = htmlFor || controlId;\n if (column) return /*#__PURE__*/_jsx(Col, {\n ref: ref,\n as: \"label\",\n className: classes,\n htmlFor: htmlFor,\n ...props\n });\n return (\n /*#__PURE__*/\n // eslint-disable-next-line jsx-a11y/label-has-for, jsx-a11y/label-has-associated-control\n _jsx(Component, {\n ref: ref,\n className: classes,\n htmlFor: htmlFor,\n ...props\n })\n );\n});\nFormLabel.displayName = 'FormLabel';\nFormLabel.defaultProps = defaultProps;\nexport default FormLabel;","import classNames from 'classnames';\nimport * as React from 'react';\nimport { useContext } from 'react';\nimport { useBootstrapPrefix } from './ThemeProvider';\nimport FormContext from './FormContext';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst FormRange = /*#__PURE__*/React.forwardRef(({\n bsPrefix,\n className,\n id,\n ...props\n}, ref) => {\n const {\n controlId\n } = useContext(FormContext);\n bsPrefix = useBootstrapPrefix(bsPrefix, 'form-range');\n return /*#__PURE__*/_jsx(\"input\", { ...props,\n type: \"range\",\n ref: ref,\n className: classNames(className, bsPrefix),\n id: id || controlId\n });\n});\nFormRange.displayName = 'FormRange';\nexport default FormRange;","import classNames from 'classnames';\nimport * as React from 'react';\nimport { useContext } from 'react';\nimport { useBootstrapPrefix } from './ThemeProvider';\nimport FormContext from './FormContext';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst FormSelect = /*#__PURE__*/React.forwardRef(({\n bsPrefix,\n size,\n htmlSize,\n className,\n isValid = false,\n isInvalid = false,\n id,\n ...props\n}, ref) => {\n const {\n controlId\n } = useContext(FormContext);\n bsPrefix = useBootstrapPrefix(bsPrefix, 'form-select');\n return /*#__PURE__*/_jsx(\"select\", { ...props,\n size: htmlSize,\n ref: ref,\n className: classNames(className, bsPrefix, size && `${bsPrefix}-${size}`, isValid && `is-valid`, isInvalid && `is-invalid`),\n id: id || controlId\n });\n});\nFormSelect.displayName = 'FormSelect';\nexport default FormSelect;","import classNames from 'classnames';\nimport * as React from 'react';\nimport { useBootstrapPrefix } from './ThemeProvider';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst FormText = /*#__PURE__*/React.forwardRef( // Need to define the default \"as\" during prop destructuring to be compatible with styled-components github.com/react-bootstrap/react-bootstrap/issues/3595\n({\n bsPrefix,\n className,\n as: Component = 'small',\n muted,\n ...props\n}, ref) => {\n bsPrefix = useBootstrapPrefix(bsPrefix, 'form-text');\n return /*#__PURE__*/_jsx(Component, { ...props,\n ref: ref,\n className: classNames(className, bsPrefix, muted && 'text-muted')\n });\n});\nFormText.displayName = 'FormText';\nexport default FormText;","import * as React from 'react';\nimport FormCheck from './FormCheck';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst Switch = /*#__PURE__*/React.forwardRef((props, ref) => /*#__PURE__*/_jsx(FormCheck, { ...props,\n ref: ref,\n type: \"switch\"\n}));\nSwitch.displayName = 'Switch';\nexport default Object.assign(Switch, {\n Input: FormCheck.Input,\n Label: FormCheck.Label\n});","import classNames from 'classnames';\nimport * as React from 'react';\nimport FormGroup from './FormGroup';\nimport { useBootstrapPrefix } from './ThemeProvider';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nimport { jsxs as _jsxs } from \"react/jsx-runtime\";\nconst FloatingLabel = /*#__PURE__*/React.forwardRef(({\n bsPrefix,\n className,\n children,\n controlId,\n label,\n ...props\n}, ref) => {\n bsPrefix = useBootstrapPrefix(bsPrefix, 'form-floating');\n return /*#__PURE__*/_jsxs(FormGroup, {\n ref: ref,\n className: classNames(className, bsPrefix),\n controlId: controlId,\n ...props,\n children: [children, /*#__PURE__*/_jsx(\"label\", {\n htmlFor: controlId,\n children: label\n })]\n });\n});\nFloatingLabel.displayName = 'FloatingLabel';\nexport default FloatingLabel;","import classNames from 'classnames';\nimport PropTypes from 'prop-types';\nimport * as React from 'react';\nimport FormCheck from './FormCheck';\nimport FormControl from './FormControl';\nimport FormFloating from './FormFloating';\nimport FormGroup from './FormGroup';\nimport FormLabel from './FormLabel';\nimport FormRange from './FormRange';\nimport FormSelect from './FormSelect';\nimport FormText from './FormText';\nimport Switch from './Switch';\nimport FloatingLabel from './FloatingLabel';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst propTypes = {\n /**\n * The Form `ref` will be forwarded to the underlying element,\n * which means, unless it's rendered `as` a composite component,\n * it will be a DOM node, when resolved.\n *\n * @type {ReactRef}\n * @alias ref\n */\n _ref: PropTypes.any,\n\n /**\n * Mark a form as having been validated. Setting it to `true` will\n * toggle any validation styles on the forms elements.\n */\n validated: PropTypes.bool,\n as: PropTypes.elementType\n};\nconst Form = /*#__PURE__*/React.forwardRef(({\n className,\n validated,\n // Need to define the default \"as\" during prop destructuring to be compatible with styled-components github.com/react-bootstrap/react-bootstrap/issues/3595\n as: Component = 'form',\n ...props\n}, ref) => /*#__PURE__*/_jsx(Component, { ...props,\n ref: ref,\n className: classNames(className, validated && 'was-validated')\n}));\nForm.displayName = 'Form';\nForm.propTypes = propTypes;\nexport default Object.assign(Form, {\n Group: FormGroup,\n Control: FormControl,\n Floating: FormFloating,\n Check: FormCheck,\n Switch,\n Label: FormLabel,\n Text: FormText,\n Range: FormRange,\n Select: FormSelect,\n FloatingLabel\n});","const _excluded = [\"as\", \"disabled\"];\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\nimport * as React from 'react';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nexport function isTrivialHref(href) {\n return !href || href.trim() === '#';\n}\nexport function useButtonProps({\n tagName,\n disabled,\n href,\n target,\n rel,\n role,\n onClick,\n tabIndex = 0,\n type\n}) {\n if (!tagName) {\n if (href != null || target != null || rel != null) {\n tagName = 'a';\n } else {\n tagName = 'button';\n }\n }\n const meta = {\n tagName\n };\n if (tagName === 'button') {\n return [{\n type: type || 'button',\n disabled\n }, meta];\n }\n const handleClick = event => {\n if (disabled || tagName === 'a' && isTrivialHref(href)) {\n event.preventDefault();\n }\n if (disabled) {\n event.stopPropagation();\n return;\n }\n onClick == null ? void 0 : onClick(event);\n };\n const handleKeyDown = event => {\n if (event.key === ' ') {\n event.preventDefault();\n handleClick(event);\n }\n };\n if (tagName === 'a') {\n // Ensure there's a href so Enter can trigger anchor button.\n href || (href = '#');\n if (disabled) {\n href = undefined;\n }\n }\n return [{\n role: role != null ? role : 'button',\n // explicitly undefined so that it overrides the props disabled in a spread\n // e.g. \n disabled: undefined,\n tabIndex: disabled ? undefined : tabIndex,\n href,\n target: tagName === 'a' ? target : undefined,\n 'aria-disabled': !disabled ? undefined : disabled,\n rel: tagName === 'a' ? rel : undefined,\n onClick: handleClick,\n onKeyDown: handleKeyDown\n }, meta];\n}\nconst Button = /*#__PURE__*/React.forwardRef((_ref, ref) => {\n let {\n as: asProp,\n disabled\n } = _ref,\n props = _objectWithoutPropertiesLoose(_ref, _excluded);\n const [buttonProps, {\n tagName: Component\n }] = useButtonProps(Object.assign({\n tagName: asProp,\n disabled\n }, props));\n return /*#__PURE__*/_jsx(Component, Object.assign({}, props, buttonProps, {\n ref: ref\n }));\n});\nButton.displayName = 'Button';\nexport default Button;","import classNames from 'classnames';\nimport * as React from 'react';\nimport { useButtonProps } from '@restart/ui/Button';\nimport { useBootstrapPrefix } from './ThemeProvider';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst defaultProps = {\n variant: 'primary',\n active: false,\n disabled: false\n};\nconst Button = /*#__PURE__*/React.forwardRef(({\n as,\n bsPrefix,\n variant,\n size,\n active,\n className,\n ...props\n}, ref) => {\n const prefix = useBootstrapPrefix(bsPrefix, 'btn');\n const [buttonProps, {\n tagName\n }] = useButtonProps({\n tagName: as,\n ...props\n });\n const Component = tagName;\n return /*#__PURE__*/_jsx(Component, { ...buttonProps,\n ...props,\n ref: ref,\n className: classNames(className, prefix, active && 'active', variant && `${prefix}-${variant}`, size && `${prefix}-${size}`, props.href && props.disabled && 'disabled')\n });\n});\nButton.displayName = 'Button';\nButton.defaultProps = defaultProps;\nexport default Button;","import classNames from 'classnames';\nimport * as React from 'react';\nimport { useBootstrapPrefix } from './ThemeProvider';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst Spinner = /*#__PURE__*/React.forwardRef(({\n bsPrefix,\n variant,\n animation,\n size,\n // Need to define the default \"as\" during prop destructuring to be compatible with styled-components github.com/react-bootstrap/react-bootstrap/issues/3595\n as: Component = 'div',\n className,\n ...props\n}, ref) => {\n bsPrefix = useBootstrapPrefix(bsPrefix, 'spinner');\n const bsSpinnerPrefix = `${bsPrefix}-${animation}`;\n return /*#__PURE__*/_jsx(Component, {\n ref: ref,\n ...props,\n className: classNames(className, bsSpinnerPrefix, size && `${bsSpinnerPrefix}-${size}`, variant && `text-${variant}`)\n });\n});\nSpinner.displayName = 'Spinner';\nexport default Spinner;","import { FieldElement } from '../types';\n\nexport default (element: FieldElement): element is HTMLInputElement =>\n element.type === 'checkbox';\n","export default (value: unknown): value is Date => value instanceof Date;\n","export default (value: unknown): value is null | undefined => value == null;\n","import isDateObject from './isDateObject';\nimport isNullOrUndefined from './isNullOrUndefined';\n\nexport const isObjectType = (value: unknown) => typeof value === 'object';\n\nexport default (value: unknown): value is T =>\n !isNullOrUndefined(value) &&\n !Array.isArray(value) &&\n isObjectType(value) &&\n !isDateObject(value);\n","import isCheckBoxInput from '../utils/isCheckBoxInput';\nimport isObject from '../utils/isObject';\n\ntype Event = { target: any };\n\nexport default (event: unknown) =>\n isObject(event) && (event as Event).target\n ? isCheckBoxInput((event as Event).target)\n ? (event as Event).target.checked\n : (event as Event).target.value\n : event;\n","import { InternalFieldName } from '../types';\n\nimport getNodeParentName from './getNodeParentName';\n\nexport default (names: Set, name: InternalFieldName) =>\n names.has(getNodeParentName(name));\n","export default (name: string) =>\n name.substring(0, name.search(/\\.\\d+(\\.|$)/)) || name;\n","export default (value: TValue[]) =>\n Array.isArray(value) ? value.filter(Boolean) : [];\n","export default (val: unknown): val is undefined => val === undefined;\n","import compact from './compact';\nimport isNullOrUndefined from './isNullOrUndefined';\nimport isObject from './isObject';\nimport isUndefined from './isUndefined';\n\nexport default (obj: T, path: string, defaultValue?: unknown): any => {\n if (!path || !isObject(obj)) {\n return defaultValue;\n }\n\n const result = compact(path.split(/[,[\\].]+?/)).reduce(\n (result, key) =>\n isNullOrUndefined(result) ? result : result[key as keyof {}],\n obj,\n );\n\n return isUndefined(result) || result === obj\n ? isUndefined(obj[path as keyof T])\n ? defaultValue\n : obj[path as keyof T]\n : result;\n};\n","import { ValidationMode } from './types';\n\nexport const EVENTS = {\n BLUR: 'blur',\n FOCUS_OUT: 'focusout',\n CHANGE: 'change',\n};\n\nexport const VALIDATION_MODE: ValidationMode = {\n onBlur: 'onBlur',\n onChange: 'onChange',\n onSubmit: 'onSubmit',\n onTouched: 'onTouched',\n all: 'all',\n};\n\nexport const INPUT_VALIDATION_RULES = {\n max: 'max',\n min: 'min',\n maxLength: 'maxLength',\n minLength: 'minLength',\n pattern: 'pattern',\n required: 'required',\n validate: 'validate',\n};\n","import React from 'react';\n\nimport { FieldValues, FormProviderProps, UseFormReturn } from './types';\n\nconst HookFormContext = React.createContext(null);\n\n/**\n * This custom hook allows you to access the form context. useFormContext is intended to be used in deeply nested structures, where it would become inconvenient to pass the context as a prop. To be used with {@link FormProvider}.\n *\n * @remarks\n * [API](https://react-hook-form.com/api/useformcontext) • [Demo](https://codesandbox.io/s/react-hook-form-v7-form-context-ytudi)\n *\n * @returns return all useForm methods\n *\n * @example\n * ```tsx\n * function App() {\n * const methods = useForm();\n * const onSubmit = data => console.log(data);\n *\n * return (\n * \n *
\n * \n * \n * \n *
\n * );\n * }\n *\n * function NestedInput() {\n * const { register } = useFormContext(); // retrieve all hook methods\n * return ;\n * }\n * ```\n */\nexport const useFormContext = <\n TFieldValues extends FieldValues,\n>(): UseFormReturn =>\n React.useContext(HookFormContext) as unknown as UseFormReturn;\n\n/**\n * A provider component that propagates the `useForm` methods to all children components via [React Context](https://reactjs.org/docs/context.html) API. To be used with {@link useFormContext}.\n *\n * @remarks\n * [API](https://react-hook-form.com/api/useformcontext) • [Demo](https://codesandbox.io/s/react-hook-form-v7-form-context-ytudi)\n *\n * @param props - all useFrom methods\n *\n * @example\n * ```tsx\n * function App() {\n * const methods = useForm();\n * const onSubmit = data => console.log(data);\n *\n * return (\n * \n *
\n * \n * \n * \n *
\n * );\n * }\n *\n * function NestedInput() {\n * const { register } = useFormContext(); // retrieve all hook methods\n * return ;\n * }\n * ```\n */\nexport const FormProvider = (\n props: FormProviderProps,\n) => {\n const { children, ...data } = props;\n return (\n \n {children}\n \n );\n};\n","import { VALIDATION_MODE } from '../constants';\nimport { Control, FieldValues, FormState, ReadFormState } from '../types';\n\nexport default (\n formState: FormState,\n control: Control,\n localProxyFormState?: ReadFormState,\n isRoot = true,\n) => {\n const result = {\n defaultValues: control._defaultValues,\n } as typeof formState;\n\n for (const key in formState) {\n Object.defineProperty(result, key, {\n get: () => {\n const _key = key as keyof FormState & keyof ReadFormState;\n\n if (control._proxyFormState[_key] !== VALIDATION_MODE.all) {\n control._proxyFormState[_key] = !isRoot || VALIDATION_MODE.all;\n }\n\n localProxyFormState && (localProxyFormState[_key] = true);\n return formState[_key];\n },\n });\n }\n\n return result;\n};\n","import { EmptyObject } from '../types';\n\nimport isObject from './isObject';\n\nexport default (value: unknown): value is EmptyObject =>\n isObject(value) && !Object.keys(value).length;\n","import { VALIDATION_MODE } from '../constants';\nimport {\n Control,\n FieldValues,\n FormState,\n InternalFieldName,\n ReadFormState,\n} from '../types';\nimport isEmptyObject from '../utils/isEmptyObject';\n\nexport default (\n formStateData: Partial> & { name?: InternalFieldName },\n _proxyFormState: K,\n updateFormState: Control['_updateFormState'],\n isRoot?: boolean,\n) => {\n updateFormState(formStateData);\n const { name, ...formState } = formStateData;\n\n return (\n isEmptyObject(formState) ||\n Object.keys(formState).length >= Object.keys(_proxyFormState).length ||\n Object.keys(formState).find(\n (key) =>\n _proxyFormState[key as keyof ReadFormState] ===\n (!isRoot || VALIDATION_MODE.all),\n )\n );\n};\n","export default (value: T) => (Array.isArray(value) ? value : [value]);\n","import convertToArrayPayload from '../utils/convertToArrayPayload';\n\nexport default (\n name?: T,\n signalName?: string,\n exact?: boolean,\n) =>\n exact && signalName\n ? name === signalName\n : !name ||\n !signalName ||\n name === signalName ||\n convertToArrayPayload(name).some(\n (currentName) =>\n currentName &&\n (currentName.startsWith(signalName) ||\n signalName.startsWith(currentName)),\n );\n","import React from 'react';\n\nimport { Subject } from './utils/createSubject';\n\ntype Props = {\n disabled?: boolean;\n subject: Subject;\n next: (value: T) => void;\n};\n\nexport function useSubscribe(props: Props) {\n const _props = React.useRef(props);\n _props.current = props;\n\n React.useEffect(() => {\n const subscription =\n !props.disabled &&\n _props.current.subject.subscribe({\n next: _props.current.next,\n });\n\n return () => {\n subscription && subscription.unsubscribe();\n };\n }, [props.disabled]);\n}\n","export default (value: unknown): value is string => typeof value === 'string';\n","import { DeepPartial, FieldValues, Names } from '../types';\nimport get from '../utils/get';\nimport isString from '../utils/isString';\n\nexport default (\n names: string | string[] | undefined,\n _names: Names,\n formValues?: FieldValues,\n isGlobal?: boolean,\n defaultValue?: DeepPartial | unknown,\n) => {\n if (isString(names)) {\n isGlobal && _names.watch.add(names);\n return get(formValues, names, defaultValue);\n }\n\n if (Array.isArray(names)) {\n return names.map(\n (fieldName) => (\n isGlobal && _names.watch.add(fieldName), get(formValues, fieldName)\n ),\n );\n }\n\n isGlobal && (_names.watchAll = true);\n\n return formValues;\n};\n","export default typeof window !== 'undefined' &&\n typeof window.HTMLElement !== 'undefined' &&\n typeof document !== 'undefined';\n","import isObject from './isObject';\nimport isPlainObject from './isPlainObject';\nimport isWeb from './isWeb';\n\nexport default function cloneObject(data: T): T {\n let copy: any;\n const isArray = Array.isArray(data);\n\n if (data instanceof Date) {\n copy = new Date(data);\n } else if (data instanceof Set) {\n copy = new Set(data);\n } else if (\n !(isWeb && (data instanceof Blob || data instanceof FileList)) &&\n (isArray || isObject(data))\n ) {\n copy = isArray ? [] : {};\n\n if (!Array.isArray(data) && !isPlainObject(data)) {\n copy = data;\n } else {\n for (const key in data) {\n copy[key] = cloneObject(data[key]);\n }\n }\n } else {\n return data;\n }\n\n return copy;\n}\n","import isObject from './isObject';\n\nexport default (tempObject: object) => {\n const prototypeCopy =\n tempObject.constructor && tempObject.constructor.prototype;\n\n return (\n isObject(prototypeCopy) && prototypeCopy.hasOwnProperty('isPrototypeOf')\n );\n};\n","import React from 'react';\n\nimport getEventValue from './logic/getEventValue';\nimport isNameInFieldArray from './logic/isNameInFieldArray';\nimport get from './utils/get';\nimport { EVENTS } from './constants';\nimport {\n ControllerFieldState,\n Field,\n FieldPath,\n FieldPathValue,\n FieldValues,\n InternalFieldName,\n UseControllerProps,\n UseControllerReturn,\n} from './types';\nimport { useFormContext } from './useFormContext';\nimport { useFormState } from './useFormState';\nimport { useWatch } from './useWatch';\n\n/**\n * Custom hook to work with controlled component, this function provide you with both form and field level state. Re-render is isolated at the hook level.\n *\n * @remarks\n * [API](https://react-hook-form.com/api/usecontroller) • [Demo](https://codesandbox.io/s/usecontroller-0o8px)\n *\n * @param props - the path name to the form field value, and validation rules.\n *\n * @returns field properties, field and form state. {@link UseControllerReturn}\n *\n * @example\n * ```tsx\n * function Input(props) {\n * const { field, fieldState, formState } = useController(props);\n * return (\n *
\n * \n *

{fieldState.isTouched && \"Touched\"}

\n *

{formState.isSubmitted ? \"submitted\" : \"\"}

\n *
\n * );\n * }\n * ```\n */\nexport function useController<\n TFieldValues extends FieldValues = FieldValues,\n TName extends FieldPath = FieldPath,\n>(\n props: UseControllerProps,\n): UseControllerReturn {\n const methods = useFormContext();\n const { name, control = methods.control, shouldUnregister } = props;\n const isArrayField = isNameInFieldArray(control._names.array, name);\n const value = useWatch({\n control,\n name,\n defaultValue: get(\n control._formValues,\n name,\n get(control._defaultValues, name, props.defaultValue),\n ),\n exact: true,\n }) as FieldPathValue;\n const formState = useFormState({\n control,\n name,\n });\n\n const _registerProps = React.useRef(\n control.register(name, {\n ...props.rules,\n value,\n }),\n );\n\n React.useEffect(() => {\n const updateMounted = (name: InternalFieldName, value: boolean) => {\n const field: Field = get(control._fields, name);\n\n if (field) {\n field._f.mount = value;\n }\n };\n\n updateMounted(name, true);\n\n return () => {\n const _shouldUnregisterField =\n control._options.shouldUnregister || shouldUnregister;\n\n (\n isArrayField\n ? _shouldUnregisterField && !control._stateFlags.action\n : _shouldUnregisterField\n )\n ? control.unregister(name)\n : updateMounted(name, false);\n };\n }, [name, control, isArrayField, shouldUnregister]);\n\n return {\n field: {\n name,\n value,\n onChange: React.useCallback(\n (event) =>\n _registerProps.current.onChange({\n target: {\n value: getEventValue(event),\n name: name as InternalFieldName,\n },\n type: EVENTS.CHANGE,\n }),\n [name],\n ),\n onBlur: React.useCallback(\n () =>\n _registerProps.current.onBlur({\n target: {\n value: get(control._formValues, name),\n name: name as InternalFieldName,\n },\n type: EVENTS.BLUR,\n }),\n [name, control],\n ),\n ref: (elm) => {\n const field = get(control._fields, name);\n\n if (field && elm) {\n field._f.ref = {\n focus: () => elm.focus(),\n select: () => elm.select(),\n setCustomValidity: (message: string) =>\n elm.setCustomValidity(message),\n reportValidity: () => elm.reportValidity(),\n };\n }\n },\n },\n formState,\n fieldState: Object.defineProperties(\n {},\n {\n invalid: {\n enumerable: true,\n get: () => !!get(formState.errors, name),\n },\n isDirty: {\n enumerable: true,\n get: () => !!get(formState.dirtyFields, name),\n },\n isTouched: {\n enumerable: true,\n get: () => !!get(formState.touchedFields, name),\n },\n error: {\n enumerable: true,\n get: () => get(formState.errors, name),\n },\n },\n ) as ControllerFieldState,\n };\n}\n","import React from 'react';\n\nimport generateWatchOutput from './logic/generateWatchOutput';\nimport shouldSubscribeByName from './logic/shouldSubscribeByName';\nimport cloneObject from './utils/cloneObject';\nimport {\n Control,\n DeepPartialSkipArrayKey,\n FieldPath,\n FieldPathValue,\n FieldPathValues,\n FieldValues,\n InternalFieldName,\n UseWatchProps,\n} from './types';\nimport { useFormContext } from './useFormContext';\nimport { useSubscribe } from './useSubscribe';\n\n/**\n * Subscribe to the entire form values change and re-render at the hook level.\n *\n * @remarks\n *\n * [API](https://react-hook-form.com/api/usewatch) • [Demo](https://codesandbox.io/s/react-hook-form-v7-ts-usewatch-h9i5e)\n *\n * @param props - defaultValue, disable subscription and match exact name.\n *\n * @example\n * ```tsx\n * const { watch } = useForm();\n * const values = useWatch({\n * control,\n * defaultValue: {\n * name: \"data\"\n * },\n * exact: false,\n * })\n * ```\n */\nexport function useWatch<\n TFieldValues extends FieldValues = FieldValues,\n>(props: {\n defaultValue?: DeepPartialSkipArrayKey;\n control?: Control;\n disabled?: boolean;\n exact?: boolean;\n}): DeepPartialSkipArrayKey;\n/**\n * Custom hook to subscribe to field change and isolate re-rendering at the component level.\n *\n * @remarks\n *\n * [API](https://react-hook-form.com/api/usewatch) • [Demo](https://codesandbox.io/s/react-hook-form-v7-ts-usewatch-h9i5e)\n *\n * @param props - defaultValue, disable subscription and match exact name.\n *\n * @example\n * ```tsx\n * const { watch } = useForm();\n * const values = useWatch({\n * control,\n * name: \"fieldA\",\n * defaultValue: \"default value\",\n * exact: false,\n * })\n * ```\n */\nexport function useWatch<\n TFieldValues extends FieldValues = FieldValues,\n TFieldName extends FieldPath = FieldPath,\n>(props: {\n name: TFieldName;\n defaultValue?: FieldPathValue;\n control?: Control;\n disabled?: boolean;\n exact?: boolean;\n}): FieldPathValue;\n/**\n * Custom hook to subscribe to field change and isolate re-rendering at the component level.\n *\n * @remarks\n *\n * [API](https://react-hook-form.com/api/usewatch) • [Demo](https://codesandbox.io/s/react-hook-form-v7-ts-usewatch-h9i5e)\n *\n * @param props - defaultValue, disable subscription and match exact name.\n *\n * @example\n * ```tsx\n * const { watch } = useForm();\n * const values = useWatch({\n * control,\n * name: [\"fieldA\", \"fieldB\"],\n * defaultValue: {\n * fieldA: \"data\",\n * fieldB: \"data\"\n * },\n * exact: false,\n * })\n * ```\n */\nexport function useWatch<\n TFieldValues extends FieldValues = FieldValues,\n TFieldNames extends readonly FieldPath[] = readonly FieldPath[],\n>(props: {\n name: readonly [...TFieldNames];\n defaultValue?: DeepPartialSkipArrayKey;\n control?: Control;\n disabled?: boolean;\n exact?: boolean;\n}): FieldPathValues;\n/**\n * Custom hook to subscribe to field change and isolate re-rendering at the component level.\n *\n * @remarks\n *\n * [API](https://react-hook-form.com/api/usewatch) • [Demo](https://codesandbox.io/s/react-hook-form-v7-ts-usewatch-h9i5e)\n *\n * @example\n * ```tsx\n * // can skip passing down the control into useWatch if the form is wrapped with the FormProvider\n * const values = useWatch()\n * ```\n */\nexport function useWatch<\n TFieldValues extends FieldValues = FieldValues,\n>(): DeepPartialSkipArrayKey;\n/**\n * Custom hook to subscribe to field change and isolate re-rendering at the component level.\n *\n * @remarks\n *\n * [API](https://react-hook-form.com/api/usewatch) • [Demo](https://codesandbox.io/s/react-hook-form-v7-ts-usewatch-h9i5e)\n *\n * @example\n * ```tsx\n * const { watch } = useForm();\n * const values = useWatch({\n * name: \"fieldName\"\n * control,\n * })\n * ```\n */\nexport function useWatch(\n props?: UseWatchProps,\n) {\n const methods = useFormContext();\n const {\n control = methods.control,\n name,\n defaultValue,\n disabled,\n exact,\n } = props || {};\n const _name = React.useRef(name);\n\n _name.current = name;\n\n useSubscribe({\n disabled,\n subject: control._subjects.watch,\n next: (formState: { name?: InternalFieldName; values?: FieldValues }) => {\n if (\n shouldSubscribeByName(\n _name.current as InternalFieldName,\n formState.name,\n exact,\n )\n ) {\n updateValue(\n cloneObject(\n generateWatchOutput(\n _name.current as InternalFieldName | InternalFieldName[],\n control._names,\n formState.values || control._formValues,\n false,\n defaultValue,\n ),\n ),\n );\n }\n },\n });\n\n const [value, updateValue] = React.useState(\n control._getWatch(\n name as InternalFieldName,\n defaultValue as DeepPartialSkipArrayKey,\n ),\n );\n\n React.useEffect(() => control._removeUnmounted());\n\n return value;\n}\n","import React from 'react';\n\nimport getProxyFormState from './logic/getProxyFormState';\nimport shouldRenderFormState from './logic/shouldRenderFormState';\nimport shouldSubscribeByName from './logic/shouldSubscribeByName';\nimport {\n FieldValues,\n FormState,\n InternalFieldName,\n UseFormStateProps,\n UseFormStateReturn,\n} from './types';\nimport { useFormContext } from './useFormContext';\nimport { useSubscribe } from './useSubscribe';\n\n/**\n * This custom hook allows you to subscribe to each form state, and isolate the re-render at the custom hook level. It has its scope in terms of form state subscription, so it would not affect other useFormState and useForm. Using this hook can reduce the re-render impact on large and complex form application.\n *\n * @remarks\n * [API](https://react-hook-form.com/api/useformstate) • [Demo](https://codesandbox.io/s/useformstate-75xly)\n *\n * @param props - include options on specify fields to subscribe. {@link UseFormStateReturn}\n *\n * @example\n * ```tsx\n * function App() {\n * const { register, handleSubmit, control } = useForm({\n * defaultValues: {\n * firstName: \"firstName\"\n * }});\n * const { dirtyFields } = useFormState({\n * control\n * });\n * const onSubmit = (data) => console.log(data);\n *\n * return (\n *
\n * \n * {dirtyFields.firstName &&

Field is dirty.

}\n * \n *
\n * );\n * }\n * ```\n */\nfunction useFormState(\n props?: UseFormStateProps,\n): UseFormStateReturn {\n const methods = useFormContext();\n const { control = methods.control, disabled, name, exact } = props || {};\n const [formState, updateFormState] = React.useState(control._formState);\n const _mounted = React.useRef(true);\n const _localProxyFormState = React.useRef({\n isDirty: false,\n isLoading: false,\n dirtyFields: false,\n touchedFields: false,\n isValidating: false,\n isValid: false,\n errors: false,\n });\n const _name = React.useRef(name);\n\n _name.current = name;\n\n useSubscribe({\n disabled,\n next: (\n value: Partial> & { name?: InternalFieldName },\n ) =>\n _mounted.current &&\n shouldSubscribeByName(\n _name.current as InternalFieldName,\n value.name,\n exact,\n ) &&\n shouldRenderFormState(\n value,\n _localProxyFormState.current,\n control._updateFormState,\n ) &&\n updateFormState({\n ...control._formState,\n ...value,\n }),\n subject: control._subjects.state,\n });\n\n React.useEffect(() => {\n _mounted.current = true;\n const isDirty = control._proxyFormState.isDirty && control._getDirty();\n\n if (isDirty !== control._formState.isDirty) {\n control._subjects.state.next({\n isDirty,\n });\n }\n\n _localProxyFormState.current.isValid && control._updateValid(true);\n\n return () => {\n _mounted.current = false;\n };\n }, [control]);\n\n return getProxyFormState(\n formState,\n control,\n _localProxyFormState.current,\n false,\n );\n}\n\nexport { useFormState };\n","import { ControllerProps, FieldPath, FieldValues } from './types';\nimport { useController } from './useController';\n\n/**\n * Component based on `useController` hook to work with controlled component.\n *\n * @remarks\n * [API](https://react-hook-form.com/api/usecontroller/controller) • [Demo](https://codesandbox.io/s/react-hook-form-v6-controller-ts-jwyzw) • [Video](https://www.youtube.com/watch?v=N2UNk_UCVyA)\n *\n * @param props - the path name to the form field value, and validation rules.\n *\n * @returns provide field handler functions, field and form state.\n *\n * @example\n * ```tsx\n * function App() {\n * const { control } = useForm({\n * defaultValues: {\n * test: \"\"\n * }\n * });\n *\n * return (\n *
\n * (\n * <>\n * \n *

{formState.isSubmitted ? \"submitted\" : \"\"}

\n *

{fieldState.isTouched ? \"touched\" : \"\"}

\n * \n * )}\n * />\n * \n * );\n * }\n * ```\n */\nconst Controller = <\n TFieldValues extends FieldValues = FieldValues,\n TName extends FieldPath = FieldPath,\n>(\n props: ControllerProps,\n) => props.render(useController(props));\n\nexport { Controller };\n","import {\n InternalFieldErrors,\n InternalFieldName,\n ValidateResult,\n} from '../types';\n\nexport default (\n name: InternalFieldName,\n validateAllFieldCriteria: boolean,\n errors: InternalFieldErrors,\n type: string,\n message: ValidateResult,\n) =>\n validateAllFieldCriteria\n ? {\n ...errors[name],\n types: {\n ...(errors[name] && errors[name]!.types ? errors[name]!.types : {}),\n [type]: message || true,\n },\n }\n : {};\n","export default (value: string) => /^\\w*$/.test(value);\n","import compact from './compact';\n\nexport default (input: string): string[] =>\n compact(input.replace(/[\"|']|\\]/g, '').split(/\\.|\\[/));\n","import { FieldValues } from '../types';\n\nimport isKey from './isKey';\nimport isObject from './isObject';\nimport stringToPath from './stringToPath';\n\nexport default function set(\n object: FieldValues,\n path: string,\n value?: unknown,\n) {\n let index = -1;\n const tempPath = isKey(path) ? [path] : stringToPath(path);\n const length = tempPath.length;\n const lastIndex = length - 1;\n\n while (++index < length) {\n const key = tempPath[index];\n let newValue = value;\n\n if (index !== lastIndex) {\n const objValue = object[key];\n newValue =\n isObject(objValue) || Array.isArray(objValue)\n ? objValue\n : !isNaN(+tempPath[index + 1])\n ? []\n : {};\n }\n object[key] = newValue;\n object = object[key];\n }\n return object;\n}\n","import { FieldRefs, InternalFieldName } from '../types';\nimport { get } from '../utils';\nimport isObject from '../utils/isObject';\n\nconst focusFieldBy = (\n fields: FieldRefs,\n callback: (name?: string) => boolean,\n fieldsNames?: Set | InternalFieldName[],\n) => {\n for (const key of fieldsNames || Object.keys(fields)) {\n const field = get(fields, key);\n\n if (field) {\n const { _f, ...currentField } = field;\n\n if (_f && callback(_f.name)) {\n if (_f.ref.focus) {\n _f.ref.focus();\n break;\n } else if (_f.refs && _f.refs[0].focus) {\n _f.refs[0].focus();\n break;\n }\n } else if (isObject(currentField)) {\n focusFieldBy(currentField, callback);\n }\n }\n }\n};\n\nexport default focusFieldBy;\n","export default () => {\n const d =\n typeof performance === 'undefined' ? Date.now() : performance.now() * 1000;\n\n return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, (c) => {\n const r = (Math.random() * 16 + d) % 16 | 0;\n\n return (c == 'x' ? r : (r & 0x3) | 0x8).toString(16);\n });\n};\n","import { FieldArrayMethodProps, InternalFieldName } from '../types';\nimport isUndefined from '../utils/isUndefined';\n\nexport default (\n name: InternalFieldName,\n index: number,\n options: FieldArrayMethodProps = {},\n): string =>\n options.shouldFocus || isUndefined(options.shouldFocus)\n ? options.focusName ||\n `${name}.${isUndefined(options.focusIndex) ? index : options.focusIndex}.`\n : '';\n","import { VALIDATION_MODE } from '../constants';\nimport { Mode } from '../types';\n\nexport default (\n mode?: Mode,\n): {\n isOnSubmit: boolean;\n isOnBlur: boolean;\n isOnChange: boolean;\n isOnAll: boolean;\n isOnTouch: boolean;\n} => ({\n isOnSubmit: !mode || mode === VALIDATION_MODE.onSubmit,\n isOnBlur: mode === VALIDATION_MODE.onBlur,\n isOnChange: mode === VALIDATION_MODE.onChange,\n isOnAll: mode === VALIDATION_MODE.all,\n isOnTouch: mode === VALIDATION_MODE.onTouched,\n});\n","import { InternalFieldName, Names } from '../types';\n\nexport default (\n name: InternalFieldName,\n _names: Names,\n isBlurEvent?: boolean,\n) =>\n !isBlurEvent &&\n (_names.watchAll ||\n _names.watch.has(name) ||\n [..._names.watch].some(\n (watchName) =>\n name.startsWith(watchName) &&\n /^\\.\\w+/.test(name.slice(watchName.length)),\n ));\n","import {\n FieldError,\n FieldErrors,\n FieldValues,\n InternalFieldName,\n} from '../types';\nimport compact from '../utils/compact';\nimport get from '../utils/get';\nimport set from '../utils/set';\n\nexport default (\n errors: FieldErrors,\n error: Partial>,\n name: InternalFieldName,\n): FieldErrors => {\n const fieldArrayErrors = compact(get(errors, name));\n set(fieldArrayErrors, 'root', error[name]);\n set(errors, name, fieldArrayErrors);\n return errors;\n};\n","export default (value: unknown): value is boolean => typeof value === 'boolean';\n","import { FieldElement } from '../types';\n\nexport default (element: FieldElement): element is HTMLInputElement =>\n element.type === 'file';\n","export default (value: unknown): value is Function =>\n typeof value === 'function';\n","import isWeb from './isWeb';\n\nexport default (value: unknown): value is HTMLElement => {\n if (!isWeb) {\n return false;\n }\n\n const owner = value ? ((value as HTMLElement).ownerDocument as Document) : 0;\n return (\n value instanceof\n (owner && owner.defaultView ? owner.defaultView.HTMLElement : HTMLElement)\n );\n};\n","import React from 'react';\n\nimport { Message } from '../types';\nimport isString from '../utils/isString';\n\nexport default (value: unknown): value is Message =>\n isString(value) || React.isValidElement(value as JSX.Element);\n","import { FieldElement } from '../types';\n\nexport default (element: FieldElement): element is HTMLInputElement =>\n element.type === 'radio';\n","export default (value: unknown): value is RegExp => value instanceof RegExp;\n","import isUndefined from '../utils/isUndefined';\n\ntype CheckboxFieldResult = {\n isValid: boolean;\n value: string | string[] | boolean | undefined;\n};\n\nconst defaultResult: CheckboxFieldResult = {\n value: false,\n isValid: false,\n};\n\nconst validResult = { value: true, isValid: true };\n\nexport default (options?: HTMLInputElement[]): CheckboxFieldResult => {\n if (Array.isArray(options)) {\n if (options.length > 1) {\n const values = options\n .filter((option) => option && option.checked && !option.disabled)\n .map((option) => option.value);\n return { value: values, isValid: !!values.length };\n }\n\n return options[0].checked && !options[0].disabled\n ? // @ts-expect-error expected to work in the browser\n options[0].attributes && !isUndefined(options[0].attributes.value)\n ? isUndefined(options[0].value) || options[0].value === ''\n ? validResult\n : { value: options[0].value, isValid: true }\n : validResult\n : defaultResult;\n }\n\n return defaultResult;\n};\n","type RadioFieldResult = {\n isValid: boolean;\n value: number | string | null;\n};\n\nconst defaultReturn: RadioFieldResult = {\n isValid: false,\n value: null,\n};\n\nexport default (options?: HTMLInputElement[]): RadioFieldResult =>\n Array.isArray(options)\n ? options.reduce(\n (previous, option): RadioFieldResult =>\n option && option.checked && !option.disabled\n ? {\n isValid: true,\n value: option.value,\n }\n : previous,\n defaultReturn,\n )\n : defaultReturn;\n","import { FieldError, Ref, ValidateResult } from '../types';\nimport isBoolean from '../utils/isBoolean';\nimport isMessage from '../utils/isMessage';\n\nexport default function getValidateError(\n result: ValidateResult,\n ref: Ref,\n type = 'validate',\n): FieldError | void {\n if (\n isMessage(result) ||\n (Array.isArray(result) && result.every(isMessage)) ||\n (isBoolean(result) && !result)\n ) {\n return {\n type,\n message: isMessage(result) ? result : '',\n ref,\n };\n }\n}\n","import { ValidationRule } from '../types';\nimport isObject from '../utils/isObject';\nimport isRegex from '../utils/isRegex';\n\nexport default (validationData?: ValidationRule) =>\n isObject(validationData) && !isRegex(validationData)\n ? validationData\n : {\n value: validationData,\n message: '',\n };\n","import { INPUT_VALIDATION_RULES } from '../constants';\nimport {\n Field,\n FieldError,\n FieldValues,\n InternalFieldErrors,\n Message,\n NativeFieldValue,\n} from '../types';\nimport get from '../utils/get';\nimport isBoolean from '../utils/isBoolean';\nimport isCheckBoxInput from '../utils/isCheckBoxInput';\nimport isEmptyObject from '../utils/isEmptyObject';\nimport isFileInput from '../utils/isFileInput';\nimport isFunction from '../utils/isFunction';\nimport isHTMLElement from '../utils/isHTMLElement';\nimport isMessage from '../utils/isMessage';\nimport isNullOrUndefined from '../utils/isNullOrUndefined';\nimport isObject from '../utils/isObject';\nimport isRadioInput from '../utils/isRadioInput';\nimport isRegex from '../utils/isRegex';\nimport isString from '../utils/isString';\nimport isUndefined from '../utils/isUndefined';\n\nimport appendErrors from './appendErrors';\nimport getCheckboxValue from './getCheckboxValue';\nimport getRadioValue from './getRadioValue';\nimport getValidateError from './getValidateError';\nimport getValueAndMessage from './getValueAndMessage';\n\nexport default async (\n field: Field,\n formValues: T,\n validateAllFieldCriteria: boolean,\n shouldUseNativeValidation?: boolean,\n isFieldArray?: boolean,\n): Promise => {\n const {\n ref,\n refs,\n required,\n maxLength,\n minLength,\n min,\n max,\n pattern,\n validate,\n name,\n valueAsNumber,\n mount,\n disabled,\n } = field._f;\n const inputValue: NativeFieldValue = get(formValues, name);\n if (!mount || disabled) {\n return {};\n }\n const inputRef: HTMLInputElement = refs ? refs[0] : (ref as HTMLInputElement);\n const setCustomValidity = (message?: string | boolean) => {\n if (shouldUseNativeValidation && inputRef.reportValidity) {\n inputRef.setCustomValidity(isBoolean(message) ? '' : message || '');\n inputRef.reportValidity();\n }\n };\n const error: InternalFieldErrors = {};\n const isRadio = isRadioInput(ref);\n const isCheckBox = isCheckBoxInput(ref);\n const isRadioOrCheckbox = isRadio || isCheckBox;\n const isEmpty =\n ((valueAsNumber || isFileInput(ref)) &&\n isUndefined(ref.value) &&\n isUndefined(inputValue)) ||\n (isHTMLElement(ref) && ref.value === '') ||\n inputValue === '' ||\n (Array.isArray(inputValue) && !inputValue.length);\n const appendErrorsCurry = appendErrors.bind(\n null,\n name,\n validateAllFieldCriteria,\n error,\n );\n const getMinMaxMessage = (\n exceedMax: boolean,\n maxLengthMessage: Message,\n minLengthMessage: Message,\n maxType = INPUT_VALIDATION_RULES.maxLength,\n minType = INPUT_VALIDATION_RULES.minLength,\n ) => {\n const message = exceedMax ? maxLengthMessage : minLengthMessage;\n error[name] = {\n type: exceedMax ? maxType : minType,\n message,\n ref,\n ...appendErrorsCurry(exceedMax ? maxType : minType, message),\n };\n };\n\n if (\n isFieldArray\n ? !Array.isArray(inputValue) || !inputValue.length\n : required &&\n ((!isRadioOrCheckbox && (isEmpty || isNullOrUndefined(inputValue))) ||\n (isBoolean(inputValue) && !inputValue) ||\n (isCheckBox && !getCheckboxValue(refs).isValid) ||\n (isRadio && !getRadioValue(refs).isValid))\n ) {\n const { value, message } = isMessage(required)\n ? { value: !!required, message: required }\n : getValueAndMessage(required);\n\n if (value) {\n error[name] = {\n type: INPUT_VALIDATION_RULES.required,\n message,\n ref: inputRef,\n ...appendErrorsCurry(INPUT_VALIDATION_RULES.required, message),\n };\n if (!validateAllFieldCriteria) {\n setCustomValidity(message);\n return error;\n }\n }\n }\n\n if (!isEmpty && (!isNullOrUndefined(min) || !isNullOrUndefined(max))) {\n let exceedMax;\n let exceedMin;\n const maxOutput = getValueAndMessage(max);\n const minOutput = getValueAndMessage(min);\n\n if (!isNullOrUndefined(inputValue) && !isNaN(inputValue as number)) {\n const valueNumber =\n (ref as HTMLInputElement).valueAsNumber ||\n (inputValue ? +inputValue : inputValue);\n if (!isNullOrUndefined(maxOutput.value)) {\n exceedMax = valueNumber > maxOutput.value;\n }\n if (!isNullOrUndefined(minOutput.value)) {\n exceedMin = valueNumber < minOutput.value;\n }\n } else {\n const valueDate =\n (ref as HTMLInputElement).valueAsDate || new Date(inputValue as string);\n const convertTimeToDate = (time: unknown) =>\n new Date(new Date().toDateString() + ' ' + time);\n const isTime = ref.type == 'time';\n const isWeek = ref.type == 'week';\n\n if (isString(maxOutput.value) && inputValue) {\n exceedMax = isTime\n ? convertTimeToDate(inputValue) > convertTimeToDate(maxOutput.value)\n : isWeek\n ? inputValue > maxOutput.value\n : valueDate > new Date(maxOutput.value);\n }\n\n if (isString(minOutput.value) && inputValue) {\n exceedMin = isTime\n ? convertTimeToDate(inputValue) < convertTimeToDate(minOutput.value)\n : isWeek\n ? inputValue < minOutput.value\n : valueDate < new Date(minOutput.value);\n }\n }\n\n if (exceedMax || exceedMin) {\n getMinMaxMessage(\n !!exceedMax,\n maxOutput.message,\n minOutput.message,\n INPUT_VALIDATION_RULES.max,\n INPUT_VALIDATION_RULES.min,\n );\n if (!validateAllFieldCriteria) {\n setCustomValidity(error[name]!.message);\n return error;\n }\n }\n }\n\n if (\n (maxLength || minLength) &&\n !isEmpty &&\n (isString(inputValue) || (isFieldArray && Array.isArray(inputValue)))\n ) {\n const maxLengthOutput = getValueAndMessage(maxLength);\n const minLengthOutput = getValueAndMessage(minLength);\n const exceedMax =\n !isNullOrUndefined(maxLengthOutput.value) &&\n inputValue.length > maxLengthOutput.value;\n const exceedMin =\n !isNullOrUndefined(minLengthOutput.value) &&\n inputValue.length < minLengthOutput.value;\n\n if (exceedMax || exceedMin) {\n getMinMaxMessage(\n exceedMax,\n maxLengthOutput.message,\n minLengthOutput.message,\n );\n if (!validateAllFieldCriteria) {\n setCustomValidity(error[name]!.message);\n return error;\n }\n }\n }\n\n if (pattern && !isEmpty && isString(inputValue)) {\n const { value: patternValue, message } = getValueAndMessage(pattern);\n\n if (isRegex(patternValue) && !inputValue.match(patternValue)) {\n error[name] = {\n type: INPUT_VALIDATION_RULES.pattern,\n message,\n ref,\n ...appendErrorsCurry(INPUT_VALIDATION_RULES.pattern, message),\n };\n if (!validateAllFieldCriteria) {\n setCustomValidity(message);\n return error;\n }\n }\n }\n\n if (validate) {\n if (isFunction(validate)) {\n const result = await validate(inputValue, formValues);\n const validateError = getValidateError(result, inputRef);\n\n if (validateError) {\n error[name] = {\n ...validateError,\n ...appendErrorsCurry(\n INPUT_VALIDATION_RULES.validate,\n validateError.message,\n ),\n };\n if (!validateAllFieldCriteria) {\n setCustomValidity(validateError.message);\n return error;\n }\n }\n } else if (isObject(validate)) {\n let validationResult = {} as FieldError;\n\n for (const key in validate) {\n if (!isEmptyObject(validationResult) && !validateAllFieldCriteria) {\n break;\n }\n\n const validateError = getValidateError(\n await validate[key](inputValue, formValues),\n inputRef,\n key,\n );\n\n if (validateError) {\n validationResult = {\n ...validateError,\n ...appendErrorsCurry(key, validateError.message),\n };\n\n setCustomValidity(validateError.message);\n\n if (validateAllFieldCriteria) {\n error[name] = validationResult;\n }\n }\n }\n\n if (!isEmptyObject(validationResult)) {\n error[name] = {\n ref: inputRef,\n ...validationResult,\n };\n if (!validateAllFieldCriteria) {\n return error;\n }\n }\n }\n }\n\n setCustomValidity(true);\n return error;\n};\n","import convertToArrayPayload from './convertToArrayPayload';\n\nexport default function append(data: T[], value: T | T[]): T[] {\n return [...data, ...convertToArrayPayload(value)];\n}\n","export default (value: T | T[]): undefined[] | undefined =>\n Array.isArray(value) ? value.map(() => undefined) : undefined;\n","import convertToArrayPayload from './convertToArrayPayload';\n\nexport default function insert(data: T[], index: number): (T | undefined)[];\nexport default function insert(\n data: T[],\n index: number,\n value: T | T[],\n): T[];\nexport default function insert(\n data: T[],\n index: number,\n value?: T | T[],\n): (T | undefined)[] {\n return [\n ...data.slice(0, index),\n ...convertToArrayPayload(value),\n ...data.slice(index),\n ];\n}\n","import isUndefined from './isUndefined';\n\nexport default (\n data: (T | undefined)[],\n from: number,\n to: number,\n): (T | undefined)[] => {\n if (!Array.isArray(data)) {\n return [];\n }\n\n if (isUndefined(data[to])) {\n data[to] = undefined;\n }\n data.splice(to, 0, data.splice(from, 1)[0]);\n\n return data;\n};\n","import convertToArrayPayload from './convertToArrayPayload';\n\nexport default function prepend(data: T[], value: T | T[]): T[] {\n return [...convertToArrayPayload(value), ...convertToArrayPayload(data)];\n}\n","import compact from './compact';\nimport convertToArrayPayload from './convertToArrayPayload';\nimport isUndefined from './isUndefined';\n\nfunction removeAtIndexes(data: T[], indexes: number[]): T[] {\n let i = 0;\n const temp = [...data];\n\n for (const index of indexes) {\n temp.splice(index - i, 1);\n i++;\n }\n\n return compact(temp).length ? temp : [];\n}\n\nexport default (data: T[], index?: number | number[]): T[] =>\n isUndefined(index)\n ? []\n : removeAtIndexes(\n data,\n (convertToArrayPayload(index) as number[]).sort((a, b) => a - b),\n );\n","export default (data: T[], indexA: number, indexB: number): void => {\n data[indexA] = [data[indexB], (data[indexB] = data[indexA])][0];\n};\n","import isEmptyObject from './isEmptyObject';\nimport isKey from './isKey';\nimport isObject from './isObject';\nimport isUndefined from './isUndefined';\nimport stringToPath from './stringToPath';\n\nfunction baseGet(object: any, updatePath: (string | number)[]) {\n const length = updatePath.slice(0, -1).length;\n let index = 0;\n\n while (index < length) {\n object = isUndefined(object) ? index++ : object[updatePath[index++]];\n }\n\n return object;\n}\n\nfunction isEmptyArray(obj: unknown[]) {\n for (const key in obj) {\n if (!isUndefined(obj[key])) {\n return false;\n }\n }\n return true;\n}\n\nexport default function unset(object: any, path: string | (string | number)[]) {\n const paths = Array.isArray(path)\n ? path\n : isKey(path)\n ? [path]\n : stringToPath(path);\n\n const childObject = paths.length === 1 ? object : baseGet(object, paths);\n\n const index = paths.length - 1;\n const key = paths[index];\n\n if (childObject) {\n delete childObject[key];\n }\n\n if (\n index !== 0 &&\n ((isObject(childObject) && isEmptyObject(childObject)) ||\n (Array.isArray(childObject) && isEmptyArray(childObject)))\n ) {\n unset(object, paths.slice(0, -1));\n }\n\n return object;\n}\n","export default (fieldValues: T[], index: number, value: T) => {\n fieldValues[index] = value;\n return fieldValues;\n};\n","import { Noop } from '../types';\n\nexport type Observer = {\n next: (value: T) => void;\n};\n\nexport type Subscription = {\n unsubscribe: Noop;\n};\n\nexport type Subject = {\n readonly observers: Observer[];\n subscribe: (value: Observer) => Subscription;\n unsubscribe: Noop;\n} & Observer;\n\nexport default function createSubject(): Subject {\n let _observers: Observer[] = [];\n\n const next = (value: T) => {\n for (const observer of _observers) {\n observer.next(value);\n }\n };\n\n const subscribe = (observer: Observer): Subscription => {\n _observers.push(observer);\n return {\n unsubscribe: () => {\n _observers = _observers.filter((o) => o !== observer);\n },\n };\n };\n\n const unsubscribe = () => {\n _observers = [];\n };\n\n return {\n get observers() {\n return _observers;\n },\n next,\n subscribe,\n unsubscribe,\n };\n}\n","import { Primitive } from '../types';\n\nimport isNullOrUndefined from './isNullOrUndefined';\nimport { isObjectType } from './isObject';\n\nexport default (value: unknown): value is Primitive =>\n isNullOrUndefined(value) || !isObjectType(value);\n","import isObject from '../utils/isObject';\n\nimport isDateObject from './isDateObject';\nimport isPrimitive from './isPrimitive';\n\nexport default function deepEqual(object1: any, object2: any) {\n if (isPrimitive(object1) || isPrimitive(object2)) {\n return object1 === object2;\n }\n\n if (isDateObject(object1) && isDateObject(object2)) {\n return object1.getTime() === object2.getTime();\n }\n\n const keys1 = Object.keys(object1);\n const keys2 = Object.keys(object2);\n\n if (keys1.length !== keys2.length) {\n return false;\n }\n\n for (const key of keys1) {\n const val1 = object1[key];\n\n if (!keys2.includes(key)) {\n return false;\n }\n\n if (key !== 'ref') {\n const val2 = object2[key];\n\n if (\n (isDateObject(val1) && isDateObject(val2)) ||\n (isObject(val1) && isObject(val2)) ||\n (Array.isArray(val1) && Array.isArray(val2))\n ? !deepEqual(val1, val2)\n : val1 !== val2\n ) {\n return false;\n }\n }\n }\n\n return true;\n}\n","import { FieldElement } from '../types';\n\nexport default (element: FieldElement): element is HTMLSelectElement =>\n element.type === `select-multiple`;\n","import { FieldElement } from '../types';\n\nimport isCheckBoxInput from './isCheckBoxInput';\nimport isRadioInput from './isRadioInput';\n\nexport default (ref: FieldElement): ref is HTMLInputElement =>\n isRadioInput(ref) || isCheckBoxInput(ref);\n","import { Ref } from '../types';\n\nimport isHTMLElement from './isHTMLElement';\n\nexport default (ref: Ref) => isHTMLElement(ref) && ref.isConnected;\n","import isFunction from './isFunction';\n\nexport default (data: T): boolean => {\n for (const key in data) {\n if (isFunction(data[key])) {\n return true;\n }\n }\n return false;\n};\n","import deepEqual from '../utils/deepEqual';\nimport isNullOrUndefined from '../utils/isNullOrUndefined';\nimport isObject from '../utils/isObject';\nimport isPrimitive from '../utils/isPrimitive';\nimport isUndefined from '../utils/isUndefined';\nimport objectHasFunction from '../utils/objectHasFunction';\n\nfunction markFieldsDirty(data: U, fields: Record = {}) {\n const isParentNodeArray = Array.isArray(data);\n\n if (isObject(data) || isParentNodeArray) {\n for (const key in data) {\n if (\n Array.isArray(data[key]) ||\n (isObject(data[key]) && !objectHasFunction(data[key]))\n ) {\n fields[key] = Array.isArray(data[key]) ? [] : {};\n markFieldsDirty(data[key], fields[key]);\n } else if (!isNullOrUndefined(data[key])) {\n fields[key] = true;\n }\n }\n }\n\n return fields;\n}\n\nfunction getDirtyFieldsFromDefaultValues(\n data: T,\n formValues: T,\n dirtyFieldsFromValues: any,\n) {\n const isParentNodeArray = Array.isArray(data);\n\n if (isObject(data) || isParentNodeArray) {\n for (const key in data) {\n if (\n Array.isArray(data[key]) ||\n (isObject(data[key]) && !objectHasFunction(data[key]))\n ) {\n if (\n isUndefined(formValues) ||\n isPrimitive(dirtyFieldsFromValues[key])\n ) {\n dirtyFieldsFromValues[key] = Array.isArray(data[key])\n ? markFieldsDirty(data[key], [])\n : { ...markFieldsDirty(data[key]) };\n } else {\n getDirtyFieldsFromDefaultValues(\n data[key],\n isNullOrUndefined(formValues) ? {} : formValues[key],\n dirtyFieldsFromValues[key],\n );\n }\n } else {\n deepEqual(data[key], formValues[key])\n ? delete dirtyFieldsFromValues[key]\n : (dirtyFieldsFromValues[key] = true);\n }\n }\n }\n\n return dirtyFieldsFromValues;\n}\n\nexport default (defaultValues: T, formValues: T) =>\n getDirtyFieldsFromDefaultValues(\n defaultValues,\n formValues,\n markFieldsDirty(formValues),\n );\n","import { Field, NativeFieldValue } from '../types';\nimport isString from '../utils/isString';\nimport isUndefined from '../utils/isUndefined';\n\nexport default (\n value: T,\n { valueAsNumber, valueAsDate, setValueAs }: Field['_f'],\n) =>\n isUndefined(value)\n ? value\n : valueAsNumber\n ? value === ''\n ? NaN\n : value\n ? +value\n : value\n : valueAsDate && isString(value)\n ? new Date(value)\n : setValueAs\n ? setValueAs(value)\n : value;\n","import { Field } from '../types';\nimport isCheckBox from '../utils/isCheckBoxInput';\nimport isFileInput from '../utils/isFileInput';\nimport isMultipleSelect from '../utils/isMultipleSelect';\nimport isRadioInput from '../utils/isRadioInput';\nimport isUndefined from '../utils/isUndefined';\n\nimport getCheckboxValue from './getCheckboxValue';\nimport getFieldValueAs from './getFieldValueAs';\nimport getRadioValue from './getRadioValue';\n\nexport default function getFieldValue(_f: Field['_f']) {\n const ref = _f.ref;\n\n if (_f.refs ? _f.refs.every((ref) => ref.disabled) : ref.disabled) {\n return;\n }\n\n if (isFileInput(ref)) {\n return ref.files;\n }\n\n if (isRadioInput(ref)) {\n return getRadioValue(_f.refs).value;\n }\n\n if (isMultipleSelect(ref)) {\n return [...ref.selectedOptions].map(({ value }) => value);\n }\n\n if (isCheckBox(ref)) {\n return getCheckboxValue(_f.refs).value;\n }\n\n return getFieldValueAs(isUndefined(ref.value) ? _f.ref.value : ref.value, _f);\n}\n","import {\n CriteriaMode,\n Field,\n FieldName,\n FieldRefs,\n FieldValues,\n InternalFieldName,\n} from '../types';\nimport { get } from '../utils';\nimport set from '../utils/set';\n\nexport default (\n fieldsNames: Set | InternalFieldName[],\n _fields: FieldRefs,\n criteriaMode?: CriteriaMode,\n shouldUseNativeValidation?: boolean | undefined,\n) => {\n const fields: Record = {};\n\n for (const name of fieldsNames) {\n const field: Field = get(_fields, name);\n\n field && set(fields, name, field._f);\n }\n\n return {\n criteriaMode,\n names: [...fieldsNames] as FieldName[],\n fields,\n shouldUseNativeValidation,\n };\n};\n","import {\n ValidationRule,\n ValidationValue,\n ValidationValueMessage,\n} from '../types';\nimport isObject from '../utils/isObject';\nimport isRegex from '../utils/isRegex';\nimport isUndefined from '../utils/isUndefined';\n\nexport default (\n rule?: ValidationRule | ValidationValueMessage,\n) =>\n isUndefined(rule)\n ? rule\n : isRegex(rule)\n ? rule.source\n : isObject(rule)\n ? isRegex(rule.value)\n ? rule.value.source\n : rule.value\n : rule;\n","import { Field } from '../types';\n\nexport default (options: Field['_f']) =>\n options.mount &&\n (options.required ||\n options.min ||\n options.max ||\n options.maxLength ||\n options.minLength ||\n options.pattern ||\n options.validate);\n","import { FieldError, FieldErrors, FieldValues } from '../types';\nimport get from '../utils/get';\nimport isKey from '../utils/isKey';\n\nexport default function schemaErrorLookup(\n errors: FieldErrors,\n _fields: FieldValues,\n name: string,\n): {\n error?: FieldError;\n name: string;\n} {\n const error = get(errors, name);\n\n if (error || isKey(name)) {\n return {\n error,\n name,\n };\n }\n\n const names = name.split('.');\n\n while (names.length) {\n const fieldName = names.join('.');\n const field = get(_fields, fieldName);\n const foundError = get(errors, fieldName);\n\n if (field && !Array.isArray(field) && name !== fieldName) {\n return { name };\n }\n\n if (foundError && foundError.type) {\n return {\n name: fieldName,\n error: foundError,\n };\n }\n\n names.pop();\n }\n\n return {\n name,\n };\n}\n","export default (\n isBlurEvent: boolean,\n isTouched: boolean,\n isSubmitted: boolean,\n reValidateMode: {\n isOnBlur: boolean;\n isOnChange: boolean;\n },\n mode: Partial<{\n isOnSubmit: boolean;\n isOnBlur: boolean;\n isOnChange: boolean;\n isOnTouch: boolean;\n isOnAll: boolean;\n }>,\n) => {\n if (mode.isOnAll) {\n return false;\n } else if (!isSubmitted && mode.isOnTouch) {\n return !(isTouched || isBlurEvent);\n } else if (isSubmitted ? reValidateMode.isOnBlur : mode.isOnBlur) {\n return !isBlurEvent;\n } else if (isSubmitted ? reValidateMode.isOnChange : mode.isOnChange) {\n return isBlurEvent;\n }\n return true;\n};\n","import compact from '../utils/compact';\nimport get from '../utils/get';\nimport unset from '../utils/unset';\n\nexport default (ref: T, name: string) =>\n !compact(get(ref, name)).length && unset(ref, name);\n","import { EVENTS, VALIDATION_MODE } from '../constants';\nimport {\n BatchFieldArrayUpdate,\n ChangeHandler,\n DeepPartial,\n DelayCallback,\n EventType,\n Field,\n FieldError,\n FieldNamesMarkedBoolean,\n FieldPath,\n FieldRefs,\n FieldValues,\n FormState,\n GetIsDirty,\n InternalFieldName,\n Names,\n Path,\n Ref,\n SetFieldValue,\n SetValueConfig,\n Subjects,\n UseFormClearErrors,\n UseFormGetFieldState,\n UseFormGetValues,\n UseFormHandleSubmit,\n UseFormProps,\n UseFormRegister,\n UseFormReset,\n UseFormResetField,\n UseFormReturn,\n UseFormSetError,\n UseFormSetFocus,\n UseFormSetValue,\n UseFormTrigger,\n UseFormUnregister,\n UseFormWatch,\n WatchInternal,\n WatchObserver,\n} from '../types';\nimport cloneObject from '../utils/cloneObject';\nimport compact from '../utils/compact';\nimport convertToArrayPayload from '../utils/convertToArrayPayload';\nimport createSubject from '../utils/createSubject';\nimport deepEqual from '../utils/deepEqual';\nimport get from '../utils/get';\nimport isBoolean from '../utils/isBoolean';\nimport isCheckBoxInput from '../utils/isCheckBoxInput';\nimport isDateObject from '../utils/isDateObject';\nimport isEmptyObject from '../utils/isEmptyObject';\nimport isFileInput from '../utils/isFileInput';\nimport isFunction from '../utils/isFunction';\nimport isHTMLElement from '../utils/isHTMLElement';\nimport isMultipleSelect from '../utils/isMultipleSelect';\nimport isNullOrUndefined from '../utils/isNullOrUndefined';\nimport isObject from '../utils/isObject';\nimport isPrimitive from '../utils/isPrimitive';\nimport isRadioOrCheckbox from '../utils/isRadioOrCheckbox';\nimport isString from '../utils/isString';\nimport isUndefined from '../utils/isUndefined';\nimport isWeb from '../utils/isWeb';\nimport live from '../utils/live';\nimport set from '../utils/set';\nimport unset from '../utils/unset';\n\nimport focusFieldBy from './focusFieldBy';\nimport generateWatchOutput from './generateWatchOutput';\nimport getDirtyFields from './getDirtyFields';\nimport getEventValue from './getEventValue';\nimport getFieldValue from './getFieldValue';\nimport getFieldValueAs from './getFieldValueAs';\nimport getResolverOptions from './getResolverOptions';\nimport getRuleValue from './getRuleValue';\nimport getValidationModes from './getValidationModes';\nimport hasValidation from './hasValidation';\nimport isNameInFieldArray from './isNameInFieldArray';\nimport isWatched from './isWatched';\nimport schemaErrorLookup from './schemaErrorLookup';\nimport skipValidation from './skipValidation';\nimport unsetEmptyArray from './unsetEmptyArray';\nimport updateFieldArrayRootError from './updateFieldArrayRootError';\nimport validateField from './validateField';\n\nconst defaultOptions = {\n mode: VALIDATION_MODE.onSubmit,\n reValidateMode: VALIDATION_MODE.onChange,\n shouldFocusError: true,\n} as const;\n\nexport function createFormControl<\n TFieldValues extends FieldValues = FieldValues,\n TContext = any,\n>(\n props: UseFormProps = {},\n flushRootRender: () => void,\n): Omit, 'formState'> {\n let _options = {\n ...defaultOptions,\n ...props,\n };\n const shouldCaptureDirtyFields =\n props.resetOptions && props.resetOptions.keepDirtyValues;\n let _formState: FormState = {\n submitCount: 0,\n isDirty: false,\n isLoading: true,\n isValidating: false,\n isSubmitted: false,\n isSubmitting: false,\n isSubmitSuccessful: false,\n isValid: false,\n touchedFields: {},\n dirtyFields: {},\n errors: {},\n };\n let _fields = {};\n let _defaultValues =\n isObject(_options.defaultValues) || isObject(_options.values)\n ? cloneObject(_options.defaultValues || _options.values) || {}\n : {};\n let _formValues = _options.shouldUnregister\n ? {}\n : cloneObject(_defaultValues);\n let _stateFlags = {\n action: false,\n mount: false,\n watch: false,\n };\n let _names: Names = {\n mount: new Set(),\n unMount: new Set(),\n array: new Set(),\n watch: new Set(),\n };\n let delayErrorCallback: DelayCallback | null;\n let timer = 0;\n const _proxyFormState = {\n isDirty: false,\n dirtyFields: false,\n touchedFields: false,\n isValidating: false,\n isValid: false,\n errors: false,\n };\n const _subjects: Subjects = {\n watch: createSubject(),\n array: createSubject(),\n state: createSubject(),\n };\n const validationModeBeforeSubmit = getValidationModes(_options.mode);\n const validationModeAfterSubmit = getValidationModes(_options.reValidateMode);\n const shouldDisplayAllAssociatedErrors =\n _options.criteriaMode === VALIDATION_MODE.all;\n\n const debounce =\n (callback: T) =>\n (wait: number) => {\n clearTimeout(timer);\n timer = window.setTimeout(callback, wait);\n };\n\n const _updateValid = async (shouldUpdateValid?: boolean) => {\n if (_proxyFormState.isValid || shouldUpdateValid) {\n const isValid = _options.resolver\n ? isEmptyObject((await _executeSchema()).errors)\n : await executeBuiltInValidation(_fields, true);\n\n if (isValid !== _formState.isValid) {\n _subjects.state.next({\n isValid,\n });\n }\n }\n };\n\n const _updateIsValidating = (value: boolean) =>\n _proxyFormState.isValidating &&\n _subjects.state.next({\n isValidating: value,\n });\n\n const _updateFieldArray: BatchFieldArrayUpdate = (\n name,\n values = [],\n method,\n args,\n shouldSetValues = true,\n shouldUpdateFieldsAndState = true,\n ) => {\n if (args && method) {\n _stateFlags.action = true;\n if (shouldUpdateFieldsAndState && Array.isArray(get(_fields, name))) {\n const fieldValues = method(get(_fields, name), args.argA, args.argB);\n shouldSetValues && set(_fields, name, fieldValues);\n }\n\n if (\n shouldUpdateFieldsAndState &&\n Array.isArray(get(_formState.errors, name))\n ) {\n const errors = method(\n get(_formState.errors, name),\n args.argA,\n args.argB,\n );\n shouldSetValues && set(_formState.errors, name, errors);\n unsetEmptyArray(_formState.errors, name);\n }\n\n if (\n _proxyFormState.touchedFields &&\n shouldUpdateFieldsAndState &&\n Array.isArray(get(_formState.touchedFields, name))\n ) {\n const touchedFields = method(\n get(_formState.touchedFields, name),\n args.argA,\n args.argB,\n );\n shouldSetValues && set(_formState.touchedFields, name, touchedFields);\n }\n\n if (_proxyFormState.dirtyFields) {\n _formState.dirtyFields = getDirtyFields(_defaultValues, _formValues);\n }\n\n _subjects.state.next({\n name,\n isDirty: _getDirty(name, values),\n dirtyFields: _formState.dirtyFields,\n errors: _formState.errors,\n isValid: _formState.isValid,\n });\n } else {\n set(_formValues, name, values);\n }\n };\n\n const updateErrors = (name: InternalFieldName, error: FieldError) => {\n set(_formState.errors, name, error);\n _subjects.state.next({\n errors: _formState.errors,\n });\n };\n\n const updateValidAndValue = (\n name: InternalFieldName,\n shouldSkipSetValueAs: boolean,\n value?: unknown,\n ref?: Ref,\n ) => {\n const field: Field = get(_fields, name);\n\n if (field) {\n const defaultValue = get(\n _formValues,\n name,\n isUndefined(value) ? get(_defaultValues, name) : value,\n );\n\n isUndefined(defaultValue) ||\n (ref && (ref as HTMLInputElement).defaultChecked) ||\n shouldSkipSetValueAs\n ? set(\n _formValues,\n name,\n shouldSkipSetValueAs ? defaultValue : getFieldValue(field._f),\n )\n : setFieldValue(name, defaultValue);\n\n _stateFlags.mount && _updateValid();\n }\n };\n\n const updateTouchAndDirty = (\n name: InternalFieldName,\n fieldValue: unknown,\n isBlurEvent?: boolean,\n shouldDirty?: boolean,\n shouldRender?: boolean,\n ): Partial<\n Pick, 'dirtyFields' | 'isDirty' | 'touchedFields'>\n > => {\n let shouldUpdateField = false;\n let isPreviousDirty = false;\n const output: Partial> & { name: string } = {\n name,\n };\n\n if (!isBlurEvent || shouldDirty) {\n if (_proxyFormState.isDirty) {\n isPreviousDirty = _formState.isDirty;\n _formState.isDirty = output.isDirty = _getDirty();\n shouldUpdateField = isPreviousDirty !== output.isDirty;\n }\n\n const isCurrentFieldPristine = deepEqual(\n get(_defaultValues, name),\n fieldValue,\n );\n\n isPreviousDirty = get(_formState.dirtyFields, name);\n isCurrentFieldPristine\n ? unset(_formState.dirtyFields, name)\n : set(_formState.dirtyFields, name, true);\n output.dirtyFields = _formState.dirtyFields;\n shouldUpdateField =\n shouldUpdateField ||\n (_proxyFormState.dirtyFields &&\n isPreviousDirty !== !isCurrentFieldPristine);\n }\n\n if (isBlurEvent) {\n const isPreviousFieldTouched = get(_formState.touchedFields, name);\n\n if (!isPreviousFieldTouched) {\n set(_formState.touchedFields, name, isBlurEvent);\n output.touchedFields = _formState.touchedFields;\n shouldUpdateField =\n shouldUpdateField ||\n (_proxyFormState.touchedFields &&\n isPreviousFieldTouched !== isBlurEvent);\n }\n }\n\n shouldUpdateField && shouldRender && _subjects.state.next(output);\n\n return shouldUpdateField ? output : {};\n };\n\n const shouldRenderByError = (\n name: InternalFieldName,\n isValid?: boolean,\n error?: FieldError,\n fieldState?: {\n dirty?: FieldNamesMarkedBoolean;\n isDirty?: boolean;\n touched?: FieldNamesMarkedBoolean;\n },\n ) => {\n const previousFieldError = get(_formState.errors, name);\n const shouldUpdateValid =\n _proxyFormState.isValid &&\n isBoolean(isValid) &&\n _formState.isValid !== isValid;\n\n if (props.delayError && error) {\n delayErrorCallback = debounce(() => updateErrors(name, error));\n delayErrorCallback(props.delayError);\n } else {\n clearTimeout(timer);\n delayErrorCallback = null;\n error\n ? set(_formState.errors, name, error)\n : unset(_formState.errors, name);\n }\n\n if (\n (error ? !deepEqual(previousFieldError, error) : previousFieldError) ||\n !isEmptyObject(fieldState) ||\n shouldUpdateValid\n ) {\n const updatedFormState = {\n ...fieldState,\n ...(shouldUpdateValid && isBoolean(isValid) ? { isValid } : {}),\n errors: _formState.errors,\n name,\n };\n\n _formState = {\n ..._formState,\n ...updatedFormState,\n };\n\n _subjects.state.next(updatedFormState);\n }\n\n _updateIsValidating(false);\n };\n\n const _executeSchema = async (name?: InternalFieldName[]) =>\n await _options.resolver!(\n _formValues as TFieldValues,\n _options.context,\n getResolverOptions(\n name || _names.mount,\n _fields,\n _options.criteriaMode,\n _options.shouldUseNativeValidation,\n ),\n );\n\n const executeSchemaAndUpdateState = async (names?: InternalFieldName[]) => {\n const { errors } = await _executeSchema();\n\n if (names) {\n for (const name of names) {\n const error = get(errors, name);\n error\n ? set(_formState.errors, name, error)\n : unset(_formState.errors, name);\n }\n } else {\n _formState.errors = errors;\n }\n\n return errors;\n };\n\n const executeBuiltInValidation = async (\n fields: FieldRefs,\n shouldOnlyCheckValid?: boolean,\n context: {\n valid: boolean;\n } = {\n valid: true,\n },\n ) => {\n for (const name in fields) {\n const field = fields[name];\n\n if (field) {\n const { _f, ...fieldValue } = field;\n\n if (_f) {\n const isFieldArrayRoot = _names.array.has(_f.name);\n const fieldError = await validateField(\n field,\n _formValues,\n shouldDisplayAllAssociatedErrors,\n _options.shouldUseNativeValidation,\n isFieldArrayRoot,\n );\n\n if (fieldError[_f.name]) {\n context.valid = false;\n if (shouldOnlyCheckValid) {\n break;\n }\n }\n\n !shouldOnlyCheckValid &&\n (get(fieldError, _f.name)\n ? isFieldArrayRoot\n ? updateFieldArrayRootError(\n _formState.errors,\n fieldError,\n _f.name,\n )\n : set(_formState.errors, _f.name, fieldError[_f.name])\n : unset(_formState.errors, _f.name));\n }\n\n fieldValue &&\n (await executeBuiltInValidation(\n fieldValue,\n shouldOnlyCheckValid,\n context,\n ));\n }\n }\n\n return context.valid;\n };\n\n const _removeUnmounted = () => {\n for (const name of _names.unMount) {\n const field: Field = get(_fields, name);\n\n field &&\n (field._f.refs\n ? field._f.refs.every((ref) => !live(ref))\n : !live(field._f.ref)) &&\n unregister(name as FieldPath);\n }\n\n _names.unMount = new Set();\n };\n\n const _getDirty: GetIsDirty = (name, data) => (\n name && data && set(_formValues, name, data),\n !deepEqual(getValues(), _defaultValues)\n );\n\n const _getWatch: WatchInternal = (\n names,\n defaultValue,\n isGlobal,\n ) =>\n generateWatchOutput(\n names,\n _names,\n {\n ...(_stateFlags.mount\n ? _formValues\n : isUndefined(defaultValue)\n ? _defaultValues\n : isString(names)\n ? { [names]: defaultValue }\n : defaultValue),\n },\n isGlobal,\n defaultValue,\n );\n\n const _getFieldArray = (\n name: InternalFieldName,\n ): Partial[] =>\n compact(\n get(\n _stateFlags.mount ? _formValues : _defaultValues,\n name,\n props.shouldUnregister ? get(_defaultValues, name, []) : [],\n ),\n );\n\n const setFieldValue = (\n name: InternalFieldName,\n value: SetFieldValue,\n options: SetValueConfig = {},\n ) => {\n const field: Field = get(_fields, name);\n let fieldValue: unknown = value;\n\n if (field) {\n const fieldReference = field._f;\n\n if (fieldReference) {\n !fieldReference.disabled &&\n set(_formValues, name, getFieldValueAs(value, fieldReference));\n\n fieldValue =\n isHTMLElement(fieldReference.ref) && isNullOrUndefined(value)\n ? ''\n : value;\n\n if (isMultipleSelect(fieldReference.ref)) {\n [...fieldReference.ref.options].forEach(\n (optionRef) =>\n (optionRef.selected = (\n fieldValue as InternalFieldName[]\n ).includes(optionRef.value)),\n );\n } else if (fieldReference.refs) {\n if (isCheckBoxInput(fieldReference.ref)) {\n fieldReference.refs.length > 1\n ? fieldReference.refs.forEach(\n (checkboxRef) =>\n (!checkboxRef.defaultChecked || !checkboxRef.disabled) &&\n (checkboxRef.checked = Array.isArray(fieldValue)\n ? !!(fieldValue as []).find(\n (data: string) => data === checkboxRef.value,\n )\n : fieldValue === checkboxRef.value),\n )\n : fieldReference.refs[0] &&\n (fieldReference.refs[0].checked = !!fieldValue);\n } else {\n fieldReference.refs.forEach(\n (radioRef: HTMLInputElement) =>\n (radioRef.checked = radioRef.value === fieldValue),\n );\n }\n } else if (isFileInput(fieldReference.ref)) {\n fieldReference.ref.value = '';\n } else {\n fieldReference.ref.value = fieldValue;\n\n if (!fieldReference.ref.type) {\n _subjects.watch.next({\n name,\n });\n }\n }\n }\n }\n\n (options.shouldDirty || options.shouldTouch) &&\n updateTouchAndDirty(\n name,\n fieldValue,\n options.shouldTouch,\n options.shouldDirty,\n true,\n );\n\n options.shouldValidate && trigger(name as Path);\n };\n\n const setValues = <\n T extends InternalFieldName,\n K extends SetFieldValue,\n U extends SetValueConfig,\n >(\n name: T,\n value: K,\n options: U,\n ) => {\n for (const fieldKey in value) {\n const fieldValue = value[fieldKey];\n const fieldName = `${name}.${fieldKey}`;\n const field = get(_fields, fieldName);\n\n (_names.array.has(name) ||\n !isPrimitive(fieldValue) ||\n (field && !field._f)) &&\n !isDateObject(fieldValue)\n ? setValues(fieldName, fieldValue, options)\n : setFieldValue(fieldName, fieldValue, options);\n }\n };\n\n const setValue: UseFormSetValue = (\n name,\n value,\n options = {},\n ) => {\n const field = get(_fields, name);\n const isFieldArray = _names.array.has(name);\n const cloneValue = cloneObject(value);\n\n set(_formValues, name, cloneValue);\n\n if (isFieldArray) {\n _subjects.array.next({\n name,\n values: _formValues,\n });\n\n if (\n (_proxyFormState.isDirty || _proxyFormState.dirtyFields) &&\n options.shouldDirty\n ) {\n _subjects.state.next({\n name,\n dirtyFields: getDirtyFields(_defaultValues, _formValues),\n isDirty: _getDirty(name, cloneValue),\n });\n }\n } else {\n field && !field._f && !isNullOrUndefined(cloneValue)\n ? setValues(name, cloneValue, options)\n : setFieldValue(name, cloneValue, options);\n }\n\n isWatched(name, _names) && _subjects.state.next({});\n _subjects.watch.next({\n name,\n });\n !_stateFlags.mount && flushRootRender();\n };\n\n const onChange: ChangeHandler = async (event) => {\n const target = event.target;\n let name = target.name;\n const field: Field = get(_fields, name);\n const getCurrentFieldValue = () =>\n target.type ? getFieldValue(field._f) : getEventValue(event);\n\n if (field) {\n let error;\n let isValid;\n const fieldValue = getCurrentFieldValue();\n const isBlurEvent =\n event.type === EVENTS.BLUR || event.type === EVENTS.FOCUS_OUT;\n const shouldSkipValidation =\n (!hasValidation(field._f) &&\n !_options.resolver &&\n !get(_formState.errors, name) &&\n !field._f.deps) ||\n skipValidation(\n isBlurEvent,\n get(_formState.touchedFields, name),\n _formState.isSubmitted,\n validationModeAfterSubmit,\n validationModeBeforeSubmit,\n );\n const watched = isWatched(name, _names, isBlurEvent);\n\n set(_formValues, name, fieldValue);\n\n if (isBlurEvent) {\n field._f.onBlur && field._f.onBlur(event);\n delayErrorCallback && delayErrorCallback(0);\n } else if (field._f.onChange) {\n field._f.onChange(event);\n }\n\n const fieldState = updateTouchAndDirty(\n name,\n fieldValue,\n isBlurEvent,\n false,\n );\n\n const shouldRender = !isEmptyObject(fieldState) || watched;\n\n !isBlurEvent &&\n _subjects.watch.next({\n name,\n type: event.type,\n });\n\n if (shouldSkipValidation) {\n _proxyFormState.isValid && _updateValid();\n\n return (\n shouldRender &&\n _subjects.state.next({ name, ...(watched ? {} : fieldState) })\n );\n }\n\n !isBlurEvent && watched && _subjects.state.next({});\n\n _updateIsValidating(true);\n\n if (_options.resolver) {\n const { errors } = await _executeSchema([name]);\n const previousErrorLookupResult = schemaErrorLookup(\n _formState.errors,\n _fields,\n name,\n );\n const errorLookupResult = schemaErrorLookup(\n errors,\n _fields,\n previousErrorLookupResult.name || name,\n );\n\n error = errorLookupResult.error;\n name = errorLookupResult.name;\n\n isValid = isEmptyObject(errors);\n } else {\n error = (\n await validateField(\n field,\n _formValues,\n shouldDisplayAllAssociatedErrors,\n _options.shouldUseNativeValidation,\n )\n )[name];\n\n if (error) {\n isValid = false;\n } else if (_proxyFormState.isValid) {\n isValid = await executeBuiltInValidation(_fields, true);\n }\n }\n\n field._f.deps &&\n trigger(\n field._f.deps as FieldPath | FieldPath[],\n );\n shouldRenderByError(name, isValid, error, fieldState);\n }\n };\n\n const trigger: UseFormTrigger = async (name, options = {}) => {\n let isValid;\n let validationResult;\n const fieldNames = convertToArrayPayload(name) as InternalFieldName[];\n\n _updateIsValidating(true);\n\n if (_options.resolver) {\n const errors = await executeSchemaAndUpdateState(\n isUndefined(name) ? name : fieldNames,\n );\n\n isValid = isEmptyObject(errors);\n validationResult = name\n ? !fieldNames.some((name) => get(errors, name))\n : isValid;\n } else if (name) {\n validationResult = (\n await Promise.all(\n fieldNames.map(async (fieldName) => {\n const field = get(_fields, fieldName);\n return await executeBuiltInValidation(\n field && field._f ? { [fieldName]: field } : field,\n );\n }),\n )\n ).every(Boolean);\n !(!validationResult && !_formState.isValid) && _updateValid();\n } else {\n validationResult = isValid = await executeBuiltInValidation(_fields);\n }\n\n _subjects.state.next({\n ...(!isString(name) ||\n (_proxyFormState.isValid && isValid !== _formState.isValid)\n ? {}\n : { name }),\n ...(_options.resolver || !name ? { isValid } : {}),\n errors: _formState.errors,\n isValidating: false,\n });\n\n options.shouldFocus &&\n !validationResult &&\n focusFieldBy(\n _fields,\n (key) => key && get(_formState.errors, key),\n name ? fieldNames : _names.mount,\n );\n\n return validationResult;\n };\n\n const getValues: UseFormGetValues = (\n fieldNames?:\n | FieldPath\n | ReadonlyArray>,\n ) => {\n const values = {\n ..._defaultValues,\n ...(_stateFlags.mount ? _formValues : {}),\n };\n\n return isUndefined(fieldNames)\n ? values\n : isString(fieldNames)\n ? get(values, fieldNames)\n : fieldNames.map((name) => get(values, name));\n };\n\n const getFieldState: UseFormGetFieldState = (\n name,\n formState,\n ) => ({\n invalid: !!get((formState || _formState).errors, name),\n isDirty: !!get((formState || _formState).dirtyFields, name),\n isTouched: !!get((formState || _formState).touchedFields, name),\n error: get((formState || _formState).errors, name),\n });\n\n const clearErrors: UseFormClearErrors = (name) => {\n name &&\n convertToArrayPayload(name).forEach((inputName) =>\n unset(_formState.errors, inputName),\n );\n\n _subjects.state.next({\n errors: name ? _formState.errors : {},\n });\n };\n\n const setError: UseFormSetError = (name, error, options) => {\n const ref = (get(_fields, name, { _f: {} })._f || {}).ref;\n\n set(_formState.errors, name, {\n ...error,\n ref,\n });\n\n _subjects.state.next({\n name,\n errors: _formState.errors,\n isValid: false,\n });\n\n options && options.shouldFocus && ref && ref.focus && ref.focus();\n };\n\n const watch: UseFormWatch = (\n name?:\n | FieldPath\n | ReadonlyArray>\n | WatchObserver,\n defaultValue?: DeepPartial,\n ) =>\n isFunction(name)\n ? _subjects.watch.subscribe({\n next: (payload) =>\n name(\n _getWatch(undefined, defaultValue),\n payload as {\n name?: FieldPath;\n type?: EventType;\n value?: unknown;\n },\n ),\n })\n : _getWatch(\n name as InternalFieldName | InternalFieldName[],\n defaultValue,\n true,\n );\n\n const unregister: UseFormUnregister = (name, options = {}) => {\n for (const fieldName of name ? convertToArrayPayload(name) : _names.mount) {\n _names.mount.delete(fieldName);\n _names.array.delete(fieldName);\n\n if (get(_fields, fieldName)) {\n if (!options.keepValue) {\n unset(_fields, fieldName);\n unset(_formValues, fieldName);\n }\n\n !options.keepError && unset(_formState.errors, fieldName);\n !options.keepDirty && unset(_formState.dirtyFields, fieldName);\n !options.keepTouched && unset(_formState.touchedFields, fieldName);\n !_options.shouldUnregister &&\n !options.keepDefaultValue &&\n unset(_defaultValues, fieldName);\n }\n }\n\n _subjects.watch.next({});\n\n _subjects.state.next({\n ..._formState,\n ...(!options.keepDirty ? {} : { isDirty: _getDirty() }),\n });\n\n !options.keepIsValid && _updateValid();\n };\n\n const register: UseFormRegister = (name, options = {}) => {\n let field = get(_fields, name);\n const disabledIsDefined = isBoolean(options.disabled);\n\n set(_fields, name, {\n ...(field || {}),\n _f: {\n ...(field && field._f ? field._f : { ref: { name } }),\n name,\n mount: true,\n ...options,\n },\n });\n _names.mount.add(name);\n\n field\n ? disabledIsDefined &&\n set(\n _formValues,\n name,\n options.disabled\n ? undefined\n : get(_formValues, name, getFieldValue(field._f)),\n )\n : updateValidAndValue(name, true, options.value);\n\n return {\n ...(disabledIsDefined ? { disabled: options.disabled } : {}),\n ...(_options.shouldUseNativeValidation\n ? {\n required: !!options.required,\n min: getRuleValue(options.min),\n max: getRuleValue(options.max),\n minLength: getRuleValue(options.minLength) as number,\n maxLength: getRuleValue(options.maxLength) as number,\n pattern: getRuleValue(options.pattern) as string,\n }\n : {}),\n name,\n onChange,\n onBlur: onChange,\n ref: (ref: HTMLInputElement | null): void => {\n if (ref) {\n register(name, options);\n field = get(_fields, name);\n\n const fieldRef = isUndefined(ref.value)\n ? ref.querySelectorAll\n ? (ref.querySelectorAll('input,select,textarea')[0] as Ref) || ref\n : ref\n : ref;\n const radioOrCheckbox = isRadioOrCheckbox(fieldRef);\n const refs = field._f.refs || [];\n\n if (\n radioOrCheckbox\n ? refs.find((option: Ref) => option === fieldRef)\n : fieldRef === field._f.ref\n ) {\n return;\n }\n\n set(_fields, name, {\n _f: {\n ...field._f,\n ...(radioOrCheckbox\n ? {\n refs: [\n ...refs.filter(live),\n fieldRef,\n ...(Array.isArray(get(_defaultValues, name)) ? [{}] : []),\n ],\n ref: { type: fieldRef.type, name },\n }\n : { ref: fieldRef }),\n },\n });\n\n updateValidAndValue(name, false, undefined, fieldRef);\n } else {\n field = get(_fields, name, {});\n\n if (field._f) {\n field._f.mount = false;\n }\n\n (_options.shouldUnregister || options.shouldUnregister) &&\n !(isNameInFieldArray(_names.array, name) && _stateFlags.action) &&\n _names.unMount.add(name);\n }\n },\n };\n };\n\n const _focusError = () =>\n _options.shouldFocusError &&\n focusFieldBy(\n _fields,\n (key) => key && get(_formState.errors, key),\n _names.mount,\n );\n\n const handleSubmit: UseFormHandleSubmit =\n (onValid, onInvalid) => async (e) => {\n if (e) {\n e.preventDefault && e.preventDefault();\n e.persist && e.persist();\n }\n let fieldValues = cloneObject(_formValues);\n\n _subjects.state.next({\n isSubmitting: true,\n });\n\n if (_options.resolver) {\n const { errors, values } = await _executeSchema();\n _formState.errors = errors;\n fieldValues = values;\n } else {\n await executeBuiltInValidation(_fields);\n }\n\n unset(_formState.errors, 'root');\n\n if (isEmptyObject(_formState.errors)) {\n _subjects.state.next({\n errors: {},\n });\n await onValid(fieldValues as TFieldValues, e);\n } else {\n if (onInvalid) {\n await onInvalid({ ..._formState.errors }, e);\n }\n _focusError();\n }\n\n _subjects.state.next({\n isSubmitted: true,\n isSubmitting: false,\n isSubmitSuccessful: isEmptyObject(_formState.errors),\n submitCount: _formState.submitCount + 1,\n errors: _formState.errors,\n });\n };\n\n const resetField: UseFormResetField = (name, options = {}) => {\n if (get(_fields, name)) {\n if (isUndefined(options.defaultValue)) {\n setValue(name, get(_defaultValues, name));\n } else {\n setValue(name, options.defaultValue);\n set(_defaultValues, name, options.defaultValue);\n }\n\n if (!options.keepTouched) {\n unset(_formState.touchedFields, name);\n }\n\n if (!options.keepDirty) {\n unset(_formState.dirtyFields, name);\n _formState.isDirty = options.defaultValue\n ? _getDirty(name, get(_defaultValues, name))\n : _getDirty();\n }\n\n if (!options.keepError) {\n unset(_formState.errors, name);\n _proxyFormState.isValid && _updateValid();\n }\n\n _subjects.state.next({ ..._formState });\n }\n };\n\n const _reset: UseFormReset = (\n formValues,\n keepStateOptions = {},\n ) => {\n const updatedValues = formValues || _defaultValues;\n const cloneUpdatedValues = cloneObject(updatedValues);\n const values =\n formValues && !isEmptyObject(formValues)\n ? cloneUpdatedValues\n : _defaultValues;\n\n if (!keepStateOptions.keepDefaultValues) {\n _defaultValues = updatedValues;\n }\n\n if (!keepStateOptions.keepValues) {\n if (keepStateOptions.keepDirtyValues || shouldCaptureDirtyFields) {\n for (const fieldName of _names.mount) {\n get(_formState.dirtyFields, fieldName)\n ? set(values, fieldName, get(_formValues, fieldName))\n : setValue(\n fieldName as FieldPath,\n get(values, fieldName),\n );\n }\n } else {\n if (isWeb && isUndefined(formValues)) {\n for (const name of _names.mount) {\n const field = get(_fields, name);\n if (field && field._f) {\n const fieldReference = Array.isArray(field._f.refs)\n ? field._f.refs[0]\n : field._f.ref;\n\n if (isHTMLElement(fieldReference)) {\n const form = fieldReference.closest('form');\n if (form) {\n form.reset();\n break;\n }\n }\n }\n }\n }\n\n _fields = {};\n }\n\n _formValues = props.shouldUnregister\n ? keepStateOptions.keepDefaultValues\n ? cloneObject(_defaultValues)\n : {}\n : cloneUpdatedValues;\n\n _subjects.array.next({\n values,\n });\n\n _subjects.watch.next({\n values,\n });\n }\n\n _names = {\n mount: new Set(),\n unMount: new Set(),\n array: new Set(),\n watch: new Set(),\n watchAll: false,\n focus: '',\n };\n\n !_stateFlags.mount && flushRootRender();\n\n _stateFlags.mount =\n !_proxyFormState.isValid || !!keepStateOptions.keepIsValid;\n\n _stateFlags.watch = !!props.shouldUnregister;\n\n _subjects.state.next({\n submitCount: keepStateOptions.keepSubmitCount\n ? _formState.submitCount\n : 0,\n isDirty:\n keepStateOptions.keepDirty || keepStateOptions.keepDirtyValues\n ? _formState.isDirty\n : !!(\n keepStateOptions.keepDefaultValues &&\n !deepEqual(formValues, _defaultValues)\n ),\n isSubmitted: keepStateOptions.keepIsSubmitted\n ? _formState.isSubmitted\n : false,\n dirtyFields:\n keepStateOptions.keepDirty || keepStateOptions.keepDirtyValues\n ? _formState.dirtyFields\n : keepStateOptions.keepDefaultValues && formValues\n ? getDirtyFields(_defaultValues, formValues)\n : {},\n touchedFields: keepStateOptions.keepTouched\n ? _formState.touchedFields\n : {},\n errors: keepStateOptions.keepErrors ? _formState.errors : {},\n isSubmitting: false,\n isSubmitSuccessful: false,\n });\n };\n\n const reset: UseFormReset = (formValues, keepStateOptions) =>\n _reset(\n isFunction(formValues)\n ? formValues(_formValues as TFieldValues)\n : formValues,\n keepStateOptions,\n );\n\n const setFocus: UseFormSetFocus = (name, options = {}) => {\n const field = get(_fields, name);\n const fieldReference = field && field._f;\n\n if (fieldReference) {\n const fieldRef = fieldReference.refs\n ? fieldReference.refs[0]\n : fieldReference.ref;\n\n if (fieldRef.focus) {\n fieldRef.focus();\n options.shouldSelect && fieldRef.select();\n }\n }\n };\n\n const _updateFormState = (\n updatedFormState: Partial>,\n ) => {\n _formState = {\n ..._formState,\n ...updatedFormState,\n };\n };\n\n if (isFunction(_options.defaultValues)) {\n _options.defaultValues().then((values) => {\n reset(values, _options.resetOptions);\n _subjects.state.next({\n isLoading: false,\n });\n });\n }\n\n return {\n control: {\n register,\n unregister,\n getFieldState,\n _executeSchema,\n _focusError,\n _getWatch,\n _getDirty,\n _updateValid,\n _removeUnmounted,\n _updateFieldArray,\n _getFieldArray,\n _reset,\n _updateFormState,\n _subjects,\n _proxyFormState,\n get _fields() {\n return _fields;\n },\n get _formValues() {\n return _formValues;\n },\n get _stateFlags() {\n return _stateFlags;\n },\n set _stateFlags(value) {\n _stateFlags = value;\n },\n get _defaultValues() {\n return _defaultValues;\n },\n get _names() {\n return _names;\n },\n set _names(value) {\n _names = value;\n },\n get _formState() {\n return _formState;\n },\n set _formState(value) {\n _formState = value;\n },\n get _options() {\n return _options;\n },\n set _options(value) {\n _options = {\n ..._options,\n ...value,\n };\n },\n },\n trigger,\n register,\n handleSubmit,\n watch,\n setValue,\n getValues,\n reset,\n resetField,\n clearErrors,\n unregister,\n setError,\n setFocus,\n getFieldState,\n };\n}\n","import React from 'react';\n\nimport { createFormControl } from './logic/createFormControl';\nimport getProxyFormState from './logic/getProxyFormState';\nimport shouldRenderFormState from './logic/shouldRenderFormState';\nimport deepEqual from './utils/deepEqual';\nimport isFunction from './utils/isFunction';\nimport {\n FieldValues,\n FormState,\n InternalFieldName,\n UseFormProps,\n UseFormReturn,\n} from './types';\nimport { useSubscribe } from './useSubscribe';\n\n/**\n * Custom hook to manage the entire form.\n *\n * @remarks\n * [API](https://react-hook-form.com/api/useform) • [Demo](https://codesandbox.io/s/react-hook-form-get-started-ts-5ksmm) • [Video](https://www.youtube.com/watch?v=RkXv4AXXC_4)\n *\n * @param props - form configuration and validation parameters.\n *\n * @returns methods - individual functions to manage the form state. {@link UseFormReturn}\n *\n * @example\n * ```tsx\n * function App() {\n * const { register, handleSubmit, watch, formState: { errors } } = useForm();\n * const onSubmit = data => console.log(data);\n *\n * console.log(watch(\"example\"));\n *\n * return (\n *
\n * \n * \n * {errors.exampleRequired && This field is required}\n * \n *
\n * );\n * }\n * ```\n */\nexport function useForm<\n TFieldValues extends FieldValues = FieldValues,\n TContext = any,\n>(\n props: UseFormProps = {},\n): UseFormReturn {\n const _formControl = React.useRef<\n UseFormReturn | undefined\n >();\n const [formState, updateFormState] = React.useState>({\n isDirty: false,\n isValidating: false,\n isLoading: true,\n isSubmitted: false,\n isSubmitting: false,\n isSubmitSuccessful: false,\n isValid: false,\n submitCount: 0,\n dirtyFields: {},\n touchedFields: {},\n errors: {},\n defaultValues: isFunction(props.defaultValues)\n ? undefined\n : props.defaultValues,\n });\n\n if (!_formControl.current) {\n _formControl.current = {\n ...createFormControl(props, () =>\n updateFormState((formState) => ({ ...formState })),\n ),\n formState,\n };\n }\n\n const control = _formControl.current.control;\n control._options = props;\n\n useSubscribe({\n subject: control._subjects.state,\n next: (\n value: Partial> & { name?: InternalFieldName },\n ) => {\n if (\n shouldRenderFormState(\n value,\n control._proxyFormState,\n control._updateFormState,\n true,\n )\n ) {\n updateFormState({ ...control._formState });\n }\n },\n });\n\n React.useEffect(() => {\n if (!control._stateFlags.mount) {\n control._updateValid();\n control._stateFlags.mount = true;\n }\n\n if (control._stateFlags.watch) {\n control._stateFlags.watch = false;\n control._subjects.state.next({});\n }\n\n control._removeUnmounted();\n });\n\n React.useEffect(() => {\n if (props.values && !deepEqual(props.values, control._defaultValues)) {\n control._reset(props.values, control._options.resetOptions);\n }\n }, [props.values, control]);\n\n React.useEffect(() => {\n formState.submitCount && control._focusError();\n }, [control, formState.submitCount]);\n\n _formControl.current.formState = getProxyFormState(formState, control);\n\n return _formControl.current;\n}\n","import {\n get, FieldError, ResolverOptions, Ref, FieldErrors\n} from 'react-hook-form';\n\nconst setCustomValidity = (ref: Ref, fieldPath: string, errors: FieldErrors) => {\n if (ref && 'reportValidity' in ref) {\n const error = get(errors, fieldPath) as FieldError | undefined;\n ref.setCustomValidity((error && error.message) || '');\n\n ref.reportValidity();\n }\n};\n\n// Native validation (web only)\nexport const validateFieldsNatively = (\n errors: FieldErrors,\n options: ResolverOptions,\n): void => {\n\n\n for (const fieldPath in options.fields) {\n const field = options.fields[fieldPath];\n if (field && field.ref && 'reportValidity' in field.ref) {\n setCustomValidity(field.ref, fieldPath, errors)\n } else if (field.refs) {\n field.refs.forEach((ref: HTMLInputElement) => setCustomValidity(ref, fieldPath, errors))\n }\n }\n};\n","// ES6 Map\nvar map\ntry {\n map = Map\n} catch (_) { }\nvar set\n\n// ES6 Set\ntry {\n set = Set\n} catch (_) { }\n\nfunction baseClone (src, circulars, clones) {\n // Null/undefined/functions/etc\n if (!src || typeof src !== 'object' || typeof src === 'function') {\n return src\n }\n\n // DOM Node\n if (src.nodeType && 'cloneNode' in src) {\n return src.cloneNode(true)\n }\n\n // Date\n if (src instanceof Date) {\n return new Date(src.getTime())\n }\n\n // RegExp\n if (src instanceof RegExp) {\n return new RegExp(src)\n }\n\n // Arrays\n if (Array.isArray(src)) {\n return src.map(clone)\n }\n\n // ES6 Maps\n if (map && src instanceof map) {\n return new Map(Array.from(src.entries()))\n }\n\n // ES6 Sets\n if (set && src instanceof set) {\n return new Set(Array.from(src.values()))\n }\n\n // Object\n if (src instanceof Object) {\n circulars.push(src)\n var obj = Object.create(src)\n clones.push(obj)\n for (var key in src) {\n var idx = circulars.findIndex(function (i) {\n return i === src[key]\n })\n obj[key] = idx > -1 ? clones[idx] : baseClone(src[key], circulars, clones)\n }\n return obj\n }\n\n // ???\n return src\n}\n\nexport default function clone (src) {\n return baseClone(src, [], [])\n}\n","import {\n set,\n get,\n FieldErrors,\n Field,\n ResolverOptions,\n} from 'react-hook-form';\nimport { validateFieldsNatively } from './validateFieldsNatively';\n\nexport const toNestError = (\n errors: FieldErrors,\n options: ResolverOptions,\n): FieldErrors => {\n options.shouldUseNativeValidation && validateFieldsNatively(errors, options);\n\n const fieldErrors = {} as FieldErrors;\n for (const path in errors) {\n const field = get(options.fields, path) as Field['_f'] | undefined;\n\n set(\n fieldErrors,\n path,\n Object.assign(errors[path], { ref: field && field.ref }),\n );\n }\n\n return fieldErrors;\n};\n","import * as Yup from 'yup';\nimport { toNestError, validateFieldsNatively } from '@hookform/resolvers';\nimport { appendErrors, FieldError } from 'react-hook-form';\nimport { Resolver } from './types';\n\n/**\n * Why `path!` ? because it could be `undefined` in some case\n * https://github.com/jquense/yup#validationerrorerrors-string--arraystring-value-any-path-string\n */\nconst parseErrorSchema = (\n error: Yup.ValidationError,\n validateAllFieldCriteria: boolean,\n) => {\n return (error.inner || []).reduce>(\n (previous, error) => {\n if (!previous[error.path!]) {\n previous[error.path!] = { message: error.message, type: error.type! };\n }\n\n if (validateAllFieldCriteria) {\n const types = previous[error.path!].types;\n const messages = types && types[error.type!];\n\n previous[error.path!] = appendErrors(\n error.path!,\n validateAllFieldCriteria,\n previous,\n error.type!,\n messages\n ? ([] as string[]).concat(messages as string[], error.message)\n : error.message,\n ) as FieldError;\n }\n\n return previous;\n },\n {},\n );\n};\n\nexport const yupResolver: Resolver =\n (schema, schemaOptions = {}, resolverOptions = {}) =>\n async (values, context, options) => {\n try {\n if (schemaOptions.context && process.env.NODE_ENV === 'development') {\n // eslint-disable-next-line no-console\n console.warn(\n \"You should not used the yup options context. Please, use the 'useForm' context object instead\",\n );\n }\n\n const result = await schema[\n resolverOptions.mode === 'sync' ? 'validateSync' : 'validate'\n ](\n values,\n Object.assign({ abortEarly: false }, schemaOptions, { context }),\n );\n\n options.shouldUseNativeValidation && validateFieldsNatively({}, options);\n\n return {\n values: resolverOptions.rawValues ? values : result,\n errors: {},\n };\n } catch (e: any) {\n if (!e.inner) {\n throw e;\n }\n\n return {\n values: {},\n errors: toNestError(\n parseErrorSchema(\n e,\n !options.shouldUseNativeValidation &&\n options.criteriaMode === 'all',\n ),\n options,\n ),\n };\n }\n };\n","const toString = Object.prototype.toString;\nconst errorToString = Error.prototype.toString;\nconst regExpToString = RegExp.prototype.toString;\nconst symbolToString = typeof Symbol !== 'undefined' ? Symbol.prototype.toString : () => '';\nconst SYMBOL_REGEXP = /^Symbol\\((.*)\\)(.*)$/;\n\nfunction printNumber(val) {\n if (val != +val) return 'NaN';\n const isNegativeZero = val === 0 && 1 / val < 0;\n return isNegativeZero ? '-0' : '' + val;\n}\n\nfunction printSimpleValue(val, quoteStrings = false) {\n if (val == null || val === true || val === false) return '' + val;\n const 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 const 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\nexport default function printValue(value, quoteStrings) {\n let result = printSimpleValue(value, quoteStrings);\n if (result !== null) return result;\n return JSON.stringify(value, function (key, value) {\n let result = printSimpleValue(this[key], quoteStrings);\n if (result !== null) return result;\n return value;\n }, 2);\n}","import printValue from './util/printValue';\nexport let 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: ({\n path,\n type,\n value,\n originalValue\n }) => {\n let isCast = originalValue != null && originalValue !== value;\n let msg = `${path} must be a \\`${type}\\` type, ` + `but the final value was: \\`${printValue(value, true)}\\`` + (isCast ? ` (cast from the value \\`${printValue(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 defined: '${path} must be defined'\n};\nexport let 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 uuid: '${path} must be a valid UUID',\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};\nexport let 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 positive: '${path} must be a positive number',\n negative: '${path} must be a negative number',\n integer: '${path} must be an integer'\n};\nexport let date = {\n min: '${path} field must be later than ${min}',\n max: '${path} field must be at earlier than ${max}'\n};\nexport let boolean = {\n isValue: '${path} field must be ${value}'\n};\nexport let object = {\n noUnknown: '${path} field has unspecified keys: ${unknown}'\n};\nexport let 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 length: '${path} must have ${length} items'\n};\nexport default Object.assign(Object.create(null), {\n mixed,\n string,\n number,\n date,\n object,\n array,\n boolean\n});","const isSchema = obj => obj && obj.__isYupSchema__;\n\nexport default isSchema;","import has from 'lodash/has';\nimport isSchema from './util/isSchema';\n\nclass Condition {\n constructor(refs, options) {\n this.fn = void 0;\n this.refs = refs;\n this.refs = refs;\n\n if (typeof options === 'function') {\n this.fn = options;\n return;\n }\n\n if (!has(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 let {\n is,\n then,\n otherwise\n } = options;\n let check = typeof is === 'function' ? is : (...values) => values.every(value => value === is);\n\n this.fn = function (...args) {\n let options = args.pop();\n let schema = args.pop();\n let branch = check(...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 resolve(base, options) {\n let values = this.refs.map(ref => ref.getValue(options == null ? void 0 : options.value, options == null ? void 0 : options.parent, options == null ? void 0 : options.context));\n let schema = this.fn.apply(base, values.concat(base, options));\n if (schema === undefined || schema === base) return base;\n if (!isSchema(schema)) throw new TypeError('conditions must return a schema object');\n return schema.resolve(options);\n }\n\n}\n\nexport default Condition;","export default function toArray(value) {\n return value == null ? [] : [].concat(value);\n}","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nimport printValue from './util/printValue';\nimport toArray from './util/toArray';\nlet strReg = /\\$\\{\\s*(\\w+)\\s*\\}/g;\nexport default class ValidationError extends Error {\n static formatError(message, params) {\n const path = params.label || params.path || 'this';\n if (path !== params.path) params = _extends({}, params, {\n path\n });\n if (typeof message === 'string') return message.replace(strReg, (_, key) => printValue(params[key]));\n if (typeof message === 'function') return message(params);\n return message;\n }\n\n static isError(err) {\n return err && err.name === 'ValidationError';\n }\n\n constructor(errorOrErrors, value, field, type) {\n super();\n this.value = void 0;\n this.path = void 0;\n this.type = void 0;\n this.errors = void 0;\n this.params = void 0;\n this.inner = void 0;\n this.name = 'ValidationError';\n this.value = value;\n this.path = field;\n this.type = type;\n this.errors = [];\n this.inner = [];\n toArray(errorOrErrors).forEach(err => {\n if (ValidationError.isError(err)) {\n this.errors.push(...err.errors);\n this.inner = this.inner.concat(err.inner.length ? err.inner : err);\n } else {\n this.errors.push(err);\n }\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\n}","import ValidationError from '../ValidationError';\n\nconst once = cb => {\n let fired = false;\n return (...args) => {\n if (fired) return;\n fired = true;\n cb(...args);\n };\n};\n\nexport default function runTests(options, cb) {\n let {\n endEarly,\n tests,\n args,\n value,\n errors,\n sort,\n path\n } = options;\n let callback = once(cb);\n let count = tests.length;\n const nestedErrors = [];\n errors = errors ? errors : [];\n if (!count) return errors.length ? callback(new ValidationError(errors, value, path)) : callback(null, value);\n\n for (let i = 0; i < tests.length; i++) {\n const test = tests[i];\n test(args, function finishTestRun(err) {\n if (err) {\n // always return early for non validation errors\n if (!ValidationError.isError(err)) {\n return callback(err, value);\n }\n\n if (endEarly) {\n err.value = value;\n return callback(err, value);\n }\n\n nestedErrors.push(err);\n }\n\n if (--count <= 0) {\n if (nestedErrors.length) {\n if (sort) nestedErrors.sort(sort); //show parent errors after the nested ones: name.first, name\n\n if (errors.length) nestedErrors.push(...errors);\n errors = nestedErrors;\n }\n\n if (errors.length) {\n callback(new ValidationError(errors, value, path), value);\n return;\n }\n\n callback(null, value);\n }\n });\n }\n}","import { getter } from 'property-expr';\nconst prefixes = {\n context: '$',\n value: '.'\n};\nexport function create(key, options) {\n return new Reference(key, options);\n}\nexport default class Reference {\n constructor(key, options = {}) {\n this.key = void 0;\n this.isContext = void 0;\n this.isValue = void 0;\n this.isSibling = void 0;\n this.path = void 0;\n this.getter = void 0;\n this.map = void 0;\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 let prefix = this.isContext ? prefixes.context : this.isValue ? prefixes.value : '';\n this.path = this.key.slice(prefix.length);\n this.getter = this.path && getter(this.path, true);\n this.map = options.map;\n }\n\n getValue(value, parent, context) {\n let result = this.isContext ? context : this.isValue ? value : parent;\n if (this.getter) result = this.getter(result || {});\n if (this.map) result = this.map(result);\n return result;\n }\n /**\n *\n * @param {*} value\n * @param {Object} options\n * @param {Object=} options.context\n * @param {Object=} options.parent\n */\n\n\n cast(value, options) {\n return this.getValue(value, options == null ? void 0 : options.parent, options == null ? void 0 : options.context);\n }\n\n resolve() {\n return this;\n }\n\n describe() {\n return {\n type: 'ref',\n key: this.key\n };\n }\n\n toString() {\n return `Ref(${this.key})`;\n }\n\n static isRef(value) {\n return value && value.__isYupRef;\n }\n\n} // @ts-ignore\n\nReference.prototype.__isYupRef = true;","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport mapValues from 'lodash/mapValues';\nimport ValidationError from '../ValidationError';\nimport Ref from '../Reference';\nexport default function createValidation(config) {\n function validate(_ref, cb) {\n let {\n value,\n path = '',\n label,\n options,\n originalValue,\n sync\n } = _ref,\n rest = _objectWithoutPropertiesLoose(_ref, [\"value\", \"path\", \"label\", \"options\", \"originalValue\", \"sync\"]);\n\n const {\n name,\n test,\n params,\n message\n } = config;\n let {\n parent,\n context\n } = options;\n\n function resolve(item) {\n return Ref.isRef(item) ? item.getValue(value, parent, context) : item;\n }\n\n function createError(overrides = {}) {\n const nextParams = mapValues(_extends({\n value,\n originalValue,\n label,\n path: overrides.path || path\n }, params, overrides.params), resolve);\n const error = new ValidationError(ValidationError.formatError(overrides.message || message, nextParams), value, nextParams.path, overrides.type || name);\n error.params = nextParams;\n return error;\n }\n\n let ctx = _extends({\n path,\n parent,\n type: name,\n createError,\n resolve,\n options,\n originalValue\n }, rest);\n\n if (!sync) {\n try {\n Promise.resolve(test.call(ctx, value, ctx)).then(validOrError => {\n if (ValidationError.isError(validOrError)) cb(validOrError);else if (!validOrError) cb(createError());else cb(null, validOrError);\n }).catch(cb);\n } catch (err) {\n cb(err);\n }\n\n return;\n }\n\n let result;\n\n try {\n var _ref2;\n\n result = test.call(ctx, value, ctx);\n\n if (typeof ((_ref2 = result) == null ? void 0 : _ref2.then) === 'function') {\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 } catch (err) {\n cb(err);\n return;\n }\n\n if (ValidationError.isError(result)) cb(result);else if (!result) cb(createError());else cb(null, result);\n }\n\n validate.OPTIONS = config;\n return validate;\n}","import { forEach } from 'property-expr';\n\nlet trim = part => part.substr(0, part.length - 1).substr(1);\n\nexport function getIn(schema, path, value, context = value) {\n let parent, lastPart, lastPartDebug; // root path: ''\n\n if (!path) return {\n parent,\n parentPath: path,\n schema\n };\n forEach(path, (_part, isBracket, isArray) => {\n let part = isBracket ? trim(_part) : _part;\n schema = schema.resolve({\n context,\n parent,\n value\n });\n\n if (schema.innerType) {\n let idx = isArray ? parseInt(part, 10) : 0;\n\n if (value && 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 parent = value;\n value = value && value[idx];\n schema = schema.innerType;\n } // sometimes the array index part of a path doesn't exist: \"nested.arr.child\"\n // in these cases the current part is the next schema and should be processed\n // in this iteration. For cases where the index signature is included this\n // check will fail and we'll handle the `child` part on the next iteration like normal\n\n\n if (!isArray) {\n if (!schema.fields || !schema.fields[part]) throw new Error(`The schema does not contain the path: ${path}. ` + `(failed at: ${lastPartDebug} which is a type: \"${schema._type}\")`);\n parent = value;\n value = value && value[part];\n schema = schema.fields[part];\n }\n\n lastPart = part;\n lastPartDebug = isBracket ? '[' + _part + ']' : '.' + _part;\n });\n return {\n schema,\n parent,\n parentPath: lastPart\n };\n}\n\nconst reach = (obj, path, value, context) => getIn(obj, path, value, context).schema;\n\nexport default reach;","import Reference from '../Reference';\nexport default class ReferenceSet {\n constructor() {\n this.list = void 0;\n this.refs = void 0;\n this.list = new Set();\n this.refs = new Map();\n }\n\n get size() {\n return this.list.size + this.refs.size;\n }\n\n describe() {\n const description = [];\n\n for (const item of this.list) description.push(item);\n\n for (const [, ref] of this.refs) description.push(ref.describe());\n\n return description;\n }\n\n toArray() {\n return Array.from(this.list).concat(Array.from(this.refs.values()));\n }\n\n resolveAll(resolve) {\n return this.toArray().reduce((acc, e) => acc.concat(Reference.isRef(e) ? resolve(e) : e), []);\n }\n\n add(value) {\n Reference.isRef(value) ? this.refs.set(value.key, value) : this.list.add(value);\n }\n\n delete(value) {\n Reference.isRef(value) ? this.refs.delete(value.key) : this.list.delete(value);\n }\n\n clone() {\n const next = new ReferenceSet();\n next.list = new Set(this.list);\n next.refs = new Map(this.refs);\n return next;\n }\n\n merge(newItems, removeItems) {\n const next = this.clone();\n newItems.list.forEach(value => next.add(value));\n newItems.refs.forEach(value => next.add(value));\n removeItems.list.forEach(value => next.delete(value));\n removeItems.refs.forEach(value => next.delete(value));\n return next;\n }\n\n}","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\n// @ts-ignore\nimport cloneDeep from 'nanoclone';\nimport { mixed as locale } from './locale';\nimport Condition from './Condition';\nimport runTests from './util/runTests';\nimport createValidation from './util/createValidation';\nimport printValue from './util/printValue';\nimport Ref from './Reference';\nimport { getIn } from './util/reach';\nimport ValidationError from './ValidationError';\nimport ReferenceSet from './util/ReferenceSet';\nimport toArray from './util/toArray'; // const UNSET = 'unset' as const;\n\nexport default class BaseSchema {\n constructor(options) {\n this.deps = [];\n this.tests = void 0;\n this.transforms = void 0;\n this.conditions = [];\n this._mutate = void 0;\n this._typeError = void 0;\n this._whitelist = new ReferenceSet();\n this._blacklist = new ReferenceSet();\n this.exclusiveTests = Object.create(null);\n this.spec = void 0;\n this.tests = [];\n this.transforms = [];\n this.withMutation(() => {\n this.typeError(locale.notType);\n });\n this.type = (options == null ? void 0 : options.type) || 'mixed';\n this.spec = _extends({\n strip: false,\n strict: false,\n abortEarly: true,\n recursive: true,\n nullable: false,\n presence: 'optional'\n }, options == null ? void 0 : options.spec);\n } // TODO: remove\n\n\n get _type() {\n return this.type;\n }\n\n _typeCheck(_value) {\n return true;\n }\n\n clone(spec) {\n if (this._mutate) {\n if (spec) Object.assign(this.spec, spec);\n return this;\n } // if the nested value is a schema we can skip cloning, since\n // they are already immutable\n\n\n const next = Object.create(Object.getPrototypeOf(this)); // @ts-expect-error this is readonly\n\n next.type = this.type;\n next._typeError = this._typeError;\n next._whitelistError = this._whitelistError;\n next._blacklistError = this._blacklistError;\n next._whitelist = this._whitelist.clone();\n next._blacklist = this._blacklist.clone();\n next.exclusiveTests = _extends({}, this.exclusiveTests); // @ts-expect-error this is readonly\n\n next.deps = [...this.deps];\n next.conditions = [...this.conditions];\n next.tests = [...this.tests];\n next.transforms = [...this.transforms];\n next.spec = cloneDeep(_extends({}, this.spec, spec));\n return next;\n }\n\n label(label) {\n let next = this.clone();\n next.spec.label = label;\n return next;\n }\n\n meta(...args) {\n if (args.length === 0) return this.spec.meta;\n let next = this.clone();\n next.spec.meta = Object.assign(next.spec.meta || {}, args[0]);\n return next;\n } // withContext(): BaseSchema<\n // TCast,\n // TContext,\n // TOutput\n // > {\n // return this as any;\n // }\n\n\n withMutation(fn) {\n let before = this._mutate;\n this._mutate = true;\n let result = fn(this);\n this._mutate = before;\n return result;\n }\n\n 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 let base = this;\n let combined = schema.clone();\n\n const mergedSpec = _extends({}, base.spec, combined.spec); // if (combined.spec.nullable === UNSET)\n // mergedSpec.nullable = base.spec.nullable;\n // if (combined.spec.presence === UNSET)\n // mergedSpec.presence = base.spec.presence;\n\n\n combined.spec = mergedSpec;\n combined._typeError || (combined._typeError = base._typeError);\n combined._whitelistError || (combined._whitelistError = base._whitelistError);\n combined._blacklistError || (combined._blacklistError = base._blacklistError); // manually merge the blacklist/whitelist (the other `schema` takes\n // precedence in case of conflicts)\n\n combined._whitelist = base._whitelist.merge(schema._whitelist, schema._blacklist);\n combined._blacklist = base._blacklist.merge(schema._blacklist, schema._whitelist); // start with the current tests\n\n combined.tests = base.tests;\n combined.exclusiveTests = base.exclusiveTests; // manually add the new tests to ensure\n // the deduping logic is consistent\n\n combined.withMutation(next => {\n schema.tests.forEach(fn => {\n next.test(fn.OPTIONS);\n });\n });\n combined.transforms = [...base.transforms, ...combined.transforms];\n return combined;\n }\n\n isType(v) {\n if (this.spec.nullable && v === null) return true;\n return this._typeCheck(v);\n }\n\n resolve(options) {\n let schema = this;\n\n if (schema.conditions.length) {\n let conditions = schema.conditions;\n schema = schema.clone();\n schema.conditions = [];\n schema = conditions.reduce((schema, condition) => condition.resolve(schema, options), schema);\n schema = schema.resolve(options);\n }\n\n return schema;\n }\n /**\n *\n * @param {*} value\n * @param {Object} options\n * @param {*=} options.parent\n * @param {*=} options.context\n */\n\n\n cast(value, options = {}) {\n let resolvedSchema = this.resolve(_extends({\n value\n }, options));\n\n let result = resolvedSchema._cast(value, options);\n\n if (value !== undefined && options.assert !== false && resolvedSchema.isType(result) !== true) {\n let formattedValue = printValue(value);\n let formattedResult = printValue(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\n _cast(rawValue, _options) {\n let value = rawValue === undefined ? rawValue : this.transforms.reduce((value, fn) => fn.call(this, value, rawValue, this), rawValue);\n\n if (value === undefined) {\n value = this.getDefault();\n }\n\n return value;\n }\n\n _validate(_value, options = {}, cb) {\n let {\n sync,\n path,\n from = [],\n originalValue = _value,\n strict = this.spec.strict,\n abortEarly = this.spec.abortEarly\n } = options;\n let value = _value;\n\n if (!strict) {\n // this._validating = true;\n value = this._cast(value, _extends({\n assert: false\n }, options)); // this._validating = false;\n } // value is cast, we can check if it meets type requirements\n\n\n let args = {\n value,\n path,\n options,\n originalValue,\n schema: this,\n label: this.spec.label,\n sync,\n from\n };\n let initialTests = [];\n if (this._typeError) initialTests.push(this._typeError);\n let finalTests = [];\n if (this._whitelistError) finalTests.push(this._whitelistError);\n if (this._blacklistError) finalTests.push(this._blacklistError);\n runTests({\n args,\n value,\n path,\n sync,\n tests: initialTests,\n endEarly: abortEarly\n }, err => {\n if (err) return void cb(err, value);\n runTests({\n tests: this.tests.concat(finalTests),\n args,\n path,\n sync,\n value,\n endEarly: abortEarly\n }, cb);\n });\n }\n\n validate(value, options, maybeCb) {\n let schema = this.resolve(_extends({}, options, {\n value\n })); // callback case is for nested validations\n\n return typeof maybeCb === 'function' ? schema._validate(value, options, maybeCb) : new Promise((resolve, reject) => schema._validate(value, options, (err, value) => {\n if (err) reject(err);else resolve(value);\n }));\n }\n\n validateSync(value, options) {\n let schema = this.resolve(_extends({}, options, {\n value\n }));\n let result;\n\n schema._validate(value, _extends({}, options, {\n sync: true\n }), (err, value) => {\n if (err) throw err;\n result = value;\n });\n\n return result;\n }\n\n isValid(value, options) {\n return this.validate(value, options).then(() => true, err => {\n if (ValidationError.isError(err)) return false;\n throw err;\n });\n }\n\n isValidSync(value, options) {\n try {\n this.validateSync(value, options);\n return true;\n } catch (err) {\n if (ValidationError.isError(err)) return false;\n throw err;\n }\n }\n\n _getDefault() {\n let defaultValue = this.spec.default;\n\n if (defaultValue == null) {\n return defaultValue;\n }\n\n return typeof defaultValue === 'function' ? defaultValue.call(this) : cloneDeep(defaultValue);\n }\n\n getDefault(options) {\n let schema = this.resolve(options || {});\n return schema._getDefault();\n }\n\n default(def) {\n if (arguments.length === 0) {\n return this._getDefault();\n }\n\n let next = this.clone({\n default: def\n });\n return next;\n }\n\n strict(isStrict = true) {\n let next = this.clone();\n next.spec.strict = isStrict;\n return next;\n }\n\n _isPresent(value) {\n return value != null;\n }\n\n defined(message = locale.defined) {\n return this.test({\n message,\n name: 'defined',\n exclusive: true,\n\n test(value) {\n return value !== undefined;\n }\n\n });\n }\n\n required(message = locale.required) {\n return this.clone({\n presence: 'required'\n }).withMutation(s => s.test({\n message,\n name: 'required',\n exclusive: true,\n\n test(value) {\n return this.schema._isPresent(value);\n }\n\n }));\n }\n\n notRequired() {\n let next = this.clone({\n presence: 'optional'\n });\n next.tests = next.tests.filter(test => test.OPTIONS.name !== 'required');\n return next;\n }\n\n nullable(isNullable = true) {\n let next = this.clone({\n nullable: isNullable !== false\n });\n return next;\n }\n\n transform(fn) {\n let next = this.clone();\n next.transforms.push(fn);\n return next;\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\n\n test(...args) {\n let opts;\n\n if (args.length === 1) {\n if (typeof args[0] === 'function') {\n opts = {\n test: args[0]\n };\n } else {\n opts = args[0];\n }\n } else if (args.length === 2) {\n opts = {\n name: args[0],\n test: args[1]\n };\n } else {\n opts = {\n name: args[0],\n message: args[1],\n test: args[2]\n };\n }\n\n if (opts.message === undefined) opts.message = locale.default;\n if (typeof opts.test !== 'function') throw new TypeError('`test` is a required parameters');\n let next = this.clone();\n let validate = createValidation(opts);\n let isExclusive = opts.exclusive || opts.name && next.exclusiveTests[opts.name] === true;\n\n if (opts.exclusive) {\n if (!opts.name) throw new TypeError('Exclusive tests must provide a unique `name` identifying the test');\n }\n\n if (opts.name) next.exclusiveTests[opts.name] = !!opts.exclusive;\n next.tests = next.tests.filter(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\n when(keys, options) {\n if (!Array.isArray(keys) && typeof keys !== 'string') {\n options = keys;\n keys = '.';\n }\n\n let next = this.clone();\n let deps = toArray(keys).map(key => new Ref(key));\n deps.forEach(dep => {\n // @ts-ignore\n if (dep.isSibling) next.deps.push(dep.key);\n });\n next.conditions.push(new Condition(deps, options));\n return next;\n }\n\n typeError(message) {\n let next = this.clone();\n next._typeError = createValidation({\n message,\n name: 'typeError',\n\n 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 });\n return next;\n }\n\n oneOf(enums, message = locale.oneOf) {\n let next = this.clone();\n enums.forEach(val => {\n next._whitelist.add(val);\n\n next._blacklist.delete(val);\n });\n next._whitelistError = createValidation({\n message,\n name: 'oneOf',\n\n test(value) {\n if (value === undefined) return true;\n let valids = this.schema._whitelist;\n let resolved = valids.resolveAll(this.resolve);\n return resolved.includes(value) ? true : this.createError({\n params: {\n values: valids.toArray().join(', '),\n resolved\n }\n });\n }\n\n });\n return next;\n }\n\n notOneOf(enums, message = locale.notOneOf) {\n let next = this.clone();\n enums.forEach(val => {\n next._blacklist.add(val);\n\n next._whitelist.delete(val);\n });\n next._blacklistError = createValidation({\n message,\n name: 'notOneOf',\n\n test(value) {\n let invalids = this.schema._blacklist;\n let resolved = invalids.resolveAll(this.resolve);\n if (resolved.includes(value)) return this.createError({\n params: {\n values: invalids.toArray().join(', '),\n resolved\n }\n });\n return true;\n }\n\n });\n return next;\n }\n\n strip(strip = true) {\n let next = this.clone();\n next.spec.strip = strip;\n return next;\n }\n\n describe() {\n const next = this.clone();\n const {\n label,\n meta\n } = next.spec;\n const description = {\n meta,\n label,\n type: next.type,\n oneOf: next._whitelist.describe(),\n notOneOf: next._blacklist.describe(),\n tests: next.tests.map(fn => ({\n name: fn.OPTIONS.name,\n params: fn.OPTIONS.params\n })).filter((n, idx, list) => list.findIndex(c => c.name === n.name) === idx)\n };\n return description;\n }\n\n} // eslint-disable-next-line @typescript-eslint/no-unused-vars\n\n// @ts-expect-error\nBaseSchema.prototype.__isYupSchema__ = true;\n\nfor (const method of ['validate', 'validateSync']) BaseSchema.prototype[`${method}At`] = function (path, value, options = {}) {\n const {\n parent,\n parentPath,\n schema\n } = getIn(this, path, value, options.context);\n return schema[method](parent && parent[parentPath], _extends({}, options, {\n parent,\n path\n }));\n};\n\nfor (const alias of ['equals', 'is']) BaseSchema.prototype[alias] = BaseSchema.prototype.oneOf;\n\nfor (const alias of ['not', 'nope']) BaseSchema.prototype[alias] = BaseSchema.prototype.notOneOf;\n\nBaseSchema.prototype.optional = BaseSchema.prototype.notRequired;","import BaseSchema from './schema';\nconst Mixed = BaseSchema;\nexport default Mixed;\nexport function create() {\n return new Mixed();\n} // XXX: this is using the Base schema so that `addMethod(mixed)` works as a base class\n\ncreate.prototype = Mixed.prototype;","const isAbsent = value => value == null;\n\nexport default isAbsent;","import BaseSchema from './schema';\nimport { boolean as locale } from './locale';\nimport isAbsent from './util/isAbsent';\nexport function create() {\n return new BooleanSchema();\n}\nexport default class BooleanSchema extends BaseSchema {\n constructor() {\n super({\n type: 'boolean'\n });\n this.withMutation(() => {\n this.transform(function (value) {\n if (!this.isType(value)) {\n if (/^(true|1)$/i.test(String(value))) return true;\n if (/^(false|0)$/i.test(String(value))) return false;\n }\n\n return value;\n });\n });\n }\n\n _typeCheck(v) {\n if (v instanceof Boolean) v = v.valueOf();\n return typeof v === 'boolean';\n }\n\n isTrue(message = locale.isValue) {\n return this.test({\n message,\n name: 'is-value',\n exclusive: true,\n params: {\n value: 'true'\n },\n\n test(value) {\n return isAbsent(value) || value === true;\n }\n\n });\n }\n\n isFalse(message = locale.isValue) {\n return this.test({\n message,\n name: 'is-value',\n exclusive: true,\n params: {\n value: 'false'\n },\n\n test(value) {\n return isAbsent(value) || value === false;\n }\n\n });\n }\n\n}\ncreate.prototype = BooleanSchema.prototype;","import getPrototypeOf from \"./getPrototypeOf.js\";\nexport default function _superPropBase(object, property) {\n while (!Object.prototype.hasOwnProperty.call(object, property)) {\n object = getPrototypeOf(object);\n if (object === null) break;\n }\n return object;\n}","import superPropBase from \"./superPropBase.js\";\nexport default function _get() {\n if (typeof Reflect !== \"undefined\" && Reflect.get) {\n _get = Reflect.get.bind();\n } else {\n _get = function _get(target, property, receiver) {\n var base = superPropBase(target, property);\n if (!base) return;\n var desc = Object.getOwnPropertyDescriptor(base, property);\n if (desc.get) {\n return desc.get.call(arguments.length < 3 ? target : receiver);\n }\n return desc.value;\n };\n }\n return _get.apply(this, arguments);\n}","import { string as locale } from './locale';\nimport isAbsent from './util/isAbsent';\nimport BaseSchema from './schema'; // eslint-disable-next-line\n\nlet 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\nlet 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; // eslint-disable-next-line\n\nlet rUUID = /^(?:[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}|00000000-0000-0000-0000-000000000000)$/i;\n\nlet isTrimmed = value => isAbsent(value) || value === value.trim();\n\nlet objStringTag = {}.toString();\nexport function create() {\n return new StringSchema();\n}\nexport default class StringSchema extends BaseSchema {\n constructor() {\n super({\n type: 'string'\n });\n this.withMutation(() => {\n this.transform(function (value) {\n if (this.isType(value)) return value;\n if (Array.isArray(value)) return value;\n const strValue = value != null && value.toString ? value.toString() : value;\n if (strValue === objStringTag) return value;\n return strValue;\n });\n });\n }\n\n _typeCheck(value) {\n if (value instanceof String) value = value.valueOf();\n return typeof value === 'string';\n }\n\n _isPresent(value) {\n return super._isPresent(value) && !!value.length;\n }\n\n length(length, message = locale.length) {\n return this.test({\n message,\n name: 'length',\n exclusive: true,\n params: {\n length\n },\n\n test(value) {\n return isAbsent(value) || value.length === this.resolve(length);\n }\n\n });\n }\n\n min(min, message = locale.min) {\n return this.test({\n message,\n name: 'min',\n exclusive: true,\n params: {\n min\n },\n\n test(value) {\n return isAbsent(value) || value.length >= this.resolve(min);\n }\n\n });\n }\n\n max(max, message = locale.max) {\n return this.test({\n name: 'max',\n exclusive: true,\n message,\n params: {\n max\n },\n\n test(value) {\n return isAbsent(value) || value.length <= this.resolve(max);\n }\n\n });\n }\n\n matches(regex, options) {\n let excludeEmptyString = false;\n let message;\n let name;\n\n if (options) {\n if (typeof options === 'object') {\n ({\n excludeEmptyString = false,\n message,\n name\n } = options);\n } else {\n message = options;\n }\n }\n\n return this.test({\n name: name || 'matches',\n message: message || locale.matches,\n params: {\n regex\n },\n test: value => isAbsent(value) || value === '' && excludeEmptyString || value.search(regex) !== -1\n });\n }\n\n email(message = locale.email) {\n return this.matches(rEmail, {\n name: 'email',\n message,\n excludeEmptyString: true\n });\n }\n\n url(message = locale.url) {\n return this.matches(rUrl, {\n name: 'url',\n message,\n excludeEmptyString: true\n });\n }\n\n uuid(message = locale.uuid) {\n return this.matches(rUUID, {\n name: 'uuid',\n message,\n excludeEmptyString: false\n });\n } //-- transforms --\n\n\n ensure() {\n return this.default('').transform(val => val === null ? '' : val);\n }\n\n trim(message = locale.trim) {\n return this.transform(val => val != null ? val.trim() : val).test({\n message,\n name: 'trim',\n test: isTrimmed\n });\n }\n\n lowercase(message = locale.lowercase) {\n return this.transform(value => !isAbsent(value) ? value.toLowerCase() : value).test({\n message,\n name: 'string_case',\n exclusive: true,\n test: value => isAbsent(value) || value === value.toLowerCase()\n });\n }\n\n uppercase(message = locale.uppercase) {\n return this.transform(value => !isAbsent(value) ? value.toUpperCase() : value).test({\n message,\n name: 'string_case',\n exclusive: true,\n test: value => isAbsent(value) || value === value.toUpperCase()\n });\n }\n\n}\ncreate.prototype = StringSchema.prototype; //\n// String Interfaces\n//","import { number as locale } from './locale';\nimport isAbsent from './util/isAbsent';\nimport BaseSchema from './schema';\n\nlet isNaN = value => value != +value;\n\nexport function create() {\n return new NumberSchema();\n}\nexport default class NumberSchema extends BaseSchema {\n constructor() {\n super({\n type: 'number'\n });\n this.withMutation(() => {\n this.transform(function (value) {\n let 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 _typeCheck(value) {\n if (value instanceof Number) value = value.valueOf();\n return typeof value === 'number' && !isNaN(value);\n }\n\n min(min, message = locale.min) {\n return this.test({\n message,\n name: 'min',\n exclusive: true,\n params: {\n min\n },\n\n test(value) {\n return isAbsent(value) || value >= this.resolve(min);\n }\n\n });\n }\n\n max(max, message = locale.max) {\n return this.test({\n message,\n name: 'max',\n exclusive: true,\n params: {\n max\n },\n\n test(value) {\n return isAbsent(value) || value <= this.resolve(max);\n }\n\n });\n }\n\n lessThan(less, message = locale.lessThan) {\n return this.test({\n message,\n name: 'max',\n exclusive: true,\n params: {\n less\n },\n\n test(value) {\n return isAbsent(value) || value < this.resolve(less);\n }\n\n });\n }\n\n moreThan(more, message = locale.moreThan) {\n return this.test({\n message,\n name: 'min',\n exclusive: true,\n params: {\n more\n },\n\n test(value) {\n return isAbsent(value) || value > this.resolve(more);\n }\n\n });\n }\n\n positive(msg = locale.positive) {\n return this.moreThan(0, msg);\n }\n\n negative(msg = locale.negative) {\n return this.lessThan(0, msg);\n }\n\n integer(message = locale.integer) {\n return this.test({\n name: 'integer',\n message,\n test: val => isAbsent(val) || Number.isInteger(val)\n });\n }\n\n truncate() {\n return this.transform(value => !isAbsent(value) ? value | 0 : value);\n }\n\n round(method) {\n var _method;\n\n let avail = ['ceil', 'floor', 'round', 'trunc'];\n method = ((_method = method) == null ? void 0 : _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(value => !isAbsent(value) ? Math[method](value) : value);\n }\n\n}\ncreate.prototype = NumberSchema.prototype; //\n// Number Interfaces\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\nvar isoReg = /^(\\d{4}|[+\\-]\\d{6})(?:-?(\\d{2})(?:-?(\\d{2}))?)?(?:[ T]?(\\d{2}):?(\\d{2})(?::?(\\d{2})(?:[,\\.](\\d{1,}))?)?(?:(Z)|([+\\-])(\\d{2})(?::?(\\d{2}))?)?)?$/;\nexport default function 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) struct[k] = +struct[k] || 0; // 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}","// @ts-ignore\nimport isoParse from './util/isodate';\nimport { date as locale } from './locale';\nimport isAbsent from './util/isAbsent';\nimport Ref from './Reference';\nimport BaseSchema from './schema';\nlet invalidDate = new Date('');\n\nlet isDate = obj => Object.prototype.toString.call(obj) === '[object Date]';\n\nexport function create() {\n return new DateSchema();\n}\nexport default class DateSchema extends BaseSchema {\n constructor() {\n super({\n type: 'date'\n });\n this.withMutation(() => {\n this.transform(function (value) {\n if (this.isType(value)) return value;\n value = isoParse(value); // 0 is a valid timestamp equivalent to 1970-01-01T00:00:00Z(unix epoch) or before.\n\n return !isNaN(value) ? new Date(value) : invalidDate;\n });\n });\n }\n\n _typeCheck(v) {\n return isDate(v) && !isNaN(v.getTime());\n }\n\n prepareParam(ref, name) {\n let param;\n\n if (!Ref.isRef(ref)) {\n let cast = this.cast(ref);\n if (!this._typeCheck(cast)) throw new TypeError(`\\`${name}\\` must be a Date or a value that can be \\`cast()\\` to a Date`);\n param = cast;\n } else {\n param = ref;\n }\n\n return param;\n }\n\n min(min, message = locale.min) {\n let limit = this.prepareParam(min, 'min');\n return this.test({\n message,\n name: 'min',\n exclusive: true,\n params: {\n min\n },\n\n test(value) {\n return isAbsent(value) || value >= this.resolve(limit);\n }\n\n });\n }\n\n max(max, message = locale.max) {\n let limit = this.prepareParam(max, 'max');\n return this.test({\n message,\n name: 'max',\n exclusive: true,\n params: {\n max\n },\n\n test(value) {\n return isAbsent(value) || value <= this.resolve(limit);\n }\n\n });\n }\n\n}\nDateSchema.INVALID_DATE = invalidDate;\ncreate.prototype = DateSchema.prototype;\ncreate.INVALID_DATE = invalidDate;","import has from 'lodash/has'; // @ts-expect-error\n\nimport toposort from 'toposort';\nimport { split } from 'property-expr';\nimport Ref from '../Reference';\nimport isSchema from './isSchema';\nexport default function sortFields(fields, excludedEdges = []) {\n let edges = [];\n let nodes = new Set();\n let excludes = new Set(excludedEdges.map(([a, b]) => `${a}-${b}`));\n\n function addNode(depPath, key) {\n let node = split(depPath)[0];\n nodes.add(node);\n if (!excludes.has(`${key}-${node}`)) edges.push([key, node]);\n }\n\n for (const key in fields) if (has(fields, key)) {\n let value = fields[key];\n nodes.add(key);\n if (Ref.isRef(value) && value.isSibling) addNode(value.path, key);else if (isSchema(value) && 'deps' in value) value.deps.forEach(path => addNode(path, key));\n }\n\n return toposort.array(Array.from(nodes), edges).reverse();\n}","function findIndex(arr, err) {\n let idx = Infinity;\n arr.some((key, ii) => {\n var _err$path;\n\n if (((_err$path = err.path) == null ? void 0 : _err$path.indexOf(key)) !== -1) {\n idx = ii;\n return true;\n }\n });\n return idx;\n}\n\nexport default function sortByKeyOrder(keys) {\n return (a, b) => {\n return findIndex(keys, a) - findIndex(keys, b);\n };\n}","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nimport has from 'lodash/has';\nimport snakeCase from 'lodash/snakeCase';\nimport camelCase from 'lodash/camelCase';\nimport mapKeys from 'lodash/mapKeys';\nimport mapValues from 'lodash/mapValues';\nimport { getter } from 'property-expr';\nimport { object as locale } from './locale';\nimport sortFields from './util/sortFields';\nimport sortByKeyOrder from './util/sortByKeyOrder';\nimport runTests from './util/runTests';\nimport ValidationError from './ValidationError';\nimport BaseSchema from './schema';\n\nlet isObject = obj => Object.prototype.toString.call(obj) === '[object Object]';\n\nfunction unknown(ctx, value) {\n let known = Object.keys(ctx.fields);\n return Object.keys(value).filter(key => known.indexOf(key) === -1);\n}\n\nconst defaultSort = sortByKeyOrder([]);\nexport default class ObjectSchema extends BaseSchema {\n constructor(spec) {\n super({\n type: 'object'\n });\n this.fields = Object.create(null);\n this._sortErrors = defaultSort;\n this._nodes = [];\n this._excludedEdges = [];\n this.withMutation(() => {\n this.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 this.shape(spec);\n }\n });\n }\n\n _typeCheck(value) {\n return isObject(value) || typeof value === 'function';\n }\n\n _cast(_value, options = {}) {\n var _options$stripUnknown;\n\n let value = super._cast(_value, options); //should ignore nulls here\n\n\n if (value === undefined) return this.getDefault();\n if (!this._typeCheck(value)) return value;\n let fields = this.fields;\n let strip = (_options$stripUnknown = options.stripUnknown) != null ? _options$stripUnknown : this.spec.noUnknown;\n\n let props = this._nodes.concat(Object.keys(value).filter(v => this._nodes.indexOf(v) === -1));\n\n let intermediateValue = {}; // is filled during the transform below\n\n let innerOptions = _extends({}, options, {\n parent: intermediateValue,\n __validating: options.__validating || false\n });\n\n let isChanged = false;\n\n for (const prop of props) {\n let field = fields[prop];\n let exists = has(value, prop);\n\n if (field) {\n let fieldValue;\n let inputValue = value[prop]; // safe to mutate since this is fired in sequence\n\n innerOptions.path = (options.path ? `${options.path}.` : '') + prop; // innerOptions.value = value[prop];\n\n field = field.resolve({\n value: inputValue,\n context: options.context,\n parent: intermediateValue\n });\n let fieldSpec = 'spec' in field ? field.spec : undefined;\n let strict = fieldSpec == null ? void 0 : fieldSpec.strict;\n\n if (fieldSpec == null ? void 0 : fieldSpec.strip) {\n isChanged = isChanged || prop in value;\n continue;\n }\n\n fieldValue = !options.__validating || !strict ? // TODO: use _cast, this is double resolving\n field.cast(value[prop], innerOptions) : value[prop];\n\n if (fieldValue !== undefined) {\n intermediateValue[prop] = fieldValue;\n }\n } else if (exists && !strip) {\n intermediateValue[prop] = value[prop];\n }\n\n if (intermediateValue[prop] !== value[prop]) {\n isChanged = true;\n }\n }\n\n return isChanged ? intermediateValue : value;\n }\n\n _validate(_value, opts = {}, callback) {\n let errors = [];\n let {\n sync,\n from = [],\n originalValue = _value,\n abortEarly = this.spec.abortEarly,\n recursive = this.spec.recursive\n } = opts;\n from = [{\n schema: this,\n value: originalValue\n }, ...from]; // this flag is needed for handling `strict` correctly in the context of\n // validation vs just casting. e.g strict() on a field is only used when validating\n\n opts.__validating = true;\n opts.originalValue = originalValue;\n opts.from = from;\n\n super._validate(_value, opts, (err, value) => {\n if (err) {\n if (!ValidationError.isError(err) || abortEarly) {\n return void callback(err, value);\n }\n\n errors.push(err);\n }\n\n if (!recursive || !isObject(value)) {\n callback(errors[0] || null, value);\n return;\n }\n\n originalValue = originalValue || value;\n\n let tests = this._nodes.map(key => (_, cb) => {\n let path = key.indexOf('.') === -1 ? (opts.path ? `${opts.path}.` : '') + key : `${opts.path || ''}[\"${key}\"]`;\n let field = this.fields[key];\n\n if (field && 'validate' in field) {\n field.validate(value[key], _extends({}, opts, {\n // @ts-ignore\n path,\n from,\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 strict: true,\n parent: value,\n originalValue: originalValue[key]\n }), cb);\n return;\n }\n\n cb(null);\n });\n\n runTests({\n sync,\n tests,\n value,\n errors,\n endEarly: abortEarly,\n sort: this._sortErrors,\n path: opts.path\n }, callback);\n });\n }\n\n clone(spec) {\n const next = super.clone(spec);\n next.fields = _extends({}, this.fields);\n next._nodes = this._nodes;\n next._excludedEdges = this._excludedEdges;\n next._sortErrors = this._sortErrors;\n return next;\n }\n\n concat(schema) {\n let next = super.concat(schema);\n let nextFields = next.fields;\n\n for (let [field, schemaOrRef] of Object.entries(this.fields)) {\n const target = nextFields[field];\n\n if (target === undefined) {\n nextFields[field] = schemaOrRef;\n } else if (target instanceof BaseSchema && schemaOrRef instanceof BaseSchema) {\n nextFields[field] = schemaOrRef.concat(target);\n }\n }\n\n return next.withMutation(() => next.shape(nextFields, this._excludedEdges));\n }\n\n getDefaultFromShape() {\n let dft = {};\n\n this._nodes.forEach(key => {\n const field = this.fields[key];\n dft[key] = 'default' in field ? field.getDefault() : undefined;\n });\n\n return dft;\n }\n\n _getDefault() {\n if ('default' in this.spec) {\n return super._getDefault();\n } // if there is no default set invent one\n\n\n if (!this._nodes.length) {\n return undefined;\n }\n\n return this.getDefaultFromShape();\n }\n\n shape(additions, excludes = []) {\n let next = this.clone();\n let fields = Object.assign(next.fields, additions);\n next.fields = fields;\n next._sortErrors = sortByKeyOrder(Object.keys(fields));\n\n if (excludes.length) {\n // this is a convenience for when users only supply a single pair\n if (!Array.isArray(excludes[0])) excludes = [excludes];\n next._excludedEdges = [...next._excludedEdges, ...excludes];\n }\n\n next._nodes = sortFields(fields, next._excludedEdges);\n return next;\n }\n\n pick(keys) {\n const picked = {};\n\n for (const key of keys) {\n if (this.fields[key]) picked[key] = this.fields[key];\n }\n\n return this.clone().withMutation(next => {\n next.fields = {};\n return next.shape(picked);\n });\n }\n\n omit(keys) {\n const next = this.clone();\n const fields = next.fields;\n next.fields = {};\n\n for (const key of keys) {\n delete fields[key];\n }\n\n return next.withMutation(() => next.shape(fields));\n }\n\n from(from, to, alias) {\n let fromGetter = getter(from, true);\n return this.transform(obj => {\n if (obj == null) return obj;\n let newObj = obj;\n\n if (has(obj, from)) {\n newObj = _extends({}, obj);\n if (!alias) delete newObj[from];\n newObj[to] = fromGetter(obj);\n }\n\n return newObj;\n });\n }\n\n noUnknown(noAllow = true, message = locale.noUnknown) {\n if (typeof noAllow === 'string') {\n message = noAllow;\n noAllow = true;\n }\n\n let next = this.test({\n name: 'noUnknown',\n exclusive: true,\n message: message,\n\n test(value) {\n if (value == null) return true;\n const unknownKeys = unknown(this.schema, value);\n return !noAllow || unknownKeys.length === 0 || this.createError({\n params: {\n unknown: unknownKeys.join(', ')\n }\n });\n }\n\n });\n next.spec.noUnknown = noAllow;\n return next;\n }\n\n unknown(allow = true, message = locale.noUnknown) {\n return this.noUnknown(!allow, message);\n }\n\n transformKeys(fn) {\n return this.transform(obj => obj && mapKeys(obj, (_, key) => fn(key)));\n }\n\n camelCase() {\n return this.transformKeys(camelCase);\n }\n\n snakeCase() {\n return this.transformKeys(snakeCase);\n }\n\n constantCase() {\n return this.transformKeys(key => snakeCase(key).toUpperCase());\n }\n\n describe() {\n let base = super.describe();\n base.fields = mapValues(this.fields, value => value.describe());\n return base;\n }\n\n}\nexport function create(spec) {\n return new ObjectSchema(spec);\n}\ncreate.prototype = ObjectSchema.prototype;","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nimport isAbsent from './util/isAbsent';\nimport isSchema from './util/isSchema';\nimport printValue from './util/printValue';\nimport { array as locale } from './locale';\nimport runTests from './util/runTests';\nimport ValidationError from './ValidationError';\nimport BaseSchema from './schema';\nexport function create(type) {\n return new ArraySchema(type);\n}\nexport default class ArraySchema extends BaseSchema {\n constructor(type) {\n super({\n type: 'array'\n }); // `undefined` specifically means uninitialized, as opposed to\n // \"no subtype\"\n\n this.innerType = void 0;\n this.innerType = type;\n this.withMutation(() => {\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 }\n\n _typeCheck(v) {\n return Array.isArray(v);\n }\n\n get _subType() {\n return this.innerType;\n }\n\n _cast(_value, _opts) {\n const value = super._cast(_value, _opts); //should ignore nulls here\n\n\n if (!this._typeCheck(value) || !this.innerType) return value;\n let isChanged = false;\n const castArray = value.map((v, idx) => {\n const castElement = this.innerType.cast(v, _extends({}, _opts, {\n path: `${_opts.path || ''}[${idx}]`\n }));\n\n if (castElement !== v) {\n isChanged = true;\n }\n\n return castElement;\n });\n return isChanged ? castArray : value;\n }\n\n _validate(_value, options = {}, callback) {\n var _options$abortEarly, _options$recursive;\n\n let errors = [];\n let sync = options.sync;\n let path = options.path;\n let innerType = this.innerType;\n let endEarly = (_options$abortEarly = options.abortEarly) != null ? _options$abortEarly : this.spec.abortEarly;\n let recursive = (_options$recursive = options.recursive) != null ? _options$recursive : this.spec.recursive;\n let originalValue = options.originalValue != null ? options.originalValue : _value;\n\n super._validate(_value, options, (err, value) => {\n if (err) {\n if (!ValidationError.isError(err) || endEarly) {\n return void callback(err, value);\n }\n\n errors.push(err);\n }\n\n if (!recursive || !innerType || !this._typeCheck(value)) {\n callback(errors[0] || null, value);\n return;\n }\n\n originalValue = originalValue || value; // #950 Ensure that sparse array empty slots are validated\n\n let tests = new Array(value.length);\n\n for (let idx = 0; idx < value.length; idx++) {\n let item = value[idx];\n let path = `${options.path || ''}[${idx}]`; // object._validate note for isStrict explanation\n\n let innerOptions = _extends({}, options, {\n path,\n strict: true,\n parent: value,\n index: idx,\n originalValue: originalValue[idx]\n });\n\n tests[idx] = (_, cb) => innerType.validate(item, innerOptions, cb);\n }\n\n runTests({\n sync,\n path,\n value,\n errors,\n endEarly,\n tests\n }, callback);\n });\n }\n\n clone(spec) {\n const next = super.clone(spec);\n next.innerType = this.innerType;\n return next;\n }\n\n concat(schema) {\n let next = super.concat(schema);\n next.innerType = this.innerType;\n if (schema.innerType) next.innerType = next.innerType ? // @ts-expect-error Lazy doesn't have concat()\n next.innerType.concat(schema.innerType) : schema.innerType;\n return next;\n }\n\n of(schema) {\n // FIXME: this should return a new instance of array without the default to be\n let next = this.clone();\n if (!isSchema(schema)) throw new TypeError('`array.of()` sub-schema must be a valid yup schema not: ' + printValue(schema)); // FIXME(ts):\n\n next.innerType = schema;\n return next;\n }\n\n length(length, message = locale.length) {\n return this.test({\n message,\n name: 'length',\n exclusive: true,\n params: {\n length\n },\n\n test(value) {\n return isAbsent(value) || value.length === this.resolve(length);\n }\n\n });\n }\n\n min(min, message) {\n message = message || locale.min;\n return this.test({\n message,\n name: 'min',\n exclusive: true,\n params: {\n min\n },\n\n // FIXME(ts): Array\n test(value) {\n return isAbsent(value) || value.length >= this.resolve(min);\n }\n\n });\n }\n\n max(max, message) {\n message = message || locale.max;\n return this.test({\n message,\n name: 'max',\n exclusive: true,\n params: {\n max\n },\n\n test(value) {\n return isAbsent(value) || value.length <= this.resolve(max);\n }\n\n });\n }\n\n ensure() {\n return this.default(() => []).transform((val, original) => {\n // We don't want to return `null` for nullable schema\n if (this._typeCheck(val)) return val;\n return original == null ? [] : [].concat(original);\n });\n }\n\n compact(rejector) {\n let reject = !rejector ? v => !!v : (v, i, a) => !rejector(v, i, a);\n return this.transform(values => values != null ? values.filter(reject) : values);\n }\n\n describe() {\n let base = super.describe();\n if (this.innerType) base.innerType = this.innerType.describe();\n return base;\n }\n\n nullable(isNullable = true) {\n return super.nullable(isNullable);\n }\n\n defined() {\n return super.defined();\n }\n\n required(msg) {\n return super.required(msg);\n }\n\n}\ncreate.prototype = ArraySchema.prototype; //\n// Interfaces\n//","import React from \"react\";\nimport Form from \"react-bootstrap/Form\";\nimport Button from \"react-bootstrap/Button\";\nimport Spinner from \"react-bootstrap/Spinner\";\nimport { Link } from \"react-router-dom\";\nimport { useForm } from \"react-hook-form\";\nimport { yupResolver } from \"@hookform/resolvers/yup\";\nimport * as yup from \"yup\";\n\nconst schema = yup.object().shape({\n email: yup.string().email(\"Email address is invalid\").required(\"Email address is required\"),\n password: yup.string().required(\"Password is required\"),\n});\n\nexport default function LoginForm({ isLoading, onSubmit }) {\n const {\n register,\n handleSubmit,\n formState: { errors },\n } = useForm({\n resolver: yupResolver(schema),\n });\n\n return (\n
\n \n Email address\n \n {errors.email && errors.email.message}\n \n\n \n Password\n \n {errors.password && errors.password.message}\n \n\n \n \n \n\n {!process.env.REACT_APP_SELF_HOSTED && (\n <>\n \n Create an account\n \n\n Forgot password?\n \n )}\n
\n );\n}\n","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport React, { forwardRef } from 'react';\nimport PropTypes from 'prop-types';\nvar Check = forwardRef(function (_ref, ref) {\n var _ref$color = _ref.color,\n color = _ref$color === void 0 ? 'currentColor' : _ref$color,\n _ref$size = _ref.size,\n size = _ref$size === void 0 ? 24 : _ref$size,\n rest = _objectWithoutProperties(_ref, [\"color\", \"size\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n ref: ref,\n xmlns: \"http://www.w3.org/2000/svg\",\n width: size,\n height: size,\n viewBox: \"0 0 24 24\",\n fill: \"none\",\n stroke: color,\n strokeWidth: \"2\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n }, rest), /*#__PURE__*/React.createElement(\"polyline\", {\n points: \"20 6 9 17 4 12\"\n }));\n});\nCheck.propTypes = {\n color: PropTypes.string,\n size: PropTypes.oneOfType([PropTypes.string, PropTypes.number])\n};\nCheck.displayName = 'Check';\nexport default Check;","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport React, { forwardRef } from 'react';\nimport PropTypes from 'prop-types';\nvar X = forwardRef(function (_ref, ref) {\n var _ref$color = _ref.color,\n color = _ref$color === void 0 ? 'currentColor' : _ref$color,\n _ref$size = _ref.size,\n size = _ref$size === void 0 ? 24 : _ref$size,\n rest = _objectWithoutProperties(_ref, [\"color\", \"size\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n ref: ref,\n xmlns: \"http://www.w3.org/2000/svg\",\n width: size,\n height: size,\n viewBox: \"0 0 24 24\",\n fill: \"none\",\n stroke: color,\n strokeWidth: \"2\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n }, rest), /*#__PURE__*/React.createElement(\"line\", {\n x1: \"18\",\n y1: \"6\",\n x2: \"6\",\n y2: \"18\"\n }), /*#__PURE__*/React.createElement(\"line\", {\n x1: \"6\",\n y1: \"6\",\n x2: \"18\",\n y2: \"18\"\n }));\n});\nX.propTypes = {\n color: PropTypes.string,\n size: PropTypes.oneOfType([PropTypes.string, PropTypes.number])\n};\nX.displayName = 'X';\nexport default X;","// Various Cognito Validation Rules\n// https://docs.aws.amazon.com/cognito/latest/developerguide/user-pool-settings-policies.html\nexport default function inspectPasswordStrength(password) {\n password = password || \"\"; // undefined or null\n\n return {\n hasLowerCase: /[a-z]/.test(password),\n hasUpperCase: /[A-Z]/.test(password),\n hasNumber: /[0-9]/.test(password),\n // hasSpecialCharacter: /[=+\\-^$*.\\[\\]{}()?\"!@#%&\\/\\\\,><':;|_~`]/.test(\n // password\n // ),\n // hasNoSpaces: /^\\S*$/.test(password),\n hasGoodSize: /\\S{8,99}/.test(password)\n };\n}\n","import React from \"react\";\nimport classnames from \"classnames\";\nimport { Check as CheckIcon, X as XIcon } from \"react-feather\";\n\nimport isGoodPassword from \"./isGoodPassword\";\nimport inspectPasswordStrength from \"./inspectPasswordStrength\";\n\nexport default function PasswordStrengthInfo({ password }) {\n const isValid = isGoodPassword(password);\n const validations = inspectPasswordStrength(password);\n\n return (\n
\n

\n {isValid ? (\n \n You picked a{\" \"}\n great password, it has it\n all!\n \n ) : (\n \"Password needs to contain:\"\n )}\n

\n
    \n \n a lowercase character,\n \n \n an UPPERCASE character,\n \n \n a number,\n \n \n is 8 or more characters long.\n \n
\n
\n );\n}\n\nfunction PasswordStrengthOption({ isMet, children }) {\n return (\n \n {isMet ? : } {children}\n \n );\n}\n","import inspectPasswordStrength from \"./inspectPasswordStrength\";\n\nexport default function isGoodPassword(password) {\n const validations = inspectPasswordStrength(password);\n const firstFailedCheck = Object.values(validations).find(\n check => check === false\n );\n return firstFailedCheck === undefined;\n}\n","import React from \"react\";\nimport Form from \"react-bootstrap/Form\";\nimport Button from \"react-bootstrap/Button\";\nimport Spinner from \"react-bootstrap/Spinner\";\nimport { useForm } from \"react-hook-form\";\nimport { yupResolver } from \"@hookform/resolvers/yup\";\nimport * as yup from \"yup\";\n\nimport PasswordStrengthInfo from \"../PasswordStrengthInfo\";\n\nconst schema = yup.object().shape({\n newPassword: yup\n .string()\n .matches(/^(?=.*?[A-Z])(?=.*?[a-z])(?=.*?[0-9]).{8,}$/, \"Invalid password\"),\n confirmPassword: yup\n .string()\n .test(\"passwords-match\", \"Passwords must match\", function (value) {\n return this.parent.newPassword === value;\n }),\n});\n\nexport default function NewPasswordRequiredForm({ isLoading, onSubmit }) {\n const {\n register,\n handleSubmit,\n watch,\n formState: { errors },\n } = useForm({\n resolver: yupResolver(schema),\n });\n const newPassword = watch(\"newPassword\", \"\");\n\n return (\n <>\n

Please set a new password to access the system.

\n\n
\n \n New password\n \n\n \n \n\n \n Confirm password\n \n \n {errors.confirmPassword && errors.confirmPassword.message}\n \n \n\n \n
\n \n );\n}\n","import { useCallback, useState } from \"react\";\nimport Row from \"react-bootstrap/Row\";\nimport Col from \"react-bootstrap/Col\";\nimport Card from \"react-bootstrap/Card\";\nimport { toast } from \"react-toastify\";\n\nimport { somethingWentWrong } from \"../../../lib/errors\";\nimport AuthService from \"../../../services/AuthService\";\n\nimport LoginForm from \"./LoginForm\";\nimport NewPasswordRequiredForm from \"./NewPasswordRequiredForm\";\n\nexport default function Login() {\n const [isLoading, setIsLoading] = useState(false);\n const [newPasswordRequiredForUser, setNewPasswordRequiredForUser] = useState(false);\n\n const onSubmitLoginForm = useCallback(async ({ email, password }) => {\n try {\n setIsLoading(true);\n\n const user = await AuthService.signIn(email, password);\n\n if (user.challengeName === \"NEW_PASSWORD_REQUIRED\") {\n setIsLoading(false);\n setNewPasswordRequiredForUser(user);\n }\n } catch (error) {\n setIsLoading(false);\n\n if (error.message) {\n toast.error(error.message);\n } else {\n toast.error(somethingWentWrong);\n }\n }\n }, []);\n\n const onSubmitNewPasswordRequiredForm = useCallback(\n async ({ newPassword }) => {\n try {\n setIsLoading(true);\n\n await AuthService.completeNewPassword(newPasswordRequiredForUser, newPassword);\n\n setIsLoading(false);\n } catch (error) {\n setIsLoading(false);\n\n if (error.message) {\n toast.error(error.message);\n } else {\n toast.error(somethingWentWrong);\n }\n }\n },\n [newPasswordRequiredForUser]\n );\n\n return (\n \n \n \n \n \n

Login

\n
\n\n {!newPasswordRequiredForUser && }\n\n {newPasswordRequiredForUser && (\n \n )}\n
\n
\n \n
\n );\n}\n","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport React, { forwardRef } from 'react';\nimport PropTypes from 'prop-types';\nvar CornerUpLeft = forwardRef(function (_ref, ref) {\n var _ref$color = _ref.color,\n color = _ref$color === void 0 ? 'currentColor' : _ref$color,\n _ref$size = _ref.size,\n size = _ref$size === void 0 ? 24 : _ref$size,\n rest = _objectWithoutProperties(_ref, [\"color\", \"size\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n ref: ref,\n xmlns: \"http://www.w3.org/2000/svg\",\n width: size,\n height: size,\n viewBox: \"0 0 24 24\",\n fill: \"none\",\n stroke: color,\n strokeWidth: \"2\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n }, rest), /*#__PURE__*/React.createElement(\"polyline\", {\n points: \"9 14 4 9 9 4\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M20 20v-7a4 4 0 0 0-4-4H4\"\n }));\n});\nCornerUpLeft.propTypes = {\n color: PropTypes.string,\n size: PropTypes.oneOfType([PropTypes.string, PropTypes.number])\n};\nCornerUpLeft.displayName = 'CornerUpLeft';\nexport default CornerUpLeft;","import { useCallback, useState } from \"react\";\nimport classnames from \"classnames\";\nimport Row from \"react-bootstrap/Row\";\nimport Col from \"react-bootstrap/Col\";\nimport Card from \"react-bootstrap/Card\";\nimport Form from \"react-bootstrap/Form\";\nimport Button from \"react-bootstrap/Button\";\nimport Spinner from \"react-bootstrap/Spinner\";\nimport { Link } from \"react-router-dom\";\nimport { useForm } from \"react-hook-form\";\nimport { yupResolver } from \"@hookform/resolvers/yup\";\nimport * as yup from \"yup\";\nimport { toast } from \"react-toastify\";\nimport { CornerUpLeft as CornerUpLeftIcon } from \"react-feather\";\n\nimport AuthService from \"../../services/AuthService\";\nimport { somethingWentWrong } from \"../../lib/errors\";\n\nimport PasswordStrengthInfo from \"./PasswordStrengthInfo\";\n\nconst schema = yup.object().shape({\n fullName: yup.string().required(\"Full name is required\"),\n email: yup.string().email(\"Email address is invalid\").required(\"Email address is required\"),\n password: yup\n .string()\n .matches(\n /^(?=.*?[A-Z])(?=.*?[a-z])(?=.*?[0-9]).{8,}$/,\n \"Password must be at least 8 characters, lowercase, uppercase, and numbers for greater security.\"\n )\n .required(\"New password is required\"),\n});\n\nfunction getQueryParams(search) {\n const result = {};\n new URLSearchParams(search).forEach(function (value, key) {\n result[key] = value;\n });\n return result;\n}\n\nfunction getName(first, last) {\n return [first, last].filter(Boolean).join(\" \");\n}\n\nexport default function Register({ location: { search } }) {\n const { email, first_name, last_name, case_number, case_title } = getQueryParams(search);\n const name = getName(first_name, last_name);\n const isACreditor = email || name;\n const bkCase = [case_title, case_number].filter(Boolean);\n\n const [isLoading, setIsLoading] = useState(false);\n const [user, setUser] = useState({\n email,\n name,\n });\n const [showConfirmStep, setShowConfirmStep] = useState(isACreditor);\n const [showConfirmRegistration, setShowConfirmRegistration] = useState(false);\n\n const {\n register,\n handleSubmit,\n watch,\n formState: { errors },\n } = useForm({\n resolver: yupResolver(schema),\n });\n const password = watch(\"password\", \"\");\n\n const onSubmit = useCallback(async ({ fullName, email, password }) => {\n setIsLoading(true);\n try {\n await AuthService.signUp({\n fullName,\n email,\n password,\n });\n setIsLoading(false);\n setShowConfirmRegistration(true);\n } catch (error) {\n setIsLoading(false);\n\n if (error.message) {\n toast.error(error.message);\n } else {\n toast.error(somethingWentWrong);\n }\n }\n }, []);\n\n const onClickContinue = useCallback(() => setShowConfirmStep(false), []);\n\n const onClickReset = useCallback(() => {\n setUser({\n email: \"\",\n name: \"\",\n });\n setShowConfirmStep(false);\n }, []);\n\n if (showConfirmRegistration) {\n return (\n \n \n

Please check your email to complete your registration.

\n \n
\n );\n }\n\n return (\n \n \n {!showConfirmStep && (\n \n )}\n\n {bkCase.length > 0 && (\n <>\n

\n Case number: {bkCase[1]} - {bkCase[0]}\n

\n

\n Register to view the bankruptcy case docket from PACER for $10 / day or $15 / month!\n

\n \n )}\n\n \n \n \n

Register

\n
\n\n {showConfirmStep && (\n <>\n \n Welcome {name || email}. Please{\" \"}\n \n \n\n \n If this isn't you, please{\" \"}\n \n \n \n )}\n\n {!showConfirmStep && (\n
\n \n Full name\n \n \n {errors.fullName && errors.fullName.message}\n \n \n\n \n Email address\n \n {errors.email && errors.email.message}\n \n\n \n Password\n \n\n \n \n\n \n
\n )}\n
\n
\n \n
\n );\n}\n","import React, { useCallback } from \"react\";\nimport Form from \"react-bootstrap/Form\";\nimport Button from \"react-bootstrap/Button\";\nimport Spinner from \"react-bootstrap/Spinner\";\n\nimport { useForm } from \"react-hook-form\";\nimport { yupResolver } from \"@hookform/resolvers/yup\";\nimport * as yup from \"yup\";\n\nconst schema = yup.object().shape({\n email: yup\n .string()\n .email(\"Email address is invalid\")\n .required(\"Email address is required\"),\n});\n\nexport default function Email({ isLoading, onEmailSubmit, onCodeReceived }) {\n const {\n register,\n handleSubmit,\n formState: { errors },\n } = useForm({\n resolver: yupResolver(schema),\n });\n\n const onSubmit = useCallback(\n ({ email }) => onEmailSubmit(email),\n [onEmailSubmit]\n );\n\n return (\n
\n \n Email address\n \n \n {errors.email && errors.email.message}\n \n \n\n \n \n \n\n \n I already received the verification code\n \n \n );\n}\n","import React, { useCallback } from \"react\";\nimport Form from \"react-bootstrap/Form\";\nimport Button from \"react-bootstrap/Button\";\nimport Spinner from \"react-bootstrap/Spinner\";\nimport { useForm } from \"react-hook-form\";\nimport { yupResolver } from \"@hookform/resolvers/yup\";\nimport * as yup from \"yup\";\n\nimport PasswordStrengthInfo from \"../PasswordStrengthInfo\";\n\nconst schema = yup.object().shape({\n confirmationCode: yup\n .string()\n .length(6, \"Confirmation code must be exactly 6 characters\")\n .matches(/\\d{6}/, \"Confirmation code is invalid\")\n .required(\"Confirmation code is required\"),\n newPassword: yup\n .string()\n .matches(\n /^(?=.*?[A-Z])(?=.*?[a-z])(?=.*?[0-9]).{8,}$/,\n \"Password must be at least 8 characters, lowercase, uppercase, and numbers for greater security.\"\n )\n .required(\"New password is required\")\n});\n\nexport default function CodeAndPassword({\n isLoading,\n onCodeAndPasswordSubmit\n}) {\n const {\n register,\n handleSubmit,\n watch,\n formState: { errors }\n } = useForm({\n resolver: yupResolver(schema)\n });\n const password = watch(\"newPassword\", \"\");\n\n const onSubmit = useCallback(\n ({ confirmationCode, newPassword }) =>\n onCodeAndPasswordSubmit(confirmationCode, newPassword),\n [onCodeAndPasswordSubmit]\n );\n\n return (\n
\n \n Confirmation code\n \n \n {errors.confirmationCode && errors.confirmationCode.message}\n \n \n\n \n New password\n \n\n \n \n\n \n
\n );\n}\n","import { useState, useCallback } from \"react\";\nimport classnames from \"classnames\";\nimport { Link, withRouter } from \"react-router-dom\";\nimport Row from \"react-bootstrap/Row\";\nimport Col from \"react-bootstrap/Col\";\nimport Card from \"react-bootstrap/Card\";\nimport Button from \"react-bootstrap/Button\";\nimport { CornerUpLeft as CornerUpLeftIcon } from \"react-feather\";\nimport { toast } from \"react-toastify\";\n\nimport { somethingWentWrong } from \"../../../lib/errors\";\n\nimport Email from \"./Email\";\nimport CodeAndPassword from \"./CodeAndPassword\";\nimport AuthService from \"../../../services/AuthService\";\n\nfunction ResetPassword({ history }) {\n const [isLoading, setIsLoading] = useState(false);\n const [secondStep, setSecondStep] = useState({\n show: false,\n });\n\n const onEmailSubmit = useCallback(async (email) => {\n setIsLoading(true);\n\n try {\n const response = await fetch(`${process.env.REACT_APP_API_URL}/can-reset-password`, {\n method: \"POST\",\n headers: {\n \"Content-Type\": \"application/x-www-form-urlencoded\",\n },\n body: new URLSearchParams({\n email,\n }),\n });\n if (!response.ok) {\n throw new Error(\"Response not ok\");\n }\n\n const json = await response.json();\n\n const canReset = json.can_reset;\n if (!canReset) {\n toast.success(\"Please check your email, we sent you a login link\");\n setIsLoading(false);\n return;\n }\n\n await AuthService.forgotPassword(email);\n\n setSecondStep({\n show: true,\n email,\n });\n setIsLoading(false);\n\n toast.success(\"Please check your email, we sent you a confirmation code\");\n } catch (error) {\n console.log(\"error\", error);\n setIsLoading(false);\n\n if (error.message) {\n toast.error(error.message);\n } else {\n toast.error(somethingWentWrong);\n }\n }\n }, []);\n\n const onCodeReceived = useCallback(({ email }) => {\n setSecondStep({\n show: true,\n email,\n });\n }, []);\n\n const onCodeAndPasswordSubmit = useCallback(\n async (code, newPassword) => {\n setIsLoading(true);\n\n try {\n await AuthService.forgotPasswordSubmit(secondStep.email, code, newPassword);\n\n history.push(\"/auth/login\");\n toast.success(\"Password changed successfully\");\n\n setIsLoading(false);\n } catch (error) {\n console.log(\"error\", error);\n setIsLoading(false);\n\n if (error.message) {\n toast.error(error.message);\n } else {\n toast.error(somethingWentWrong);\n }\n }\n },\n [history, secondStep.email]\n );\n\n return (\n \n \n \n\n \n \n \n

Reset password

\n
\n\n {!secondStep.show && (\n \n )}\n\n {secondStep.show && (\n \n )}\n
\n
\n \n
\n );\n}\n\nexport default withRouter(ResetPassword);\n","import React from \"react\";\nimport PropTypes from \"prop-types\";\nimport hoistStatics from \"hoist-non-react-statics\";\nimport invariant from \"tiny-invariant\";\n\nimport RouterContext from \"./RouterContext.js\";\n\n/**\n * A public higher-order component to access the imperative API\n */\nfunction withRouter(Component) {\n const displayName = `withRouter(${Component.displayName || Component.name})`;\n const C = props => {\n const { wrappedComponentRef, ...remainingProps } = props;\n\n return (\n \n {context => {\n invariant(\n context,\n `You should not use <${displayName} /> outside a `\n );\n return (\n \n );\n }}\n \n );\n };\n\n C.displayName = displayName;\n C.WrappedComponent = Component;\n\n if (__DEV__) {\n C.propTypes = {\n wrappedComponentRef: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.func,\n PropTypes.object\n ])\n };\n }\n\n return hoistStatics(C, Component);\n}\n\nexport default withRouter;\n","import classNames from 'classnames';\nimport * as React from 'react';\nimport { useBootstrapPrefix } from './ThemeProvider';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst defaultProps = {\n fluid: false\n};\nconst Container = /*#__PURE__*/React.forwardRef(({\n bsPrefix,\n fluid,\n // Need to define the default \"as\" during prop destructuring to be compatible with styled-components github.com/react-bootstrap/react-bootstrap/issues/3595\n as: Component = 'div',\n className,\n ...props\n}, ref) => {\n const prefix = useBootstrapPrefix(bsPrefix, 'container');\n const suffix = typeof fluid === 'string' ? `-${fluid}` : '-fluid';\n return /*#__PURE__*/_jsx(Component, {\n ref: ref,\n ...props,\n className: classNames(className, fluid ? `${prefix}${suffix}` : prefix)\n });\n});\nContainer.displayName = 'Container';\nContainer.defaultProps = defaultProps;\nexport default Container;","import React from \"react\";\nimport classnames from \"classnames\";\n\nimport BKalertsLogo from \"../../assets/images/logo.png\";\nimport BKalertsLogoInverse from \"../../assets/images/logo-inverse.png\";\nimport BKalertsLogoMobile from \"../../assets/images/logo-mobile.png\";\n\nexport default function Logo({\n className = \"\",\n height = 30,\n inverse = false,\n mobile = false,\n}) {\n return (\n \n );\n}\n","import { useEffect, useState, useCallback } from \"react\";\nimport Container from \"react-bootstrap/Container\";\nimport Row from \"react-bootstrap/Row\";\nimport Col from \"react-bootstrap/Col\";\nimport Card from \"react-bootstrap/Card\";\nimport Form from \"react-bootstrap/Form\";\nimport Button from \"react-bootstrap/Button\";\nimport Spinner from \"react-bootstrap/Spinner\";\nimport { useForm } from \"react-hook-form\";\nimport { yupResolver } from \"@hookform/resolvers/yup\";\nimport * as yup from \"yup\";\nimport { toast } from \"react-toastify\";\n\nimport Logo from \"../../../components/atoms/Logo\";\nimport { loginLinkExpired, somethingWentWrong } from \"../../../lib/errors\";\nimport PasswordStrengthInfo from \"../PasswordStrengthInfo\";\nimport AuthService from \"../../../services/AuthService\";\n\nconst schema = yup.object().shape({\n password: yup.string().matches(/^(?=.*?[A-Z])(?=.*?[a-z])(?=.*?[0-9]).{8,}$/, \"Invalid password\"),\n confirmPassword: yup.string().test(\"passwords-match\", \"Passwords must match\", function (value) {\n return this.parent.password === value;\n }),\n});\n\nexport default function SignupChoosePassword({\n match: {\n params: { token },\n },\n history,\n}) {\n const { email, temporaryPassword } = JSON.parse(atob(token));\n const [isAuthenticating, setIsAuthenticating] = useState(true);\n const [isLoading, setIsLoading] = useState(false);\n const {\n register,\n handleSubmit,\n watch,\n formState: { errors },\n } = useForm({\n resolver: yupResolver(schema),\n });\n const password = watch(\"password\", \"\");\n\n useEffect(() => {\n async function attemptSignIn() {\n try {\n const user = await AuthService.signIn(email, temporaryPassword);\n\n if (user.challengeName === \"NEW_PASSWORD_REQUIRED\") {\n //login link still valid\n setIsAuthenticating(false);\n }\n } catch (error) {\n console.log(error);\n toast.error(loginLinkExpired);\n //login link not valid anymore, redirect to login\n history.push(`/auth/login?email=${email}`);\n }\n }\n\n attemptSignIn();\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n\n const onSubmit = useCallback(\n async ({ password }) => {\n try {\n setIsLoading(true);\n\n const user = await AuthService.signIn(email, temporaryPassword);\n\n await AuthService.completeNewPassword(user, password);\n\n //hotfix\n window.location.href = \"/cases\";\n return false;\n } catch (error) {\n toast.error(somethingWentWrong);\n console.log(\"onSubmit error\", error);\n setIsLoading(false);\n }\n },\n [email, temporaryPassword]\n );\n\n return (\n \n \n \n

\n \n

\n \n \n {!isAuthenticating && (\n <>\n \n

Choose a password for your account to continue

\n
\n\n
\n \n Email\n \n \n\n \n Password\n \n\n \n \n\n \n Confirm password\n \n \n {errors.confirmPassword && errors.confirmPassword.message}\n \n \n\n \n
\n \n )}\n {isAuthenticating && (\n
\n \n
\n )}\n
\n
\n \n
\n
\n );\n}\n","import * as React from 'react';\nconst SelectableContext = /*#__PURE__*/React.createContext(null);\nexport const makeEventKey = (eventKey, href = null) => {\n if (eventKey != null) return String(eventKey);\n return href || null;\n};\nexport default SelectableContext;","import invariant from 'invariant';\n\nvar noop = function noop() {};\n\nfunction readOnlyPropType(handler, name) {\n return function (props, propName) {\n if (props[propName] !== undefined) {\n if (!props[handler]) {\n return new Error(\"You have provided a `\" + propName + \"` prop to `\" + name + \"` \" + (\"without an `\" + handler + \"` handler prop. This will render a read-only field. \") + (\"If the field should be mutable use `\" + defaultKey(propName) + \"`. \") + (\"Otherwise, set `\" + handler + \"`.\"));\n }\n }\n };\n}\n\nexport function uncontrolledPropTypes(controlledValues, displayName) {\n var propTypes = {};\n Object.keys(controlledValues).forEach(function (prop) {\n // add default propTypes for folks that use runtime checks\n propTypes[defaultKey(prop)] = noop;\n\n if (process.env.NODE_ENV !== 'production') {\n var handler = controlledValues[prop];\n !(typeof handler === 'string' && handler.trim().length) ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'Uncontrollable - [%s]: the prop `%s` needs a valid handler key name in order to make it uncontrollable', displayName, prop) : invariant(false) : void 0;\n propTypes[prop] = readOnlyPropType(handler, displayName);\n }\n });\n return propTypes;\n}\nexport function isProp(props, prop) {\n return props[prop] !== undefined;\n}\nexport function defaultKey(key) {\n return 'default' + key.charAt(0).toUpperCase() + key.substr(1);\n}\n/**\n * Copyright (c) 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n */\n\nexport function canAcceptRef(component) {\n return !!component && (typeof component !== 'function' || component.prototype && component.prototype.isReactComponent);\n}","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\n\nfunction _toPropertyKey(arg) { var key = _toPrimitive(arg, \"string\"); return typeof key === \"symbol\" ? key : String(key); }\n\nfunction _toPrimitive(input, hint) { if (typeof input !== \"object\" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || \"default\"); if (typeof res !== \"object\") return res; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (hint === \"string\" ? String : Number)(input); }\n\nimport { useCallback, useRef, useState } from 'react';\nimport * as Utils from './utils';\n\nfunction useUncontrolledProp(propValue, defaultValue, handler) {\n var wasPropRef = useRef(propValue !== undefined);\n\n var _useState = useState(defaultValue),\n stateValue = _useState[0],\n setState = _useState[1];\n\n var isProp = propValue !== undefined;\n var wasProp = wasPropRef.current;\n wasPropRef.current = isProp;\n /**\n * If a prop switches from controlled to Uncontrolled\n * reset its value to the defaultValue\n */\n\n if (!isProp && wasProp && stateValue !== defaultValue) {\n setState(defaultValue);\n }\n\n return [isProp ? propValue : stateValue, useCallback(function (value) {\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 if (handler) handler.apply(void 0, [value].concat(args));\n setState(value);\n }, [handler])];\n}\n\nexport { useUncontrolledProp };\nexport default function useUncontrolled(props, config) {\n return Object.keys(config).reduce(function (result, fieldName) {\n var _extends2;\n\n var _ref = result,\n defaultValue = _ref[Utils.defaultKey(fieldName)],\n propsValue = _ref[fieldName],\n rest = _objectWithoutPropertiesLoose(_ref, [Utils.defaultKey(fieldName), fieldName].map(_toPropertyKey));\n\n var handlerName = config[fieldName];\n\n var _useUncontrolledProp = useUncontrolledProp(propsValue, defaultValue, props[handlerName]),\n value = _useUncontrolledProp[0],\n handler = _useUncontrolledProp[1];\n\n return _extends({}, rest, (_extends2 = {}, _extends2[fieldName] = value, _extends2[handlerName] = handler, _extends2));\n }, props);\n}","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nfunction componentWillMount() {\n // Call this.constructor.gDSFP to support sub-classes.\n var state = this.constructor.getDerivedStateFromProps(this.props, this.state);\n if (state !== null && state !== undefined) {\n this.setState(state);\n }\n}\n\nfunction componentWillReceiveProps(nextProps) {\n // Call this.constructor.gDSFP to support sub-classes.\n // Use the setState() updater to ensure state isn't stale in certain edge cases.\n function updater(prevState) {\n var state = this.constructor.getDerivedStateFromProps(nextProps, prevState);\n return state !== null && state !== undefined ? state : null;\n }\n // Binding \"this\" is important for shallow renderer support.\n this.setState(updater.bind(this));\n}\n\nfunction componentWillUpdate(nextProps, nextState) {\n try {\n var prevProps = this.props;\n var prevState = this.state;\n this.props = nextProps;\n this.state = nextState;\n this.__reactInternalSnapshotFlag = true;\n this.__reactInternalSnapshot = this.getSnapshotBeforeUpdate(\n prevProps,\n prevState\n );\n } finally {\n this.props = prevProps;\n this.state = prevState;\n }\n}\n\n// React may warn about cWM/cWRP/cWU methods being deprecated.\n// Add a flag to suppress these warnings for this special case.\ncomponentWillMount.__suppressDeprecationWarning = true;\ncomponentWillReceiveProps.__suppressDeprecationWarning = true;\ncomponentWillUpdate.__suppressDeprecationWarning = true;\n\nfunction polyfill(Component) {\n var prototype = Component.prototype;\n\n if (!prototype || !prototype.isReactComponent) {\n throw new Error('Can only polyfill class components');\n }\n\n if (\n typeof Component.getDerivedStateFromProps !== 'function' &&\n typeof prototype.getSnapshotBeforeUpdate !== 'function'\n ) {\n return Component;\n }\n\n // If new component APIs are defined, \"unsafe\" lifecycles won't be called.\n // Error if any of these lifecycles are present,\n // Because they would work differently between older and newer (16.3+) versions of React.\n var foundWillMountName = null;\n var foundWillReceivePropsName = null;\n var foundWillUpdateName = null;\n if (typeof prototype.componentWillMount === 'function') {\n foundWillMountName = 'componentWillMount';\n } else if (typeof prototype.UNSAFE_componentWillMount === 'function') {\n foundWillMountName = 'UNSAFE_componentWillMount';\n }\n if (typeof prototype.componentWillReceiveProps === 'function') {\n foundWillReceivePropsName = 'componentWillReceiveProps';\n } else if (typeof prototype.UNSAFE_componentWillReceiveProps === 'function') {\n foundWillReceivePropsName = 'UNSAFE_componentWillReceiveProps';\n }\n if (typeof prototype.componentWillUpdate === 'function') {\n foundWillUpdateName = 'componentWillUpdate';\n } else if (typeof prototype.UNSAFE_componentWillUpdate === 'function') {\n foundWillUpdateName = 'UNSAFE_componentWillUpdate';\n }\n if (\n foundWillMountName !== null ||\n foundWillReceivePropsName !== null ||\n foundWillUpdateName !== null\n ) {\n var componentName = Component.displayName || Component.name;\n var newApiName =\n typeof Component.getDerivedStateFromProps === 'function'\n ? 'getDerivedStateFromProps()'\n : 'getSnapshotBeforeUpdate()';\n\n throw Error(\n 'Unsafe legacy lifecycles will not be called for components using new component APIs.\\n\\n' +\n componentName +\n ' uses ' +\n newApiName +\n ' but also contains the following legacy lifecycles:' +\n (foundWillMountName !== null ? '\\n ' + foundWillMountName : '') +\n (foundWillReceivePropsName !== null\n ? '\\n ' + foundWillReceivePropsName\n : '') +\n (foundWillUpdateName !== null ? '\\n ' + foundWillUpdateName : '') +\n '\\n\\nThe above lifecycles should be removed. Learn more about this warning here:\\n' +\n 'https://fb.me/react-async-component-lifecycle-hooks'\n );\n }\n\n // React <= 16.2 does not support static getDerivedStateFromProps.\n // As a workaround, use cWM and cWRP to invoke the new static lifecycle.\n // Newer versions of React will ignore these lifecycles if gDSFP exists.\n if (typeof Component.getDerivedStateFromProps === 'function') {\n prototype.componentWillMount = componentWillMount;\n prototype.componentWillReceiveProps = componentWillReceiveProps;\n }\n\n // React <= 16.2 does not support getSnapshotBeforeUpdate.\n // As a workaround, use cWU to invoke the new lifecycle.\n // Newer versions of React will ignore that lifecycle if gSBU exists.\n if (typeof prototype.getSnapshotBeforeUpdate === 'function') {\n if (typeof prototype.componentDidUpdate !== 'function') {\n throw new Error(\n 'Cannot polyfill getSnapshotBeforeUpdate() for components that do not define componentDidUpdate() on the prototype'\n );\n }\n\n prototype.componentWillUpdate = componentWillUpdate;\n\n var componentDidUpdate = prototype.componentDidUpdate;\n\n prototype.componentDidUpdate = function componentDidUpdatePolyfill(\n prevProps,\n prevState,\n maybeSnapshot\n ) {\n // 16.3+ will not execute our will-update method;\n // It will pass a snapshot value to did-update though.\n // Older versions will require our polyfilled will-update value.\n // We need to handle both cases, but can't just check for the presence of \"maybeSnapshot\",\n // Because for <= 15.x versions this might be a \"prevContext\" object.\n // We also can't just check \"__reactInternalSnapshot\",\n // Because get-snapshot might return a falsy value.\n // So check for the explicit __reactInternalSnapshotFlag flag to determine behavior.\n var snapshot = this.__reactInternalSnapshotFlag\n ? this.__reactInternalSnapshot\n : maybeSnapshot;\n\n componentDidUpdate.call(this, prevProps, prevState, snapshot);\n };\n }\n\n return Component;\n}\n\nexport { polyfill };\n","import classNames from 'classnames';\nimport * as React from 'react';\nimport { useBootstrapPrefix } from './ThemeProvider';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst NavbarBrand = /*#__PURE__*/React.forwardRef(({\n bsPrefix,\n className,\n as,\n ...props\n}, ref) => {\n bsPrefix = useBootstrapPrefix(bsPrefix, 'navbar-brand');\n const Component = as || (props.href ? 'a' : 'span');\n return /*#__PURE__*/_jsx(Component, { ...props,\n ref: ref,\n className: classNames(className, bsPrefix)\n });\n});\nNavbarBrand.displayName = 'NavbarBrand';\nexport default NavbarBrand;","/**\n * Returns the owner document of a given element.\n * \n * @param node the element\n */\nexport default function ownerDocument(node) {\n return node && node.ownerDocument || document;\n}","import ownerWindow from './ownerWindow';\n/**\n * Returns one or all computed style properties of an element.\n * \n * @param node the element\n * @param psuedoElement the style property\n */\n\nexport default function getComputedStyle(node, psuedoElement) {\n return ownerWindow(node).getComputedStyle(node, psuedoElement);\n}","import ownerDocument from './ownerDocument';\n/**\n * Returns the owner window of a given element.\n * \n * @param node the element\n */\n\nexport default function ownerWindow(node) {\n var doc = ownerDocument(node);\n return doc && doc.defaultView || window;\n}","var rUpper = /([A-Z])/g;\nexport default function hyphenate(string) {\n return string.replace(rUpper, '-$1').toLowerCase();\n}","/**\n * Copyright 2013-2014, Facebook, Inc.\n * All rights reserved.\n * https://github.com/facebook/react/blob/2aeb8a2a6beb00617a4217f7f8284924fa2ad819/src/vendor/core/hyphenateStyleName.js\n */\nimport hyphenate from './hyphenate';\nvar msPattern = /^ms-/;\nexport default function hyphenateStyleName(string) {\n return hyphenate(string).replace(msPattern, '-ms-');\n}","var supportedTransforms = /^((translate|rotate|scale)(X|Y|Z|3d)?|matrix(3d)?|perspective|skew(X|Y)?)$/i;\nexport default function isTransform(value) {\n return !!(value && supportedTransforms.test(value));\n}","import getComputedStyle from './getComputedStyle';\nimport hyphenate from './hyphenateStyle';\nimport isTransform from './isTransform';\n\nfunction style(node, property) {\n var css = '';\n var transforms = '';\n\n if (typeof property === 'string') {\n return node.style.getPropertyValue(hyphenate(property)) || getComputedStyle(node).getPropertyValue(hyphenate(property));\n }\n\n Object.keys(property).forEach(function (key) {\n var value = property[key];\n\n if (!value && value !== 0) {\n node.style.removeProperty(hyphenate(key));\n } else if (isTransform(key)) {\n transforms += key + \"(\" + value + \") \";\n } else {\n css += hyphenate(key) + \": \" + value + \";\";\n }\n });\n\n if (transforms) {\n css += \"transform: \" + transforms + \";\";\n }\n\n node.style.cssText += \";\" + css;\n}\n\nexport default style;","export default {\n disabled: false\n};","import React from 'react';\nexport default React.createContext(null);","import _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nimport _inheritsLoose from \"@babel/runtime/helpers/esm/inheritsLoose\";\nimport PropTypes from 'prop-types';\nimport React from 'react';\nimport ReactDOM from 'react-dom';\nimport config from './config';\nimport { timeoutsShape } from './utils/PropTypes';\nimport TransitionGroupContext from './TransitionGroupContext';\nimport { forceReflow } from './utils/reflow';\nexport var UNMOUNTED = 'unmounted';\nexport var EXITED = 'exited';\nexport var ENTERING = 'entering';\nexport var ENTERED = 'entered';\nexport var EXITING = 'exiting';\n/**\n * The Transition component lets you describe a transition from one component\n * state to another _over time_ with a simple declarative API. Most commonly\n * it's used to animate the mounting and unmounting of a component, but can also\n * be used to describe in-place transition states as well.\n *\n * ---\n *\n * **Note**: `Transition` is a platform-agnostic base component. If you're using\n * transitions in CSS, you'll probably want to use\n * [`CSSTransition`](https://reactcommunity.org/react-transition-group/css-transition)\n * instead. It inherits all the features of `Transition`, but contains\n * additional features necessary to play nice with CSS transitions (hence the\n * name of the component).\n *\n * ---\n *\n * By default the `Transition` component does not alter the behavior of the\n * component it renders, it only tracks \"enter\" and \"exit\" states for the\n * components. It's up to you to give meaning and effect to those states. For\n * example we can add styles to a component when it enters or exits:\n *\n * ```jsx\n * import { Transition } from 'react-transition-group';\n *\n * const duration = 300;\n *\n * const defaultStyle = {\n * transition: `opacity ${duration}ms ease-in-out`,\n * opacity: 0,\n * }\n *\n * const transitionStyles = {\n * entering: { opacity: 1 },\n * entered: { opacity: 1 },\n * exiting: { opacity: 0 },\n * exited: { opacity: 0 },\n * };\n *\n * const Fade = ({ in: inProp }) => (\n * \n * {state => (\n *
\n * I'm a fade Transition!\n *
\n * )}\n *
\n * );\n * ```\n *\n * There are 4 main states a Transition can be in:\n * - `'entering'`\n * - `'entered'`\n * - `'exiting'`\n * - `'exited'`\n *\n * Transition state is toggled via the `in` prop. When `true` the component\n * begins the \"Enter\" stage. During this stage, the component will shift from\n * its current transition state, to `'entering'` for the duration of the\n * transition and then to the `'entered'` stage once it's complete. Let's take\n * the following example (we'll use the\n * [useState](https://reactjs.org/docs/hooks-reference.html#usestate) hook):\n *\n * ```jsx\n * function App() {\n * const [inProp, setInProp] = useState(false);\n * return (\n *
\n * \n * {state => (\n * // ...\n * )}\n * \n * \n *
\n * );\n * }\n * ```\n *\n * When the button is clicked the component will shift to the `'entering'` state\n * and stay there for 500ms (the value of `timeout`) before it finally switches\n * to `'entered'`.\n *\n * When `in` is `false` the same thing happens except the state moves from\n * `'exiting'` to `'exited'`.\n */\n\nvar Transition = /*#__PURE__*/function (_React$Component) {\n _inheritsLoose(Transition, _React$Component);\n\n function Transition(props, context) {\n var _this;\n\n _this = _React$Component.call(this, props, context) || this;\n var parentGroup = context; // In the context of a TransitionGroup all enters are really appears\n\n var appear = parentGroup && !parentGroup.isMounting ? props.enter : props.appear;\n var initialStatus;\n _this.appearStatus = null;\n\n if (props.in) {\n if (appear) {\n initialStatus = EXITED;\n _this.appearStatus = ENTERING;\n } else {\n initialStatus = ENTERED;\n }\n } else {\n if (props.unmountOnExit || props.mountOnEnter) {\n initialStatus = UNMOUNTED;\n } else {\n initialStatus = EXITED;\n }\n }\n\n _this.state = {\n status: initialStatus\n };\n _this.nextCallback = null;\n return _this;\n }\n\n Transition.getDerivedStateFromProps = function getDerivedStateFromProps(_ref, prevState) {\n var nextIn = _ref.in;\n\n if (nextIn && prevState.status === UNMOUNTED) {\n return {\n status: EXITED\n };\n }\n\n return null;\n } // getSnapshotBeforeUpdate(prevProps) {\n // let nextStatus = null\n // if (prevProps !== this.props) {\n // const { status } = this.state\n // if (this.props.in) {\n // if (status !== ENTERING && status !== ENTERED) {\n // nextStatus = ENTERING\n // }\n // } else {\n // if (status === ENTERING || status === ENTERED) {\n // nextStatus = EXITING\n // }\n // }\n // }\n // return { nextStatus }\n // }\n ;\n\n var _proto = Transition.prototype;\n\n _proto.componentDidMount = function componentDidMount() {\n this.updateStatus(true, this.appearStatus);\n };\n\n _proto.componentDidUpdate = function componentDidUpdate(prevProps) {\n var nextStatus = null;\n\n if (prevProps !== this.props) {\n var status = this.state.status;\n\n if (this.props.in) {\n if (status !== ENTERING && status !== ENTERED) {\n nextStatus = ENTERING;\n }\n } else {\n if (status === ENTERING || status === ENTERED) {\n nextStatus = EXITING;\n }\n }\n }\n\n this.updateStatus(false, nextStatus);\n };\n\n _proto.componentWillUnmount = function componentWillUnmount() {\n this.cancelNextCallback();\n };\n\n _proto.getTimeouts = function getTimeouts() {\n var timeout = this.props.timeout;\n var exit, enter, appear;\n exit = enter = appear = timeout;\n\n if (timeout != null && typeof timeout !== 'number') {\n exit = timeout.exit;\n enter = timeout.enter; // TODO: remove fallback for next major\n\n appear = timeout.appear !== undefined ? timeout.appear : enter;\n }\n\n return {\n exit: exit,\n enter: enter,\n appear: appear\n };\n };\n\n _proto.updateStatus = function updateStatus(mounting, nextStatus) {\n if (mounting === void 0) {\n mounting = false;\n }\n\n if (nextStatus !== null) {\n // nextStatus will always be ENTERING or EXITING.\n this.cancelNextCallback();\n\n if (nextStatus === ENTERING) {\n if (this.props.unmountOnExit || this.props.mountOnEnter) {\n var node = this.props.nodeRef ? this.props.nodeRef.current : ReactDOM.findDOMNode(this); // https://github.com/reactjs/react-transition-group/pull/749\n // With unmountOnExit or mountOnEnter, the enter animation should happen at the transition between `exited` and `entering`.\n // To make the animation happen, we have to separate each rendering and avoid being processed as batched.\n\n if (node) forceReflow(node);\n }\n\n this.performEnter(mounting);\n } else {\n this.performExit();\n }\n } else if (this.props.unmountOnExit && this.state.status === EXITED) {\n this.setState({\n status: UNMOUNTED\n });\n }\n };\n\n _proto.performEnter = function performEnter(mounting) {\n var _this2 = this;\n\n var enter = this.props.enter;\n var appearing = this.context ? this.context.isMounting : mounting;\n\n var _ref2 = this.props.nodeRef ? [appearing] : [ReactDOM.findDOMNode(this), appearing],\n maybeNode = _ref2[0],\n maybeAppearing = _ref2[1];\n\n var timeouts = this.getTimeouts();\n var enterTimeout = appearing ? timeouts.appear : timeouts.enter; // no enter animation skip right to ENTERED\n // if we are mounting and running this it means appear _must_ be set\n\n if (!mounting && !enter || config.disabled) {\n this.safeSetState({\n status: ENTERED\n }, function () {\n _this2.props.onEntered(maybeNode);\n });\n return;\n }\n\n this.props.onEnter(maybeNode, maybeAppearing);\n this.safeSetState({\n status: ENTERING\n }, function () {\n _this2.props.onEntering(maybeNode, maybeAppearing);\n\n _this2.onTransitionEnd(enterTimeout, function () {\n _this2.safeSetState({\n status: ENTERED\n }, function () {\n _this2.props.onEntered(maybeNode, maybeAppearing);\n });\n });\n });\n };\n\n _proto.performExit = function performExit() {\n var _this3 = this;\n\n var exit = this.props.exit;\n var timeouts = this.getTimeouts();\n var maybeNode = this.props.nodeRef ? undefined : ReactDOM.findDOMNode(this); // no exit animation skip right to EXITED\n\n if (!exit || config.disabled) {\n this.safeSetState({\n status: EXITED\n }, function () {\n _this3.props.onExited(maybeNode);\n });\n return;\n }\n\n this.props.onExit(maybeNode);\n this.safeSetState({\n status: EXITING\n }, function () {\n _this3.props.onExiting(maybeNode);\n\n _this3.onTransitionEnd(timeouts.exit, function () {\n _this3.safeSetState({\n status: EXITED\n }, function () {\n _this3.props.onExited(maybeNode);\n });\n });\n });\n };\n\n _proto.cancelNextCallback = function cancelNextCallback() {\n if (this.nextCallback !== null) {\n this.nextCallback.cancel();\n this.nextCallback = null;\n }\n };\n\n _proto.safeSetState = function safeSetState(nextState, callback) {\n // This shouldn't be necessary, but there are weird race conditions with\n // setState callbacks and unmounting in testing, so always make sure that\n // we can cancel any pending setState callbacks after we unmount.\n callback = this.setNextCallback(callback);\n this.setState(nextState, callback);\n };\n\n _proto.setNextCallback = function setNextCallback(callback) {\n var _this4 = this;\n\n var active = true;\n\n this.nextCallback = function (event) {\n if (active) {\n active = false;\n _this4.nextCallback = null;\n callback(event);\n }\n };\n\n this.nextCallback.cancel = function () {\n active = false;\n };\n\n return this.nextCallback;\n };\n\n _proto.onTransitionEnd = function onTransitionEnd(timeout, handler) {\n this.setNextCallback(handler);\n var node = this.props.nodeRef ? this.props.nodeRef.current : ReactDOM.findDOMNode(this);\n var doesNotHaveTimeoutOrListener = timeout == null && !this.props.addEndListener;\n\n if (!node || doesNotHaveTimeoutOrListener) {\n setTimeout(this.nextCallback, 0);\n return;\n }\n\n if (this.props.addEndListener) {\n var _ref3 = this.props.nodeRef ? [this.nextCallback] : [node, this.nextCallback],\n maybeNode = _ref3[0],\n maybeNextCallback = _ref3[1];\n\n this.props.addEndListener(maybeNode, maybeNextCallback);\n }\n\n if (timeout != null) {\n setTimeout(this.nextCallback, timeout);\n }\n };\n\n _proto.render = function render() {\n var status = this.state.status;\n\n if (status === UNMOUNTED) {\n return null;\n }\n\n var _this$props = this.props,\n children = _this$props.children,\n _in = _this$props.in,\n _mountOnEnter = _this$props.mountOnEnter,\n _unmountOnExit = _this$props.unmountOnExit,\n _appear = _this$props.appear,\n _enter = _this$props.enter,\n _exit = _this$props.exit,\n _timeout = _this$props.timeout,\n _addEndListener = _this$props.addEndListener,\n _onEnter = _this$props.onEnter,\n _onEntering = _this$props.onEntering,\n _onEntered = _this$props.onEntered,\n _onExit = _this$props.onExit,\n _onExiting = _this$props.onExiting,\n _onExited = _this$props.onExited,\n _nodeRef = _this$props.nodeRef,\n childProps = _objectWithoutPropertiesLoose(_this$props, [\"children\", \"in\", \"mountOnEnter\", \"unmountOnExit\", \"appear\", \"enter\", \"exit\", \"timeout\", \"addEndListener\", \"onEnter\", \"onEntering\", \"onEntered\", \"onExit\", \"onExiting\", \"onExited\", \"nodeRef\"]);\n\n return (\n /*#__PURE__*/\n // allows for nested Transitions\n React.createElement(TransitionGroupContext.Provider, {\n value: null\n }, typeof children === 'function' ? children(status, childProps) : React.cloneElement(React.Children.only(children), childProps))\n );\n };\n\n return Transition;\n}(React.Component);\n\nTransition.contextType = TransitionGroupContext;\nTransition.propTypes = process.env.NODE_ENV !== \"production\" ? {\n /**\n * A React reference to DOM element that need to transition:\n * https://stackoverflow.com/a/51127130/4671932\n *\n * - When `nodeRef` prop is used, `node` is not passed to callback functions\n * (e.g. `onEnter`) because user already has direct access to the node.\n * - When changing `key` prop of `Transition` in a `TransitionGroup` a new\n * `nodeRef` need to be provided to `Transition` with changed `key` prop\n * (see\n * [test/CSSTransition-test.js](https://github.com/reactjs/react-transition-group/blob/13435f897b3ab71f6e19d724f145596f5910581c/test/CSSTransition-test.js#L362-L437)).\n */\n nodeRef: PropTypes.shape({\n current: typeof Element === 'undefined' ? PropTypes.any : function (propValue, key, componentName, location, propFullName, secret) {\n var value = propValue[key];\n return PropTypes.instanceOf(value && 'ownerDocument' in value ? value.ownerDocument.defaultView.Element : Element)(propValue, key, componentName, location, propFullName, secret);\n }\n }),\n\n /**\n * A `function` child can be used instead of a React element. This function is\n * called with the current transition status (`'entering'`, `'entered'`,\n * `'exiting'`, `'exited'`), which can be used to apply context\n * specific props to a component.\n *\n * ```jsx\n * \n * {state => (\n * \n * )}\n * \n * ```\n */\n children: PropTypes.oneOfType([PropTypes.func.isRequired, PropTypes.element.isRequired]).isRequired,\n\n /**\n * Show the component; triggers the enter or exit states\n */\n in: PropTypes.bool,\n\n /**\n * By default the child component is mounted immediately along with\n * the parent `Transition` component. If you want to \"lazy mount\" the component on the\n * first `in={true}` you can set `mountOnEnter`. After the first enter transition the component will stay\n * mounted, even on \"exited\", unless you also specify `unmountOnExit`.\n */\n mountOnEnter: PropTypes.bool,\n\n /**\n * By default the child component stays mounted after it reaches the `'exited'` state.\n * Set `unmountOnExit` if you'd prefer to unmount the component after it finishes exiting.\n */\n unmountOnExit: PropTypes.bool,\n\n /**\n * By default the child component does not perform the enter transition when\n * it first mounts, regardless of the value of `in`. If you want this\n * behavior, set both `appear` and `in` to `true`.\n *\n * > **Note**: there are no special appear states like `appearing`/`appeared`, this prop\n * > only adds an additional enter transition. However, in the\n * > `` component that first enter transition does result in\n * > additional `.appear-*` classes, that way you can choose to style it\n * > differently.\n */\n appear: PropTypes.bool,\n\n /**\n * Enable or disable enter transitions.\n */\n enter: PropTypes.bool,\n\n /**\n * Enable or disable exit transitions.\n */\n exit: PropTypes.bool,\n\n /**\n * The duration of the transition, in milliseconds.\n * Required unless `addEndListener` is provided.\n *\n * You may specify a single timeout for all transitions:\n *\n * ```jsx\n * timeout={500}\n * ```\n *\n * or individually:\n *\n * ```jsx\n * timeout={{\n * appear: 500,\n * enter: 300,\n * exit: 500,\n * }}\n * ```\n *\n * - `appear` defaults to the value of `enter`\n * - `enter` defaults to `0`\n * - `exit` defaults to `0`\n *\n * @type {number | { enter?: number, exit?: number, appear?: number }}\n */\n timeout: function timeout(props) {\n var pt = timeoutsShape;\n if (!props.addEndListener) pt = pt.isRequired;\n\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 pt.apply(void 0, [props].concat(args));\n },\n\n /**\n * Add a custom transition end trigger. Called with the transitioning\n * DOM node and a `done` callback. Allows for more fine grained transition end\n * logic. Timeouts are still used as a fallback if provided.\n *\n * **Note**: when `nodeRef` prop is passed, `node` is not passed.\n *\n * ```jsx\n * addEndListener={(node, done) => {\n * // use the css transitionend event to mark the finish of a transition\n * node.addEventListener('transitionend', done, false);\n * }}\n * ```\n */\n addEndListener: PropTypes.func,\n\n /**\n * Callback fired before the \"entering\" status is applied. An extra parameter\n * `isAppearing` is supplied to indicate if the enter stage is occurring on the initial mount\n *\n * **Note**: when `nodeRef` prop is passed, `node` is not passed.\n *\n * @type Function(node: HtmlElement, isAppearing: bool) -> void\n */\n onEnter: PropTypes.func,\n\n /**\n * Callback fired after the \"entering\" status is applied. An extra parameter\n * `isAppearing` is supplied to indicate if the enter stage is occurring on the initial mount\n *\n * **Note**: when `nodeRef` prop is passed, `node` is not passed.\n *\n * @type Function(node: HtmlElement, isAppearing: bool)\n */\n onEntering: PropTypes.func,\n\n /**\n * Callback fired after the \"entered\" status is applied. An extra parameter\n * `isAppearing` is supplied to indicate if the enter stage is occurring on the initial mount\n *\n * **Note**: when `nodeRef` prop is passed, `node` is not passed.\n *\n * @type Function(node: HtmlElement, isAppearing: bool) -> void\n */\n onEntered: PropTypes.func,\n\n /**\n * Callback fired before the \"exiting\" status is applied.\n *\n * **Note**: when `nodeRef` prop is passed, `node` is not passed.\n *\n * @type Function(node: HtmlElement) -> void\n */\n onExit: PropTypes.func,\n\n /**\n * Callback fired after the \"exiting\" status is applied.\n *\n * **Note**: when `nodeRef` prop is passed, `node` is not passed.\n *\n * @type Function(node: HtmlElement) -> void\n */\n onExiting: PropTypes.func,\n\n /**\n * Callback fired after the \"exited\" status is applied.\n *\n * **Note**: when `nodeRef` prop is passed, `node` is not passed\n *\n * @type Function(node: HtmlElement) -> void\n */\n onExited: PropTypes.func\n} : {}; // Name the function so it is clearer in the documentation\n\nfunction noop() {}\n\nTransition.defaultProps = {\n in: false,\n mountOnEnter: false,\n unmountOnExit: false,\n appear: false,\n enter: true,\n exit: true,\n onEnter: noop,\n onEntering: noop,\n onEntered: noop,\n onExit: noop,\n onExiting: noop,\n onExited: noop\n};\nTransition.UNMOUNTED = UNMOUNTED;\nTransition.EXITED = EXITED;\nTransition.ENTERING = ENTERING;\nTransition.ENTERED = ENTERED;\nTransition.EXITING = EXITING;\nexport default Transition;","export var forceReflow = function forceReflow(node) {\n return node.scrollTop;\n};","export default !!(typeof window !== 'undefined' && window.document && window.document.createElement);","/* eslint-disable no-return-assign */\nimport canUseDOM from './canUseDOM';\nexport var optionsSupported = false;\nexport var onceSupported = false;\n\ntry {\n var options = {\n get passive() {\n return optionsSupported = true;\n },\n\n get once() {\n // eslint-disable-next-line no-multi-assign\n return onceSupported = optionsSupported = true;\n }\n\n };\n\n if (canUseDOM) {\n window.addEventListener('test', options, options);\n window.removeEventListener('test', options, true);\n }\n} catch (e) {\n /* */\n}\n\n/**\n * An `addEventListener` ponyfill, supports the `once` option\n * \n * @param node the element\n * @param eventName the event name\n * @param handle the handler\n * @param options event options\n */\nfunction addEventListener(node, eventName, handler, options) {\n if (options && typeof options !== 'boolean' && !onceSupported) {\n var once = options.once,\n capture = options.capture;\n var wrappedHandler = handler;\n\n if (!onceSupported && once) {\n wrappedHandler = handler.__once || function onceHandler(event) {\n this.removeEventListener(eventName, onceHandler, capture);\n handler.call(this, event);\n };\n\n handler.__once = wrappedHandler;\n }\n\n node.addEventListener(eventName, wrappedHandler, optionsSupported ? options : capture);\n }\n\n node.addEventListener(eventName, handler, options);\n}\n\nexport default addEventListener;","/**\n * A `removeEventListener` ponyfill\n * \n * @param node the element\n * @param eventName the event name\n * @param handle the handler\n * @param options event options\n */\nfunction removeEventListener(node, eventName, handler, options) {\n var capture = options && typeof options !== 'boolean' ? options.capture : options;\n node.removeEventListener(eventName, handler, capture);\n\n if (handler.__once) {\n node.removeEventListener(eventName, handler.__once, capture);\n }\n}\n\nexport default removeEventListener;","import addEventListener from './addEventListener';\nimport removeEventListener from './removeEventListener';\n\nfunction listen(node, eventName, handler, options) {\n addEventListener(node, eventName, handler, options);\n return function () {\n removeEventListener(node, eventName, handler, options);\n };\n}\n\nexport default listen;","import css from './css';\nimport listen from './listen';\nimport triggerEvent from './triggerEvent';\n\nfunction parseDuration(node) {\n var str = css(node, 'transitionDuration') || '';\n var mult = str.indexOf('ms') === -1 ? 1000 : 1;\n return parseFloat(str) * mult;\n}\n\nfunction emulateTransitionEnd(element, duration, padding) {\n if (padding === void 0) {\n padding = 5;\n }\n\n var called = false;\n var handle = setTimeout(function () {\n if (!called) triggerEvent(element, 'transitionend', true);\n }, duration + padding);\n var remove = listen(element, 'transitionend', function () {\n called = true;\n }, {\n once: true\n });\n return function () {\n clearTimeout(handle);\n remove();\n };\n}\n\nexport default function transitionEnd(element, handler, duration, padding) {\n if (duration == null) duration = parseDuration(element) || 0;\n var removeEmulate = emulateTransitionEnd(element, duration, padding);\n var remove = listen(element, 'transitionend', handler);\n return function () {\n removeEmulate();\n remove();\n };\n}","/**\n * Triggers an event on a given element.\n * \n * @param node the element\n * @param eventName the event name to trigger\n * @param bubbles whether the event should bubble up\n * @param cancelable whether the event should be cancelable\n */\nexport default function triggerEvent(node, eventName, bubbles, cancelable) {\n if (bubbles === void 0) {\n bubbles = false;\n }\n\n if (cancelable === void 0) {\n cancelable = true;\n }\n\n if (node) {\n var event = document.createEvent('HTMLEvents');\n event.initEvent(eventName, bubbles, cancelable);\n node.dispatchEvent(event);\n }\n}","import css from 'dom-helpers/css';\nimport transitionEnd from 'dom-helpers/transitionEnd';\n\nfunction parseDuration(node, property) {\n const str = css(node, property) || '';\n const mult = str.indexOf('ms') === -1 ? 1000 : 1;\n return parseFloat(str) * mult;\n}\n\nexport default function transitionEndListener(element, handler) {\n const duration = parseDuration(element, 'transitionDuration');\n const delay = parseDuration(element, 'transitionDelay');\n const remove = transitionEnd(element, e => {\n if (e.target === element) {\n remove();\n handler(e);\n }\n }, duration + delay);\n}","/**\n * Safe chained function\n *\n * Will only create a new function if needed,\n * otherwise will pass back existing functions or null.\n *\n * @param {function} functions to chain\n * @returns {function|null}\n */\nfunction createChainedFunction(...funcs) {\n return funcs.filter(f => f != null).reduce((acc, f) => {\n if (typeof f !== 'function') {\n throw new Error('Invalid Argument Type, must only provide functions, undefined, or null.');\n }\n\n if (acc === null) return f;\n return function chainedFunction(...args) {\n // @ts-ignore\n acc.apply(this, args); // @ts-ignore\n\n f.apply(this, args);\n };\n }, null);\n}\n\nexport default createChainedFunction;","// reading a dimension prop will cause the browser to recalculate,\n// which will let our animations work\nexport default function triggerBrowserReflow(node) {\n // eslint-disable-next-line @typescript-eslint/no-unused-expressions\n node.offsetHeight;\n}","import { useMemo } from 'react';\n\nvar toFnRef = function toFnRef(ref) {\n return !ref || typeof ref === 'function' ? ref : function (value) {\n ref.current = value;\n };\n};\n\nexport function mergeRefs(refA, refB) {\n var a = toFnRef(refA);\n var b = toFnRef(refB);\n return function (value) {\n if (a) a(value);\n if (b) b(value);\n };\n}\n/**\n * Create and returns a single callback ref composed from two other Refs.\n *\n * ```tsx\n * const Button = React.forwardRef((props, ref) => {\n * const [element, attachRef] = useCallbackRef();\n * const mergedRef = useMergedRefs(ref, attachRef);\n *\n * return