autotel-subscribers 41.0.3 → 41.0.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/amplitude.cjs +2 -2
- package/dist/amplitude.cjs.map +1 -1
- package/dist/amplitude.js +2 -2
- package/dist/architecture-snapshot.cjs +6 -6
- package/dist/architecture-snapshot.cjs.map +1 -1
- package/dist/architecture-snapshot.js +3 -3
- package/dist/architecture-snapshot.js.map +1 -1
- package/dist/{cjs-BS1fE_MP.js → cjs-Bef2t9Tr.js} +348 -109
- package/dist/cjs-Bef2t9Tr.js.map +1 -0
- package/dist/{cjs-CC1S3xV3.cjs → cjs-C2fugEI8.cjs} +169 -164
- package/dist/{cjs-CC1S3xV3.cjs.map → cjs-C2fugEI8.cjs.map} +1 -1
- package/dist/{cjs-BVWTUHeD.cjs → cjs-C5tev9Yr.cjs} +458 -219
- package/dist/cjs-C5tev9Yr.cjs.map +1 -0
- package/dist/{cjs-j3aHAiuq.js → cjs-CY69zXGd.js} +20 -15
- package/dist/{cjs-j3aHAiuq.js.map → cjs-CY69zXGd.js.map} +1 -1
- package/dist/factories.cjs +2 -2
- package/dist/factories.d.cts +1 -1
- package/dist/factories.d.ts +1 -1
- package/dist/factories.js +1 -1
- package/dist/file.cjs +2 -2
- package/dist/index.cjs +2 -2
- package/dist/index.d.cts +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.js +1 -1
- package/dist/{index.node-T6N3xCyo.js → index.node-BF2WkODf.js} +368 -148
- package/dist/index.node-BF2WkODf.js.map +1 -0
- package/dist/{index.node-CVFSZNnN.cjs → index.node-DOkEUdYV.cjs} +369 -149
- package/dist/index.node-DOkEUdYV.cjs.map +1 -0
- package/dist/middleware.cjs +1 -1
- package/dist/{mixpanel-node-CTaHqgil.cjs → mixpanel-node-BVS2X-h7.cjs} +32 -31
- package/dist/{mixpanel-node-CTaHqgil.cjs.map → mixpanel-node-BVS2X-h7.cjs.map} +1 -1
- package/dist/{mixpanel-node-2RXHuOWK.js → mixpanel-node-BltEtoG6.js} +5 -4
- package/dist/{mixpanel-node-2RXHuOWK.js.map → mixpanel-node-BltEtoG6.js.map} +1 -1
- package/dist/mixpanel.cjs +2 -2
- package/dist/mixpanel.cjs.map +1 -1
- package/dist/mixpanel.js +2 -2
- package/dist/{posthog-DTpCMk3r.js → posthog-C9M1c_oG.js} +2 -2
- package/dist/{posthog-DTpCMk3r.js.map → posthog-C9M1c_oG.js.map} +1 -1
- package/dist/{posthog-DLBf2UJJ.d.ts → posthog-DCV5Arkw.d.ts} +217 -24
- package/dist/posthog-DCV5Arkw.d.ts.map +1 -0
- package/dist/{posthog-Duh9pZs7.d.cts → posthog-DRYlG5fG.d.cts} +217 -24
- package/dist/posthog-DRYlG5fG.d.cts.map +1 -0
- package/dist/{posthog-Bz9XTdX5.cjs → posthog-DZfoAW1q.cjs} +4 -4
- package/dist/{posthog-Bz9XTdX5.cjs.map → posthog-DZfoAW1q.cjs.map} +1 -1
- package/dist/posthog.cjs +2 -2
- package/dist/posthog.d.cts +1 -1
- package/dist/posthog.d.ts +1 -1
- package/dist/posthog.js +1 -1
- package/dist/{chunk-CiiB0FCw.js → rolldown-runtime-BHkdefai.js} +9 -2
- package/dist/{chunk-BIkA7V7q.cjs → rolldown-runtime-CfAboj1T.cjs} +8 -1
- package/dist/security.cjs +1 -1
- package/dist/segment.cjs +2 -2
- package/dist/segment.cjs.map +1 -1
- package/dist/segment.js +2 -2
- package/dist/slack.cjs +1 -1
- package/dist/{tslib.es6-Ck6tgf4J.cjs → tslib.es6-02HJIdSd.cjs} +4 -4
- package/dist/{tslib.es6-Ck6tgf4J.cjs.map → tslib.es6-02HJIdSd.cjs.map} +1 -1
- package/dist/{tslib.es6-13Ha9x3r.js → tslib.es6-Dvm0j0am.js} +2 -2
- package/dist/{tslib.es6-13Ha9x3r.js.map → tslib.es6-Dvm0j0am.js.map} +1 -1
- package/dist/webhook.cjs +1 -1
- package/package.json +15 -15
- package/dist/cjs-BS1fE_MP.js.map +0 -1
- package/dist/cjs-BVWTUHeD.cjs.map +0 -1
- package/dist/index.node-CVFSZNnN.cjs.map +0 -1
- package/dist/index.node-T6N3xCyo.js.map +0 -1
- package/dist/posthog-DLBf2UJJ.d.ts.map +0 -1
- package/dist/posthog-Duh9pZs7.d.cts.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cjs-CC1S3xV3.cjs","names":["node_crypto_1","node_buffer_1","node_crypto_1","util","node_crypto_1","crypto","node_crypto_1","node_crypto_1","node_buffer_1","node_crypto_1","node_crypto_1","node_crypto_1","node_util_1","node_util_1","node_crypto_1","node_crypto_1","node_crypto_1","node_util_1","node_crypto_1","node_crypto_1","node_crypto_1","node_crypto_1","node_crypto_1","node_crypto_1","crypto","node_util_1","node_util_1"],"sources":["../../../node_modules/.pnpm/@segment+analytics-core@1.8.3/node_modules/@segment/analytics-core/dist/cjs/emitter/interface.js","../../../node_modules/.pnpm/@segment+analytics-core@1.8.3/node_modules/@segment/analytics-core/dist/cjs/plugins/index.js","../../../node_modules/.pnpm/@segment+analytics-core@1.8.3/node_modules/@segment/analytics-core/dist/cjs/events/interfaces.js","../../../node_modules/.pnpm/dset@3.1.4/node_modules/dset/dist/index.js","../../../node_modules/.pnpm/@segment+analytics-core@1.8.3/node_modules/@segment/analytics-core/dist/cjs/utils/pick.js","../../../node_modules/.pnpm/@segment+analytics-core@1.8.3/node_modules/@segment/analytics-core/dist/cjs/validation/errors.js","../../../node_modules/.pnpm/@segment+analytics-core@1.8.3/node_modules/@segment/analytics-core/dist/cjs/validation/helpers.js","../../../node_modules/.pnpm/@segment+analytics-core@1.8.3/node_modules/@segment/analytics-core/dist/cjs/validation/assertions.js","../../../node_modules/.pnpm/@segment+analytics-core@1.8.3/node_modules/@segment/analytics-core/dist/cjs/events/index.js","../../../node_modules/.pnpm/@segment+analytics-core@1.8.3/node_modules/@segment/analytics-core/dist/cjs/callback/index.js","../../../node_modules/.pnpm/@segment+analytics-generic-utils@1.2.0/node_modules/@segment/analytics-generic-utils/dist/cjs/create-deferred/create-deferred.js","../../../node_modules/.pnpm/@segment+analytics-generic-utils@1.2.0/node_modules/@segment/analytics-generic-utils/dist/cjs/create-deferred/index.js","../../../node_modules/.pnpm/@segment+analytics-generic-utils@1.2.0/node_modules/@segment/analytics-generic-utils/dist/cjs/emitter/emitter.js","../../../node_modules/.pnpm/@segment+analytics-generic-utils@1.2.0/node_modules/@segment/analytics-generic-utils/dist/cjs/emitter/index.js","../../../node_modules/.pnpm/@segment+analytics-generic-utils@1.2.0/node_modules/@segment/analytics-generic-utils/dist/cjs/index.js","../../../node_modules/.pnpm/@segment+analytics-core@1.8.3/node_modules/@segment/analytics-core/dist/cjs/priority-queue/backoff.js","../../../node_modules/.pnpm/@segment+analytics-core@1.8.3/node_modules/@segment/analytics-core/dist/cjs/priority-queue/index.js","../../../node_modules/.pnpm/@lukeed+uuid@2.0.1/node_modules/@lukeed/uuid/dist/index.js","../../../node_modules/.pnpm/@segment+analytics-core@1.8.3/node_modules/@segment/analytics-core/dist/cjs/logger/index.js","../../../node_modules/.pnpm/@segment+analytics-core@1.8.3/node_modules/@segment/analytics-core/dist/cjs/stats/index.js","../../../node_modules/.pnpm/@segment+analytics-core@1.8.3/node_modules/@segment/analytics-core/dist/cjs/context/index.js","../../../node_modules/.pnpm/@segment+analytics-core@1.8.3/node_modules/@segment/analytics-core/dist/cjs/utils/group-by.js","../../../node_modules/.pnpm/@segment+analytics-core@1.8.3/node_modules/@segment/analytics-core/dist/cjs/utils/is-thenable.js","../../../node_modules/.pnpm/@segment+analytics-core@1.8.3/node_modules/@segment/analytics-core/dist/cjs/task/task-group.js","../../../node_modules/.pnpm/@segment+analytics-core@1.8.3/node_modules/@segment/analytics-core/dist/cjs/queue/delivery.js","../../../node_modules/.pnpm/@segment+analytics-core@1.8.3/node_modules/@segment/analytics-core/dist/cjs/queue/event-queue.js","../../../node_modules/.pnpm/@segment+analytics-core@1.8.3/node_modules/@segment/analytics-core/dist/cjs/analytics/index.js","../../../node_modules/.pnpm/@segment+analytics-core@1.8.3/node_modules/@segment/analytics-core/dist/cjs/analytics/dispatch.js","../../../node_modules/.pnpm/@segment+analytics-core@1.8.3/node_modules/@segment/analytics-core/dist/cjs/utils/bind-all.js","../../../node_modules/.pnpm/@segment+analytics-core@1.8.3/node_modules/@segment/analytics-core/dist/cjs/index.js","../../../node_modules/.pnpm/@segment+analytics-node@3.1.0/node_modules/@segment/analytics-node/dist/cjs/app/settings.js","../../../node_modules/.pnpm/@segment+analytics-node@3.1.0/node_modules/@segment/analytics-node/dist/cjs/generated/version.js","../../../node_modules/.pnpm/@segment+analytics-node@3.1.0/node_modules/@segment/analytics-node/dist/cjs/lib/create-url.js","../../../node_modules/.pnpm/@segment+analytics-node@3.1.0/node_modules/@segment/analytics-node/dist/cjs/lib/uuid.js","../../../node_modules/.pnpm/@segment+analytics-node@3.1.0/node_modules/@segment/analytics-node/dist/cjs/plugins/segmentio/context-batch.js","../../../node_modules/.pnpm/jose@5.10.0/node_modules/jose/dist/node/cjs/runtime/digest.js","../../../node_modules/.pnpm/jose@5.10.0/node_modules/jose/dist/node/cjs/lib/buffer_utils.js","../../../node_modules/.pnpm/jose@5.10.0/node_modules/jose/dist/node/cjs/runtime/base64url.js","../../../node_modules/.pnpm/jose@5.10.0/node_modules/jose/dist/node/cjs/util/errors.js","../../../node_modules/.pnpm/jose@5.10.0/node_modules/jose/dist/node/cjs/runtime/random.js","../../../node_modules/.pnpm/jose@5.10.0/node_modules/jose/dist/node/cjs/lib/iv.js","../../../node_modules/.pnpm/jose@5.10.0/node_modules/jose/dist/node/cjs/lib/check_iv_length.js","../../../node_modules/.pnpm/jose@5.10.0/node_modules/jose/dist/node/cjs/runtime/is_key_object.js","../../../node_modules/.pnpm/jose@5.10.0/node_modules/jose/dist/node/cjs/runtime/check_cek_length.js","../../../node_modules/.pnpm/jose@5.10.0/node_modules/jose/dist/node/cjs/runtime/timing_safe_equal.js","../../../node_modules/.pnpm/jose@5.10.0/node_modules/jose/dist/node/cjs/runtime/cbc_tag.js","../../../node_modules/.pnpm/jose@5.10.0/node_modules/jose/dist/node/cjs/runtime/webcrypto.js","../../../node_modules/.pnpm/jose@5.10.0/node_modules/jose/dist/node/cjs/lib/crypto_key.js","../../../node_modules/.pnpm/jose@5.10.0/node_modules/jose/dist/node/cjs/lib/invalid_key_input.js","../../../node_modules/.pnpm/jose@5.10.0/node_modules/jose/dist/node/cjs/runtime/ciphers.js","../../../node_modules/.pnpm/jose@5.10.0/node_modules/jose/dist/node/cjs/runtime/is_key_like.js","../../../node_modules/.pnpm/jose@5.10.0/node_modules/jose/dist/node/cjs/runtime/decrypt.js","../../../node_modules/.pnpm/jose@5.10.0/node_modules/jose/dist/node/cjs/lib/is_disjoint.js","../../../node_modules/.pnpm/jose@5.10.0/node_modules/jose/dist/node/cjs/lib/is_object.js","../../../node_modules/.pnpm/jose@5.10.0/node_modules/jose/dist/node/cjs/runtime/aeskw.js","../../../node_modules/.pnpm/jose@5.10.0/node_modules/jose/dist/node/cjs/lib/is_jwk.js","../../../node_modules/.pnpm/jose@5.10.0/node_modules/jose/dist/node/cjs/runtime/get_named_curve.js","../../../node_modules/.pnpm/jose@5.10.0/node_modules/jose/dist/node/cjs/runtime/ecdhes.js","../../../node_modules/.pnpm/jose@5.10.0/node_modules/jose/dist/node/cjs/lib/check_p2s.js","../../../node_modules/.pnpm/jose@5.10.0/node_modules/jose/dist/node/cjs/runtime/pbes2kw.js","../../../node_modules/.pnpm/jose@5.10.0/node_modules/jose/dist/node/cjs/runtime/check_key_length.js","../../../node_modules/.pnpm/jose@5.10.0/node_modules/jose/dist/node/cjs/runtime/rsaes.js","../../../node_modules/.pnpm/jose@5.10.0/node_modules/jose/dist/node/cjs/runtime/normalize_key.js","../../../node_modules/.pnpm/jose@5.10.0/node_modules/jose/dist/node/cjs/lib/cek.js","../../../node_modules/.pnpm/jose@5.10.0/node_modules/jose/dist/node/cjs/runtime/asn1.js","../../../node_modules/.pnpm/jose@5.10.0/node_modules/jose/dist/node/cjs/runtime/jwk_to_key.js","../../../node_modules/.pnpm/jose@5.10.0/node_modules/jose/dist/node/cjs/key/import.js","../../../node_modules/.pnpm/jose@5.10.0/node_modules/jose/dist/node/cjs/lib/check_key_type.js","../../../node_modules/.pnpm/jose@5.10.0/node_modules/jose/dist/node/cjs/runtime/encrypt.js","../../../node_modules/.pnpm/jose@5.10.0/node_modules/jose/dist/node/cjs/lib/aesgcmkw.js","../../../node_modules/.pnpm/jose@5.10.0/node_modules/jose/dist/node/cjs/lib/decrypt_key_management.js","../../../node_modules/.pnpm/jose@5.10.0/node_modules/jose/dist/node/cjs/lib/validate_crit.js","../../../node_modules/.pnpm/jose@5.10.0/node_modules/jose/dist/node/cjs/lib/validate_algorithms.js","../../../node_modules/.pnpm/jose@5.10.0/node_modules/jose/dist/node/cjs/jwe/flattened/decrypt.js","../../../node_modules/.pnpm/jose@5.10.0/node_modules/jose/dist/node/cjs/jwe/compact/decrypt.js","../../../node_modules/.pnpm/jose@5.10.0/node_modules/jose/dist/node/cjs/jwe/general/decrypt.js","../../../node_modules/.pnpm/jose@5.10.0/node_modules/jose/dist/node/cjs/lib/private_symbols.js","../../../node_modules/.pnpm/jose@5.10.0/node_modules/jose/dist/node/cjs/runtime/key_to_jwk.js","../../../node_modules/.pnpm/jose@5.10.0/node_modules/jose/dist/node/cjs/key/export.js","../../../node_modules/.pnpm/jose@5.10.0/node_modules/jose/dist/node/cjs/lib/encrypt_key_management.js","../../../node_modules/.pnpm/jose@5.10.0/node_modules/jose/dist/node/cjs/jwe/flattened/encrypt.js","../../../node_modules/.pnpm/jose@5.10.0/node_modules/jose/dist/node/cjs/jwe/general/encrypt.js","../../../node_modules/.pnpm/jose@5.10.0/node_modules/jose/dist/node/cjs/runtime/dsa_digest.js","../../../node_modules/.pnpm/jose@5.10.0/node_modules/jose/dist/node/cjs/runtime/node_key.js","../../../node_modules/.pnpm/jose@5.10.0/node_modules/jose/dist/node/cjs/runtime/hmac_digest.js","../../../node_modules/.pnpm/jose@5.10.0/node_modules/jose/dist/node/cjs/runtime/get_sign_verify_key.js","../../../node_modules/.pnpm/jose@5.10.0/node_modules/jose/dist/node/cjs/runtime/sign.js","../../../node_modules/.pnpm/jose@5.10.0/node_modules/jose/dist/node/cjs/runtime/verify.js","../../../node_modules/.pnpm/jose@5.10.0/node_modules/jose/dist/node/cjs/jws/flattened/verify.js","../../../node_modules/.pnpm/jose@5.10.0/node_modules/jose/dist/node/cjs/jws/compact/verify.js","../../../node_modules/.pnpm/jose@5.10.0/node_modules/jose/dist/node/cjs/jws/general/verify.js","../../../node_modules/.pnpm/jose@5.10.0/node_modules/jose/dist/node/cjs/lib/epoch.js","../../../node_modules/.pnpm/jose@5.10.0/node_modules/jose/dist/node/cjs/lib/secs.js","../../../node_modules/.pnpm/jose@5.10.0/node_modules/jose/dist/node/cjs/lib/jwt_claims_set.js","../../../node_modules/.pnpm/jose@5.10.0/node_modules/jose/dist/node/cjs/jwt/verify.js","../../../node_modules/.pnpm/jose@5.10.0/node_modules/jose/dist/node/cjs/jwt/decrypt.js","../../../node_modules/.pnpm/jose@5.10.0/node_modules/jose/dist/node/cjs/jwe/compact/encrypt.js","../../../node_modules/.pnpm/jose@5.10.0/node_modules/jose/dist/node/cjs/jws/flattened/sign.js","../../../node_modules/.pnpm/jose@5.10.0/node_modules/jose/dist/node/cjs/jws/compact/sign.js","../../../node_modules/.pnpm/jose@5.10.0/node_modules/jose/dist/node/cjs/jws/general/sign.js","../../../node_modules/.pnpm/jose@5.10.0/node_modules/jose/dist/node/cjs/jwt/produce.js","../../../node_modules/.pnpm/jose@5.10.0/node_modules/jose/dist/node/cjs/jwt/sign.js","../../../node_modules/.pnpm/jose@5.10.0/node_modules/jose/dist/node/cjs/jwt/encrypt.js","../../../node_modules/.pnpm/jose@5.10.0/node_modules/jose/dist/node/cjs/jwk/thumbprint.js","../../../node_modules/.pnpm/jose@5.10.0/node_modules/jose/dist/node/cjs/jwk/embedded.js","../../../node_modules/.pnpm/jose@5.10.0/node_modules/jose/dist/node/cjs/jwks/local.js","../../../node_modules/.pnpm/jose@5.10.0/node_modules/jose/dist/node/cjs/runtime/fetch_jwks.js","../../../node_modules/.pnpm/jose@5.10.0/node_modules/jose/dist/node/cjs/jwks/remote.js","../../../node_modules/.pnpm/jose@5.10.0/node_modules/jose/dist/node/cjs/jwt/unsecured.js","../../../node_modules/.pnpm/jose@5.10.0/node_modules/jose/dist/node/cjs/util/base64url.js","../../../node_modules/.pnpm/jose@5.10.0/node_modules/jose/dist/node/cjs/util/decode_protected_header.js","../../../node_modules/.pnpm/jose@5.10.0/node_modules/jose/dist/node/cjs/util/decode_jwt.js","../../../node_modules/.pnpm/jose@5.10.0/node_modules/jose/dist/node/cjs/runtime/generate.js","../../../node_modules/.pnpm/jose@5.10.0/node_modules/jose/dist/node/cjs/key/generate_key_pair.js","../../../node_modules/.pnpm/jose@5.10.0/node_modules/jose/dist/node/cjs/key/generate_secret.js","../../../node_modules/.pnpm/jose@5.10.0/node_modules/jose/dist/node/cjs/runtime/runtime.js","../../../node_modules/.pnpm/jose@5.10.0/node_modules/jose/dist/node/cjs/util/runtime.js","../../../node_modules/.pnpm/jose@5.10.0/node_modules/jose/dist/node/cjs/index.js","../../../node_modules/.pnpm/@segment+analytics-node@3.1.0/node_modules/@segment/analytics-node/dist/cjs/lib/token-manager.js","../../../node_modules/.pnpm/@segment+analytics-node@3.1.0/node_modules/@segment/analytics-node/dist/cjs/lib/base-64-encode.js","../../../node_modules/.pnpm/@segment+analytics-node@3.1.0/node_modules/@segment/analytics-node/dist/cjs/plugins/segmentio/publisher.js","../../../node_modules/.pnpm/@segment+analytics-node@3.1.0/node_modules/@segment/analytics-node/dist/cjs/lib/env.js","../../../node_modules/.pnpm/@segment+analytics-node@3.1.0/node_modules/@segment/analytics-node/dist/cjs/plugins/segmentio/index.js","../../../node_modules/.pnpm/@segment+analytics-node@3.1.0/node_modules/@segment/analytics-node/dist/cjs/lib/get-message-id.js","../../../node_modules/.pnpm/@segment+analytics-node@3.1.0/node_modules/@segment/analytics-node/dist/cjs/app/event-factory.js","../../../node_modules/.pnpm/@segment+analytics-node@3.1.0/node_modules/@segment/analytics-node/dist/cjs/app/context.js","../../../node_modules/.pnpm/@segment+analytics-node@3.1.0/node_modules/@segment/analytics-node/dist/cjs/app/dispatch-emit.js","../../../node_modules/.pnpm/@segment+analytics-node@3.1.0/node_modules/@segment/analytics-node/dist/cjs/app/emitter.js","../../../node_modules/.pnpm/@segment+analytics-node@3.1.0/node_modules/@segment/analytics-node/dist/cjs/app/event-queue.js","../../../node_modules/.pnpm/@segment+analytics-node@3.1.0/node_modules/@segment/analytics-node/dist/cjs/lib/abort.js","../../../node_modules/.pnpm/@segment+analytics-node@3.1.0/node_modules/@segment/analytics-node/dist/cjs/lib/fetch.js","../../../node_modules/.pnpm/@segment+analytics-node@3.1.0/node_modules/@segment/analytics-node/dist/cjs/lib/http-client.js","../../../node_modules/.pnpm/@segment+analytics-node@3.1.0/node_modules/@segment/analytics-node/dist/cjs/app/analytics-node.js","../../../node_modules/.pnpm/@segment+analytics-node@3.1.0/node_modules/@segment/analytics-node/dist/cjs/index.common.js","../../../node_modules/.pnpm/@segment+analytics-node@3.1.0/node_modules/@segment/analytics-node/dist/cjs/index.js"],"sourcesContent":["\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n//# sourceMappingURL=interface.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n//# sourceMappingURL=interfaces.js.map","function dset(obj, keys, val) {\n\tkeys.split && (keys=keys.split('.'));\n\tvar i=0, l=keys.length, t=obj, x, k;\n\twhile (i < l) {\n\t\tk = ''+keys[i++];\n\t\tif (k === '__proto__' || k === 'constructor' || k === 'prototype') break;\n\t\tt = t[k] = (i === l) ? val : (typeof(x=t[k])===typeof(keys)) ? x : (keys[i]*0 !== 0 || !!~(''+keys[i]).indexOf('.')) ? {} : [];\n\t}\n}\n\nexports.dset = dset;","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.pickBy = void 0;\nvar pickBy = function (obj, fn) {\n return Object.keys(obj)\n .filter(function (k) { return fn(k, obj[k]); })\n .reduce(function (acc, key) { return ((acc[key] = obj[key]), acc); }, {});\n};\nexports.pickBy = pickBy;\n//# sourceMappingURL=pick.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ValidationError = void 0;\nvar tslib_1 = require(\"tslib\");\nvar ValidationError = /** @class */ (function (_super) {\n tslib_1.__extends(ValidationError, _super);\n function ValidationError(field, message) {\n var _this = _super.call(this, \"\".concat(field, \" \").concat(message)) || this;\n _this.field = field;\n return _this;\n }\n return ValidationError;\n}(Error));\nexports.ValidationError = ValidationError;\n//# sourceMappingURL=errors.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.isPlainObject = exports.exists = exports.isFunction = exports.isNumber = exports.isString = void 0;\nfunction isString(obj) {\n return typeof obj === 'string';\n}\nexports.isString = isString;\nfunction isNumber(obj) {\n return typeof obj === 'number';\n}\nexports.isNumber = isNumber;\nfunction isFunction(obj) {\n return typeof obj === 'function';\n}\nexports.isFunction = isFunction;\nfunction exists(val) {\n return val !== undefined && val !== null;\n}\nexports.exists = exists;\nfunction isPlainObject(obj) {\n return (Object.prototype.toString.call(obj).slice(8, -1).toLowerCase() === 'object');\n}\nexports.isPlainObject = isPlainObject;\n//# sourceMappingURL=helpers.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.validateEvent = exports.assertMessageId = exports.assertTraits = exports.assertTrackEventProperties = exports.assertTrackEventName = exports.assertEventType = exports.assertEventExists = exports.assertUserIdentity = void 0;\nvar errors_1 = require(\"./errors\");\nvar helpers_1 = require(\"./helpers\");\nvar stringError = 'is not a string';\nvar objError = 'is not an object';\nvar nilError = 'is nil';\n// user identity check could hypothetically could be used in the browser event factory, but not 100% sure -- so this is node only for now\nfunction assertUserIdentity(event) {\n var USER_FIELD_NAME = '.userId/anonymousId/previousId/groupId';\n var getAnyUserId = function (event) { var _a, _b, _c; return (_c = (_b = (_a = event.userId) !== null && _a !== void 0 ? _a : event.anonymousId) !== null && _b !== void 0 ? _b : event.groupId) !== null && _c !== void 0 ? _c : event.previousId; };\n var id = getAnyUserId(event);\n if (!(0, helpers_1.exists)(id)) {\n throw new errors_1.ValidationError(USER_FIELD_NAME, nilError);\n }\n else if (!(0, helpers_1.isString)(id)) {\n throw new errors_1.ValidationError(USER_FIELD_NAME, stringError);\n }\n}\nexports.assertUserIdentity = assertUserIdentity;\nfunction assertEventExists(event) {\n if (!(0, helpers_1.exists)(event)) {\n throw new errors_1.ValidationError('Event', nilError);\n }\n if (typeof event !== 'object') {\n throw new errors_1.ValidationError('Event', objError);\n }\n}\nexports.assertEventExists = assertEventExists;\nfunction assertEventType(event) {\n if (!(0, helpers_1.isString)(event.type)) {\n throw new errors_1.ValidationError('.type', stringError);\n }\n}\nexports.assertEventType = assertEventType;\nfunction assertTrackEventName(event) {\n if (!(0, helpers_1.isString)(event.event)) {\n throw new errors_1.ValidationError('.event', stringError);\n }\n}\nexports.assertTrackEventName = assertTrackEventName;\nfunction assertTrackEventProperties(event) {\n if (!(0, helpers_1.isPlainObject)(event.properties)) {\n throw new errors_1.ValidationError('.properties', objError);\n }\n}\nexports.assertTrackEventProperties = assertTrackEventProperties;\nfunction assertTraits(event) {\n if (!(0, helpers_1.isPlainObject)(event.traits)) {\n throw new errors_1.ValidationError('.traits', objError);\n }\n}\nexports.assertTraits = assertTraits;\nfunction assertMessageId(event) {\n if (!(0, helpers_1.isString)(event.messageId)) {\n throw new errors_1.ValidationError('.messageId', stringError);\n }\n}\nexports.assertMessageId = assertMessageId;\nfunction validateEvent(event) {\n assertEventExists(event);\n assertEventType(event);\n assertMessageId(event);\n if (event.type === 'track') {\n assertTrackEventName(event);\n assertTrackEventProperties(event);\n }\n if (['group', 'identify'].includes(event.type)) {\n assertTraits(event);\n }\n}\nexports.validateEvent = validateEvent;\n//# sourceMappingURL=assertions.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.CoreEventFactory = void 0;\nvar tslib_1 = require(\"tslib\");\ntslib_1.__exportStar(require(\"./interfaces\"), exports);\nvar dset_1 = require(\"dset\");\nvar pick_1 = require(\"../utils/pick\");\nvar assertions_1 = require(\"../validation/assertions\");\n/**\n * Internal settings object that is used internally by the factory\n */\nvar InternalEventFactorySettings = /** @class */ (function () {\n function InternalEventFactorySettings(settings) {\n var _a, _b;\n this.settings = settings;\n this.createMessageId = settings.createMessageId;\n this.onEventMethodCall = (_a = settings.onEventMethodCall) !== null && _a !== void 0 ? _a : (function () { });\n this.onFinishedEvent = (_b = settings.onFinishedEvent) !== null && _b !== void 0 ? _b : (function () { });\n }\n return InternalEventFactorySettings;\n}());\nvar CoreEventFactory = /** @class */ (function () {\n function CoreEventFactory(settings) {\n this.settings = new InternalEventFactorySettings(settings);\n }\n CoreEventFactory.prototype.track = function (event, properties, options, integrationOptions) {\n this.settings.onEventMethodCall({ type: 'track', options: options });\n return this.normalize(tslib_1.__assign(tslib_1.__assign({}, this.baseEvent()), { event: event, type: 'track', properties: properties !== null && properties !== void 0 ? properties : {}, options: tslib_1.__assign({}, options), integrations: tslib_1.__assign({}, integrationOptions) }));\n };\n CoreEventFactory.prototype.page = function (category, page, properties, options, integrationOptions) {\n var _a;\n this.settings.onEventMethodCall({ type: 'page', options: options });\n var event = {\n type: 'page',\n properties: tslib_1.__assign({}, properties),\n options: tslib_1.__assign({}, options),\n integrations: tslib_1.__assign({}, integrationOptions),\n };\n if (category !== null) {\n event.category = category;\n event.properties = (_a = event.properties) !== null && _a !== void 0 ? _a : {};\n event.properties.category = category;\n }\n if (page !== null) {\n event.name = page;\n }\n return this.normalize(tslib_1.__assign(tslib_1.__assign({}, this.baseEvent()), event));\n };\n CoreEventFactory.prototype.screen = function (category, screen, properties, options, integrationOptions) {\n this.settings.onEventMethodCall({ type: 'screen', options: options });\n var event = {\n type: 'screen',\n properties: tslib_1.__assign({}, properties),\n options: tslib_1.__assign({}, options),\n integrations: tslib_1.__assign({}, integrationOptions),\n };\n if (category !== null) {\n event.category = category;\n }\n if (screen !== null) {\n event.name = screen;\n }\n return this.normalize(tslib_1.__assign(tslib_1.__assign({}, this.baseEvent()), event));\n };\n CoreEventFactory.prototype.identify = function (userId, traits, options, integrationsOptions) {\n this.settings.onEventMethodCall({ type: 'identify', options: options });\n return this.normalize(tslib_1.__assign(tslib_1.__assign({}, this.baseEvent()), { type: 'identify', userId: userId, traits: traits !== null && traits !== void 0 ? traits : {}, options: tslib_1.__assign({}, options), integrations: integrationsOptions }));\n };\n CoreEventFactory.prototype.group = function (groupId, traits, options, integrationOptions) {\n this.settings.onEventMethodCall({ type: 'group', options: options });\n return this.normalize(tslib_1.__assign(tslib_1.__assign({}, this.baseEvent()), { type: 'group', traits: traits !== null && traits !== void 0 ? traits : {}, options: tslib_1.__assign({}, options), integrations: tslib_1.__assign({}, integrationOptions), //\n groupId: groupId }));\n };\n CoreEventFactory.prototype.alias = function (to, from, // TODO: can we make this undefined?\n options, integrationOptions) {\n this.settings.onEventMethodCall({ type: 'alias', options: options });\n var base = {\n userId: to,\n type: 'alias',\n options: tslib_1.__assign({}, options),\n integrations: tslib_1.__assign({}, integrationOptions),\n };\n if (from !== null) {\n base.previousId = from;\n }\n if (to === undefined) {\n return this.normalize(tslib_1.__assign(tslib_1.__assign({}, base), this.baseEvent()));\n }\n return this.normalize(tslib_1.__assign(tslib_1.__assign({}, this.baseEvent()), base));\n };\n CoreEventFactory.prototype.baseEvent = function () {\n return {\n integrations: {},\n options: {},\n };\n };\n /**\n * Builds the context part of an event based on \"foreign\" keys that\n * are provided in the `Options` parameter for an Event\n */\n CoreEventFactory.prototype.context = function (options) {\n var _a;\n /**\n * If the event options are known keys from this list, we move them to the top level of the event.\n * Any other options are moved to context.\n */\n var eventOverrideKeys = [\n 'userId',\n 'anonymousId',\n 'timestamp',\n 'messageId',\n ];\n delete options['integrations'];\n var providedOptionsKeys = Object.keys(options);\n var context = (_a = options.context) !== null && _a !== void 0 ? _a : {};\n var eventOverrides = {};\n providedOptionsKeys.forEach(function (key) {\n if (key === 'context') {\n return;\n }\n if (eventOverrideKeys.includes(key)) {\n (0, dset_1.dset)(eventOverrides, key, options[key]);\n }\n else {\n (0, dset_1.dset)(context, key, options[key]);\n }\n });\n return [context, eventOverrides];\n };\n CoreEventFactory.prototype.normalize = function (event) {\n var _a, _b;\n var integrationBooleans = Object.keys((_a = event.integrations) !== null && _a !== void 0 ? _a : {}).reduce(function (integrationNames, name) {\n var _a;\n var _b;\n return tslib_1.__assign(tslib_1.__assign({}, integrationNames), (_a = {}, _a[name] = Boolean((_b = event.integrations) === null || _b === void 0 ? void 0 : _b[name]), _a));\n }, {});\n // filter out any undefined options\n event.options = (0, pick_1.pickBy)(event.options || {}, function (_, value) {\n return value !== undefined;\n });\n // This is pretty trippy, but here's what's going on:\n // - a) We don't pass initial integration options as part of the event, only if they're true or false\n // - b) We do accept per integration overrides (like integrations.Amplitude.sessionId) at the event level\n // Hence the need to convert base integration options to booleans, but maintain per event integration overrides\n var allIntegrations = tslib_1.__assign(tslib_1.__assign({}, integrationBooleans), (_b = event.options) === null || _b === void 0 ? void 0 : _b.integrations);\n var _c = event.options\n ? this.context(event.options)\n : [], context = _c[0], overrides = _c[1];\n var options = event.options, rest = tslib_1.__rest(event, [\"options\"]);\n var evt = tslib_1.__assign(tslib_1.__assign(tslib_1.__assign(tslib_1.__assign({ timestamp: new Date() }, rest), { context: context, integrations: allIntegrations }), overrides), { messageId: options.messageId || this.settings.createMessageId() });\n this.settings.onFinishedEvent(evt);\n (0, assertions_1.validateEvent)(evt);\n return evt;\n };\n return CoreEventFactory;\n}());\nexports.CoreEventFactory = CoreEventFactory;\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.invokeCallback = exports.sleep = exports.pTimeout = void 0;\nfunction pTimeout(promise, timeout) {\n return new Promise(function (resolve, reject) {\n var timeoutId = setTimeout(function () {\n reject(Error('Promise timed out'));\n }, timeout);\n promise\n .then(function (val) {\n clearTimeout(timeoutId);\n return resolve(val);\n })\n .catch(reject);\n });\n}\nexports.pTimeout = pTimeout;\nfunction sleep(timeoutInMs) {\n return new Promise(function (resolve) { return setTimeout(resolve, timeoutInMs); });\n}\nexports.sleep = sleep;\n/**\n * @param ctx\n * @param callback - the function to invoke\n * @param delay - aka \"timeout\". The amount of time in ms to wait before invoking the callback.\n */\nfunction invokeCallback(ctx, callback, delay) {\n var cb = function () {\n try {\n return Promise.resolve(callback(ctx));\n }\n catch (err) {\n return Promise.reject(err);\n }\n };\n return (sleep(delay)\n // pTimeout ensures that the callback can't cause the context to hang\n .then(function () { return pTimeout(cb(), 1000); })\n .catch(function (err) {\n ctx === null || ctx === void 0 ? void 0 : ctx.log('warn', 'Callback Error', { error: err });\n ctx === null || ctx === void 0 ? void 0 : ctx.stats.increment('callback_error');\n })\n .then(function () { return ctx; }));\n}\nexports.invokeCallback = invokeCallback;\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.createDeferred = void 0;\n/**\n * Return a promise that can be externally resolved\n */\nvar createDeferred = function () {\n var resolve;\n var reject;\n var settled = false;\n var promise = new Promise(function (_resolve, _reject) {\n resolve = function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n settled = true;\n _resolve.apply(void 0, args);\n };\n reject = function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n settled = true;\n _reject.apply(void 0, args);\n };\n });\n return {\n resolve: resolve,\n reject: reject,\n promise: promise,\n isSettled: function () { return settled; },\n };\n};\nexports.createDeferred = createDeferred;\n//# sourceMappingURL=create-deferred.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar tslib_1 = require(\"tslib\");\ntslib_1.__exportStar(require(\"./create-deferred\"), exports);\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Emitter = void 0;\n/**\n * Event Emitter that takes the expected contract as a generic\n * @example\n * ```ts\n * type Contract = {\n * delivery_success: [DeliverySuccessResponse, Metrics],\n * delivery_failure: [DeliveryError]\n * }\n * new Emitter<Contract>()\n * .on('delivery_success', (res, metrics) => ...)\n * .on('delivery_failure', (err) => ...)\n * ```\n */\nvar Emitter = /** @class */ (function () {\n function Emitter(options) {\n var _a;\n this.callbacks = {};\n this.warned = false;\n this.maxListeners = (_a = options === null || options === void 0 ? void 0 : options.maxListeners) !== null && _a !== void 0 ? _a : 10;\n }\n Emitter.prototype.warnIfPossibleMemoryLeak = function (event) {\n if (this.warned) {\n return;\n }\n if (this.maxListeners &&\n this.callbacks[event].length > this.maxListeners) {\n console.warn(\"Event Emitter: Possible memory leak detected; \".concat(String(event), \" has exceeded \").concat(this.maxListeners, \" listeners.\"));\n this.warned = true;\n }\n };\n Emitter.prototype.on = function (event, callback) {\n if (!this.callbacks[event]) {\n this.callbacks[event] = [callback];\n }\n else {\n this.callbacks[event].push(callback);\n this.warnIfPossibleMemoryLeak(event);\n }\n return this;\n };\n Emitter.prototype.once = function (event, callback) {\n var _this = this;\n var on = function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n _this.off(event, on);\n callback.apply(_this, args);\n };\n this.on(event, on);\n return this;\n };\n Emitter.prototype.off = function (event, callback) {\n var _a;\n var fns = (_a = this.callbacks[event]) !== null && _a !== void 0 ? _a : [];\n var without = fns.filter(function (fn) { return fn !== callback; });\n this.callbacks[event] = without;\n return this;\n };\n Emitter.prototype.emit = function (event) {\n var _this = this;\n var _a;\n var args = [];\n for (var _i = 1; _i < arguments.length; _i++) {\n args[_i - 1] = arguments[_i];\n }\n var callbacks = (_a = this.callbacks[event]) !== null && _a !== void 0 ? _a : [];\n callbacks.forEach(function (callback) {\n callback.apply(_this, args);\n });\n return this;\n };\n return Emitter;\n}());\nexports.Emitter = Emitter;\n//# sourceMappingURL=emitter.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar tslib_1 = require(\"tslib\");\ntslib_1.__exportStar(require(\"./emitter\"), exports);\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar tslib_1 = require(\"tslib\");\ntslib_1.__exportStar(require(\"./create-deferred\"), exports);\ntslib_1.__exportStar(require(\"./emitter\"), exports);\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.backoff = void 0;\nfunction backoff(params) {\n var random = Math.random() + 1;\n var _a = params.minTimeout, minTimeout = _a === void 0 ? 500 : _a, _b = params.factor, factor = _b === void 0 ? 2 : _b, attempt = params.attempt, _c = params.maxTimeout, maxTimeout = _c === void 0 ? Infinity : _c;\n return Math.min(random * minTimeout * Math.pow(factor, attempt), maxTimeout);\n}\nexports.backoff = backoff;\n//# sourceMappingURL=backoff.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.PriorityQueue = exports.ON_REMOVE_FROM_FUTURE = void 0;\nvar tslib_1 = require(\"tslib\");\nvar analytics_generic_utils_1 = require(\"@segment/analytics-generic-utils\");\nvar backoff_1 = require(\"./backoff\");\n/**\n * @internal\n */\nexports.ON_REMOVE_FROM_FUTURE = 'onRemoveFromFuture';\nvar PriorityQueue = /** @class */ (function (_super) {\n tslib_1.__extends(PriorityQueue, _super);\n function PriorityQueue(maxAttempts, queue, seen) {\n var _this = _super.call(this) || this;\n _this.future = [];\n _this.maxAttempts = maxAttempts;\n _this.queue = queue;\n _this.seen = seen !== null && seen !== void 0 ? seen : {};\n return _this;\n }\n PriorityQueue.prototype.push = function () {\n var _this = this;\n var items = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n items[_i] = arguments[_i];\n }\n var accepted = items.map(function (operation) {\n var attempts = _this.updateAttempts(operation);\n if (attempts > _this.maxAttempts || _this.includes(operation)) {\n return false;\n }\n _this.queue.push(operation);\n return true;\n });\n this.queue = this.queue.sort(function (a, b) { return _this.getAttempts(a) - _this.getAttempts(b); });\n return accepted;\n };\n PriorityQueue.prototype.pushWithBackoff = function (item, minTimeout) {\n if (minTimeout === void 0) { minTimeout = 0; }\n // One immediate retry unless we have a minimum timeout (e.g. for rate limiting)\n if (minTimeout == 0 && this.getAttempts(item) === 0) {\n return this.push(item)[0];\n }\n var timeout = (0, backoff_1.backoff)({ attempt: this.getAttempts(item) });\n if (minTimeout > 0 && timeout < minTimeout) {\n timeout = minTimeout;\n }\n return this.scheduleItem(item, timeout);\n };\n PriorityQueue.prototype.pushWithDelay = function (item, delay) {\n return this.scheduleItem(item, delay);\n };\n PriorityQueue.prototype.scheduleItem = function (item, timeout) {\n var _this = this;\n var attempt = this.updateAttempts(item);\n if (attempt > this.maxAttempts || this.includes(item)) {\n return false;\n }\n setTimeout(function () {\n _this.queue.push(item);\n _this.future = _this.future.filter(function (f) { return f.id !== item.id; });\n _this.emit(exports.ON_REMOVE_FROM_FUTURE);\n }, timeout);\n this.future.push(item);\n return true;\n };\n PriorityQueue.prototype.getAttempts = function (item) {\n var _a;\n return (_a = this.seen[item.id]) !== null && _a !== void 0 ? _a : 0;\n };\n PriorityQueue.prototype.updateAttempts = function (item) {\n this.seen[item.id] = this.getAttempts(item) + 1;\n return this.getAttempts(item);\n };\n PriorityQueue.prototype.includes = function (item) {\n return (this.queue.includes(item) ||\n this.future.includes(item) ||\n Boolean(this.queue.find(function (i) { return i.id === item.id; })) ||\n Boolean(this.future.find(function (i) { return i.id === item.id; })));\n };\n PriorityQueue.prototype.pop = function () {\n return this.queue.shift();\n };\n Object.defineProperty(PriorityQueue.prototype, \"length\", {\n get: function () {\n return this.queue.length;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(PriorityQueue.prototype, \"todo\", {\n get: function () {\n return this.queue.length + this.future.length;\n },\n enumerable: false,\n configurable: true\n });\n return PriorityQueue;\n}(analytics_generic_utils_1.Emitter));\nexports.PriorityQueue = PriorityQueue;\n//# sourceMappingURL=index.js.map","var IDX=256, HEX=[], BUFFER;\nwhile (IDX--) HEX[IDX] = (IDX + 256).toString(16).substring(1);\n\nfunction v4() {\n\tvar i=0, num, out='';\n\n\tif (!BUFFER || ((IDX + 16) > 256)) {\n\t\tBUFFER = Array(i=256);\n\t\twhile (i--) BUFFER[i] = 256 * Math.random() | 0;\n\t\ti = IDX = 0;\n\t}\n\n\tfor (; i < 16; i++) {\n\t\tnum = BUFFER[IDX + i];\n\t\tif (i==6) out += HEX[num & 15 | 64];\n\t\telse if (i==8) out += HEX[num & 63 | 128];\n\t\telse out += HEX[num];\n\n\t\tif (i & 1 && i > 1 && i < 11) out += '-';\n\t}\n\n\tIDX++;\n\treturn out;\n}\n\nexports.v4 = v4;","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.CoreLogger = void 0;\nvar tslib_1 = require(\"tslib\");\nvar CoreLogger = /** @class */ (function () {\n function CoreLogger() {\n this._logs = [];\n }\n CoreLogger.prototype.log = function (level, message, extras) {\n var time = new Date();\n this._logs.push({\n level: level,\n message: message,\n time: time,\n extras: extras,\n });\n };\n Object.defineProperty(CoreLogger.prototype, \"logs\", {\n get: function () {\n return this._logs;\n },\n enumerable: false,\n configurable: true\n });\n CoreLogger.prototype.flush = function () {\n if (this.logs.length > 1) {\n var formatted = this._logs.reduce(function (logs, log) {\n var _a;\n var _b, _c;\n var line = tslib_1.__assign(tslib_1.__assign({}, log), { json: JSON.stringify(log.extras, null, ' '), extras: log.extras });\n delete line['time'];\n var key = (_c = (_b = log.time) === null || _b === void 0 ? void 0 : _b.toISOString()) !== null && _c !== void 0 ? _c : '';\n if (logs[key]) {\n key = \"\".concat(key, \"-\").concat(Math.random());\n }\n return tslib_1.__assign(tslib_1.__assign({}, logs), (_a = {}, _a[key] = line, _a));\n }, {});\n // ie doesn't like console.table\n if (console.table) {\n console.table(formatted);\n }\n else {\n console.log(formatted);\n }\n }\n else {\n this.logs.forEach(function (logEntry) {\n var level = logEntry.level, message = logEntry.message, extras = logEntry.extras;\n if (level === 'info' || level === 'debug') {\n console.log(message, extras !== null && extras !== void 0 ? extras : '');\n }\n else {\n console[level](message, extras !== null && extras !== void 0 ? extras : '');\n }\n });\n }\n this._logs = [];\n };\n return CoreLogger;\n}());\nexports.CoreLogger = CoreLogger;\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.NullStats = exports.CoreStats = void 0;\nvar tslib_1 = require(\"tslib\");\nvar compactMetricType = function (type) {\n var enums = {\n gauge: 'g',\n counter: 'c',\n };\n return enums[type];\n};\nvar CoreStats = /** @class */ (function () {\n function CoreStats() {\n this.metrics = [];\n }\n CoreStats.prototype.increment = function (metric, by, tags) {\n if (by === void 0) { by = 1; }\n this.metrics.push({\n metric: metric,\n value: by,\n tags: tags !== null && tags !== void 0 ? tags : [],\n type: 'counter',\n timestamp: Date.now(),\n });\n };\n CoreStats.prototype.gauge = function (metric, value, tags) {\n this.metrics.push({\n metric: metric,\n value: value,\n tags: tags !== null && tags !== void 0 ? tags : [],\n type: 'gauge',\n timestamp: Date.now(),\n });\n };\n CoreStats.prototype.flush = function () {\n var formatted = this.metrics.map(function (m) { return (tslib_1.__assign(tslib_1.__assign({}, m), { tags: m.tags.join(',') })); });\n // ie doesn't like console.table\n if (console.table) {\n console.table(formatted);\n }\n else {\n console.log(formatted);\n }\n this.metrics = [];\n };\n /**\n * compact keys for smaller payload\n */\n CoreStats.prototype.serialize = function () {\n return this.metrics.map(function (m) {\n return {\n m: m.metric,\n v: m.value,\n t: m.tags,\n k: compactMetricType(m.type),\n e: m.timestamp,\n };\n });\n };\n return CoreStats;\n}());\nexports.CoreStats = CoreStats;\nvar NullStats = /** @class */ (function (_super) {\n tslib_1.__extends(NullStats, _super);\n function NullStats() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n NullStats.prototype.gauge = function () {\n var _args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n _args[_i] = arguments[_i];\n }\n };\n NullStats.prototype.increment = function () {\n var _args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n _args[_i] = arguments[_i];\n }\n };\n NullStats.prototype.flush = function () {\n var _args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n _args[_i] = arguments[_i];\n }\n };\n NullStats.prototype.serialize = function () {\n var _args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n _args[_i] = arguments[_i];\n }\n return [];\n };\n return NullStats;\n}(CoreStats));\nexports.NullStats = NullStats;\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.CoreContext = exports.ContextCancelation = void 0;\nvar uuid_1 = require(\"@lukeed/uuid\");\nvar dset_1 = require(\"dset\");\nvar logger_1 = require(\"../logger\");\nvar stats_1 = require(\"../stats\");\nvar ContextCancelation = /** @class */ (function () {\n function ContextCancelation(options) {\n var _a, _b, _c;\n this.retry = (_a = options.retry) !== null && _a !== void 0 ? _a : true;\n this.type = (_b = options.type) !== null && _b !== void 0 ? _b : 'plugin Error';\n this.reason = (_c = options.reason) !== null && _c !== void 0 ? _c : '';\n }\n return ContextCancelation;\n}());\nexports.ContextCancelation = ContextCancelation;\nvar CoreContext = /** @class */ (function () {\n function CoreContext(event, id, stats, logger) {\n if (id === void 0) { id = (0, uuid_1.v4)(); }\n if (stats === void 0) { stats = new stats_1.NullStats(); }\n if (logger === void 0) { logger = new logger_1.CoreLogger(); }\n this.attempts = 0;\n this.event = event;\n this._id = id;\n this.logger = logger;\n this.stats = stats;\n }\n CoreContext.system = function () {\n // This should be overridden by the subclass to return an instance of the subclass.\n };\n CoreContext.prototype.isSame = function (other) {\n return other.id === this.id;\n };\n CoreContext.prototype.cancel = function (error) {\n if (error) {\n throw error;\n }\n throw new ContextCancelation({ reason: 'Context Cancel' });\n };\n CoreContext.prototype.log = function (level, message, extras) {\n this.logger.log(level, message, extras);\n };\n Object.defineProperty(CoreContext.prototype, \"id\", {\n get: function () {\n return this._id;\n },\n enumerable: false,\n configurable: true\n });\n CoreContext.prototype.updateEvent = function (path, val) {\n var _a;\n // Don't allow integrations that are set to false to be overwritten with integration settings.\n if (path.split('.')[0] === 'integrations') {\n var integrationName = path.split('.')[1];\n if (((_a = this.event.integrations) === null || _a === void 0 ? void 0 : _a[integrationName]) === false) {\n return this.event;\n }\n }\n (0, dset_1.dset)(this.event, path, val);\n return this.event;\n };\n CoreContext.prototype.failedDelivery = function () {\n return this._failedDelivery;\n };\n CoreContext.prototype.setFailedDelivery = function (options) {\n this._failedDelivery = options;\n };\n CoreContext.prototype.logs = function () {\n return this.logger.logs;\n };\n CoreContext.prototype.flush = function () {\n this.logger.flush();\n this.stats.flush();\n };\n CoreContext.prototype.toJSON = function () {\n return {\n id: this._id,\n event: this.event,\n logs: this.logger.logs,\n metrics: this.stats.metrics,\n };\n };\n return CoreContext;\n}());\nexports.CoreContext = CoreContext;\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.groupBy = void 0;\nvar tslib_1 = require(\"tslib\");\nfunction groupBy(collection, grouper) {\n var results = {};\n collection.forEach(function (item) {\n var _a;\n var key = undefined;\n if (typeof grouper === 'string') {\n var suggestedKey = item[grouper];\n key =\n typeof suggestedKey !== 'string'\n ? JSON.stringify(suggestedKey)\n : suggestedKey;\n }\n else if (grouper instanceof Function) {\n key = grouper(item);\n }\n if (key === undefined) {\n return;\n }\n results[key] = tslib_1.__spreadArray(tslib_1.__spreadArray([], ((_a = results[key]) !== null && _a !== void 0 ? _a : []), true), [item], false);\n });\n return results;\n}\nexports.groupBy = groupBy;\n//# sourceMappingURL=group-by.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.isThenable = void 0;\n/**\n * Check if thenable\n * (instanceof Promise doesn't respect realms)\n */\nvar isThenable = function (value) {\n return typeof value === 'object' &&\n value !== null &&\n 'then' in value &&\n typeof value.then === 'function';\n};\nexports.isThenable = isThenable;\n//# sourceMappingURL=is-thenable.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.createTaskGroup = void 0;\nvar is_thenable_1 = require(\"../utils/is-thenable\");\nvar createTaskGroup = function () {\n var taskCompletionPromise;\n var resolvePromise;\n var count = 0;\n return {\n done: function () { return taskCompletionPromise; },\n run: function (op) {\n var returnValue = op();\n if ((0, is_thenable_1.isThenable)(returnValue)) {\n if (++count === 1) {\n taskCompletionPromise = new Promise(function (res) { return (resolvePromise = res); });\n }\n returnValue.finally(function () { return --count === 0 && resolvePromise(); });\n }\n return returnValue;\n },\n };\n};\nexports.createTaskGroup = createTaskGroup;\n//# sourceMappingURL=task-group.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ensure = exports.attempt = void 0;\nvar tslib_1 = require(\"tslib\");\nvar context_1 = require(\"../context\");\nfunction tryAsync(fn) {\n return tslib_1.__awaiter(this, void 0, void 0, function () {\n var err_1;\n return tslib_1.__generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n _a.trys.push([0, 2, , 3]);\n return [4 /*yield*/, fn()];\n case 1: return [2 /*return*/, _a.sent()];\n case 2:\n err_1 = _a.sent();\n return [2 /*return*/, Promise.reject(err_1)];\n case 3: return [2 /*return*/];\n }\n });\n });\n}\nfunction attempt(ctx, plugin) {\n ctx.log('debug', 'plugin', { plugin: plugin.name });\n var start = new Date().getTime();\n var hook = plugin[ctx.event.type];\n if (hook === undefined) {\n return Promise.resolve(ctx);\n }\n var newCtx = tryAsync(function () { return hook.apply(plugin, [ctx]); })\n .then(function (ctx) {\n var done = new Date().getTime() - start;\n ctx.stats.gauge('plugin_time', done, [\"plugin:\".concat(plugin.name)]);\n return ctx;\n })\n .catch(function (err) {\n if (err instanceof context_1.ContextCancelation &&\n err.type === 'middleware_cancellation') {\n throw err;\n }\n if (err instanceof context_1.ContextCancelation) {\n ctx.log('warn', err.type, {\n plugin: plugin.name,\n error: err,\n });\n return err;\n }\n ctx.log('error', 'plugin Error', {\n plugin: plugin.name,\n error: err,\n });\n ctx.stats.increment('plugin_error', 1, [\"plugin:\".concat(plugin.name)]);\n return err;\n });\n return newCtx;\n}\nexports.attempt = attempt;\nfunction ensure(ctx, plugin) {\n return attempt(ctx, plugin).then(function (newContext) {\n if (newContext instanceof context_1.CoreContext) {\n return newContext;\n }\n ctx.log('debug', 'Context canceled');\n ctx.stats.increment('context_canceled');\n ctx.cancel(newContext);\n });\n}\nexports.ensure = ensure;\n//# sourceMappingURL=delivery.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.CoreEventQueue = void 0;\nvar tslib_1 = require(\"tslib\");\nvar group_by_1 = require(\"../utils/group-by\");\nvar priority_queue_1 = require(\"../priority-queue\");\nvar context_1 = require(\"../context\");\nvar analytics_generic_utils_1 = require(\"@segment/analytics-generic-utils\");\nvar task_group_1 = require(\"../task/task-group\");\nvar delivery_1 = require(\"./delivery\");\nvar CoreEventQueue = /** @class */ (function (_super) {\n tslib_1.__extends(CoreEventQueue, _super);\n function CoreEventQueue(priorityQueue) {\n var _this = _super.call(this) || this;\n /**\n * All event deliveries get suspended until all the tasks in this task group are complete.\n * For example: a middleware that augments the event object should be loaded safely as a\n * critical task, this way, event queue will wait for it to be ready before sending events.\n *\n * This applies to all the events already in the queue, and the upcoming ones\n */\n _this.criticalTasks = (0, task_group_1.createTaskGroup)();\n _this.plugins = [];\n _this.failedInitializations = [];\n _this.flushing = false;\n _this.queue = priorityQueue;\n _this.queue.on(priority_queue_1.ON_REMOVE_FROM_FUTURE, function () {\n _this.scheduleFlush(0);\n });\n return _this;\n }\n CoreEventQueue.prototype.register = function (ctx, plugin, instance) {\n return tslib_1.__awaiter(this, void 0, void 0, function () {\n var handleLoadError, err_1;\n var _this = this;\n return tslib_1.__generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n this.plugins.push(plugin);\n handleLoadError = function (err) {\n _this.failedInitializations.push(plugin.name);\n _this.emit('initialization_failure', plugin);\n console.warn(plugin.name, err);\n ctx.log('warn', 'Failed to load destination', {\n plugin: plugin.name,\n error: err,\n });\n // Filter out the failed plugin by excluding it from the list\n _this.plugins = _this.plugins.filter(function (p) { return p !== plugin; });\n };\n if (!(plugin.type === 'destination' && plugin.name !== 'Segment.io')) return [3 /*break*/, 1];\n plugin.load(ctx, instance).catch(handleLoadError);\n return [3 /*break*/, 4];\n case 1:\n _a.trys.push([1, 3, , 4]);\n return [4 /*yield*/, plugin.load(ctx, instance)];\n case 2:\n _a.sent();\n return [3 /*break*/, 4];\n case 3:\n err_1 = _a.sent();\n handleLoadError(err_1);\n return [3 /*break*/, 4];\n case 4: return [2 /*return*/];\n }\n });\n });\n };\n CoreEventQueue.prototype.deregister = function (ctx, plugin, instance) {\n return tslib_1.__awaiter(this, void 0, void 0, function () {\n var e_1;\n return tslib_1.__generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n _a.trys.push([0, 3, , 4]);\n if (!plugin.unload) return [3 /*break*/, 2];\n return [4 /*yield*/, Promise.resolve(plugin.unload(ctx, instance))];\n case 1:\n _a.sent();\n _a.label = 2;\n case 2:\n this.plugins = this.plugins.filter(function (p) { return p.name !== plugin.name; });\n return [3 /*break*/, 4];\n case 3:\n e_1 = _a.sent();\n ctx.log('warn', 'Failed to unload destination', {\n plugin: plugin.name,\n error: e_1,\n });\n return [3 /*break*/, 4];\n case 4: return [2 /*return*/];\n }\n });\n });\n };\n CoreEventQueue.prototype.dispatch = function (ctx) {\n return tslib_1.__awaiter(this, void 0, void 0, function () {\n var willDeliver;\n return tslib_1.__generator(this, function (_a) {\n ctx.log('debug', 'Dispatching');\n ctx.stats.increment('message_dispatched');\n this.queue.push(ctx);\n willDeliver = this.subscribeToDelivery(ctx);\n this.scheduleFlush(0);\n return [2 /*return*/, willDeliver];\n });\n });\n };\n CoreEventQueue.prototype.subscribeToDelivery = function (ctx) {\n return tslib_1.__awaiter(this, void 0, void 0, function () {\n var _this = this;\n return tslib_1.__generator(this, function (_a) {\n return [2 /*return*/, new Promise(function (resolve) {\n var onDeliver = function (flushed, delivered) {\n if (flushed.isSame(ctx)) {\n _this.off('flush', onDeliver);\n if (delivered) {\n resolve(flushed);\n }\n else {\n resolve(flushed);\n }\n }\n };\n _this.on('flush', onDeliver);\n })];\n });\n });\n };\n CoreEventQueue.prototype.dispatchSingle = function (ctx) {\n return tslib_1.__awaiter(this, void 0, void 0, function () {\n var _this = this;\n return tslib_1.__generator(this, function (_a) {\n ctx.log('debug', 'Dispatching');\n ctx.stats.increment('message_dispatched');\n this.queue.updateAttempts(ctx);\n ctx.attempts = 1;\n return [2 /*return*/, this.deliver(ctx).catch(function (err) {\n var accepted = _this.enqueuRetry(err, ctx);\n if (!accepted) {\n ctx.setFailedDelivery({ reason: err });\n return ctx;\n }\n return _this.subscribeToDelivery(ctx);\n })];\n });\n });\n };\n CoreEventQueue.prototype.isEmpty = function () {\n return this.queue.length === 0;\n };\n CoreEventQueue.prototype.scheduleFlush = function (timeout) {\n var _this = this;\n if (timeout === void 0) { timeout = 500; }\n if (this.flushing) {\n return;\n }\n this.flushing = true;\n setTimeout(function () {\n // eslint-disable-next-line @typescript-eslint/no-floating-promises\n _this.flush().then(function () {\n setTimeout(function () {\n _this.flushing = false;\n if (_this.queue.length) {\n _this.scheduleFlush(0);\n }\n }, 0);\n });\n }, timeout);\n };\n CoreEventQueue.prototype.deliver = function (ctx) {\n var _a;\n return tslib_1.__awaiter(this, void 0, void 0, function () {\n var start, done, failure, error, err_2, error;\n return tslib_1.__generator(this, function (_b) {\n switch (_b.label) {\n case 0: return [4 /*yield*/, this.criticalTasks.done()];\n case 1:\n _b.sent();\n start = Date.now();\n _b.label = 2;\n case 2:\n _b.trys.push([2, 4, , 5]);\n return [4 /*yield*/, this.flushOne(ctx)];\n case 3:\n ctx = _b.sent();\n done = Date.now() - start;\n failure = ctx.failedDelivery();\n if (failure) {\n error = failure.reason instanceof Error\n ? failure.reason\n : new Error(String((_a = failure.reason) !== null && _a !== void 0 ? _a : 'Unknown delivery failure'));\n ctx.log('error', 'Failed to deliver', error);\n this.emit('delivery_failure', ctx, error);\n ctx.stats.increment('delivery_failed');\n return [2 /*return*/, ctx];\n }\n this.emit('delivery_success', ctx);\n ctx.stats.gauge('delivered', done);\n ctx.log('debug', 'Delivered', ctx.event);\n return [2 /*return*/, ctx];\n case 4:\n err_2 = _b.sent();\n error = err_2;\n ctx.log('error', 'Failed to deliver', error);\n this.emit('delivery_failure', ctx, error);\n ctx.stats.increment('delivery_failed');\n throw err_2;\n case 5: return [2 /*return*/];\n }\n });\n });\n };\n CoreEventQueue.prototype.enqueuRetry = function (err, ctx) {\n var retriable = !(err instanceof context_1.ContextCancelation) || err.retry;\n if (!retriable) {\n return false;\n }\n return this.queue.pushWithBackoff(ctx);\n };\n CoreEventQueue.prototype.flush = function () {\n return tslib_1.__awaiter(this, void 0, void 0, function () {\n var ctx, delivered, err_3, accepted;\n return tslib_1.__generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (this.queue.length === 0) {\n return [2 /*return*/, []];\n }\n ctx = this.queue.pop();\n if (!ctx) {\n return [2 /*return*/, []];\n }\n ctx.attempts = this.queue.getAttempts(ctx);\n _a.label = 1;\n case 1:\n _a.trys.push([1, 3, , 4]);\n return [4 /*yield*/, this.deliver(ctx)\n // deliver() now handles failedDelivery state internally without throwing,\n // so we check ctx.failedDelivery() to determine the correct flush status\n ];\n case 2:\n ctx = _a.sent();\n delivered = !ctx.failedDelivery();\n this.emit('flush', ctx, delivered);\n return [3 /*break*/, 4];\n case 3:\n err_3 = _a.sent();\n accepted = this.enqueuRetry(err_3, ctx);\n if (!accepted) {\n ctx.setFailedDelivery({ reason: err_3 });\n this.emit('flush', ctx, false);\n }\n return [2 /*return*/, []];\n case 4: return [2 /*return*/, [ctx]];\n }\n });\n });\n };\n CoreEventQueue.prototype.isReady = function () {\n // return this.plugins.every((p) => p.isLoaded())\n // should we wait for every plugin to load?\n return true;\n };\n CoreEventQueue.prototype.availableExtensions = function (denyList) {\n var available = this.plugins.filter(function (p) {\n var _a, _b, _c;\n // Only filter out destination plugins or the Segment.io plugin\n if (p.type !== 'destination' && p.name !== 'Segment.io') {\n return true;\n }\n var alternativeNameMatch = undefined;\n (_a = p.alternativeNames) === null || _a === void 0 ? void 0 : _a.forEach(function (name) {\n if (denyList[name] !== undefined) {\n alternativeNameMatch = denyList[name];\n }\n });\n // Explicit integration option takes precedence, `All: false` does not apply to Segment.io\n return ((_c = (_b = denyList[p.name]) !== null && _b !== void 0 ? _b : alternativeNameMatch) !== null && _c !== void 0 ? _c : (p.name === 'Segment.io' ? true : denyList.All) !== false);\n });\n var _a = (0, group_by_1.groupBy)(available, 'type'), _b = _a.before, before = _b === void 0 ? [] : _b, _c = _a.enrichment, enrichment = _c === void 0 ? [] : _c, _d = _a.destination, destination = _d === void 0 ? [] : _d, _e = _a.after, after = _e === void 0 ? [] : _e;\n return {\n before: before,\n enrichment: enrichment,\n destinations: destination,\n after: after,\n };\n };\n CoreEventQueue.prototype.flushOne = function (ctx) {\n var _a, _b;\n return tslib_1.__awaiter(this, void 0, void 0, function () {\n var _c, before, enrichment, _i, before_1, beforeWare, temp, _d, enrichment_1, enrichmentWare, temp, _e, destinations, after, afterCalls;\n return tslib_1.__generator(this, function (_f) {\n switch (_f.label) {\n case 0:\n if (!this.isReady()) {\n throw new Error('Not ready');\n }\n if (ctx.attempts > 1) {\n this.emit('delivery_retry', ctx);\n }\n _c = this.availableExtensions((_a = ctx.event.integrations) !== null && _a !== void 0 ? _a : {}), before = _c.before, enrichment = _c.enrichment;\n _i = 0, before_1 = before;\n _f.label = 1;\n case 1:\n if (!(_i < before_1.length)) return [3 /*break*/, 4];\n beforeWare = before_1[_i];\n return [4 /*yield*/, (0, delivery_1.ensure)(ctx, beforeWare)];\n case 2:\n temp = _f.sent();\n if (temp instanceof context_1.CoreContext) {\n ctx = temp;\n }\n this.emit('message_enriched', ctx, beforeWare);\n _f.label = 3;\n case 3:\n _i++;\n return [3 /*break*/, 1];\n case 4:\n _d = 0, enrichment_1 = enrichment;\n _f.label = 5;\n case 5:\n if (!(_d < enrichment_1.length)) return [3 /*break*/, 8];\n enrichmentWare = enrichment_1[_d];\n return [4 /*yield*/, (0, delivery_1.attempt)(ctx, enrichmentWare)];\n case 6:\n temp = _f.sent();\n if (temp instanceof context_1.CoreContext) {\n ctx = temp;\n }\n this.emit('message_enriched', ctx, enrichmentWare);\n _f.label = 7;\n case 7:\n _d++;\n return [3 /*break*/, 5];\n case 8:\n _e = this.availableExtensions((_b = ctx.event.integrations) !== null && _b !== void 0 ? _b : {}), destinations = _e.destinations, after = _e.after;\n return [4 /*yield*/, new Promise(function (resolve, reject) {\n setTimeout(function () {\n var attempts = destinations.map(function (destination) {\n return (0, delivery_1.attempt)(ctx, destination);\n });\n Promise.all(attempts).then(resolve).catch(reject);\n }, 0);\n })];\n case 9:\n _f.sent();\n ctx.stats.increment('message_delivered');\n this.emit('message_delivered', ctx);\n afterCalls = after.map(function (after) { return (0, delivery_1.attempt)(ctx, after); });\n return [4 /*yield*/, Promise.all(afterCalls)];\n case 10:\n _f.sent();\n return [2 /*return*/, ctx];\n }\n });\n });\n };\n return CoreEventQueue;\n}(analytics_generic_utils_1.Emitter));\nexports.CoreEventQueue = CoreEventQueue;\n//# sourceMappingURL=event-queue.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.dispatch = exports.getDelay = void 0;\nvar tslib_1 = require(\"tslib\");\nvar callback_1 = require(\"../callback\");\n/* The amount of time in ms to wait before invoking the callback. */\nvar getDelay = function (startTimeInEpochMS, timeoutInMS) {\n var elapsedTime = Date.now() - startTimeInEpochMS;\n // increasing the timeout increases the delay by almost the same amount -- this is weird legacy behavior.\n return Math.max((timeoutInMS !== null && timeoutInMS !== void 0 ? timeoutInMS : 300) - elapsedTime, 0);\n};\nexports.getDelay = getDelay;\n/**\n * Push an event into the dispatch queue and invoke any callbacks.\n *\n * @param event - Segment event to enqueue.\n * @param queue - Queue to dispatch against.\n * @param emitter - This is typically an instance of \"Analytics\" -- used for metrics / progress information.\n * @param options\n */\nfunction dispatch(ctx, queue, emitter, options) {\n return tslib_1.__awaiter(this, void 0, void 0, function () {\n var startTime, dispatched;\n return tslib_1.__generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n emitter.emit('dispatch_start', ctx);\n startTime = Date.now();\n if (!queue.isEmpty()) return [3 /*break*/, 2];\n return [4 /*yield*/, queue.dispatchSingle(ctx)];\n case 1:\n dispatched = _a.sent();\n return [3 /*break*/, 4];\n case 2: return [4 /*yield*/, queue.dispatch(ctx)];\n case 3:\n dispatched = _a.sent();\n _a.label = 4;\n case 4:\n if (!(options === null || options === void 0 ? void 0 : options.callback)) return [3 /*break*/, 6];\n return [4 /*yield*/, (0, callback_1.invokeCallback)(dispatched, options.callback, (0, exports.getDelay)(startTime, options.timeout))];\n case 5:\n dispatched = _a.sent();\n _a.label = 6;\n case 6:\n if (options === null || options === void 0 ? void 0 : options.debug) {\n dispatched.flush();\n }\n return [2 /*return*/, dispatched];\n }\n });\n });\n}\nexports.dispatch = dispatch;\n//# sourceMappingURL=dispatch.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.bindAll = void 0;\nfunction bindAll(obj) {\n var proto = obj.constructor.prototype;\n for (var _i = 0, _a = Object.getOwnPropertyNames(proto); _i < _a.length; _i++) {\n var key = _a[_i];\n if (key !== 'constructor') {\n var desc = Object.getOwnPropertyDescriptor(obj.constructor.prototype, key);\n if (!!desc && typeof desc.value === 'function') {\n obj[key] = obj[key].bind(obj);\n }\n }\n }\n return obj;\n}\nexports.bindAll = bindAll;\n//# sourceMappingURL=bind-all.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.CoreLogger = exports.backoff = void 0;\nvar tslib_1 = require(\"tslib\");\ntslib_1.__exportStar(require(\"./emitter/interface\"), exports);\ntslib_1.__exportStar(require(\"./plugins\"), exports);\ntslib_1.__exportStar(require(\"./events/interfaces\"), exports);\ntslib_1.__exportStar(require(\"./events\"), exports);\ntslib_1.__exportStar(require(\"./callback\"), exports);\ntslib_1.__exportStar(require(\"./priority-queue\"), exports);\nvar backoff_1 = require(\"./priority-queue/backoff\");\nObject.defineProperty(exports, \"backoff\", { enumerable: true, get: function () { return backoff_1.backoff; } });\ntslib_1.__exportStar(require(\"./context\"), exports);\ntslib_1.__exportStar(require(\"./queue/event-queue\"), exports);\ntslib_1.__exportStar(require(\"./analytics\"), exports);\ntslib_1.__exportStar(require(\"./analytics/dispatch\"), exports);\ntslib_1.__exportStar(require(\"./validation/helpers\"), exports);\ntslib_1.__exportStar(require(\"./validation/errors\"), exports);\ntslib_1.__exportStar(require(\"./validation/assertions\"), exports);\ntslib_1.__exportStar(require(\"./utils/bind-all\"), exports);\ntslib_1.__exportStar(require(\"./stats\"), exports);\nvar logger_1 = require(\"./logger\");\nObject.defineProperty(exports, \"CoreLogger\", { enumerable: true, get: function () { return logger_1.CoreLogger; } });\ntslib_1.__exportStar(require(\"./queue/delivery\"), exports);\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.validateSettings = void 0;\nconst analytics_core_1 = require(\"@segment/analytics-core\");\nconst validateSettings = (settings) => {\n if (!settings.writeKey) {\n throw new analytics_core_1.ValidationError('writeKey', 'writeKey is missing.');\n }\n};\nexports.validateSettings = validateSettings;\n//# sourceMappingURL=settings.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.version = void 0;\n// This file is generated.\nexports.version = '3.1.0';\n//# sourceMappingURL=version.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.tryCreateFormattedUrl = void 0;\nconst stripTrailingSlash = (str) => str.replace(/\\/$/, '');\n/**\n *\n * @param host e.g. \"http://foo.com\"\n * @param path e.g. \"/bar\"\n * @returns \"e.g.\" \"http://foo.com/bar\"\n */\nconst tryCreateFormattedUrl = (host, path) => {\n return stripTrailingSlash(new URL(path || '', host).href);\n};\nexports.tryCreateFormattedUrl = tryCreateFormattedUrl;\n//# sourceMappingURL=create-url.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.uuid = void 0;\nvar uuid_1 = require(\"@lukeed/uuid\");\nObject.defineProperty(exports, \"uuid\", { enumerable: true, get: function () { return uuid_1.v4; } });\n//# sourceMappingURL=uuid.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ContextBatch = void 0;\nconst uuid_1 = require(\"../../lib/uuid\");\nconst MAX_EVENT_SIZE_IN_KB = 32;\nconst MAX_BATCH_SIZE_IN_KB = 480; // (500 KB is the limit, leaving some padding)\nclass ContextBatch {\n id = (0, uuid_1.uuid)();\n items = [];\n sizeInBytes = 0;\n maxEventCount;\n constructor(maxEventCount) {\n this.maxEventCount = Math.max(1, maxEventCount);\n }\n tryAdd(item) {\n if (this.length === this.maxEventCount)\n return {\n success: false,\n message: `Event limit of ${this.maxEventCount} has been exceeded.`,\n };\n const eventSize = this.calculateSize(item.context);\n if (eventSize > MAX_EVENT_SIZE_IN_KB * 1024) {\n return {\n success: false,\n message: `Event exceeds maximum event size of ${MAX_EVENT_SIZE_IN_KB} KB`,\n };\n }\n if (this.sizeInBytes + eventSize > MAX_BATCH_SIZE_IN_KB * 1024) {\n return {\n success: false,\n message: `Event has caused batch size to exceed ${MAX_BATCH_SIZE_IN_KB} KB`,\n };\n }\n this.items.push(item);\n this.sizeInBytes += eventSize;\n return { success: true };\n }\n get length() {\n return this.items.length;\n }\n calculateSize(ctx) {\n return encodeURI(JSON.stringify(ctx.event)).split(/%..|i/).length;\n }\n getEvents() {\n const events = this.items.map(({ context }) => context.event);\n return events;\n }\n getContexts() {\n return this.items.map((item) => item.context);\n }\n resolveEvents() {\n this.items.forEach(({ resolver, context }) => resolver(context));\n }\n}\nexports.ContextBatch = ContextBatch;\n//# sourceMappingURL=context-batch.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst node_crypto_1 = require(\"node:crypto\");\nconst digest = (algorithm, data) => (0, node_crypto_1.createHash)(algorithm).update(data).digest();\nexports.default = digest;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.decoder = exports.encoder = void 0;\nexports.concat = concat;\nexports.p2s = p2s;\nexports.uint64be = uint64be;\nexports.uint32be = uint32be;\nexports.lengthAndInput = lengthAndInput;\nexports.concatKdf = concatKdf;\nconst digest_js_1 = require(\"../runtime/digest.js\");\nexports.encoder = new TextEncoder();\nexports.decoder = new TextDecoder();\nconst MAX_INT32 = 2 ** 32;\nfunction concat(...buffers) {\n const size = buffers.reduce((acc, { length }) => acc + length, 0);\n const buf = new Uint8Array(size);\n let i = 0;\n for (const buffer of buffers) {\n buf.set(buffer, i);\n i += buffer.length;\n }\n return buf;\n}\nfunction p2s(alg, p2sInput) {\n return concat(exports.encoder.encode(alg), new Uint8Array([0]), p2sInput);\n}\nfunction writeUInt32BE(buf, value, offset) {\n if (value < 0 || value >= MAX_INT32) {\n throw new RangeError(`value must be >= 0 and <= ${MAX_INT32 - 1}. Received ${value}`);\n }\n buf.set([value >>> 24, value >>> 16, value >>> 8, value & 0xff], offset);\n}\nfunction uint64be(value) {\n const high = Math.floor(value / MAX_INT32);\n const low = value % MAX_INT32;\n const buf = new Uint8Array(8);\n writeUInt32BE(buf, high, 0);\n writeUInt32BE(buf, low, 4);\n return buf;\n}\nfunction uint32be(value) {\n const buf = new Uint8Array(4);\n writeUInt32BE(buf, value);\n return buf;\n}\nfunction lengthAndInput(input) {\n return concat(uint32be(input.length), input);\n}\nasync function concatKdf(secret, bits, value) {\n const iterations = Math.ceil((bits >> 3) / 32);\n const res = new Uint8Array(iterations * 32);\n for (let iter = 0; iter < iterations; iter++) {\n const buf = new Uint8Array(4 + secret.length + value.length);\n buf.set(uint32be(iter + 1));\n buf.set(secret, 4);\n buf.set(value, 4 + secret.length);\n res.set(await (0, digest_js_1.default)('sha256', buf), iter * 32);\n }\n return res.slice(0, bits >> 3);\n}\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.decode = exports.encode = exports.encodeBase64 = exports.decodeBase64 = void 0;\nconst node_buffer_1 = require(\"node:buffer\");\nconst buffer_utils_js_1 = require(\"../lib/buffer_utils.js\");\nfunction normalize(input) {\n let encoded = input;\n if (encoded instanceof Uint8Array) {\n encoded = buffer_utils_js_1.decoder.decode(encoded);\n }\n return encoded;\n}\nconst encode = (input) => node_buffer_1.Buffer.from(input).toString('base64url');\nexports.encode = encode;\nconst decodeBase64 = (input) => new Uint8Array(node_buffer_1.Buffer.from(input, 'base64'));\nexports.decodeBase64 = decodeBase64;\nconst encodeBase64 = (input) => node_buffer_1.Buffer.from(input).toString('base64');\nexports.encodeBase64 = encodeBase64;\nconst decode = (input) => new Uint8Array(node_buffer_1.Buffer.from(normalize(input), 'base64url'));\nexports.decode = decode;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.JWSSignatureVerificationFailed = exports.JWKSTimeout = exports.JWKSMultipleMatchingKeys = exports.JWKSNoMatchingKey = exports.JWKSInvalid = exports.JWKInvalid = exports.JWTInvalid = exports.JWSInvalid = exports.JWEInvalid = exports.JWEDecryptionFailed = exports.JOSENotSupported = exports.JOSEAlgNotAllowed = exports.JWTExpired = exports.JWTClaimValidationFailed = exports.JOSEError = void 0;\nclass JOSEError extends Error {\n static code = 'ERR_JOSE_GENERIC';\n code = 'ERR_JOSE_GENERIC';\n constructor(message, options) {\n super(message, options);\n this.name = this.constructor.name;\n Error.captureStackTrace?.(this, this.constructor);\n }\n}\nexports.JOSEError = JOSEError;\nclass JWTClaimValidationFailed extends JOSEError {\n static code = 'ERR_JWT_CLAIM_VALIDATION_FAILED';\n code = 'ERR_JWT_CLAIM_VALIDATION_FAILED';\n claim;\n reason;\n payload;\n constructor(message, payload, claim = 'unspecified', reason = 'unspecified') {\n super(message, { cause: { claim, reason, payload } });\n this.claim = claim;\n this.reason = reason;\n this.payload = payload;\n }\n}\nexports.JWTClaimValidationFailed = JWTClaimValidationFailed;\nclass JWTExpired extends JOSEError {\n static code = 'ERR_JWT_EXPIRED';\n code = 'ERR_JWT_EXPIRED';\n claim;\n reason;\n payload;\n constructor(message, payload, claim = 'unspecified', reason = 'unspecified') {\n super(message, { cause: { claim, reason, payload } });\n this.claim = claim;\n this.reason = reason;\n this.payload = payload;\n }\n}\nexports.JWTExpired = JWTExpired;\nclass JOSEAlgNotAllowed extends JOSEError {\n static code = 'ERR_JOSE_ALG_NOT_ALLOWED';\n code = 'ERR_JOSE_ALG_NOT_ALLOWED';\n}\nexports.JOSEAlgNotAllowed = JOSEAlgNotAllowed;\nclass JOSENotSupported extends JOSEError {\n static code = 'ERR_JOSE_NOT_SUPPORTED';\n code = 'ERR_JOSE_NOT_SUPPORTED';\n}\nexports.JOSENotSupported = JOSENotSupported;\nclass JWEDecryptionFailed extends JOSEError {\n static code = 'ERR_JWE_DECRYPTION_FAILED';\n code = 'ERR_JWE_DECRYPTION_FAILED';\n constructor(message = 'decryption operation failed', options) {\n super(message, options);\n }\n}\nexports.JWEDecryptionFailed = JWEDecryptionFailed;\nclass JWEInvalid extends JOSEError {\n static code = 'ERR_JWE_INVALID';\n code = 'ERR_JWE_INVALID';\n}\nexports.JWEInvalid = JWEInvalid;\nclass JWSInvalid extends JOSEError {\n static code = 'ERR_JWS_INVALID';\n code = 'ERR_JWS_INVALID';\n}\nexports.JWSInvalid = JWSInvalid;\nclass JWTInvalid extends JOSEError {\n static code = 'ERR_JWT_INVALID';\n code = 'ERR_JWT_INVALID';\n}\nexports.JWTInvalid = JWTInvalid;\nclass JWKInvalid extends JOSEError {\n static code = 'ERR_JWK_INVALID';\n code = 'ERR_JWK_INVALID';\n}\nexports.JWKInvalid = JWKInvalid;\nclass JWKSInvalid extends JOSEError {\n static code = 'ERR_JWKS_INVALID';\n code = 'ERR_JWKS_INVALID';\n}\nexports.JWKSInvalid = JWKSInvalid;\nclass JWKSNoMatchingKey extends JOSEError {\n static code = 'ERR_JWKS_NO_MATCHING_KEY';\n code = 'ERR_JWKS_NO_MATCHING_KEY';\n constructor(message = 'no applicable key found in the JSON Web Key Set', options) {\n super(message, options);\n }\n}\nexports.JWKSNoMatchingKey = JWKSNoMatchingKey;\nclass JWKSMultipleMatchingKeys extends JOSEError {\n [Symbol.asyncIterator];\n static code = 'ERR_JWKS_MULTIPLE_MATCHING_KEYS';\n code = 'ERR_JWKS_MULTIPLE_MATCHING_KEYS';\n constructor(message = 'multiple matching keys found in the JSON Web Key Set', options) {\n super(message, options);\n }\n}\nexports.JWKSMultipleMatchingKeys = JWKSMultipleMatchingKeys;\nclass JWKSTimeout extends JOSEError {\n static code = 'ERR_JWKS_TIMEOUT';\n code = 'ERR_JWKS_TIMEOUT';\n constructor(message = 'request timed out', options) {\n super(message, options);\n }\n}\nexports.JWKSTimeout = JWKSTimeout;\nclass JWSSignatureVerificationFailed extends JOSEError {\n static code = 'ERR_JWS_SIGNATURE_VERIFICATION_FAILED';\n code = 'ERR_JWS_SIGNATURE_VERIFICATION_FAILED';\n constructor(message = 'signature verification failed', options) {\n super(message, options);\n }\n}\nexports.JWSSignatureVerificationFailed = JWSSignatureVerificationFailed;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.default = void 0;\nvar node_crypto_1 = require(\"node:crypto\");\nObject.defineProperty(exports, \"default\", { enumerable: true, get: function () { return node_crypto_1.randomFillSync; } });\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.bitLength = bitLength;\nconst errors_js_1 = require(\"../util/errors.js\");\nconst random_js_1 = require(\"../runtime/random.js\");\nfunction bitLength(alg) {\n switch (alg) {\n case 'A128GCM':\n case 'A128GCMKW':\n case 'A192GCM':\n case 'A192GCMKW':\n case 'A256GCM':\n case 'A256GCMKW':\n return 96;\n case 'A128CBC-HS256':\n case 'A192CBC-HS384':\n case 'A256CBC-HS512':\n return 128;\n default:\n throw new errors_js_1.JOSENotSupported(`Unsupported JWE Algorithm: ${alg}`);\n }\n}\nexports.default = (alg) => (0, random_js_1.default)(new Uint8Array(bitLength(alg) >> 3));\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst errors_js_1 = require(\"../util/errors.js\");\nconst iv_js_1 = require(\"./iv.js\");\nconst checkIvLength = (enc, iv) => {\n if (iv.length << 3 !== (0, iv_js_1.bitLength)(enc)) {\n throw new errors_js_1.JWEInvalid('Invalid Initialization Vector length');\n }\n};\nexports.default = checkIvLength;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst util = require(\"node:util\");\nexports.default = (obj) => util.types.isKeyObject(obj);\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst errors_js_1 = require(\"../util/errors.js\");\nconst is_key_object_js_1 = require(\"./is_key_object.js\");\nconst checkCekLength = (enc, cek) => {\n let expected;\n switch (enc) {\n case 'A128CBC-HS256':\n case 'A192CBC-HS384':\n case 'A256CBC-HS512':\n expected = parseInt(enc.slice(-3), 10);\n break;\n case 'A128GCM':\n case 'A192GCM':\n case 'A256GCM':\n expected = parseInt(enc.slice(1, 4), 10);\n break;\n default:\n throw new errors_js_1.JOSENotSupported(`Content Encryption Algorithm ${enc} is not supported either by JOSE or your javascript runtime`);\n }\n if (cek instanceof Uint8Array) {\n const actual = cek.byteLength << 3;\n if (actual !== expected) {\n throw new errors_js_1.JWEInvalid(`Invalid Content Encryption Key length. Expected ${expected} bits, got ${actual} bits`);\n }\n return;\n }\n if ((0, is_key_object_js_1.default)(cek) && cek.type === 'secret') {\n const actual = cek.symmetricKeySize << 3;\n if (actual !== expected) {\n throw new errors_js_1.JWEInvalid(`Invalid Content Encryption Key length. Expected ${expected} bits, got ${actual} bits`);\n }\n return;\n }\n throw new TypeError('Invalid Content Encryption Key type');\n};\nexports.default = checkCekLength;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst node_crypto_1 = require(\"node:crypto\");\nconst timingSafeEqual = node_crypto_1.timingSafeEqual;\nexports.default = timingSafeEqual;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.default = cbcTag;\nconst node_crypto_1 = require(\"node:crypto\");\nconst buffer_utils_js_1 = require(\"../lib/buffer_utils.js\");\nfunction cbcTag(aad, iv, ciphertext, macSize, macKey, keySize) {\n const macData = (0, buffer_utils_js_1.concat)(aad, iv, ciphertext, (0, buffer_utils_js_1.uint64be)(aad.length << 3));\n const hmac = (0, node_crypto_1.createHmac)(`sha${macSize}`, macKey);\n hmac.update(macData);\n return hmac.digest().slice(0, keySize >> 3);\n}\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.isCryptoKey = void 0;\nconst crypto = require(\"node:crypto\");\nconst util = require(\"node:util\");\nconst webcrypto = crypto.webcrypto;\nexports.default = webcrypto;\nconst isCryptoKey = (key) => util.types.isCryptoKey(key);\nexports.isCryptoKey = isCryptoKey;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.checkSigCryptoKey = checkSigCryptoKey;\nexports.checkEncCryptoKey = checkEncCryptoKey;\nfunction unusable(name, prop = 'algorithm.name') {\n return new TypeError(`CryptoKey does not support this operation, its ${prop} must be ${name}`);\n}\nfunction isAlgorithm(algorithm, name) {\n return algorithm.name === name;\n}\nfunction getHashLength(hash) {\n return parseInt(hash.name.slice(4), 10);\n}\nfunction getNamedCurve(alg) {\n switch (alg) {\n case 'ES256':\n return 'P-256';\n case 'ES384':\n return 'P-384';\n case 'ES512':\n return 'P-521';\n default:\n throw new Error('unreachable');\n }\n}\nfunction checkUsage(key, usages) {\n if (usages.length && !usages.some((expected) => key.usages.includes(expected))) {\n let msg = 'CryptoKey does not support this operation, its usages must include ';\n if (usages.length > 2) {\n const last = usages.pop();\n msg += `one of ${usages.join(', ')}, or ${last}.`;\n }\n else if (usages.length === 2) {\n msg += `one of ${usages[0]} or ${usages[1]}.`;\n }\n else {\n msg += `${usages[0]}.`;\n }\n throw new TypeError(msg);\n }\n}\nfunction checkSigCryptoKey(key, alg, ...usages) {\n switch (alg) {\n case 'HS256':\n case 'HS384':\n case 'HS512': {\n if (!isAlgorithm(key.algorithm, 'HMAC'))\n throw unusable('HMAC');\n const expected = parseInt(alg.slice(2), 10);\n const actual = getHashLength(key.algorithm.hash);\n if (actual !== expected)\n throw unusable(`SHA-${expected}`, 'algorithm.hash');\n break;\n }\n case 'RS256':\n case 'RS384':\n case 'RS512': {\n if (!isAlgorithm(key.algorithm, 'RSASSA-PKCS1-v1_5'))\n throw unusable('RSASSA-PKCS1-v1_5');\n const expected = parseInt(alg.slice(2), 10);\n const actual = getHashLength(key.algorithm.hash);\n if (actual !== expected)\n throw unusable(`SHA-${expected}`, 'algorithm.hash');\n break;\n }\n case 'PS256':\n case 'PS384':\n case 'PS512': {\n if (!isAlgorithm(key.algorithm, 'RSA-PSS'))\n throw unusable('RSA-PSS');\n const expected = parseInt(alg.slice(2), 10);\n const actual = getHashLength(key.algorithm.hash);\n if (actual !== expected)\n throw unusable(`SHA-${expected}`, 'algorithm.hash');\n break;\n }\n case 'EdDSA': {\n if (key.algorithm.name !== 'Ed25519' && key.algorithm.name !== 'Ed448') {\n throw unusable('Ed25519 or Ed448');\n }\n break;\n }\n case 'Ed25519': {\n if (!isAlgorithm(key.algorithm, 'Ed25519'))\n throw unusable('Ed25519');\n break;\n }\n case 'ES256':\n case 'ES384':\n case 'ES512': {\n if (!isAlgorithm(key.algorithm, 'ECDSA'))\n throw unusable('ECDSA');\n const expected = getNamedCurve(alg);\n const actual = key.algorithm.namedCurve;\n if (actual !== expected)\n throw unusable(expected, 'algorithm.namedCurve');\n break;\n }\n default:\n throw new TypeError('CryptoKey does not support this operation');\n }\n checkUsage(key, usages);\n}\nfunction checkEncCryptoKey(key, alg, ...usages) {\n switch (alg) {\n case 'A128GCM':\n case 'A192GCM':\n case 'A256GCM': {\n if (!isAlgorithm(key.algorithm, 'AES-GCM'))\n throw unusable('AES-GCM');\n const expected = parseInt(alg.slice(1, 4), 10);\n const actual = key.algorithm.length;\n if (actual !== expected)\n throw unusable(expected, 'algorithm.length');\n break;\n }\n case 'A128KW':\n case 'A192KW':\n case 'A256KW': {\n if (!isAlgorithm(key.algorithm, 'AES-KW'))\n throw unusable('AES-KW');\n const expected = parseInt(alg.slice(1, 4), 10);\n const actual = key.algorithm.length;\n if (actual !== expected)\n throw unusable(expected, 'algorithm.length');\n break;\n }\n case 'ECDH': {\n switch (key.algorithm.name) {\n case 'ECDH':\n case 'X25519':\n case 'X448':\n break;\n default:\n throw unusable('ECDH, X25519, or X448');\n }\n break;\n }\n case 'PBES2-HS256+A128KW':\n case 'PBES2-HS384+A192KW':\n case 'PBES2-HS512+A256KW':\n if (!isAlgorithm(key.algorithm, 'PBKDF2'))\n throw unusable('PBKDF2');\n break;\n case 'RSA-OAEP':\n case 'RSA-OAEP-256':\n case 'RSA-OAEP-384':\n case 'RSA-OAEP-512': {\n if (!isAlgorithm(key.algorithm, 'RSA-OAEP'))\n throw unusable('RSA-OAEP');\n const expected = parseInt(alg.slice(9), 10) || 1;\n const actual = getHashLength(key.algorithm.hash);\n if (actual !== expected)\n throw unusable(`SHA-${expected}`, 'algorithm.hash');\n break;\n }\n default:\n throw new TypeError('CryptoKey does not support this operation');\n }\n checkUsage(key, usages);\n}\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.withAlg = withAlg;\nfunction message(msg, actual, ...types) {\n types = types.filter(Boolean);\n if (types.length > 2) {\n const last = types.pop();\n msg += `one of type ${types.join(', ')}, or ${last}.`;\n }\n else if (types.length === 2) {\n msg += `one of type ${types[0]} or ${types[1]}.`;\n }\n else {\n msg += `of type ${types[0]}.`;\n }\n if (actual == null) {\n msg += ` Received ${actual}`;\n }\n else if (typeof actual === 'function' && actual.name) {\n msg += ` Received function ${actual.name}`;\n }\n else if (typeof actual === 'object' && actual != null) {\n if (actual.constructor?.name) {\n msg += ` Received an instance of ${actual.constructor.name}`;\n }\n }\n return msg;\n}\nexports.default = (actual, ...types) => {\n return message('Key must be ', actual, ...types);\n};\nfunction withAlg(alg, actual, ...types) {\n return message(`Key for the ${alg} algorithm must be `, actual, ...types);\n}\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst node_crypto_1 = require(\"node:crypto\");\nlet ciphers;\nexports.default = (algorithm) => {\n ciphers ||= new Set((0, node_crypto_1.getCiphers)());\n return ciphers.has(algorithm);\n};\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.types = void 0;\nconst webcrypto_js_1 = require(\"./webcrypto.js\");\nconst is_key_object_js_1 = require(\"./is_key_object.js\");\nexports.default = (key) => (0, is_key_object_js_1.default)(key) || (0, webcrypto_js_1.isCryptoKey)(key);\nconst types = ['KeyObject'];\nexports.types = types;\nif (globalThis.CryptoKey || webcrypto_js_1.default?.CryptoKey) {\n types.push('CryptoKey');\n}\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst node_crypto_1 = require(\"node:crypto\");\nconst check_iv_length_js_1 = require(\"../lib/check_iv_length.js\");\nconst check_cek_length_js_1 = require(\"./check_cek_length.js\");\nconst buffer_utils_js_1 = require(\"../lib/buffer_utils.js\");\nconst errors_js_1 = require(\"../util/errors.js\");\nconst timing_safe_equal_js_1 = require(\"./timing_safe_equal.js\");\nconst cbc_tag_js_1 = require(\"./cbc_tag.js\");\nconst webcrypto_js_1 = require(\"./webcrypto.js\");\nconst crypto_key_js_1 = require(\"../lib/crypto_key.js\");\nconst is_key_object_js_1 = require(\"./is_key_object.js\");\nconst invalid_key_input_js_1 = require(\"../lib/invalid_key_input.js\");\nconst ciphers_js_1 = require(\"./ciphers.js\");\nconst is_key_like_js_1 = require(\"./is_key_like.js\");\nfunction cbcDecrypt(enc, cek, ciphertext, iv, tag, aad) {\n const keySize = parseInt(enc.slice(1, 4), 10);\n if ((0, is_key_object_js_1.default)(cek)) {\n cek = cek.export();\n }\n const encKey = cek.subarray(keySize >> 3);\n const macKey = cek.subarray(0, keySize >> 3);\n const macSize = parseInt(enc.slice(-3), 10);\n const algorithm = `aes-${keySize}-cbc`;\n if (!(0, ciphers_js_1.default)(algorithm)) {\n throw new errors_js_1.JOSENotSupported(`alg ${enc} is not supported by your javascript runtime`);\n }\n const expectedTag = (0, cbc_tag_js_1.default)(aad, iv, ciphertext, macSize, macKey, keySize);\n let macCheckPassed;\n try {\n macCheckPassed = (0, timing_safe_equal_js_1.default)(tag, expectedTag);\n }\n catch {\n }\n if (!macCheckPassed) {\n throw new errors_js_1.JWEDecryptionFailed();\n }\n let plaintext;\n try {\n const decipher = (0, node_crypto_1.createDecipheriv)(algorithm, encKey, iv);\n plaintext = (0, buffer_utils_js_1.concat)(decipher.update(ciphertext), decipher.final());\n }\n catch {\n }\n if (!plaintext) {\n throw new errors_js_1.JWEDecryptionFailed();\n }\n return plaintext;\n}\nfunction gcmDecrypt(enc, cek, ciphertext, iv, tag, aad) {\n const keySize = parseInt(enc.slice(1, 4), 10);\n const algorithm = `aes-${keySize}-gcm`;\n if (!(0, ciphers_js_1.default)(algorithm)) {\n throw new errors_js_1.JOSENotSupported(`alg ${enc} is not supported by your javascript runtime`);\n }\n try {\n const decipher = (0, node_crypto_1.createDecipheriv)(algorithm, cek, iv, { authTagLength: 16 });\n decipher.setAuthTag(tag);\n if (aad.byteLength) {\n decipher.setAAD(aad, { plaintextLength: ciphertext.length });\n }\n const plaintext = decipher.update(ciphertext);\n decipher.final();\n return plaintext;\n }\n catch {\n throw new errors_js_1.JWEDecryptionFailed();\n }\n}\nconst decrypt = (enc, cek, ciphertext, iv, tag, aad) => {\n let key;\n if ((0, webcrypto_js_1.isCryptoKey)(cek)) {\n (0, crypto_key_js_1.checkEncCryptoKey)(cek, enc, 'decrypt');\n key = node_crypto_1.KeyObject.from(cek);\n }\n else if (cek instanceof Uint8Array || (0, is_key_object_js_1.default)(cek)) {\n key = cek;\n }\n else {\n throw new TypeError((0, invalid_key_input_js_1.default)(cek, ...is_key_like_js_1.types, 'Uint8Array'));\n }\n if (!iv) {\n throw new errors_js_1.JWEInvalid('JWE Initialization Vector missing');\n }\n if (!tag) {\n throw new errors_js_1.JWEInvalid('JWE Authentication Tag missing');\n }\n (0, check_cek_length_js_1.default)(enc, key);\n (0, check_iv_length_js_1.default)(enc, iv);\n switch (enc) {\n case 'A128CBC-HS256':\n case 'A192CBC-HS384':\n case 'A256CBC-HS512':\n return cbcDecrypt(enc, key, ciphertext, iv, tag, aad);\n case 'A128GCM':\n case 'A192GCM':\n case 'A256GCM':\n return gcmDecrypt(enc, key, ciphertext, iv, tag, aad);\n default:\n throw new errors_js_1.JOSENotSupported('Unsupported JWE Content Encryption Algorithm');\n }\n};\nexports.default = decrypt;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst isDisjoint = (...headers) => {\n const sources = headers.filter(Boolean);\n if (sources.length === 0 || sources.length === 1) {\n return true;\n }\n let acc;\n for (const header of sources) {\n const parameters = Object.keys(header);\n if (!acc || acc.size === 0) {\n acc = new Set(parameters);\n continue;\n }\n for (const parameter of parameters) {\n if (acc.has(parameter)) {\n return false;\n }\n acc.add(parameter);\n }\n }\n return true;\n};\nexports.default = isDisjoint;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.default = isObject;\nfunction isObjectLike(value) {\n return typeof value === 'object' && value !== null;\n}\nfunction isObject(input) {\n if (!isObjectLike(input) || Object.prototype.toString.call(input) !== '[object Object]') {\n return false;\n }\n if (Object.getPrototypeOf(input) === null) {\n return true;\n }\n let proto = input;\n while (Object.getPrototypeOf(proto) !== null) {\n proto = Object.getPrototypeOf(proto);\n }\n return Object.getPrototypeOf(input) === proto;\n}\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.unwrap = exports.wrap = void 0;\nconst node_buffer_1 = require(\"node:buffer\");\nconst node_crypto_1 = require(\"node:crypto\");\nconst errors_js_1 = require(\"../util/errors.js\");\nconst buffer_utils_js_1 = require(\"../lib/buffer_utils.js\");\nconst webcrypto_js_1 = require(\"./webcrypto.js\");\nconst crypto_key_js_1 = require(\"../lib/crypto_key.js\");\nconst is_key_object_js_1 = require(\"./is_key_object.js\");\nconst invalid_key_input_js_1 = require(\"../lib/invalid_key_input.js\");\nconst ciphers_js_1 = require(\"./ciphers.js\");\nconst is_key_like_js_1 = require(\"./is_key_like.js\");\nfunction checkKeySize(key, alg) {\n if (key.symmetricKeySize << 3 !== parseInt(alg.slice(1, 4), 10)) {\n throw new TypeError(`Invalid key size for alg: ${alg}`);\n }\n}\nfunction ensureKeyObject(key, alg, usage) {\n if ((0, is_key_object_js_1.default)(key)) {\n return key;\n }\n if (key instanceof Uint8Array) {\n return (0, node_crypto_1.createSecretKey)(key);\n }\n if ((0, webcrypto_js_1.isCryptoKey)(key)) {\n (0, crypto_key_js_1.checkEncCryptoKey)(key, alg, usage);\n return node_crypto_1.KeyObject.from(key);\n }\n throw new TypeError((0, invalid_key_input_js_1.default)(key, ...is_key_like_js_1.types, 'Uint8Array'));\n}\nconst wrap = (alg, key, cek) => {\n const size = parseInt(alg.slice(1, 4), 10);\n const algorithm = `aes${size}-wrap`;\n if (!(0, ciphers_js_1.default)(algorithm)) {\n throw new errors_js_1.JOSENotSupported(`alg ${alg} is not supported either by JOSE or your javascript runtime`);\n }\n const keyObject = ensureKeyObject(key, alg, 'wrapKey');\n checkKeySize(keyObject, alg);\n const cipher = (0, node_crypto_1.createCipheriv)(algorithm, keyObject, node_buffer_1.Buffer.alloc(8, 0xa6));\n return (0, buffer_utils_js_1.concat)(cipher.update(cek), cipher.final());\n};\nexports.wrap = wrap;\nconst unwrap = (alg, key, encryptedKey) => {\n const size = parseInt(alg.slice(1, 4), 10);\n const algorithm = `aes${size}-wrap`;\n if (!(0, ciphers_js_1.default)(algorithm)) {\n throw new errors_js_1.JOSENotSupported(`alg ${alg} is not supported either by JOSE or your javascript runtime`);\n }\n const keyObject = ensureKeyObject(key, alg, 'unwrapKey');\n checkKeySize(keyObject, alg);\n const cipher = (0, node_crypto_1.createDecipheriv)(algorithm, keyObject, node_buffer_1.Buffer.alloc(8, 0xa6));\n return (0, buffer_utils_js_1.concat)(cipher.update(encryptedKey), cipher.final());\n};\nexports.unwrap = unwrap;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.isJWK = isJWK;\nexports.isPrivateJWK = isPrivateJWK;\nexports.isPublicJWK = isPublicJWK;\nexports.isSecretJWK = isSecretJWK;\nconst is_object_js_1 = require(\"./is_object.js\");\nfunction isJWK(key) {\n return (0, is_object_js_1.default)(key) && typeof key.kty === 'string';\n}\nfunction isPrivateJWK(key) {\n return key.kty !== 'oct' && typeof key.d === 'string';\n}\nfunction isPublicJWK(key) {\n return key.kty !== 'oct' && typeof key.d === 'undefined';\n}\nfunction isSecretJWK(key) {\n return isJWK(key) && key.kty === 'oct' && typeof key.k === 'string';\n}\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.weakMap = void 0;\nconst node_crypto_1 = require(\"node:crypto\");\nconst errors_js_1 = require(\"../util/errors.js\");\nconst webcrypto_js_1 = require(\"./webcrypto.js\");\nconst is_key_object_js_1 = require(\"./is_key_object.js\");\nconst invalid_key_input_js_1 = require(\"../lib/invalid_key_input.js\");\nconst is_key_like_js_1 = require(\"./is_key_like.js\");\nconst is_jwk_js_1 = require(\"../lib/is_jwk.js\");\nexports.weakMap = new WeakMap();\nconst namedCurveToJOSE = (namedCurve) => {\n switch (namedCurve) {\n case 'prime256v1':\n return 'P-256';\n case 'secp384r1':\n return 'P-384';\n case 'secp521r1':\n return 'P-521';\n case 'secp256k1':\n return 'secp256k1';\n default:\n throw new errors_js_1.JOSENotSupported('Unsupported key curve for this operation');\n }\n};\nconst getNamedCurve = (kee, raw) => {\n let key;\n if ((0, webcrypto_js_1.isCryptoKey)(kee)) {\n key = node_crypto_1.KeyObject.from(kee);\n }\n else if ((0, is_key_object_js_1.default)(kee)) {\n key = kee;\n }\n else if ((0, is_jwk_js_1.isJWK)(kee)) {\n return kee.crv;\n }\n else {\n throw new TypeError((0, invalid_key_input_js_1.default)(kee, ...is_key_like_js_1.types));\n }\n if (key.type === 'secret') {\n throw new TypeError('only \"private\" or \"public\" type keys can be used for this operation');\n }\n switch (key.asymmetricKeyType) {\n case 'ed25519':\n case 'ed448':\n return `Ed${key.asymmetricKeyType.slice(2)}`;\n case 'x25519':\n case 'x448':\n return `X${key.asymmetricKeyType.slice(1)}`;\n case 'ec': {\n const namedCurve = key.asymmetricKeyDetails.namedCurve;\n if (raw) {\n return namedCurve;\n }\n return namedCurveToJOSE(namedCurve);\n }\n default:\n throw new TypeError('Invalid asymmetric key type for this operation');\n }\n};\nexports.default = getNamedCurve;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ecdhAllowed = void 0;\nexports.deriveKey = deriveKey;\nexports.generateEpk = generateEpk;\nconst node_crypto_1 = require(\"node:crypto\");\nconst node_util_1 = require(\"node:util\");\nconst get_named_curve_js_1 = require(\"./get_named_curve.js\");\nconst buffer_utils_js_1 = require(\"../lib/buffer_utils.js\");\nconst errors_js_1 = require(\"../util/errors.js\");\nconst webcrypto_js_1 = require(\"./webcrypto.js\");\nconst crypto_key_js_1 = require(\"../lib/crypto_key.js\");\nconst is_key_object_js_1 = require(\"./is_key_object.js\");\nconst invalid_key_input_js_1 = require(\"../lib/invalid_key_input.js\");\nconst is_key_like_js_1 = require(\"./is_key_like.js\");\nconst generateKeyPair = (0, node_util_1.promisify)(node_crypto_1.generateKeyPair);\nasync function deriveKey(publicKee, privateKee, algorithm, keyLength, apu = new Uint8Array(0), apv = new Uint8Array(0)) {\n let publicKey;\n if ((0, webcrypto_js_1.isCryptoKey)(publicKee)) {\n (0, crypto_key_js_1.checkEncCryptoKey)(publicKee, 'ECDH');\n publicKey = node_crypto_1.KeyObject.from(publicKee);\n }\n else if ((0, is_key_object_js_1.default)(publicKee)) {\n publicKey = publicKee;\n }\n else {\n throw new TypeError((0, invalid_key_input_js_1.default)(publicKee, ...is_key_like_js_1.types));\n }\n let privateKey;\n if ((0, webcrypto_js_1.isCryptoKey)(privateKee)) {\n (0, crypto_key_js_1.checkEncCryptoKey)(privateKee, 'ECDH', 'deriveBits');\n privateKey = node_crypto_1.KeyObject.from(privateKee);\n }\n else if ((0, is_key_object_js_1.default)(privateKee)) {\n privateKey = privateKee;\n }\n else {\n throw new TypeError((0, invalid_key_input_js_1.default)(privateKee, ...is_key_like_js_1.types));\n }\n const value = (0, buffer_utils_js_1.concat)((0, buffer_utils_js_1.lengthAndInput)(buffer_utils_js_1.encoder.encode(algorithm)), (0, buffer_utils_js_1.lengthAndInput)(apu), (0, buffer_utils_js_1.lengthAndInput)(apv), (0, buffer_utils_js_1.uint32be)(keyLength));\n const sharedSecret = (0, node_crypto_1.diffieHellman)({ privateKey, publicKey });\n return (0, buffer_utils_js_1.concatKdf)(sharedSecret, keyLength, value);\n}\nasync function generateEpk(kee) {\n let key;\n if ((0, webcrypto_js_1.isCryptoKey)(kee)) {\n key = node_crypto_1.KeyObject.from(kee);\n }\n else if ((0, is_key_object_js_1.default)(kee)) {\n key = kee;\n }\n else {\n throw new TypeError((0, invalid_key_input_js_1.default)(kee, ...is_key_like_js_1.types));\n }\n switch (key.asymmetricKeyType) {\n case 'x25519':\n return generateKeyPair('x25519');\n case 'x448': {\n return generateKeyPair('x448');\n }\n case 'ec': {\n const namedCurve = (0, get_named_curve_js_1.default)(key);\n return generateKeyPair('ec', { namedCurve });\n }\n default:\n throw new errors_js_1.JOSENotSupported('Invalid or unsupported EPK');\n }\n}\nconst ecdhAllowed = (key) => ['P-256', 'P-384', 'P-521', 'X25519', 'X448'].includes((0, get_named_curve_js_1.default)(key));\nexports.ecdhAllowed = ecdhAllowed;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.default = checkP2s;\nconst errors_js_1 = require(\"../util/errors.js\");\nfunction checkP2s(p2s) {\n if (!(p2s instanceof Uint8Array) || p2s.length < 8) {\n throw new errors_js_1.JWEInvalid('PBES2 Salt Input must be 8 or more octets');\n }\n}\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.decrypt = exports.encrypt = void 0;\nconst node_util_1 = require(\"node:util\");\nconst node_crypto_1 = require(\"node:crypto\");\nconst random_js_1 = require(\"./random.js\");\nconst buffer_utils_js_1 = require(\"../lib/buffer_utils.js\");\nconst base64url_js_1 = require(\"./base64url.js\");\nconst aeskw_js_1 = require(\"./aeskw.js\");\nconst check_p2s_js_1 = require(\"../lib/check_p2s.js\");\nconst webcrypto_js_1 = require(\"./webcrypto.js\");\nconst crypto_key_js_1 = require(\"../lib/crypto_key.js\");\nconst is_key_object_js_1 = require(\"./is_key_object.js\");\nconst invalid_key_input_js_1 = require(\"../lib/invalid_key_input.js\");\nconst is_key_like_js_1 = require(\"./is_key_like.js\");\nconst pbkdf2 = (0, node_util_1.promisify)(node_crypto_1.pbkdf2);\nfunction getPassword(key, alg) {\n if ((0, is_key_object_js_1.default)(key)) {\n return key.export();\n }\n if (key instanceof Uint8Array) {\n return key;\n }\n if ((0, webcrypto_js_1.isCryptoKey)(key)) {\n (0, crypto_key_js_1.checkEncCryptoKey)(key, alg, 'deriveBits', 'deriveKey');\n return node_crypto_1.KeyObject.from(key).export();\n }\n throw new TypeError((0, invalid_key_input_js_1.default)(key, ...is_key_like_js_1.types, 'Uint8Array'));\n}\nconst encrypt = async (alg, key, cek, p2c = 2048, p2s = (0, random_js_1.default)(new Uint8Array(16))) => {\n (0, check_p2s_js_1.default)(p2s);\n const salt = (0, buffer_utils_js_1.p2s)(alg, p2s);\n const keylen = parseInt(alg.slice(13, 16), 10) >> 3;\n const password = getPassword(key, alg);\n const derivedKey = await pbkdf2(password, salt, p2c, keylen, `sha${alg.slice(8, 11)}`);\n const encryptedKey = await (0, aeskw_js_1.wrap)(alg.slice(-6), derivedKey, cek);\n return { encryptedKey, p2c, p2s: (0, base64url_js_1.encode)(p2s) };\n};\nexports.encrypt = encrypt;\nconst decrypt = async (alg, key, encryptedKey, p2c, p2s) => {\n (0, check_p2s_js_1.default)(p2s);\n const salt = (0, buffer_utils_js_1.p2s)(alg, p2s);\n const keylen = parseInt(alg.slice(13, 16), 10) >> 3;\n const password = getPassword(key, alg);\n const derivedKey = await pbkdf2(password, salt, p2c, keylen, `sha${alg.slice(8, 11)}`);\n return (0, aeskw_js_1.unwrap)(alg.slice(-6), derivedKey, encryptedKey);\n};\nexports.decrypt = decrypt;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst node_crypto_1 = require(\"node:crypto\");\nexports.default = (key, alg) => {\n let modulusLength;\n try {\n if (key instanceof node_crypto_1.KeyObject) {\n modulusLength = key.asymmetricKeyDetails?.modulusLength;\n }\n else {\n modulusLength = Buffer.from(key.n, 'base64url').byteLength << 3;\n }\n }\n catch { }\n if (typeof modulusLength !== 'number' || modulusLength < 2048) {\n throw new TypeError(`${alg} requires key modulusLength to be 2048 bits or larger`);\n }\n};\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.decrypt = exports.encrypt = void 0;\nconst node_crypto_1 = require(\"node:crypto\");\nconst node_util_1 = require(\"node:util\");\nconst check_key_length_js_1 = require(\"./check_key_length.js\");\nconst webcrypto_js_1 = require(\"./webcrypto.js\");\nconst crypto_key_js_1 = require(\"../lib/crypto_key.js\");\nconst is_key_object_js_1 = require(\"./is_key_object.js\");\nconst invalid_key_input_js_1 = require(\"../lib/invalid_key_input.js\");\nconst is_key_like_js_1 = require(\"./is_key_like.js\");\nconst checkKey = (key, alg) => {\n if (key.asymmetricKeyType !== 'rsa') {\n throw new TypeError('Invalid key for this operation, its asymmetricKeyType must be rsa');\n }\n (0, check_key_length_js_1.default)(key, alg);\n};\nconst RSA1_5 = (0, node_util_1.deprecate)(() => node_crypto_1.constants.RSA_PKCS1_PADDING, 'The RSA1_5 \"alg\" (JWE Algorithm) is deprecated and will be removed in the next major revision.');\nconst resolvePadding = (alg) => {\n switch (alg) {\n case 'RSA-OAEP':\n case 'RSA-OAEP-256':\n case 'RSA-OAEP-384':\n case 'RSA-OAEP-512':\n return node_crypto_1.constants.RSA_PKCS1_OAEP_PADDING;\n case 'RSA1_5':\n return RSA1_5();\n default:\n return undefined;\n }\n};\nconst resolveOaepHash = (alg) => {\n switch (alg) {\n case 'RSA-OAEP':\n return 'sha1';\n case 'RSA-OAEP-256':\n return 'sha256';\n case 'RSA-OAEP-384':\n return 'sha384';\n case 'RSA-OAEP-512':\n return 'sha512';\n default:\n return undefined;\n }\n};\nfunction ensureKeyObject(key, alg, ...usages) {\n if ((0, is_key_object_js_1.default)(key)) {\n return key;\n }\n if ((0, webcrypto_js_1.isCryptoKey)(key)) {\n (0, crypto_key_js_1.checkEncCryptoKey)(key, alg, ...usages);\n return node_crypto_1.KeyObject.from(key);\n }\n throw new TypeError((0, invalid_key_input_js_1.default)(key, ...is_key_like_js_1.types));\n}\nconst encrypt = (alg, key, cek) => {\n const padding = resolvePadding(alg);\n const oaepHash = resolveOaepHash(alg);\n const keyObject = ensureKeyObject(key, alg, 'wrapKey', 'encrypt');\n checkKey(keyObject, alg);\n return (0, node_crypto_1.publicEncrypt)({ key: keyObject, oaepHash, padding }, cek);\n};\nexports.encrypt = encrypt;\nconst decrypt = (alg, key, encryptedKey) => {\n const padding = resolvePadding(alg);\n const oaepHash = resolveOaepHash(alg);\n const keyObject = ensureKeyObject(key, alg, 'unwrapKey', 'decrypt');\n checkKey(keyObject, alg);\n return (0, node_crypto_1.privateDecrypt)({ key: keyObject, oaepHash, padding }, encryptedKey);\n};\nexports.decrypt = decrypt;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.default = {};\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.bitLength = bitLength;\nconst errors_js_1 = require(\"../util/errors.js\");\nconst random_js_1 = require(\"../runtime/random.js\");\nfunction bitLength(alg) {\n switch (alg) {\n case 'A128GCM':\n return 128;\n case 'A192GCM':\n return 192;\n case 'A256GCM':\n case 'A128CBC-HS256':\n return 256;\n case 'A192CBC-HS384':\n return 384;\n case 'A256CBC-HS512':\n return 512;\n default:\n throw new errors_js_1.JOSENotSupported(`Unsupported JWE Algorithm: ${alg}`);\n }\n}\nexports.default = (alg) => (0, random_js_1.default)(new Uint8Array(bitLength(alg) >> 3));\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.fromX509 = exports.fromSPKI = exports.fromPKCS8 = exports.toPKCS8 = exports.toSPKI = void 0;\nconst node_crypto_1 = require(\"node:crypto\");\nconst node_buffer_1 = require(\"node:buffer\");\nconst webcrypto_js_1 = require(\"./webcrypto.js\");\nconst is_key_object_js_1 = require(\"./is_key_object.js\");\nconst invalid_key_input_js_1 = require(\"../lib/invalid_key_input.js\");\nconst is_key_like_js_1 = require(\"./is_key_like.js\");\nconst genericExport = (keyType, keyFormat, key) => {\n let keyObject;\n if ((0, webcrypto_js_1.isCryptoKey)(key)) {\n if (!key.extractable) {\n throw new TypeError('CryptoKey is not extractable');\n }\n keyObject = node_crypto_1.KeyObject.from(key);\n }\n else if ((0, is_key_object_js_1.default)(key)) {\n keyObject = key;\n }\n else {\n throw new TypeError((0, invalid_key_input_js_1.default)(key, ...is_key_like_js_1.types));\n }\n if (keyObject.type !== keyType) {\n throw new TypeError(`key is not a ${keyType} key`);\n }\n return keyObject.export({ format: 'pem', type: keyFormat });\n};\nconst toSPKI = (key) => {\n return genericExport('public', 'spki', key);\n};\nexports.toSPKI = toSPKI;\nconst toPKCS8 = (key) => {\n return genericExport('private', 'pkcs8', key);\n};\nexports.toPKCS8 = toPKCS8;\nconst fromPKCS8 = (pem) => (0, node_crypto_1.createPrivateKey)({\n key: node_buffer_1.Buffer.from(pem.replace(/(?:-----(?:BEGIN|END) PRIVATE KEY-----|\\s)/g, ''), 'base64'),\n type: 'pkcs8',\n format: 'der',\n});\nexports.fromPKCS8 = fromPKCS8;\nconst fromSPKI = (pem) => (0, node_crypto_1.createPublicKey)({\n key: node_buffer_1.Buffer.from(pem.replace(/(?:-----(?:BEGIN|END) PUBLIC KEY-----|\\s)/g, ''), 'base64'),\n type: 'spki',\n format: 'der',\n});\nexports.fromSPKI = fromSPKI;\nconst fromX509 = (pem) => (0, node_crypto_1.createPublicKey)({\n key: pem,\n type: 'spki',\n format: 'pem',\n});\nexports.fromX509 = fromX509;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst node_crypto_1 = require(\"node:crypto\");\nconst parse = (key) => {\n if (key.d) {\n return (0, node_crypto_1.createPrivateKey)({ format: 'jwk', key });\n }\n return (0, node_crypto_1.createPublicKey)({ format: 'jwk', key });\n};\nexports.default = parse;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.importSPKI = importSPKI;\nexports.importX509 = importX509;\nexports.importPKCS8 = importPKCS8;\nexports.importJWK = importJWK;\nconst base64url_js_1 = require(\"../runtime/base64url.js\");\nconst asn1_js_1 = require(\"../runtime/asn1.js\");\nconst jwk_to_key_js_1 = require(\"../runtime/jwk_to_key.js\");\nconst errors_js_1 = require(\"../util/errors.js\");\nconst is_object_js_1 = require(\"../lib/is_object.js\");\nasync function importSPKI(spki, alg, options) {\n if (typeof spki !== 'string' || spki.indexOf('-----BEGIN PUBLIC KEY-----') !== 0) {\n throw new TypeError('\"spki\" must be SPKI formatted string');\n }\n return (0, asn1_js_1.fromSPKI)(spki, alg, options);\n}\nasync function importX509(x509, alg, options) {\n if (typeof x509 !== 'string' || x509.indexOf('-----BEGIN CERTIFICATE-----') !== 0) {\n throw new TypeError('\"x509\" must be X.509 formatted string');\n }\n return (0, asn1_js_1.fromX509)(x509, alg, options);\n}\nasync function importPKCS8(pkcs8, alg, options) {\n if (typeof pkcs8 !== 'string' || pkcs8.indexOf('-----BEGIN PRIVATE KEY-----') !== 0) {\n throw new TypeError('\"pkcs8\" must be PKCS#8 formatted string');\n }\n return (0, asn1_js_1.fromPKCS8)(pkcs8, alg, options);\n}\nasync function importJWK(jwk, alg) {\n if (!(0, is_object_js_1.default)(jwk)) {\n throw new TypeError('JWK must be an object');\n }\n alg ||= jwk.alg;\n switch (jwk.kty) {\n case 'oct':\n if (typeof jwk.k !== 'string' || !jwk.k) {\n throw new TypeError('missing \"k\" (Key Value) Parameter value');\n }\n return (0, base64url_js_1.decode)(jwk.k);\n case 'RSA':\n if ('oth' in jwk && jwk.oth !== undefined) {\n throw new errors_js_1.JOSENotSupported('RSA JWK \"oth\" (Other Primes Info) Parameter value is not supported');\n }\n case 'EC':\n case 'OKP':\n return (0, jwk_to_key_js_1.default)({ ...jwk, alg });\n default:\n throw new errors_js_1.JOSENotSupported('Unsupported \"kty\" (Key Type) Parameter value');\n }\n}\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.checkKeyTypeWithJwk = void 0;\nconst invalid_key_input_js_1 = require(\"./invalid_key_input.js\");\nconst is_key_like_js_1 = require(\"../runtime/is_key_like.js\");\nconst jwk = require(\"./is_jwk.js\");\nconst tag = (key) => key?.[Symbol.toStringTag];\nconst jwkMatchesOp = (alg, key, usage) => {\n if (key.use !== undefined && key.use !== 'sig') {\n throw new TypeError('Invalid key for this operation, when present its use must be sig');\n }\n if (key.key_ops !== undefined && key.key_ops.includes?.(usage) !== true) {\n throw new TypeError(`Invalid key for this operation, when present its key_ops must include ${usage}`);\n }\n if (key.alg !== undefined && key.alg !== alg) {\n throw new TypeError(`Invalid key for this operation, when present its alg must be ${alg}`);\n }\n return true;\n};\nconst symmetricTypeCheck = (alg, key, usage, allowJwk) => {\n if (key instanceof Uint8Array)\n return;\n if (allowJwk && jwk.isJWK(key)) {\n if (jwk.isSecretJWK(key) && jwkMatchesOp(alg, key, usage))\n return;\n throw new TypeError(`JSON Web Key for symmetric algorithms must have JWK \"kty\" (Key Type) equal to \"oct\" and the JWK \"k\" (Key Value) present`);\n }\n if (!(0, is_key_like_js_1.default)(key)) {\n throw new TypeError((0, invalid_key_input_js_1.withAlg)(alg, key, ...is_key_like_js_1.types, 'Uint8Array', allowJwk ? 'JSON Web Key' : null));\n }\n if (key.type !== 'secret') {\n throw new TypeError(`${tag(key)} instances for symmetric algorithms must be of type \"secret\"`);\n }\n};\nconst asymmetricTypeCheck = (alg, key, usage, allowJwk) => {\n if (allowJwk && jwk.isJWK(key)) {\n switch (usage) {\n case 'sign':\n if (jwk.isPrivateJWK(key) && jwkMatchesOp(alg, key, usage))\n return;\n throw new TypeError(`JSON Web Key for this operation be a private JWK`);\n case 'verify':\n if (jwk.isPublicJWK(key) && jwkMatchesOp(alg, key, usage))\n return;\n throw new TypeError(`JSON Web Key for this operation be a public JWK`);\n }\n }\n if (!(0, is_key_like_js_1.default)(key)) {\n throw new TypeError((0, invalid_key_input_js_1.withAlg)(alg, key, ...is_key_like_js_1.types, allowJwk ? 'JSON Web Key' : null));\n }\n if (key.type === 'secret') {\n throw new TypeError(`${tag(key)} instances for asymmetric algorithms must not be of type \"secret\"`);\n }\n if (usage === 'sign' && key.type === 'public') {\n throw new TypeError(`${tag(key)} instances for asymmetric algorithm signing must be of type \"private\"`);\n }\n if (usage === 'decrypt' && key.type === 'public') {\n throw new TypeError(`${tag(key)} instances for asymmetric algorithm decryption must be of type \"private\"`);\n }\n if (key.algorithm && usage === 'verify' && key.type === 'private') {\n throw new TypeError(`${tag(key)} instances for asymmetric algorithm verifying must be of type \"public\"`);\n }\n if (key.algorithm && usage === 'encrypt' && key.type === 'private') {\n throw new TypeError(`${tag(key)} instances for asymmetric algorithm encryption must be of type \"public\"`);\n }\n};\nfunction checkKeyType(allowJwk, alg, key, usage) {\n const symmetric = alg.startsWith('HS') ||\n alg === 'dir' ||\n alg.startsWith('PBES2') ||\n /^A\\d{3}(?:GCM)?KW$/.test(alg);\n if (symmetric) {\n symmetricTypeCheck(alg, key, usage, allowJwk);\n }\n else {\n asymmetricTypeCheck(alg, key, usage, allowJwk);\n }\n}\nexports.default = checkKeyType.bind(undefined, false);\nexports.checkKeyTypeWithJwk = checkKeyType.bind(undefined, true);\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst node_crypto_1 = require(\"node:crypto\");\nconst check_iv_length_js_1 = require(\"../lib/check_iv_length.js\");\nconst check_cek_length_js_1 = require(\"./check_cek_length.js\");\nconst buffer_utils_js_1 = require(\"../lib/buffer_utils.js\");\nconst cbc_tag_js_1 = require(\"./cbc_tag.js\");\nconst webcrypto_js_1 = require(\"./webcrypto.js\");\nconst crypto_key_js_1 = require(\"../lib/crypto_key.js\");\nconst is_key_object_js_1 = require(\"./is_key_object.js\");\nconst invalid_key_input_js_1 = require(\"../lib/invalid_key_input.js\");\nconst iv_js_1 = require(\"../lib/iv.js\");\nconst errors_js_1 = require(\"../util/errors.js\");\nconst ciphers_js_1 = require(\"./ciphers.js\");\nconst is_key_like_js_1 = require(\"./is_key_like.js\");\nfunction cbcEncrypt(enc, plaintext, cek, iv, aad) {\n const keySize = parseInt(enc.slice(1, 4), 10);\n if ((0, is_key_object_js_1.default)(cek)) {\n cek = cek.export();\n }\n const encKey = cek.subarray(keySize >> 3);\n const macKey = cek.subarray(0, keySize >> 3);\n const algorithm = `aes-${keySize}-cbc`;\n if (!(0, ciphers_js_1.default)(algorithm)) {\n throw new errors_js_1.JOSENotSupported(`alg ${enc} is not supported by your javascript runtime`);\n }\n const cipher = (0, node_crypto_1.createCipheriv)(algorithm, encKey, iv);\n const ciphertext = (0, buffer_utils_js_1.concat)(cipher.update(plaintext), cipher.final());\n const macSize = parseInt(enc.slice(-3), 10);\n const tag = (0, cbc_tag_js_1.default)(aad, iv, ciphertext, macSize, macKey, keySize);\n return { ciphertext, tag, iv };\n}\nfunction gcmEncrypt(enc, plaintext, cek, iv, aad) {\n const keySize = parseInt(enc.slice(1, 4), 10);\n const algorithm = `aes-${keySize}-gcm`;\n if (!(0, ciphers_js_1.default)(algorithm)) {\n throw new errors_js_1.JOSENotSupported(`alg ${enc} is not supported by your javascript runtime`);\n }\n const cipher = (0, node_crypto_1.createCipheriv)(algorithm, cek, iv, { authTagLength: 16 });\n if (aad.byteLength) {\n cipher.setAAD(aad, { plaintextLength: plaintext.length });\n }\n const ciphertext = cipher.update(plaintext);\n cipher.final();\n const tag = cipher.getAuthTag();\n return { ciphertext, tag, iv };\n}\nconst encrypt = (enc, plaintext, cek, iv, aad) => {\n let key;\n if ((0, webcrypto_js_1.isCryptoKey)(cek)) {\n (0, crypto_key_js_1.checkEncCryptoKey)(cek, enc, 'encrypt');\n key = node_crypto_1.KeyObject.from(cek);\n }\n else if (cek instanceof Uint8Array || (0, is_key_object_js_1.default)(cek)) {\n key = cek;\n }\n else {\n throw new TypeError((0, invalid_key_input_js_1.default)(cek, ...is_key_like_js_1.types, 'Uint8Array'));\n }\n (0, check_cek_length_js_1.default)(enc, key);\n if (iv) {\n (0, check_iv_length_js_1.default)(enc, iv);\n }\n else {\n iv = (0, iv_js_1.default)(enc);\n }\n switch (enc) {\n case 'A128CBC-HS256':\n case 'A192CBC-HS384':\n case 'A256CBC-HS512':\n return cbcEncrypt(enc, plaintext, key, iv, aad);\n case 'A128GCM':\n case 'A192GCM':\n case 'A256GCM':\n return gcmEncrypt(enc, plaintext, key, iv, aad);\n default:\n throw new errors_js_1.JOSENotSupported('Unsupported JWE Content Encryption Algorithm');\n }\n};\nexports.default = encrypt;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.wrap = wrap;\nexports.unwrap = unwrap;\nconst encrypt_js_1 = require(\"../runtime/encrypt.js\");\nconst decrypt_js_1 = require(\"../runtime/decrypt.js\");\nconst base64url_js_1 = require(\"../runtime/base64url.js\");\nasync function wrap(alg, key, cek, iv) {\n const jweAlgorithm = alg.slice(0, 7);\n const wrapped = await (0, encrypt_js_1.default)(jweAlgorithm, cek, key, iv, new Uint8Array(0));\n return {\n encryptedKey: wrapped.ciphertext,\n iv: (0, base64url_js_1.encode)(wrapped.iv),\n tag: (0, base64url_js_1.encode)(wrapped.tag),\n };\n}\nasync function unwrap(alg, key, encryptedKey, iv, tag) {\n const jweAlgorithm = alg.slice(0, 7);\n return (0, decrypt_js_1.default)(jweAlgorithm, key, encryptedKey, iv, tag, new Uint8Array(0));\n}\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst aeskw_js_1 = require(\"../runtime/aeskw.js\");\nconst ECDH = require(\"../runtime/ecdhes.js\");\nconst pbes2kw_js_1 = require(\"../runtime/pbes2kw.js\");\nconst rsaes_js_1 = require(\"../runtime/rsaes.js\");\nconst base64url_js_1 = require(\"../runtime/base64url.js\");\nconst normalize_key_js_1 = require(\"../runtime/normalize_key.js\");\nconst errors_js_1 = require(\"../util/errors.js\");\nconst cek_js_1 = require(\"../lib/cek.js\");\nconst import_js_1 = require(\"../key/import.js\");\nconst check_key_type_js_1 = require(\"./check_key_type.js\");\nconst is_object_js_1 = require(\"./is_object.js\");\nconst aesgcmkw_js_1 = require(\"./aesgcmkw.js\");\nasync function decryptKeyManagement(alg, key, encryptedKey, joseHeader, options) {\n (0, check_key_type_js_1.default)(alg, key, 'decrypt');\n key = (await normalize_key_js_1.default.normalizePrivateKey?.(key, alg)) || key;\n switch (alg) {\n case 'dir': {\n if (encryptedKey !== undefined)\n throw new errors_js_1.JWEInvalid('Encountered unexpected JWE Encrypted Key');\n return key;\n }\n case 'ECDH-ES':\n if (encryptedKey !== undefined)\n throw new errors_js_1.JWEInvalid('Encountered unexpected JWE Encrypted Key');\n case 'ECDH-ES+A128KW':\n case 'ECDH-ES+A192KW':\n case 'ECDH-ES+A256KW': {\n if (!(0, is_object_js_1.default)(joseHeader.epk))\n throw new errors_js_1.JWEInvalid(`JOSE Header \"epk\" (Ephemeral Public Key) missing or invalid`);\n if (!ECDH.ecdhAllowed(key))\n throw new errors_js_1.JOSENotSupported('ECDH with the provided key is not allowed or not supported by your javascript runtime');\n const epk = await (0, import_js_1.importJWK)(joseHeader.epk, alg);\n let partyUInfo;\n let partyVInfo;\n if (joseHeader.apu !== undefined) {\n if (typeof joseHeader.apu !== 'string')\n throw new errors_js_1.JWEInvalid(`JOSE Header \"apu\" (Agreement PartyUInfo) invalid`);\n try {\n partyUInfo = (0, base64url_js_1.decode)(joseHeader.apu);\n }\n catch {\n throw new errors_js_1.JWEInvalid('Failed to base64url decode the apu');\n }\n }\n if (joseHeader.apv !== undefined) {\n if (typeof joseHeader.apv !== 'string')\n throw new errors_js_1.JWEInvalid(`JOSE Header \"apv\" (Agreement PartyVInfo) invalid`);\n try {\n partyVInfo = (0, base64url_js_1.decode)(joseHeader.apv);\n }\n catch {\n throw new errors_js_1.JWEInvalid('Failed to base64url decode the apv');\n }\n }\n const sharedSecret = await ECDH.deriveKey(epk, key, alg === 'ECDH-ES' ? joseHeader.enc : alg, alg === 'ECDH-ES' ? (0, cek_js_1.bitLength)(joseHeader.enc) : parseInt(alg.slice(-5, -2), 10), partyUInfo, partyVInfo);\n if (alg === 'ECDH-ES')\n return sharedSecret;\n if (encryptedKey === undefined)\n throw new errors_js_1.JWEInvalid('JWE Encrypted Key missing');\n return (0, aeskw_js_1.unwrap)(alg.slice(-6), sharedSecret, encryptedKey);\n }\n case 'RSA1_5':\n case 'RSA-OAEP':\n case 'RSA-OAEP-256':\n case 'RSA-OAEP-384':\n case 'RSA-OAEP-512': {\n if (encryptedKey === undefined)\n throw new errors_js_1.JWEInvalid('JWE Encrypted Key missing');\n return (0, rsaes_js_1.decrypt)(alg, key, encryptedKey);\n }\n case 'PBES2-HS256+A128KW':\n case 'PBES2-HS384+A192KW':\n case 'PBES2-HS512+A256KW': {\n if (encryptedKey === undefined)\n throw new errors_js_1.JWEInvalid('JWE Encrypted Key missing');\n if (typeof joseHeader.p2c !== 'number')\n throw new errors_js_1.JWEInvalid(`JOSE Header \"p2c\" (PBES2 Count) missing or invalid`);\n const p2cLimit = options?.maxPBES2Count || 10_000;\n if (joseHeader.p2c > p2cLimit)\n throw new errors_js_1.JWEInvalid(`JOSE Header \"p2c\" (PBES2 Count) out is of acceptable bounds`);\n if (typeof joseHeader.p2s !== 'string')\n throw new errors_js_1.JWEInvalid(`JOSE Header \"p2s\" (PBES2 Salt) missing or invalid`);\n let p2s;\n try {\n p2s = (0, base64url_js_1.decode)(joseHeader.p2s);\n }\n catch {\n throw new errors_js_1.JWEInvalid('Failed to base64url decode the p2s');\n }\n return (0, pbes2kw_js_1.decrypt)(alg, key, encryptedKey, joseHeader.p2c, p2s);\n }\n case 'A128KW':\n case 'A192KW':\n case 'A256KW': {\n if (encryptedKey === undefined)\n throw new errors_js_1.JWEInvalid('JWE Encrypted Key missing');\n return (0, aeskw_js_1.unwrap)(alg, key, encryptedKey);\n }\n case 'A128GCMKW':\n case 'A192GCMKW':\n case 'A256GCMKW': {\n if (encryptedKey === undefined)\n throw new errors_js_1.JWEInvalid('JWE Encrypted Key missing');\n if (typeof joseHeader.iv !== 'string')\n throw new errors_js_1.JWEInvalid(`JOSE Header \"iv\" (Initialization Vector) missing or invalid`);\n if (typeof joseHeader.tag !== 'string')\n throw new errors_js_1.JWEInvalid(`JOSE Header \"tag\" (Authentication Tag) missing or invalid`);\n let iv;\n try {\n iv = (0, base64url_js_1.decode)(joseHeader.iv);\n }\n catch {\n throw new errors_js_1.JWEInvalid('Failed to base64url decode the iv');\n }\n let tag;\n try {\n tag = (0, base64url_js_1.decode)(joseHeader.tag);\n }\n catch {\n throw new errors_js_1.JWEInvalid('Failed to base64url decode the tag');\n }\n return (0, aesgcmkw_js_1.unwrap)(alg, key, encryptedKey, iv, tag);\n }\n default: {\n throw new errors_js_1.JOSENotSupported('Invalid or unsupported \"alg\" (JWE Algorithm) header value');\n }\n }\n}\nexports.default = decryptKeyManagement;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst errors_js_1 = require(\"../util/errors.js\");\nfunction validateCrit(Err, recognizedDefault, recognizedOption, protectedHeader, joseHeader) {\n if (joseHeader.crit !== undefined && protectedHeader?.crit === undefined) {\n throw new Err('\"crit\" (Critical) Header Parameter MUST be integrity protected');\n }\n if (!protectedHeader || protectedHeader.crit === undefined) {\n return new Set();\n }\n if (!Array.isArray(protectedHeader.crit) ||\n protectedHeader.crit.length === 0 ||\n protectedHeader.crit.some((input) => typeof input !== 'string' || input.length === 0)) {\n throw new Err('\"crit\" (Critical) Header Parameter MUST be an array of non-empty strings when present');\n }\n let recognized;\n if (recognizedOption !== undefined) {\n recognized = new Map([...Object.entries(recognizedOption), ...recognizedDefault.entries()]);\n }\n else {\n recognized = recognizedDefault;\n }\n for (const parameter of protectedHeader.crit) {\n if (!recognized.has(parameter)) {\n throw new errors_js_1.JOSENotSupported(`Extension Header Parameter \"${parameter}\" is not recognized`);\n }\n if (joseHeader[parameter] === undefined) {\n throw new Err(`Extension Header Parameter \"${parameter}\" is missing`);\n }\n if (recognized.get(parameter) && protectedHeader[parameter] === undefined) {\n throw new Err(`Extension Header Parameter \"${parameter}\" MUST be integrity protected`);\n }\n }\n return new Set(protectedHeader.crit);\n}\nexports.default = validateCrit;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst validateAlgorithms = (option, algorithms) => {\n if (algorithms !== undefined &&\n (!Array.isArray(algorithms) || algorithms.some((s) => typeof s !== 'string'))) {\n throw new TypeError(`\"${option}\" option must be an array of strings`);\n }\n if (!algorithms) {\n return undefined;\n }\n return new Set(algorithms);\n};\nexports.default = validateAlgorithms;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.flattenedDecrypt = flattenedDecrypt;\nconst base64url_js_1 = require(\"../../runtime/base64url.js\");\nconst decrypt_js_1 = require(\"../../runtime/decrypt.js\");\nconst errors_js_1 = require(\"../../util/errors.js\");\nconst is_disjoint_js_1 = require(\"../../lib/is_disjoint.js\");\nconst is_object_js_1 = require(\"../../lib/is_object.js\");\nconst decrypt_key_management_js_1 = require(\"../../lib/decrypt_key_management.js\");\nconst buffer_utils_js_1 = require(\"../../lib/buffer_utils.js\");\nconst cek_js_1 = require(\"../../lib/cek.js\");\nconst validate_crit_js_1 = require(\"../../lib/validate_crit.js\");\nconst validate_algorithms_js_1 = require(\"../../lib/validate_algorithms.js\");\nasync function flattenedDecrypt(jwe, key, options) {\n if (!(0, is_object_js_1.default)(jwe)) {\n throw new errors_js_1.JWEInvalid('Flattened JWE must be an object');\n }\n if (jwe.protected === undefined && jwe.header === undefined && jwe.unprotected === undefined) {\n throw new errors_js_1.JWEInvalid('JOSE Header missing');\n }\n if (jwe.iv !== undefined && typeof jwe.iv !== 'string') {\n throw new errors_js_1.JWEInvalid('JWE Initialization Vector incorrect type');\n }\n if (typeof jwe.ciphertext !== 'string') {\n throw new errors_js_1.JWEInvalid('JWE Ciphertext missing or incorrect type');\n }\n if (jwe.tag !== undefined && typeof jwe.tag !== 'string') {\n throw new errors_js_1.JWEInvalid('JWE Authentication Tag incorrect type');\n }\n if (jwe.protected !== undefined && typeof jwe.protected !== 'string') {\n throw new errors_js_1.JWEInvalid('JWE Protected Header incorrect type');\n }\n if (jwe.encrypted_key !== undefined && typeof jwe.encrypted_key !== 'string') {\n throw new errors_js_1.JWEInvalid('JWE Encrypted Key incorrect type');\n }\n if (jwe.aad !== undefined && typeof jwe.aad !== 'string') {\n throw new errors_js_1.JWEInvalid('JWE AAD incorrect type');\n }\n if (jwe.header !== undefined && !(0, is_object_js_1.default)(jwe.header)) {\n throw new errors_js_1.JWEInvalid('JWE Shared Unprotected Header incorrect type');\n }\n if (jwe.unprotected !== undefined && !(0, is_object_js_1.default)(jwe.unprotected)) {\n throw new errors_js_1.JWEInvalid('JWE Per-Recipient Unprotected Header incorrect type');\n }\n let parsedProt;\n if (jwe.protected) {\n try {\n const protectedHeader = (0, base64url_js_1.decode)(jwe.protected);\n parsedProt = JSON.parse(buffer_utils_js_1.decoder.decode(protectedHeader));\n }\n catch {\n throw new errors_js_1.JWEInvalid('JWE Protected Header is invalid');\n }\n }\n if (!(0, is_disjoint_js_1.default)(parsedProt, jwe.header, jwe.unprotected)) {\n throw new errors_js_1.JWEInvalid('JWE Protected, JWE Unprotected Header, and JWE Per-Recipient Unprotected Header Parameter names must be disjoint');\n }\n const joseHeader = {\n ...parsedProt,\n ...jwe.header,\n ...jwe.unprotected,\n };\n (0, validate_crit_js_1.default)(errors_js_1.JWEInvalid, new Map(), options?.crit, parsedProt, joseHeader);\n if (joseHeader.zip !== undefined) {\n throw new errors_js_1.JOSENotSupported('JWE \"zip\" (Compression Algorithm) Header Parameter is not supported.');\n }\n const { alg, enc } = joseHeader;\n if (typeof alg !== 'string' || !alg) {\n throw new errors_js_1.JWEInvalid('missing JWE Algorithm (alg) in JWE Header');\n }\n if (typeof enc !== 'string' || !enc) {\n throw new errors_js_1.JWEInvalid('missing JWE Encryption Algorithm (enc) in JWE Header');\n }\n const keyManagementAlgorithms = options && (0, validate_algorithms_js_1.default)('keyManagementAlgorithms', options.keyManagementAlgorithms);\n const contentEncryptionAlgorithms = options &&\n (0, validate_algorithms_js_1.default)('contentEncryptionAlgorithms', options.contentEncryptionAlgorithms);\n if ((keyManagementAlgorithms && !keyManagementAlgorithms.has(alg)) ||\n (!keyManagementAlgorithms && alg.startsWith('PBES2'))) {\n throw new errors_js_1.JOSEAlgNotAllowed('\"alg\" (Algorithm) Header Parameter value not allowed');\n }\n if (contentEncryptionAlgorithms && !contentEncryptionAlgorithms.has(enc)) {\n throw new errors_js_1.JOSEAlgNotAllowed('\"enc\" (Encryption Algorithm) Header Parameter value not allowed');\n }\n let encryptedKey;\n if (jwe.encrypted_key !== undefined) {\n try {\n encryptedKey = (0, base64url_js_1.decode)(jwe.encrypted_key);\n }\n catch {\n throw new errors_js_1.JWEInvalid('Failed to base64url decode the encrypted_key');\n }\n }\n let resolvedKey = false;\n if (typeof key === 'function') {\n key = await key(parsedProt, jwe);\n resolvedKey = true;\n }\n let cek;\n try {\n cek = await (0, decrypt_key_management_js_1.default)(alg, key, encryptedKey, joseHeader, options);\n }\n catch (err) {\n if (err instanceof TypeError || err instanceof errors_js_1.JWEInvalid || err instanceof errors_js_1.JOSENotSupported) {\n throw err;\n }\n cek = (0, cek_js_1.default)(enc);\n }\n let iv;\n let tag;\n if (jwe.iv !== undefined) {\n try {\n iv = (0, base64url_js_1.decode)(jwe.iv);\n }\n catch {\n throw new errors_js_1.JWEInvalid('Failed to base64url decode the iv');\n }\n }\n if (jwe.tag !== undefined) {\n try {\n tag = (0, base64url_js_1.decode)(jwe.tag);\n }\n catch {\n throw new errors_js_1.JWEInvalid('Failed to base64url decode the tag');\n }\n }\n const protectedHeader = buffer_utils_js_1.encoder.encode(jwe.protected ?? '');\n let additionalData;\n if (jwe.aad !== undefined) {\n additionalData = (0, buffer_utils_js_1.concat)(protectedHeader, buffer_utils_js_1.encoder.encode('.'), buffer_utils_js_1.encoder.encode(jwe.aad));\n }\n else {\n additionalData = protectedHeader;\n }\n let ciphertext;\n try {\n ciphertext = (0, base64url_js_1.decode)(jwe.ciphertext);\n }\n catch {\n throw new errors_js_1.JWEInvalid('Failed to base64url decode the ciphertext');\n }\n const plaintext = await (0, decrypt_js_1.default)(enc, cek, ciphertext, iv, tag, additionalData);\n const result = { plaintext };\n if (jwe.protected !== undefined) {\n result.protectedHeader = parsedProt;\n }\n if (jwe.aad !== undefined) {\n try {\n result.additionalAuthenticatedData = (0, base64url_js_1.decode)(jwe.aad);\n }\n catch {\n throw new errors_js_1.JWEInvalid('Failed to base64url decode the aad');\n }\n }\n if (jwe.unprotected !== undefined) {\n result.sharedUnprotectedHeader = jwe.unprotected;\n }\n if (jwe.header !== undefined) {\n result.unprotectedHeader = jwe.header;\n }\n if (resolvedKey) {\n return { ...result, key };\n }\n return result;\n}\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.compactDecrypt = compactDecrypt;\nconst decrypt_js_1 = require(\"../flattened/decrypt.js\");\nconst errors_js_1 = require(\"../../util/errors.js\");\nconst buffer_utils_js_1 = require(\"../../lib/buffer_utils.js\");\nasync function compactDecrypt(jwe, key, options) {\n if (jwe instanceof Uint8Array) {\n jwe = buffer_utils_js_1.decoder.decode(jwe);\n }\n if (typeof jwe !== 'string') {\n throw new errors_js_1.JWEInvalid('Compact JWE must be a string or Uint8Array');\n }\n const { 0: protectedHeader, 1: encryptedKey, 2: iv, 3: ciphertext, 4: tag, length, } = jwe.split('.');\n if (length !== 5) {\n throw new errors_js_1.JWEInvalid('Invalid Compact JWE');\n }\n const decrypted = await (0, decrypt_js_1.flattenedDecrypt)({\n ciphertext,\n iv: iv || undefined,\n protected: protectedHeader,\n tag: tag || undefined,\n encrypted_key: encryptedKey || undefined,\n }, key, options);\n const result = { plaintext: decrypted.plaintext, protectedHeader: decrypted.protectedHeader };\n if (typeof key === 'function') {\n return { ...result, key: decrypted.key };\n }\n return result;\n}\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.generalDecrypt = generalDecrypt;\nconst decrypt_js_1 = require(\"../flattened/decrypt.js\");\nconst errors_js_1 = require(\"../../util/errors.js\");\nconst is_object_js_1 = require(\"../../lib/is_object.js\");\nasync function generalDecrypt(jwe, key, options) {\n if (!(0, is_object_js_1.default)(jwe)) {\n throw new errors_js_1.JWEInvalid('General JWE must be an object');\n }\n if (!Array.isArray(jwe.recipients) || !jwe.recipients.every(is_object_js_1.default)) {\n throw new errors_js_1.JWEInvalid('JWE Recipients missing or incorrect type');\n }\n if (!jwe.recipients.length) {\n throw new errors_js_1.JWEInvalid('JWE Recipients has no members');\n }\n for (const recipient of jwe.recipients) {\n try {\n return await (0, decrypt_js_1.flattenedDecrypt)({\n aad: jwe.aad,\n ciphertext: jwe.ciphertext,\n encrypted_key: recipient.encrypted_key,\n header: recipient.header,\n iv: jwe.iv,\n protected: jwe.protected,\n tag: jwe.tag,\n unprotected: jwe.unprotected,\n }, key, options);\n }\n catch {\n }\n }\n throw new errors_js_1.JWEDecryptionFailed();\n}\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.unprotected = void 0;\nexports.unprotected = Symbol();\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst node_crypto_1 = require(\"node:crypto\");\nconst base64url_js_1 = require(\"./base64url.js\");\nconst errors_js_1 = require(\"../util/errors.js\");\nconst webcrypto_js_1 = require(\"./webcrypto.js\");\nconst is_key_object_js_1 = require(\"./is_key_object.js\");\nconst invalid_key_input_js_1 = require(\"../lib/invalid_key_input.js\");\nconst is_key_like_js_1 = require(\"./is_key_like.js\");\nconst keyToJWK = (key) => {\n let keyObject;\n if ((0, webcrypto_js_1.isCryptoKey)(key)) {\n if (!key.extractable) {\n throw new TypeError('CryptoKey is not extractable');\n }\n keyObject = node_crypto_1.KeyObject.from(key);\n }\n else if ((0, is_key_object_js_1.default)(key)) {\n keyObject = key;\n }\n else if (key instanceof Uint8Array) {\n return {\n kty: 'oct',\n k: (0, base64url_js_1.encode)(key),\n };\n }\n else {\n throw new TypeError((0, invalid_key_input_js_1.default)(key, ...is_key_like_js_1.types, 'Uint8Array'));\n }\n if (keyObject.type !== 'secret' &&\n !['rsa', 'ec', 'ed25519', 'x25519', 'ed448', 'x448'].includes(keyObject.asymmetricKeyType)) {\n throw new errors_js_1.JOSENotSupported('Unsupported key asymmetricKeyType');\n }\n return keyObject.export({ format: 'jwk' });\n};\nexports.default = keyToJWK;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.exportSPKI = exportSPKI;\nexports.exportPKCS8 = exportPKCS8;\nexports.exportJWK = exportJWK;\nconst asn1_js_1 = require(\"../runtime/asn1.js\");\nconst asn1_js_2 = require(\"../runtime/asn1.js\");\nconst key_to_jwk_js_1 = require(\"../runtime/key_to_jwk.js\");\nasync function exportSPKI(key) {\n return (0, asn1_js_1.toSPKI)(key);\n}\nasync function exportPKCS8(key) {\n return (0, asn1_js_2.toPKCS8)(key);\n}\nasync function exportJWK(key) {\n return (0, key_to_jwk_js_1.default)(key);\n}\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst aeskw_js_1 = require(\"../runtime/aeskw.js\");\nconst ECDH = require(\"../runtime/ecdhes.js\");\nconst pbes2kw_js_1 = require(\"../runtime/pbes2kw.js\");\nconst rsaes_js_1 = require(\"../runtime/rsaes.js\");\nconst base64url_js_1 = require(\"../runtime/base64url.js\");\nconst normalize_key_js_1 = require(\"../runtime/normalize_key.js\");\nconst cek_js_1 = require(\"../lib/cek.js\");\nconst errors_js_1 = require(\"../util/errors.js\");\nconst export_js_1 = require(\"../key/export.js\");\nconst check_key_type_js_1 = require(\"./check_key_type.js\");\nconst aesgcmkw_js_1 = require(\"./aesgcmkw.js\");\nasync function encryptKeyManagement(alg, enc, key, providedCek, providedParameters = {}) {\n let encryptedKey;\n let parameters;\n let cek;\n (0, check_key_type_js_1.default)(alg, key, 'encrypt');\n key = (await normalize_key_js_1.default.normalizePublicKey?.(key, alg)) || key;\n switch (alg) {\n case 'dir': {\n cek = key;\n break;\n }\n case 'ECDH-ES':\n case 'ECDH-ES+A128KW':\n case 'ECDH-ES+A192KW':\n case 'ECDH-ES+A256KW': {\n if (!ECDH.ecdhAllowed(key)) {\n throw new errors_js_1.JOSENotSupported('ECDH with the provided key is not allowed or not supported by your javascript runtime');\n }\n const { apu, apv } = providedParameters;\n let { epk: ephemeralKey } = providedParameters;\n ephemeralKey ||= (await ECDH.generateEpk(key)).privateKey;\n const { x, y, crv, kty } = await (0, export_js_1.exportJWK)(ephemeralKey);\n const sharedSecret = await ECDH.deriveKey(key, ephemeralKey, alg === 'ECDH-ES' ? enc : alg, alg === 'ECDH-ES' ? (0, cek_js_1.bitLength)(enc) : parseInt(alg.slice(-5, -2), 10), apu, apv);\n parameters = { epk: { x, crv, kty } };\n if (kty === 'EC')\n parameters.epk.y = y;\n if (apu)\n parameters.apu = (0, base64url_js_1.encode)(apu);\n if (apv)\n parameters.apv = (0, base64url_js_1.encode)(apv);\n if (alg === 'ECDH-ES') {\n cek = sharedSecret;\n break;\n }\n cek = providedCek || (0, cek_js_1.default)(enc);\n const kwAlg = alg.slice(-6);\n encryptedKey = await (0, aeskw_js_1.wrap)(kwAlg, sharedSecret, cek);\n break;\n }\n case 'RSA1_5':\n case 'RSA-OAEP':\n case 'RSA-OAEP-256':\n case 'RSA-OAEP-384':\n case 'RSA-OAEP-512': {\n cek = providedCek || (0, cek_js_1.default)(enc);\n encryptedKey = await (0, rsaes_js_1.encrypt)(alg, key, cek);\n break;\n }\n case 'PBES2-HS256+A128KW':\n case 'PBES2-HS384+A192KW':\n case 'PBES2-HS512+A256KW': {\n cek = providedCek || (0, cek_js_1.default)(enc);\n const { p2c, p2s } = providedParameters;\n ({ encryptedKey, ...parameters } = await (0, pbes2kw_js_1.encrypt)(alg, key, cek, p2c, p2s));\n break;\n }\n case 'A128KW':\n case 'A192KW':\n case 'A256KW': {\n cek = providedCek || (0, cek_js_1.default)(enc);\n encryptedKey = await (0, aeskw_js_1.wrap)(alg, key, cek);\n break;\n }\n case 'A128GCMKW':\n case 'A192GCMKW':\n case 'A256GCMKW': {\n cek = providedCek || (0, cek_js_1.default)(enc);\n const { iv } = providedParameters;\n ({ encryptedKey, ...parameters } = await (0, aesgcmkw_js_1.wrap)(alg, key, cek, iv));\n break;\n }\n default: {\n throw new errors_js_1.JOSENotSupported('Invalid or unsupported \"alg\" (JWE Algorithm) header value');\n }\n }\n return { cek, encryptedKey, parameters };\n}\nexports.default = encryptKeyManagement;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.FlattenedEncrypt = void 0;\nconst base64url_js_1 = require(\"../../runtime/base64url.js\");\nconst private_symbols_js_1 = require(\"../../lib/private_symbols.js\");\nconst encrypt_js_1 = require(\"../../runtime/encrypt.js\");\nconst encrypt_key_management_js_1 = require(\"../../lib/encrypt_key_management.js\");\nconst errors_js_1 = require(\"../../util/errors.js\");\nconst is_disjoint_js_1 = require(\"../../lib/is_disjoint.js\");\nconst buffer_utils_js_1 = require(\"../../lib/buffer_utils.js\");\nconst validate_crit_js_1 = require(\"../../lib/validate_crit.js\");\nclass FlattenedEncrypt {\n _plaintext;\n _protectedHeader;\n _sharedUnprotectedHeader;\n _unprotectedHeader;\n _aad;\n _cek;\n _iv;\n _keyManagementParameters;\n constructor(plaintext) {\n if (!(plaintext instanceof Uint8Array)) {\n throw new TypeError('plaintext must be an instance of Uint8Array');\n }\n this._plaintext = plaintext;\n }\n setKeyManagementParameters(parameters) {\n if (this._keyManagementParameters) {\n throw new TypeError('setKeyManagementParameters can only be called once');\n }\n this._keyManagementParameters = parameters;\n return this;\n }\n setProtectedHeader(protectedHeader) {\n if (this._protectedHeader) {\n throw new TypeError('setProtectedHeader can only be called once');\n }\n this._protectedHeader = protectedHeader;\n return this;\n }\n setSharedUnprotectedHeader(sharedUnprotectedHeader) {\n if (this._sharedUnprotectedHeader) {\n throw new TypeError('setSharedUnprotectedHeader can only be called once');\n }\n this._sharedUnprotectedHeader = sharedUnprotectedHeader;\n return this;\n }\n setUnprotectedHeader(unprotectedHeader) {\n if (this._unprotectedHeader) {\n throw new TypeError('setUnprotectedHeader can only be called once');\n }\n this._unprotectedHeader = unprotectedHeader;\n return this;\n }\n setAdditionalAuthenticatedData(aad) {\n this._aad = aad;\n return this;\n }\n setContentEncryptionKey(cek) {\n if (this._cek) {\n throw new TypeError('setContentEncryptionKey can only be called once');\n }\n this._cek = cek;\n return this;\n }\n setInitializationVector(iv) {\n if (this._iv) {\n throw new TypeError('setInitializationVector can only be called once');\n }\n this._iv = iv;\n return this;\n }\n async encrypt(key, options) {\n if (!this._protectedHeader && !this._unprotectedHeader && !this._sharedUnprotectedHeader) {\n throw new errors_js_1.JWEInvalid('either setProtectedHeader, setUnprotectedHeader, or sharedUnprotectedHeader must be called before #encrypt()');\n }\n if (!(0, is_disjoint_js_1.default)(this._protectedHeader, this._unprotectedHeader, this._sharedUnprotectedHeader)) {\n throw new errors_js_1.JWEInvalid('JWE Protected, JWE Shared Unprotected and JWE Per-Recipient Header Parameter names must be disjoint');\n }\n const joseHeader = {\n ...this._protectedHeader,\n ...this._unprotectedHeader,\n ...this._sharedUnprotectedHeader,\n };\n (0, validate_crit_js_1.default)(errors_js_1.JWEInvalid, new Map(), options?.crit, this._protectedHeader, joseHeader);\n if (joseHeader.zip !== undefined) {\n throw new errors_js_1.JOSENotSupported('JWE \"zip\" (Compression Algorithm) Header Parameter is not supported.');\n }\n const { alg, enc } = joseHeader;\n if (typeof alg !== 'string' || !alg) {\n throw new errors_js_1.JWEInvalid('JWE \"alg\" (Algorithm) Header Parameter missing or invalid');\n }\n if (typeof enc !== 'string' || !enc) {\n throw new errors_js_1.JWEInvalid('JWE \"enc\" (Encryption Algorithm) Header Parameter missing or invalid');\n }\n let encryptedKey;\n if (this._cek && (alg === 'dir' || alg === 'ECDH-ES')) {\n throw new TypeError(`setContentEncryptionKey cannot be called with JWE \"alg\" (Algorithm) Header ${alg}`);\n }\n let cek;\n {\n let parameters;\n ({ cek, encryptedKey, parameters } = await (0, encrypt_key_management_js_1.default)(alg, enc, key, this._cek, this._keyManagementParameters));\n if (parameters) {\n if (options && private_symbols_js_1.unprotected in options) {\n if (!this._unprotectedHeader) {\n this.setUnprotectedHeader(parameters);\n }\n else {\n this._unprotectedHeader = { ...this._unprotectedHeader, ...parameters };\n }\n }\n else if (!this._protectedHeader) {\n this.setProtectedHeader(parameters);\n }\n else {\n this._protectedHeader = { ...this._protectedHeader, ...parameters };\n }\n }\n }\n let additionalData;\n let protectedHeader;\n let aadMember;\n if (this._protectedHeader) {\n protectedHeader = buffer_utils_js_1.encoder.encode((0, base64url_js_1.encode)(JSON.stringify(this._protectedHeader)));\n }\n else {\n protectedHeader = buffer_utils_js_1.encoder.encode('');\n }\n if (this._aad) {\n aadMember = (0, base64url_js_1.encode)(this._aad);\n additionalData = (0, buffer_utils_js_1.concat)(protectedHeader, buffer_utils_js_1.encoder.encode('.'), buffer_utils_js_1.encoder.encode(aadMember));\n }\n else {\n additionalData = protectedHeader;\n }\n const { ciphertext, tag, iv } = await (0, encrypt_js_1.default)(enc, this._plaintext, cek, this._iv, additionalData);\n const jwe = {\n ciphertext: (0, base64url_js_1.encode)(ciphertext),\n };\n if (iv) {\n jwe.iv = (0, base64url_js_1.encode)(iv);\n }\n if (tag) {\n jwe.tag = (0, base64url_js_1.encode)(tag);\n }\n if (encryptedKey) {\n jwe.encrypted_key = (0, base64url_js_1.encode)(encryptedKey);\n }\n if (aadMember) {\n jwe.aad = aadMember;\n }\n if (this._protectedHeader) {\n jwe.protected = buffer_utils_js_1.decoder.decode(protectedHeader);\n }\n if (this._sharedUnprotectedHeader) {\n jwe.unprotected = this._sharedUnprotectedHeader;\n }\n if (this._unprotectedHeader) {\n jwe.header = this._unprotectedHeader;\n }\n return jwe;\n }\n}\nexports.FlattenedEncrypt = FlattenedEncrypt;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.GeneralEncrypt = void 0;\nconst encrypt_js_1 = require(\"../flattened/encrypt.js\");\nconst private_symbols_js_1 = require(\"../../lib/private_symbols.js\");\nconst errors_js_1 = require(\"../../util/errors.js\");\nconst cek_js_1 = require(\"../../lib/cek.js\");\nconst is_disjoint_js_1 = require(\"../../lib/is_disjoint.js\");\nconst encrypt_key_management_js_1 = require(\"../../lib/encrypt_key_management.js\");\nconst base64url_js_1 = require(\"../../runtime/base64url.js\");\nconst validate_crit_js_1 = require(\"../../lib/validate_crit.js\");\nclass IndividualRecipient {\n parent;\n unprotectedHeader;\n key;\n options;\n constructor(enc, key, options) {\n this.parent = enc;\n this.key = key;\n this.options = options;\n }\n setUnprotectedHeader(unprotectedHeader) {\n if (this.unprotectedHeader) {\n throw new TypeError('setUnprotectedHeader can only be called once');\n }\n this.unprotectedHeader = unprotectedHeader;\n return this;\n }\n addRecipient(...args) {\n return this.parent.addRecipient(...args);\n }\n encrypt(...args) {\n return this.parent.encrypt(...args);\n }\n done() {\n return this.parent;\n }\n}\nclass GeneralEncrypt {\n _plaintext;\n _recipients = [];\n _protectedHeader;\n _unprotectedHeader;\n _aad;\n constructor(plaintext) {\n this._plaintext = plaintext;\n }\n addRecipient(key, options) {\n const recipient = new IndividualRecipient(this, key, { crit: options?.crit });\n this._recipients.push(recipient);\n return recipient;\n }\n setProtectedHeader(protectedHeader) {\n if (this._protectedHeader) {\n throw new TypeError('setProtectedHeader can only be called once');\n }\n this._protectedHeader = protectedHeader;\n return this;\n }\n setSharedUnprotectedHeader(sharedUnprotectedHeader) {\n if (this._unprotectedHeader) {\n throw new TypeError('setSharedUnprotectedHeader can only be called once');\n }\n this._unprotectedHeader = sharedUnprotectedHeader;\n return this;\n }\n setAdditionalAuthenticatedData(aad) {\n this._aad = aad;\n return this;\n }\n async encrypt() {\n if (!this._recipients.length) {\n throw new errors_js_1.JWEInvalid('at least one recipient must be added');\n }\n if (this._recipients.length === 1) {\n const [recipient] = this._recipients;\n const flattened = await new encrypt_js_1.FlattenedEncrypt(this._plaintext)\n .setAdditionalAuthenticatedData(this._aad)\n .setProtectedHeader(this._protectedHeader)\n .setSharedUnprotectedHeader(this._unprotectedHeader)\n .setUnprotectedHeader(recipient.unprotectedHeader)\n .encrypt(recipient.key, { ...recipient.options });\n const jwe = {\n ciphertext: flattened.ciphertext,\n iv: flattened.iv,\n recipients: [{}],\n tag: flattened.tag,\n };\n if (flattened.aad)\n jwe.aad = flattened.aad;\n if (flattened.protected)\n jwe.protected = flattened.protected;\n if (flattened.unprotected)\n jwe.unprotected = flattened.unprotected;\n if (flattened.encrypted_key)\n jwe.recipients[0].encrypted_key = flattened.encrypted_key;\n if (flattened.header)\n jwe.recipients[0].header = flattened.header;\n return jwe;\n }\n let enc;\n for (let i = 0; i < this._recipients.length; i++) {\n const recipient = this._recipients[i];\n if (!(0, is_disjoint_js_1.default)(this._protectedHeader, this._unprotectedHeader, recipient.unprotectedHeader)) {\n throw new errors_js_1.JWEInvalid('JWE Protected, JWE Shared Unprotected and JWE Per-Recipient Header Parameter names must be disjoint');\n }\n const joseHeader = {\n ...this._protectedHeader,\n ...this._unprotectedHeader,\n ...recipient.unprotectedHeader,\n };\n const { alg } = joseHeader;\n if (typeof alg !== 'string' || !alg) {\n throw new errors_js_1.JWEInvalid('JWE \"alg\" (Algorithm) Header Parameter missing or invalid');\n }\n if (alg === 'dir' || alg === 'ECDH-ES') {\n throw new errors_js_1.JWEInvalid('\"dir\" and \"ECDH-ES\" alg may only be used with a single recipient');\n }\n if (typeof joseHeader.enc !== 'string' || !joseHeader.enc) {\n throw new errors_js_1.JWEInvalid('JWE \"enc\" (Encryption Algorithm) Header Parameter missing or invalid');\n }\n if (!enc) {\n enc = joseHeader.enc;\n }\n else if (enc !== joseHeader.enc) {\n throw new errors_js_1.JWEInvalid('JWE \"enc\" (Encryption Algorithm) Header Parameter must be the same for all recipients');\n }\n (0, validate_crit_js_1.default)(errors_js_1.JWEInvalid, new Map(), recipient.options.crit, this._protectedHeader, joseHeader);\n if (joseHeader.zip !== undefined) {\n throw new errors_js_1.JOSENotSupported('JWE \"zip\" (Compression Algorithm) Header Parameter is not supported.');\n }\n }\n const cek = (0, cek_js_1.default)(enc);\n const jwe = {\n ciphertext: '',\n iv: '',\n recipients: [],\n tag: '',\n };\n for (let i = 0; i < this._recipients.length; i++) {\n const recipient = this._recipients[i];\n const target = {};\n jwe.recipients.push(target);\n const joseHeader = {\n ...this._protectedHeader,\n ...this._unprotectedHeader,\n ...recipient.unprotectedHeader,\n };\n const p2c = joseHeader.alg.startsWith('PBES2') ? 2048 + i : undefined;\n if (i === 0) {\n const flattened = await new encrypt_js_1.FlattenedEncrypt(this._plaintext)\n .setAdditionalAuthenticatedData(this._aad)\n .setContentEncryptionKey(cek)\n .setProtectedHeader(this._protectedHeader)\n .setSharedUnprotectedHeader(this._unprotectedHeader)\n .setUnprotectedHeader(recipient.unprotectedHeader)\n .setKeyManagementParameters({ p2c })\n .encrypt(recipient.key, {\n ...recipient.options,\n [private_symbols_js_1.unprotected]: true,\n });\n jwe.ciphertext = flattened.ciphertext;\n jwe.iv = flattened.iv;\n jwe.tag = flattened.tag;\n if (flattened.aad)\n jwe.aad = flattened.aad;\n if (flattened.protected)\n jwe.protected = flattened.protected;\n if (flattened.unprotected)\n jwe.unprotected = flattened.unprotected;\n target.encrypted_key = flattened.encrypted_key;\n if (flattened.header)\n target.header = flattened.header;\n continue;\n }\n const { encryptedKey, parameters } = await (0, encrypt_key_management_js_1.default)(recipient.unprotectedHeader?.alg ||\n this._protectedHeader?.alg ||\n this._unprotectedHeader?.alg, enc, recipient.key, cek, { p2c });\n target.encrypted_key = (0, base64url_js_1.encode)(encryptedKey);\n if (recipient.unprotectedHeader || parameters)\n target.header = { ...recipient.unprotectedHeader, ...parameters };\n }\n return jwe;\n }\n}\nexports.GeneralEncrypt = GeneralEncrypt;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.default = dsaDigest;\nconst errors_js_1 = require(\"../util/errors.js\");\nfunction dsaDigest(alg) {\n switch (alg) {\n case 'PS256':\n case 'RS256':\n case 'ES256':\n case 'ES256K':\n return 'sha256';\n case 'PS384':\n case 'RS384':\n case 'ES384':\n return 'sha384';\n case 'PS512':\n case 'RS512':\n case 'ES512':\n return 'sha512';\n case 'Ed25519':\n case 'EdDSA':\n return undefined;\n default:\n throw new errors_js_1.JOSENotSupported(`alg ${alg} is not supported either by JOSE or your javascript runtime`);\n }\n}\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.default = keyForCrypto;\nconst node_crypto_1 = require(\"node:crypto\");\nconst get_named_curve_js_1 = require(\"./get_named_curve.js\");\nconst errors_js_1 = require(\"../util/errors.js\");\nconst check_key_length_js_1 = require(\"./check_key_length.js\");\nconst ecCurveAlgMap = new Map([\n ['ES256', 'P-256'],\n ['ES256K', 'secp256k1'],\n ['ES384', 'P-384'],\n ['ES512', 'P-521'],\n]);\nfunction keyForCrypto(alg, key) {\n let asymmetricKeyType;\n let asymmetricKeyDetails;\n let isJWK;\n if (key instanceof node_crypto_1.KeyObject) {\n asymmetricKeyType = key.asymmetricKeyType;\n asymmetricKeyDetails = key.asymmetricKeyDetails;\n }\n else {\n isJWK = true;\n switch (key.kty) {\n case 'RSA':\n asymmetricKeyType = 'rsa';\n break;\n case 'EC':\n asymmetricKeyType = 'ec';\n break;\n case 'OKP': {\n if (key.crv === 'Ed25519') {\n asymmetricKeyType = 'ed25519';\n break;\n }\n if (key.crv === 'Ed448') {\n asymmetricKeyType = 'ed448';\n break;\n }\n throw new TypeError('Invalid key for this operation, its crv must be Ed25519 or Ed448');\n }\n default:\n throw new TypeError('Invalid key for this operation, its kty must be RSA, OKP, or EC');\n }\n }\n let options;\n switch (alg) {\n case 'Ed25519':\n if (asymmetricKeyType !== 'ed25519') {\n throw new TypeError(`Invalid key for this operation, its asymmetricKeyType must be ed25519`);\n }\n break;\n case 'EdDSA':\n if (!['ed25519', 'ed448'].includes(asymmetricKeyType)) {\n throw new TypeError('Invalid key for this operation, its asymmetricKeyType must be ed25519 or ed448');\n }\n break;\n case 'RS256':\n case 'RS384':\n case 'RS512':\n if (asymmetricKeyType !== 'rsa') {\n throw new TypeError('Invalid key for this operation, its asymmetricKeyType must be rsa');\n }\n (0, check_key_length_js_1.default)(key, alg);\n break;\n case 'PS256':\n case 'PS384':\n case 'PS512':\n if (asymmetricKeyType === 'rsa-pss') {\n const { hashAlgorithm, mgf1HashAlgorithm, saltLength } = asymmetricKeyDetails;\n const length = parseInt(alg.slice(-3), 10);\n if (hashAlgorithm !== undefined &&\n (hashAlgorithm !== `sha${length}` || mgf1HashAlgorithm !== hashAlgorithm)) {\n throw new TypeError(`Invalid key for this operation, its RSA-PSS parameters do not meet the requirements of \"alg\" ${alg}`);\n }\n if (saltLength !== undefined && saltLength > length >> 3) {\n throw new TypeError(`Invalid key for this operation, its RSA-PSS parameter saltLength does not meet the requirements of \"alg\" ${alg}`);\n }\n }\n else if (asymmetricKeyType !== 'rsa') {\n throw new TypeError('Invalid key for this operation, its asymmetricKeyType must be rsa or rsa-pss');\n }\n (0, check_key_length_js_1.default)(key, alg);\n options = {\n padding: node_crypto_1.constants.RSA_PKCS1_PSS_PADDING,\n saltLength: node_crypto_1.constants.RSA_PSS_SALTLEN_DIGEST,\n };\n break;\n case 'ES256':\n case 'ES256K':\n case 'ES384':\n case 'ES512': {\n if (asymmetricKeyType !== 'ec') {\n throw new TypeError('Invalid key for this operation, its asymmetricKeyType must be ec');\n }\n const actual = (0, get_named_curve_js_1.default)(key);\n const expected = ecCurveAlgMap.get(alg);\n if (actual !== expected) {\n throw new TypeError(`Invalid key curve for the algorithm, its curve must be ${expected}, got ${actual}`);\n }\n options = { dsaEncoding: 'ieee-p1363' };\n break;\n }\n default:\n throw new errors_js_1.JOSENotSupported(`alg ${alg} is not supported either by JOSE or your javascript runtime`);\n }\n if (isJWK) {\n return { format: 'jwk', key, ...options };\n }\n return options ? { ...options, key } : key;\n}\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.default = hmacDigest;\nconst errors_js_1 = require(\"../util/errors.js\");\nfunction hmacDigest(alg) {\n switch (alg) {\n case 'HS256':\n return 'sha256';\n case 'HS384':\n return 'sha384';\n case 'HS512':\n return 'sha512';\n default:\n throw new errors_js_1.JOSENotSupported(`alg ${alg} is not supported either by JOSE or your javascript runtime`);\n }\n}\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.default = getSignVerifyKey;\nconst node_crypto_1 = require(\"node:crypto\");\nconst webcrypto_js_1 = require(\"./webcrypto.js\");\nconst crypto_key_js_1 = require(\"../lib/crypto_key.js\");\nconst invalid_key_input_js_1 = require(\"../lib/invalid_key_input.js\");\nconst is_key_like_js_1 = require(\"./is_key_like.js\");\nconst jwk = require(\"../lib/is_jwk.js\");\nfunction getSignVerifyKey(alg, key, usage) {\n if (key instanceof Uint8Array) {\n if (!alg.startsWith('HS')) {\n throw new TypeError((0, invalid_key_input_js_1.default)(key, ...is_key_like_js_1.types));\n }\n return (0, node_crypto_1.createSecretKey)(key);\n }\n if (key instanceof node_crypto_1.KeyObject) {\n return key;\n }\n if ((0, webcrypto_js_1.isCryptoKey)(key)) {\n (0, crypto_key_js_1.checkSigCryptoKey)(key, alg, usage);\n return node_crypto_1.KeyObject.from(key);\n }\n if (jwk.isJWK(key)) {\n if (alg.startsWith('HS')) {\n return (0, node_crypto_1.createSecretKey)(Buffer.from(key.k, 'base64url'));\n }\n return key;\n }\n throw new TypeError((0, invalid_key_input_js_1.default)(key, ...is_key_like_js_1.types, 'Uint8Array', 'JSON Web Key'));\n}\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst crypto = require(\"node:crypto\");\nconst node_util_1 = require(\"node:util\");\nconst dsa_digest_js_1 = require(\"./dsa_digest.js\");\nconst hmac_digest_js_1 = require(\"./hmac_digest.js\");\nconst node_key_js_1 = require(\"./node_key.js\");\nconst get_sign_verify_key_js_1 = require(\"./get_sign_verify_key.js\");\nconst oneShotSign = (0, node_util_1.promisify)(crypto.sign);\nconst sign = async (alg, key, data) => {\n const k = (0, get_sign_verify_key_js_1.default)(alg, key, 'sign');\n if (alg.startsWith('HS')) {\n const hmac = crypto.createHmac((0, hmac_digest_js_1.default)(alg), k);\n hmac.update(data);\n return hmac.digest();\n }\n return oneShotSign((0, dsa_digest_js_1.default)(alg), data, (0, node_key_js_1.default)(alg, k));\n};\nexports.default = sign;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst crypto = require(\"node:crypto\");\nconst node_util_1 = require(\"node:util\");\nconst dsa_digest_js_1 = require(\"./dsa_digest.js\");\nconst node_key_js_1 = require(\"./node_key.js\");\nconst sign_js_1 = require(\"./sign.js\");\nconst get_sign_verify_key_js_1 = require(\"./get_sign_verify_key.js\");\nconst oneShotVerify = (0, node_util_1.promisify)(crypto.verify);\nconst verify = async (alg, key, signature, data) => {\n const k = (0, get_sign_verify_key_js_1.default)(alg, key, 'verify');\n if (alg.startsWith('HS')) {\n const expected = await (0, sign_js_1.default)(alg, k, data);\n const actual = signature;\n try {\n return crypto.timingSafeEqual(actual, expected);\n }\n catch {\n return false;\n }\n }\n const algorithm = (0, dsa_digest_js_1.default)(alg);\n const keyInput = (0, node_key_js_1.default)(alg, k);\n try {\n return await oneShotVerify(algorithm, data, keyInput, signature);\n }\n catch {\n return false;\n }\n};\nexports.default = verify;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.flattenedVerify = flattenedVerify;\nconst base64url_js_1 = require(\"../../runtime/base64url.js\");\nconst verify_js_1 = require(\"../../runtime/verify.js\");\nconst errors_js_1 = require(\"../../util/errors.js\");\nconst buffer_utils_js_1 = require(\"../../lib/buffer_utils.js\");\nconst is_disjoint_js_1 = require(\"../../lib/is_disjoint.js\");\nconst is_object_js_1 = require(\"../../lib/is_object.js\");\nconst check_key_type_js_1 = require(\"../../lib/check_key_type.js\");\nconst validate_crit_js_1 = require(\"../../lib/validate_crit.js\");\nconst validate_algorithms_js_1 = require(\"../../lib/validate_algorithms.js\");\nconst is_jwk_js_1 = require(\"../../lib/is_jwk.js\");\nconst import_js_1 = require(\"../../key/import.js\");\nasync function flattenedVerify(jws, key, options) {\n if (!(0, is_object_js_1.default)(jws)) {\n throw new errors_js_1.JWSInvalid('Flattened JWS must be an object');\n }\n if (jws.protected === undefined && jws.header === undefined) {\n throw new errors_js_1.JWSInvalid('Flattened JWS must have either of the \"protected\" or \"header\" members');\n }\n if (jws.protected !== undefined && typeof jws.protected !== 'string') {\n throw new errors_js_1.JWSInvalid('JWS Protected Header incorrect type');\n }\n if (jws.payload === undefined) {\n throw new errors_js_1.JWSInvalid('JWS Payload missing');\n }\n if (typeof jws.signature !== 'string') {\n throw new errors_js_1.JWSInvalid('JWS Signature missing or incorrect type');\n }\n if (jws.header !== undefined && !(0, is_object_js_1.default)(jws.header)) {\n throw new errors_js_1.JWSInvalid('JWS Unprotected Header incorrect type');\n }\n let parsedProt = {};\n if (jws.protected) {\n try {\n const protectedHeader = (0, base64url_js_1.decode)(jws.protected);\n parsedProt = JSON.parse(buffer_utils_js_1.decoder.decode(protectedHeader));\n }\n catch {\n throw new errors_js_1.JWSInvalid('JWS Protected Header is invalid');\n }\n }\n if (!(0, is_disjoint_js_1.default)(parsedProt, jws.header)) {\n throw new errors_js_1.JWSInvalid('JWS Protected and JWS Unprotected Header Parameter names must be disjoint');\n }\n const joseHeader = {\n ...parsedProt,\n ...jws.header,\n };\n const extensions = (0, validate_crit_js_1.default)(errors_js_1.JWSInvalid, new Map([['b64', true]]), options?.crit, parsedProt, joseHeader);\n let b64 = true;\n if (extensions.has('b64')) {\n b64 = parsedProt.b64;\n if (typeof b64 !== 'boolean') {\n throw new errors_js_1.JWSInvalid('The \"b64\" (base64url-encode payload) Header Parameter must be a boolean');\n }\n }\n const { alg } = joseHeader;\n if (typeof alg !== 'string' || !alg) {\n throw new errors_js_1.JWSInvalid('JWS \"alg\" (Algorithm) Header Parameter missing or invalid');\n }\n const algorithms = options && (0, validate_algorithms_js_1.default)('algorithms', options.algorithms);\n if (algorithms && !algorithms.has(alg)) {\n throw new errors_js_1.JOSEAlgNotAllowed('\"alg\" (Algorithm) Header Parameter value not allowed');\n }\n if (b64) {\n if (typeof jws.payload !== 'string') {\n throw new errors_js_1.JWSInvalid('JWS Payload must be a string');\n }\n }\n else if (typeof jws.payload !== 'string' && !(jws.payload instanceof Uint8Array)) {\n throw new errors_js_1.JWSInvalid('JWS Payload must be a string or an Uint8Array instance');\n }\n let resolvedKey = false;\n if (typeof key === 'function') {\n key = await key(parsedProt, jws);\n resolvedKey = true;\n (0, check_key_type_js_1.checkKeyTypeWithJwk)(alg, key, 'verify');\n if ((0, is_jwk_js_1.isJWK)(key)) {\n key = await (0, import_js_1.importJWK)(key, alg);\n }\n }\n else {\n (0, check_key_type_js_1.checkKeyTypeWithJwk)(alg, key, 'verify');\n }\n const data = (0, buffer_utils_js_1.concat)(buffer_utils_js_1.encoder.encode(jws.protected ?? ''), buffer_utils_js_1.encoder.encode('.'), typeof jws.payload === 'string' ? buffer_utils_js_1.encoder.encode(jws.payload) : jws.payload);\n let signature;\n try {\n signature = (0, base64url_js_1.decode)(jws.signature);\n }\n catch {\n throw new errors_js_1.JWSInvalid('Failed to base64url decode the signature');\n }\n const verified = await (0, verify_js_1.default)(alg, key, signature, data);\n if (!verified) {\n throw new errors_js_1.JWSSignatureVerificationFailed();\n }\n let payload;\n if (b64) {\n try {\n payload = (0, base64url_js_1.decode)(jws.payload);\n }\n catch {\n throw new errors_js_1.JWSInvalid('Failed to base64url decode the payload');\n }\n }\n else if (typeof jws.payload === 'string') {\n payload = buffer_utils_js_1.encoder.encode(jws.payload);\n }\n else {\n payload = jws.payload;\n }\n const result = { payload };\n if (jws.protected !== undefined) {\n result.protectedHeader = parsedProt;\n }\n if (jws.header !== undefined) {\n result.unprotectedHeader = jws.header;\n }\n if (resolvedKey) {\n return { ...result, key };\n }\n return result;\n}\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.compactVerify = compactVerify;\nconst verify_js_1 = require(\"../flattened/verify.js\");\nconst errors_js_1 = require(\"../../util/errors.js\");\nconst buffer_utils_js_1 = require(\"../../lib/buffer_utils.js\");\nasync function compactVerify(jws, key, options) {\n if (jws instanceof Uint8Array) {\n jws = buffer_utils_js_1.decoder.decode(jws);\n }\n if (typeof jws !== 'string') {\n throw new errors_js_1.JWSInvalid('Compact JWS must be a string or Uint8Array');\n }\n const { 0: protectedHeader, 1: payload, 2: signature, length } = jws.split('.');\n if (length !== 3) {\n throw new errors_js_1.JWSInvalid('Invalid Compact JWS');\n }\n const verified = await (0, verify_js_1.flattenedVerify)({ payload, protected: protectedHeader, signature }, key, options);\n const result = { payload: verified.payload, protectedHeader: verified.protectedHeader };\n if (typeof key === 'function') {\n return { ...result, key: verified.key };\n }\n return result;\n}\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.generalVerify = generalVerify;\nconst verify_js_1 = require(\"../flattened/verify.js\");\nconst errors_js_1 = require(\"../../util/errors.js\");\nconst is_object_js_1 = require(\"../../lib/is_object.js\");\nasync function generalVerify(jws, key, options) {\n if (!(0, is_object_js_1.default)(jws)) {\n throw new errors_js_1.JWSInvalid('General JWS must be an object');\n }\n if (!Array.isArray(jws.signatures) || !jws.signatures.every(is_object_js_1.default)) {\n throw new errors_js_1.JWSInvalid('JWS Signatures missing or incorrect type');\n }\n for (const signature of jws.signatures) {\n try {\n return await (0, verify_js_1.flattenedVerify)({\n header: signature.header,\n payload: jws.payload,\n protected: signature.protected,\n signature: signature.signature,\n }, key, options);\n }\n catch {\n }\n }\n throw new errors_js_1.JWSSignatureVerificationFailed();\n}\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.default = (date) => Math.floor(date.getTime() / 1000);\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst minute = 60;\nconst hour = minute * 60;\nconst day = hour * 24;\nconst week = day * 7;\nconst year = day * 365.25;\nconst REGEX = /^(\\+|\\-)? ?(\\d+|\\d+\\.\\d+) ?(seconds?|secs?|s|minutes?|mins?|m|hours?|hrs?|h|days?|d|weeks?|w|years?|yrs?|y)(?: (ago|from now))?$/i;\nexports.default = (str) => {\n const matched = REGEX.exec(str);\n if (!matched || (matched[4] && matched[1])) {\n throw new TypeError('Invalid time period format');\n }\n const value = parseFloat(matched[2]);\n const unit = matched[3].toLowerCase();\n let numericDate;\n switch (unit) {\n case 'sec':\n case 'secs':\n case 'second':\n case 'seconds':\n case 's':\n numericDate = Math.round(value);\n break;\n case 'minute':\n case 'minutes':\n case 'min':\n case 'mins':\n case 'm':\n numericDate = Math.round(value * minute);\n break;\n case 'hour':\n case 'hours':\n case 'hr':\n case 'hrs':\n case 'h':\n numericDate = Math.round(value * hour);\n break;\n case 'day':\n case 'days':\n case 'd':\n numericDate = Math.round(value * day);\n break;\n case 'week':\n case 'weeks':\n case 'w':\n numericDate = Math.round(value * week);\n break;\n default:\n numericDate = Math.round(value * year);\n break;\n }\n if (matched[1] === '-' || matched[4] === 'ago') {\n return -numericDate;\n }\n return numericDate;\n};\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst errors_js_1 = require(\"../util/errors.js\");\nconst buffer_utils_js_1 = require(\"./buffer_utils.js\");\nconst epoch_js_1 = require(\"./epoch.js\");\nconst secs_js_1 = require(\"./secs.js\");\nconst is_object_js_1 = require(\"./is_object.js\");\nconst normalizeTyp = (value) => value.toLowerCase().replace(/^application\\//, '');\nconst checkAudiencePresence = (audPayload, audOption) => {\n if (typeof audPayload === 'string') {\n return audOption.includes(audPayload);\n }\n if (Array.isArray(audPayload)) {\n return audOption.some(Set.prototype.has.bind(new Set(audPayload)));\n }\n return false;\n};\nexports.default = (protectedHeader, encodedPayload, options = {}) => {\n let payload;\n try {\n payload = JSON.parse(buffer_utils_js_1.decoder.decode(encodedPayload));\n }\n catch {\n }\n if (!(0, is_object_js_1.default)(payload)) {\n throw new errors_js_1.JWTInvalid('JWT Claims Set must be a top-level JSON object');\n }\n const { typ } = options;\n if (typ &&\n (typeof protectedHeader.typ !== 'string' ||\n normalizeTyp(protectedHeader.typ) !== normalizeTyp(typ))) {\n throw new errors_js_1.JWTClaimValidationFailed('unexpected \"typ\" JWT header value', payload, 'typ', 'check_failed');\n }\n const { requiredClaims = [], issuer, subject, audience, maxTokenAge } = options;\n const presenceCheck = [...requiredClaims];\n if (maxTokenAge !== undefined)\n presenceCheck.push('iat');\n if (audience !== undefined)\n presenceCheck.push('aud');\n if (subject !== undefined)\n presenceCheck.push('sub');\n if (issuer !== undefined)\n presenceCheck.push('iss');\n for (const claim of new Set(presenceCheck.reverse())) {\n if (!(claim in payload)) {\n throw new errors_js_1.JWTClaimValidationFailed(`missing required \"${claim}\" claim`, payload, claim, 'missing');\n }\n }\n if (issuer &&\n !(Array.isArray(issuer) ? issuer : [issuer]).includes(payload.iss)) {\n throw new errors_js_1.JWTClaimValidationFailed('unexpected \"iss\" claim value', payload, 'iss', 'check_failed');\n }\n if (subject && payload.sub !== subject) {\n throw new errors_js_1.JWTClaimValidationFailed('unexpected \"sub\" claim value', payload, 'sub', 'check_failed');\n }\n if (audience &&\n !checkAudiencePresence(payload.aud, typeof audience === 'string' ? [audience] : audience)) {\n throw new errors_js_1.JWTClaimValidationFailed('unexpected \"aud\" claim value', payload, 'aud', 'check_failed');\n }\n let tolerance;\n switch (typeof options.clockTolerance) {\n case 'string':\n tolerance = (0, secs_js_1.default)(options.clockTolerance);\n break;\n case 'number':\n tolerance = options.clockTolerance;\n break;\n case 'undefined':\n tolerance = 0;\n break;\n default:\n throw new TypeError('Invalid clockTolerance option type');\n }\n const { currentDate } = options;\n const now = (0, epoch_js_1.default)(currentDate || new Date());\n if ((payload.iat !== undefined || maxTokenAge) && typeof payload.iat !== 'number') {\n throw new errors_js_1.JWTClaimValidationFailed('\"iat\" claim must be a number', payload, 'iat', 'invalid');\n }\n if (payload.nbf !== undefined) {\n if (typeof payload.nbf !== 'number') {\n throw new errors_js_1.JWTClaimValidationFailed('\"nbf\" claim must be a number', payload, 'nbf', 'invalid');\n }\n if (payload.nbf > now + tolerance) {\n throw new errors_js_1.JWTClaimValidationFailed('\"nbf\" claim timestamp check failed', payload, 'nbf', 'check_failed');\n }\n }\n if (payload.exp !== undefined) {\n if (typeof payload.exp !== 'number') {\n throw new errors_js_1.JWTClaimValidationFailed('\"exp\" claim must be a number', payload, 'exp', 'invalid');\n }\n if (payload.exp <= now - tolerance) {\n throw new errors_js_1.JWTExpired('\"exp\" claim timestamp check failed', payload, 'exp', 'check_failed');\n }\n }\n if (maxTokenAge) {\n const age = now - payload.iat;\n const max = typeof maxTokenAge === 'number' ? maxTokenAge : (0, secs_js_1.default)(maxTokenAge);\n if (age - tolerance > max) {\n throw new errors_js_1.JWTExpired('\"iat\" claim timestamp check failed (too far in the past)', payload, 'iat', 'check_failed');\n }\n if (age < 0 - tolerance) {\n throw new errors_js_1.JWTClaimValidationFailed('\"iat\" claim timestamp check failed (it should be in the past)', payload, 'iat', 'check_failed');\n }\n }\n return payload;\n};\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.jwtVerify = jwtVerify;\nconst verify_js_1 = require(\"../jws/compact/verify.js\");\nconst jwt_claims_set_js_1 = require(\"../lib/jwt_claims_set.js\");\nconst errors_js_1 = require(\"../util/errors.js\");\nasync function jwtVerify(jwt, key, options) {\n const verified = await (0, verify_js_1.compactVerify)(jwt, key, options);\n if (verified.protectedHeader.crit?.includes('b64') && verified.protectedHeader.b64 === false) {\n throw new errors_js_1.JWTInvalid('JWTs MUST NOT use unencoded payload');\n }\n const payload = (0, jwt_claims_set_js_1.default)(verified.protectedHeader, verified.payload, options);\n const result = { payload, protectedHeader: verified.protectedHeader };\n if (typeof key === 'function') {\n return { ...result, key: verified.key };\n }\n return result;\n}\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.jwtDecrypt = jwtDecrypt;\nconst decrypt_js_1 = require(\"../jwe/compact/decrypt.js\");\nconst jwt_claims_set_js_1 = require(\"../lib/jwt_claims_set.js\");\nconst errors_js_1 = require(\"../util/errors.js\");\nasync function jwtDecrypt(jwt, key, options) {\n const decrypted = await (0, decrypt_js_1.compactDecrypt)(jwt, key, options);\n const payload = (0, jwt_claims_set_js_1.default)(decrypted.protectedHeader, decrypted.plaintext, options);\n const { protectedHeader } = decrypted;\n if (protectedHeader.iss !== undefined && protectedHeader.iss !== payload.iss) {\n throw new errors_js_1.JWTClaimValidationFailed('replicated \"iss\" claim header parameter mismatch', payload, 'iss', 'mismatch');\n }\n if (protectedHeader.sub !== undefined && protectedHeader.sub !== payload.sub) {\n throw new errors_js_1.JWTClaimValidationFailed('replicated \"sub\" claim header parameter mismatch', payload, 'sub', 'mismatch');\n }\n if (protectedHeader.aud !== undefined &&\n JSON.stringify(protectedHeader.aud) !== JSON.stringify(payload.aud)) {\n throw new errors_js_1.JWTClaimValidationFailed('replicated \"aud\" claim header parameter mismatch', payload, 'aud', 'mismatch');\n }\n const result = { payload, protectedHeader };\n if (typeof key === 'function') {\n return { ...result, key: decrypted.key };\n }\n return result;\n}\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.CompactEncrypt = void 0;\nconst encrypt_js_1 = require(\"../flattened/encrypt.js\");\nclass CompactEncrypt {\n _flattened;\n constructor(plaintext) {\n this._flattened = new encrypt_js_1.FlattenedEncrypt(plaintext);\n }\n setContentEncryptionKey(cek) {\n this._flattened.setContentEncryptionKey(cek);\n return this;\n }\n setInitializationVector(iv) {\n this._flattened.setInitializationVector(iv);\n return this;\n }\n setProtectedHeader(protectedHeader) {\n this._flattened.setProtectedHeader(protectedHeader);\n return this;\n }\n setKeyManagementParameters(parameters) {\n this._flattened.setKeyManagementParameters(parameters);\n return this;\n }\n async encrypt(key, options) {\n const jwe = await this._flattened.encrypt(key, options);\n return [jwe.protected, jwe.encrypted_key, jwe.iv, jwe.ciphertext, jwe.tag].join('.');\n }\n}\nexports.CompactEncrypt = CompactEncrypt;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.FlattenedSign = void 0;\nconst base64url_js_1 = require(\"../../runtime/base64url.js\");\nconst sign_js_1 = require(\"../../runtime/sign.js\");\nconst is_disjoint_js_1 = require(\"../../lib/is_disjoint.js\");\nconst errors_js_1 = require(\"../../util/errors.js\");\nconst buffer_utils_js_1 = require(\"../../lib/buffer_utils.js\");\nconst check_key_type_js_1 = require(\"../../lib/check_key_type.js\");\nconst validate_crit_js_1 = require(\"../../lib/validate_crit.js\");\nclass FlattenedSign {\n _payload;\n _protectedHeader;\n _unprotectedHeader;\n constructor(payload) {\n if (!(payload instanceof Uint8Array)) {\n throw new TypeError('payload must be an instance of Uint8Array');\n }\n this._payload = payload;\n }\n setProtectedHeader(protectedHeader) {\n if (this._protectedHeader) {\n throw new TypeError('setProtectedHeader can only be called once');\n }\n this._protectedHeader = protectedHeader;\n return this;\n }\n setUnprotectedHeader(unprotectedHeader) {\n if (this._unprotectedHeader) {\n throw new TypeError('setUnprotectedHeader can only be called once');\n }\n this._unprotectedHeader = unprotectedHeader;\n return this;\n }\n async sign(key, options) {\n if (!this._protectedHeader && !this._unprotectedHeader) {\n throw new errors_js_1.JWSInvalid('either setProtectedHeader or setUnprotectedHeader must be called before #sign()');\n }\n if (!(0, is_disjoint_js_1.default)(this._protectedHeader, this._unprotectedHeader)) {\n throw new errors_js_1.JWSInvalid('JWS Protected and JWS Unprotected Header Parameter names must be disjoint');\n }\n const joseHeader = {\n ...this._protectedHeader,\n ...this._unprotectedHeader,\n };\n const extensions = (0, validate_crit_js_1.default)(errors_js_1.JWSInvalid, new Map([['b64', true]]), options?.crit, this._protectedHeader, joseHeader);\n let b64 = true;\n if (extensions.has('b64')) {\n b64 = this._protectedHeader.b64;\n if (typeof b64 !== 'boolean') {\n throw new errors_js_1.JWSInvalid('The \"b64\" (base64url-encode payload) Header Parameter must be a boolean');\n }\n }\n const { alg } = joseHeader;\n if (typeof alg !== 'string' || !alg) {\n throw new errors_js_1.JWSInvalid('JWS \"alg\" (Algorithm) Header Parameter missing or invalid');\n }\n (0, check_key_type_js_1.checkKeyTypeWithJwk)(alg, key, 'sign');\n let payload = this._payload;\n if (b64) {\n payload = buffer_utils_js_1.encoder.encode((0, base64url_js_1.encode)(payload));\n }\n let protectedHeader;\n if (this._protectedHeader) {\n protectedHeader = buffer_utils_js_1.encoder.encode((0, base64url_js_1.encode)(JSON.stringify(this._protectedHeader)));\n }\n else {\n protectedHeader = buffer_utils_js_1.encoder.encode('');\n }\n const data = (0, buffer_utils_js_1.concat)(protectedHeader, buffer_utils_js_1.encoder.encode('.'), payload);\n const signature = await (0, sign_js_1.default)(alg, key, data);\n const jws = {\n signature: (0, base64url_js_1.encode)(signature),\n payload: '',\n };\n if (b64) {\n jws.payload = buffer_utils_js_1.decoder.decode(payload);\n }\n if (this._unprotectedHeader) {\n jws.header = this._unprotectedHeader;\n }\n if (this._protectedHeader) {\n jws.protected = buffer_utils_js_1.decoder.decode(protectedHeader);\n }\n return jws;\n }\n}\nexports.FlattenedSign = FlattenedSign;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.CompactSign = void 0;\nconst sign_js_1 = require(\"../flattened/sign.js\");\nclass CompactSign {\n _flattened;\n constructor(payload) {\n this._flattened = new sign_js_1.FlattenedSign(payload);\n }\n setProtectedHeader(protectedHeader) {\n this._flattened.setProtectedHeader(protectedHeader);\n return this;\n }\n async sign(key, options) {\n const jws = await this._flattened.sign(key, options);\n if (jws.payload === undefined) {\n throw new TypeError('use the flattened module for creating JWS with b64: false');\n }\n return `${jws.protected}.${jws.payload}.${jws.signature}`;\n }\n}\nexports.CompactSign = CompactSign;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.GeneralSign = void 0;\nconst sign_js_1 = require(\"../flattened/sign.js\");\nconst errors_js_1 = require(\"../../util/errors.js\");\nclass IndividualSignature {\n parent;\n protectedHeader;\n unprotectedHeader;\n options;\n key;\n constructor(sig, key, options) {\n this.parent = sig;\n this.key = key;\n this.options = options;\n }\n setProtectedHeader(protectedHeader) {\n if (this.protectedHeader) {\n throw new TypeError('setProtectedHeader can only be called once');\n }\n this.protectedHeader = protectedHeader;\n return this;\n }\n setUnprotectedHeader(unprotectedHeader) {\n if (this.unprotectedHeader) {\n throw new TypeError('setUnprotectedHeader can only be called once');\n }\n this.unprotectedHeader = unprotectedHeader;\n return this;\n }\n addSignature(...args) {\n return this.parent.addSignature(...args);\n }\n sign(...args) {\n return this.parent.sign(...args);\n }\n done() {\n return this.parent;\n }\n}\nclass GeneralSign {\n _payload;\n _signatures = [];\n constructor(payload) {\n this._payload = payload;\n }\n addSignature(key, options) {\n const signature = new IndividualSignature(this, key, options);\n this._signatures.push(signature);\n return signature;\n }\n async sign() {\n if (!this._signatures.length) {\n throw new errors_js_1.JWSInvalid('at least one signature must be added');\n }\n const jws = {\n signatures: [],\n payload: '',\n };\n for (let i = 0; i < this._signatures.length; i++) {\n const signature = this._signatures[i];\n const flattened = new sign_js_1.FlattenedSign(this._payload);\n flattened.setProtectedHeader(signature.protectedHeader);\n flattened.setUnprotectedHeader(signature.unprotectedHeader);\n const { payload, ...rest } = await flattened.sign(signature.key, signature.options);\n if (i === 0) {\n jws.payload = payload;\n }\n else if (jws.payload !== payload) {\n throw new errors_js_1.JWSInvalid('inconsistent use of JWS Unencoded Payload (RFC7797)');\n }\n jws.signatures.push(rest);\n }\n return jws;\n }\n}\nexports.GeneralSign = GeneralSign;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ProduceJWT = void 0;\nconst epoch_js_1 = require(\"../lib/epoch.js\");\nconst is_object_js_1 = require(\"../lib/is_object.js\");\nconst secs_js_1 = require(\"../lib/secs.js\");\nfunction validateInput(label, input) {\n if (!Number.isFinite(input)) {\n throw new TypeError(`Invalid ${label} input`);\n }\n return input;\n}\nclass ProduceJWT {\n _payload;\n constructor(payload = {}) {\n if (!(0, is_object_js_1.default)(payload)) {\n throw new TypeError('JWT Claims Set MUST be an object');\n }\n this._payload = payload;\n }\n setIssuer(issuer) {\n this._payload = { ...this._payload, iss: issuer };\n return this;\n }\n setSubject(subject) {\n this._payload = { ...this._payload, sub: subject };\n return this;\n }\n setAudience(audience) {\n this._payload = { ...this._payload, aud: audience };\n return this;\n }\n setJti(jwtId) {\n this._payload = { ...this._payload, jti: jwtId };\n return this;\n }\n setNotBefore(input) {\n if (typeof input === 'number') {\n this._payload = { ...this._payload, nbf: validateInput('setNotBefore', input) };\n }\n else if (input instanceof Date) {\n this._payload = { ...this._payload, nbf: validateInput('setNotBefore', (0, epoch_js_1.default)(input)) };\n }\n else {\n this._payload = { ...this._payload, nbf: (0, epoch_js_1.default)(new Date()) + (0, secs_js_1.default)(input) };\n }\n return this;\n }\n setExpirationTime(input) {\n if (typeof input === 'number') {\n this._payload = { ...this._payload, exp: validateInput('setExpirationTime', input) };\n }\n else if (input instanceof Date) {\n this._payload = { ...this._payload, exp: validateInput('setExpirationTime', (0, epoch_js_1.default)(input)) };\n }\n else {\n this._payload = { ...this._payload, exp: (0, epoch_js_1.default)(new Date()) + (0, secs_js_1.default)(input) };\n }\n return this;\n }\n setIssuedAt(input) {\n if (typeof input === 'undefined') {\n this._payload = { ...this._payload, iat: (0, epoch_js_1.default)(new Date()) };\n }\n else if (input instanceof Date) {\n this._payload = { ...this._payload, iat: validateInput('setIssuedAt', (0, epoch_js_1.default)(input)) };\n }\n else if (typeof input === 'string') {\n this._payload = {\n ...this._payload,\n iat: validateInput('setIssuedAt', (0, epoch_js_1.default)(new Date()) + (0, secs_js_1.default)(input)),\n };\n }\n else {\n this._payload = { ...this._payload, iat: validateInput('setIssuedAt', input) };\n }\n return this;\n }\n}\nexports.ProduceJWT = ProduceJWT;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.SignJWT = void 0;\nconst sign_js_1 = require(\"../jws/compact/sign.js\");\nconst errors_js_1 = require(\"../util/errors.js\");\nconst buffer_utils_js_1 = require(\"../lib/buffer_utils.js\");\nconst produce_js_1 = require(\"./produce.js\");\nclass SignJWT extends produce_js_1.ProduceJWT {\n _protectedHeader;\n setProtectedHeader(protectedHeader) {\n this._protectedHeader = protectedHeader;\n return this;\n }\n async sign(key, options) {\n const sig = new sign_js_1.CompactSign(buffer_utils_js_1.encoder.encode(JSON.stringify(this._payload)));\n sig.setProtectedHeader(this._protectedHeader);\n if (Array.isArray(this._protectedHeader?.crit) &&\n this._protectedHeader.crit.includes('b64') &&\n this._protectedHeader.b64 === false) {\n throw new errors_js_1.JWTInvalid('JWTs MUST NOT use unencoded payload');\n }\n return sig.sign(key, options);\n }\n}\nexports.SignJWT = SignJWT;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.EncryptJWT = void 0;\nconst encrypt_js_1 = require(\"../jwe/compact/encrypt.js\");\nconst buffer_utils_js_1 = require(\"../lib/buffer_utils.js\");\nconst produce_js_1 = require(\"./produce.js\");\nclass EncryptJWT extends produce_js_1.ProduceJWT {\n _cek;\n _iv;\n _keyManagementParameters;\n _protectedHeader;\n _replicateIssuerAsHeader;\n _replicateSubjectAsHeader;\n _replicateAudienceAsHeader;\n setProtectedHeader(protectedHeader) {\n if (this._protectedHeader) {\n throw new TypeError('setProtectedHeader can only be called once');\n }\n this._protectedHeader = protectedHeader;\n return this;\n }\n setKeyManagementParameters(parameters) {\n if (this._keyManagementParameters) {\n throw new TypeError('setKeyManagementParameters can only be called once');\n }\n this._keyManagementParameters = parameters;\n return this;\n }\n setContentEncryptionKey(cek) {\n if (this._cek) {\n throw new TypeError('setContentEncryptionKey can only be called once');\n }\n this._cek = cek;\n return this;\n }\n setInitializationVector(iv) {\n if (this._iv) {\n throw new TypeError('setInitializationVector can only be called once');\n }\n this._iv = iv;\n return this;\n }\n replicateIssuerAsHeader() {\n this._replicateIssuerAsHeader = true;\n return this;\n }\n replicateSubjectAsHeader() {\n this._replicateSubjectAsHeader = true;\n return this;\n }\n replicateAudienceAsHeader() {\n this._replicateAudienceAsHeader = true;\n return this;\n }\n async encrypt(key, options) {\n const enc = new encrypt_js_1.CompactEncrypt(buffer_utils_js_1.encoder.encode(JSON.stringify(this._payload)));\n if (this._replicateIssuerAsHeader) {\n this._protectedHeader = { ...this._protectedHeader, iss: this._payload.iss };\n }\n if (this._replicateSubjectAsHeader) {\n this._protectedHeader = { ...this._protectedHeader, sub: this._payload.sub };\n }\n if (this._replicateAudienceAsHeader) {\n this._protectedHeader = { ...this._protectedHeader, aud: this._payload.aud };\n }\n enc.setProtectedHeader(this._protectedHeader);\n if (this._iv) {\n enc.setInitializationVector(this._iv);\n }\n if (this._cek) {\n enc.setContentEncryptionKey(this._cek);\n }\n if (this._keyManagementParameters) {\n enc.setKeyManagementParameters(this._keyManagementParameters);\n }\n return enc.encrypt(key, options);\n }\n}\nexports.EncryptJWT = EncryptJWT;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.calculateJwkThumbprint = calculateJwkThumbprint;\nexports.calculateJwkThumbprintUri = calculateJwkThumbprintUri;\nconst digest_js_1 = require(\"../runtime/digest.js\");\nconst base64url_js_1 = require(\"../runtime/base64url.js\");\nconst errors_js_1 = require(\"../util/errors.js\");\nconst buffer_utils_js_1 = require(\"../lib/buffer_utils.js\");\nconst is_object_js_1 = require(\"../lib/is_object.js\");\nconst check = (value, description) => {\n if (typeof value !== 'string' || !value) {\n throw new errors_js_1.JWKInvalid(`${description} missing or invalid`);\n }\n};\nasync function calculateJwkThumbprint(jwk, digestAlgorithm) {\n if (!(0, is_object_js_1.default)(jwk)) {\n throw new TypeError('JWK must be an object');\n }\n digestAlgorithm ??= 'sha256';\n if (digestAlgorithm !== 'sha256' &&\n digestAlgorithm !== 'sha384' &&\n digestAlgorithm !== 'sha512') {\n throw new TypeError('digestAlgorithm must one of \"sha256\", \"sha384\", or \"sha512\"');\n }\n let components;\n switch (jwk.kty) {\n case 'EC':\n check(jwk.crv, '\"crv\" (Curve) Parameter');\n check(jwk.x, '\"x\" (X Coordinate) Parameter');\n check(jwk.y, '\"y\" (Y Coordinate) Parameter');\n components = { crv: jwk.crv, kty: jwk.kty, x: jwk.x, y: jwk.y };\n break;\n case 'OKP':\n check(jwk.crv, '\"crv\" (Subtype of Key Pair) Parameter');\n check(jwk.x, '\"x\" (Public Key) Parameter');\n components = { crv: jwk.crv, kty: jwk.kty, x: jwk.x };\n break;\n case 'RSA':\n check(jwk.e, '\"e\" (Exponent) Parameter');\n check(jwk.n, '\"n\" (Modulus) Parameter');\n components = { e: jwk.e, kty: jwk.kty, n: jwk.n };\n break;\n case 'oct':\n check(jwk.k, '\"k\" (Key Value) Parameter');\n components = { k: jwk.k, kty: jwk.kty };\n break;\n default:\n throw new errors_js_1.JOSENotSupported('\"kty\" (Key Type) Parameter missing or unsupported');\n }\n const data = buffer_utils_js_1.encoder.encode(JSON.stringify(components));\n return (0, base64url_js_1.encode)(await (0, digest_js_1.default)(digestAlgorithm, data));\n}\nasync function calculateJwkThumbprintUri(jwk, digestAlgorithm) {\n digestAlgorithm ??= 'sha256';\n const thumbprint = await calculateJwkThumbprint(jwk, digestAlgorithm);\n return `urn:ietf:params:oauth:jwk-thumbprint:sha-${digestAlgorithm.slice(-3)}:${thumbprint}`;\n}\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.EmbeddedJWK = EmbeddedJWK;\nconst import_js_1 = require(\"../key/import.js\");\nconst is_object_js_1 = require(\"../lib/is_object.js\");\nconst errors_js_1 = require(\"../util/errors.js\");\nasync function EmbeddedJWK(protectedHeader, token) {\n const joseHeader = {\n ...protectedHeader,\n ...token?.header,\n };\n if (!(0, is_object_js_1.default)(joseHeader.jwk)) {\n throw new errors_js_1.JWSInvalid('\"jwk\" (JSON Web Key) Header Parameter must be a JSON object');\n }\n const key = await (0, import_js_1.importJWK)({ ...joseHeader.jwk, ext: true }, joseHeader.alg);\n if (key instanceof Uint8Array || key.type !== 'public') {\n throw new errors_js_1.JWSInvalid('\"jwk\" (JSON Web Key) Header Parameter must be a public key');\n }\n return key;\n}\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.createLocalJWKSet = createLocalJWKSet;\nconst import_js_1 = require(\"../key/import.js\");\nconst errors_js_1 = require(\"../util/errors.js\");\nconst is_object_js_1 = require(\"../lib/is_object.js\");\nfunction getKtyFromAlg(alg) {\n switch (typeof alg === 'string' && alg.slice(0, 2)) {\n case 'RS':\n case 'PS':\n return 'RSA';\n case 'ES':\n return 'EC';\n case 'Ed':\n return 'OKP';\n default:\n throw new errors_js_1.JOSENotSupported('Unsupported \"alg\" value for a JSON Web Key Set');\n }\n}\nfunction isJWKSLike(jwks) {\n return (jwks &&\n typeof jwks === 'object' &&\n Array.isArray(jwks.keys) &&\n jwks.keys.every(isJWKLike));\n}\nfunction isJWKLike(key) {\n return (0, is_object_js_1.default)(key);\n}\nfunction clone(obj) {\n if (typeof structuredClone === 'function') {\n return structuredClone(obj);\n }\n return JSON.parse(JSON.stringify(obj));\n}\nclass LocalJWKSet {\n _jwks;\n _cached = new WeakMap();\n constructor(jwks) {\n if (!isJWKSLike(jwks)) {\n throw new errors_js_1.JWKSInvalid('JSON Web Key Set malformed');\n }\n this._jwks = clone(jwks);\n }\n async getKey(protectedHeader, token) {\n const { alg, kid } = { ...protectedHeader, ...token?.header };\n const kty = getKtyFromAlg(alg);\n const candidates = this._jwks.keys.filter((jwk) => {\n let candidate = kty === jwk.kty;\n if (candidate && typeof kid === 'string') {\n candidate = kid === jwk.kid;\n }\n if (candidate && typeof jwk.alg === 'string') {\n candidate = alg === jwk.alg;\n }\n if (candidate && typeof jwk.use === 'string') {\n candidate = jwk.use === 'sig';\n }\n if (candidate && Array.isArray(jwk.key_ops)) {\n candidate = jwk.key_ops.includes('verify');\n }\n if (candidate) {\n switch (alg) {\n case 'ES256':\n candidate = jwk.crv === 'P-256';\n break;\n case 'ES256K':\n candidate = jwk.crv === 'secp256k1';\n break;\n case 'ES384':\n candidate = jwk.crv === 'P-384';\n break;\n case 'ES512':\n candidate = jwk.crv === 'P-521';\n break;\n case 'Ed25519':\n candidate = jwk.crv === 'Ed25519';\n break;\n case 'EdDSA':\n candidate = jwk.crv === 'Ed25519' || jwk.crv === 'Ed448';\n break;\n }\n }\n return candidate;\n });\n const { 0: jwk, length } = candidates;\n if (length === 0) {\n throw new errors_js_1.JWKSNoMatchingKey();\n }\n if (length !== 1) {\n const error = new errors_js_1.JWKSMultipleMatchingKeys();\n const { _cached } = this;\n error[Symbol.asyncIterator] = async function* () {\n for (const jwk of candidates) {\n try {\n yield await importWithAlgCache(_cached, jwk, alg);\n }\n catch { }\n }\n };\n throw error;\n }\n return importWithAlgCache(this._cached, jwk, alg);\n }\n}\nasync function importWithAlgCache(cache, jwk, alg) {\n const cached = cache.get(jwk) || cache.set(jwk, {}).get(jwk);\n if (cached[alg] === undefined) {\n const key = await (0, import_js_1.importJWK)({ ...jwk, ext: true }, alg);\n if (key instanceof Uint8Array || key.type !== 'public') {\n throw new errors_js_1.JWKSInvalid('JSON Web Key Set members must be public keys');\n }\n cached[alg] = key;\n }\n return cached[alg];\n}\nfunction createLocalJWKSet(jwks) {\n const set = new LocalJWKSet(jwks);\n const localJWKSet = async (protectedHeader, token) => set.getKey(protectedHeader, token);\n Object.defineProperties(localJWKSet, {\n jwks: {\n value: () => clone(set._jwks),\n enumerable: true,\n configurable: false,\n writable: false,\n },\n });\n return localJWKSet;\n}\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst http = require(\"node:http\");\nconst https = require(\"node:https\");\nconst node_events_1 = require(\"node:events\");\nconst errors_js_1 = require(\"../util/errors.js\");\nconst buffer_utils_js_1 = require(\"../lib/buffer_utils.js\");\nconst fetchJwks = async (url, timeout, options) => {\n let get;\n switch (url.protocol) {\n case 'https:':\n get = https.get;\n break;\n case 'http:':\n get = http.get;\n break;\n default:\n throw new TypeError('Unsupported URL protocol.');\n }\n const { agent, headers } = options;\n const req = get(url.href, {\n agent,\n timeout,\n headers,\n });\n const [response] = (await Promise.race([(0, node_events_1.once)(req, 'response'), (0, node_events_1.once)(req, 'timeout')]));\n if (!response) {\n req.destroy();\n throw new errors_js_1.JWKSTimeout();\n }\n if (response.statusCode !== 200) {\n throw new errors_js_1.JOSEError('Expected 200 OK from the JSON Web Key Set HTTP response');\n }\n const parts = [];\n for await (const part of response) {\n parts.push(part);\n }\n try {\n return JSON.parse(buffer_utils_js_1.decoder.decode((0, buffer_utils_js_1.concat)(...parts)));\n }\n catch {\n throw new errors_js_1.JOSEError('Failed to parse the JSON Web Key Set HTTP response as JSON');\n }\n};\nexports.default = fetchJwks;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.experimental_jwksCache = exports.jwksCache = void 0;\nexports.createRemoteJWKSet = createRemoteJWKSet;\nconst fetch_jwks_js_1 = require(\"../runtime/fetch_jwks.js\");\nconst errors_js_1 = require(\"../util/errors.js\");\nconst local_js_1 = require(\"./local.js\");\nconst is_object_js_1 = require(\"../lib/is_object.js\");\nfunction isCloudflareWorkers() {\n return (typeof WebSocketPair !== 'undefined' ||\n (typeof navigator !== 'undefined' && navigator.userAgent === 'Cloudflare-Workers') ||\n (typeof EdgeRuntime !== 'undefined' && EdgeRuntime === 'vercel'));\n}\nlet USER_AGENT;\nif (typeof navigator === 'undefined' || !navigator.userAgent?.startsWith?.('Mozilla/5.0 ')) {\n const NAME = 'jose';\n const VERSION = 'v5.10.0';\n USER_AGENT = `${NAME}/${VERSION}`;\n}\nexports.jwksCache = Symbol();\nfunction isFreshJwksCache(input, cacheMaxAge) {\n if (typeof input !== 'object' || input === null) {\n return false;\n }\n if (!('uat' in input) || typeof input.uat !== 'number' || Date.now() - input.uat >= cacheMaxAge) {\n return false;\n }\n if (!('jwks' in input) ||\n !(0, is_object_js_1.default)(input.jwks) ||\n !Array.isArray(input.jwks.keys) ||\n !Array.prototype.every.call(input.jwks.keys, is_object_js_1.default)) {\n return false;\n }\n return true;\n}\nclass RemoteJWKSet {\n _url;\n _timeoutDuration;\n _cooldownDuration;\n _cacheMaxAge;\n _jwksTimestamp;\n _pendingFetch;\n _options;\n _local;\n _cache;\n constructor(url, options) {\n if (!(url instanceof URL)) {\n throw new TypeError('url must be an instance of URL');\n }\n this._url = new URL(url.href);\n this._options = { agent: options?.agent, headers: options?.headers };\n this._timeoutDuration =\n typeof options?.timeoutDuration === 'number' ? options?.timeoutDuration : 5000;\n this._cooldownDuration =\n typeof options?.cooldownDuration === 'number' ? options?.cooldownDuration : 30000;\n this._cacheMaxAge = typeof options?.cacheMaxAge === 'number' ? options?.cacheMaxAge : 600000;\n if (options?.[exports.jwksCache] !== undefined) {\n this._cache = options?.[exports.jwksCache];\n if (isFreshJwksCache(options?.[exports.jwksCache], this._cacheMaxAge)) {\n this._jwksTimestamp = this._cache.uat;\n this._local = (0, local_js_1.createLocalJWKSet)(this._cache.jwks);\n }\n }\n }\n coolingDown() {\n return typeof this._jwksTimestamp === 'number'\n ? Date.now() < this._jwksTimestamp + this._cooldownDuration\n : false;\n }\n fresh() {\n return typeof this._jwksTimestamp === 'number'\n ? Date.now() < this._jwksTimestamp + this._cacheMaxAge\n : false;\n }\n async getKey(protectedHeader, token) {\n if (!this._local || !this.fresh()) {\n await this.reload();\n }\n try {\n return await this._local(protectedHeader, token);\n }\n catch (err) {\n if (err instanceof errors_js_1.JWKSNoMatchingKey) {\n if (this.coolingDown() === false) {\n await this.reload();\n return this._local(protectedHeader, token);\n }\n }\n throw err;\n }\n }\n async reload() {\n if (this._pendingFetch && isCloudflareWorkers()) {\n this._pendingFetch = undefined;\n }\n const headers = new Headers(this._options.headers);\n if (USER_AGENT && !headers.has('User-Agent')) {\n headers.set('User-Agent', USER_AGENT);\n this._options.headers = Object.fromEntries(headers.entries());\n }\n this._pendingFetch ||= (0, fetch_jwks_js_1.default)(this._url, this._timeoutDuration, this._options)\n .then((json) => {\n this._local = (0, local_js_1.createLocalJWKSet)(json);\n if (this._cache) {\n this._cache.uat = Date.now();\n this._cache.jwks = json;\n }\n this._jwksTimestamp = Date.now();\n this._pendingFetch = undefined;\n })\n .catch((err) => {\n this._pendingFetch = undefined;\n throw err;\n });\n await this._pendingFetch;\n }\n}\nfunction createRemoteJWKSet(url, options) {\n const set = new RemoteJWKSet(url, options);\n const remoteJWKSet = async (protectedHeader, token) => set.getKey(protectedHeader, token);\n Object.defineProperties(remoteJWKSet, {\n coolingDown: {\n get: () => set.coolingDown(),\n enumerable: true,\n configurable: false,\n },\n fresh: {\n get: () => set.fresh(),\n enumerable: true,\n configurable: false,\n },\n reload: {\n value: () => set.reload(),\n enumerable: true,\n configurable: false,\n writable: false,\n },\n reloading: {\n get: () => !!set._pendingFetch,\n enumerable: true,\n configurable: false,\n },\n jwks: {\n value: () => set._local?.jwks(),\n enumerable: true,\n configurable: false,\n writable: false,\n },\n });\n return remoteJWKSet;\n}\nexports.experimental_jwksCache = exports.jwksCache;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.UnsecuredJWT = void 0;\nconst base64url = require(\"../runtime/base64url.js\");\nconst buffer_utils_js_1 = require(\"../lib/buffer_utils.js\");\nconst errors_js_1 = require(\"../util/errors.js\");\nconst jwt_claims_set_js_1 = require(\"../lib/jwt_claims_set.js\");\nconst produce_js_1 = require(\"./produce.js\");\nclass UnsecuredJWT extends produce_js_1.ProduceJWT {\n encode() {\n const header = base64url.encode(JSON.stringify({ alg: 'none' }));\n const payload = base64url.encode(JSON.stringify(this._payload));\n return `${header}.${payload}.`;\n }\n static decode(jwt, options) {\n if (typeof jwt !== 'string') {\n throw new errors_js_1.JWTInvalid('Unsecured JWT must be a string');\n }\n const { 0: encodedHeader, 1: encodedPayload, 2: signature, length } = jwt.split('.');\n if (length !== 3 || signature !== '') {\n throw new errors_js_1.JWTInvalid('Invalid Unsecured JWT');\n }\n let header;\n try {\n header = JSON.parse(buffer_utils_js_1.decoder.decode(base64url.decode(encodedHeader)));\n if (header.alg !== 'none')\n throw new Error();\n }\n catch {\n throw new errors_js_1.JWTInvalid('Invalid Unsecured JWT');\n }\n const payload = (0, jwt_claims_set_js_1.default)(header, base64url.decode(encodedPayload), options);\n return { payload, header };\n }\n}\nexports.UnsecuredJWT = UnsecuredJWT;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.decode = exports.encode = void 0;\nconst base64url = require(\"../runtime/base64url.js\");\nexports.encode = base64url.encode;\nexports.decode = base64url.decode;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.decodeProtectedHeader = decodeProtectedHeader;\nconst base64url_js_1 = require(\"./base64url.js\");\nconst buffer_utils_js_1 = require(\"../lib/buffer_utils.js\");\nconst is_object_js_1 = require(\"../lib/is_object.js\");\nfunction decodeProtectedHeader(token) {\n let protectedB64u;\n if (typeof token === 'string') {\n const parts = token.split('.');\n if (parts.length === 3 || parts.length === 5) {\n ;\n [protectedB64u] = parts;\n }\n }\n else if (typeof token === 'object' && token) {\n if ('protected' in token) {\n protectedB64u = token.protected;\n }\n else {\n throw new TypeError('Token does not contain a Protected Header');\n }\n }\n try {\n if (typeof protectedB64u !== 'string' || !protectedB64u) {\n throw new Error();\n }\n const result = JSON.parse(buffer_utils_js_1.decoder.decode((0, base64url_js_1.decode)(protectedB64u)));\n if (!(0, is_object_js_1.default)(result)) {\n throw new Error();\n }\n return result;\n }\n catch {\n throw new TypeError('Invalid Token or Protected Header formatting');\n }\n}\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.decodeJwt = decodeJwt;\nconst base64url_js_1 = require(\"./base64url.js\");\nconst buffer_utils_js_1 = require(\"../lib/buffer_utils.js\");\nconst is_object_js_1 = require(\"../lib/is_object.js\");\nconst errors_js_1 = require(\"./errors.js\");\nfunction decodeJwt(jwt) {\n if (typeof jwt !== 'string')\n throw new errors_js_1.JWTInvalid('JWTs must use Compact JWS serialization, JWT must be a string');\n const { 1: payload, length } = jwt.split('.');\n if (length === 5)\n throw new errors_js_1.JWTInvalid('Only JWTs using Compact JWS serialization can be decoded');\n if (length !== 3)\n throw new errors_js_1.JWTInvalid('Invalid JWT');\n if (!payload)\n throw new errors_js_1.JWTInvalid('JWTs must contain a payload');\n let decoded;\n try {\n decoded = (0, base64url_js_1.decode)(payload);\n }\n catch {\n throw new errors_js_1.JWTInvalid('Failed to base64url decode the payload');\n }\n let result;\n try {\n result = JSON.parse(buffer_utils_js_1.decoder.decode(decoded));\n }\n catch {\n throw new errors_js_1.JWTInvalid('Failed to parse the decoded payload as JSON');\n }\n if (!(0, is_object_js_1.default)(result))\n throw new errors_js_1.JWTInvalid('Invalid JWT Claims Set');\n return result;\n}\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.generateSecret = generateSecret;\nexports.generateKeyPair = generateKeyPair;\nconst node_crypto_1 = require(\"node:crypto\");\nconst node_util_1 = require(\"node:util\");\nconst random_js_1 = require(\"./random.js\");\nconst errors_js_1 = require(\"../util/errors.js\");\nconst generate = (0, node_util_1.promisify)(node_crypto_1.generateKeyPair);\nasync function generateSecret(alg, options) {\n let length;\n switch (alg) {\n case 'HS256':\n case 'HS384':\n case 'HS512':\n case 'A128CBC-HS256':\n case 'A192CBC-HS384':\n case 'A256CBC-HS512':\n length = parseInt(alg.slice(-3), 10);\n break;\n case 'A128KW':\n case 'A192KW':\n case 'A256KW':\n case 'A128GCMKW':\n case 'A192GCMKW':\n case 'A256GCMKW':\n case 'A128GCM':\n case 'A192GCM':\n case 'A256GCM':\n length = parseInt(alg.slice(1, 4), 10);\n break;\n default:\n throw new errors_js_1.JOSENotSupported('Invalid or unsupported JWK \"alg\" (Algorithm) Parameter value');\n }\n return (0, node_crypto_1.createSecretKey)((0, random_js_1.default)(new Uint8Array(length >> 3)));\n}\nasync function generateKeyPair(alg, options) {\n switch (alg) {\n case 'RS256':\n case 'RS384':\n case 'RS512':\n case 'PS256':\n case 'PS384':\n case 'PS512':\n case 'RSA-OAEP':\n case 'RSA-OAEP-256':\n case 'RSA-OAEP-384':\n case 'RSA-OAEP-512':\n case 'RSA1_5': {\n const modulusLength = options?.modulusLength ?? 2048;\n if (typeof modulusLength !== 'number' || modulusLength < 2048) {\n throw new errors_js_1.JOSENotSupported('Invalid or unsupported modulusLength option provided, 2048 bits or larger keys must be used');\n }\n const keypair = await generate('rsa', {\n modulusLength,\n publicExponent: 0x10001,\n });\n return keypair;\n }\n case 'ES256':\n return generate('ec', { namedCurve: 'P-256' });\n case 'ES256K':\n return generate('ec', { namedCurve: 'secp256k1' });\n case 'ES384':\n return generate('ec', { namedCurve: 'P-384' });\n case 'ES512':\n return generate('ec', { namedCurve: 'P-521' });\n case 'Ed25519':\n return generate('ed25519');\n case 'EdDSA': {\n switch (options?.crv) {\n case undefined:\n case 'Ed25519':\n return generate('ed25519');\n case 'Ed448':\n return generate('ed448');\n default:\n throw new errors_js_1.JOSENotSupported('Invalid or unsupported crv option provided, supported values are Ed25519 and Ed448');\n }\n }\n case 'ECDH-ES':\n case 'ECDH-ES+A128KW':\n case 'ECDH-ES+A192KW':\n case 'ECDH-ES+A256KW': {\n const crv = options?.crv ?? 'P-256';\n switch (crv) {\n case undefined:\n case 'P-256':\n case 'P-384':\n case 'P-521':\n return generate('ec', { namedCurve: crv });\n case 'X25519':\n return generate('x25519');\n case 'X448':\n return generate('x448');\n default:\n throw new errors_js_1.JOSENotSupported('Invalid or unsupported crv option provided, supported values are P-256, P-384, P-521, X25519, and X448');\n }\n }\n default:\n throw new errors_js_1.JOSENotSupported('Invalid or unsupported JWK \"alg\" (Algorithm) Parameter value');\n }\n}\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.generateKeyPair = generateKeyPair;\nconst generate_js_1 = require(\"../runtime/generate.js\");\nasync function generateKeyPair(alg, options) {\n return (0, generate_js_1.generateKeyPair)(alg, options);\n}\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.generateSecret = generateSecret;\nconst generate_js_1 = require(\"../runtime/generate.js\");\nasync function generateSecret(alg, options) {\n return (0, generate_js_1.generateSecret)(alg, options);\n}\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.default = 'node:crypto';\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst runtime_js_1 = require(\"../runtime/runtime.js\");\nexports.default = runtime_js_1.default;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.cryptoRuntime = exports.base64url = exports.generateSecret = exports.generateKeyPair = exports.errors = exports.decodeJwt = exports.decodeProtectedHeader = exports.importJWK = exports.importX509 = exports.importPKCS8 = exports.importSPKI = exports.exportJWK = exports.exportSPKI = exports.exportPKCS8 = exports.UnsecuredJWT = exports.experimental_jwksCache = exports.jwksCache = exports.createRemoteJWKSet = exports.createLocalJWKSet = exports.EmbeddedJWK = exports.calculateJwkThumbprintUri = exports.calculateJwkThumbprint = exports.EncryptJWT = exports.SignJWT = exports.GeneralSign = exports.FlattenedSign = exports.CompactSign = exports.FlattenedEncrypt = exports.CompactEncrypt = exports.jwtDecrypt = exports.jwtVerify = exports.generalVerify = exports.flattenedVerify = exports.compactVerify = exports.GeneralEncrypt = exports.generalDecrypt = exports.flattenedDecrypt = exports.compactDecrypt = void 0;\nvar decrypt_js_1 = require(\"./jwe/compact/decrypt.js\");\nObject.defineProperty(exports, \"compactDecrypt\", { enumerable: true, get: function () { return decrypt_js_1.compactDecrypt; } });\nvar decrypt_js_2 = require(\"./jwe/flattened/decrypt.js\");\nObject.defineProperty(exports, \"flattenedDecrypt\", { enumerable: true, get: function () { return decrypt_js_2.flattenedDecrypt; } });\nvar decrypt_js_3 = require(\"./jwe/general/decrypt.js\");\nObject.defineProperty(exports, \"generalDecrypt\", { enumerable: true, get: function () { return decrypt_js_3.generalDecrypt; } });\nvar encrypt_js_1 = require(\"./jwe/general/encrypt.js\");\nObject.defineProperty(exports, \"GeneralEncrypt\", { enumerable: true, get: function () { return encrypt_js_1.GeneralEncrypt; } });\nvar verify_js_1 = require(\"./jws/compact/verify.js\");\nObject.defineProperty(exports, \"compactVerify\", { enumerable: true, get: function () { return verify_js_1.compactVerify; } });\nvar verify_js_2 = require(\"./jws/flattened/verify.js\");\nObject.defineProperty(exports, \"flattenedVerify\", { enumerable: true, get: function () { return verify_js_2.flattenedVerify; } });\nvar verify_js_3 = require(\"./jws/general/verify.js\");\nObject.defineProperty(exports, \"generalVerify\", { enumerable: true, get: function () { return verify_js_3.generalVerify; } });\nvar verify_js_4 = require(\"./jwt/verify.js\");\nObject.defineProperty(exports, \"jwtVerify\", { enumerable: true, get: function () { return verify_js_4.jwtVerify; } });\nvar decrypt_js_4 = require(\"./jwt/decrypt.js\");\nObject.defineProperty(exports, \"jwtDecrypt\", { enumerable: true, get: function () { return decrypt_js_4.jwtDecrypt; } });\nvar encrypt_js_2 = require(\"./jwe/compact/encrypt.js\");\nObject.defineProperty(exports, \"CompactEncrypt\", { enumerable: true, get: function () { return encrypt_js_2.CompactEncrypt; } });\nvar encrypt_js_3 = require(\"./jwe/flattened/encrypt.js\");\nObject.defineProperty(exports, \"FlattenedEncrypt\", { enumerable: true, get: function () { return encrypt_js_3.FlattenedEncrypt; } });\nvar sign_js_1 = require(\"./jws/compact/sign.js\");\nObject.defineProperty(exports, \"CompactSign\", { enumerable: true, get: function () { return sign_js_1.CompactSign; } });\nvar sign_js_2 = require(\"./jws/flattened/sign.js\");\nObject.defineProperty(exports, \"FlattenedSign\", { enumerable: true, get: function () { return sign_js_2.FlattenedSign; } });\nvar sign_js_3 = require(\"./jws/general/sign.js\");\nObject.defineProperty(exports, \"GeneralSign\", { enumerable: true, get: function () { return sign_js_3.GeneralSign; } });\nvar sign_js_4 = require(\"./jwt/sign.js\");\nObject.defineProperty(exports, \"SignJWT\", { enumerable: true, get: function () { return sign_js_4.SignJWT; } });\nvar encrypt_js_4 = require(\"./jwt/encrypt.js\");\nObject.defineProperty(exports, \"EncryptJWT\", { enumerable: true, get: function () { return encrypt_js_4.EncryptJWT; } });\nvar thumbprint_js_1 = require(\"./jwk/thumbprint.js\");\nObject.defineProperty(exports, \"calculateJwkThumbprint\", { enumerable: true, get: function () { return thumbprint_js_1.calculateJwkThumbprint; } });\nObject.defineProperty(exports, \"calculateJwkThumbprintUri\", { enumerable: true, get: function () { return thumbprint_js_1.calculateJwkThumbprintUri; } });\nvar embedded_js_1 = require(\"./jwk/embedded.js\");\nObject.defineProperty(exports, \"EmbeddedJWK\", { enumerable: true, get: function () { return embedded_js_1.EmbeddedJWK; } });\nvar local_js_1 = require(\"./jwks/local.js\");\nObject.defineProperty(exports, \"createLocalJWKSet\", { enumerable: true, get: function () { return local_js_1.createLocalJWKSet; } });\nvar remote_js_1 = require(\"./jwks/remote.js\");\nObject.defineProperty(exports, \"createRemoteJWKSet\", { enumerable: true, get: function () { return remote_js_1.createRemoteJWKSet; } });\nObject.defineProperty(exports, \"jwksCache\", { enumerable: true, get: function () { return remote_js_1.jwksCache; } });\nObject.defineProperty(exports, \"experimental_jwksCache\", { enumerable: true, get: function () { return remote_js_1.experimental_jwksCache; } });\nvar unsecured_js_1 = require(\"./jwt/unsecured.js\");\nObject.defineProperty(exports, \"UnsecuredJWT\", { enumerable: true, get: function () { return unsecured_js_1.UnsecuredJWT; } });\nvar export_js_1 = require(\"./key/export.js\");\nObject.defineProperty(exports, \"exportPKCS8\", { enumerable: true, get: function () { return export_js_1.exportPKCS8; } });\nObject.defineProperty(exports, \"exportSPKI\", { enumerable: true, get: function () { return export_js_1.exportSPKI; } });\nObject.defineProperty(exports, \"exportJWK\", { enumerable: true, get: function () { return export_js_1.exportJWK; } });\nvar import_js_1 = require(\"./key/import.js\");\nObject.defineProperty(exports, \"importSPKI\", { enumerable: true, get: function () { return import_js_1.importSPKI; } });\nObject.defineProperty(exports, \"importPKCS8\", { enumerable: true, get: function () { return import_js_1.importPKCS8; } });\nObject.defineProperty(exports, \"importX509\", { enumerable: true, get: function () { return import_js_1.importX509; } });\nObject.defineProperty(exports, \"importJWK\", { enumerable: true, get: function () { return import_js_1.importJWK; } });\nvar decode_protected_header_js_1 = require(\"./util/decode_protected_header.js\");\nObject.defineProperty(exports, \"decodeProtectedHeader\", { enumerable: true, get: function () { return decode_protected_header_js_1.decodeProtectedHeader; } });\nvar decode_jwt_js_1 = require(\"./util/decode_jwt.js\");\nObject.defineProperty(exports, \"decodeJwt\", { enumerable: true, get: function () { return decode_jwt_js_1.decodeJwt; } });\nexports.errors = require(\"./util/errors.js\");\nvar generate_key_pair_js_1 = require(\"./key/generate_key_pair.js\");\nObject.defineProperty(exports, \"generateKeyPair\", { enumerable: true, get: function () { return generate_key_pair_js_1.generateKeyPair; } });\nvar generate_secret_js_1 = require(\"./key/generate_secret.js\");\nObject.defineProperty(exports, \"generateSecret\", { enumerable: true, get: function () { return generate_secret_js_1.generateSecret; } });\nexports.base64url = require(\"./util/base64url.js\");\nvar runtime_js_1 = require(\"./util/runtime.js\");\nObject.defineProperty(exports, \"cryptoRuntime\", { enumerable: true, get: function () { return runtime_js_1.default; } });\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.TokenManager = void 0;\nconst uuid_1 = require(\"./uuid\");\nconst jose_1 = require(\"jose\");\nconst analytics_core_1 = require(\"@segment/analytics-core\");\nconst analytics_generic_utils_1 = require(\"@segment/analytics-generic-utils\");\nconst isAccessToken = (thing) => {\n return Boolean(thing &&\n typeof thing === 'object' &&\n 'access_token' in thing &&\n 'expires_in' in thing &&\n typeof thing.access_token === 'string' &&\n typeof thing.expires_in === 'number');\n};\nconst isValidCustomResponse = (response) => {\n return typeof response.text === 'function';\n};\nfunction convertHeaders(headers) {\n const lowercaseHeaders = {};\n if (!headers)\n return {};\n if (isHeaders(headers)) {\n for (const [name, value] of headers.entries()) {\n lowercaseHeaders[name.toLowerCase()] = value;\n }\n return lowercaseHeaders;\n }\n for (const [name, value] of Object.entries(headers)) {\n lowercaseHeaders[name.toLowerCase()] = value;\n }\n return lowercaseHeaders;\n}\nfunction isHeaders(thing) {\n if (typeof thing === 'object' &&\n thing !== null &&\n 'entries' in Object(thing) &&\n typeof Object(thing).entries === 'function') {\n return true;\n }\n return false;\n}\nclass TokenManager {\n alg = 'RS256';\n grantType = 'client_credentials';\n clientAssertionType = 'urn:ietf:params:oauth:client-assertion-type:jwt-bearer';\n clientId;\n clientKey;\n keyId;\n scope;\n authServer;\n httpClient;\n maxRetries;\n clockSkewInSeconds = 0;\n accessToken;\n tokenEmitter = new analytics_generic_utils_1.Emitter();\n retryCount;\n pollerTimer;\n constructor(props) {\n this.keyId = props.keyId;\n this.clientId = props.clientId;\n this.clientKey = props.clientKey;\n this.authServer = props.authServer ?? 'https://oauth2.segment.io';\n this.scope = props.scope ?? 'tracking_api:write';\n this.httpClient = props.httpClient;\n this.maxRetries = props.maxRetries;\n this.tokenEmitter.on('access_token', (event) => {\n if ('token' in event) {\n this.accessToken = event.token;\n }\n });\n this.retryCount = 0;\n }\n stopPoller() {\n clearTimeout(this.pollerTimer);\n }\n async pollerLoop() {\n let timeUntilRefreshInMs = 25;\n let response;\n try {\n response = await this.requestAccessToken();\n }\n catch (err) {\n // Error without a status code - likely networking, retry\n return this.handleTransientError({ error: err });\n }\n if (!isValidCustomResponse(response)) {\n return this.handleInvalidCustomResponse();\n }\n const headers = convertHeaders(response.headers);\n if (headers['date']) {\n this.updateClockSkew(Date.parse(headers['date']));\n }\n // Handle status codes!\n if (response.status === 200) {\n try {\n const body = await response.text();\n const token = JSON.parse(body);\n if (!isAccessToken(token)) {\n throw new Error('Response did not contain a valid access_token and expires_in');\n }\n // Success, we have a token!\n token.expires_at = Math.round(Date.now() / 1000) + token.expires_in;\n this.tokenEmitter.emit('access_token', { token });\n // Reset our failure count\n this.retryCount = 0;\n // Refresh the token after half the expiry time passes\n timeUntilRefreshInMs = (token.expires_in / 2) * 1000;\n return this.queueNextPoll(timeUntilRefreshInMs);\n }\n catch (err) {\n // Something went really wrong with the body, lets surface an error and try again?\n return this.handleTransientError({ error: err, forceEmitError: true });\n }\n }\n else if (response.status === 429) {\n // Rate limited, wait for the reset time\n return await this.handleRateLimited(response, headers, timeUntilRefreshInMs);\n }\n else if ([400, 401, 415].includes(response.status)) {\n // Unrecoverable errors, stops the poller\n return this.handleUnrecoverableErrors(response);\n }\n else {\n return this.handleTransientError({\n error: new Error(`[${response.status}] ${response.statusText}`),\n });\n }\n }\n handleTransientError({ error, forceEmitError, }) {\n this.incrementRetries({ error, forceEmitError });\n // First retry immediately, backoff the rest.\n if (this.retryCount === 1) {\n this.queueNextPoll(0);\n return;\n }\n const timeUntilRefreshInMs = (0, analytics_core_1.backoff)({\n attempt: Math.max(this.retryCount - 1, 0),\n minTimeout: 100,\n maxTimeout: 60 * 1000,\n });\n this.queueNextPoll(timeUntilRefreshInMs);\n }\n handleInvalidCustomResponse() {\n this.tokenEmitter.emit('access_token', {\n error: new Error('HTTPClient does not implement response.text method'),\n });\n }\n async handleRateLimited(response, headers, timeUntilRefreshInMs) {\n this.incrementRetries({\n error: new Error(`[${response.status}] ${response.statusText}`),\n });\n const getRateLimitWaitTime = (headerValue) => {\n const value = parseInt(headerValue, 10);\n if (!isFinite(value))\n return null;\n const clampedSeconds = Math.max(0, Math.min(value, 300));\n return Math.max(0, (clampedSeconds + this.clockSkewInSeconds) * 1000);\n };\n const retryAfter = headers['retry-after'];\n const maxWaitMs = 5 * 60 * 1000; // 5 minutes\n let waitTimeMs = 5 * 1000; // default fallback\n if (retryAfter) {\n const waitTime = getRateLimitWaitTime(retryAfter);\n if (waitTime !== null) {\n waitTimeMs = Math.min(waitTime, maxWaitMs);\n }\n }\n // We want subsequent calls to get_token to be able to interrupt our\n // Timeout when it's waiting for e.g. a long normal expiration, but\n // not when we're waiting for a rate limit reset. Sleep instead.\n await (0, analytics_core_1.sleep)(waitTimeMs);\n timeUntilRefreshInMs = 0;\n this.queueNextPoll(timeUntilRefreshInMs);\n }\n handleUnrecoverableErrors(response) {\n this.retryCount = 0;\n this.tokenEmitter.emit('access_token', {\n error: new Error(`[${response.status}] ${response.statusText}`),\n });\n this.stopPoller();\n }\n updateClockSkew(dateInMs) {\n this.clockSkewInSeconds = (Date.now() - dateInMs) / 1000;\n }\n incrementRetries({ error, forceEmitError, }) {\n this.retryCount++;\n if (forceEmitError || this.retryCount % this.maxRetries === 0) {\n this.retryCount = 0;\n this.tokenEmitter.emit('access_token', { error: error });\n }\n }\n queueNextPoll(timeUntilRefreshInMs) {\n this.pollerTimer = setTimeout(() => this.pollerLoop(), timeUntilRefreshInMs);\n if (this.pollerTimer.unref) {\n this.pollerTimer.unref();\n }\n }\n /**\n * Solely responsible for building the HTTP request and calling the token service.\n */\n async requestAccessToken() {\n // Set issued at time to 5 seconds in the past to account for clock skew\n const ISSUED_AT_BUFFER_IN_SECONDS = 5;\n const MAX_EXPIRY_IN_SECONDS = 60;\n // Final expiry time takes into account the issued at time, so need to subtract IAT buffer\n const EXPIRY_IN_SECONDS = MAX_EXPIRY_IN_SECONDS - ISSUED_AT_BUFFER_IN_SECONDS;\n const jti = (0, uuid_1.uuid)();\n const currentUTCInSeconds = Math.round(Date.now() / 1000) - this.clockSkewInSeconds;\n const jwtBody = {\n iss: this.clientId,\n sub: this.clientId,\n aud: this.authServer,\n iat: currentUTCInSeconds - ISSUED_AT_BUFFER_IN_SECONDS,\n exp: currentUTCInSeconds + EXPIRY_IN_SECONDS,\n jti,\n };\n const key = await (0, jose_1.importPKCS8)(this.clientKey, 'RS256');\n const signedJwt = await new jose_1.SignJWT(jwtBody)\n .setProtectedHeader({ alg: this.alg, kid: this.keyId, typ: 'JWT' })\n .sign(key);\n const requestBody = `grant_type=${this.grantType}&client_assertion_type=${this.clientAssertionType}&client_assertion=${signedJwt}&scope=${this.scope}`;\n const accessTokenEndpoint = `${this.authServer}/token`;\n const requestOptions = {\n method: 'POST',\n url: accessTokenEndpoint,\n body: requestBody,\n headers: {\n 'Content-Type': 'application/x-www-form-urlencoded',\n },\n httpRequestTimeout: 10000,\n };\n return this.httpClient.makeRequest(requestOptions);\n }\n async getAccessToken() {\n // Use the cached token if it is still valid, otherwise wait for a new token.\n if (this.isValidToken(this.accessToken)) {\n return this.accessToken;\n }\n // stop poller first in order to make sure that it's not sleeping if we need a token immediately\n // Otherwise it could be hours before the expiration time passes normally\n this.stopPoller();\n // startPoller needs to be called somewhere, either lazily when a token is first requested, or at instantiation.\n // Doing it lazily currently\n this.pollerLoop().catch(() => { });\n return new Promise((resolve, reject) => {\n this.tokenEmitter.once('access_token', (event) => {\n if ('token' in event) {\n resolve(event.token);\n }\n else {\n reject(event.error);\n }\n });\n });\n }\n clearToken() {\n this.accessToken = undefined;\n }\n isValidToken(token) {\n return (typeof token !== 'undefined' &&\n token !== null &&\n (token.expires_at ?? 0) > Date.now() / 1000);\n }\n}\nexports.TokenManager = TokenManager;\n//# sourceMappingURL=token-manager.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.b64encode = void 0;\n// eslint-disable-next-line import/no-nodejs-modules\nconst buffer_1 = require(\"buffer\");\n/**\n * Base64 encoder that works in browser, worker, node runtimes.\n */\nconst b64encode = (str) => {\n return buffer_1.Buffer.from(str).toString('base64');\n};\nexports.b64encode = b64encode;\n//# sourceMappingURL=base-64-encode.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Publisher = void 0;\nconst analytics_core_1 = require(\"@segment/analytics-core\");\nconst create_url_1 = require(\"../../lib/create-url\");\nconst analytics_generic_utils_1 = require(\"@segment/analytics-generic-utils\");\nconst context_batch_1 = require(\"./context-batch\");\nconst token_manager_1 = require(\"../../lib/token-manager\");\nconst base_64_encode_1 = require(\"../../lib/base-64-encode\");\nconst MAX_RETRY_AFTER_SECONDS = 300;\nconst MAX_RETRY_AFTER_RETRIES = 20;\nfunction sleep(timeoutInMs, signal) {\n return new Promise((resolve, reject) => {\n if (signal?.aborted) {\n reject(signal.reason);\n return;\n }\n const timer = setTimeout(resolve, timeoutInMs);\n signal?.addEventListener('abort', () => {\n clearTimeout(timer);\n reject(signal.reason);\n }, { once: true });\n });\n}\nfunction noop() { }\nfunction convertHeaders(headers) {\n const lowercaseHeaders = {};\n if (!headers)\n return lowercaseHeaders;\n if (typeof headers.entries === 'function') {\n for (const [name, value] of headers.entries()) {\n lowercaseHeaders[name.toLowerCase()] = String(value);\n }\n return lowercaseHeaders;\n }\n for (const [name, value] of Object.entries(headers)) {\n lowercaseHeaders[name.toLowerCase()] = String(value);\n }\n return lowercaseHeaders;\n}\nfunction getRetryAfterInSeconds(headers) {\n if (!headers)\n return undefined;\n const lowercaseHeaders = convertHeaders(headers);\n const raw = lowercaseHeaders['retry-after'];\n if (!raw)\n return undefined;\n const seconds = parseInt(raw, 10);\n if (!Number.isFinite(seconds) || seconds < 0) {\n return undefined;\n }\n return Math.min(seconds, MAX_RETRY_AFTER_SECONDS);\n}\n/**\n * The Publisher is responsible for batching events and sending them to the Segment API.\n */\nclass Publisher {\n pendingFlushTimeout;\n _batch;\n _flushInterval;\n _flushAt;\n _maxRetries;\n _url;\n _flushPendingItemsCount;\n _httpRequestTimeout;\n _emitter;\n _disable;\n _httpClient;\n _writeKey;\n _basicAuth;\n _tokenManager;\n _maxTotalBackoffDuration;\n _maxRateLimitDuration;\n // Rate-limit state: set when a 429 is received, cleared on success or expiry\n _rateLimitedUntil;\n _rateLimitStartTime;\n _abortController = new AbortController();\n constructor({ host, path, maxRetries, flushAt, flushInterval, writeKey, httpRequestTimeout, httpClient, disable, oauthSettings, maxTotalBackoffDuration, maxRateLimitDuration, }, emitter) {\n this._emitter = emitter;\n this._maxRetries = maxRetries;\n this._flushAt = Math.max(flushAt, 1);\n this._flushInterval = flushInterval;\n this._url = (0, create_url_1.tryCreateFormattedUrl)(host ?? 'https://api.segment.io', path ?? '/v1/batch');\n this._httpRequestTimeout = httpRequestTimeout ?? 10000;\n this._disable = Boolean(disable);\n this._httpClient = httpClient;\n this._writeKey = writeKey;\n this._basicAuth = (0, base_64_encode_1.b64encode)(`${writeKey}:`);\n this._maxTotalBackoffDuration = maxTotalBackoffDuration ?? 43200;\n this._maxRateLimitDuration = maxRateLimitDuration ?? 43200;\n if (oauthSettings) {\n this._tokenManager = new token_manager_1.TokenManager({\n ...oauthSettings,\n httpClient: oauthSettings.httpClient ?? httpClient,\n maxRetries: oauthSettings.maxRetries ?? maxRetries,\n });\n }\n }\n abort() {\n this._abortController.abort(new Error('Flush timeout'));\n this._abortController = new AbortController();\n }\n createBatch() {\n this.pendingFlushTimeout && clearTimeout(this.pendingFlushTimeout);\n const batch = new context_batch_1.ContextBatch(this._flushAt);\n this._batch = batch;\n this.pendingFlushTimeout = setTimeout(() => {\n if (batch === this._batch) {\n this._batch = undefined;\n }\n this.pendingFlushTimeout = undefined;\n if (batch.length) {\n this.send(batch).catch(noop);\n }\n }, this._flushInterval);\n return batch;\n }\n clearBatch() {\n this.pendingFlushTimeout && clearTimeout(this.pendingFlushTimeout);\n this._batch = undefined;\n }\n flush(pendingItemsCount) {\n if (!pendingItemsCount) {\n // if number of pending items is 0, there will never be anything else entering the batch, since the app is closed.\n if (this._tokenManager) {\n this._tokenManager.stopPoller();\n }\n return;\n }\n this._flushPendingItemsCount = pendingItemsCount;\n // if batch is empty, there's nothing to flush, and when things come in, enqueue will handle them.\n if (!this._batch)\n return;\n // the number of globally pending items will always be larger or the same as batch size.\n // Any mismatch is because some globally pending items are in plugins.\n const isExpectingNoMoreItems = this._batch.length === pendingItemsCount;\n if (isExpectingNoMoreItems) {\n this.send(this._batch)\n .catch(noop)\n .finally(() => {\n // stop poller so program can exit ().\n if (this._tokenManager) {\n this._tokenManager.stopPoller();\n }\n });\n this.clearBatch();\n }\n }\n /**\n * Enqueues the context for future delivery.\n * @param ctx - Context containing a Segment event.\n * @returns a promise that resolves with the context after the event has been delivered.\n */\n enqueue(ctx) {\n const batch = this._batch ?? this.createBatch();\n const { promise: ctxPromise, resolve } = (0, analytics_generic_utils_1.createDeferred)();\n const pendingItem = {\n context: ctx,\n resolver: resolve,\n };\n /*\n The following logic ensures that a batch is never orphaned,\n and is always sent before a new batch is created.\n \n Add an event to the existing batch.\n Success: Check if batch is full or no more items are expected to come in (i.e. closing). If so, send batch.\n Failure: Assume event is too big to fit in current batch - send existing batch.\n Add an event to the new batch.\n Success: Check if batch is full and send if it is.\n Failure: Event exceeds maximum size (it will never fit), fail the event.\n */\n const addStatus = batch.tryAdd(pendingItem);\n if (addStatus.success) {\n const isExpectingNoMoreItems = batch.length === this._flushPendingItemsCount;\n const isFull = batch.length === this._flushAt;\n if (isFull || isExpectingNoMoreItems) {\n this.send(batch).catch(noop);\n this.clearBatch();\n }\n return ctxPromise;\n }\n // If the new item causes the maximimum event size to be exceeded, send the current batch and create a new one.\n if (batch.length) {\n this.send(batch).catch(noop);\n this.clearBatch();\n }\n const fallbackBatch = this.createBatch();\n const fbAddStatus = fallbackBatch.tryAdd(pendingItem);\n if (fbAddStatus.success) {\n const isExpectingNoMoreItems = fallbackBatch.length === this._flushPendingItemsCount;\n if (isExpectingNoMoreItems) {\n this.send(fallbackBatch).catch(noop);\n this.clearBatch();\n }\n return ctxPromise;\n }\n else {\n // this should only occur if max event size is exceeded\n ctx.setFailedDelivery({\n reason: new Error(fbAddStatus.message),\n });\n return Promise.resolve(ctx);\n }\n }\n _isRateLimited() {\n if (this._rateLimitedUntil === undefined)\n return false;\n // Check if maxRateLimitDuration has been exceeded.\n // Returns false so the caller can detect the cleared state and drop the batch.\n if (this._rateLimitStartTime !== undefined &&\n Date.now() - this._rateLimitStartTime >= this._maxRateLimitDuration * 1000) {\n this._rateLimitedUntil = undefined;\n this._rateLimitStartTime = undefined;\n return false;\n }\n if (Date.now() >= this._rateLimitedUntil) {\n // Rate limit window has elapsed, clear state and proceed\n this._rateLimitedUntil = undefined;\n // Keep rateLimitStartTime — it persists until success or maxRateLimitDuration\n return false;\n }\n return true;\n }\n _setRateLimitState(headers) {\n const retryAfterSeconds = getRetryAfterInSeconds(headers);\n if (typeof retryAfterSeconds === 'number') {\n // Enforce a minimum of 1 second to prevent tight loops on Retry-After: 0\n this._rateLimitedUntil =\n Date.now() + Math.max(retryAfterSeconds, 1) * 1000;\n }\n else {\n // No Retry-After header — use a default backoff of 60s\n this._rateLimitedUntil = Date.now() + 60000;\n }\n if (this._rateLimitStartTime === undefined) {\n this._rateLimitStartTime = Date.now();\n }\n }\n _clearRateLimitState() {\n this._rateLimitedUntil = undefined;\n this._rateLimitStartTime = undefined;\n }\n async send(batch) {\n if (this._flushPendingItemsCount) {\n this._flushPendingItemsCount -= batch.length;\n }\n const events = batch.getEvents();\n const maxRetries = this._maxRetries;\n const signal = this._abortController.signal;\n let countedRetries = 0;\n let totalAttempts = 0;\n let firstFailureTime;\n // eslint-disable-next-line no-constant-condition\n while (true) {\n if (signal.aborted) {\n resolveFailedBatch(batch, signal.reason);\n return;\n }\n // Check rate-limit state before making a request\n const wasRateLimited = this._rateLimitStartTime !== undefined;\n if (this._isRateLimited()) {\n const untilRetryAfter = Math.max(0, (this._rateLimitedUntil ?? Date.now()) - Date.now());\n const untilDurationLimit = this._rateLimitStartTime === undefined\n ? untilRetryAfter\n : Math.max(0, this._maxRateLimitDuration * 1000 -\n (Date.now() - this._rateLimitStartTime));\n const waitMs = Math.min(untilRetryAfter, untilDurationLimit);\n try {\n await sleep(waitMs, signal);\n }\n catch {\n resolveFailedBatch(batch, signal.reason);\n return;\n }\n continue;\n }\n // If we were rate-limited but _isRateLimited() now returns false with\n // cleared state, maxRateLimitDuration was exceeded — drop the batch.\n if (wasRateLimited && this._rateLimitStartTime === undefined) {\n resolveFailedBatch(batch, new Error('Rate limit duration exceeded'));\n return;\n }\n let failureReason;\n let shouldRetry = false;\n let shouldCountTowardsMaxRetries = true;\n try {\n if (this._disable) {\n return batch.resolveEvents();\n }\n let authString = undefined;\n if (this._tokenManager) {\n const token = await this._tokenManager.getAccessToken();\n if (token && token.access_token) {\n authString = `Bearer ${token.access_token}`;\n }\n }\n totalAttempts++;\n const headers = {\n 'Content-Type': 'application/json',\n 'User-Agent': 'analytics-node-next/latest',\n ...(totalAttempts > 1\n ? { 'X-Retry-Count': String(totalAttempts - 1) }\n : {}),\n // Prefer OAuth Bearer token when available; otherwise fall back to Basic auth with write key.\n ...(authString\n ? { Authorization: authString }\n : { Authorization: `Basic ${this._basicAuth}` }),\n };\n const request = {\n url: this._url,\n method: 'POST',\n headers: headers,\n body: JSON.stringify({\n batch: events,\n writeKey: this._writeKey,\n sentAt: new Date(),\n }),\n httpRequestTimeout: this._httpRequestTimeout,\n };\n this._emitter.emit('http_request', {\n body: request.body,\n method: request.method,\n url: request.url,\n headers: request.headers,\n });\n const response = await this._httpClient.makeRequest(request);\n this._emitter.emit('http_response', {\n status: response.status,\n statusText: response.statusText,\n url: request.url,\n body: request.body,\n headers: convertHeaders(response.headers),\n });\n // 2xx and 3xx are treated as successful delivery.\n if (response.status >= 200 && response.status < 400) {\n // Success — clear rate-limit state\n this._clearRateLimitState();\n batch.resolveEvents();\n return;\n }\n else if (this._tokenManager &&\n (response.status === 400 ||\n response.status === 401 ||\n response.status === 403 ||\n response.status === 511)) {\n // Clear OAuth token if we have OAuth data\n this._tokenManager.clearToken();\n }\n const status = response.status;\n const statusText = response.statusText;\n // 400 is always non-retriable (malformed request / size exceeded)\n if (status === 400) {\n // https://segment.com/docs/connections/sources/catalog/libraries/server/http-api/#max-request-size\n // Request either malformed or size exceeded - don't retry.\n resolveFailedBatch(batch, new Error(`[${status}] ${statusText}`));\n return;\n }\n failureReason = new Error(`[${status}] ${statusText}`);\n // 429: set rate-limit state, requeue batch, halt this flush iteration\n if (status === 429) {\n const retryAfterSeconds = getRetryAfterInSeconds(response.headers);\n if (typeof retryAfterSeconds === 'number') {\n // Has Retry-After header — set rate-limit state and retry without consuming maxRetries\n this._setRateLimitState(response.headers);\n shouldRetry = true;\n shouldCountTowardsMaxRetries = false;\n }\n else {\n // No Retry-After header — retry with backoff (counted)\n shouldRetry = true;\n shouldCountTowardsMaxRetries = true;\n }\n }\n // If we haven't already decided to retry based on 429 handling,\n // apply the general retry policy.\n if (!shouldRetry) {\n if (status >= 500 && status < 600) {\n // Retry all 5xx except 501 and 505.\n // 511 is retried only when a token manager is configured.\n if (status === 511 && this._tokenManager) {\n shouldRetry = true;\n }\n else if (![501, 505, 511].includes(status)) {\n shouldRetry = true;\n }\n }\n else if (status >= 400 && status < 500) {\n // 4xx are non-retriable except a specific allowlist.\n if ([408, 410, 429, 460].includes(status)) {\n shouldRetry = true;\n }\n else {\n resolveFailedBatch(batch, failureReason);\n return;\n }\n }\n else {\n // Treat other status codes as transient and retry.\n shouldRetry = true;\n }\n }\n }\n catch (err) {\n // Network errors get thrown, retry them.\n failureReason = err;\n shouldRetry = true;\n }\n if (!shouldRetry) {\n resolveFailedBatch(batch, failureReason);\n return;\n }\n // Track first failure time for counted retries (non-rate-limit backoff path)\n if (shouldCountTowardsMaxRetries) {\n if (!firstFailureTime)\n firstFailureTime = Date.now();\n if (Date.now() - firstFailureTime >\n this._maxTotalBackoffDuration * 1000) {\n resolveFailedBatch(batch, failureReason);\n return;\n }\n }\n if (shouldCountTowardsMaxRetries) {\n countedRetries++;\n if (countedRetries > maxRetries) {\n resolveFailedBatch(batch, failureReason);\n return;\n }\n }\n // Safety cap: prevent infinite retries when server keeps returning Retry-After\n if (totalAttempts > maxRetries + MAX_RETRY_AFTER_RETRIES) {\n resolveFailedBatch(batch, failureReason);\n return;\n }\n const delayMs = shouldCountTowardsMaxRetries\n ? (0, analytics_core_1.backoff)({\n attempt: countedRetries,\n minTimeout: 500,\n maxTimeout: 60000,\n })\n : 0;\n try {\n await sleep(delayMs, signal);\n }\n catch {\n resolveFailedBatch(batch, signal.reason);\n return;\n }\n }\n }\n}\nexports.Publisher = Publisher;\nfunction resolveFailedBatch(batch, reason) {\n batch.getContexts().forEach((ctx) => ctx.setFailedDelivery({ reason }));\n batch.resolveEvents();\n}\n//# sourceMappingURL=publisher.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.detectRuntime = void 0;\nconst detectRuntime = () => {\n if (typeof process === 'object' &&\n process &&\n typeof process.env === 'object' &&\n process.env &&\n typeof process.version === 'string') {\n return 'node';\n }\n if (typeof window === 'object') {\n return 'browser';\n }\n // @ts-ignore\n if (typeof WebSocketPair !== 'undefined') {\n return 'cloudflare-worker';\n }\n // @ts-ignore\n if (typeof EdgeRuntime === 'string') {\n return 'vercel-edge';\n }\n if (\n // @ts-ignore\n typeof WorkerGlobalScope !== 'undefined' &&\n // @ts-ignore\n typeof importScripts === 'function') {\n return 'web-worker';\n }\n return 'unknown';\n};\nexports.detectRuntime = detectRuntime;\n//# sourceMappingURL=env.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.createConfiguredNodePlugin = exports.createNodePlugin = void 0;\nconst publisher_1 = require(\"./publisher\");\nconst version_1 = require(\"../../generated/version\");\nconst env_1 = require(\"../../lib/env\");\nfunction normalizeEvent(ctx) {\n ctx.updateEvent('context.library.name', '@segment/analytics-node');\n ctx.updateEvent('context.library.version', version_1.version);\n const runtime = (0, env_1.detectRuntime)();\n if (runtime === 'node') {\n // eslint-disable-next-line no-restricted-globals\n ctx.updateEvent('_metadata.nodeVersion', process.version);\n }\n ctx.updateEvent('_metadata.jsRuntime', runtime);\n}\nfunction createNodePlugin(publisher) {\n function action(ctx) {\n normalizeEvent(ctx);\n return publisher.enqueue(ctx);\n }\n return {\n name: 'Segment.io',\n type: 'destination',\n version: '1.0.0',\n isLoaded: () => true,\n load: () => Promise.resolve(),\n alias: action,\n group: action,\n identify: action,\n page: action,\n screen: action,\n track: action,\n };\n}\nexports.createNodePlugin = createNodePlugin;\nconst createConfiguredNodePlugin = (props, emitter) => {\n const publisher = new publisher_1.Publisher(props, emitter);\n return {\n publisher: publisher,\n plugin: createNodePlugin(publisher),\n };\n};\nexports.createConfiguredNodePlugin = createConfiguredNodePlugin;\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.createMessageId = void 0;\nconst uuid_1 = require(\"./uuid\");\n/**\n * get a unique messageId with a very low chance of collisions\n * using @lukeed/uuid/secure uses the node crypto module, which is the fastest\n * @example \"node-next-1668208232027-743be593-7789-4b74-8078-cbcc8894c586\"\n */\nconst createMessageId = () => {\n return `node-next-${Date.now()}-${(0, uuid_1.uuid)()}`;\n};\nexports.createMessageId = createMessageId;\n//# sourceMappingURL=get-message-id.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.NodeEventFactory = void 0;\nconst analytics_core_1 = require(\"@segment/analytics-core\");\nconst get_message_id_1 = require(\"../lib/get-message-id\");\nclass NodeEventFactory extends analytics_core_1.CoreEventFactory {\n constructor() {\n super({\n createMessageId: get_message_id_1.createMessageId,\n onFinishedEvent: (event) => {\n (0, analytics_core_1.assertUserIdentity)(event);\n },\n });\n }\n}\nexports.NodeEventFactory = NodeEventFactory;\n//# sourceMappingURL=event-factory.js.map","\"use strict\";\n// create a derived class since we may want to add node specific things to Context later\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Context = void 0;\nconst analytics_core_1 = require(\"@segment/analytics-core\");\n// While this is not a type, it is a definition\nclass Context extends analytics_core_1.CoreContext {\n static system() {\n return new this({ type: 'track', event: 'system' });\n }\n}\nexports.Context = Context;\n//# sourceMappingURL=context.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.dispatchAndEmit = void 0;\nconst analytics_core_1 = require(\"@segment/analytics-core\");\nconst context_1 = require(\"./context\");\nconst normalizeDispatchCb = (cb) => (ctx) => {\n const failedDelivery = ctx.failedDelivery();\n return failedDelivery ? cb(failedDelivery.reason, ctx) : cb(undefined, ctx);\n};\n/* Dispatch function, but swallow promise rejections and use event emitter instead */\nconst dispatchAndEmit = async (event, queue, emitter, callback) => {\n try {\n const context = new context_1.Context(event);\n const ctx = await (0, analytics_core_1.dispatch)(context, queue, emitter, {\n ...(callback ? { callback: normalizeDispatchCb(callback) } : {}),\n });\n const failedDelivery = ctx.failedDelivery();\n if (failedDelivery) {\n emitter.emit('error', {\n code: 'delivery_failure',\n reason: failedDelivery.reason,\n ctx: ctx,\n });\n }\n else {\n emitter.emit(event.type, ctx);\n }\n }\n catch (err) {\n emitter.emit('error', {\n code: 'unknown',\n reason: err,\n });\n }\n};\nexports.dispatchAndEmit = dispatchAndEmit;\n//# sourceMappingURL=dispatch-emit.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.NodeEmitter = void 0;\nconst analytics_generic_utils_1 = require(\"@segment/analytics-generic-utils\");\nclass NodeEmitter extends analytics_generic_utils_1.Emitter {\n}\nexports.NodeEmitter = NodeEmitter;\n//# sourceMappingURL=emitter.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.NodeEventQueue = void 0;\nconst analytics_core_1 = require(\"@segment/analytics-core\");\nclass NodePriorityQueue extends analytics_core_1.PriorityQueue {\n constructor() {\n super(1, []);\n }\n // do not use an internal \"seen\" map\n getAttempts(ctx) {\n return ctx.attempts ?? 0;\n }\n updateAttempts(ctx) {\n ctx.attempts = this.getAttempts(ctx) + 1;\n return this.getAttempts(ctx);\n }\n}\nclass NodeEventQueue extends analytics_core_1.CoreEventQueue {\n constructor() {\n super(new NodePriorityQueue());\n }\n}\nexports.NodeEventQueue = NodeEventQueue;\n//# sourceMappingURL=event-queue.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.abortSignalAfterTimeout = exports.AbortController = exports.AbortSignal = void 0;\n/**\n * use non-native event emitter for the benefit of non-node runtimes like CF workers.\n */\nconst analytics_generic_utils_1 = require(\"@segment/analytics-generic-utils\");\nconst env_1 = require(\"./env\");\n/**\n * adapted from: https://www.npmjs.com/package/node-abort-controller\n */\nclass AbortSignal {\n onabort = null;\n aborted = false;\n eventEmitter = new analytics_generic_utils_1.Emitter();\n toString() {\n return '[object AbortSignal]';\n }\n get [Symbol.toStringTag]() {\n return 'AbortSignal';\n }\n removeEventListener(...args) {\n this.eventEmitter.off(...args);\n }\n addEventListener(...args) {\n this.eventEmitter.on(...args);\n }\n dispatchEvent(type) {\n const event = { type, target: this };\n const handlerName = `on${type}`;\n if (typeof this[handlerName] === 'function') {\n ;\n this[handlerName](event);\n }\n this.eventEmitter.emit(type, event);\n }\n}\nexports.AbortSignal = AbortSignal;\n/**\n * This polyfill is only neccessary to support versions of node < 14.17.\n * Can be removed once node 14 support is dropped.\n */\nclass AbortController {\n signal = new AbortSignal();\n abort() {\n if (this.signal.aborted)\n return;\n this.signal.aborted = true;\n this.signal.dispatchEvent('abort');\n }\n toString() {\n return '[object AbortController]';\n }\n get [Symbol.toStringTag]() {\n return 'AbortController';\n }\n}\nexports.AbortController = AbortController;\n/**\n * @param timeoutMs - Set a request timeout, after which the request is cancelled.\n */\nconst abortSignalAfterTimeout = (timeoutMs) => {\n if ((0, env_1.detectRuntime)() === 'cloudflare-worker') {\n return []; // TODO: this is broken in cloudflare workers, otherwise results in \"A hanging Promise was canceled...\" error.\n }\n const ac = new (globalThis.AbortController || AbortController)();\n const timeoutId = setTimeout(() => {\n ac.abort();\n }, timeoutMs);\n // Allow Node.js processes to exit early if only the timeout is running\n timeoutId?.unref?.();\n return [ac.signal, timeoutId];\n};\nexports.abortSignalAfterTimeout = abortSignalAfterTimeout;\n//# sourceMappingURL=abort.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.fetch = void 0;\nconst fetch = (...args) => {\n return globalThis.fetch(...args);\n};\nexports.fetch = fetch;\n//# sourceMappingURL=fetch.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.FetchHTTPClient = void 0;\nconst abort_1 = require(\"./abort\");\nconst fetch_1 = require(\"./fetch\");\n/**\n * Default HTTP client implementation using fetch\n */\nclass FetchHTTPClient {\n _fetch;\n constructor(fetchFn) {\n this._fetch = fetchFn ?? fetch_1.fetch;\n }\n async makeRequest(options) {\n const [signal, timeoutId] = (0, abort_1.abortSignalAfterTimeout)(options.httpRequestTimeout);\n const requestInit = {\n url: options.url,\n method: options.method,\n headers: options.headers,\n body: options.body,\n signal: signal,\n };\n return this._fetch(options.url, requestInit).finally(() => clearTimeout(timeoutId));\n }\n}\nexports.FetchHTTPClient = FetchHTTPClient;\n//# sourceMappingURL=http-client.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Analytics = void 0;\nconst analytics_core_1 = require(\"@segment/analytics-core\");\nconst settings_1 = require(\"./settings\");\nconst version_1 = require(\"../generated/version\");\nconst segmentio_1 = require(\"../plugins/segmentio\");\nconst event_factory_1 = require(\"./event-factory\");\nconst dispatch_emit_1 = require(\"./dispatch-emit\");\nconst emitter_1 = require(\"./emitter\");\nconst context_1 = require(\"./context\");\nconst event_queue_1 = require(\"./event-queue\");\nconst http_client_1 = require(\"../lib/http-client\");\nclass Analytics extends emitter_1.NodeEmitter {\n _eventFactory;\n _isClosed = false;\n _pendingEvents = 0;\n _closeAndFlushDefaultTimeout;\n _publisher;\n _isFlushing = false;\n _queue;\n ready;\n constructor(settings) {\n super();\n (0, settings_1.validateSettings)(settings);\n this._eventFactory = new event_factory_1.NodeEventFactory();\n this._queue = new event_queue_1.NodeEventQueue();\n const flushInterval = settings.flushInterval ?? 10000;\n this._closeAndFlushDefaultTimeout = Math.max(60000, flushInterval) * 1.25;\n const { plugin, publisher } = (0, segmentio_1.createConfiguredNodePlugin)({\n writeKey: settings.writeKey,\n host: settings.host,\n path: settings.path,\n maxRetries: settings.maxRetries ?? 10,\n flushAt: settings.flushAt ?? settings.maxEventsInBatch ?? 15,\n httpRequestTimeout: settings.httpRequestTimeout,\n disable: settings.disable,\n flushInterval,\n httpClient: typeof settings.httpClient === 'function'\n ? new http_client_1.FetchHTTPClient(settings.httpClient)\n : settings.httpClient ?? new http_client_1.FetchHTTPClient(),\n oauthSettings: settings.oauthSettings,\n maxTotalBackoffDuration: settings.maxTotalBackoffDuration,\n maxRateLimitDuration: settings.maxRateLimitDuration,\n }, this);\n this._publisher = publisher;\n this.ready = this.register(plugin).then(() => undefined);\n this.emit('initialize', settings);\n (0, analytics_core_1.bindAll)(this);\n }\n get VERSION() {\n return version_1.version;\n }\n /**\n * Call this method to stop collecting new events and flush all existing events.\n * This method also waits for any event method-specific callbacks to be triggered,\n * and any of their subsequent promises to be resolved/rejected.\n */\n closeAndFlush({ timeout = this._closeAndFlushDefaultTimeout, } = {}) {\n return this.flush({ timeout, close: true });\n }\n /**\n * Call this method to flush all existing events..\n * This method also waits for any event method-specific callbacks to be triggered,\n * and any of their subsequent promises to be resolved/rejected.\n */\n async flush({ timeout, close = false, } = {}) {\n if (this._isFlushing) {\n // if we're already flushing, then we don't need to do anything\n console.warn('Overlapping flush calls detected. Please wait for the previous flush to finish before calling .flush again');\n return;\n }\n else {\n this._isFlushing = true;\n }\n if (close) {\n this._isClosed = true;\n }\n this._publisher.flush(this._pendingEvents);\n const promise = new Promise((resolve) => {\n if (!this._pendingEvents) {\n resolve();\n }\n else {\n this.once('drained', () => {\n resolve();\n });\n }\n }).finally(() => {\n this._isFlushing = false;\n });\n if (!timeout)\n return promise;\n return (0, analytics_core_1.pTimeout)(promise, timeout).catch(() => {\n this._publisher.abort();\n });\n }\n _dispatch(segmentEvent, callback) {\n if (this._isClosed) {\n this.emit('call_after_close', segmentEvent);\n return undefined;\n }\n this._pendingEvents++;\n (0, dispatch_emit_1.dispatchAndEmit)(segmentEvent, this._queue, this, callback)\n .catch((ctx) => ctx)\n .finally(() => {\n this._pendingEvents--;\n if (!this._pendingEvents) {\n this.emit('drained');\n }\n });\n }\n /**\n * Combines two unassociated user identities.\n * @link https://segment.com/docs/connections/sources/catalog/libraries/server/node/#alias\n */\n alias({ userId, previousId, context, timestamp, integrations, messageId, }, callback) {\n const segmentEvent = this._eventFactory.alias(userId, previousId, {\n context,\n integrations,\n timestamp,\n messageId,\n });\n this._dispatch(segmentEvent, callback);\n }\n /**\n * Associates an identified user with a collective.\n * @link https://segment.com/docs/connections/sources/catalog/libraries/server/node/#group\n */\n group({ timestamp, groupId, userId, anonymousId, traits = {}, context, integrations, messageId, }, callback) {\n const segmentEvent = this._eventFactory.group(groupId, traits, {\n context,\n anonymousId,\n userId,\n timestamp,\n integrations,\n messageId,\n });\n this._dispatch(segmentEvent, callback);\n }\n /**\n * Includes a unique userId and (maybe anonymousId) and any optional traits you know about them.\n * @link https://segment.com/docs/connections/sources/catalog/libraries/server/node/#identify\n */\n identify({ userId, anonymousId, traits = {}, context, timestamp, integrations, messageId, }, callback) {\n const segmentEvent = this._eventFactory.identify(userId, traits, {\n context,\n anonymousId,\n userId,\n timestamp,\n integrations,\n messageId,\n });\n this._dispatch(segmentEvent, callback);\n }\n /**\n * The page method lets you record page views on your website, along with optional extra information about the page being viewed.\n * @link https://segment.com/docs/connections/sources/catalog/libraries/server/node/#page\n */\n page({ userId, anonymousId, category, name, properties, context, timestamp, integrations, messageId, }, callback) {\n const segmentEvent = this._eventFactory.page(category ?? null, name ?? null, properties, { context, anonymousId, userId, timestamp, integrations, messageId });\n this._dispatch(segmentEvent, callback);\n }\n /**\n * Records screen views on your app, along with optional extra information\n * about the screen viewed by the user.\n *\n * TODO: This is not documented on the segment docs ATM (for node).\n */\n screen({ userId, anonymousId, category, name, properties, context, timestamp, integrations, messageId, }, callback) {\n const segmentEvent = this._eventFactory.screen(category ?? null, name ?? null, properties, { context, anonymousId, userId, timestamp, integrations, messageId });\n this._dispatch(segmentEvent, callback);\n }\n /**\n * Records actions your users perform.\n * @link https://segment.com/docs/connections/sources/catalog/libraries/server/node/#track\n */\n track({ userId, anonymousId, event, properties, context, timestamp, integrations, messageId, }, callback) {\n const segmentEvent = this._eventFactory.track(event, properties, {\n context,\n userId,\n anonymousId,\n timestamp,\n integrations,\n messageId,\n });\n this._dispatch(segmentEvent, callback);\n }\n /**\n * Registers one or more plugins to augment Analytics functionality.\n * @param plugins\n */\n register(...plugins) {\n return this._queue.criticalTasks.run(async () => {\n const ctx = context_1.Context.system();\n const registrations = plugins.map((xt) => this._queue.register(ctx, xt, this));\n await Promise.all(registrations);\n this.emit('register', plugins.map((el) => el.name));\n });\n }\n /**\n * Deregisters one or more plugins based on their names.\n * @param pluginNames - The names of one or more plugins to deregister.\n */\n async deregister(...pluginNames) {\n const ctx = context_1.Context.system();\n const deregistrations = pluginNames.map((pl) => {\n const plugin = this._queue.plugins.find((p) => p.name === pl);\n if (plugin) {\n return this._queue.deregister(ctx, plugin, this);\n }\n else {\n ctx.log('warn', `plugin ${pl} not found`);\n }\n });\n await Promise.all(deregistrations);\n this.emit('deregister', pluginNames);\n }\n}\nexports.Analytics = Analytics;\n//# sourceMappingURL=analytics-node.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.FetchHTTPClient = exports.Context = exports.Analytics = void 0;\nvar analytics_node_1 = require(\"./app/analytics-node\");\nObject.defineProperty(exports, \"Analytics\", { enumerable: true, get: function () { return analytics_node_1.Analytics; } });\nvar context_1 = require(\"./app/context\");\nObject.defineProperty(exports, \"Context\", { enumerable: true, get: function () { return context_1.Context; } });\nvar http_client_1 = require(\"./lib/http-client\");\nObject.defineProperty(exports, \"FetchHTTPClient\", { enumerable: true, get: function () { return http_client_1.FetchHTTPClient; } });\n//# sourceMappingURL=index.common.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst tslib_1 = require(\"tslib\");\ntslib_1.__exportStar(require(\"./index.common\"), exports);\n// export Analytics as both a named export and a default export (for backwards-compat. reasons)\nconst index_common_1 = require(\"./index.common\");\nexports.default = index_common_1.Analytics;\n//# sourceMappingURL=index.js.map"],"x_google_ignoreList":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"cjs-C2fugEI8.cjs","names":["node_crypto_1","node_buffer_1","node_crypto_1","util","node_crypto_1","crypto","node_crypto_1","node_crypto_1","node_buffer_1","node_crypto_1","node_crypto_1","node_crypto_1","node_util_1","node_util_1","node_crypto_1","node_crypto_1","node_crypto_1","node_util_1","node_crypto_1","node_crypto_1","node_crypto_1","node_crypto_1","node_crypto_1","node_crypto_1","crypto","node_util_1","node_util_1"],"sources":["../../../node_modules/.pnpm/@segment+analytics-core@1.8.3/node_modules/@segment/analytics-core/dist/cjs/emitter/interface.js","../../../node_modules/.pnpm/@segment+analytics-core@1.8.3/node_modules/@segment/analytics-core/dist/cjs/plugins/index.js","../../../node_modules/.pnpm/@segment+analytics-core@1.8.3/node_modules/@segment/analytics-core/dist/cjs/events/interfaces.js","../../../node_modules/.pnpm/dset@3.1.4/node_modules/dset/dist/index.js","../../../node_modules/.pnpm/@segment+analytics-core@1.8.3/node_modules/@segment/analytics-core/dist/cjs/utils/pick.js","../../../node_modules/.pnpm/@segment+analytics-core@1.8.3/node_modules/@segment/analytics-core/dist/cjs/validation/errors.js","../../../node_modules/.pnpm/@segment+analytics-core@1.8.3/node_modules/@segment/analytics-core/dist/cjs/validation/helpers.js","../../../node_modules/.pnpm/@segment+analytics-core@1.8.3/node_modules/@segment/analytics-core/dist/cjs/validation/assertions.js","../../../node_modules/.pnpm/@segment+analytics-core@1.8.3/node_modules/@segment/analytics-core/dist/cjs/events/index.js","../../../node_modules/.pnpm/@segment+analytics-core@1.8.3/node_modules/@segment/analytics-core/dist/cjs/callback/index.js","../../../node_modules/.pnpm/@segment+analytics-generic-utils@1.2.0/node_modules/@segment/analytics-generic-utils/dist/cjs/create-deferred/create-deferred.js","../../../node_modules/.pnpm/@segment+analytics-generic-utils@1.2.0/node_modules/@segment/analytics-generic-utils/dist/cjs/create-deferred/index.js","../../../node_modules/.pnpm/@segment+analytics-generic-utils@1.2.0/node_modules/@segment/analytics-generic-utils/dist/cjs/emitter/emitter.js","../../../node_modules/.pnpm/@segment+analytics-generic-utils@1.2.0/node_modules/@segment/analytics-generic-utils/dist/cjs/emitter/index.js","../../../node_modules/.pnpm/@segment+analytics-generic-utils@1.2.0/node_modules/@segment/analytics-generic-utils/dist/cjs/index.js","../../../node_modules/.pnpm/@segment+analytics-core@1.8.3/node_modules/@segment/analytics-core/dist/cjs/priority-queue/backoff.js","../../../node_modules/.pnpm/@segment+analytics-core@1.8.3/node_modules/@segment/analytics-core/dist/cjs/priority-queue/index.js","../../../node_modules/.pnpm/@lukeed+uuid@2.0.1/node_modules/@lukeed/uuid/dist/index.js","../../../node_modules/.pnpm/@segment+analytics-core@1.8.3/node_modules/@segment/analytics-core/dist/cjs/logger/index.js","../../../node_modules/.pnpm/@segment+analytics-core@1.8.3/node_modules/@segment/analytics-core/dist/cjs/stats/index.js","../../../node_modules/.pnpm/@segment+analytics-core@1.8.3/node_modules/@segment/analytics-core/dist/cjs/context/index.js","../../../node_modules/.pnpm/@segment+analytics-core@1.8.3/node_modules/@segment/analytics-core/dist/cjs/utils/group-by.js","../../../node_modules/.pnpm/@segment+analytics-core@1.8.3/node_modules/@segment/analytics-core/dist/cjs/utils/is-thenable.js","../../../node_modules/.pnpm/@segment+analytics-core@1.8.3/node_modules/@segment/analytics-core/dist/cjs/task/task-group.js","../../../node_modules/.pnpm/@segment+analytics-core@1.8.3/node_modules/@segment/analytics-core/dist/cjs/queue/delivery.js","../../../node_modules/.pnpm/@segment+analytics-core@1.8.3/node_modules/@segment/analytics-core/dist/cjs/queue/event-queue.js","../../../node_modules/.pnpm/@segment+analytics-core@1.8.3/node_modules/@segment/analytics-core/dist/cjs/analytics/index.js","../../../node_modules/.pnpm/@segment+analytics-core@1.8.3/node_modules/@segment/analytics-core/dist/cjs/analytics/dispatch.js","../../../node_modules/.pnpm/@segment+analytics-core@1.8.3/node_modules/@segment/analytics-core/dist/cjs/utils/bind-all.js","../../../node_modules/.pnpm/@segment+analytics-core@1.8.3/node_modules/@segment/analytics-core/dist/cjs/index.js","../../../node_modules/.pnpm/@segment+analytics-node@3.1.0/node_modules/@segment/analytics-node/dist/cjs/app/settings.js","../../../node_modules/.pnpm/@segment+analytics-node@3.1.0/node_modules/@segment/analytics-node/dist/cjs/generated/version.js","../../../node_modules/.pnpm/@segment+analytics-node@3.1.0/node_modules/@segment/analytics-node/dist/cjs/lib/create-url.js","../../../node_modules/.pnpm/@segment+analytics-node@3.1.0/node_modules/@segment/analytics-node/dist/cjs/lib/uuid.js","../../../node_modules/.pnpm/@segment+analytics-node@3.1.0/node_modules/@segment/analytics-node/dist/cjs/plugins/segmentio/context-batch.js","../../../node_modules/.pnpm/jose@5.10.0/node_modules/jose/dist/node/cjs/runtime/digest.js","../../../node_modules/.pnpm/jose@5.10.0/node_modules/jose/dist/node/cjs/lib/buffer_utils.js","../../../node_modules/.pnpm/jose@5.10.0/node_modules/jose/dist/node/cjs/runtime/base64url.js","../../../node_modules/.pnpm/jose@5.10.0/node_modules/jose/dist/node/cjs/util/errors.js","../../../node_modules/.pnpm/jose@5.10.0/node_modules/jose/dist/node/cjs/runtime/random.js","../../../node_modules/.pnpm/jose@5.10.0/node_modules/jose/dist/node/cjs/lib/iv.js","../../../node_modules/.pnpm/jose@5.10.0/node_modules/jose/dist/node/cjs/lib/check_iv_length.js","../../../node_modules/.pnpm/jose@5.10.0/node_modules/jose/dist/node/cjs/runtime/is_key_object.js","../../../node_modules/.pnpm/jose@5.10.0/node_modules/jose/dist/node/cjs/runtime/check_cek_length.js","../../../node_modules/.pnpm/jose@5.10.0/node_modules/jose/dist/node/cjs/runtime/timing_safe_equal.js","../../../node_modules/.pnpm/jose@5.10.0/node_modules/jose/dist/node/cjs/runtime/cbc_tag.js","../../../node_modules/.pnpm/jose@5.10.0/node_modules/jose/dist/node/cjs/runtime/webcrypto.js","../../../node_modules/.pnpm/jose@5.10.0/node_modules/jose/dist/node/cjs/lib/crypto_key.js","../../../node_modules/.pnpm/jose@5.10.0/node_modules/jose/dist/node/cjs/lib/invalid_key_input.js","../../../node_modules/.pnpm/jose@5.10.0/node_modules/jose/dist/node/cjs/runtime/ciphers.js","../../../node_modules/.pnpm/jose@5.10.0/node_modules/jose/dist/node/cjs/runtime/is_key_like.js","../../../node_modules/.pnpm/jose@5.10.0/node_modules/jose/dist/node/cjs/runtime/decrypt.js","../../../node_modules/.pnpm/jose@5.10.0/node_modules/jose/dist/node/cjs/lib/is_disjoint.js","../../../node_modules/.pnpm/jose@5.10.0/node_modules/jose/dist/node/cjs/lib/is_object.js","../../../node_modules/.pnpm/jose@5.10.0/node_modules/jose/dist/node/cjs/runtime/aeskw.js","../../../node_modules/.pnpm/jose@5.10.0/node_modules/jose/dist/node/cjs/lib/is_jwk.js","../../../node_modules/.pnpm/jose@5.10.0/node_modules/jose/dist/node/cjs/runtime/get_named_curve.js","../../../node_modules/.pnpm/jose@5.10.0/node_modules/jose/dist/node/cjs/runtime/ecdhes.js","../../../node_modules/.pnpm/jose@5.10.0/node_modules/jose/dist/node/cjs/lib/check_p2s.js","../../../node_modules/.pnpm/jose@5.10.0/node_modules/jose/dist/node/cjs/runtime/pbes2kw.js","../../../node_modules/.pnpm/jose@5.10.0/node_modules/jose/dist/node/cjs/runtime/check_key_length.js","../../../node_modules/.pnpm/jose@5.10.0/node_modules/jose/dist/node/cjs/runtime/rsaes.js","../../../node_modules/.pnpm/jose@5.10.0/node_modules/jose/dist/node/cjs/runtime/normalize_key.js","../../../node_modules/.pnpm/jose@5.10.0/node_modules/jose/dist/node/cjs/lib/cek.js","../../../node_modules/.pnpm/jose@5.10.0/node_modules/jose/dist/node/cjs/runtime/asn1.js","../../../node_modules/.pnpm/jose@5.10.0/node_modules/jose/dist/node/cjs/runtime/jwk_to_key.js","../../../node_modules/.pnpm/jose@5.10.0/node_modules/jose/dist/node/cjs/key/import.js","../../../node_modules/.pnpm/jose@5.10.0/node_modules/jose/dist/node/cjs/lib/check_key_type.js","../../../node_modules/.pnpm/jose@5.10.0/node_modules/jose/dist/node/cjs/runtime/encrypt.js","../../../node_modules/.pnpm/jose@5.10.0/node_modules/jose/dist/node/cjs/lib/aesgcmkw.js","../../../node_modules/.pnpm/jose@5.10.0/node_modules/jose/dist/node/cjs/lib/decrypt_key_management.js","../../../node_modules/.pnpm/jose@5.10.0/node_modules/jose/dist/node/cjs/lib/validate_crit.js","../../../node_modules/.pnpm/jose@5.10.0/node_modules/jose/dist/node/cjs/lib/validate_algorithms.js","../../../node_modules/.pnpm/jose@5.10.0/node_modules/jose/dist/node/cjs/jwe/flattened/decrypt.js","../../../node_modules/.pnpm/jose@5.10.0/node_modules/jose/dist/node/cjs/jwe/compact/decrypt.js","../../../node_modules/.pnpm/jose@5.10.0/node_modules/jose/dist/node/cjs/jwe/general/decrypt.js","../../../node_modules/.pnpm/jose@5.10.0/node_modules/jose/dist/node/cjs/lib/private_symbols.js","../../../node_modules/.pnpm/jose@5.10.0/node_modules/jose/dist/node/cjs/runtime/key_to_jwk.js","../../../node_modules/.pnpm/jose@5.10.0/node_modules/jose/dist/node/cjs/key/export.js","../../../node_modules/.pnpm/jose@5.10.0/node_modules/jose/dist/node/cjs/lib/encrypt_key_management.js","../../../node_modules/.pnpm/jose@5.10.0/node_modules/jose/dist/node/cjs/jwe/flattened/encrypt.js","../../../node_modules/.pnpm/jose@5.10.0/node_modules/jose/dist/node/cjs/jwe/general/encrypt.js","../../../node_modules/.pnpm/jose@5.10.0/node_modules/jose/dist/node/cjs/runtime/dsa_digest.js","../../../node_modules/.pnpm/jose@5.10.0/node_modules/jose/dist/node/cjs/runtime/node_key.js","../../../node_modules/.pnpm/jose@5.10.0/node_modules/jose/dist/node/cjs/runtime/hmac_digest.js","../../../node_modules/.pnpm/jose@5.10.0/node_modules/jose/dist/node/cjs/runtime/get_sign_verify_key.js","../../../node_modules/.pnpm/jose@5.10.0/node_modules/jose/dist/node/cjs/runtime/sign.js","../../../node_modules/.pnpm/jose@5.10.0/node_modules/jose/dist/node/cjs/runtime/verify.js","../../../node_modules/.pnpm/jose@5.10.0/node_modules/jose/dist/node/cjs/jws/flattened/verify.js","../../../node_modules/.pnpm/jose@5.10.0/node_modules/jose/dist/node/cjs/jws/compact/verify.js","../../../node_modules/.pnpm/jose@5.10.0/node_modules/jose/dist/node/cjs/jws/general/verify.js","../../../node_modules/.pnpm/jose@5.10.0/node_modules/jose/dist/node/cjs/lib/epoch.js","../../../node_modules/.pnpm/jose@5.10.0/node_modules/jose/dist/node/cjs/lib/secs.js","../../../node_modules/.pnpm/jose@5.10.0/node_modules/jose/dist/node/cjs/lib/jwt_claims_set.js","../../../node_modules/.pnpm/jose@5.10.0/node_modules/jose/dist/node/cjs/jwt/verify.js","../../../node_modules/.pnpm/jose@5.10.0/node_modules/jose/dist/node/cjs/jwt/decrypt.js","../../../node_modules/.pnpm/jose@5.10.0/node_modules/jose/dist/node/cjs/jwe/compact/encrypt.js","../../../node_modules/.pnpm/jose@5.10.0/node_modules/jose/dist/node/cjs/jws/flattened/sign.js","../../../node_modules/.pnpm/jose@5.10.0/node_modules/jose/dist/node/cjs/jws/compact/sign.js","../../../node_modules/.pnpm/jose@5.10.0/node_modules/jose/dist/node/cjs/jws/general/sign.js","../../../node_modules/.pnpm/jose@5.10.0/node_modules/jose/dist/node/cjs/jwt/produce.js","../../../node_modules/.pnpm/jose@5.10.0/node_modules/jose/dist/node/cjs/jwt/sign.js","../../../node_modules/.pnpm/jose@5.10.0/node_modules/jose/dist/node/cjs/jwt/encrypt.js","../../../node_modules/.pnpm/jose@5.10.0/node_modules/jose/dist/node/cjs/jwk/thumbprint.js","../../../node_modules/.pnpm/jose@5.10.0/node_modules/jose/dist/node/cjs/jwk/embedded.js","../../../node_modules/.pnpm/jose@5.10.0/node_modules/jose/dist/node/cjs/jwks/local.js","../../../node_modules/.pnpm/jose@5.10.0/node_modules/jose/dist/node/cjs/runtime/fetch_jwks.js","../../../node_modules/.pnpm/jose@5.10.0/node_modules/jose/dist/node/cjs/jwks/remote.js","../../../node_modules/.pnpm/jose@5.10.0/node_modules/jose/dist/node/cjs/jwt/unsecured.js","../../../node_modules/.pnpm/jose@5.10.0/node_modules/jose/dist/node/cjs/util/base64url.js","../../../node_modules/.pnpm/jose@5.10.0/node_modules/jose/dist/node/cjs/util/decode_protected_header.js","../../../node_modules/.pnpm/jose@5.10.0/node_modules/jose/dist/node/cjs/util/decode_jwt.js","../../../node_modules/.pnpm/jose@5.10.0/node_modules/jose/dist/node/cjs/runtime/generate.js","../../../node_modules/.pnpm/jose@5.10.0/node_modules/jose/dist/node/cjs/key/generate_key_pair.js","../../../node_modules/.pnpm/jose@5.10.0/node_modules/jose/dist/node/cjs/key/generate_secret.js","../../../node_modules/.pnpm/jose@5.10.0/node_modules/jose/dist/node/cjs/runtime/runtime.js","../../../node_modules/.pnpm/jose@5.10.0/node_modules/jose/dist/node/cjs/util/runtime.js","../../../node_modules/.pnpm/jose@5.10.0/node_modules/jose/dist/node/cjs/index.js","../../../node_modules/.pnpm/@segment+analytics-node@3.1.0/node_modules/@segment/analytics-node/dist/cjs/lib/token-manager.js","../../../node_modules/.pnpm/@segment+analytics-node@3.1.0/node_modules/@segment/analytics-node/dist/cjs/lib/base-64-encode.js","../../../node_modules/.pnpm/@segment+analytics-node@3.1.0/node_modules/@segment/analytics-node/dist/cjs/plugins/segmentio/publisher.js","../../../node_modules/.pnpm/@segment+analytics-node@3.1.0/node_modules/@segment/analytics-node/dist/cjs/lib/env.js","../../../node_modules/.pnpm/@segment+analytics-node@3.1.0/node_modules/@segment/analytics-node/dist/cjs/plugins/segmentio/index.js","../../../node_modules/.pnpm/@segment+analytics-node@3.1.0/node_modules/@segment/analytics-node/dist/cjs/lib/get-message-id.js","../../../node_modules/.pnpm/@segment+analytics-node@3.1.0/node_modules/@segment/analytics-node/dist/cjs/app/event-factory.js","../../../node_modules/.pnpm/@segment+analytics-node@3.1.0/node_modules/@segment/analytics-node/dist/cjs/app/context.js","../../../node_modules/.pnpm/@segment+analytics-node@3.1.0/node_modules/@segment/analytics-node/dist/cjs/app/dispatch-emit.js","../../../node_modules/.pnpm/@segment+analytics-node@3.1.0/node_modules/@segment/analytics-node/dist/cjs/app/emitter.js","../../../node_modules/.pnpm/@segment+analytics-node@3.1.0/node_modules/@segment/analytics-node/dist/cjs/app/event-queue.js","../../../node_modules/.pnpm/@segment+analytics-node@3.1.0/node_modules/@segment/analytics-node/dist/cjs/lib/abort.js","../../../node_modules/.pnpm/@segment+analytics-node@3.1.0/node_modules/@segment/analytics-node/dist/cjs/lib/fetch.js","../../../node_modules/.pnpm/@segment+analytics-node@3.1.0/node_modules/@segment/analytics-node/dist/cjs/lib/http-client.js","../../../node_modules/.pnpm/@segment+analytics-node@3.1.0/node_modules/@segment/analytics-node/dist/cjs/app/analytics-node.js","../../../node_modules/.pnpm/@segment+analytics-node@3.1.0/node_modules/@segment/analytics-node/dist/cjs/index.common.js","../../../node_modules/.pnpm/@segment+analytics-node@3.1.0/node_modules/@segment/analytics-node/dist/cjs/index.js"],"sourcesContent":["\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n//# sourceMappingURL=interface.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n//# sourceMappingURL=interfaces.js.map","function dset(obj, keys, val) {\n\tkeys.split && (keys=keys.split('.'));\n\tvar i=0, l=keys.length, t=obj, x, k;\n\twhile (i < l) {\n\t\tk = ''+keys[i++];\n\t\tif (k === '__proto__' || k === 'constructor' || k === 'prototype') break;\n\t\tt = t[k] = (i === l) ? val : (typeof(x=t[k])===typeof(keys)) ? x : (keys[i]*0 !== 0 || !!~(''+keys[i]).indexOf('.')) ? {} : [];\n\t}\n}\n\nexports.dset = dset;","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.pickBy = void 0;\nvar pickBy = function (obj, fn) {\n return Object.keys(obj)\n .filter(function (k) { return fn(k, obj[k]); })\n .reduce(function (acc, key) { return ((acc[key] = obj[key]), acc); }, {});\n};\nexports.pickBy = pickBy;\n//# sourceMappingURL=pick.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ValidationError = void 0;\nvar tslib_1 = require(\"tslib\");\nvar ValidationError = /** @class */ (function (_super) {\n tslib_1.__extends(ValidationError, _super);\n function ValidationError(field, message) {\n var _this = _super.call(this, \"\".concat(field, \" \").concat(message)) || this;\n _this.field = field;\n return _this;\n }\n return ValidationError;\n}(Error));\nexports.ValidationError = ValidationError;\n//# sourceMappingURL=errors.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.isPlainObject = exports.exists = exports.isFunction = exports.isNumber = exports.isString = void 0;\nfunction isString(obj) {\n return typeof obj === 'string';\n}\nexports.isString = isString;\nfunction isNumber(obj) {\n return typeof obj === 'number';\n}\nexports.isNumber = isNumber;\nfunction isFunction(obj) {\n return typeof obj === 'function';\n}\nexports.isFunction = isFunction;\nfunction exists(val) {\n return val !== undefined && val !== null;\n}\nexports.exists = exists;\nfunction isPlainObject(obj) {\n return (Object.prototype.toString.call(obj).slice(8, -1).toLowerCase() === 'object');\n}\nexports.isPlainObject = isPlainObject;\n//# sourceMappingURL=helpers.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.validateEvent = exports.assertMessageId = exports.assertTraits = exports.assertTrackEventProperties = exports.assertTrackEventName = exports.assertEventType = exports.assertEventExists = exports.assertUserIdentity = void 0;\nvar errors_1 = require(\"./errors\");\nvar helpers_1 = require(\"./helpers\");\nvar stringError = 'is not a string';\nvar objError = 'is not an object';\nvar nilError = 'is nil';\n// user identity check could hypothetically could be used in the browser event factory, but not 100% sure -- so this is node only for now\nfunction assertUserIdentity(event) {\n var USER_FIELD_NAME = '.userId/anonymousId/previousId/groupId';\n var getAnyUserId = function (event) { var _a, _b, _c; return (_c = (_b = (_a = event.userId) !== null && _a !== void 0 ? _a : event.anonymousId) !== null && _b !== void 0 ? _b : event.groupId) !== null && _c !== void 0 ? _c : event.previousId; };\n var id = getAnyUserId(event);\n if (!(0, helpers_1.exists)(id)) {\n throw new errors_1.ValidationError(USER_FIELD_NAME, nilError);\n }\n else if (!(0, helpers_1.isString)(id)) {\n throw new errors_1.ValidationError(USER_FIELD_NAME, stringError);\n }\n}\nexports.assertUserIdentity = assertUserIdentity;\nfunction assertEventExists(event) {\n if (!(0, helpers_1.exists)(event)) {\n throw new errors_1.ValidationError('Event', nilError);\n }\n if (typeof event !== 'object') {\n throw new errors_1.ValidationError('Event', objError);\n }\n}\nexports.assertEventExists = assertEventExists;\nfunction assertEventType(event) {\n if (!(0, helpers_1.isString)(event.type)) {\n throw new errors_1.ValidationError('.type', stringError);\n }\n}\nexports.assertEventType = assertEventType;\nfunction assertTrackEventName(event) {\n if (!(0, helpers_1.isString)(event.event)) {\n throw new errors_1.ValidationError('.event', stringError);\n }\n}\nexports.assertTrackEventName = assertTrackEventName;\nfunction assertTrackEventProperties(event) {\n if (!(0, helpers_1.isPlainObject)(event.properties)) {\n throw new errors_1.ValidationError('.properties', objError);\n }\n}\nexports.assertTrackEventProperties = assertTrackEventProperties;\nfunction assertTraits(event) {\n if (!(0, helpers_1.isPlainObject)(event.traits)) {\n throw new errors_1.ValidationError('.traits', objError);\n }\n}\nexports.assertTraits = assertTraits;\nfunction assertMessageId(event) {\n if (!(0, helpers_1.isString)(event.messageId)) {\n throw new errors_1.ValidationError('.messageId', stringError);\n }\n}\nexports.assertMessageId = assertMessageId;\nfunction validateEvent(event) {\n assertEventExists(event);\n assertEventType(event);\n assertMessageId(event);\n if (event.type === 'track') {\n assertTrackEventName(event);\n assertTrackEventProperties(event);\n }\n if (['group', 'identify'].includes(event.type)) {\n assertTraits(event);\n }\n}\nexports.validateEvent = validateEvent;\n//# sourceMappingURL=assertions.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.CoreEventFactory = void 0;\nvar tslib_1 = require(\"tslib\");\ntslib_1.__exportStar(require(\"./interfaces\"), exports);\nvar dset_1 = require(\"dset\");\nvar pick_1 = require(\"../utils/pick\");\nvar assertions_1 = require(\"../validation/assertions\");\n/**\n * Internal settings object that is used internally by the factory\n */\nvar InternalEventFactorySettings = /** @class */ (function () {\n function InternalEventFactorySettings(settings) {\n var _a, _b;\n this.settings = settings;\n this.createMessageId = settings.createMessageId;\n this.onEventMethodCall = (_a = settings.onEventMethodCall) !== null && _a !== void 0 ? _a : (function () { });\n this.onFinishedEvent = (_b = settings.onFinishedEvent) !== null && _b !== void 0 ? _b : (function () { });\n }\n return InternalEventFactorySettings;\n}());\nvar CoreEventFactory = /** @class */ (function () {\n function CoreEventFactory(settings) {\n this.settings = new InternalEventFactorySettings(settings);\n }\n CoreEventFactory.prototype.track = function (event, properties, options, integrationOptions) {\n this.settings.onEventMethodCall({ type: 'track', options: options });\n return this.normalize(tslib_1.__assign(tslib_1.__assign({}, this.baseEvent()), { event: event, type: 'track', properties: properties !== null && properties !== void 0 ? properties : {}, options: tslib_1.__assign({}, options), integrations: tslib_1.__assign({}, integrationOptions) }));\n };\n CoreEventFactory.prototype.page = function (category, page, properties, options, integrationOptions) {\n var _a;\n this.settings.onEventMethodCall({ type: 'page', options: options });\n var event = {\n type: 'page',\n properties: tslib_1.__assign({}, properties),\n options: tslib_1.__assign({}, options),\n integrations: tslib_1.__assign({}, integrationOptions),\n };\n if (category !== null) {\n event.category = category;\n event.properties = (_a = event.properties) !== null && _a !== void 0 ? _a : {};\n event.properties.category = category;\n }\n if (page !== null) {\n event.name = page;\n }\n return this.normalize(tslib_1.__assign(tslib_1.__assign({}, this.baseEvent()), event));\n };\n CoreEventFactory.prototype.screen = function (category, screen, properties, options, integrationOptions) {\n this.settings.onEventMethodCall({ type: 'screen', options: options });\n var event = {\n type: 'screen',\n properties: tslib_1.__assign({}, properties),\n options: tslib_1.__assign({}, options),\n integrations: tslib_1.__assign({}, integrationOptions),\n };\n if (category !== null) {\n event.category = category;\n }\n if (screen !== null) {\n event.name = screen;\n }\n return this.normalize(tslib_1.__assign(tslib_1.__assign({}, this.baseEvent()), event));\n };\n CoreEventFactory.prototype.identify = function (userId, traits, options, integrationsOptions) {\n this.settings.onEventMethodCall({ type: 'identify', options: options });\n return this.normalize(tslib_1.__assign(tslib_1.__assign({}, this.baseEvent()), { type: 'identify', userId: userId, traits: traits !== null && traits !== void 0 ? traits : {}, options: tslib_1.__assign({}, options), integrations: integrationsOptions }));\n };\n CoreEventFactory.prototype.group = function (groupId, traits, options, integrationOptions) {\n this.settings.onEventMethodCall({ type: 'group', options: options });\n return this.normalize(tslib_1.__assign(tslib_1.__assign({}, this.baseEvent()), { type: 'group', traits: traits !== null && traits !== void 0 ? traits : {}, options: tslib_1.__assign({}, options), integrations: tslib_1.__assign({}, integrationOptions), //\n groupId: groupId }));\n };\n CoreEventFactory.prototype.alias = function (to, from, // TODO: can we make this undefined?\n options, integrationOptions) {\n this.settings.onEventMethodCall({ type: 'alias', options: options });\n var base = {\n userId: to,\n type: 'alias',\n options: tslib_1.__assign({}, options),\n integrations: tslib_1.__assign({}, integrationOptions),\n };\n if (from !== null) {\n base.previousId = from;\n }\n if (to === undefined) {\n return this.normalize(tslib_1.__assign(tslib_1.__assign({}, base), this.baseEvent()));\n }\n return this.normalize(tslib_1.__assign(tslib_1.__assign({}, this.baseEvent()), base));\n };\n CoreEventFactory.prototype.baseEvent = function () {\n return {\n integrations: {},\n options: {},\n };\n };\n /**\n * Builds the context part of an event based on \"foreign\" keys that\n * are provided in the `Options` parameter for an Event\n */\n CoreEventFactory.prototype.context = function (options) {\n var _a;\n /**\n * If the event options are known keys from this list, we move them to the top level of the event.\n * Any other options are moved to context.\n */\n var eventOverrideKeys = [\n 'userId',\n 'anonymousId',\n 'timestamp',\n 'messageId',\n ];\n delete options['integrations'];\n var providedOptionsKeys = Object.keys(options);\n var context = (_a = options.context) !== null && _a !== void 0 ? _a : {};\n var eventOverrides = {};\n providedOptionsKeys.forEach(function (key) {\n if (key === 'context') {\n return;\n }\n if (eventOverrideKeys.includes(key)) {\n (0, dset_1.dset)(eventOverrides, key, options[key]);\n }\n else {\n (0, dset_1.dset)(context, key, options[key]);\n }\n });\n return [context, eventOverrides];\n };\n CoreEventFactory.prototype.normalize = function (event) {\n var _a, _b;\n var integrationBooleans = Object.keys((_a = event.integrations) !== null && _a !== void 0 ? _a : {}).reduce(function (integrationNames, name) {\n var _a;\n var _b;\n return tslib_1.__assign(tslib_1.__assign({}, integrationNames), (_a = {}, _a[name] = Boolean((_b = event.integrations) === null || _b === void 0 ? void 0 : _b[name]), _a));\n }, {});\n // filter out any undefined options\n event.options = (0, pick_1.pickBy)(event.options || {}, function (_, value) {\n return value !== undefined;\n });\n // This is pretty trippy, but here's what's going on:\n // - a) We don't pass initial integration options as part of the event, only if they're true or false\n // - b) We do accept per integration overrides (like integrations.Amplitude.sessionId) at the event level\n // Hence the need to convert base integration options to booleans, but maintain per event integration overrides\n var allIntegrations = tslib_1.__assign(tslib_1.__assign({}, integrationBooleans), (_b = event.options) === null || _b === void 0 ? void 0 : _b.integrations);\n var _c = event.options\n ? this.context(event.options)\n : [], context = _c[0], overrides = _c[1];\n var options = event.options, rest = tslib_1.__rest(event, [\"options\"]);\n var evt = tslib_1.__assign(tslib_1.__assign(tslib_1.__assign(tslib_1.__assign({ timestamp: new Date() }, rest), { context: context, integrations: allIntegrations }), overrides), { messageId: options.messageId || this.settings.createMessageId() });\n this.settings.onFinishedEvent(evt);\n (0, assertions_1.validateEvent)(evt);\n return evt;\n };\n return CoreEventFactory;\n}());\nexports.CoreEventFactory = CoreEventFactory;\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.invokeCallback = exports.sleep = exports.pTimeout = void 0;\nfunction pTimeout(promise, timeout) {\n return new Promise(function (resolve, reject) {\n var timeoutId = setTimeout(function () {\n reject(Error('Promise timed out'));\n }, timeout);\n promise\n .then(function (val) {\n clearTimeout(timeoutId);\n return resolve(val);\n })\n .catch(reject);\n });\n}\nexports.pTimeout = pTimeout;\nfunction sleep(timeoutInMs) {\n return new Promise(function (resolve) { return setTimeout(resolve, timeoutInMs); });\n}\nexports.sleep = sleep;\n/**\n * @param ctx\n * @param callback - the function to invoke\n * @param delay - aka \"timeout\". The amount of time in ms to wait before invoking the callback.\n */\nfunction invokeCallback(ctx, callback, delay) {\n var cb = function () {\n try {\n return Promise.resolve(callback(ctx));\n }\n catch (err) {\n return Promise.reject(err);\n }\n };\n return (sleep(delay)\n // pTimeout ensures that the callback can't cause the context to hang\n .then(function () { return pTimeout(cb(), 1000); })\n .catch(function (err) {\n ctx === null || ctx === void 0 ? void 0 : ctx.log('warn', 'Callback Error', { error: err });\n ctx === null || ctx === void 0 ? void 0 : ctx.stats.increment('callback_error');\n })\n .then(function () { return ctx; }));\n}\nexports.invokeCallback = invokeCallback;\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.createDeferred = void 0;\n/**\n * Return a promise that can be externally resolved\n */\nvar createDeferred = function () {\n var resolve;\n var reject;\n var settled = false;\n var promise = new Promise(function (_resolve, _reject) {\n resolve = function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n settled = true;\n _resolve.apply(void 0, args);\n };\n reject = function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n settled = true;\n _reject.apply(void 0, args);\n };\n });\n return {\n resolve: resolve,\n reject: reject,\n promise: promise,\n isSettled: function () { return settled; },\n };\n};\nexports.createDeferred = createDeferred;\n//# sourceMappingURL=create-deferred.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar tslib_1 = require(\"tslib\");\ntslib_1.__exportStar(require(\"./create-deferred\"), exports);\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Emitter = void 0;\n/**\n * Event Emitter that takes the expected contract as a generic\n * @example\n * ```ts\n * type Contract = {\n * delivery_success: [DeliverySuccessResponse, Metrics],\n * delivery_failure: [DeliveryError]\n * }\n * new Emitter<Contract>()\n * .on('delivery_success', (res, metrics) => ...)\n * .on('delivery_failure', (err) => ...)\n * ```\n */\nvar Emitter = /** @class */ (function () {\n function Emitter(options) {\n var _a;\n this.callbacks = {};\n this.warned = false;\n this.maxListeners = (_a = options === null || options === void 0 ? void 0 : options.maxListeners) !== null && _a !== void 0 ? _a : 10;\n }\n Emitter.prototype.warnIfPossibleMemoryLeak = function (event) {\n if (this.warned) {\n return;\n }\n if (this.maxListeners &&\n this.callbacks[event].length > this.maxListeners) {\n console.warn(\"Event Emitter: Possible memory leak detected; \".concat(String(event), \" has exceeded \").concat(this.maxListeners, \" listeners.\"));\n this.warned = true;\n }\n };\n Emitter.prototype.on = function (event, callback) {\n if (!this.callbacks[event]) {\n this.callbacks[event] = [callback];\n }\n else {\n this.callbacks[event].push(callback);\n this.warnIfPossibleMemoryLeak(event);\n }\n return this;\n };\n Emitter.prototype.once = function (event, callback) {\n var _this = this;\n var on = function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n _this.off(event, on);\n callback.apply(_this, args);\n };\n this.on(event, on);\n return this;\n };\n Emitter.prototype.off = function (event, callback) {\n var _a;\n var fns = (_a = this.callbacks[event]) !== null && _a !== void 0 ? _a : [];\n var without = fns.filter(function (fn) { return fn !== callback; });\n this.callbacks[event] = without;\n return this;\n };\n Emitter.prototype.emit = function (event) {\n var _this = this;\n var _a;\n var args = [];\n for (var _i = 1; _i < arguments.length; _i++) {\n args[_i - 1] = arguments[_i];\n }\n var callbacks = (_a = this.callbacks[event]) !== null && _a !== void 0 ? _a : [];\n callbacks.forEach(function (callback) {\n callback.apply(_this, args);\n });\n return this;\n };\n return Emitter;\n}());\nexports.Emitter = Emitter;\n//# sourceMappingURL=emitter.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar tslib_1 = require(\"tslib\");\ntslib_1.__exportStar(require(\"./emitter\"), exports);\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar tslib_1 = require(\"tslib\");\ntslib_1.__exportStar(require(\"./create-deferred\"), exports);\ntslib_1.__exportStar(require(\"./emitter\"), exports);\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.backoff = void 0;\nfunction backoff(params) {\n var random = Math.random() + 1;\n var _a = params.minTimeout, minTimeout = _a === void 0 ? 500 : _a, _b = params.factor, factor = _b === void 0 ? 2 : _b, attempt = params.attempt, _c = params.maxTimeout, maxTimeout = _c === void 0 ? Infinity : _c;\n return Math.min(random * minTimeout * Math.pow(factor, attempt), maxTimeout);\n}\nexports.backoff = backoff;\n//# sourceMappingURL=backoff.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.PriorityQueue = exports.ON_REMOVE_FROM_FUTURE = void 0;\nvar tslib_1 = require(\"tslib\");\nvar analytics_generic_utils_1 = require(\"@segment/analytics-generic-utils\");\nvar backoff_1 = require(\"./backoff\");\n/**\n * @internal\n */\nexports.ON_REMOVE_FROM_FUTURE = 'onRemoveFromFuture';\nvar PriorityQueue = /** @class */ (function (_super) {\n tslib_1.__extends(PriorityQueue, _super);\n function PriorityQueue(maxAttempts, queue, seen) {\n var _this = _super.call(this) || this;\n _this.future = [];\n _this.maxAttempts = maxAttempts;\n _this.queue = queue;\n _this.seen = seen !== null && seen !== void 0 ? seen : {};\n return _this;\n }\n PriorityQueue.prototype.push = function () {\n var _this = this;\n var items = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n items[_i] = arguments[_i];\n }\n var accepted = items.map(function (operation) {\n var attempts = _this.updateAttempts(operation);\n if (attempts > _this.maxAttempts || _this.includes(operation)) {\n return false;\n }\n _this.queue.push(operation);\n return true;\n });\n this.queue = this.queue.sort(function (a, b) { return _this.getAttempts(a) - _this.getAttempts(b); });\n return accepted;\n };\n PriorityQueue.prototype.pushWithBackoff = function (item, minTimeout) {\n if (minTimeout === void 0) { minTimeout = 0; }\n // One immediate retry unless we have a minimum timeout (e.g. for rate limiting)\n if (minTimeout == 0 && this.getAttempts(item) === 0) {\n return this.push(item)[0];\n }\n var timeout = (0, backoff_1.backoff)({ attempt: this.getAttempts(item) });\n if (minTimeout > 0 && timeout < minTimeout) {\n timeout = minTimeout;\n }\n return this.scheduleItem(item, timeout);\n };\n PriorityQueue.prototype.pushWithDelay = function (item, delay) {\n return this.scheduleItem(item, delay);\n };\n PriorityQueue.prototype.scheduleItem = function (item, timeout) {\n var _this = this;\n var attempt = this.updateAttempts(item);\n if (attempt > this.maxAttempts || this.includes(item)) {\n return false;\n }\n setTimeout(function () {\n _this.queue.push(item);\n _this.future = _this.future.filter(function (f) { return f.id !== item.id; });\n _this.emit(exports.ON_REMOVE_FROM_FUTURE);\n }, timeout);\n this.future.push(item);\n return true;\n };\n PriorityQueue.prototype.getAttempts = function (item) {\n var _a;\n return (_a = this.seen[item.id]) !== null && _a !== void 0 ? _a : 0;\n };\n PriorityQueue.prototype.updateAttempts = function (item) {\n this.seen[item.id] = this.getAttempts(item) + 1;\n return this.getAttempts(item);\n };\n PriorityQueue.prototype.includes = function (item) {\n return (this.queue.includes(item) ||\n this.future.includes(item) ||\n Boolean(this.queue.find(function (i) { return i.id === item.id; })) ||\n Boolean(this.future.find(function (i) { return i.id === item.id; })));\n };\n PriorityQueue.prototype.pop = function () {\n return this.queue.shift();\n };\n Object.defineProperty(PriorityQueue.prototype, \"length\", {\n get: function () {\n return this.queue.length;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(PriorityQueue.prototype, \"todo\", {\n get: function () {\n return this.queue.length + this.future.length;\n },\n enumerable: false,\n configurable: true\n });\n return PriorityQueue;\n}(analytics_generic_utils_1.Emitter));\nexports.PriorityQueue = PriorityQueue;\n//# sourceMappingURL=index.js.map","var IDX=256, HEX=[], BUFFER;\nwhile (IDX--) HEX[IDX] = (IDX + 256).toString(16).substring(1);\n\nfunction v4() {\n\tvar i=0, num, out='';\n\n\tif (!BUFFER || ((IDX + 16) > 256)) {\n\t\tBUFFER = Array(i=256);\n\t\twhile (i--) BUFFER[i] = 256 * Math.random() | 0;\n\t\ti = IDX = 0;\n\t}\n\n\tfor (; i < 16; i++) {\n\t\tnum = BUFFER[IDX + i];\n\t\tif (i==6) out += HEX[num & 15 | 64];\n\t\telse if (i==8) out += HEX[num & 63 | 128];\n\t\telse out += HEX[num];\n\n\t\tif (i & 1 && i > 1 && i < 11) out += '-';\n\t}\n\n\tIDX++;\n\treturn out;\n}\n\nexports.v4 = v4;","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.CoreLogger = void 0;\nvar tslib_1 = require(\"tslib\");\nvar CoreLogger = /** @class */ (function () {\n function CoreLogger() {\n this._logs = [];\n }\n CoreLogger.prototype.log = function (level, message, extras) {\n var time = new Date();\n this._logs.push({\n level: level,\n message: message,\n time: time,\n extras: extras,\n });\n };\n Object.defineProperty(CoreLogger.prototype, \"logs\", {\n get: function () {\n return this._logs;\n },\n enumerable: false,\n configurable: true\n });\n CoreLogger.prototype.flush = function () {\n if (this.logs.length > 1) {\n var formatted = this._logs.reduce(function (logs, log) {\n var _a;\n var _b, _c;\n var line = tslib_1.__assign(tslib_1.__assign({}, log), { json: JSON.stringify(log.extras, null, ' '), extras: log.extras });\n delete line['time'];\n var key = (_c = (_b = log.time) === null || _b === void 0 ? void 0 : _b.toISOString()) !== null && _c !== void 0 ? _c : '';\n if (logs[key]) {\n key = \"\".concat(key, \"-\").concat(Math.random());\n }\n return tslib_1.__assign(tslib_1.__assign({}, logs), (_a = {}, _a[key] = line, _a));\n }, {});\n // ie doesn't like console.table\n if (console.table) {\n console.table(formatted);\n }\n else {\n console.log(formatted);\n }\n }\n else {\n this.logs.forEach(function (logEntry) {\n var level = logEntry.level, message = logEntry.message, extras = logEntry.extras;\n if (level === 'info' || level === 'debug') {\n console.log(message, extras !== null && extras !== void 0 ? extras : '');\n }\n else {\n console[level](message, extras !== null && extras !== void 0 ? extras : '');\n }\n });\n }\n this._logs = [];\n };\n return CoreLogger;\n}());\nexports.CoreLogger = CoreLogger;\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.NullStats = exports.CoreStats = void 0;\nvar tslib_1 = require(\"tslib\");\nvar compactMetricType = function (type) {\n var enums = {\n gauge: 'g',\n counter: 'c',\n };\n return enums[type];\n};\nvar CoreStats = /** @class */ (function () {\n function CoreStats() {\n this.metrics = [];\n }\n CoreStats.prototype.increment = function (metric, by, tags) {\n if (by === void 0) { by = 1; }\n this.metrics.push({\n metric: metric,\n value: by,\n tags: tags !== null && tags !== void 0 ? tags : [],\n type: 'counter',\n timestamp: Date.now(),\n });\n };\n CoreStats.prototype.gauge = function (metric, value, tags) {\n this.metrics.push({\n metric: metric,\n value: value,\n tags: tags !== null && tags !== void 0 ? tags : [],\n type: 'gauge',\n timestamp: Date.now(),\n });\n };\n CoreStats.prototype.flush = function () {\n var formatted = this.metrics.map(function (m) { return (tslib_1.__assign(tslib_1.__assign({}, m), { tags: m.tags.join(',') })); });\n // ie doesn't like console.table\n if (console.table) {\n console.table(formatted);\n }\n else {\n console.log(formatted);\n }\n this.metrics = [];\n };\n /**\n * compact keys for smaller payload\n */\n CoreStats.prototype.serialize = function () {\n return this.metrics.map(function (m) {\n return {\n m: m.metric,\n v: m.value,\n t: m.tags,\n k: compactMetricType(m.type),\n e: m.timestamp,\n };\n });\n };\n return CoreStats;\n}());\nexports.CoreStats = CoreStats;\nvar NullStats = /** @class */ (function (_super) {\n tslib_1.__extends(NullStats, _super);\n function NullStats() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n NullStats.prototype.gauge = function () {\n var _args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n _args[_i] = arguments[_i];\n }\n };\n NullStats.prototype.increment = function () {\n var _args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n _args[_i] = arguments[_i];\n }\n };\n NullStats.prototype.flush = function () {\n var _args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n _args[_i] = arguments[_i];\n }\n };\n NullStats.prototype.serialize = function () {\n var _args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n _args[_i] = arguments[_i];\n }\n return [];\n };\n return NullStats;\n}(CoreStats));\nexports.NullStats = NullStats;\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.CoreContext = exports.ContextCancelation = void 0;\nvar uuid_1 = require(\"@lukeed/uuid\");\nvar dset_1 = require(\"dset\");\nvar logger_1 = require(\"../logger\");\nvar stats_1 = require(\"../stats\");\nvar ContextCancelation = /** @class */ (function () {\n function ContextCancelation(options) {\n var _a, _b, _c;\n this.retry = (_a = options.retry) !== null && _a !== void 0 ? _a : true;\n this.type = (_b = options.type) !== null && _b !== void 0 ? _b : 'plugin Error';\n this.reason = (_c = options.reason) !== null && _c !== void 0 ? _c : '';\n }\n return ContextCancelation;\n}());\nexports.ContextCancelation = ContextCancelation;\nvar CoreContext = /** @class */ (function () {\n function CoreContext(event, id, stats, logger) {\n if (id === void 0) { id = (0, uuid_1.v4)(); }\n if (stats === void 0) { stats = new stats_1.NullStats(); }\n if (logger === void 0) { logger = new logger_1.CoreLogger(); }\n this.attempts = 0;\n this.event = event;\n this._id = id;\n this.logger = logger;\n this.stats = stats;\n }\n CoreContext.system = function () {\n // This should be overridden by the subclass to return an instance of the subclass.\n };\n CoreContext.prototype.isSame = function (other) {\n return other.id === this.id;\n };\n CoreContext.prototype.cancel = function (error) {\n if (error) {\n throw error;\n }\n throw new ContextCancelation({ reason: 'Context Cancel' });\n };\n CoreContext.prototype.log = function (level, message, extras) {\n this.logger.log(level, message, extras);\n };\n Object.defineProperty(CoreContext.prototype, \"id\", {\n get: function () {\n return this._id;\n },\n enumerable: false,\n configurable: true\n });\n CoreContext.prototype.updateEvent = function (path, val) {\n var _a;\n // Don't allow integrations that are set to false to be overwritten with integration settings.\n if (path.split('.')[0] === 'integrations') {\n var integrationName = path.split('.')[1];\n if (((_a = this.event.integrations) === null || _a === void 0 ? void 0 : _a[integrationName]) === false) {\n return this.event;\n }\n }\n (0, dset_1.dset)(this.event, path, val);\n return this.event;\n };\n CoreContext.prototype.failedDelivery = function () {\n return this._failedDelivery;\n };\n CoreContext.prototype.setFailedDelivery = function (options) {\n this._failedDelivery = options;\n };\n CoreContext.prototype.logs = function () {\n return this.logger.logs;\n };\n CoreContext.prototype.flush = function () {\n this.logger.flush();\n this.stats.flush();\n };\n CoreContext.prototype.toJSON = function () {\n return {\n id: this._id,\n event: this.event,\n logs: this.logger.logs,\n metrics: this.stats.metrics,\n };\n };\n return CoreContext;\n}());\nexports.CoreContext = CoreContext;\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.groupBy = void 0;\nvar tslib_1 = require(\"tslib\");\nfunction groupBy(collection, grouper) {\n var results = {};\n collection.forEach(function (item) {\n var _a;\n var key = undefined;\n if (typeof grouper === 'string') {\n var suggestedKey = item[grouper];\n key =\n typeof suggestedKey !== 'string'\n ? JSON.stringify(suggestedKey)\n : suggestedKey;\n }\n else if (grouper instanceof Function) {\n key = grouper(item);\n }\n if (key === undefined) {\n return;\n }\n results[key] = tslib_1.__spreadArray(tslib_1.__spreadArray([], ((_a = results[key]) !== null && _a !== void 0 ? _a : []), true), [item], false);\n });\n return results;\n}\nexports.groupBy = groupBy;\n//# sourceMappingURL=group-by.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.isThenable = void 0;\n/**\n * Check if thenable\n * (instanceof Promise doesn't respect realms)\n */\nvar isThenable = function (value) {\n return typeof value === 'object' &&\n value !== null &&\n 'then' in value &&\n typeof value.then === 'function';\n};\nexports.isThenable = isThenable;\n//# sourceMappingURL=is-thenable.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.createTaskGroup = void 0;\nvar is_thenable_1 = require(\"../utils/is-thenable\");\nvar createTaskGroup = function () {\n var taskCompletionPromise;\n var resolvePromise;\n var count = 0;\n return {\n done: function () { return taskCompletionPromise; },\n run: function (op) {\n var returnValue = op();\n if ((0, is_thenable_1.isThenable)(returnValue)) {\n if (++count === 1) {\n taskCompletionPromise = new Promise(function (res) { return (resolvePromise = res); });\n }\n returnValue.finally(function () { return --count === 0 && resolvePromise(); });\n }\n return returnValue;\n },\n };\n};\nexports.createTaskGroup = createTaskGroup;\n//# sourceMappingURL=task-group.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ensure = exports.attempt = void 0;\nvar tslib_1 = require(\"tslib\");\nvar context_1 = require(\"../context\");\nfunction tryAsync(fn) {\n return tslib_1.__awaiter(this, void 0, void 0, function () {\n var err_1;\n return tslib_1.__generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n _a.trys.push([0, 2, , 3]);\n return [4 /*yield*/, fn()];\n case 1: return [2 /*return*/, _a.sent()];\n case 2:\n err_1 = _a.sent();\n return [2 /*return*/, Promise.reject(err_1)];\n case 3: return [2 /*return*/];\n }\n });\n });\n}\nfunction attempt(ctx, plugin) {\n ctx.log('debug', 'plugin', { plugin: plugin.name });\n var start = new Date().getTime();\n var hook = plugin[ctx.event.type];\n if (hook === undefined) {\n return Promise.resolve(ctx);\n }\n var newCtx = tryAsync(function () { return hook.apply(plugin, [ctx]); })\n .then(function (ctx) {\n var done = new Date().getTime() - start;\n ctx.stats.gauge('plugin_time', done, [\"plugin:\".concat(plugin.name)]);\n return ctx;\n })\n .catch(function (err) {\n if (err instanceof context_1.ContextCancelation &&\n err.type === 'middleware_cancellation') {\n throw err;\n }\n if (err instanceof context_1.ContextCancelation) {\n ctx.log('warn', err.type, {\n plugin: plugin.name,\n error: err,\n });\n return err;\n }\n ctx.log('error', 'plugin Error', {\n plugin: plugin.name,\n error: err,\n });\n ctx.stats.increment('plugin_error', 1, [\"plugin:\".concat(plugin.name)]);\n return err;\n });\n return newCtx;\n}\nexports.attempt = attempt;\nfunction ensure(ctx, plugin) {\n return attempt(ctx, plugin).then(function (newContext) {\n if (newContext instanceof context_1.CoreContext) {\n return newContext;\n }\n ctx.log('debug', 'Context canceled');\n ctx.stats.increment('context_canceled');\n ctx.cancel(newContext);\n });\n}\nexports.ensure = ensure;\n//# sourceMappingURL=delivery.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.CoreEventQueue = void 0;\nvar tslib_1 = require(\"tslib\");\nvar group_by_1 = require(\"../utils/group-by\");\nvar priority_queue_1 = require(\"../priority-queue\");\nvar context_1 = require(\"../context\");\nvar analytics_generic_utils_1 = require(\"@segment/analytics-generic-utils\");\nvar task_group_1 = require(\"../task/task-group\");\nvar delivery_1 = require(\"./delivery\");\nvar CoreEventQueue = /** @class */ (function (_super) {\n tslib_1.__extends(CoreEventQueue, _super);\n function CoreEventQueue(priorityQueue) {\n var _this = _super.call(this) || this;\n /**\n * All event deliveries get suspended until all the tasks in this task group are complete.\n * For example: a middleware that augments the event object should be loaded safely as a\n * critical task, this way, event queue will wait for it to be ready before sending events.\n *\n * This applies to all the events already in the queue, and the upcoming ones\n */\n _this.criticalTasks = (0, task_group_1.createTaskGroup)();\n _this.plugins = [];\n _this.failedInitializations = [];\n _this.flushing = false;\n _this.queue = priorityQueue;\n _this.queue.on(priority_queue_1.ON_REMOVE_FROM_FUTURE, function () {\n _this.scheduleFlush(0);\n });\n return _this;\n }\n CoreEventQueue.prototype.register = function (ctx, plugin, instance) {\n return tslib_1.__awaiter(this, void 0, void 0, function () {\n var handleLoadError, err_1;\n var _this = this;\n return tslib_1.__generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n this.plugins.push(plugin);\n handleLoadError = function (err) {\n _this.failedInitializations.push(plugin.name);\n _this.emit('initialization_failure', plugin);\n console.warn(plugin.name, err);\n ctx.log('warn', 'Failed to load destination', {\n plugin: plugin.name,\n error: err,\n });\n // Filter out the failed plugin by excluding it from the list\n _this.plugins = _this.plugins.filter(function (p) { return p !== plugin; });\n };\n if (!(plugin.type === 'destination' && plugin.name !== 'Segment.io')) return [3 /*break*/, 1];\n plugin.load(ctx, instance).catch(handleLoadError);\n return [3 /*break*/, 4];\n case 1:\n _a.trys.push([1, 3, , 4]);\n return [4 /*yield*/, plugin.load(ctx, instance)];\n case 2:\n _a.sent();\n return [3 /*break*/, 4];\n case 3:\n err_1 = _a.sent();\n handleLoadError(err_1);\n return [3 /*break*/, 4];\n case 4: return [2 /*return*/];\n }\n });\n });\n };\n CoreEventQueue.prototype.deregister = function (ctx, plugin, instance) {\n return tslib_1.__awaiter(this, void 0, void 0, function () {\n var e_1;\n return tslib_1.__generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n _a.trys.push([0, 3, , 4]);\n if (!plugin.unload) return [3 /*break*/, 2];\n return [4 /*yield*/, Promise.resolve(plugin.unload(ctx, instance))];\n case 1:\n _a.sent();\n _a.label = 2;\n case 2:\n this.plugins = this.plugins.filter(function (p) { return p.name !== plugin.name; });\n return [3 /*break*/, 4];\n case 3:\n e_1 = _a.sent();\n ctx.log('warn', 'Failed to unload destination', {\n plugin: plugin.name,\n error: e_1,\n });\n return [3 /*break*/, 4];\n case 4: return [2 /*return*/];\n }\n });\n });\n };\n CoreEventQueue.prototype.dispatch = function (ctx) {\n return tslib_1.__awaiter(this, void 0, void 0, function () {\n var willDeliver;\n return tslib_1.__generator(this, function (_a) {\n ctx.log('debug', 'Dispatching');\n ctx.stats.increment('message_dispatched');\n this.queue.push(ctx);\n willDeliver = this.subscribeToDelivery(ctx);\n this.scheduleFlush(0);\n return [2 /*return*/, willDeliver];\n });\n });\n };\n CoreEventQueue.prototype.subscribeToDelivery = function (ctx) {\n return tslib_1.__awaiter(this, void 0, void 0, function () {\n var _this = this;\n return tslib_1.__generator(this, function (_a) {\n return [2 /*return*/, new Promise(function (resolve) {\n var onDeliver = function (flushed, delivered) {\n if (flushed.isSame(ctx)) {\n _this.off('flush', onDeliver);\n if (delivered) {\n resolve(flushed);\n }\n else {\n resolve(flushed);\n }\n }\n };\n _this.on('flush', onDeliver);\n })];\n });\n });\n };\n CoreEventQueue.prototype.dispatchSingle = function (ctx) {\n return tslib_1.__awaiter(this, void 0, void 0, function () {\n var _this = this;\n return tslib_1.__generator(this, function (_a) {\n ctx.log('debug', 'Dispatching');\n ctx.stats.increment('message_dispatched');\n this.queue.updateAttempts(ctx);\n ctx.attempts = 1;\n return [2 /*return*/, this.deliver(ctx).catch(function (err) {\n var accepted = _this.enqueuRetry(err, ctx);\n if (!accepted) {\n ctx.setFailedDelivery({ reason: err });\n return ctx;\n }\n return _this.subscribeToDelivery(ctx);\n })];\n });\n });\n };\n CoreEventQueue.prototype.isEmpty = function () {\n return this.queue.length === 0;\n };\n CoreEventQueue.prototype.scheduleFlush = function (timeout) {\n var _this = this;\n if (timeout === void 0) { timeout = 500; }\n if (this.flushing) {\n return;\n }\n this.flushing = true;\n setTimeout(function () {\n // eslint-disable-next-line @typescript-eslint/no-floating-promises\n _this.flush().then(function () {\n setTimeout(function () {\n _this.flushing = false;\n if (_this.queue.length) {\n _this.scheduleFlush(0);\n }\n }, 0);\n });\n }, timeout);\n };\n CoreEventQueue.prototype.deliver = function (ctx) {\n var _a;\n return tslib_1.__awaiter(this, void 0, void 0, function () {\n var start, done, failure, error, err_2, error;\n return tslib_1.__generator(this, function (_b) {\n switch (_b.label) {\n case 0: return [4 /*yield*/, this.criticalTasks.done()];\n case 1:\n _b.sent();\n start = Date.now();\n _b.label = 2;\n case 2:\n _b.trys.push([2, 4, , 5]);\n return [4 /*yield*/, this.flushOne(ctx)];\n case 3:\n ctx = _b.sent();\n done = Date.now() - start;\n failure = ctx.failedDelivery();\n if (failure) {\n error = failure.reason instanceof Error\n ? failure.reason\n : new Error(String((_a = failure.reason) !== null && _a !== void 0 ? _a : 'Unknown delivery failure'));\n ctx.log('error', 'Failed to deliver', error);\n this.emit('delivery_failure', ctx, error);\n ctx.stats.increment('delivery_failed');\n return [2 /*return*/, ctx];\n }\n this.emit('delivery_success', ctx);\n ctx.stats.gauge('delivered', done);\n ctx.log('debug', 'Delivered', ctx.event);\n return [2 /*return*/, ctx];\n case 4:\n err_2 = _b.sent();\n error = err_2;\n ctx.log('error', 'Failed to deliver', error);\n this.emit('delivery_failure', ctx, error);\n ctx.stats.increment('delivery_failed');\n throw err_2;\n case 5: return [2 /*return*/];\n }\n });\n });\n };\n CoreEventQueue.prototype.enqueuRetry = function (err, ctx) {\n var retriable = !(err instanceof context_1.ContextCancelation) || err.retry;\n if (!retriable) {\n return false;\n }\n return this.queue.pushWithBackoff(ctx);\n };\n CoreEventQueue.prototype.flush = function () {\n return tslib_1.__awaiter(this, void 0, void 0, function () {\n var ctx, delivered, err_3, accepted;\n return tslib_1.__generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (this.queue.length === 0) {\n return [2 /*return*/, []];\n }\n ctx = this.queue.pop();\n if (!ctx) {\n return [2 /*return*/, []];\n }\n ctx.attempts = this.queue.getAttempts(ctx);\n _a.label = 1;\n case 1:\n _a.trys.push([1, 3, , 4]);\n return [4 /*yield*/, this.deliver(ctx)\n // deliver() now handles failedDelivery state internally without throwing,\n // so we check ctx.failedDelivery() to determine the correct flush status\n ];\n case 2:\n ctx = _a.sent();\n delivered = !ctx.failedDelivery();\n this.emit('flush', ctx, delivered);\n return [3 /*break*/, 4];\n case 3:\n err_3 = _a.sent();\n accepted = this.enqueuRetry(err_3, ctx);\n if (!accepted) {\n ctx.setFailedDelivery({ reason: err_3 });\n this.emit('flush', ctx, false);\n }\n return [2 /*return*/, []];\n case 4: return [2 /*return*/, [ctx]];\n }\n });\n });\n };\n CoreEventQueue.prototype.isReady = function () {\n // return this.plugins.every((p) => p.isLoaded())\n // should we wait for every plugin to load?\n return true;\n };\n CoreEventQueue.prototype.availableExtensions = function (denyList) {\n var available = this.plugins.filter(function (p) {\n var _a, _b, _c;\n // Only filter out destination plugins or the Segment.io plugin\n if (p.type !== 'destination' && p.name !== 'Segment.io') {\n return true;\n }\n var alternativeNameMatch = undefined;\n (_a = p.alternativeNames) === null || _a === void 0 ? void 0 : _a.forEach(function (name) {\n if (denyList[name] !== undefined) {\n alternativeNameMatch = denyList[name];\n }\n });\n // Explicit integration option takes precedence, `All: false` does not apply to Segment.io\n return ((_c = (_b = denyList[p.name]) !== null && _b !== void 0 ? _b : alternativeNameMatch) !== null && _c !== void 0 ? _c : (p.name === 'Segment.io' ? true : denyList.All) !== false);\n });\n var _a = (0, group_by_1.groupBy)(available, 'type'), _b = _a.before, before = _b === void 0 ? [] : _b, _c = _a.enrichment, enrichment = _c === void 0 ? [] : _c, _d = _a.destination, destination = _d === void 0 ? [] : _d, _e = _a.after, after = _e === void 0 ? [] : _e;\n return {\n before: before,\n enrichment: enrichment,\n destinations: destination,\n after: after,\n };\n };\n CoreEventQueue.prototype.flushOne = function (ctx) {\n var _a, _b;\n return tslib_1.__awaiter(this, void 0, void 0, function () {\n var _c, before, enrichment, _i, before_1, beforeWare, temp, _d, enrichment_1, enrichmentWare, temp, _e, destinations, after, afterCalls;\n return tslib_1.__generator(this, function (_f) {\n switch (_f.label) {\n case 0:\n if (!this.isReady()) {\n throw new Error('Not ready');\n }\n if (ctx.attempts > 1) {\n this.emit('delivery_retry', ctx);\n }\n _c = this.availableExtensions((_a = ctx.event.integrations) !== null && _a !== void 0 ? _a : {}), before = _c.before, enrichment = _c.enrichment;\n _i = 0, before_1 = before;\n _f.label = 1;\n case 1:\n if (!(_i < before_1.length)) return [3 /*break*/, 4];\n beforeWare = before_1[_i];\n return [4 /*yield*/, (0, delivery_1.ensure)(ctx, beforeWare)];\n case 2:\n temp = _f.sent();\n if (temp instanceof context_1.CoreContext) {\n ctx = temp;\n }\n this.emit('message_enriched', ctx, beforeWare);\n _f.label = 3;\n case 3:\n _i++;\n return [3 /*break*/, 1];\n case 4:\n _d = 0, enrichment_1 = enrichment;\n _f.label = 5;\n case 5:\n if (!(_d < enrichment_1.length)) return [3 /*break*/, 8];\n enrichmentWare = enrichment_1[_d];\n return [4 /*yield*/, (0, delivery_1.attempt)(ctx, enrichmentWare)];\n case 6:\n temp = _f.sent();\n if (temp instanceof context_1.CoreContext) {\n ctx = temp;\n }\n this.emit('message_enriched', ctx, enrichmentWare);\n _f.label = 7;\n case 7:\n _d++;\n return [3 /*break*/, 5];\n case 8:\n _e = this.availableExtensions((_b = ctx.event.integrations) !== null && _b !== void 0 ? _b : {}), destinations = _e.destinations, after = _e.after;\n return [4 /*yield*/, new Promise(function (resolve, reject) {\n setTimeout(function () {\n var attempts = destinations.map(function (destination) {\n return (0, delivery_1.attempt)(ctx, destination);\n });\n Promise.all(attempts).then(resolve).catch(reject);\n }, 0);\n })];\n case 9:\n _f.sent();\n ctx.stats.increment('message_delivered');\n this.emit('message_delivered', ctx);\n afterCalls = after.map(function (after) { return (0, delivery_1.attempt)(ctx, after); });\n return [4 /*yield*/, Promise.all(afterCalls)];\n case 10:\n _f.sent();\n return [2 /*return*/, ctx];\n }\n });\n });\n };\n return CoreEventQueue;\n}(analytics_generic_utils_1.Emitter));\nexports.CoreEventQueue = CoreEventQueue;\n//# sourceMappingURL=event-queue.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.dispatch = exports.getDelay = void 0;\nvar tslib_1 = require(\"tslib\");\nvar callback_1 = require(\"../callback\");\n/* The amount of time in ms to wait before invoking the callback. */\nvar getDelay = function (startTimeInEpochMS, timeoutInMS) {\n var elapsedTime = Date.now() - startTimeInEpochMS;\n // increasing the timeout increases the delay by almost the same amount -- this is weird legacy behavior.\n return Math.max((timeoutInMS !== null && timeoutInMS !== void 0 ? timeoutInMS : 300) - elapsedTime, 0);\n};\nexports.getDelay = getDelay;\n/**\n * Push an event into the dispatch queue and invoke any callbacks.\n *\n * @param event - Segment event to enqueue.\n * @param queue - Queue to dispatch against.\n * @param emitter - This is typically an instance of \"Analytics\" -- used for metrics / progress information.\n * @param options\n */\nfunction dispatch(ctx, queue, emitter, options) {\n return tslib_1.__awaiter(this, void 0, void 0, function () {\n var startTime, dispatched;\n return tslib_1.__generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n emitter.emit('dispatch_start', ctx);\n startTime = Date.now();\n if (!queue.isEmpty()) return [3 /*break*/, 2];\n return [4 /*yield*/, queue.dispatchSingle(ctx)];\n case 1:\n dispatched = _a.sent();\n return [3 /*break*/, 4];\n case 2: return [4 /*yield*/, queue.dispatch(ctx)];\n case 3:\n dispatched = _a.sent();\n _a.label = 4;\n case 4:\n if (!(options === null || options === void 0 ? void 0 : options.callback)) return [3 /*break*/, 6];\n return [4 /*yield*/, (0, callback_1.invokeCallback)(dispatched, options.callback, (0, exports.getDelay)(startTime, options.timeout))];\n case 5:\n dispatched = _a.sent();\n _a.label = 6;\n case 6:\n if (options === null || options === void 0 ? void 0 : options.debug) {\n dispatched.flush();\n }\n return [2 /*return*/, dispatched];\n }\n });\n });\n}\nexports.dispatch = dispatch;\n//# sourceMappingURL=dispatch.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.bindAll = void 0;\nfunction bindAll(obj) {\n var proto = obj.constructor.prototype;\n for (var _i = 0, _a = Object.getOwnPropertyNames(proto); _i < _a.length; _i++) {\n var key = _a[_i];\n if (key !== 'constructor') {\n var desc = Object.getOwnPropertyDescriptor(obj.constructor.prototype, key);\n if (!!desc && typeof desc.value === 'function') {\n obj[key] = obj[key].bind(obj);\n }\n }\n }\n return obj;\n}\nexports.bindAll = bindAll;\n//# sourceMappingURL=bind-all.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.CoreLogger = exports.backoff = void 0;\nvar tslib_1 = require(\"tslib\");\ntslib_1.__exportStar(require(\"./emitter/interface\"), exports);\ntslib_1.__exportStar(require(\"./plugins\"), exports);\ntslib_1.__exportStar(require(\"./events/interfaces\"), exports);\ntslib_1.__exportStar(require(\"./events\"), exports);\ntslib_1.__exportStar(require(\"./callback\"), exports);\ntslib_1.__exportStar(require(\"./priority-queue\"), exports);\nvar backoff_1 = require(\"./priority-queue/backoff\");\nObject.defineProperty(exports, \"backoff\", { enumerable: true, get: function () { return backoff_1.backoff; } });\ntslib_1.__exportStar(require(\"./context\"), exports);\ntslib_1.__exportStar(require(\"./queue/event-queue\"), exports);\ntslib_1.__exportStar(require(\"./analytics\"), exports);\ntslib_1.__exportStar(require(\"./analytics/dispatch\"), exports);\ntslib_1.__exportStar(require(\"./validation/helpers\"), exports);\ntslib_1.__exportStar(require(\"./validation/errors\"), exports);\ntslib_1.__exportStar(require(\"./validation/assertions\"), exports);\ntslib_1.__exportStar(require(\"./utils/bind-all\"), exports);\ntslib_1.__exportStar(require(\"./stats\"), exports);\nvar logger_1 = require(\"./logger\");\nObject.defineProperty(exports, \"CoreLogger\", { enumerable: true, get: function () { return logger_1.CoreLogger; } });\ntslib_1.__exportStar(require(\"./queue/delivery\"), exports);\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.validateSettings = void 0;\nconst analytics_core_1 = require(\"@segment/analytics-core\");\nconst validateSettings = (settings) => {\n if (!settings.writeKey) {\n throw new analytics_core_1.ValidationError('writeKey', 'writeKey is missing.');\n }\n};\nexports.validateSettings = validateSettings;\n//# sourceMappingURL=settings.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.version = void 0;\n// This file is generated.\nexports.version = '3.1.0';\n//# sourceMappingURL=version.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.tryCreateFormattedUrl = void 0;\nconst stripTrailingSlash = (str) => str.replace(/\\/$/, '');\n/**\n *\n * @param host e.g. \"http://foo.com\"\n * @param path e.g. \"/bar\"\n * @returns \"e.g.\" \"http://foo.com/bar\"\n */\nconst tryCreateFormattedUrl = (host, path) => {\n return stripTrailingSlash(new URL(path || '', host).href);\n};\nexports.tryCreateFormattedUrl = tryCreateFormattedUrl;\n//# sourceMappingURL=create-url.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.uuid = void 0;\nvar uuid_1 = require(\"@lukeed/uuid\");\nObject.defineProperty(exports, \"uuid\", { enumerable: true, get: function () { return uuid_1.v4; } });\n//# sourceMappingURL=uuid.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ContextBatch = void 0;\nconst uuid_1 = require(\"../../lib/uuid\");\nconst MAX_EVENT_SIZE_IN_KB = 32;\nconst MAX_BATCH_SIZE_IN_KB = 480; // (500 KB is the limit, leaving some padding)\nclass ContextBatch {\n id = (0, uuid_1.uuid)();\n items = [];\n sizeInBytes = 0;\n maxEventCount;\n constructor(maxEventCount) {\n this.maxEventCount = Math.max(1, maxEventCount);\n }\n tryAdd(item) {\n if (this.length === this.maxEventCount)\n return {\n success: false,\n message: `Event limit of ${this.maxEventCount} has been exceeded.`,\n };\n const eventSize = this.calculateSize(item.context);\n if (eventSize > MAX_EVENT_SIZE_IN_KB * 1024) {\n return {\n success: false,\n message: `Event exceeds maximum event size of ${MAX_EVENT_SIZE_IN_KB} KB`,\n };\n }\n if (this.sizeInBytes + eventSize > MAX_BATCH_SIZE_IN_KB * 1024) {\n return {\n success: false,\n message: `Event has caused batch size to exceed ${MAX_BATCH_SIZE_IN_KB} KB`,\n };\n }\n this.items.push(item);\n this.sizeInBytes += eventSize;\n return { success: true };\n }\n get length() {\n return this.items.length;\n }\n calculateSize(ctx) {\n return encodeURI(JSON.stringify(ctx.event)).split(/%..|i/).length;\n }\n getEvents() {\n const events = this.items.map(({ context }) => context.event);\n return events;\n }\n getContexts() {\n return this.items.map((item) => item.context);\n }\n resolveEvents() {\n this.items.forEach(({ resolver, context }) => resolver(context));\n }\n}\nexports.ContextBatch = ContextBatch;\n//# sourceMappingURL=context-batch.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst node_crypto_1 = require(\"node:crypto\");\nconst digest = (algorithm, data) => (0, node_crypto_1.createHash)(algorithm).update(data).digest();\nexports.default = digest;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.decoder = exports.encoder = void 0;\nexports.concat = concat;\nexports.p2s = p2s;\nexports.uint64be = uint64be;\nexports.uint32be = uint32be;\nexports.lengthAndInput = lengthAndInput;\nexports.concatKdf = concatKdf;\nconst digest_js_1 = require(\"../runtime/digest.js\");\nexports.encoder = new TextEncoder();\nexports.decoder = new TextDecoder();\nconst MAX_INT32 = 2 ** 32;\nfunction concat(...buffers) {\n const size = buffers.reduce((acc, { length }) => acc + length, 0);\n const buf = new Uint8Array(size);\n let i = 0;\n for (const buffer of buffers) {\n buf.set(buffer, i);\n i += buffer.length;\n }\n return buf;\n}\nfunction p2s(alg, p2sInput) {\n return concat(exports.encoder.encode(alg), new Uint8Array([0]), p2sInput);\n}\nfunction writeUInt32BE(buf, value, offset) {\n if (value < 0 || value >= MAX_INT32) {\n throw new RangeError(`value must be >= 0 and <= ${MAX_INT32 - 1}. Received ${value}`);\n }\n buf.set([value >>> 24, value >>> 16, value >>> 8, value & 0xff], offset);\n}\nfunction uint64be(value) {\n const high = Math.floor(value / MAX_INT32);\n const low = value % MAX_INT32;\n const buf = new Uint8Array(8);\n writeUInt32BE(buf, high, 0);\n writeUInt32BE(buf, low, 4);\n return buf;\n}\nfunction uint32be(value) {\n const buf = new Uint8Array(4);\n writeUInt32BE(buf, value);\n return buf;\n}\nfunction lengthAndInput(input) {\n return concat(uint32be(input.length), input);\n}\nasync function concatKdf(secret, bits, value) {\n const iterations = Math.ceil((bits >> 3) / 32);\n const res = new Uint8Array(iterations * 32);\n for (let iter = 0; iter < iterations; iter++) {\n const buf = new Uint8Array(4 + secret.length + value.length);\n buf.set(uint32be(iter + 1));\n buf.set(secret, 4);\n buf.set(value, 4 + secret.length);\n res.set(await (0, digest_js_1.default)('sha256', buf), iter * 32);\n }\n return res.slice(0, bits >> 3);\n}\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.decode = exports.encode = exports.encodeBase64 = exports.decodeBase64 = void 0;\nconst node_buffer_1 = require(\"node:buffer\");\nconst buffer_utils_js_1 = require(\"../lib/buffer_utils.js\");\nfunction normalize(input) {\n let encoded = input;\n if (encoded instanceof Uint8Array) {\n encoded = buffer_utils_js_1.decoder.decode(encoded);\n }\n return encoded;\n}\nconst encode = (input) => node_buffer_1.Buffer.from(input).toString('base64url');\nexports.encode = encode;\nconst decodeBase64 = (input) => new Uint8Array(node_buffer_1.Buffer.from(input, 'base64'));\nexports.decodeBase64 = decodeBase64;\nconst encodeBase64 = (input) => node_buffer_1.Buffer.from(input).toString('base64');\nexports.encodeBase64 = encodeBase64;\nconst decode = (input) => new Uint8Array(node_buffer_1.Buffer.from(normalize(input), 'base64url'));\nexports.decode = decode;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.JWSSignatureVerificationFailed = exports.JWKSTimeout = exports.JWKSMultipleMatchingKeys = exports.JWKSNoMatchingKey = exports.JWKSInvalid = exports.JWKInvalid = exports.JWTInvalid = exports.JWSInvalid = exports.JWEInvalid = exports.JWEDecryptionFailed = exports.JOSENotSupported = exports.JOSEAlgNotAllowed = exports.JWTExpired = exports.JWTClaimValidationFailed = exports.JOSEError = void 0;\nclass JOSEError extends Error {\n static code = 'ERR_JOSE_GENERIC';\n code = 'ERR_JOSE_GENERIC';\n constructor(message, options) {\n super(message, options);\n this.name = this.constructor.name;\n Error.captureStackTrace?.(this, this.constructor);\n }\n}\nexports.JOSEError = JOSEError;\nclass JWTClaimValidationFailed extends JOSEError {\n static code = 'ERR_JWT_CLAIM_VALIDATION_FAILED';\n code = 'ERR_JWT_CLAIM_VALIDATION_FAILED';\n claim;\n reason;\n payload;\n constructor(message, payload, claim = 'unspecified', reason = 'unspecified') {\n super(message, { cause: { claim, reason, payload } });\n this.claim = claim;\n this.reason = reason;\n this.payload = payload;\n }\n}\nexports.JWTClaimValidationFailed = JWTClaimValidationFailed;\nclass JWTExpired extends JOSEError {\n static code = 'ERR_JWT_EXPIRED';\n code = 'ERR_JWT_EXPIRED';\n claim;\n reason;\n payload;\n constructor(message, payload, claim = 'unspecified', reason = 'unspecified') {\n super(message, { cause: { claim, reason, payload } });\n this.claim = claim;\n this.reason = reason;\n this.payload = payload;\n }\n}\nexports.JWTExpired = JWTExpired;\nclass JOSEAlgNotAllowed extends JOSEError {\n static code = 'ERR_JOSE_ALG_NOT_ALLOWED';\n code = 'ERR_JOSE_ALG_NOT_ALLOWED';\n}\nexports.JOSEAlgNotAllowed = JOSEAlgNotAllowed;\nclass JOSENotSupported extends JOSEError {\n static code = 'ERR_JOSE_NOT_SUPPORTED';\n code = 'ERR_JOSE_NOT_SUPPORTED';\n}\nexports.JOSENotSupported = JOSENotSupported;\nclass JWEDecryptionFailed extends JOSEError {\n static code = 'ERR_JWE_DECRYPTION_FAILED';\n code = 'ERR_JWE_DECRYPTION_FAILED';\n constructor(message = 'decryption operation failed', options) {\n super(message, options);\n }\n}\nexports.JWEDecryptionFailed = JWEDecryptionFailed;\nclass JWEInvalid extends JOSEError {\n static code = 'ERR_JWE_INVALID';\n code = 'ERR_JWE_INVALID';\n}\nexports.JWEInvalid = JWEInvalid;\nclass JWSInvalid extends JOSEError {\n static code = 'ERR_JWS_INVALID';\n code = 'ERR_JWS_INVALID';\n}\nexports.JWSInvalid = JWSInvalid;\nclass JWTInvalid extends JOSEError {\n static code = 'ERR_JWT_INVALID';\n code = 'ERR_JWT_INVALID';\n}\nexports.JWTInvalid = JWTInvalid;\nclass JWKInvalid extends JOSEError {\n static code = 'ERR_JWK_INVALID';\n code = 'ERR_JWK_INVALID';\n}\nexports.JWKInvalid = JWKInvalid;\nclass JWKSInvalid extends JOSEError {\n static code = 'ERR_JWKS_INVALID';\n code = 'ERR_JWKS_INVALID';\n}\nexports.JWKSInvalid = JWKSInvalid;\nclass JWKSNoMatchingKey extends JOSEError {\n static code = 'ERR_JWKS_NO_MATCHING_KEY';\n code = 'ERR_JWKS_NO_MATCHING_KEY';\n constructor(message = 'no applicable key found in the JSON Web Key Set', options) {\n super(message, options);\n }\n}\nexports.JWKSNoMatchingKey = JWKSNoMatchingKey;\nclass JWKSMultipleMatchingKeys extends JOSEError {\n [Symbol.asyncIterator];\n static code = 'ERR_JWKS_MULTIPLE_MATCHING_KEYS';\n code = 'ERR_JWKS_MULTIPLE_MATCHING_KEYS';\n constructor(message = 'multiple matching keys found in the JSON Web Key Set', options) {\n super(message, options);\n }\n}\nexports.JWKSMultipleMatchingKeys = JWKSMultipleMatchingKeys;\nclass JWKSTimeout extends JOSEError {\n static code = 'ERR_JWKS_TIMEOUT';\n code = 'ERR_JWKS_TIMEOUT';\n constructor(message = 'request timed out', options) {\n super(message, options);\n }\n}\nexports.JWKSTimeout = JWKSTimeout;\nclass JWSSignatureVerificationFailed extends JOSEError {\n static code = 'ERR_JWS_SIGNATURE_VERIFICATION_FAILED';\n code = 'ERR_JWS_SIGNATURE_VERIFICATION_FAILED';\n constructor(message = 'signature verification failed', options) {\n super(message, options);\n }\n}\nexports.JWSSignatureVerificationFailed = JWSSignatureVerificationFailed;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.default = void 0;\nvar node_crypto_1 = require(\"node:crypto\");\nObject.defineProperty(exports, \"default\", { enumerable: true, get: function () { return node_crypto_1.randomFillSync; } });\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.bitLength = bitLength;\nconst errors_js_1 = require(\"../util/errors.js\");\nconst random_js_1 = require(\"../runtime/random.js\");\nfunction bitLength(alg) {\n switch (alg) {\n case 'A128GCM':\n case 'A128GCMKW':\n case 'A192GCM':\n case 'A192GCMKW':\n case 'A256GCM':\n case 'A256GCMKW':\n return 96;\n case 'A128CBC-HS256':\n case 'A192CBC-HS384':\n case 'A256CBC-HS512':\n return 128;\n default:\n throw new errors_js_1.JOSENotSupported(`Unsupported JWE Algorithm: ${alg}`);\n }\n}\nexports.default = (alg) => (0, random_js_1.default)(new Uint8Array(bitLength(alg) >> 3));\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst errors_js_1 = require(\"../util/errors.js\");\nconst iv_js_1 = require(\"./iv.js\");\nconst checkIvLength = (enc, iv) => {\n if (iv.length << 3 !== (0, iv_js_1.bitLength)(enc)) {\n throw new errors_js_1.JWEInvalid('Invalid Initialization Vector length');\n }\n};\nexports.default = checkIvLength;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst util = require(\"node:util\");\nexports.default = (obj) => util.types.isKeyObject(obj);\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst errors_js_1 = require(\"../util/errors.js\");\nconst is_key_object_js_1 = require(\"./is_key_object.js\");\nconst checkCekLength = (enc, cek) => {\n let expected;\n switch (enc) {\n case 'A128CBC-HS256':\n case 'A192CBC-HS384':\n case 'A256CBC-HS512':\n expected = parseInt(enc.slice(-3), 10);\n break;\n case 'A128GCM':\n case 'A192GCM':\n case 'A256GCM':\n expected = parseInt(enc.slice(1, 4), 10);\n break;\n default:\n throw new errors_js_1.JOSENotSupported(`Content Encryption Algorithm ${enc} is not supported either by JOSE or your javascript runtime`);\n }\n if (cek instanceof Uint8Array) {\n const actual = cek.byteLength << 3;\n if (actual !== expected) {\n throw new errors_js_1.JWEInvalid(`Invalid Content Encryption Key length. Expected ${expected} bits, got ${actual} bits`);\n }\n return;\n }\n if ((0, is_key_object_js_1.default)(cek) && cek.type === 'secret') {\n const actual = cek.symmetricKeySize << 3;\n if (actual !== expected) {\n throw new errors_js_1.JWEInvalid(`Invalid Content Encryption Key length. Expected ${expected} bits, got ${actual} bits`);\n }\n return;\n }\n throw new TypeError('Invalid Content Encryption Key type');\n};\nexports.default = checkCekLength;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst node_crypto_1 = require(\"node:crypto\");\nconst timingSafeEqual = node_crypto_1.timingSafeEqual;\nexports.default = timingSafeEqual;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.default = cbcTag;\nconst node_crypto_1 = require(\"node:crypto\");\nconst buffer_utils_js_1 = require(\"../lib/buffer_utils.js\");\nfunction cbcTag(aad, iv, ciphertext, macSize, macKey, keySize) {\n const macData = (0, buffer_utils_js_1.concat)(aad, iv, ciphertext, (0, buffer_utils_js_1.uint64be)(aad.length << 3));\n const hmac = (0, node_crypto_1.createHmac)(`sha${macSize}`, macKey);\n hmac.update(macData);\n return hmac.digest().slice(0, keySize >> 3);\n}\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.isCryptoKey = void 0;\nconst crypto = require(\"node:crypto\");\nconst util = require(\"node:util\");\nconst webcrypto = crypto.webcrypto;\nexports.default = webcrypto;\nconst isCryptoKey = (key) => util.types.isCryptoKey(key);\nexports.isCryptoKey = isCryptoKey;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.checkSigCryptoKey = checkSigCryptoKey;\nexports.checkEncCryptoKey = checkEncCryptoKey;\nfunction unusable(name, prop = 'algorithm.name') {\n return new TypeError(`CryptoKey does not support this operation, its ${prop} must be ${name}`);\n}\nfunction isAlgorithm(algorithm, name) {\n return algorithm.name === name;\n}\nfunction getHashLength(hash) {\n return parseInt(hash.name.slice(4), 10);\n}\nfunction getNamedCurve(alg) {\n switch (alg) {\n case 'ES256':\n return 'P-256';\n case 'ES384':\n return 'P-384';\n case 'ES512':\n return 'P-521';\n default:\n throw new Error('unreachable');\n }\n}\nfunction checkUsage(key, usages) {\n if (usages.length && !usages.some((expected) => key.usages.includes(expected))) {\n let msg = 'CryptoKey does not support this operation, its usages must include ';\n if (usages.length > 2) {\n const last = usages.pop();\n msg += `one of ${usages.join(', ')}, or ${last}.`;\n }\n else if (usages.length === 2) {\n msg += `one of ${usages[0]} or ${usages[1]}.`;\n }\n else {\n msg += `${usages[0]}.`;\n }\n throw new TypeError(msg);\n }\n}\nfunction checkSigCryptoKey(key, alg, ...usages) {\n switch (alg) {\n case 'HS256':\n case 'HS384':\n case 'HS512': {\n if (!isAlgorithm(key.algorithm, 'HMAC'))\n throw unusable('HMAC');\n const expected = parseInt(alg.slice(2), 10);\n const actual = getHashLength(key.algorithm.hash);\n if (actual !== expected)\n throw unusable(`SHA-${expected}`, 'algorithm.hash');\n break;\n }\n case 'RS256':\n case 'RS384':\n case 'RS512': {\n if (!isAlgorithm(key.algorithm, 'RSASSA-PKCS1-v1_5'))\n throw unusable('RSASSA-PKCS1-v1_5');\n const expected = parseInt(alg.slice(2), 10);\n const actual = getHashLength(key.algorithm.hash);\n if (actual !== expected)\n throw unusable(`SHA-${expected}`, 'algorithm.hash');\n break;\n }\n case 'PS256':\n case 'PS384':\n case 'PS512': {\n if (!isAlgorithm(key.algorithm, 'RSA-PSS'))\n throw unusable('RSA-PSS');\n const expected = parseInt(alg.slice(2), 10);\n const actual = getHashLength(key.algorithm.hash);\n if (actual !== expected)\n throw unusable(`SHA-${expected}`, 'algorithm.hash');\n break;\n }\n case 'EdDSA': {\n if (key.algorithm.name !== 'Ed25519' && key.algorithm.name !== 'Ed448') {\n throw unusable('Ed25519 or Ed448');\n }\n break;\n }\n case 'Ed25519': {\n if (!isAlgorithm(key.algorithm, 'Ed25519'))\n throw unusable('Ed25519');\n break;\n }\n case 'ES256':\n case 'ES384':\n case 'ES512': {\n if (!isAlgorithm(key.algorithm, 'ECDSA'))\n throw unusable('ECDSA');\n const expected = getNamedCurve(alg);\n const actual = key.algorithm.namedCurve;\n if (actual !== expected)\n throw unusable(expected, 'algorithm.namedCurve');\n break;\n }\n default:\n throw new TypeError('CryptoKey does not support this operation');\n }\n checkUsage(key, usages);\n}\nfunction checkEncCryptoKey(key, alg, ...usages) {\n switch (alg) {\n case 'A128GCM':\n case 'A192GCM':\n case 'A256GCM': {\n if (!isAlgorithm(key.algorithm, 'AES-GCM'))\n throw unusable('AES-GCM');\n const expected = parseInt(alg.slice(1, 4), 10);\n const actual = key.algorithm.length;\n if (actual !== expected)\n throw unusable(expected, 'algorithm.length');\n break;\n }\n case 'A128KW':\n case 'A192KW':\n case 'A256KW': {\n if (!isAlgorithm(key.algorithm, 'AES-KW'))\n throw unusable('AES-KW');\n const expected = parseInt(alg.slice(1, 4), 10);\n const actual = key.algorithm.length;\n if (actual !== expected)\n throw unusable(expected, 'algorithm.length');\n break;\n }\n case 'ECDH': {\n switch (key.algorithm.name) {\n case 'ECDH':\n case 'X25519':\n case 'X448':\n break;\n default:\n throw unusable('ECDH, X25519, or X448');\n }\n break;\n }\n case 'PBES2-HS256+A128KW':\n case 'PBES2-HS384+A192KW':\n case 'PBES2-HS512+A256KW':\n if (!isAlgorithm(key.algorithm, 'PBKDF2'))\n throw unusable('PBKDF2');\n break;\n case 'RSA-OAEP':\n case 'RSA-OAEP-256':\n case 'RSA-OAEP-384':\n case 'RSA-OAEP-512': {\n if (!isAlgorithm(key.algorithm, 'RSA-OAEP'))\n throw unusable('RSA-OAEP');\n const expected = parseInt(alg.slice(9), 10) || 1;\n const actual = getHashLength(key.algorithm.hash);\n if (actual !== expected)\n throw unusable(`SHA-${expected}`, 'algorithm.hash');\n break;\n }\n default:\n throw new TypeError('CryptoKey does not support this operation');\n }\n checkUsage(key, usages);\n}\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.withAlg = withAlg;\nfunction message(msg, actual, ...types) {\n types = types.filter(Boolean);\n if (types.length > 2) {\n const last = types.pop();\n msg += `one of type ${types.join(', ')}, or ${last}.`;\n }\n else if (types.length === 2) {\n msg += `one of type ${types[0]} or ${types[1]}.`;\n }\n else {\n msg += `of type ${types[0]}.`;\n }\n if (actual == null) {\n msg += ` Received ${actual}`;\n }\n else if (typeof actual === 'function' && actual.name) {\n msg += ` Received function ${actual.name}`;\n }\n else if (typeof actual === 'object' && actual != null) {\n if (actual.constructor?.name) {\n msg += ` Received an instance of ${actual.constructor.name}`;\n }\n }\n return msg;\n}\nexports.default = (actual, ...types) => {\n return message('Key must be ', actual, ...types);\n};\nfunction withAlg(alg, actual, ...types) {\n return message(`Key for the ${alg} algorithm must be `, actual, ...types);\n}\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst node_crypto_1 = require(\"node:crypto\");\nlet ciphers;\nexports.default = (algorithm) => {\n ciphers ||= new Set((0, node_crypto_1.getCiphers)());\n return ciphers.has(algorithm);\n};\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.types = void 0;\nconst webcrypto_js_1 = require(\"./webcrypto.js\");\nconst is_key_object_js_1 = require(\"./is_key_object.js\");\nexports.default = (key) => (0, is_key_object_js_1.default)(key) || (0, webcrypto_js_1.isCryptoKey)(key);\nconst types = ['KeyObject'];\nexports.types = types;\nif (globalThis.CryptoKey || webcrypto_js_1.default?.CryptoKey) {\n types.push('CryptoKey');\n}\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst node_crypto_1 = require(\"node:crypto\");\nconst check_iv_length_js_1 = require(\"../lib/check_iv_length.js\");\nconst check_cek_length_js_1 = require(\"./check_cek_length.js\");\nconst buffer_utils_js_1 = require(\"../lib/buffer_utils.js\");\nconst errors_js_1 = require(\"../util/errors.js\");\nconst timing_safe_equal_js_1 = require(\"./timing_safe_equal.js\");\nconst cbc_tag_js_1 = require(\"./cbc_tag.js\");\nconst webcrypto_js_1 = require(\"./webcrypto.js\");\nconst crypto_key_js_1 = require(\"../lib/crypto_key.js\");\nconst is_key_object_js_1 = require(\"./is_key_object.js\");\nconst invalid_key_input_js_1 = require(\"../lib/invalid_key_input.js\");\nconst ciphers_js_1 = require(\"./ciphers.js\");\nconst is_key_like_js_1 = require(\"./is_key_like.js\");\nfunction cbcDecrypt(enc, cek, ciphertext, iv, tag, aad) {\n const keySize = parseInt(enc.slice(1, 4), 10);\n if ((0, is_key_object_js_1.default)(cek)) {\n cek = cek.export();\n }\n const encKey = cek.subarray(keySize >> 3);\n const macKey = cek.subarray(0, keySize >> 3);\n const macSize = parseInt(enc.slice(-3), 10);\n const algorithm = `aes-${keySize}-cbc`;\n if (!(0, ciphers_js_1.default)(algorithm)) {\n throw new errors_js_1.JOSENotSupported(`alg ${enc} is not supported by your javascript runtime`);\n }\n const expectedTag = (0, cbc_tag_js_1.default)(aad, iv, ciphertext, macSize, macKey, keySize);\n let macCheckPassed;\n try {\n macCheckPassed = (0, timing_safe_equal_js_1.default)(tag, expectedTag);\n }\n catch {\n }\n if (!macCheckPassed) {\n throw new errors_js_1.JWEDecryptionFailed();\n }\n let plaintext;\n try {\n const decipher = (0, node_crypto_1.createDecipheriv)(algorithm, encKey, iv);\n plaintext = (0, buffer_utils_js_1.concat)(decipher.update(ciphertext), decipher.final());\n }\n catch {\n }\n if (!plaintext) {\n throw new errors_js_1.JWEDecryptionFailed();\n }\n return plaintext;\n}\nfunction gcmDecrypt(enc, cek, ciphertext, iv, tag, aad) {\n const keySize = parseInt(enc.slice(1, 4), 10);\n const algorithm = `aes-${keySize}-gcm`;\n if (!(0, ciphers_js_1.default)(algorithm)) {\n throw new errors_js_1.JOSENotSupported(`alg ${enc} is not supported by your javascript runtime`);\n }\n try {\n const decipher = (0, node_crypto_1.createDecipheriv)(algorithm, cek, iv, { authTagLength: 16 });\n decipher.setAuthTag(tag);\n if (aad.byteLength) {\n decipher.setAAD(aad, { plaintextLength: ciphertext.length });\n }\n const plaintext = decipher.update(ciphertext);\n decipher.final();\n return plaintext;\n }\n catch {\n throw new errors_js_1.JWEDecryptionFailed();\n }\n}\nconst decrypt = (enc, cek, ciphertext, iv, tag, aad) => {\n let key;\n if ((0, webcrypto_js_1.isCryptoKey)(cek)) {\n (0, crypto_key_js_1.checkEncCryptoKey)(cek, enc, 'decrypt');\n key = node_crypto_1.KeyObject.from(cek);\n }\n else if (cek instanceof Uint8Array || (0, is_key_object_js_1.default)(cek)) {\n key = cek;\n }\n else {\n throw new TypeError((0, invalid_key_input_js_1.default)(cek, ...is_key_like_js_1.types, 'Uint8Array'));\n }\n if (!iv) {\n throw new errors_js_1.JWEInvalid('JWE Initialization Vector missing');\n }\n if (!tag) {\n throw new errors_js_1.JWEInvalid('JWE Authentication Tag missing');\n }\n (0, check_cek_length_js_1.default)(enc, key);\n (0, check_iv_length_js_1.default)(enc, iv);\n switch (enc) {\n case 'A128CBC-HS256':\n case 'A192CBC-HS384':\n case 'A256CBC-HS512':\n return cbcDecrypt(enc, key, ciphertext, iv, tag, aad);\n case 'A128GCM':\n case 'A192GCM':\n case 'A256GCM':\n return gcmDecrypt(enc, key, ciphertext, iv, tag, aad);\n default:\n throw new errors_js_1.JOSENotSupported('Unsupported JWE Content Encryption Algorithm');\n }\n};\nexports.default = decrypt;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst isDisjoint = (...headers) => {\n const sources = headers.filter(Boolean);\n if (sources.length === 0 || sources.length === 1) {\n return true;\n }\n let acc;\n for (const header of sources) {\n const parameters = Object.keys(header);\n if (!acc || acc.size === 0) {\n acc = new Set(parameters);\n continue;\n }\n for (const parameter of parameters) {\n if (acc.has(parameter)) {\n return false;\n }\n acc.add(parameter);\n }\n }\n return true;\n};\nexports.default = isDisjoint;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.default = isObject;\nfunction isObjectLike(value) {\n return typeof value === 'object' && value !== null;\n}\nfunction isObject(input) {\n if (!isObjectLike(input) || Object.prototype.toString.call(input) !== '[object Object]') {\n return false;\n }\n if (Object.getPrototypeOf(input) === null) {\n return true;\n }\n let proto = input;\n while (Object.getPrototypeOf(proto) !== null) {\n proto = Object.getPrototypeOf(proto);\n }\n return Object.getPrototypeOf(input) === proto;\n}\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.unwrap = exports.wrap = void 0;\nconst node_buffer_1 = require(\"node:buffer\");\nconst node_crypto_1 = require(\"node:crypto\");\nconst errors_js_1 = require(\"../util/errors.js\");\nconst buffer_utils_js_1 = require(\"../lib/buffer_utils.js\");\nconst webcrypto_js_1 = require(\"./webcrypto.js\");\nconst crypto_key_js_1 = require(\"../lib/crypto_key.js\");\nconst is_key_object_js_1 = require(\"./is_key_object.js\");\nconst invalid_key_input_js_1 = require(\"../lib/invalid_key_input.js\");\nconst ciphers_js_1 = require(\"./ciphers.js\");\nconst is_key_like_js_1 = require(\"./is_key_like.js\");\nfunction checkKeySize(key, alg) {\n if (key.symmetricKeySize << 3 !== parseInt(alg.slice(1, 4), 10)) {\n throw new TypeError(`Invalid key size for alg: ${alg}`);\n }\n}\nfunction ensureKeyObject(key, alg, usage) {\n if ((0, is_key_object_js_1.default)(key)) {\n return key;\n }\n if (key instanceof Uint8Array) {\n return (0, node_crypto_1.createSecretKey)(key);\n }\n if ((0, webcrypto_js_1.isCryptoKey)(key)) {\n (0, crypto_key_js_1.checkEncCryptoKey)(key, alg, usage);\n return node_crypto_1.KeyObject.from(key);\n }\n throw new TypeError((0, invalid_key_input_js_1.default)(key, ...is_key_like_js_1.types, 'Uint8Array'));\n}\nconst wrap = (alg, key, cek) => {\n const size = parseInt(alg.slice(1, 4), 10);\n const algorithm = `aes${size}-wrap`;\n if (!(0, ciphers_js_1.default)(algorithm)) {\n throw new errors_js_1.JOSENotSupported(`alg ${alg} is not supported either by JOSE or your javascript runtime`);\n }\n const keyObject = ensureKeyObject(key, alg, 'wrapKey');\n checkKeySize(keyObject, alg);\n const cipher = (0, node_crypto_1.createCipheriv)(algorithm, keyObject, node_buffer_1.Buffer.alloc(8, 0xa6));\n return (0, buffer_utils_js_1.concat)(cipher.update(cek), cipher.final());\n};\nexports.wrap = wrap;\nconst unwrap = (alg, key, encryptedKey) => {\n const size = parseInt(alg.slice(1, 4), 10);\n const algorithm = `aes${size}-wrap`;\n if (!(0, ciphers_js_1.default)(algorithm)) {\n throw new errors_js_1.JOSENotSupported(`alg ${alg} is not supported either by JOSE or your javascript runtime`);\n }\n const keyObject = ensureKeyObject(key, alg, 'unwrapKey');\n checkKeySize(keyObject, alg);\n const cipher = (0, node_crypto_1.createDecipheriv)(algorithm, keyObject, node_buffer_1.Buffer.alloc(8, 0xa6));\n return (0, buffer_utils_js_1.concat)(cipher.update(encryptedKey), cipher.final());\n};\nexports.unwrap = unwrap;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.isJWK = isJWK;\nexports.isPrivateJWK = isPrivateJWK;\nexports.isPublicJWK = isPublicJWK;\nexports.isSecretJWK = isSecretJWK;\nconst is_object_js_1 = require(\"./is_object.js\");\nfunction isJWK(key) {\n return (0, is_object_js_1.default)(key) && typeof key.kty === 'string';\n}\nfunction isPrivateJWK(key) {\n return key.kty !== 'oct' && typeof key.d === 'string';\n}\nfunction isPublicJWK(key) {\n return key.kty !== 'oct' && typeof key.d === 'undefined';\n}\nfunction isSecretJWK(key) {\n return isJWK(key) && key.kty === 'oct' && typeof key.k === 'string';\n}\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.weakMap = void 0;\nconst node_crypto_1 = require(\"node:crypto\");\nconst errors_js_1 = require(\"../util/errors.js\");\nconst webcrypto_js_1 = require(\"./webcrypto.js\");\nconst is_key_object_js_1 = require(\"./is_key_object.js\");\nconst invalid_key_input_js_1 = require(\"../lib/invalid_key_input.js\");\nconst is_key_like_js_1 = require(\"./is_key_like.js\");\nconst is_jwk_js_1 = require(\"../lib/is_jwk.js\");\nexports.weakMap = new WeakMap();\nconst namedCurveToJOSE = (namedCurve) => {\n switch (namedCurve) {\n case 'prime256v1':\n return 'P-256';\n case 'secp384r1':\n return 'P-384';\n case 'secp521r1':\n return 'P-521';\n case 'secp256k1':\n return 'secp256k1';\n default:\n throw new errors_js_1.JOSENotSupported('Unsupported key curve for this operation');\n }\n};\nconst getNamedCurve = (kee, raw) => {\n let key;\n if ((0, webcrypto_js_1.isCryptoKey)(kee)) {\n key = node_crypto_1.KeyObject.from(kee);\n }\n else if ((0, is_key_object_js_1.default)(kee)) {\n key = kee;\n }\n else if ((0, is_jwk_js_1.isJWK)(kee)) {\n return kee.crv;\n }\n else {\n throw new TypeError((0, invalid_key_input_js_1.default)(kee, ...is_key_like_js_1.types));\n }\n if (key.type === 'secret') {\n throw new TypeError('only \"private\" or \"public\" type keys can be used for this operation');\n }\n switch (key.asymmetricKeyType) {\n case 'ed25519':\n case 'ed448':\n return `Ed${key.asymmetricKeyType.slice(2)}`;\n case 'x25519':\n case 'x448':\n return `X${key.asymmetricKeyType.slice(1)}`;\n case 'ec': {\n const namedCurve = key.asymmetricKeyDetails.namedCurve;\n if (raw) {\n return namedCurve;\n }\n return namedCurveToJOSE(namedCurve);\n }\n default:\n throw new TypeError('Invalid asymmetric key type for this operation');\n }\n};\nexports.default = getNamedCurve;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ecdhAllowed = void 0;\nexports.deriveKey = deriveKey;\nexports.generateEpk = generateEpk;\nconst node_crypto_1 = require(\"node:crypto\");\nconst node_util_1 = require(\"node:util\");\nconst get_named_curve_js_1 = require(\"./get_named_curve.js\");\nconst buffer_utils_js_1 = require(\"../lib/buffer_utils.js\");\nconst errors_js_1 = require(\"../util/errors.js\");\nconst webcrypto_js_1 = require(\"./webcrypto.js\");\nconst crypto_key_js_1 = require(\"../lib/crypto_key.js\");\nconst is_key_object_js_1 = require(\"./is_key_object.js\");\nconst invalid_key_input_js_1 = require(\"../lib/invalid_key_input.js\");\nconst is_key_like_js_1 = require(\"./is_key_like.js\");\nconst generateKeyPair = (0, node_util_1.promisify)(node_crypto_1.generateKeyPair);\nasync function deriveKey(publicKee, privateKee, algorithm, keyLength, apu = new Uint8Array(0), apv = new Uint8Array(0)) {\n let publicKey;\n if ((0, webcrypto_js_1.isCryptoKey)(publicKee)) {\n (0, crypto_key_js_1.checkEncCryptoKey)(publicKee, 'ECDH');\n publicKey = node_crypto_1.KeyObject.from(publicKee);\n }\n else if ((0, is_key_object_js_1.default)(publicKee)) {\n publicKey = publicKee;\n }\n else {\n throw new TypeError((0, invalid_key_input_js_1.default)(publicKee, ...is_key_like_js_1.types));\n }\n let privateKey;\n if ((0, webcrypto_js_1.isCryptoKey)(privateKee)) {\n (0, crypto_key_js_1.checkEncCryptoKey)(privateKee, 'ECDH', 'deriveBits');\n privateKey = node_crypto_1.KeyObject.from(privateKee);\n }\n else if ((0, is_key_object_js_1.default)(privateKee)) {\n privateKey = privateKee;\n }\n else {\n throw new TypeError((0, invalid_key_input_js_1.default)(privateKee, ...is_key_like_js_1.types));\n }\n const value = (0, buffer_utils_js_1.concat)((0, buffer_utils_js_1.lengthAndInput)(buffer_utils_js_1.encoder.encode(algorithm)), (0, buffer_utils_js_1.lengthAndInput)(apu), (0, buffer_utils_js_1.lengthAndInput)(apv), (0, buffer_utils_js_1.uint32be)(keyLength));\n const sharedSecret = (0, node_crypto_1.diffieHellman)({ privateKey, publicKey });\n return (0, buffer_utils_js_1.concatKdf)(sharedSecret, keyLength, value);\n}\nasync function generateEpk(kee) {\n let key;\n if ((0, webcrypto_js_1.isCryptoKey)(kee)) {\n key = node_crypto_1.KeyObject.from(kee);\n }\n else if ((0, is_key_object_js_1.default)(kee)) {\n key = kee;\n }\n else {\n throw new TypeError((0, invalid_key_input_js_1.default)(kee, ...is_key_like_js_1.types));\n }\n switch (key.asymmetricKeyType) {\n case 'x25519':\n return generateKeyPair('x25519');\n case 'x448': {\n return generateKeyPair('x448');\n }\n case 'ec': {\n const namedCurve = (0, get_named_curve_js_1.default)(key);\n return generateKeyPair('ec', { namedCurve });\n }\n default:\n throw new errors_js_1.JOSENotSupported('Invalid or unsupported EPK');\n }\n}\nconst ecdhAllowed = (key) => ['P-256', 'P-384', 'P-521', 'X25519', 'X448'].includes((0, get_named_curve_js_1.default)(key));\nexports.ecdhAllowed = ecdhAllowed;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.default = checkP2s;\nconst errors_js_1 = require(\"../util/errors.js\");\nfunction checkP2s(p2s) {\n if (!(p2s instanceof Uint8Array) || p2s.length < 8) {\n throw new errors_js_1.JWEInvalid('PBES2 Salt Input must be 8 or more octets');\n }\n}\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.decrypt = exports.encrypt = void 0;\nconst node_util_1 = require(\"node:util\");\nconst node_crypto_1 = require(\"node:crypto\");\nconst random_js_1 = require(\"./random.js\");\nconst buffer_utils_js_1 = require(\"../lib/buffer_utils.js\");\nconst base64url_js_1 = require(\"./base64url.js\");\nconst aeskw_js_1 = require(\"./aeskw.js\");\nconst check_p2s_js_1 = require(\"../lib/check_p2s.js\");\nconst webcrypto_js_1 = require(\"./webcrypto.js\");\nconst crypto_key_js_1 = require(\"../lib/crypto_key.js\");\nconst is_key_object_js_1 = require(\"./is_key_object.js\");\nconst invalid_key_input_js_1 = require(\"../lib/invalid_key_input.js\");\nconst is_key_like_js_1 = require(\"./is_key_like.js\");\nconst pbkdf2 = (0, node_util_1.promisify)(node_crypto_1.pbkdf2);\nfunction getPassword(key, alg) {\n if ((0, is_key_object_js_1.default)(key)) {\n return key.export();\n }\n if (key instanceof Uint8Array) {\n return key;\n }\n if ((0, webcrypto_js_1.isCryptoKey)(key)) {\n (0, crypto_key_js_1.checkEncCryptoKey)(key, alg, 'deriveBits', 'deriveKey');\n return node_crypto_1.KeyObject.from(key).export();\n }\n throw new TypeError((0, invalid_key_input_js_1.default)(key, ...is_key_like_js_1.types, 'Uint8Array'));\n}\nconst encrypt = async (alg, key, cek, p2c = 2048, p2s = (0, random_js_1.default)(new Uint8Array(16))) => {\n (0, check_p2s_js_1.default)(p2s);\n const salt = (0, buffer_utils_js_1.p2s)(alg, p2s);\n const keylen = parseInt(alg.slice(13, 16), 10) >> 3;\n const password = getPassword(key, alg);\n const derivedKey = await pbkdf2(password, salt, p2c, keylen, `sha${alg.slice(8, 11)}`);\n const encryptedKey = await (0, aeskw_js_1.wrap)(alg.slice(-6), derivedKey, cek);\n return { encryptedKey, p2c, p2s: (0, base64url_js_1.encode)(p2s) };\n};\nexports.encrypt = encrypt;\nconst decrypt = async (alg, key, encryptedKey, p2c, p2s) => {\n (0, check_p2s_js_1.default)(p2s);\n const salt = (0, buffer_utils_js_1.p2s)(alg, p2s);\n const keylen = parseInt(alg.slice(13, 16), 10) >> 3;\n const password = getPassword(key, alg);\n const derivedKey = await pbkdf2(password, salt, p2c, keylen, `sha${alg.slice(8, 11)}`);\n return (0, aeskw_js_1.unwrap)(alg.slice(-6), derivedKey, encryptedKey);\n};\nexports.decrypt = decrypt;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst node_crypto_1 = require(\"node:crypto\");\nexports.default = (key, alg) => {\n let modulusLength;\n try {\n if (key instanceof node_crypto_1.KeyObject) {\n modulusLength = key.asymmetricKeyDetails?.modulusLength;\n }\n else {\n modulusLength = Buffer.from(key.n, 'base64url').byteLength << 3;\n }\n }\n catch { }\n if (typeof modulusLength !== 'number' || modulusLength < 2048) {\n throw new TypeError(`${alg} requires key modulusLength to be 2048 bits or larger`);\n }\n};\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.decrypt = exports.encrypt = void 0;\nconst node_crypto_1 = require(\"node:crypto\");\nconst node_util_1 = require(\"node:util\");\nconst check_key_length_js_1 = require(\"./check_key_length.js\");\nconst webcrypto_js_1 = require(\"./webcrypto.js\");\nconst crypto_key_js_1 = require(\"../lib/crypto_key.js\");\nconst is_key_object_js_1 = require(\"./is_key_object.js\");\nconst invalid_key_input_js_1 = require(\"../lib/invalid_key_input.js\");\nconst is_key_like_js_1 = require(\"./is_key_like.js\");\nconst checkKey = (key, alg) => {\n if (key.asymmetricKeyType !== 'rsa') {\n throw new TypeError('Invalid key for this operation, its asymmetricKeyType must be rsa');\n }\n (0, check_key_length_js_1.default)(key, alg);\n};\nconst RSA1_5 = (0, node_util_1.deprecate)(() => node_crypto_1.constants.RSA_PKCS1_PADDING, 'The RSA1_5 \"alg\" (JWE Algorithm) is deprecated and will be removed in the next major revision.');\nconst resolvePadding = (alg) => {\n switch (alg) {\n case 'RSA-OAEP':\n case 'RSA-OAEP-256':\n case 'RSA-OAEP-384':\n case 'RSA-OAEP-512':\n return node_crypto_1.constants.RSA_PKCS1_OAEP_PADDING;\n case 'RSA1_5':\n return RSA1_5();\n default:\n return undefined;\n }\n};\nconst resolveOaepHash = (alg) => {\n switch (alg) {\n case 'RSA-OAEP':\n return 'sha1';\n case 'RSA-OAEP-256':\n return 'sha256';\n case 'RSA-OAEP-384':\n return 'sha384';\n case 'RSA-OAEP-512':\n return 'sha512';\n default:\n return undefined;\n }\n};\nfunction ensureKeyObject(key, alg, ...usages) {\n if ((0, is_key_object_js_1.default)(key)) {\n return key;\n }\n if ((0, webcrypto_js_1.isCryptoKey)(key)) {\n (0, crypto_key_js_1.checkEncCryptoKey)(key, alg, ...usages);\n return node_crypto_1.KeyObject.from(key);\n }\n throw new TypeError((0, invalid_key_input_js_1.default)(key, ...is_key_like_js_1.types));\n}\nconst encrypt = (alg, key, cek) => {\n const padding = resolvePadding(alg);\n const oaepHash = resolveOaepHash(alg);\n const keyObject = ensureKeyObject(key, alg, 'wrapKey', 'encrypt');\n checkKey(keyObject, alg);\n return (0, node_crypto_1.publicEncrypt)({ key: keyObject, oaepHash, padding }, cek);\n};\nexports.encrypt = encrypt;\nconst decrypt = (alg, key, encryptedKey) => {\n const padding = resolvePadding(alg);\n const oaepHash = resolveOaepHash(alg);\n const keyObject = ensureKeyObject(key, alg, 'unwrapKey', 'decrypt');\n checkKey(keyObject, alg);\n return (0, node_crypto_1.privateDecrypt)({ key: keyObject, oaepHash, padding }, encryptedKey);\n};\nexports.decrypt = decrypt;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.default = {};\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.bitLength = bitLength;\nconst errors_js_1 = require(\"../util/errors.js\");\nconst random_js_1 = require(\"../runtime/random.js\");\nfunction bitLength(alg) {\n switch (alg) {\n case 'A128GCM':\n return 128;\n case 'A192GCM':\n return 192;\n case 'A256GCM':\n case 'A128CBC-HS256':\n return 256;\n case 'A192CBC-HS384':\n return 384;\n case 'A256CBC-HS512':\n return 512;\n default:\n throw new errors_js_1.JOSENotSupported(`Unsupported JWE Algorithm: ${alg}`);\n }\n}\nexports.default = (alg) => (0, random_js_1.default)(new Uint8Array(bitLength(alg) >> 3));\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.fromX509 = exports.fromSPKI = exports.fromPKCS8 = exports.toPKCS8 = exports.toSPKI = void 0;\nconst node_crypto_1 = require(\"node:crypto\");\nconst node_buffer_1 = require(\"node:buffer\");\nconst webcrypto_js_1 = require(\"./webcrypto.js\");\nconst is_key_object_js_1 = require(\"./is_key_object.js\");\nconst invalid_key_input_js_1 = require(\"../lib/invalid_key_input.js\");\nconst is_key_like_js_1 = require(\"./is_key_like.js\");\nconst genericExport = (keyType, keyFormat, key) => {\n let keyObject;\n if ((0, webcrypto_js_1.isCryptoKey)(key)) {\n if (!key.extractable) {\n throw new TypeError('CryptoKey is not extractable');\n }\n keyObject = node_crypto_1.KeyObject.from(key);\n }\n else if ((0, is_key_object_js_1.default)(key)) {\n keyObject = key;\n }\n else {\n throw new TypeError((0, invalid_key_input_js_1.default)(key, ...is_key_like_js_1.types));\n }\n if (keyObject.type !== keyType) {\n throw new TypeError(`key is not a ${keyType} key`);\n }\n return keyObject.export({ format: 'pem', type: keyFormat });\n};\nconst toSPKI = (key) => {\n return genericExport('public', 'spki', key);\n};\nexports.toSPKI = toSPKI;\nconst toPKCS8 = (key) => {\n return genericExport('private', 'pkcs8', key);\n};\nexports.toPKCS8 = toPKCS8;\nconst fromPKCS8 = (pem) => (0, node_crypto_1.createPrivateKey)({\n key: node_buffer_1.Buffer.from(pem.replace(/(?:-----(?:BEGIN|END) PRIVATE KEY-----|\\s)/g, ''), 'base64'),\n type: 'pkcs8',\n format: 'der',\n});\nexports.fromPKCS8 = fromPKCS8;\nconst fromSPKI = (pem) => (0, node_crypto_1.createPublicKey)({\n key: node_buffer_1.Buffer.from(pem.replace(/(?:-----(?:BEGIN|END) PUBLIC KEY-----|\\s)/g, ''), 'base64'),\n type: 'spki',\n format: 'der',\n});\nexports.fromSPKI = fromSPKI;\nconst fromX509 = (pem) => (0, node_crypto_1.createPublicKey)({\n key: pem,\n type: 'spki',\n format: 'pem',\n});\nexports.fromX509 = fromX509;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst node_crypto_1 = require(\"node:crypto\");\nconst parse = (key) => {\n if (key.d) {\n return (0, node_crypto_1.createPrivateKey)({ format: 'jwk', key });\n }\n return (0, node_crypto_1.createPublicKey)({ format: 'jwk', key });\n};\nexports.default = parse;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.importSPKI = importSPKI;\nexports.importX509 = importX509;\nexports.importPKCS8 = importPKCS8;\nexports.importJWK = importJWK;\nconst base64url_js_1 = require(\"../runtime/base64url.js\");\nconst asn1_js_1 = require(\"../runtime/asn1.js\");\nconst jwk_to_key_js_1 = require(\"../runtime/jwk_to_key.js\");\nconst errors_js_1 = require(\"../util/errors.js\");\nconst is_object_js_1 = require(\"../lib/is_object.js\");\nasync function importSPKI(spki, alg, options) {\n if (typeof spki !== 'string' || spki.indexOf('-----BEGIN PUBLIC KEY-----') !== 0) {\n throw new TypeError('\"spki\" must be SPKI formatted string');\n }\n return (0, asn1_js_1.fromSPKI)(spki, alg, options);\n}\nasync function importX509(x509, alg, options) {\n if (typeof x509 !== 'string' || x509.indexOf('-----BEGIN CERTIFICATE-----') !== 0) {\n throw new TypeError('\"x509\" must be X.509 formatted string');\n }\n return (0, asn1_js_1.fromX509)(x509, alg, options);\n}\nasync function importPKCS8(pkcs8, alg, options) {\n if (typeof pkcs8 !== 'string' || pkcs8.indexOf('-----BEGIN PRIVATE KEY-----') !== 0) {\n throw new TypeError('\"pkcs8\" must be PKCS#8 formatted string');\n }\n return (0, asn1_js_1.fromPKCS8)(pkcs8, alg, options);\n}\nasync function importJWK(jwk, alg) {\n if (!(0, is_object_js_1.default)(jwk)) {\n throw new TypeError('JWK must be an object');\n }\n alg ||= jwk.alg;\n switch (jwk.kty) {\n case 'oct':\n if (typeof jwk.k !== 'string' || !jwk.k) {\n throw new TypeError('missing \"k\" (Key Value) Parameter value');\n }\n return (0, base64url_js_1.decode)(jwk.k);\n case 'RSA':\n if ('oth' in jwk && jwk.oth !== undefined) {\n throw new errors_js_1.JOSENotSupported('RSA JWK \"oth\" (Other Primes Info) Parameter value is not supported');\n }\n case 'EC':\n case 'OKP':\n return (0, jwk_to_key_js_1.default)({ ...jwk, alg });\n default:\n throw new errors_js_1.JOSENotSupported('Unsupported \"kty\" (Key Type) Parameter value');\n }\n}\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.checkKeyTypeWithJwk = void 0;\nconst invalid_key_input_js_1 = require(\"./invalid_key_input.js\");\nconst is_key_like_js_1 = require(\"../runtime/is_key_like.js\");\nconst jwk = require(\"./is_jwk.js\");\nconst tag = (key) => key?.[Symbol.toStringTag];\nconst jwkMatchesOp = (alg, key, usage) => {\n if (key.use !== undefined && key.use !== 'sig') {\n throw new TypeError('Invalid key for this operation, when present its use must be sig');\n }\n if (key.key_ops !== undefined && key.key_ops.includes?.(usage) !== true) {\n throw new TypeError(`Invalid key for this operation, when present its key_ops must include ${usage}`);\n }\n if (key.alg !== undefined && key.alg !== alg) {\n throw new TypeError(`Invalid key for this operation, when present its alg must be ${alg}`);\n }\n return true;\n};\nconst symmetricTypeCheck = (alg, key, usage, allowJwk) => {\n if (key instanceof Uint8Array)\n return;\n if (allowJwk && jwk.isJWK(key)) {\n if (jwk.isSecretJWK(key) && jwkMatchesOp(alg, key, usage))\n return;\n throw new TypeError(`JSON Web Key for symmetric algorithms must have JWK \"kty\" (Key Type) equal to \"oct\" and the JWK \"k\" (Key Value) present`);\n }\n if (!(0, is_key_like_js_1.default)(key)) {\n throw new TypeError((0, invalid_key_input_js_1.withAlg)(alg, key, ...is_key_like_js_1.types, 'Uint8Array', allowJwk ? 'JSON Web Key' : null));\n }\n if (key.type !== 'secret') {\n throw new TypeError(`${tag(key)} instances for symmetric algorithms must be of type \"secret\"`);\n }\n};\nconst asymmetricTypeCheck = (alg, key, usage, allowJwk) => {\n if (allowJwk && jwk.isJWK(key)) {\n switch (usage) {\n case 'sign':\n if (jwk.isPrivateJWK(key) && jwkMatchesOp(alg, key, usage))\n return;\n throw new TypeError(`JSON Web Key for this operation be a private JWK`);\n case 'verify':\n if (jwk.isPublicJWK(key) && jwkMatchesOp(alg, key, usage))\n return;\n throw new TypeError(`JSON Web Key for this operation be a public JWK`);\n }\n }\n if (!(0, is_key_like_js_1.default)(key)) {\n throw new TypeError((0, invalid_key_input_js_1.withAlg)(alg, key, ...is_key_like_js_1.types, allowJwk ? 'JSON Web Key' : null));\n }\n if (key.type === 'secret') {\n throw new TypeError(`${tag(key)} instances for asymmetric algorithms must not be of type \"secret\"`);\n }\n if (usage === 'sign' && key.type === 'public') {\n throw new TypeError(`${tag(key)} instances for asymmetric algorithm signing must be of type \"private\"`);\n }\n if (usage === 'decrypt' && key.type === 'public') {\n throw new TypeError(`${tag(key)} instances for asymmetric algorithm decryption must be of type \"private\"`);\n }\n if (key.algorithm && usage === 'verify' && key.type === 'private') {\n throw new TypeError(`${tag(key)} instances for asymmetric algorithm verifying must be of type \"public\"`);\n }\n if (key.algorithm && usage === 'encrypt' && key.type === 'private') {\n throw new TypeError(`${tag(key)} instances for asymmetric algorithm encryption must be of type \"public\"`);\n }\n};\nfunction checkKeyType(allowJwk, alg, key, usage) {\n const symmetric = alg.startsWith('HS') ||\n alg === 'dir' ||\n alg.startsWith('PBES2') ||\n /^A\\d{3}(?:GCM)?KW$/.test(alg);\n if (symmetric) {\n symmetricTypeCheck(alg, key, usage, allowJwk);\n }\n else {\n asymmetricTypeCheck(alg, key, usage, allowJwk);\n }\n}\nexports.default = checkKeyType.bind(undefined, false);\nexports.checkKeyTypeWithJwk = checkKeyType.bind(undefined, true);\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst node_crypto_1 = require(\"node:crypto\");\nconst check_iv_length_js_1 = require(\"../lib/check_iv_length.js\");\nconst check_cek_length_js_1 = require(\"./check_cek_length.js\");\nconst buffer_utils_js_1 = require(\"../lib/buffer_utils.js\");\nconst cbc_tag_js_1 = require(\"./cbc_tag.js\");\nconst webcrypto_js_1 = require(\"./webcrypto.js\");\nconst crypto_key_js_1 = require(\"../lib/crypto_key.js\");\nconst is_key_object_js_1 = require(\"./is_key_object.js\");\nconst invalid_key_input_js_1 = require(\"../lib/invalid_key_input.js\");\nconst iv_js_1 = require(\"../lib/iv.js\");\nconst errors_js_1 = require(\"../util/errors.js\");\nconst ciphers_js_1 = require(\"./ciphers.js\");\nconst is_key_like_js_1 = require(\"./is_key_like.js\");\nfunction cbcEncrypt(enc, plaintext, cek, iv, aad) {\n const keySize = parseInt(enc.slice(1, 4), 10);\n if ((0, is_key_object_js_1.default)(cek)) {\n cek = cek.export();\n }\n const encKey = cek.subarray(keySize >> 3);\n const macKey = cek.subarray(0, keySize >> 3);\n const algorithm = `aes-${keySize}-cbc`;\n if (!(0, ciphers_js_1.default)(algorithm)) {\n throw new errors_js_1.JOSENotSupported(`alg ${enc} is not supported by your javascript runtime`);\n }\n const cipher = (0, node_crypto_1.createCipheriv)(algorithm, encKey, iv);\n const ciphertext = (0, buffer_utils_js_1.concat)(cipher.update(plaintext), cipher.final());\n const macSize = parseInt(enc.slice(-3), 10);\n const tag = (0, cbc_tag_js_1.default)(aad, iv, ciphertext, macSize, macKey, keySize);\n return { ciphertext, tag, iv };\n}\nfunction gcmEncrypt(enc, plaintext, cek, iv, aad) {\n const keySize = parseInt(enc.slice(1, 4), 10);\n const algorithm = `aes-${keySize}-gcm`;\n if (!(0, ciphers_js_1.default)(algorithm)) {\n throw new errors_js_1.JOSENotSupported(`alg ${enc} is not supported by your javascript runtime`);\n }\n const cipher = (0, node_crypto_1.createCipheriv)(algorithm, cek, iv, { authTagLength: 16 });\n if (aad.byteLength) {\n cipher.setAAD(aad, { plaintextLength: plaintext.length });\n }\n const ciphertext = cipher.update(plaintext);\n cipher.final();\n const tag = cipher.getAuthTag();\n return { ciphertext, tag, iv };\n}\nconst encrypt = (enc, plaintext, cek, iv, aad) => {\n let key;\n if ((0, webcrypto_js_1.isCryptoKey)(cek)) {\n (0, crypto_key_js_1.checkEncCryptoKey)(cek, enc, 'encrypt');\n key = node_crypto_1.KeyObject.from(cek);\n }\n else if (cek instanceof Uint8Array || (0, is_key_object_js_1.default)(cek)) {\n key = cek;\n }\n else {\n throw new TypeError((0, invalid_key_input_js_1.default)(cek, ...is_key_like_js_1.types, 'Uint8Array'));\n }\n (0, check_cek_length_js_1.default)(enc, key);\n if (iv) {\n (0, check_iv_length_js_1.default)(enc, iv);\n }\n else {\n iv = (0, iv_js_1.default)(enc);\n }\n switch (enc) {\n case 'A128CBC-HS256':\n case 'A192CBC-HS384':\n case 'A256CBC-HS512':\n return cbcEncrypt(enc, plaintext, key, iv, aad);\n case 'A128GCM':\n case 'A192GCM':\n case 'A256GCM':\n return gcmEncrypt(enc, plaintext, key, iv, aad);\n default:\n throw new errors_js_1.JOSENotSupported('Unsupported JWE Content Encryption Algorithm');\n }\n};\nexports.default = encrypt;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.wrap = wrap;\nexports.unwrap = unwrap;\nconst encrypt_js_1 = require(\"../runtime/encrypt.js\");\nconst decrypt_js_1 = require(\"../runtime/decrypt.js\");\nconst base64url_js_1 = require(\"../runtime/base64url.js\");\nasync function wrap(alg, key, cek, iv) {\n const jweAlgorithm = alg.slice(0, 7);\n const wrapped = await (0, encrypt_js_1.default)(jweAlgorithm, cek, key, iv, new Uint8Array(0));\n return {\n encryptedKey: wrapped.ciphertext,\n iv: (0, base64url_js_1.encode)(wrapped.iv),\n tag: (0, base64url_js_1.encode)(wrapped.tag),\n };\n}\nasync function unwrap(alg, key, encryptedKey, iv, tag) {\n const jweAlgorithm = alg.slice(0, 7);\n return (0, decrypt_js_1.default)(jweAlgorithm, key, encryptedKey, iv, tag, new Uint8Array(0));\n}\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst aeskw_js_1 = require(\"../runtime/aeskw.js\");\nconst ECDH = require(\"../runtime/ecdhes.js\");\nconst pbes2kw_js_1 = require(\"../runtime/pbes2kw.js\");\nconst rsaes_js_1 = require(\"../runtime/rsaes.js\");\nconst base64url_js_1 = require(\"../runtime/base64url.js\");\nconst normalize_key_js_1 = require(\"../runtime/normalize_key.js\");\nconst errors_js_1 = require(\"../util/errors.js\");\nconst cek_js_1 = require(\"../lib/cek.js\");\nconst import_js_1 = require(\"../key/import.js\");\nconst check_key_type_js_1 = require(\"./check_key_type.js\");\nconst is_object_js_1 = require(\"./is_object.js\");\nconst aesgcmkw_js_1 = require(\"./aesgcmkw.js\");\nasync function decryptKeyManagement(alg, key, encryptedKey, joseHeader, options) {\n (0, check_key_type_js_1.default)(alg, key, 'decrypt');\n key = (await normalize_key_js_1.default.normalizePrivateKey?.(key, alg)) || key;\n switch (alg) {\n case 'dir': {\n if (encryptedKey !== undefined)\n throw new errors_js_1.JWEInvalid('Encountered unexpected JWE Encrypted Key');\n return key;\n }\n case 'ECDH-ES':\n if (encryptedKey !== undefined)\n throw new errors_js_1.JWEInvalid('Encountered unexpected JWE Encrypted Key');\n case 'ECDH-ES+A128KW':\n case 'ECDH-ES+A192KW':\n case 'ECDH-ES+A256KW': {\n if (!(0, is_object_js_1.default)(joseHeader.epk))\n throw new errors_js_1.JWEInvalid(`JOSE Header \"epk\" (Ephemeral Public Key) missing or invalid`);\n if (!ECDH.ecdhAllowed(key))\n throw new errors_js_1.JOSENotSupported('ECDH with the provided key is not allowed or not supported by your javascript runtime');\n const epk = await (0, import_js_1.importJWK)(joseHeader.epk, alg);\n let partyUInfo;\n let partyVInfo;\n if (joseHeader.apu !== undefined) {\n if (typeof joseHeader.apu !== 'string')\n throw new errors_js_1.JWEInvalid(`JOSE Header \"apu\" (Agreement PartyUInfo) invalid`);\n try {\n partyUInfo = (0, base64url_js_1.decode)(joseHeader.apu);\n }\n catch {\n throw new errors_js_1.JWEInvalid('Failed to base64url decode the apu');\n }\n }\n if (joseHeader.apv !== undefined) {\n if (typeof joseHeader.apv !== 'string')\n throw new errors_js_1.JWEInvalid(`JOSE Header \"apv\" (Agreement PartyVInfo) invalid`);\n try {\n partyVInfo = (0, base64url_js_1.decode)(joseHeader.apv);\n }\n catch {\n throw new errors_js_1.JWEInvalid('Failed to base64url decode the apv');\n }\n }\n const sharedSecret = await ECDH.deriveKey(epk, key, alg === 'ECDH-ES' ? joseHeader.enc : alg, alg === 'ECDH-ES' ? (0, cek_js_1.bitLength)(joseHeader.enc) : parseInt(alg.slice(-5, -2), 10), partyUInfo, partyVInfo);\n if (alg === 'ECDH-ES')\n return sharedSecret;\n if (encryptedKey === undefined)\n throw new errors_js_1.JWEInvalid('JWE Encrypted Key missing');\n return (0, aeskw_js_1.unwrap)(alg.slice(-6), sharedSecret, encryptedKey);\n }\n case 'RSA1_5':\n case 'RSA-OAEP':\n case 'RSA-OAEP-256':\n case 'RSA-OAEP-384':\n case 'RSA-OAEP-512': {\n if (encryptedKey === undefined)\n throw new errors_js_1.JWEInvalid('JWE Encrypted Key missing');\n return (0, rsaes_js_1.decrypt)(alg, key, encryptedKey);\n }\n case 'PBES2-HS256+A128KW':\n case 'PBES2-HS384+A192KW':\n case 'PBES2-HS512+A256KW': {\n if (encryptedKey === undefined)\n throw new errors_js_1.JWEInvalid('JWE Encrypted Key missing');\n if (typeof joseHeader.p2c !== 'number')\n throw new errors_js_1.JWEInvalid(`JOSE Header \"p2c\" (PBES2 Count) missing or invalid`);\n const p2cLimit = options?.maxPBES2Count || 10_000;\n if (joseHeader.p2c > p2cLimit)\n throw new errors_js_1.JWEInvalid(`JOSE Header \"p2c\" (PBES2 Count) out is of acceptable bounds`);\n if (typeof joseHeader.p2s !== 'string')\n throw new errors_js_1.JWEInvalid(`JOSE Header \"p2s\" (PBES2 Salt) missing or invalid`);\n let p2s;\n try {\n p2s = (0, base64url_js_1.decode)(joseHeader.p2s);\n }\n catch {\n throw new errors_js_1.JWEInvalid('Failed to base64url decode the p2s');\n }\n return (0, pbes2kw_js_1.decrypt)(alg, key, encryptedKey, joseHeader.p2c, p2s);\n }\n case 'A128KW':\n case 'A192KW':\n case 'A256KW': {\n if (encryptedKey === undefined)\n throw new errors_js_1.JWEInvalid('JWE Encrypted Key missing');\n return (0, aeskw_js_1.unwrap)(alg, key, encryptedKey);\n }\n case 'A128GCMKW':\n case 'A192GCMKW':\n case 'A256GCMKW': {\n if (encryptedKey === undefined)\n throw new errors_js_1.JWEInvalid('JWE Encrypted Key missing');\n if (typeof joseHeader.iv !== 'string')\n throw new errors_js_1.JWEInvalid(`JOSE Header \"iv\" (Initialization Vector) missing or invalid`);\n if (typeof joseHeader.tag !== 'string')\n throw new errors_js_1.JWEInvalid(`JOSE Header \"tag\" (Authentication Tag) missing or invalid`);\n let iv;\n try {\n iv = (0, base64url_js_1.decode)(joseHeader.iv);\n }\n catch {\n throw new errors_js_1.JWEInvalid('Failed to base64url decode the iv');\n }\n let tag;\n try {\n tag = (0, base64url_js_1.decode)(joseHeader.tag);\n }\n catch {\n throw new errors_js_1.JWEInvalid('Failed to base64url decode the tag');\n }\n return (0, aesgcmkw_js_1.unwrap)(alg, key, encryptedKey, iv, tag);\n }\n default: {\n throw new errors_js_1.JOSENotSupported('Invalid or unsupported \"alg\" (JWE Algorithm) header value');\n }\n }\n}\nexports.default = decryptKeyManagement;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst errors_js_1 = require(\"../util/errors.js\");\nfunction validateCrit(Err, recognizedDefault, recognizedOption, protectedHeader, joseHeader) {\n if (joseHeader.crit !== undefined && protectedHeader?.crit === undefined) {\n throw new Err('\"crit\" (Critical) Header Parameter MUST be integrity protected');\n }\n if (!protectedHeader || protectedHeader.crit === undefined) {\n return new Set();\n }\n if (!Array.isArray(protectedHeader.crit) ||\n protectedHeader.crit.length === 0 ||\n protectedHeader.crit.some((input) => typeof input !== 'string' || input.length === 0)) {\n throw new Err('\"crit\" (Critical) Header Parameter MUST be an array of non-empty strings when present');\n }\n let recognized;\n if (recognizedOption !== undefined) {\n recognized = new Map([...Object.entries(recognizedOption), ...recognizedDefault.entries()]);\n }\n else {\n recognized = recognizedDefault;\n }\n for (const parameter of protectedHeader.crit) {\n if (!recognized.has(parameter)) {\n throw new errors_js_1.JOSENotSupported(`Extension Header Parameter \"${parameter}\" is not recognized`);\n }\n if (joseHeader[parameter] === undefined) {\n throw new Err(`Extension Header Parameter \"${parameter}\" is missing`);\n }\n if (recognized.get(parameter) && protectedHeader[parameter] === undefined) {\n throw new Err(`Extension Header Parameter \"${parameter}\" MUST be integrity protected`);\n }\n }\n return new Set(protectedHeader.crit);\n}\nexports.default = validateCrit;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst validateAlgorithms = (option, algorithms) => {\n if (algorithms !== undefined &&\n (!Array.isArray(algorithms) || algorithms.some((s) => typeof s !== 'string'))) {\n throw new TypeError(`\"${option}\" option must be an array of strings`);\n }\n if (!algorithms) {\n return undefined;\n }\n return new Set(algorithms);\n};\nexports.default = validateAlgorithms;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.flattenedDecrypt = flattenedDecrypt;\nconst base64url_js_1 = require(\"../../runtime/base64url.js\");\nconst decrypt_js_1 = require(\"../../runtime/decrypt.js\");\nconst errors_js_1 = require(\"../../util/errors.js\");\nconst is_disjoint_js_1 = require(\"../../lib/is_disjoint.js\");\nconst is_object_js_1 = require(\"../../lib/is_object.js\");\nconst decrypt_key_management_js_1 = require(\"../../lib/decrypt_key_management.js\");\nconst buffer_utils_js_1 = require(\"../../lib/buffer_utils.js\");\nconst cek_js_1 = require(\"../../lib/cek.js\");\nconst validate_crit_js_1 = require(\"../../lib/validate_crit.js\");\nconst validate_algorithms_js_1 = require(\"../../lib/validate_algorithms.js\");\nasync function flattenedDecrypt(jwe, key, options) {\n if (!(0, is_object_js_1.default)(jwe)) {\n throw new errors_js_1.JWEInvalid('Flattened JWE must be an object');\n }\n if (jwe.protected === undefined && jwe.header === undefined && jwe.unprotected === undefined) {\n throw new errors_js_1.JWEInvalid('JOSE Header missing');\n }\n if (jwe.iv !== undefined && typeof jwe.iv !== 'string') {\n throw new errors_js_1.JWEInvalid('JWE Initialization Vector incorrect type');\n }\n if (typeof jwe.ciphertext !== 'string') {\n throw new errors_js_1.JWEInvalid('JWE Ciphertext missing or incorrect type');\n }\n if (jwe.tag !== undefined && typeof jwe.tag !== 'string') {\n throw new errors_js_1.JWEInvalid('JWE Authentication Tag incorrect type');\n }\n if (jwe.protected !== undefined && typeof jwe.protected !== 'string') {\n throw new errors_js_1.JWEInvalid('JWE Protected Header incorrect type');\n }\n if (jwe.encrypted_key !== undefined && typeof jwe.encrypted_key !== 'string') {\n throw new errors_js_1.JWEInvalid('JWE Encrypted Key incorrect type');\n }\n if (jwe.aad !== undefined && typeof jwe.aad !== 'string') {\n throw new errors_js_1.JWEInvalid('JWE AAD incorrect type');\n }\n if (jwe.header !== undefined && !(0, is_object_js_1.default)(jwe.header)) {\n throw new errors_js_1.JWEInvalid('JWE Shared Unprotected Header incorrect type');\n }\n if (jwe.unprotected !== undefined && !(0, is_object_js_1.default)(jwe.unprotected)) {\n throw new errors_js_1.JWEInvalid('JWE Per-Recipient Unprotected Header incorrect type');\n }\n let parsedProt;\n if (jwe.protected) {\n try {\n const protectedHeader = (0, base64url_js_1.decode)(jwe.protected);\n parsedProt = JSON.parse(buffer_utils_js_1.decoder.decode(protectedHeader));\n }\n catch {\n throw new errors_js_1.JWEInvalid('JWE Protected Header is invalid');\n }\n }\n if (!(0, is_disjoint_js_1.default)(parsedProt, jwe.header, jwe.unprotected)) {\n throw new errors_js_1.JWEInvalid('JWE Protected, JWE Unprotected Header, and JWE Per-Recipient Unprotected Header Parameter names must be disjoint');\n }\n const joseHeader = {\n ...parsedProt,\n ...jwe.header,\n ...jwe.unprotected,\n };\n (0, validate_crit_js_1.default)(errors_js_1.JWEInvalid, new Map(), options?.crit, parsedProt, joseHeader);\n if (joseHeader.zip !== undefined) {\n throw new errors_js_1.JOSENotSupported('JWE \"zip\" (Compression Algorithm) Header Parameter is not supported.');\n }\n const { alg, enc } = joseHeader;\n if (typeof alg !== 'string' || !alg) {\n throw new errors_js_1.JWEInvalid('missing JWE Algorithm (alg) in JWE Header');\n }\n if (typeof enc !== 'string' || !enc) {\n throw new errors_js_1.JWEInvalid('missing JWE Encryption Algorithm (enc) in JWE Header');\n }\n const keyManagementAlgorithms = options && (0, validate_algorithms_js_1.default)('keyManagementAlgorithms', options.keyManagementAlgorithms);\n const contentEncryptionAlgorithms = options &&\n (0, validate_algorithms_js_1.default)('contentEncryptionAlgorithms', options.contentEncryptionAlgorithms);\n if ((keyManagementAlgorithms && !keyManagementAlgorithms.has(alg)) ||\n (!keyManagementAlgorithms && alg.startsWith('PBES2'))) {\n throw new errors_js_1.JOSEAlgNotAllowed('\"alg\" (Algorithm) Header Parameter value not allowed');\n }\n if (contentEncryptionAlgorithms && !contentEncryptionAlgorithms.has(enc)) {\n throw new errors_js_1.JOSEAlgNotAllowed('\"enc\" (Encryption Algorithm) Header Parameter value not allowed');\n }\n let encryptedKey;\n if (jwe.encrypted_key !== undefined) {\n try {\n encryptedKey = (0, base64url_js_1.decode)(jwe.encrypted_key);\n }\n catch {\n throw new errors_js_1.JWEInvalid('Failed to base64url decode the encrypted_key');\n }\n }\n let resolvedKey = false;\n if (typeof key === 'function') {\n key = await key(parsedProt, jwe);\n resolvedKey = true;\n }\n let cek;\n try {\n cek = await (0, decrypt_key_management_js_1.default)(alg, key, encryptedKey, joseHeader, options);\n }\n catch (err) {\n if (err instanceof TypeError || err instanceof errors_js_1.JWEInvalid || err instanceof errors_js_1.JOSENotSupported) {\n throw err;\n }\n cek = (0, cek_js_1.default)(enc);\n }\n let iv;\n let tag;\n if (jwe.iv !== undefined) {\n try {\n iv = (0, base64url_js_1.decode)(jwe.iv);\n }\n catch {\n throw new errors_js_1.JWEInvalid('Failed to base64url decode the iv');\n }\n }\n if (jwe.tag !== undefined) {\n try {\n tag = (0, base64url_js_1.decode)(jwe.tag);\n }\n catch {\n throw new errors_js_1.JWEInvalid('Failed to base64url decode the tag');\n }\n }\n const protectedHeader = buffer_utils_js_1.encoder.encode(jwe.protected ?? '');\n let additionalData;\n if (jwe.aad !== undefined) {\n additionalData = (0, buffer_utils_js_1.concat)(protectedHeader, buffer_utils_js_1.encoder.encode('.'), buffer_utils_js_1.encoder.encode(jwe.aad));\n }\n else {\n additionalData = protectedHeader;\n }\n let ciphertext;\n try {\n ciphertext = (0, base64url_js_1.decode)(jwe.ciphertext);\n }\n catch {\n throw new errors_js_1.JWEInvalid('Failed to base64url decode the ciphertext');\n }\n const plaintext = await (0, decrypt_js_1.default)(enc, cek, ciphertext, iv, tag, additionalData);\n const result = { plaintext };\n if (jwe.protected !== undefined) {\n result.protectedHeader = parsedProt;\n }\n if (jwe.aad !== undefined) {\n try {\n result.additionalAuthenticatedData = (0, base64url_js_1.decode)(jwe.aad);\n }\n catch {\n throw new errors_js_1.JWEInvalid('Failed to base64url decode the aad');\n }\n }\n if (jwe.unprotected !== undefined) {\n result.sharedUnprotectedHeader = jwe.unprotected;\n }\n if (jwe.header !== undefined) {\n result.unprotectedHeader = jwe.header;\n }\n if (resolvedKey) {\n return { ...result, key };\n }\n return result;\n}\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.compactDecrypt = compactDecrypt;\nconst decrypt_js_1 = require(\"../flattened/decrypt.js\");\nconst errors_js_1 = require(\"../../util/errors.js\");\nconst buffer_utils_js_1 = require(\"../../lib/buffer_utils.js\");\nasync function compactDecrypt(jwe, key, options) {\n if (jwe instanceof Uint8Array) {\n jwe = buffer_utils_js_1.decoder.decode(jwe);\n }\n if (typeof jwe !== 'string') {\n throw new errors_js_1.JWEInvalid('Compact JWE must be a string or Uint8Array');\n }\n const { 0: protectedHeader, 1: encryptedKey, 2: iv, 3: ciphertext, 4: tag, length, } = jwe.split('.');\n if (length !== 5) {\n throw new errors_js_1.JWEInvalid('Invalid Compact JWE');\n }\n const decrypted = await (0, decrypt_js_1.flattenedDecrypt)({\n ciphertext,\n iv: iv || undefined,\n protected: protectedHeader,\n tag: tag || undefined,\n encrypted_key: encryptedKey || undefined,\n }, key, options);\n const result = { plaintext: decrypted.plaintext, protectedHeader: decrypted.protectedHeader };\n if (typeof key === 'function') {\n return { ...result, key: decrypted.key };\n }\n return result;\n}\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.generalDecrypt = generalDecrypt;\nconst decrypt_js_1 = require(\"../flattened/decrypt.js\");\nconst errors_js_1 = require(\"../../util/errors.js\");\nconst is_object_js_1 = require(\"../../lib/is_object.js\");\nasync function generalDecrypt(jwe, key, options) {\n if (!(0, is_object_js_1.default)(jwe)) {\n throw new errors_js_1.JWEInvalid('General JWE must be an object');\n }\n if (!Array.isArray(jwe.recipients) || !jwe.recipients.every(is_object_js_1.default)) {\n throw new errors_js_1.JWEInvalid('JWE Recipients missing or incorrect type');\n }\n if (!jwe.recipients.length) {\n throw new errors_js_1.JWEInvalid('JWE Recipients has no members');\n }\n for (const recipient of jwe.recipients) {\n try {\n return await (0, decrypt_js_1.flattenedDecrypt)({\n aad: jwe.aad,\n ciphertext: jwe.ciphertext,\n encrypted_key: recipient.encrypted_key,\n header: recipient.header,\n iv: jwe.iv,\n protected: jwe.protected,\n tag: jwe.tag,\n unprotected: jwe.unprotected,\n }, key, options);\n }\n catch {\n }\n }\n throw new errors_js_1.JWEDecryptionFailed();\n}\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.unprotected = void 0;\nexports.unprotected = Symbol();\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst node_crypto_1 = require(\"node:crypto\");\nconst base64url_js_1 = require(\"./base64url.js\");\nconst errors_js_1 = require(\"../util/errors.js\");\nconst webcrypto_js_1 = require(\"./webcrypto.js\");\nconst is_key_object_js_1 = require(\"./is_key_object.js\");\nconst invalid_key_input_js_1 = require(\"../lib/invalid_key_input.js\");\nconst is_key_like_js_1 = require(\"./is_key_like.js\");\nconst keyToJWK = (key) => {\n let keyObject;\n if ((0, webcrypto_js_1.isCryptoKey)(key)) {\n if (!key.extractable) {\n throw new TypeError('CryptoKey is not extractable');\n }\n keyObject = node_crypto_1.KeyObject.from(key);\n }\n else if ((0, is_key_object_js_1.default)(key)) {\n keyObject = key;\n }\n else if (key instanceof Uint8Array) {\n return {\n kty: 'oct',\n k: (0, base64url_js_1.encode)(key),\n };\n }\n else {\n throw new TypeError((0, invalid_key_input_js_1.default)(key, ...is_key_like_js_1.types, 'Uint8Array'));\n }\n if (keyObject.type !== 'secret' &&\n !['rsa', 'ec', 'ed25519', 'x25519', 'ed448', 'x448'].includes(keyObject.asymmetricKeyType)) {\n throw new errors_js_1.JOSENotSupported('Unsupported key asymmetricKeyType');\n }\n return keyObject.export({ format: 'jwk' });\n};\nexports.default = keyToJWK;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.exportSPKI = exportSPKI;\nexports.exportPKCS8 = exportPKCS8;\nexports.exportJWK = exportJWK;\nconst asn1_js_1 = require(\"../runtime/asn1.js\");\nconst asn1_js_2 = require(\"../runtime/asn1.js\");\nconst key_to_jwk_js_1 = require(\"../runtime/key_to_jwk.js\");\nasync function exportSPKI(key) {\n return (0, asn1_js_1.toSPKI)(key);\n}\nasync function exportPKCS8(key) {\n return (0, asn1_js_2.toPKCS8)(key);\n}\nasync function exportJWK(key) {\n return (0, key_to_jwk_js_1.default)(key);\n}\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst aeskw_js_1 = require(\"../runtime/aeskw.js\");\nconst ECDH = require(\"../runtime/ecdhes.js\");\nconst pbes2kw_js_1 = require(\"../runtime/pbes2kw.js\");\nconst rsaes_js_1 = require(\"../runtime/rsaes.js\");\nconst base64url_js_1 = require(\"../runtime/base64url.js\");\nconst normalize_key_js_1 = require(\"../runtime/normalize_key.js\");\nconst cek_js_1 = require(\"../lib/cek.js\");\nconst errors_js_1 = require(\"../util/errors.js\");\nconst export_js_1 = require(\"../key/export.js\");\nconst check_key_type_js_1 = require(\"./check_key_type.js\");\nconst aesgcmkw_js_1 = require(\"./aesgcmkw.js\");\nasync function encryptKeyManagement(alg, enc, key, providedCek, providedParameters = {}) {\n let encryptedKey;\n let parameters;\n let cek;\n (0, check_key_type_js_1.default)(alg, key, 'encrypt');\n key = (await normalize_key_js_1.default.normalizePublicKey?.(key, alg)) || key;\n switch (alg) {\n case 'dir': {\n cek = key;\n break;\n }\n case 'ECDH-ES':\n case 'ECDH-ES+A128KW':\n case 'ECDH-ES+A192KW':\n case 'ECDH-ES+A256KW': {\n if (!ECDH.ecdhAllowed(key)) {\n throw new errors_js_1.JOSENotSupported('ECDH with the provided key is not allowed or not supported by your javascript runtime');\n }\n const { apu, apv } = providedParameters;\n let { epk: ephemeralKey } = providedParameters;\n ephemeralKey ||= (await ECDH.generateEpk(key)).privateKey;\n const { x, y, crv, kty } = await (0, export_js_1.exportJWK)(ephemeralKey);\n const sharedSecret = await ECDH.deriveKey(key, ephemeralKey, alg === 'ECDH-ES' ? enc : alg, alg === 'ECDH-ES' ? (0, cek_js_1.bitLength)(enc) : parseInt(alg.slice(-5, -2), 10), apu, apv);\n parameters = { epk: { x, crv, kty } };\n if (kty === 'EC')\n parameters.epk.y = y;\n if (apu)\n parameters.apu = (0, base64url_js_1.encode)(apu);\n if (apv)\n parameters.apv = (0, base64url_js_1.encode)(apv);\n if (alg === 'ECDH-ES') {\n cek = sharedSecret;\n break;\n }\n cek = providedCek || (0, cek_js_1.default)(enc);\n const kwAlg = alg.slice(-6);\n encryptedKey = await (0, aeskw_js_1.wrap)(kwAlg, sharedSecret, cek);\n break;\n }\n case 'RSA1_5':\n case 'RSA-OAEP':\n case 'RSA-OAEP-256':\n case 'RSA-OAEP-384':\n case 'RSA-OAEP-512': {\n cek = providedCek || (0, cek_js_1.default)(enc);\n encryptedKey = await (0, rsaes_js_1.encrypt)(alg, key, cek);\n break;\n }\n case 'PBES2-HS256+A128KW':\n case 'PBES2-HS384+A192KW':\n case 'PBES2-HS512+A256KW': {\n cek = providedCek || (0, cek_js_1.default)(enc);\n const { p2c, p2s } = providedParameters;\n ({ encryptedKey, ...parameters } = await (0, pbes2kw_js_1.encrypt)(alg, key, cek, p2c, p2s));\n break;\n }\n case 'A128KW':\n case 'A192KW':\n case 'A256KW': {\n cek = providedCek || (0, cek_js_1.default)(enc);\n encryptedKey = await (0, aeskw_js_1.wrap)(alg, key, cek);\n break;\n }\n case 'A128GCMKW':\n case 'A192GCMKW':\n case 'A256GCMKW': {\n cek = providedCek || (0, cek_js_1.default)(enc);\n const { iv } = providedParameters;\n ({ encryptedKey, ...parameters } = await (0, aesgcmkw_js_1.wrap)(alg, key, cek, iv));\n break;\n }\n default: {\n throw new errors_js_1.JOSENotSupported('Invalid or unsupported \"alg\" (JWE Algorithm) header value');\n }\n }\n return { cek, encryptedKey, parameters };\n}\nexports.default = encryptKeyManagement;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.FlattenedEncrypt = void 0;\nconst base64url_js_1 = require(\"../../runtime/base64url.js\");\nconst private_symbols_js_1 = require(\"../../lib/private_symbols.js\");\nconst encrypt_js_1 = require(\"../../runtime/encrypt.js\");\nconst encrypt_key_management_js_1 = require(\"../../lib/encrypt_key_management.js\");\nconst errors_js_1 = require(\"../../util/errors.js\");\nconst is_disjoint_js_1 = require(\"../../lib/is_disjoint.js\");\nconst buffer_utils_js_1 = require(\"../../lib/buffer_utils.js\");\nconst validate_crit_js_1 = require(\"../../lib/validate_crit.js\");\nclass FlattenedEncrypt {\n _plaintext;\n _protectedHeader;\n _sharedUnprotectedHeader;\n _unprotectedHeader;\n _aad;\n _cek;\n _iv;\n _keyManagementParameters;\n constructor(plaintext) {\n if (!(plaintext instanceof Uint8Array)) {\n throw new TypeError('plaintext must be an instance of Uint8Array');\n }\n this._plaintext = plaintext;\n }\n setKeyManagementParameters(parameters) {\n if (this._keyManagementParameters) {\n throw new TypeError('setKeyManagementParameters can only be called once');\n }\n this._keyManagementParameters = parameters;\n return this;\n }\n setProtectedHeader(protectedHeader) {\n if (this._protectedHeader) {\n throw new TypeError('setProtectedHeader can only be called once');\n }\n this._protectedHeader = protectedHeader;\n return this;\n }\n setSharedUnprotectedHeader(sharedUnprotectedHeader) {\n if (this._sharedUnprotectedHeader) {\n throw new TypeError('setSharedUnprotectedHeader can only be called once');\n }\n this._sharedUnprotectedHeader = sharedUnprotectedHeader;\n return this;\n }\n setUnprotectedHeader(unprotectedHeader) {\n if (this._unprotectedHeader) {\n throw new TypeError('setUnprotectedHeader can only be called once');\n }\n this._unprotectedHeader = unprotectedHeader;\n return this;\n }\n setAdditionalAuthenticatedData(aad) {\n this._aad = aad;\n return this;\n }\n setContentEncryptionKey(cek) {\n if (this._cek) {\n throw new TypeError('setContentEncryptionKey can only be called once');\n }\n this._cek = cek;\n return this;\n }\n setInitializationVector(iv) {\n if (this._iv) {\n throw new TypeError('setInitializationVector can only be called once');\n }\n this._iv = iv;\n return this;\n }\n async encrypt(key, options) {\n if (!this._protectedHeader && !this._unprotectedHeader && !this._sharedUnprotectedHeader) {\n throw new errors_js_1.JWEInvalid('either setProtectedHeader, setUnprotectedHeader, or sharedUnprotectedHeader must be called before #encrypt()');\n }\n if (!(0, is_disjoint_js_1.default)(this._protectedHeader, this._unprotectedHeader, this._sharedUnprotectedHeader)) {\n throw new errors_js_1.JWEInvalid('JWE Protected, JWE Shared Unprotected and JWE Per-Recipient Header Parameter names must be disjoint');\n }\n const joseHeader = {\n ...this._protectedHeader,\n ...this._unprotectedHeader,\n ...this._sharedUnprotectedHeader,\n };\n (0, validate_crit_js_1.default)(errors_js_1.JWEInvalid, new Map(), options?.crit, this._protectedHeader, joseHeader);\n if (joseHeader.zip !== undefined) {\n throw new errors_js_1.JOSENotSupported('JWE \"zip\" (Compression Algorithm) Header Parameter is not supported.');\n }\n const { alg, enc } = joseHeader;\n if (typeof alg !== 'string' || !alg) {\n throw new errors_js_1.JWEInvalid('JWE \"alg\" (Algorithm) Header Parameter missing or invalid');\n }\n if (typeof enc !== 'string' || !enc) {\n throw new errors_js_1.JWEInvalid('JWE \"enc\" (Encryption Algorithm) Header Parameter missing or invalid');\n }\n let encryptedKey;\n if (this._cek && (alg === 'dir' || alg === 'ECDH-ES')) {\n throw new TypeError(`setContentEncryptionKey cannot be called with JWE \"alg\" (Algorithm) Header ${alg}`);\n }\n let cek;\n {\n let parameters;\n ({ cek, encryptedKey, parameters } = await (0, encrypt_key_management_js_1.default)(alg, enc, key, this._cek, this._keyManagementParameters));\n if (parameters) {\n if (options && private_symbols_js_1.unprotected in options) {\n if (!this._unprotectedHeader) {\n this.setUnprotectedHeader(parameters);\n }\n else {\n this._unprotectedHeader = { ...this._unprotectedHeader, ...parameters };\n }\n }\n else if (!this._protectedHeader) {\n this.setProtectedHeader(parameters);\n }\n else {\n this._protectedHeader = { ...this._protectedHeader, ...parameters };\n }\n }\n }\n let additionalData;\n let protectedHeader;\n let aadMember;\n if (this._protectedHeader) {\n protectedHeader = buffer_utils_js_1.encoder.encode((0, base64url_js_1.encode)(JSON.stringify(this._protectedHeader)));\n }\n else {\n protectedHeader = buffer_utils_js_1.encoder.encode('');\n }\n if (this._aad) {\n aadMember = (0, base64url_js_1.encode)(this._aad);\n additionalData = (0, buffer_utils_js_1.concat)(protectedHeader, buffer_utils_js_1.encoder.encode('.'), buffer_utils_js_1.encoder.encode(aadMember));\n }\n else {\n additionalData = protectedHeader;\n }\n const { ciphertext, tag, iv } = await (0, encrypt_js_1.default)(enc, this._plaintext, cek, this._iv, additionalData);\n const jwe = {\n ciphertext: (0, base64url_js_1.encode)(ciphertext),\n };\n if (iv) {\n jwe.iv = (0, base64url_js_1.encode)(iv);\n }\n if (tag) {\n jwe.tag = (0, base64url_js_1.encode)(tag);\n }\n if (encryptedKey) {\n jwe.encrypted_key = (0, base64url_js_1.encode)(encryptedKey);\n }\n if (aadMember) {\n jwe.aad = aadMember;\n }\n if (this._protectedHeader) {\n jwe.protected = buffer_utils_js_1.decoder.decode(protectedHeader);\n }\n if (this._sharedUnprotectedHeader) {\n jwe.unprotected = this._sharedUnprotectedHeader;\n }\n if (this._unprotectedHeader) {\n jwe.header = this._unprotectedHeader;\n }\n return jwe;\n }\n}\nexports.FlattenedEncrypt = FlattenedEncrypt;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.GeneralEncrypt = void 0;\nconst encrypt_js_1 = require(\"../flattened/encrypt.js\");\nconst private_symbols_js_1 = require(\"../../lib/private_symbols.js\");\nconst errors_js_1 = require(\"../../util/errors.js\");\nconst cek_js_1 = require(\"../../lib/cek.js\");\nconst is_disjoint_js_1 = require(\"../../lib/is_disjoint.js\");\nconst encrypt_key_management_js_1 = require(\"../../lib/encrypt_key_management.js\");\nconst base64url_js_1 = require(\"../../runtime/base64url.js\");\nconst validate_crit_js_1 = require(\"../../lib/validate_crit.js\");\nclass IndividualRecipient {\n parent;\n unprotectedHeader;\n key;\n options;\n constructor(enc, key, options) {\n this.parent = enc;\n this.key = key;\n this.options = options;\n }\n setUnprotectedHeader(unprotectedHeader) {\n if (this.unprotectedHeader) {\n throw new TypeError('setUnprotectedHeader can only be called once');\n }\n this.unprotectedHeader = unprotectedHeader;\n return this;\n }\n addRecipient(...args) {\n return this.parent.addRecipient(...args);\n }\n encrypt(...args) {\n return this.parent.encrypt(...args);\n }\n done() {\n return this.parent;\n }\n}\nclass GeneralEncrypt {\n _plaintext;\n _recipients = [];\n _protectedHeader;\n _unprotectedHeader;\n _aad;\n constructor(plaintext) {\n this._plaintext = plaintext;\n }\n addRecipient(key, options) {\n const recipient = new IndividualRecipient(this, key, { crit: options?.crit });\n this._recipients.push(recipient);\n return recipient;\n }\n setProtectedHeader(protectedHeader) {\n if (this._protectedHeader) {\n throw new TypeError('setProtectedHeader can only be called once');\n }\n this._protectedHeader = protectedHeader;\n return this;\n }\n setSharedUnprotectedHeader(sharedUnprotectedHeader) {\n if (this._unprotectedHeader) {\n throw new TypeError('setSharedUnprotectedHeader can only be called once');\n }\n this._unprotectedHeader = sharedUnprotectedHeader;\n return this;\n }\n setAdditionalAuthenticatedData(aad) {\n this._aad = aad;\n return this;\n }\n async encrypt() {\n if (!this._recipients.length) {\n throw new errors_js_1.JWEInvalid('at least one recipient must be added');\n }\n if (this._recipients.length === 1) {\n const [recipient] = this._recipients;\n const flattened = await new encrypt_js_1.FlattenedEncrypt(this._plaintext)\n .setAdditionalAuthenticatedData(this._aad)\n .setProtectedHeader(this._protectedHeader)\n .setSharedUnprotectedHeader(this._unprotectedHeader)\n .setUnprotectedHeader(recipient.unprotectedHeader)\n .encrypt(recipient.key, { ...recipient.options });\n const jwe = {\n ciphertext: flattened.ciphertext,\n iv: flattened.iv,\n recipients: [{}],\n tag: flattened.tag,\n };\n if (flattened.aad)\n jwe.aad = flattened.aad;\n if (flattened.protected)\n jwe.protected = flattened.protected;\n if (flattened.unprotected)\n jwe.unprotected = flattened.unprotected;\n if (flattened.encrypted_key)\n jwe.recipients[0].encrypted_key = flattened.encrypted_key;\n if (flattened.header)\n jwe.recipients[0].header = flattened.header;\n return jwe;\n }\n let enc;\n for (let i = 0; i < this._recipients.length; i++) {\n const recipient = this._recipients[i];\n if (!(0, is_disjoint_js_1.default)(this._protectedHeader, this._unprotectedHeader, recipient.unprotectedHeader)) {\n throw new errors_js_1.JWEInvalid('JWE Protected, JWE Shared Unprotected and JWE Per-Recipient Header Parameter names must be disjoint');\n }\n const joseHeader = {\n ...this._protectedHeader,\n ...this._unprotectedHeader,\n ...recipient.unprotectedHeader,\n };\n const { alg } = joseHeader;\n if (typeof alg !== 'string' || !alg) {\n throw new errors_js_1.JWEInvalid('JWE \"alg\" (Algorithm) Header Parameter missing or invalid');\n }\n if (alg === 'dir' || alg === 'ECDH-ES') {\n throw new errors_js_1.JWEInvalid('\"dir\" and \"ECDH-ES\" alg may only be used with a single recipient');\n }\n if (typeof joseHeader.enc !== 'string' || !joseHeader.enc) {\n throw new errors_js_1.JWEInvalid('JWE \"enc\" (Encryption Algorithm) Header Parameter missing or invalid');\n }\n if (!enc) {\n enc = joseHeader.enc;\n }\n else if (enc !== joseHeader.enc) {\n throw new errors_js_1.JWEInvalid('JWE \"enc\" (Encryption Algorithm) Header Parameter must be the same for all recipients');\n }\n (0, validate_crit_js_1.default)(errors_js_1.JWEInvalid, new Map(), recipient.options.crit, this._protectedHeader, joseHeader);\n if (joseHeader.zip !== undefined) {\n throw new errors_js_1.JOSENotSupported('JWE \"zip\" (Compression Algorithm) Header Parameter is not supported.');\n }\n }\n const cek = (0, cek_js_1.default)(enc);\n const jwe = {\n ciphertext: '',\n iv: '',\n recipients: [],\n tag: '',\n };\n for (let i = 0; i < this._recipients.length; i++) {\n const recipient = this._recipients[i];\n const target = {};\n jwe.recipients.push(target);\n const joseHeader = {\n ...this._protectedHeader,\n ...this._unprotectedHeader,\n ...recipient.unprotectedHeader,\n };\n const p2c = joseHeader.alg.startsWith('PBES2') ? 2048 + i : undefined;\n if (i === 0) {\n const flattened = await new encrypt_js_1.FlattenedEncrypt(this._plaintext)\n .setAdditionalAuthenticatedData(this._aad)\n .setContentEncryptionKey(cek)\n .setProtectedHeader(this._protectedHeader)\n .setSharedUnprotectedHeader(this._unprotectedHeader)\n .setUnprotectedHeader(recipient.unprotectedHeader)\n .setKeyManagementParameters({ p2c })\n .encrypt(recipient.key, {\n ...recipient.options,\n [private_symbols_js_1.unprotected]: true,\n });\n jwe.ciphertext = flattened.ciphertext;\n jwe.iv = flattened.iv;\n jwe.tag = flattened.tag;\n if (flattened.aad)\n jwe.aad = flattened.aad;\n if (flattened.protected)\n jwe.protected = flattened.protected;\n if (flattened.unprotected)\n jwe.unprotected = flattened.unprotected;\n target.encrypted_key = flattened.encrypted_key;\n if (flattened.header)\n target.header = flattened.header;\n continue;\n }\n const { encryptedKey, parameters } = await (0, encrypt_key_management_js_1.default)(recipient.unprotectedHeader?.alg ||\n this._protectedHeader?.alg ||\n this._unprotectedHeader?.alg, enc, recipient.key, cek, { p2c });\n target.encrypted_key = (0, base64url_js_1.encode)(encryptedKey);\n if (recipient.unprotectedHeader || parameters)\n target.header = { ...recipient.unprotectedHeader, ...parameters };\n }\n return jwe;\n }\n}\nexports.GeneralEncrypt = GeneralEncrypt;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.default = dsaDigest;\nconst errors_js_1 = require(\"../util/errors.js\");\nfunction dsaDigest(alg) {\n switch (alg) {\n case 'PS256':\n case 'RS256':\n case 'ES256':\n case 'ES256K':\n return 'sha256';\n case 'PS384':\n case 'RS384':\n case 'ES384':\n return 'sha384';\n case 'PS512':\n case 'RS512':\n case 'ES512':\n return 'sha512';\n case 'Ed25519':\n case 'EdDSA':\n return undefined;\n default:\n throw new errors_js_1.JOSENotSupported(`alg ${alg} is not supported either by JOSE or your javascript runtime`);\n }\n}\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.default = keyForCrypto;\nconst node_crypto_1 = require(\"node:crypto\");\nconst get_named_curve_js_1 = require(\"./get_named_curve.js\");\nconst errors_js_1 = require(\"../util/errors.js\");\nconst check_key_length_js_1 = require(\"./check_key_length.js\");\nconst ecCurveAlgMap = new Map([\n ['ES256', 'P-256'],\n ['ES256K', 'secp256k1'],\n ['ES384', 'P-384'],\n ['ES512', 'P-521'],\n]);\nfunction keyForCrypto(alg, key) {\n let asymmetricKeyType;\n let asymmetricKeyDetails;\n let isJWK;\n if (key instanceof node_crypto_1.KeyObject) {\n asymmetricKeyType = key.asymmetricKeyType;\n asymmetricKeyDetails = key.asymmetricKeyDetails;\n }\n else {\n isJWK = true;\n switch (key.kty) {\n case 'RSA':\n asymmetricKeyType = 'rsa';\n break;\n case 'EC':\n asymmetricKeyType = 'ec';\n break;\n case 'OKP': {\n if (key.crv === 'Ed25519') {\n asymmetricKeyType = 'ed25519';\n break;\n }\n if (key.crv === 'Ed448') {\n asymmetricKeyType = 'ed448';\n break;\n }\n throw new TypeError('Invalid key for this operation, its crv must be Ed25519 or Ed448');\n }\n default:\n throw new TypeError('Invalid key for this operation, its kty must be RSA, OKP, or EC');\n }\n }\n let options;\n switch (alg) {\n case 'Ed25519':\n if (asymmetricKeyType !== 'ed25519') {\n throw new TypeError(`Invalid key for this operation, its asymmetricKeyType must be ed25519`);\n }\n break;\n case 'EdDSA':\n if (!['ed25519', 'ed448'].includes(asymmetricKeyType)) {\n throw new TypeError('Invalid key for this operation, its asymmetricKeyType must be ed25519 or ed448');\n }\n break;\n case 'RS256':\n case 'RS384':\n case 'RS512':\n if (asymmetricKeyType !== 'rsa') {\n throw new TypeError('Invalid key for this operation, its asymmetricKeyType must be rsa');\n }\n (0, check_key_length_js_1.default)(key, alg);\n break;\n case 'PS256':\n case 'PS384':\n case 'PS512':\n if (asymmetricKeyType === 'rsa-pss') {\n const { hashAlgorithm, mgf1HashAlgorithm, saltLength } = asymmetricKeyDetails;\n const length = parseInt(alg.slice(-3), 10);\n if (hashAlgorithm !== undefined &&\n (hashAlgorithm !== `sha${length}` || mgf1HashAlgorithm !== hashAlgorithm)) {\n throw new TypeError(`Invalid key for this operation, its RSA-PSS parameters do not meet the requirements of \"alg\" ${alg}`);\n }\n if (saltLength !== undefined && saltLength > length >> 3) {\n throw new TypeError(`Invalid key for this operation, its RSA-PSS parameter saltLength does not meet the requirements of \"alg\" ${alg}`);\n }\n }\n else if (asymmetricKeyType !== 'rsa') {\n throw new TypeError('Invalid key for this operation, its asymmetricKeyType must be rsa or rsa-pss');\n }\n (0, check_key_length_js_1.default)(key, alg);\n options = {\n padding: node_crypto_1.constants.RSA_PKCS1_PSS_PADDING,\n saltLength: node_crypto_1.constants.RSA_PSS_SALTLEN_DIGEST,\n };\n break;\n case 'ES256':\n case 'ES256K':\n case 'ES384':\n case 'ES512': {\n if (asymmetricKeyType !== 'ec') {\n throw new TypeError('Invalid key for this operation, its asymmetricKeyType must be ec');\n }\n const actual = (0, get_named_curve_js_1.default)(key);\n const expected = ecCurveAlgMap.get(alg);\n if (actual !== expected) {\n throw new TypeError(`Invalid key curve for the algorithm, its curve must be ${expected}, got ${actual}`);\n }\n options = { dsaEncoding: 'ieee-p1363' };\n break;\n }\n default:\n throw new errors_js_1.JOSENotSupported(`alg ${alg} is not supported either by JOSE or your javascript runtime`);\n }\n if (isJWK) {\n return { format: 'jwk', key, ...options };\n }\n return options ? { ...options, key } : key;\n}\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.default = hmacDigest;\nconst errors_js_1 = require(\"../util/errors.js\");\nfunction hmacDigest(alg) {\n switch (alg) {\n case 'HS256':\n return 'sha256';\n case 'HS384':\n return 'sha384';\n case 'HS512':\n return 'sha512';\n default:\n throw new errors_js_1.JOSENotSupported(`alg ${alg} is not supported either by JOSE or your javascript runtime`);\n }\n}\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.default = getSignVerifyKey;\nconst node_crypto_1 = require(\"node:crypto\");\nconst webcrypto_js_1 = require(\"./webcrypto.js\");\nconst crypto_key_js_1 = require(\"../lib/crypto_key.js\");\nconst invalid_key_input_js_1 = require(\"../lib/invalid_key_input.js\");\nconst is_key_like_js_1 = require(\"./is_key_like.js\");\nconst jwk = require(\"../lib/is_jwk.js\");\nfunction getSignVerifyKey(alg, key, usage) {\n if (key instanceof Uint8Array) {\n if (!alg.startsWith('HS')) {\n throw new TypeError((0, invalid_key_input_js_1.default)(key, ...is_key_like_js_1.types));\n }\n return (0, node_crypto_1.createSecretKey)(key);\n }\n if (key instanceof node_crypto_1.KeyObject) {\n return key;\n }\n if ((0, webcrypto_js_1.isCryptoKey)(key)) {\n (0, crypto_key_js_1.checkSigCryptoKey)(key, alg, usage);\n return node_crypto_1.KeyObject.from(key);\n }\n if (jwk.isJWK(key)) {\n if (alg.startsWith('HS')) {\n return (0, node_crypto_1.createSecretKey)(Buffer.from(key.k, 'base64url'));\n }\n return key;\n }\n throw new TypeError((0, invalid_key_input_js_1.default)(key, ...is_key_like_js_1.types, 'Uint8Array', 'JSON Web Key'));\n}\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst crypto = require(\"node:crypto\");\nconst node_util_1 = require(\"node:util\");\nconst dsa_digest_js_1 = require(\"./dsa_digest.js\");\nconst hmac_digest_js_1 = require(\"./hmac_digest.js\");\nconst node_key_js_1 = require(\"./node_key.js\");\nconst get_sign_verify_key_js_1 = require(\"./get_sign_verify_key.js\");\nconst oneShotSign = (0, node_util_1.promisify)(crypto.sign);\nconst sign = async (alg, key, data) => {\n const k = (0, get_sign_verify_key_js_1.default)(alg, key, 'sign');\n if (alg.startsWith('HS')) {\n const hmac = crypto.createHmac((0, hmac_digest_js_1.default)(alg), k);\n hmac.update(data);\n return hmac.digest();\n }\n return oneShotSign((0, dsa_digest_js_1.default)(alg), data, (0, node_key_js_1.default)(alg, k));\n};\nexports.default = sign;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst crypto = require(\"node:crypto\");\nconst node_util_1 = require(\"node:util\");\nconst dsa_digest_js_1 = require(\"./dsa_digest.js\");\nconst node_key_js_1 = require(\"./node_key.js\");\nconst sign_js_1 = require(\"./sign.js\");\nconst get_sign_verify_key_js_1 = require(\"./get_sign_verify_key.js\");\nconst oneShotVerify = (0, node_util_1.promisify)(crypto.verify);\nconst verify = async (alg, key, signature, data) => {\n const k = (0, get_sign_verify_key_js_1.default)(alg, key, 'verify');\n if (alg.startsWith('HS')) {\n const expected = await (0, sign_js_1.default)(alg, k, data);\n const actual = signature;\n try {\n return crypto.timingSafeEqual(actual, expected);\n }\n catch {\n return false;\n }\n }\n const algorithm = (0, dsa_digest_js_1.default)(alg);\n const keyInput = (0, node_key_js_1.default)(alg, k);\n try {\n return await oneShotVerify(algorithm, data, keyInput, signature);\n }\n catch {\n return false;\n }\n};\nexports.default = verify;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.flattenedVerify = flattenedVerify;\nconst base64url_js_1 = require(\"../../runtime/base64url.js\");\nconst verify_js_1 = require(\"../../runtime/verify.js\");\nconst errors_js_1 = require(\"../../util/errors.js\");\nconst buffer_utils_js_1 = require(\"../../lib/buffer_utils.js\");\nconst is_disjoint_js_1 = require(\"../../lib/is_disjoint.js\");\nconst is_object_js_1 = require(\"../../lib/is_object.js\");\nconst check_key_type_js_1 = require(\"../../lib/check_key_type.js\");\nconst validate_crit_js_1 = require(\"../../lib/validate_crit.js\");\nconst validate_algorithms_js_1 = require(\"../../lib/validate_algorithms.js\");\nconst is_jwk_js_1 = require(\"../../lib/is_jwk.js\");\nconst import_js_1 = require(\"../../key/import.js\");\nasync function flattenedVerify(jws, key, options) {\n if (!(0, is_object_js_1.default)(jws)) {\n throw new errors_js_1.JWSInvalid('Flattened JWS must be an object');\n }\n if (jws.protected === undefined && jws.header === undefined) {\n throw new errors_js_1.JWSInvalid('Flattened JWS must have either of the \"protected\" or \"header\" members');\n }\n if (jws.protected !== undefined && typeof jws.protected !== 'string') {\n throw new errors_js_1.JWSInvalid('JWS Protected Header incorrect type');\n }\n if (jws.payload === undefined) {\n throw new errors_js_1.JWSInvalid('JWS Payload missing');\n }\n if (typeof jws.signature !== 'string') {\n throw new errors_js_1.JWSInvalid('JWS Signature missing or incorrect type');\n }\n if (jws.header !== undefined && !(0, is_object_js_1.default)(jws.header)) {\n throw new errors_js_1.JWSInvalid('JWS Unprotected Header incorrect type');\n }\n let parsedProt = {};\n if (jws.protected) {\n try {\n const protectedHeader = (0, base64url_js_1.decode)(jws.protected);\n parsedProt = JSON.parse(buffer_utils_js_1.decoder.decode(protectedHeader));\n }\n catch {\n throw new errors_js_1.JWSInvalid('JWS Protected Header is invalid');\n }\n }\n if (!(0, is_disjoint_js_1.default)(parsedProt, jws.header)) {\n throw new errors_js_1.JWSInvalid('JWS Protected and JWS Unprotected Header Parameter names must be disjoint');\n }\n const joseHeader = {\n ...parsedProt,\n ...jws.header,\n };\n const extensions = (0, validate_crit_js_1.default)(errors_js_1.JWSInvalid, new Map([['b64', true]]), options?.crit, parsedProt, joseHeader);\n let b64 = true;\n if (extensions.has('b64')) {\n b64 = parsedProt.b64;\n if (typeof b64 !== 'boolean') {\n throw new errors_js_1.JWSInvalid('The \"b64\" (base64url-encode payload) Header Parameter must be a boolean');\n }\n }\n const { alg } = joseHeader;\n if (typeof alg !== 'string' || !alg) {\n throw new errors_js_1.JWSInvalid('JWS \"alg\" (Algorithm) Header Parameter missing or invalid');\n }\n const algorithms = options && (0, validate_algorithms_js_1.default)('algorithms', options.algorithms);\n if (algorithms && !algorithms.has(alg)) {\n throw new errors_js_1.JOSEAlgNotAllowed('\"alg\" (Algorithm) Header Parameter value not allowed');\n }\n if (b64) {\n if (typeof jws.payload !== 'string') {\n throw new errors_js_1.JWSInvalid('JWS Payload must be a string');\n }\n }\n else if (typeof jws.payload !== 'string' && !(jws.payload instanceof Uint8Array)) {\n throw new errors_js_1.JWSInvalid('JWS Payload must be a string or an Uint8Array instance');\n }\n let resolvedKey = false;\n if (typeof key === 'function') {\n key = await key(parsedProt, jws);\n resolvedKey = true;\n (0, check_key_type_js_1.checkKeyTypeWithJwk)(alg, key, 'verify');\n if ((0, is_jwk_js_1.isJWK)(key)) {\n key = await (0, import_js_1.importJWK)(key, alg);\n }\n }\n else {\n (0, check_key_type_js_1.checkKeyTypeWithJwk)(alg, key, 'verify');\n }\n const data = (0, buffer_utils_js_1.concat)(buffer_utils_js_1.encoder.encode(jws.protected ?? ''), buffer_utils_js_1.encoder.encode('.'), typeof jws.payload === 'string' ? buffer_utils_js_1.encoder.encode(jws.payload) : jws.payload);\n let signature;\n try {\n signature = (0, base64url_js_1.decode)(jws.signature);\n }\n catch {\n throw new errors_js_1.JWSInvalid('Failed to base64url decode the signature');\n }\n const verified = await (0, verify_js_1.default)(alg, key, signature, data);\n if (!verified) {\n throw new errors_js_1.JWSSignatureVerificationFailed();\n }\n let payload;\n if (b64) {\n try {\n payload = (0, base64url_js_1.decode)(jws.payload);\n }\n catch {\n throw new errors_js_1.JWSInvalid('Failed to base64url decode the payload');\n }\n }\n else if (typeof jws.payload === 'string') {\n payload = buffer_utils_js_1.encoder.encode(jws.payload);\n }\n else {\n payload = jws.payload;\n }\n const result = { payload };\n if (jws.protected !== undefined) {\n result.protectedHeader = parsedProt;\n }\n if (jws.header !== undefined) {\n result.unprotectedHeader = jws.header;\n }\n if (resolvedKey) {\n return { ...result, key };\n }\n return result;\n}\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.compactVerify = compactVerify;\nconst verify_js_1 = require(\"../flattened/verify.js\");\nconst errors_js_1 = require(\"../../util/errors.js\");\nconst buffer_utils_js_1 = require(\"../../lib/buffer_utils.js\");\nasync function compactVerify(jws, key, options) {\n if (jws instanceof Uint8Array) {\n jws = buffer_utils_js_1.decoder.decode(jws);\n }\n if (typeof jws !== 'string') {\n throw new errors_js_1.JWSInvalid('Compact JWS must be a string or Uint8Array');\n }\n const { 0: protectedHeader, 1: payload, 2: signature, length } = jws.split('.');\n if (length !== 3) {\n throw new errors_js_1.JWSInvalid('Invalid Compact JWS');\n }\n const verified = await (0, verify_js_1.flattenedVerify)({ payload, protected: protectedHeader, signature }, key, options);\n const result = { payload: verified.payload, protectedHeader: verified.protectedHeader };\n if (typeof key === 'function') {\n return { ...result, key: verified.key };\n }\n return result;\n}\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.generalVerify = generalVerify;\nconst verify_js_1 = require(\"../flattened/verify.js\");\nconst errors_js_1 = require(\"../../util/errors.js\");\nconst is_object_js_1 = require(\"../../lib/is_object.js\");\nasync function generalVerify(jws, key, options) {\n if (!(0, is_object_js_1.default)(jws)) {\n throw new errors_js_1.JWSInvalid('General JWS must be an object');\n }\n if (!Array.isArray(jws.signatures) || !jws.signatures.every(is_object_js_1.default)) {\n throw new errors_js_1.JWSInvalid('JWS Signatures missing or incorrect type');\n }\n for (const signature of jws.signatures) {\n try {\n return await (0, verify_js_1.flattenedVerify)({\n header: signature.header,\n payload: jws.payload,\n protected: signature.protected,\n signature: signature.signature,\n }, key, options);\n }\n catch {\n }\n }\n throw new errors_js_1.JWSSignatureVerificationFailed();\n}\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.default = (date) => Math.floor(date.getTime() / 1000);\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst minute = 60;\nconst hour = minute * 60;\nconst day = hour * 24;\nconst week = day * 7;\nconst year = day * 365.25;\nconst REGEX = /^(\\+|\\-)? ?(\\d+|\\d+\\.\\d+) ?(seconds?|secs?|s|minutes?|mins?|m|hours?|hrs?|h|days?|d|weeks?|w|years?|yrs?|y)(?: (ago|from now))?$/i;\nexports.default = (str) => {\n const matched = REGEX.exec(str);\n if (!matched || (matched[4] && matched[1])) {\n throw new TypeError('Invalid time period format');\n }\n const value = parseFloat(matched[2]);\n const unit = matched[3].toLowerCase();\n let numericDate;\n switch (unit) {\n case 'sec':\n case 'secs':\n case 'second':\n case 'seconds':\n case 's':\n numericDate = Math.round(value);\n break;\n case 'minute':\n case 'minutes':\n case 'min':\n case 'mins':\n case 'm':\n numericDate = Math.round(value * minute);\n break;\n case 'hour':\n case 'hours':\n case 'hr':\n case 'hrs':\n case 'h':\n numericDate = Math.round(value * hour);\n break;\n case 'day':\n case 'days':\n case 'd':\n numericDate = Math.round(value * day);\n break;\n case 'week':\n case 'weeks':\n case 'w':\n numericDate = Math.round(value * week);\n break;\n default:\n numericDate = Math.round(value * year);\n break;\n }\n if (matched[1] === '-' || matched[4] === 'ago') {\n return -numericDate;\n }\n return numericDate;\n};\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst errors_js_1 = require(\"../util/errors.js\");\nconst buffer_utils_js_1 = require(\"./buffer_utils.js\");\nconst epoch_js_1 = require(\"./epoch.js\");\nconst secs_js_1 = require(\"./secs.js\");\nconst is_object_js_1 = require(\"./is_object.js\");\nconst normalizeTyp = (value) => value.toLowerCase().replace(/^application\\//, '');\nconst checkAudiencePresence = (audPayload, audOption) => {\n if (typeof audPayload === 'string') {\n return audOption.includes(audPayload);\n }\n if (Array.isArray(audPayload)) {\n return audOption.some(Set.prototype.has.bind(new Set(audPayload)));\n }\n return false;\n};\nexports.default = (protectedHeader, encodedPayload, options = {}) => {\n let payload;\n try {\n payload = JSON.parse(buffer_utils_js_1.decoder.decode(encodedPayload));\n }\n catch {\n }\n if (!(0, is_object_js_1.default)(payload)) {\n throw new errors_js_1.JWTInvalid('JWT Claims Set must be a top-level JSON object');\n }\n const { typ } = options;\n if (typ &&\n (typeof protectedHeader.typ !== 'string' ||\n normalizeTyp(protectedHeader.typ) !== normalizeTyp(typ))) {\n throw new errors_js_1.JWTClaimValidationFailed('unexpected \"typ\" JWT header value', payload, 'typ', 'check_failed');\n }\n const { requiredClaims = [], issuer, subject, audience, maxTokenAge } = options;\n const presenceCheck = [...requiredClaims];\n if (maxTokenAge !== undefined)\n presenceCheck.push('iat');\n if (audience !== undefined)\n presenceCheck.push('aud');\n if (subject !== undefined)\n presenceCheck.push('sub');\n if (issuer !== undefined)\n presenceCheck.push('iss');\n for (const claim of new Set(presenceCheck.reverse())) {\n if (!(claim in payload)) {\n throw new errors_js_1.JWTClaimValidationFailed(`missing required \"${claim}\" claim`, payload, claim, 'missing');\n }\n }\n if (issuer &&\n !(Array.isArray(issuer) ? issuer : [issuer]).includes(payload.iss)) {\n throw new errors_js_1.JWTClaimValidationFailed('unexpected \"iss\" claim value', payload, 'iss', 'check_failed');\n }\n if (subject && payload.sub !== subject) {\n throw new errors_js_1.JWTClaimValidationFailed('unexpected \"sub\" claim value', payload, 'sub', 'check_failed');\n }\n if (audience &&\n !checkAudiencePresence(payload.aud, typeof audience === 'string' ? [audience] : audience)) {\n throw new errors_js_1.JWTClaimValidationFailed('unexpected \"aud\" claim value', payload, 'aud', 'check_failed');\n }\n let tolerance;\n switch (typeof options.clockTolerance) {\n case 'string':\n tolerance = (0, secs_js_1.default)(options.clockTolerance);\n break;\n case 'number':\n tolerance = options.clockTolerance;\n break;\n case 'undefined':\n tolerance = 0;\n break;\n default:\n throw new TypeError('Invalid clockTolerance option type');\n }\n const { currentDate } = options;\n const now = (0, epoch_js_1.default)(currentDate || new Date());\n if ((payload.iat !== undefined || maxTokenAge) && typeof payload.iat !== 'number') {\n throw new errors_js_1.JWTClaimValidationFailed('\"iat\" claim must be a number', payload, 'iat', 'invalid');\n }\n if (payload.nbf !== undefined) {\n if (typeof payload.nbf !== 'number') {\n throw new errors_js_1.JWTClaimValidationFailed('\"nbf\" claim must be a number', payload, 'nbf', 'invalid');\n }\n if (payload.nbf > now + tolerance) {\n throw new errors_js_1.JWTClaimValidationFailed('\"nbf\" claim timestamp check failed', payload, 'nbf', 'check_failed');\n }\n }\n if (payload.exp !== undefined) {\n if (typeof payload.exp !== 'number') {\n throw new errors_js_1.JWTClaimValidationFailed('\"exp\" claim must be a number', payload, 'exp', 'invalid');\n }\n if (payload.exp <= now - tolerance) {\n throw new errors_js_1.JWTExpired('\"exp\" claim timestamp check failed', payload, 'exp', 'check_failed');\n }\n }\n if (maxTokenAge) {\n const age = now - payload.iat;\n const max = typeof maxTokenAge === 'number' ? maxTokenAge : (0, secs_js_1.default)(maxTokenAge);\n if (age - tolerance > max) {\n throw new errors_js_1.JWTExpired('\"iat\" claim timestamp check failed (too far in the past)', payload, 'iat', 'check_failed');\n }\n if (age < 0 - tolerance) {\n throw new errors_js_1.JWTClaimValidationFailed('\"iat\" claim timestamp check failed (it should be in the past)', payload, 'iat', 'check_failed');\n }\n }\n return payload;\n};\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.jwtVerify = jwtVerify;\nconst verify_js_1 = require(\"../jws/compact/verify.js\");\nconst jwt_claims_set_js_1 = require(\"../lib/jwt_claims_set.js\");\nconst errors_js_1 = require(\"../util/errors.js\");\nasync function jwtVerify(jwt, key, options) {\n const verified = await (0, verify_js_1.compactVerify)(jwt, key, options);\n if (verified.protectedHeader.crit?.includes('b64') && verified.protectedHeader.b64 === false) {\n throw new errors_js_1.JWTInvalid('JWTs MUST NOT use unencoded payload');\n }\n const payload = (0, jwt_claims_set_js_1.default)(verified.protectedHeader, verified.payload, options);\n const result = { payload, protectedHeader: verified.protectedHeader };\n if (typeof key === 'function') {\n return { ...result, key: verified.key };\n }\n return result;\n}\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.jwtDecrypt = jwtDecrypt;\nconst decrypt_js_1 = require(\"../jwe/compact/decrypt.js\");\nconst jwt_claims_set_js_1 = require(\"../lib/jwt_claims_set.js\");\nconst errors_js_1 = require(\"../util/errors.js\");\nasync function jwtDecrypt(jwt, key, options) {\n const decrypted = await (0, decrypt_js_1.compactDecrypt)(jwt, key, options);\n const payload = (0, jwt_claims_set_js_1.default)(decrypted.protectedHeader, decrypted.plaintext, options);\n const { protectedHeader } = decrypted;\n if (protectedHeader.iss !== undefined && protectedHeader.iss !== payload.iss) {\n throw new errors_js_1.JWTClaimValidationFailed('replicated \"iss\" claim header parameter mismatch', payload, 'iss', 'mismatch');\n }\n if (protectedHeader.sub !== undefined && protectedHeader.sub !== payload.sub) {\n throw new errors_js_1.JWTClaimValidationFailed('replicated \"sub\" claim header parameter mismatch', payload, 'sub', 'mismatch');\n }\n if (protectedHeader.aud !== undefined &&\n JSON.stringify(protectedHeader.aud) !== JSON.stringify(payload.aud)) {\n throw new errors_js_1.JWTClaimValidationFailed('replicated \"aud\" claim header parameter mismatch', payload, 'aud', 'mismatch');\n }\n const result = { payload, protectedHeader };\n if (typeof key === 'function') {\n return { ...result, key: decrypted.key };\n }\n return result;\n}\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.CompactEncrypt = void 0;\nconst encrypt_js_1 = require(\"../flattened/encrypt.js\");\nclass CompactEncrypt {\n _flattened;\n constructor(plaintext) {\n this._flattened = new encrypt_js_1.FlattenedEncrypt(plaintext);\n }\n setContentEncryptionKey(cek) {\n this._flattened.setContentEncryptionKey(cek);\n return this;\n }\n setInitializationVector(iv) {\n this._flattened.setInitializationVector(iv);\n return this;\n }\n setProtectedHeader(protectedHeader) {\n this._flattened.setProtectedHeader(protectedHeader);\n return this;\n }\n setKeyManagementParameters(parameters) {\n this._flattened.setKeyManagementParameters(parameters);\n return this;\n }\n async encrypt(key, options) {\n const jwe = await this._flattened.encrypt(key, options);\n return [jwe.protected, jwe.encrypted_key, jwe.iv, jwe.ciphertext, jwe.tag].join('.');\n }\n}\nexports.CompactEncrypt = CompactEncrypt;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.FlattenedSign = void 0;\nconst base64url_js_1 = require(\"../../runtime/base64url.js\");\nconst sign_js_1 = require(\"../../runtime/sign.js\");\nconst is_disjoint_js_1 = require(\"../../lib/is_disjoint.js\");\nconst errors_js_1 = require(\"../../util/errors.js\");\nconst buffer_utils_js_1 = require(\"../../lib/buffer_utils.js\");\nconst check_key_type_js_1 = require(\"../../lib/check_key_type.js\");\nconst validate_crit_js_1 = require(\"../../lib/validate_crit.js\");\nclass FlattenedSign {\n _payload;\n _protectedHeader;\n _unprotectedHeader;\n constructor(payload) {\n if (!(payload instanceof Uint8Array)) {\n throw new TypeError('payload must be an instance of Uint8Array');\n }\n this._payload = payload;\n }\n setProtectedHeader(protectedHeader) {\n if (this._protectedHeader) {\n throw new TypeError('setProtectedHeader can only be called once');\n }\n this._protectedHeader = protectedHeader;\n return this;\n }\n setUnprotectedHeader(unprotectedHeader) {\n if (this._unprotectedHeader) {\n throw new TypeError('setUnprotectedHeader can only be called once');\n }\n this._unprotectedHeader = unprotectedHeader;\n return this;\n }\n async sign(key, options) {\n if (!this._protectedHeader && !this._unprotectedHeader) {\n throw new errors_js_1.JWSInvalid('either setProtectedHeader or setUnprotectedHeader must be called before #sign()');\n }\n if (!(0, is_disjoint_js_1.default)(this._protectedHeader, this._unprotectedHeader)) {\n throw new errors_js_1.JWSInvalid('JWS Protected and JWS Unprotected Header Parameter names must be disjoint');\n }\n const joseHeader = {\n ...this._protectedHeader,\n ...this._unprotectedHeader,\n };\n const extensions = (0, validate_crit_js_1.default)(errors_js_1.JWSInvalid, new Map([['b64', true]]), options?.crit, this._protectedHeader, joseHeader);\n let b64 = true;\n if (extensions.has('b64')) {\n b64 = this._protectedHeader.b64;\n if (typeof b64 !== 'boolean') {\n throw new errors_js_1.JWSInvalid('The \"b64\" (base64url-encode payload) Header Parameter must be a boolean');\n }\n }\n const { alg } = joseHeader;\n if (typeof alg !== 'string' || !alg) {\n throw new errors_js_1.JWSInvalid('JWS \"alg\" (Algorithm) Header Parameter missing or invalid');\n }\n (0, check_key_type_js_1.checkKeyTypeWithJwk)(alg, key, 'sign');\n let payload = this._payload;\n if (b64) {\n payload = buffer_utils_js_1.encoder.encode((0, base64url_js_1.encode)(payload));\n }\n let protectedHeader;\n if (this._protectedHeader) {\n protectedHeader = buffer_utils_js_1.encoder.encode((0, base64url_js_1.encode)(JSON.stringify(this._protectedHeader)));\n }\n else {\n protectedHeader = buffer_utils_js_1.encoder.encode('');\n }\n const data = (0, buffer_utils_js_1.concat)(protectedHeader, buffer_utils_js_1.encoder.encode('.'), payload);\n const signature = await (0, sign_js_1.default)(alg, key, data);\n const jws = {\n signature: (0, base64url_js_1.encode)(signature),\n payload: '',\n };\n if (b64) {\n jws.payload = buffer_utils_js_1.decoder.decode(payload);\n }\n if (this._unprotectedHeader) {\n jws.header = this._unprotectedHeader;\n }\n if (this._protectedHeader) {\n jws.protected = buffer_utils_js_1.decoder.decode(protectedHeader);\n }\n return jws;\n }\n}\nexports.FlattenedSign = FlattenedSign;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.CompactSign = void 0;\nconst sign_js_1 = require(\"../flattened/sign.js\");\nclass CompactSign {\n _flattened;\n constructor(payload) {\n this._flattened = new sign_js_1.FlattenedSign(payload);\n }\n setProtectedHeader(protectedHeader) {\n this._flattened.setProtectedHeader(protectedHeader);\n return this;\n }\n async sign(key, options) {\n const jws = await this._flattened.sign(key, options);\n if (jws.payload === undefined) {\n throw new TypeError('use the flattened module for creating JWS with b64: false');\n }\n return `${jws.protected}.${jws.payload}.${jws.signature}`;\n }\n}\nexports.CompactSign = CompactSign;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.GeneralSign = void 0;\nconst sign_js_1 = require(\"../flattened/sign.js\");\nconst errors_js_1 = require(\"../../util/errors.js\");\nclass IndividualSignature {\n parent;\n protectedHeader;\n unprotectedHeader;\n options;\n key;\n constructor(sig, key, options) {\n this.parent = sig;\n this.key = key;\n this.options = options;\n }\n setProtectedHeader(protectedHeader) {\n if (this.protectedHeader) {\n throw new TypeError('setProtectedHeader can only be called once');\n }\n this.protectedHeader = protectedHeader;\n return this;\n }\n setUnprotectedHeader(unprotectedHeader) {\n if (this.unprotectedHeader) {\n throw new TypeError('setUnprotectedHeader can only be called once');\n }\n this.unprotectedHeader = unprotectedHeader;\n return this;\n }\n addSignature(...args) {\n return this.parent.addSignature(...args);\n }\n sign(...args) {\n return this.parent.sign(...args);\n }\n done() {\n return this.parent;\n }\n}\nclass GeneralSign {\n _payload;\n _signatures = [];\n constructor(payload) {\n this._payload = payload;\n }\n addSignature(key, options) {\n const signature = new IndividualSignature(this, key, options);\n this._signatures.push(signature);\n return signature;\n }\n async sign() {\n if (!this._signatures.length) {\n throw new errors_js_1.JWSInvalid('at least one signature must be added');\n }\n const jws = {\n signatures: [],\n payload: '',\n };\n for (let i = 0; i < this._signatures.length; i++) {\n const signature = this._signatures[i];\n const flattened = new sign_js_1.FlattenedSign(this._payload);\n flattened.setProtectedHeader(signature.protectedHeader);\n flattened.setUnprotectedHeader(signature.unprotectedHeader);\n const { payload, ...rest } = await flattened.sign(signature.key, signature.options);\n if (i === 0) {\n jws.payload = payload;\n }\n else if (jws.payload !== payload) {\n throw new errors_js_1.JWSInvalid('inconsistent use of JWS Unencoded Payload (RFC7797)');\n }\n jws.signatures.push(rest);\n }\n return jws;\n }\n}\nexports.GeneralSign = GeneralSign;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ProduceJWT = void 0;\nconst epoch_js_1 = require(\"../lib/epoch.js\");\nconst is_object_js_1 = require(\"../lib/is_object.js\");\nconst secs_js_1 = require(\"../lib/secs.js\");\nfunction validateInput(label, input) {\n if (!Number.isFinite(input)) {\n throw new TypeError(`Invalid ${label} input`);\n }\n return input;\n}\nclass ProduceJWT {\n _payload;\n constructor(payload = {}) {\n if (!(0, is_object_js_1.default)(payload)) {\n throw new TypeError('JWT Claims Set MUST be an object');\n }\n this._payload = payload;\n }\n setIssuer(issuer) {\n this._payload = { ...this._payload, iss: issuer };\n return this;\n }\n setSubject(subject) {\n this._payload = { ...this._payload, sub: subject };\n return this;\n }\n setAudience(audience) {\n this._payload = { ...this._payload, aud: audience };\n return this;\n }\n setJti(jwtId) {\n this._payload = { ...this._payload, jti: jwtId };\n return this;\n }\n setNotBefore(input) {\n if (typeof input === 'number') {\n this._payload = { ...this._payload, nbf: validateInput('setNotBefore', input) };\n }\n else if (input instanceof Date) {\n this._payload = { ...this._payload, nbf: validateInput('setNotBefore', (0, epoch_js_1.default)(input)) };\n }\n else {\n this._payload = { ...this._payload, nbf: (0, epoch_js_1.default)(new Date()) + (0, secs_js_1.default)(input) };\n }\n return this;\n }\n setExpirationTime(input) {\n if (typeof input === 'number') {\n this._payload = { ...this._payload, exp: validateInput('setExpirationTime', input) };\n }\n else if (input instanceof Date) {\n this._payload = { ...this._payload, exp: validateInput('setExpirationTime', (0, epoch_js_1.default)(input)) };\n }\n else {\n this._payload = { ...this._payload, exp: (0, epoch_js_1.default)(new Date()) + (0, secs_js_1.default)(input) };\n }\n return this;\n }\n setIssuedAt(input) {\n if (typeof input === 'undefined') {\n this._payload = { ...this._payload, iat: (0, epoch_js_1.default)(new Date()) };\n }\n else if (input instanceof Date) {\n this._payload = { ...this._payload, iat: validateInput('setIssuedAt', (0, epoch_js_1.default)(input)) };\n }\n else if (typeof input === 'string') {\n this._payload = {\n ...this._payload,\n iat: validateInput('setIssuedAt', (0, epoch_js_1.default)(new Date()) + (0, secs_js_1.default)(input)),\n };\n }\n else {\n this._payload = { ...this._payload, iat: validateInput('setIssuedAt', input) };\n }\n return this;\n }\n}\nexports.ProduceJWT = ProduceJWT;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.SignJWT = void 0;\nconst sign_js_1 = require(\"../jws/compact/sign.js\");\nconst errors_js_1 = require(\"../util/errors.js\");\nconst buffer_utils_js_1 = require(\"../lib/buffer_utils.js\");\nconst produce_js_1 = require(\"./produce.js\");\nclass SignJWT extends produce_js_1.ProduceJWT {\n _protectedHeader;\n setProtectedHeader(protectedHeader) {\n this._protectedHeader = protectedHeader;\n return this;\n }\n async sign(key, options) {\n const sig = new sign_js_1.CompactSign(buffer_utils_js_1.encoder.encode(JSON.stringify(this._payload)));\n sig.setProtectedHeader(this._protectedHeader);\n if (Array.isArray(this._protectedHeader?.crit) &&\n this._protectedHeader.crit.includes('b64') &&\n this._protectedHeader.b64 === false) {\n throw new errors_js_1.JWTInvalid('JWTs MUST NOT use unencoded payload');\n }\n return sig.sign(key, options);\n }\n}\nexports.SignJWT = SignJWT;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.EncryptJWT = void 0;\nconst encrypt_js_1 = require(\"../jwe/compact/encrypt.js\");\nconst buffer_utils_js_1 = require(\"../lib/buffer_utils.js\");\nconst produce_js_1 = require(\"./produce.js\");\nclass EncryptJWT extends produce_js_1.ProduceJWT {\n _cek;\n _iv;\n _keyManagementParameters;\n _protectedHeader;\n _replicateIssuerAsHeader;\n _replicateSubjectAsHeader;\n _replicateAudienceAsHeader;\n setProtectedHeader(protectedHeader) {\n if (this._protectedHeader) {\n throw new TypeError('setProtectedHeader can only be called once');\n }\n this._protectedHeader = protectedHeader;\n return this;\n }\n setKeyManagementParameters(parameters) {\n if (this._keyManagementParameters) {\n throw new TypeError('setKeyManagementParameters can only be called once');\n }\n this._keyManagementParameters = parameters;\n return this;\n }\n setContentEncryptionKey(cek) {\n if (this._cek) {\n throw new TypeError('setContentEncryptionKey can only be called once');\n }\n this._cek = cek;\n return this;\n }\n setInitializationVector(iv) {\n if (this._iv) {\n throw new TypeError('setInitializationVector can only be called once');\n }\n this._iv = iv;\n return this;\n }\n replicateIssuerAsHeader() {\n this._replicateIssuerAsHeader = true;\n return this;\n }\n replicateSubjectAsHeader() {\n this._replicateSubjectAsHeader = true;\n return this;\n }\n replicateAudienceAsHeader() {\n this._replicateAudienceAsHeader = true;\n return this;\n }\n async encrypt(key, options) {\n const enc = new encrypt_js_1.CompactEncrypt(buffer_utils_js_1.encoder.encode(JSON.stringify(this._payload)));\n if (this._replicateIssuerAsHeader) {\n this._protectedHeader = { ...this._protectedHeader, iss: this._payload.iss };\n }\n if (this._replicateSubjectAsHeader) {\n this._protectedHeader = { ...this._protectedHeader, sub: this._payload.sub };\n }\n if (this._replicateAudienceAsHeader) {\n this._protectedHeader = { ...this._protectedHeader, aud: this._payload.aud };\n }\n enc.setProtectedHeader(this._protectedHeader);\n if (this._iv) {\n enc.setInitializationVector(this._iv);\n }\n if (this._cek) {\n enc.setContentEncryptionKey(this._cek);\n }\n if (this._keyManagementParameters) {\n enc.setKeyManagementParameters(this._keyManagementParameters);\n }\n return enc.encrypt(key, options);\n }\n}\nexports.EncryptJWT = EncryptJWT;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.calculateJwkThumbprint = calculateJwkThumbprint;\nexports.calculateJwkThumbprintUri = calculateJwkThumbprintUri;\nconst digest_js_1 = require(\"../runtime/digest.js\");\nconst base64url_js_1 = require(\"../runtime/base64url.js\");\nconst errors_js_1 = require(\"../util/errors.js\");\nconst buffer_utils_js_1 = require(\"../lib/buffer_utils.js\");\nconst is_object_js_1 = require(\"../lib/is_object.js\");\nconst check = (value, description) => {\n if (typeof value !== 'string' || !value) {\n throw new errors_js_1.JWKInvalid(`${description} missing or invalid`);\n }\n};\nasync function calculateJwkThumbprint(jwk, digestAlgorithm) {\n if (!(0, is_object_js_1.default)(jwk)) {\n throw new TypeError('JWK must be an object');\n }\n digestAlgorithm ??= 'sha256';\n if (digestAlgorithm !== 'sha256' &&\n digestAlgorithm !== 'sha384' &&\n digestAlgorithm !== 'sha512') {\n throw new TypeError('digestAlgorithm must one of \"sha256\", \"sha384\", or \"sha512\"');\n }\n let components;\n switch (jwk.kty) {\n case 'EC':\n check(jwk.crv, '\"crv\" (Curve) Parameter');\n check(jwk.x, '\"x\" (X Coordinate) Parameter');\n check(jwk.y, '\"y\" (Y Coordinate) Parameter');\n components = { crv: jwk.crv, kty: jwk.kty, x: jwk.x, y: jwk.y };\n break;\n case 'OKP':\n check(jwk.crv, '\"crv\" (Subtype of Key Pair) Parameter');\n check(jwk.x, '\"x\" (Public Key) Parameter');\n components = { crv: jwk.crv, kty: jwk.kty, x: jwk.x };\n break;\n case 'RSA':\n check(jwk.e, '\"e\" (Exponent) Parameter');\n check(jwk.n, '\"n\" (Modulus) Parameter');\n components = { e: jwk.e, kty: jwk.kty, n: jwk.n };\n break;\n case 'oct':\n check(jwk.k, '\"k\" (Key Value) Parameter');\n components = { k: jwk.k, kty: jwk.kty };\n break;\n default:\n throw new errors_js_1.JOSENotSupported('\"kty\" (Key Type) Parameter missing or unsupported');\n }\n const data = buffer_utils_js_1.encoder.encode(JSON.stringify(components));\n return (0, base64url_js_1.encode)(await (0, digest_js_1.default)(digestAlgorithm, data));\n}\nasync function calculateJwkThumbprintUri(jwk, digestAlgorithm) {\n digestAlgorithm ??= 'sha256';\n const thumbprint = await calculateJwkThumbprint(jwk, digestAlgorithm);\n return `urn:ietf:params:oauth:jwk-thumbprint:sha-${digestAlgorithm.slice(-3)}:${thumbprint}`;\n}\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.EmbeddedJWK = EmbeddedJWK;\nconst import_js_1 = require(\"../key/import.js\");\nconst is_object_js_1 = require(\"../lib/is_object.js\");\nconst errors_js_1 = require(\"../util/errors.js\");\nasync function EmbeddedJWK(protectedHeader, token) {\n const joseHeader = {\n ...protectedHeader,\n ...token?.header,\n };\n if (!(0, is_object_js_1.default)(joseHeader.jwk)) {\n throw new errors_js_1.JWSInvalid('\"jwk\" (JSON Web Key) Header Parameter must be a JSON object');\n }\n const key = await (0, import_js_1.importJWK)({ ...joseHeader.jwk, ext: true }, joseHeader.alg);\n if (key instanceof Uint8Array || key.type !== 'public') {\n throw new errors_js_1.JWSInvalid('\"jwk\" (JSON Web Key) Header Parameter must be a public key');\n }\n return key;\n}\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.createLocalJWKSet = createLocalJWKSet;\nconst import_js_1 = require(\"../key/import.js\");\nconst errors_js_1 = require(\"../util/errors.js\");\nconst is_object_js_1 = require(\"../lib/is_object.js\");\nfunction getKtyFromAlg(alg) {\n switch (typeof alg === 'string' && alg.slice(0, 2)) {\n case 'RS':\n case 'PS':\n return 'RSA';\n case 'ES':\n return 'EC';\n case 'Ed':\n return 'OKP';\n default:\n throw new errors_js_1.JOSENotSupported('Unsupported \"alg\" value for a JSON Web Key Set');\n }\n}\nfunction isJWKSLike(jwks) {\n return (jwks &&\n typeof jwks === 'object' &&\n Array.isArray(jwks.keys) &&\n jwks.keys.every(isJWKLike));\n}\nfunction isJWKLike(key) {\n return (0, is_object_js_1.default)(key);\n}\nfunction clone(obj) {\n if (typeof structuredClone === 'function') {\n return structuredClone(obj);\n }\n return JSON.parse(JSON.stringify(obj));\n}\nclass LocalJWKSet {\n _jwks;\n _cached = new WeakMap();\n constructor(jwks) {\n if (!isJWKSLike(jwks)) {\n throw new errors_js_1.JWKSInvalid('JSON Web Key Set malformed');\n }\n this._jwks = clone(jwks);\n }\n async getKey(protectedHeader, token) {\n const { alg, kid } = { ...protectedHeader, ...token?.header };\n const kty = getKtyFromAlg(alg);\n const candidates = this._jwks.keys.filter((jwk) => {\n let candidate = kty === jwk.kty;\n if (candidate && typeof kid === 'string') {\n candidate = kid === jwk.kid;\n }\n if (candidate && typeof jwk.alg === 'string') {\n candidate = alg === jwk.alg;\n }\n if (candidate && typeof jwk.use === 'string') {\n candidate = jwk.use === 'sig';\n }\n if (candidate && Array.isArray(jwk.key_ops)) {\n candidate = jwk.key_ops.includes('verify');\n }\n if (candidate) {\n switch (alg) {\n case 'ES256':\n candidate = jwk.crv === 'P-256';\n break;\n case 'ES256K':\n candidate = jwk.crv === 'secp256k1';\n break;\n case 'ES384':\n candidate = jwk.crv === 'P-384';\n break;\n case 'ES512':\n candidate = jwk.crv === 'P-521';\n break;\n case 'Ed25519':\n candidate = jwk.crv === 'Ed25519';\n break;\n case 'EdDSA':\n candidate = jwk.crv === 'Ed25519' || jwk.crv === 'Ed448';\n break;\n }\n }\n return candidate;\n });\n const { 0: jwk, length } = candidates;\n if (length === 0) {\n throw new errors_js_1.JWKSNoMatchingKey();\n }\n if (length !== 1) {\n const error = new errors_js_1.JWKSMultipleMatchingKeys();\n const { _cached } = this;\n error[Symbol.asyncIterator] = async function* () {\n for (const jwk of candidates) {\n try {\n yield await importWithAlgCache(_cached, jwk, alg);\n }\n catch { }\n }\n };\n throw error;\n }\n return importWithAlgCache(this._cached, jwk, alg);\n }\n}\nasync function importWithAlgCache(cache, jwk, alg) {\n const cached = cache.get(jwk) || cache.set(jwk, {}).get(jwk);\n if (cached[alg] === undefined) {\n const key = await (0, import_js_1.importJWK)({ ...jwk, ext: true }, alg);\n if (key instanceof Uint8Array || key.type !== 'public') {\n throw new errors_js_1.JWKSInvalid('JSON Web Key Set members must be public keys');\n }\n cached[alg] = key;\n }\n return cached[alg];\n}\nfunction createLocalJWKSet(jwks) {\n const set = new LocalJWKSet(jwks);\n const localJWKSet = async (protectedHeader, token) => set.getKey(protectedHeader, token);\n Object.defineProperties(localJWKSet, {\n jwks: {\n value: () => clone(set._jwks),\n enumerable: true,\n configurable: false,\n writable: false,\n },\n });\n return localJWKSet;\n}\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst http = require(\"node:http\");\nconst https = require(\"node:https\");\nconst node_events_1 = require(\"node:events\");\nconst errors_js_1 = require(\"../util/errors.js\");\nconst buffer_utils_js_1 = require(\"../lib/buffer_utils.js\");\nconst fetchJwks = async (url, timeout, options) => {\n let get;\n switch (url.protocol) {\n case 'https:':\n get = https.get;\n break;\n case 'http:':\n get = http.get;\n break;\n default:\n throw new TypeError('Unsupported URL protocol.');\n }\n const { agent, headers } = options;\n const req = get(url.href, {\n agent,\n timeout,\n headers,\n });\n const [response] = (await Promise.race([(0, node_events_1.once)(req, 'response'), (0, node_events_1.once)(req, 'timeout')]));\n if (!response) {\n req.destroy();\n throw new errors_js_1.JWKSTimeout();\n }\n if (response.statusCode !== 200) {\n throw new errors_js_1.JOSEError('Expected 200 OK from the JSON Web Key Set HTTP response');\n }\n const parts = [];\n for await (const part of response) {\n parts.push(part);\n }\n try {\n return JSON.parse(buffer_utils_js_1.decoder.decode((0, buffer_utils_js_1.concat)(...parts)));\n }\n catch {\n throw new errors_js_1.JOSEError('Failed to parse the JSON Web Key Set HTTP response as JSON');\n }\n};\nexports.default = fetchJwks;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.experimental_jwksCache = exports.jwksCache = void 0;\nexports.createRemoteJWKSet = createRemoteJWKSet;\nconst fetch_jwks_js_1 = require(\"../runtime/fetch_jwks.js\");\nconst errors_js_1 = require(\"../util/errors.js\");\nconst local_js_1 = require(\"./local.js\");\nconst is_object_js_1 = require(\"../lib/is_object.js\");\nfunction isCloudflareWorkers() {\n return (typeof WebSocketPair !== 'undefined' ||\n (typeof navigator !== 'undefined' && navigator.userAgent === 'Cloudflare-Workers') ||\n (typeof EdgeRuntime !== 'undefined' && EdgeRuntime === 'vercel'));\n}\nlet USER_AGENT;\nif (typeof navigator === 'undefined' || !navigator.userAgent?.startsWith?.('Mozilla/5.0 ')) {\n const NAME = 'jose';\n const VERSION = 'v5.10.0';\n USER_AGENT = `${NAME}/${VERSION}`;\n}\nexports.jwksCache = Symbol();\nfunction isFreshJwksCache(input, cacheMaxAge) {\n if (typeof input !== 'object' || input === null) {\n return false;\n }\n if (!('uat' in input) || typeof input.uat !== 'number' || Date.now() - input.uat >= cacheMaxAge) {\n return false;\n }\n if (!('jwks' in input) ||\n !(0, is_object_js_1.default)(input.jwks) ||\n !Array.isArray(input.jwks.keys) ||\n !Array.prototype.every.call(input.jwks.keys, is_object_js_1.default)) {\n return false;\n }\n return true;\n}\nclass RemoteJWKSet {\n _url;\n _timeoutDuration;\n _cooldownDuration;\n _cacheMaxAge;\n _jwksTimestamp;\n _pendingFetch;\n _options;\n _local;\n _cache;\n constructor(url, options) {\n if (!(url instanceof URL)) {\n throw new TypeError('url must be an instance of URL');\n }\n this._url = new URL(url.href);\n this._options = { agent: options?.agent, headers: options?.headers };\n this._timeoutDuration =\n typeof options?.timeoutDuration === 'number' ? options?.timeoutDuration : 5000;\n this._cooldownDuration =\n typeof options?.cooldownDuration === 'number' ? options?.cooldownDuration : 30000;\n this._cacheMaxAge = typeof options?.cacheMaxAge === 'number' ? options?.cacheMaxAge : 600000;\n if (options?.[exports.jwksCache] !== undefined) {\n this._cache = options?.[exports.jwksCache];\n if (isFreshJwksCache(options?.[exports.jwksCache], this._cacheMaxAge)) {\n this._jwksTimestamp = this._cache.uat;\n this._local = (0, local_js_1.createLocalJWKSet)(this._cache.jwks);\n }\n }\n }\n coolingDown() {\n return typeof this._jwksTimestamp === 'number'\n ? Date.now() < this._jwksTimestamp + this._cooldownDuration\n : false;\n }\n fresh() {\n return typeof this._jwksTimestamp === 'number'\n ? Date.now() < this._jwksTimestamp + this._cacheMaxAge\n : false;\n }\n async getKey(protectedHeader, token) {\n if (!this._local || !this.fresh()) {\n await this.reload();\n }\n try {\n return await this._local(protectedHeader, token);\n }\n catch (err) {\n if (err instanceof errors_js_1.JWKSNoMatchingKey) {\n if (this.coolingDown() === false) {\n await this.reload();\n return this._local(protectedHeader, token);\n }\n }\n throw err;\n }\n }\n async reload() {\n if (this._pendingFetch && isCloudflareWorkers()) {\n this._pendingFetch = undefined;\n }\n const headers = new Headers(this._options.headers);\n if (USER_AGENT && !headers.has('User-Agent')) {\n headers.set('User-Agent', USER_AGENT);\n this._options.headers = Object.fromEntries(headers.entries());\n }\n this._pendingFetch ||= (0, fetch_jwks_js_1.default)(this._url, this._timeoutDuration, this._options)\n .then((json) => {\n this._local = (0, local_js_1.createLocalJWKSet)(json);\n if (this._cache) {\n this._cache.uat = Date.now();\n this._cache.jwks = json;\n }\n this._jwksTimestamp = Date.now();\n this._pendingFetch = undefined;\n })\n .catch((err) => {\n this._pendingFetch = undefined;\n throw err;\n });\n await this._pendingFetch;\n }\n}\nfunction createRemoteJWKSet(url, options) {\n const set = new RemoteJWKSet(url, options);\n const remoteJWKSet = async (protectedHeader, token) => set.getKey(protectedHeader, token);\n Object.defineProperties(remoteJWKSet, {\n coolingDown: {\n get: () => set.coolingDown(),\n enumerable: true,\n configurable: false,\n },\n fresh: {\n get: () => set.fresh(),\n enumerable: true,\n configurable: false,\n },\n reload: {\n value: () => set.reload(),\n enumerable: true,\n configurable: false,\n writable: false,\n },\n reloading: {\n get: () => !!set._pendingFetch,\n enumerable: true,\n configurable: false,\n },\n jwks: {\n value: () => set._local?.jwks(),\n enumerable: true,\n configurable: false,\n writable: false,\n },\n });\n return remoteJWKSet;\n}\nexports.experimental_jwksCache = exports.jwksCache;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.UnsecuredJWT = void 0;\nconst base64url = require(\"../runtime/base64url.js\");\nconst buffer_utils_js_1 = require(\"../lib/buffer_utils.js\");\nconst errors_js_1 = require(\"../util/errors.js\");\nconst jwt_claims_set_js_1 = require(\"../lib/jwt_claims_set.js\");\nconst produce_js_1 = require(\"./produce.js\");\nclass UnsecuredJWT extends produce_js_1.ProduceJWT {\n encode() {\n const header = base64url.encode(JSON.stringify({ alg: 'none' }));\n const payload = base64url.encode(JSON.stringify(this._payload));\n return `${header}.${payload}.`;\n }\n static decode(jwt, options) {\n if (typeof jwt !== 'string') {\n throw new errors_js_1.JWTInvalid('Unsecured JWT must be a string');\n }\n const { 0: encodedHeader, 1: encodedPayload, 2: signature, length } = jwt.split('.');\n if (length !== 3 || signature !== '') {\n throw new errors_js_1.JWTInvalid('Invalid Unsecured JWT');\n }\n let header;\n try {\n header = JSON.parse(buffer_utils_js_1.decoder.decode(base64url.decode(encodedHeader)));\n if (header.alg !== 'none')\n throw new Error();\n }\n catch {\n throw new errors_js_1.JWTInvalid('Invalid Unsecured JWT');\n }\n const payload = (0, jwt_claims_set_js_1.default)(header, base64url.decode(encodedPayload), options);\n return { payload, header };\n }\n}\nexports.UnsecuredJWT = UnsecuredJWT;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.decode = exports.encode = void 0;\nconst base64url = require(\"../runtime/base64url.js\");\nexports.encode = base64url.encode;\nexports.decode = base64url.decode;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.decodeProtectedHeader = decodeProtectedHeader;\nconst base64url_js_1 = require(\"./base64url.js\");\nconst buffer_utils_js_1 = require(\"../lib/buffer_utils.js\");\nconst is_object_js_1 = require(\"../lib/is_object.js\");\nfunction decodeProtectedHeader(token) {\n let protectedB64u;\n if (typeof token === 'string') {\n const parts = token.split('.');\n if (parts.length === 3 || parts.length === 5) {\n ;\n [protectedB64u] = parts;\n }\n }\n else if (typeof token === 'object' && token) {\n if ('protected' in token) {\n protectedB64u = token.protected;\n }\n else {\n throw new TypeError('Token does not contain a Protected Header');\n }\n }\n try {\n if (typeof protectedB64u !== 'string' || !protectedB64u) {\n throw new Error();\n }\n const result = JSON.parse(buffer_utils_js_1.decoder.decode((0, base64url_js_1.decode)(protectedB64u)));\n if (!(0, is_object_js_1.default)(result)) {\n throw new Error();\n }\n return result;\n }\n catch {\n throw new TypeError('Invalid Token or Protected Header formatting');\n }\n}\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.decodeJwt = decodeJwt;\nconst base64url_js_1 = require(\"./base64url.js\");\nconst buffer_utils_js_1 = require(\"../lib/buffer_utils.js\");\nconst is_object_js_1 = require(\"../lib/is_object.js\");\nconst errors_js_1 = require(\"./errors.js\");\nfunction decodeJwt(jwt) {\n if (typeof jwt !== 'string')\n throw new errors_js_1.JWTInvalid('JWTs must use Compact JWS serialization, JWT must be a string');\n const { 1: payload, length } = jwt.split('.');\n if (length === 5)\n throw new errors_js_1.JWTInvalid('Only JWTs using Compact JWS serialization can be decoded');\n if (length !== 3)\n throw new errors_js_1.JWTInvalid('Invalid JWT');\n if (!payload)\n throw new errors_js_1.JWTInvalid('JWTs must contain a payload');\n let decoded;\n try {\n decoded = (0, base64url_js_1.decode)(payload);\n }\n catch {\n throw new errors_js_1.JWTInvalid('Failed to base64url decode the payload');\n }\n let result;\n try {\n result = JSON.parse(buffer_utils_js_1.decoder.decode(decoded));\n }\n catch {\n throw new errors_js_1.JWTInvalid('Failed to parse the decoded payload as JSON');\n }\n if (!(0, is_object_js_1.default)(result))\n throw new errors_js_1.JWTInvalid('Invalid JWT Claims Set');\n return result;\n}\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.generateSecret = generateSecret;\nexports.generateKeyPair = generateKeyPair;\nconst node_crypto_1 = require(\"node:crypto\");\nconst node_util_1 = require(\"node:util\");\nconst random_js_1 = require(\"./random.js\");\nconst errors_js_1 = require(\"../util/errors.js\");\nconst generate = (0, node_util_1.promisify)(node_crypto_1.generateKeyPair);\nasync function generateSecret(alg, options) {\n let length;\n switch (alg) {\n case 'HS256':\n case 'HS384':\n case 'HS512':\n case 'A128CBC-HS256':\n case 'A192CBC-HS384':\n case 'A256CBC-HS512':\n length = parseInt(alg.slice(-3), 10);\n break;\n case 'A128KW':\n case 'A192KW':\n case 'A256KW':\n case 'A128GCMKW':\n case 'A192GCMKW':\n case 'A256GCMKW':\n case 'A128GCM':\n case 'A192GCM':\n case 'A256GCM':\n length = parseInt(alg.slice(1, 4), 10);\n break;\n default:\n throw new errors_js_1.JOSENotSupported('Invalid or unsupported JWK \"alg\" (Algorithm) Parameter value');\n }\n return (0, node_crypto_1.createSecretKey)((0, random_js_1.default)(new Uint8Array(length >> 3)));\n}\nasync function generateKeyPair(alg, options) {\n switch (alg) {\n case 'RS256':\n case 'RS384':\n case 'RS512':\n case 'PS256':\n case 'PS384':\n case 'PS512':\n case 'RSA-OAEP':\n case 'RSA-OAEP-256':\n case 'RSA-OAEP-384':\n case 'RSA-OAEP-512':\n case 'RSA1_5': {\n const modulusLength = options?.modulusLength ?? 2048;\n if (typeof modulusLength !== 'number' || modulusLength < 2048) {\n throw new errors_js_1.JOSENotSupported('Invalid or unsupported modulusLength option provided, 2048 bits or larger keys must be used');\n }\n const keypair = await generate('rsa', {\n modulusLength,\n publicExponent: 0x10001,\n });\n return keypair;\n }\n case 'ES256':\n return generate('ec', { namedCurve: 'P-256' });\n case 'ES256K':\n return generate('ec', { namedCurve: 'secp256k1' });\n case 'ES384':\n return generate('ec', { namedCurve: 'P-384' });\n case 'ES512':\n return generate('ec', { namedCurve: 'P-521' });\n case 'Ed25519':\n return generate('ed25519');\n case 'EdDSA': {\n switch (options?.crv) {\n case undefined:\n case 'Ed25519':\n return generate('ed25519');\n case 'Ed448':\n return generate('ed448');\n default:\n throw new errors_js_1.JOSENotSupported('Invalid or unsupported crv option provided, supported values are Ed25519 and Ed448');\n }\n }\n case 'ECDH-ES':\n case 'ECDH-ES+A128KW':\n case 'ECDH-ES+A192KW':\n case 'ECDH-ES+A256KW': {\n const crv = options?.crv ?? 'P-256';\n switch (crv) {\n case undefined:\n case 'P-256':\n case 'P-384':\n case 'P-521':\n return generate('ec', { namedCurve: crv });\n case 'X25519':\n return generate('x25519');\n case 'X448':\n return generate('x448');\n default:\n throw new errors_js_1.JOSENotSupported('Invalid or unsupported crv option provided, supported values are P-256, P-384, P-521, X25519, and X448');\n }\n }\n default:\n throw new errors_js_1.JOSENotSupported('Invalid or unsupported JWK \"alg\" (Algorithm) Parameter value');\n }\n}\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.generateKeyPair = generateKeyPair;\nconst generate_js_1 = require(\"../runtime/generate.js\");\nasync function generateKeyPair(alg, options) {\n return (0, generate_js_1.generateKeyPair)(alg, options);\n}\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.generateSecret = generateSecret;\nconst generate_js_1 = require(\"../runtime/generate.js\");\nasync function generateSecret(alg, options) {\n return (0, generate_js_1.generateSecret)(alg, options);\n}\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.default = 'node:crypto';\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst runtime_js_1 = require(\"../runtime/runtime.js\");\nexports.default = runtime_js_1.default;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.cryptoRuntime = exports.base64url = exports.generateSecret = exports.generateKeyPair = exports.errors = exports.decodeJwt = exports.decodeProtectedHeader = exports.importJWK = exports.importX509 = exports.importPKCS8 = exports.importSPKI = exports.exportJWK = exports.exportSPKI = exports.exportPKCS8 = exports.UnsecuredJWT = exports.experimental_jwksCache = exports.jwksCache = exports.createRemoteJWKSet = exports.createLocalJWKSet = exports.EmbeddedJWK = exports.calculateJwkThumbprintUri = exports.calculateJwkThumbprint = exports.EncryptJWT = exports.SignJWT = exports.GeneralSign = exports.FlattenedSign = exports.CompactSign = exports.FlattenedEncrypt = exports.CompactEncrypt = exports.jwtDecrypt = exports.jwtVerify = exports.generalVerify = exports.flattenedVerify = exports.compactVerify = exports.GeneralEncrypt = exports.generalDecrypt = exports.flattenedDecrypt = exports.compactDecrypt = void 0;\nvar decrypt_js_1 = require(\"./jwe/compact/decrypt.js\");\nObject.defineProperty(exports, \"compactDecrypt\", { enumerable: true, get: function () { return decrypt_js_1.compactDecrypt; } });\nvar decrypt_js_2 = require(\"./jwe/flattened/decrypt.js\");\nObject.defineProperty(exports, \"flattenedDecrypt\", { enumerable: true, get: function () { return decrypt_js_2.flattenedDecrypt; } });\nvar decrypt_js_3 = require(\"./jwe/general/decrypt.js\");\nObject.defineProperty(exports, \"generalDecrypt\", { enumerable: true, get: function () { return decrypt_js_3.generalDecrypt; } });\nvar encrypt_js_1 = require(\"./jwe/general/encrypt.js\");\nObject.defineProperty(exports, \"GeneralEncrypt\", { enumerable: true, get: function () { return encrypt_js_1.GeneralEncrypt; } });\nvar verify_js_1 = require(\"./jws/compact/verify.js\");\nObject.defineProperty(exports, \"compactVerify\", { enumerable: true, get: function () { return verify_js_1.compactVerify; } });\nvar verify_js_2 = require(\"./jws/flattened/verify.js\");\nObject.defineProperty(exports, \"flattenedVerify\", { enumerable: true, get: function () { return verify_js_2.flattenedVerify; } });\nvar verify_js_3 = require(\"./jws/general/verify.js\");\nObject.defineProperty(exports, \"generalVerify\", { enumerable: true, get: function () { return verify_js_3.generalVerify; } });\nvar verify_js_4 = require(\"./jwt/verify.js\");\nObject.defineProperty(exports, \"jwtVerify\", { enumerable: true, get: function () { return verify_js_4.jwtVerify; } });\nvar decrypt_js_4 = require(\"./jwt/decrypt.js\");\nObject.defineProperty(exports, \"jwtDecrypt\", { enumerable: true, get: function () { return decrypt_js_4.jwtDecrypt; } });\nvar encrypt_js_2 = require(\"./jwe/compact/encrypt.js\");\nObject.defineProperty(exports, \"CompactEncrypt\", { enumerable: true, get: function () { return encrypt_js_2.CompactEncrypt; } });\nvar encrypt_js_3 = require(\"./jwe/flattened/encrypt.js\");\nObject.defineProperty(exports, \"FlattenedEncrypt\", { enumerable: true, get: function () { return encrypt_js_3.FlattenedEncrypt; } });\nvar sign_js_1 = require(\"./jws/compact/sign.js\");\nObject.defineProperty(exports, \"CompactSign\", { enumerable: true, get: function () { return sign_js_1.CompactSign; } });\nvar sign_js_2 = require(\"./jws/flattened/sign.js\");\nObject.defineProperty(exports, \"FlattenedSign\", { enumerable: true, get: function () { return sign_js_2.FlattenedSign; } });\nvar sign_js_3 = require(\"./jws/general/sign.js\");\nObject.defineProperty(exports, \"GeneralSign\", { enumerable: true, get: function () { return sign_js_3.GeneralSign; } });\nvar sign_js_4 = require(\"./jwt/sign.js\");\nObject.defineProperty(exports, \"SignJWT\", { enumerable: true, get: function () { return sign_js_4.SignJWT; } });\nvar encrypt_js_4 = require(\"./jwt/encrypt.js\");\nObject.defineProperty(exports, \"EncryptJWT\", { enumerable: true, get: function () { return encrypt_js_4.EncryptJWT; } });\nvar thumbprint_js_1 = require(\"./jwk/thumbprint.js\");\nObject.defineProperty(exports, \"calculateJwkThumbprint\", { enumerable: true, get: function () { return thumbprint_js_1.calculateJwkThumbprint; } });\nObject.defineProperty(exports, \"calculateJwkThumbprintUri\", { enumerable: true, get: function () { return thumbprint_js_1.calculateJwkThumbprintUri; } });\nvar embedded_js_1 = require(\"./jwk/embedded.js\");\nObject.defineProperty(exports, \"EmbeddedJWK\", { enumerable: true, get: function () { return embedded_js_1.EmbeddedJWK; } });\nvar local_js_1 = require(\"./jwks/local.js\");\nObject.defineProperty(exports, \"createLocalJWKSet\", { enumerable: true, get: function () { return local_js_1.createLocalJWKSet; } });\nvar remote_js_1 = require(\"./jwks/remote.js\");\nObject.defineProperty(exports, \"createRemoteJWKSet\", { enumerable: true, get: function () { return remote_js_1.createRemoteJWKSet; } });\nObject.defineProperty(exports, \"jwksCache\", { enumerable: true, get: function () { return remote_js_1.jwksCache; } });\nObject.defineProperty(exports, \"experimental_jwksCache\", { enumerable: true, get: function () { return remote_js_1.experimental_jwksCache; } });\nvar unsecured_js_1 = require(\"./jwt/unsecured.js\");\nObject.defineProperty(exports, \"UnsecuredJWT\", { enumerable: true, get: function () { return unsecured_js_1.UnsecuredJWT; } });\nvar export_js_1 = require(\"./key/export.js\");\nObject.defineProperty(exports, \"exportPKCS8\", { enumerable: true, get: function () { return export_js_1.exportPKCS8; } });\nObject.defineProperty(exports, \"exportSPKI\", { enumerable: true, get: function () { return export_js_1.exportSPKI; } });\nObject.defineProperty(exports, \"exportJWK\", { enumerable: true, get: function () { return export_js_1.exportJWK; } });\nvar import_js_1 = require(\"./key/import.js\");\nObject.defineProperty(exports, \"importSPKI\", { enumerable: true, get: function () { return import_js_1.importSPKI; } });\nObject.defineProperty(exports, \"importPKCS8\", { enumerable: true, get: function () { return import_js_1.importPKCS8; } });\nObject.defineProperty(exports, \"importX509\", { enumerable: true, get: function () { return import_js_1.importX509; } });\nObject.defineProperty(exports, \"importJWK\", { enumerable: true, get: function () { return import_js_1.importJWK; } });\nvar decode_protected_header_js_1 = require(\"./util/decode_protected_header.js\");\nObject.defineProperty(exports, \"decodeProtectedHeader\", { enumerable: true, get: function () { return decode_protected_header_js_1.decodeProtectedHeader; } });\nvar decode_jwt_js_1 = require(\"./util/decode_jwt.js\");\nObject.defineProperty(exports, \"decodeJwt\", { enumerable: true, get: function () { return decode_jwt_js_1.decodeJwt; } });\nexports.errors = require(\"./util/errors.js\");\nvar generate_key_pair_js_1 = require(\"./key/generate_key_pair.js\");\nObject.defineProperty(exports, \"generateKeyPair\", { enumerable: true, get: function () { return generate_key_pair_js_1.generateKeyPair; } });\nvar generate_secret_js_1 = require(\"./key/generate_secret.js\");\nObject.defineProperty(exports, \"generateSecret\", { enumerable: true, get: function () { return generate_secret_js_1.generateSecret; } });\nexports.base64url = require(\"./util/base64url.js\");\nvar runtime_js_1 = require(\"./util/runtime.js\");\nObject.defineProperty(exports, \"cryptoRuntime\", { enumerable: true, get: function () { return runtime_js_1.default; } });\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.TokenManager = void 0;\nconst uuid_1 = require(\"./uuid\");\nconst jose_1 = require(\"jose\");\nconst analytics_core_1 = require(\"@segment/analytics-core\");\nconst analytics_generic_utils_1 = require(\"@segment/analytics-generic-utils\");\nconst isAccessToken = (thing) => {\n return Boolean(thing &&\n typeof thing === 'object' &&\n 'access_token' in thing &&\n 'expires_in' in thing &&\n typeof thing.access_token === 'string' &&\n typeof thing.expires_in === 'number');\n};\nconst isValidCustomResponse = (response) => {\n return typeof response.text === 'function';\n};\nfunction convertHeaders(headers) {\n const lowercaseHeaders = {};\n if (!headers)\n return {};\n if (isHeaders(headers)) {\n for (const [name, value] of headers.entries()) {\n lowercaseHeaders[name.toLowerCase()] = value;\n }\n return lowercaseHeaders;\n }\n for (const [name, value] of Object.entries(headers)) {\n lowercaseHeaders[name.toLowerCase()] = value;\n }\n return lowercaseHeaders;\n}\nfunction isHeaders(thing) {\n if (typeof thing === 'object' &&\n thing !== null &&\n 'entries' in Object(thing) &&\n typeof Object(thing).entries === 'function') {\n return true;\n }\n return false;\n}\nclass TokenManager {\n alg = 'RS256';\n grantType = 'client_credentials';\n clientAssertionType = 'urn:ietf:params:oauth:client-assertion-type:jwt-bearer';\n clientId;\n clientKey;\n keyId;\n scope;\n authServer;\n httpClient;\n maxRetries;\n clockSkewInSeconds = 0;\n accessToken;\n tokenEmitter = new analytics_generic_utils_1.Emitter();\n retryCount;\n pollerTimer;\n constructor(props) {\n this.keyId = props.keyId;\n this.clientId = props.clientId;\n this.clientKey = props.clientKey;\n this.authServer = props.authServer ?? 'https://oauth2.segment.io';\n this.scope = props.scope ?? 'tracking_api:write';\n this.httpClient = props.httpClient;\n this.maxRetries = props.maxRetries;\n this.tokenEmitter.on('access_token', (event) => {\n if ('token' in event) {\n this.accessToken = event.token;\n }\n });\n this.retryCount = 0;\n }\n stopPoller() {\n clearTimeout(this.pollerTimer);\n }\n async pollerLoop() {\n let timeUntilRefreshInMs = 25;\n let response;\n try {\n response = await this.requestAccessToken();\n }\n catch (err) {\n // Error without a status code - likely networking, retry\n return this.handleTransientError({ error: err });\n }\n if (!isValidCustomResponse(response)) {\n return this.handleInvalidCustomResponse();\n }\n const headers = convertHeaders(response.headers);\n if (headers['date']) {\n this.updateClockSkew(Date.parse(headers['date']));\n }\n // Handle status codes!\n if (response.status === 200) {\n try {\n const body = await response.text();\n const token = JSON.parse(body);\n if (!isAccessToken(token)) {\n throw new Error('Response did not contain a valid access_token and expires_in');\n }\n // Success, we have a token!\n token.expires_at = Math.round(Date.now() / 1000) + token.expires_in;\n this.tokenEmitter.emit('access_token', { token });\n // Reset our failure count\n this.retryCount = 0;\n // Refresh the token after half the expiry time passes\n timeUntilRefreshInMs = (token.expires_in / 2) * 1000;\n return this.queueNextPoll(timeUntilRefreshInMs);\n }\n catch (err) {\n // Something went really wrong with the body, lets surface an error and try again?\n return this.handleTransientError({ error: err, forceEmitError: true });\n }\n }\n else if (response.status === 429) {\n // Rate limited, wait for the reset time\n return await this.handleRateLimited(response, headers, timeUntilRefreshInMs);\n }\n else if ([400, 401, 415].includes(response.status)) {\n // Unrecoverable errors, stops the poller\n return this.handleUnrecoverableErrors(response);\n }\n else {\n return this.handleTransientError({\n error: new Error(`[${response.status}] ${response.statusText}`),\n });\n }\n }\n handleTransientError({ error, forceEmitError, }) {\n this.incrementRetries({ error, forceEmitError });\n // First retry immediately, backoff the rest.\n if (this.retryCount === 1) {\n this.queueNextPoll(0);\n return;\n }\n const timeUntilRefreshInMs = (0, analytics_core_1.backoff)({\n attempt: Math.max(this.retryCount - 1, 0),\n minTimeout: 100,\n maxTimeout: 60 * 1000,\n });\n this.queueNextPoll(timeUntilRefreshInMs);\n }\n handleInvalidCustomResponse() {\n this.tokenEmitter.emit('access_token', {\n error: new Error('HTTPClient does not implement response.text method'),\n });\n }\n async handleRateLimited(response, headers, timeUntilRefreshInMs) {\n this.incrementRetries({\n error: new Error(`[${response.status}] ${response.statusText}`),\n });\n const getRateLimitWaitTime = (headerValue) => {\n const value = parseInt(headerValue, 10);\n if (!isFinite(value))\n return null;\n const clampedSeconds = Math.max(0, Math.min(value, 300));\n return Math.max(0, (clampedSeconds + this.clockSkewInSeconds) * 1000);\n };\n const retryAfter = headers['retry-after'];\n const maxWaitMs = 5 * 60 * 1000; // 5 minutes\n let waitTimeMs = 5 * 1000; // default fallback\n if (retryAfter) {\n const waitTime = getRateLimitWaitTime(retryAfter);\n if (waitTime !== null) {\n waitTimeMs = Math.min(waitTime, maxWaitMs);\n }\n }\n // We want subsequent calls to get_token to be able to interrupt our\n // Timeout when it's waiting for e.g. a long normal expiration, but\n // not when we're waiting for a rate limit reset. Sleep instead.\n await (0, analytics_core_1.sleep)(waitTimeMs);\n timeUntilRefreshInMs = 0;\n this.queueNextPoll(timeUntilRefreshInMs);\n }\n handleUnrecoverableErrors(response) {\n this.retryCount = 0;\n this.tokenEmitter.emit('access_token', {\n error: new Error(`[${response.status}] ${response.statusText}`),\n });\n this.stopPoller();\n }\n updateClockSkew(dateInMs) {\n this.clockSkewInSeconds = (Date.now() - dateInMs) / 1000;\n }\n incrementRetries({ error, forceEmitError, }) {\n this.retryCount++;\n if (forceEmitError || this.retryCount % this.maxRetries === 0) {\n this.retryCount = 0;\n this.tokenEmitter.emit('access_token', { error: error });\n }\n }\n queueNextPoll(timeUntilRefreshInMs) {\n this.pollerTimer = setTimeout(() => this.pollerLoop(), timeUntilRefreshInMs);\n if (this.pollerTimer.unref) {\n this.pollerTimer.unref();\n }\n }\n /**\n * Solely responsible for building the HTTP request and calling the token service.\n */\n async requestAccessToken() {\n // Set issued at time to 5 seconds in the past to account for clock skew\n const ISSUED_AT_BUFFER_IN_SECONDS = 5;\n const MAX_EXPIRY_IN_SECONDS = 60;\n // Final expiry time takes into account the issued at time, so need to subtract IAT buffer\n const EXPIRY_IN_SECONDS = MAX_EXPIRY_IN_SECONDS - ISSUED_AT_BUFFER_IN_SECONDS;\n const jti = (0, uuid_1.uuid)();\n const currentUTCInSeconds = Math.round(Date.now() / 1000) - this.clockSkewInSeconds;\n const jwtBody = {\n iss: this.clientId,\n sub: this.clientId,\n aud: this.authServer,\n iat: currentUTCInSeconds - ISSUED_AT_BUFFER_IN_SECONDS,\n exp: currentUTCInSeconds + EXPIRY_IN_SECONDS,\n jti,\n };\n const key = await (0, jose_1.importPKCS8)(this.clientKey, 'RS256');\n const signedJwt = await new jose_1.SignJWT(jwtBody)\n .setProtectedHeader({ alg: this.alg, kid: this.keyId, typ: 'JWT' })\n .sign(key);\n const requestBody = `grant_type=${this.grantType}&client_assertion_type=${this.clientAssertionType}&client_assertion=${signedJwt}&scope=${this.scope}`;\n const accessTokenEndpoint = `${this.authServer}/token`;\n const requestOptions = {\n method: 'POST',\n url: accessTokenEndpoint,\n body: requestBody,\n headers: {\n 'Content-Type': 'application/x-www-form-urlencoded',\n },\n httpRequestTimeout: 10000,\n };\n return this.httpClient.makeRequest(requestOptions);\n }\n async getAccessToken() {\n // Use the cached token if it is still valid, otherwise wait for a new token.\n if (this.isValidToken(this.accessToken)) {\n return this.accessToken;\n }\n // stop poller first in order to make sure that it's not sleeping if we need a token immediately\n // Otherwise it could be hours before the expiration time passes normally\n this.stopPoller();\n // startPoller needs to be called somewhere, either lazily when a token is first requested, or at instantiation.\n // Doing it lazily currently\n this.pollerLoop().catch(() => { });\n return new Promise((resolve, reject) => {\n this.tokenEmitter.once('access_token', (event) => {\n if ('token' in event) {\n resolve(event.token);\n }\n else {\n reject(event.error);\n }\n });\n });\n }\n clearToken() {\n this.accessToken = undefined;\n }\n isValidToken(token) {\n return (typeof token !== 'undefined' &&\n token !== null &&\n (token.expires_at ?? 0) > Date.now() / 1000);\n }\n}\nexports.TokenManager = TokenManager;\n//# sourceMappingURL=token-manager.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.b64encode = void 0;\n// eslint-disable-next-line import/no-nodejs-modules\nconst buffer_1 = require(\"buffer\");\n/**\n * Base64 encoder that works in browser, worker, node runtimes.\n */\nconst b64encode = (str) => {\n return buffer_1.Buffer.from(str).toString('base64');\n};\nexports.b64encode = b64encode;\n//# sourceMappingURL=base-64-encode.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Publisher = void 0;\nconst analytics_core_1 = require(\"@segment/analytics-core\");\nconst create_url_1 = require(\"../../lib/create-url\");\nconst analytics_generic_utils_1 = require(\"@segment/analytics-generic-utils\");\nconst context_batch_1 = require(\"./context-batch\");\nconst token_manager_1 = require(\"../../lib/token-manager\");\nconst base_64_encode_1 = require(\"../../lib/base-64-encode\");\nconst MAX_RETRY_AFTER_SECONDS = 300;\nconst MAX_RETRY_AFTER_RETRIES = 20;\nfunction sleep(timeoutInMs, signal) {\n return new Promise((resolve, reject) => {\n if (signal?.aborted) {\n reject(signal.reason);\n return;\n }\n const timer = setTimeout(resolve, timeoutInMs);\n signal?.addEventListener('abort', () => {\n clearTimeout(timer);\n reject(signal.reason);\n }, { once: true });\n });\n}\nfunction noop() { }\nfunction convertHeaders(headers) {\n const lowercaseHeaders = {};\n if (!headers)\n return lowercaseHeaders;\n if (typeof headers.entries === 'function') {\n for (const [name, value] of headers.entries()) {\n lowercaseHeaders[name.toLowerCase()] = String(value);\n }\n return lowercaseHeaders;\n }\n for (const [name, value] of Object.entries(headers)) {\n lowercaseHeaders[name.toLowerCase()] = String(value);\n }\n return lowercaseHeaders;\n}\nfunction getRetryAfterInSeconds(headers) {\n if (!headers)\n return undefined;\n const lowercaseHeaders = convertHeaders(headers);\n const raw = lowercaseHeaders['retry-after'];\n if (!raw)\n return undefined;\n const seconds = parseInt(raw, 10);\n if (!Number.isFinite(seconds) || seconds < 0) {\n return undefined;\n }\n return Math.min(seconds, MAX_RETRY_AFTER_SECONDS);\n}\n/**\n * The Publisher is responsible for batching events and sending them to the Segment API.\n */\nclass Publisher {\n pendingFlushTimeout;\n _batch;\n _flushInterval;\n _flushAt;\n _maxRetries;\n _url;\n _flushPendingItemsCount;\n _httpRequestTimeout;\n _emitter;\n _disable;\n _httpClient;\n _writeKey;\n _basicAuth;\n _tokenManager;\n _maxTotalBackoffDuration;\n _maxRateLimitDuration;\n // Rate-limit state: set when a 429 is received, cleared on success or expiry\n _rateLimitedUntil;\n _rateLimitStartTime;\n _abortController = new AbortController();\n constructor({ host, path, maxRetries, flushAt, flushInterval, writeKey, httpRequestTimeout, httpClient, disable, oauthSettings, maxTotalBackoffDuration, maxRateLimitDuration, }, emitter) {\n this._emitter = emitter;\n this._maxRetries = maxRetries;\n this._flushAt = Math.max(flushAt, 1);\n this._flushInterval = flushInterval;\n this._url = (0, create_url_1.tryCreateFormattedUrl)(host ?? 'https://api.segment.io', path ?? '/v1/batch');\n this._httpRequestTimeout = httpRequestTimeout ?? 10000;\n this._disable = Boolean(disable);\n this._httpClient = httpClient;\n this._writeKey = writeKey;\n this._basicAuth = (0, base_64_encode_1.b64encode)(`${writeKey}:`);\n this._maxTotalBackoffDuration = maxTotalBackoffDuration ?? 43200;\n this._maxRateLimitDuration = maxRateLimitDuration ?? 43200;\n if (oauthSettings) {\n this._tokenManager = new token_manager_1.TokenManager({\n ...oauthSettings,\n httpClient: oauthSettings.httpClient ?? httpClient,\n maxRetries: oauthSettings.maxRetries ?? maxRetries,\n });\n }\n }\n abort() {\n this._abortController.abort(new Error('Flush timeout'));\n this._abortController = new AbortController();\n }\n createBatch() {\n this.pendingFlushTimeout && clearTimeout(this.pendingFlushTimeout);\n const batch = new context_batch_1.ContextBatch(this._flushAt);\n this._batch = batch;\n this.pendingFlushTimeout = setTimeout(() => {\n if (batch === this._batch) {\n this._batch = undefined;\n }\n this.pendingFlushTimeout = undefined;\n if (batch.length) {\n this.send(batch).catch(noop);\n }\n }, this._flushInterval);\n return batch;\n }\n clearBatch() {\n this.pendingFlushTimeout && clearTimeout(this.pendingFlushTimeout);\n this._batch = undefined;\n }\n flush(pendingItemsCount) {\n if (!pendingItemsCount) {\n // if number of pending items is 0, there will never be anything else entering the batch, since the app is closed.\n if (this._tokenManager) {\n this._tokenManager.stopPoller();\n }\n return;\n }\n this._flushPendingItemsCount = pendingItemsCount;\n // if batch is empty, there's nothing to flush, and when things come in, enqueue will handle them.\n if (!this._batch)\n return;\n // the number of globally pending items will always be larger or the same as batch size.\n // Any mismatch is because some globally pending items are in plugins.\n const isExpectingNoMoreItems = this._batch.length === pendingItemsCount;\n if (isExpectingNoMoreItems) {\n this.send(this._batch)\n .catch(noop)\n .finally(() => {\n // stop poller so program can exit ().\n if (this._tokenManager) {\n this._tokenManager.stopPoller();\n }\n });\n this.clearBatch();\n }\n }\n /**\n * Enqueues the context for future delivery.\n * @param ctx - Context containing a Segment event.\n * @returns a promise that resolves with the context after the event has been delivered.\n */\n enqueue(ctx) {\n const batch = this._batch ?? this.createBatch();\n const { promise: ctxPromise, resolve } = (0, analytics_generic_utils_1.createDeferred)();\n const pendingItem = {\n context: ctx,\n resolver: resolve,\n };\n /*\n The following logic ensures that a batch is never orphaned,\n and is always sent before a new batch is created.\n \n Add an event to the existing batch.\n Success: Check if batch is full or no more items are expected to come in (i.e. closing). If so, send batch.\n Failure: Assume event is too big to fit in current batch - send existing batch.\n Add an event to the new batch.\n Success: Check if batch is full and send if it is.\n Failure: Event exceeds maximum size (it will never fit), fail the event.\n */\n const addStatus = batch.tryAdd(pendingItem);\n if (addStatus.success) {\n const isExpectingNoMoreItems = batch.length === this._flushPendingItemsCount;\n const isFull = batch.length === this._flushAt;\n if (isFull || isExpectingNoMoreItems) {\n this.send(batch).catch(noop);\n this.clearBatch();\n }\n return ctxPromise;\n }\n // If the new item causes the maximimum event size to be exceeded, send the current batch and create a new one.\n if (batch.length) {\n this.send(batch).catch(noop);\n this.clearBatch();\n }\n const fallbackBatch = this.createBatch();\n const fbAddStatus = fallbackBatch.tryAdd(pendingItem);\n if (fbAddStatus.success) {\n const isExpectingNoMoreItems = fallbackBatch.length === this._flushPendingItemsCount;\n if (isExpectingNoMoreItems) {\n this.send(fallbackBatch).catch(noop);\n this.clearBatch();\n }\n return ctxPromise;\n }\n else {\n // this should only occur if max event size is exceeded\n ctx.setFailedDelivery({\n reason: new Error(fbAddStatus.message),\n });\n return Promise.resolve(ctx);\n }\n }\n _isRateLimited() {\n if (this._rateLimitedUntil === undefined)\n return false;\n // Check if maxRateLimitDuration has been exceeded.\n // Returns false so the caller can detect the cleared state and drop the batch.\n if (this._rateLimitStartTime !== undefined &&\n Date.now() - this._rateLimitStartTime >= this._maxRateLimitDuration * 1000) {\n this._rateLimitedUntil = undefined;\n this._rateLimitStartTime = undefined;\n return false;\n }\n if (Date.now() >= this._rateLimitedUntil) {\n // Rate limit window has elapsed, clear state and proceed\n this._rateLimitedUntil = undefined;\n // Keep rateLimitStartTime — it persists until success or maxRateLimitDuration\n return false;\n }\n return true;\n }\n _setRateLimitState(headers) {\n const retryAfterSeconds = getRetryAfterInSeconds(headers);\n if (typeof retryAfterSeconds === 'number') {\n // Enforce a minimum of 1 second to prevent tight loops on Retry-After: 0\n this._rateLimitedUntil =\n Date.now() + Math.max(retryAfterSeconds, 1) * 1000;\n }\n else {\n // No Retry-After header — use a default backoff of 60s\n this._rateLimitedUntil = Date.now() + 60000;\n }\n if (this._rateLimitStartTime === undefined) {\n this._rateLimitStartTime = Date.now();\n }\n }\n _clearRateLimitState() {\n this._rateLimitedUntil = undefined;\n this._rateLimitStartTime = undefined;\n }\n async send(batch) {\n if (this._flushPendingItemsCount) {\n this._flushPendingItemsCount -= batch.length;\n }\n const events = batch.getEvents();\n const maxRetries = this._maxRetries;\n const signal = this._abortController.signal;\n let countedRetries = 0;\n let totalAttempts = 0;\n let firstFailureTime;\n // eslint-disable-next-line no-constant-condition\n while (true) {\n if (signal.aborted) {\n resolveFailedBatch(batch, signal.reason);\n return;\n }\n // Check rate-limit state before making a request\n const wasRateLimited = this._rateLimitStartTime !== undefined;\n if (this._isRateLimited()) {\n const untilRetryAfter = Math.max(0, (this._rateLimitedUntil ?? Date.now()) - Date.now());\n const untilDurationLimit = this._rateLimitStartTime === undefined\n ? untilRetryAfter\n : Math.max(0, this._maxRateLimitDuration * 1000 -\n (Date.now() - this._rateLimitStartTime));\n const waitMs = Math.min(untilRetryAfter, untilDurationLimit);\n try {\n await sleep(waitMs, signal);\n }\n catch {\n resolveFailedBatch(batch, signal.reason);\n return;\n }\n continue;\n }\n // If we were rate-limited but _isRateLimited() now returns false with\n // cleared state, maxRateLimitDuration was exceeded — drop the batch.\n if (wasRateLimited && this._rateLimitStartTime === undefined) {\n resolveFailedBatch(batch, new Error('Rate limit duration exceeded'));\n return;\n }\n let failureReason;\n let shouldRetry = false;\n let shouldCountTowardsMaxRetries = true;\n try {\n if (this._disable) {\n return batch.resolveEvents();\n }\n let authString = undefined;\n if (this._tokenManager) {\n const token = await this._tokenManager.getAccessToken();\n if (token && token.access_token) {\n authString = `Bearer ${token.access_token}`;\n }\n }\n totalAttempts++;\n const headers = {\n 'Content-Type': 'application/json',\n 'User-Agent': 'analytics-node-next/latest',\n ...(totalAttempts > 1\n ? { 'X-Retry-Count': String(totalAttempts - 1) }\n : {}),\n // Prefer OAuth Bearer token when available; otherwise fall back to Basic auth with write key.\n ...(authString\n ? { Authorization: authString }\n : { Authorization: `Basic ${this._basicAuth}` }),\n };\n const request = {\n url: this._url,\n method: 'POST',\n headers: headers,\n body: JSON.stringify({\n batch: events,\n writeKey: this._writeKey,\n sentAt: new Date(),\n }),\n httpRequestTimeout: this._httpRequestTimeout,\n };\n this._emitter.emit('http_request', {\n body: request.body,\n method: request.method,\n url: request.url,\n headers: request.headers,\n });\n const response = await this._httpClient.makeRequest(request);\n this._emitter.emit('http_response', {\n status: response.status,\n statusText: response.statusText,\n url: request.url,\n body: request.body,\n headers: convertHeaders(response.headers),\n });\n // 2xx and 3xx are treated as successful delivery.\n if (response.status >= 200 && response.status < 400) {\n // Success — clear rate-limit state\n this._clearRateLimitState();\n batch.resolveEvents();\n return;\n }\n else if (this._tokenManager &&\n (response.status === 400 ||\n response.status === 401 ||\n response.status === 403 ||\n response.status === 511)) {\n // Clear OAuth token if we have OAuth data\n this._tokenManager.clearToken();\n }\n const status = response.status;\n const statusText = response.statusText;\n // 400 is always non-retriable (malformed request / size exceeded)\n if (status === 400) {\n // https://segment.com/docs/connections/sources/catalog/libraries/server/http-api/#max-request-size\n // Request either malformed or size exceeded - don't retry.\n resolveFailedBatch(batch, new Error(`[${status}] ${statusText}`));\n return;\n }\n failureReason = new Error(`[${status}] ${statusText}`);\n // 429: set rate-limit state, requeue batch, halt this flush iteration\n if (status === 429) {\n const retryAfterSeconds = getRetryAfterInSeconds(response.headers);\n if (typeof retryAfterSeconds === 'number') {\n // Has Retry-After header — set rate-limit state and retry without consuming maxRetries\n this._setRateLimitState(response.headers);\n shouldRetry = true;\n shouldCountTowardsMaxRetries = false;\n }\n else {\n // No Retry-After header — retry with backoff (counted)\n shouldRetry = true;\n shouldCountTowardsMaxRetries = true;\n }\n }\n // If we haven't already decided to retry based on 429 handling,\n // apply the general retry policy.\n if (!shouldRetry) {\n if (status >= 500 && status < 600) {\n // Retry all 5xx except 501 and 505.\n // 511 is retried only when a token manager is configured.\n if (status === 511 && this._tokenManager) {\n shouldRetry = true;\n }\n else if (![501, 505, 511].includes(status)) {\n shouldRetry = true;\n }\n }\n else if (status >= 400 && status < 500) {\n // 4xx are non-retriable except a specific allowlist.\n if ([408, 410, 429, 460].includes(status)) {\n shouldRetry = true;\n }\n else {\n resolveFailedBatch(batch, failureReason);\n return;\n }\n }\n else {\n // Treat other status codes as transient and retry.\n shouldRetry = true;\n }\n }\n }\n catch (err) {\n // Network errors get thrown, retry them.\n failureReason = err;\n shouldRetry = true;\n }\n if (!shouldRetry) {\n resolveFailedBatch(batch, failureReason);\n return;\n }\n // Track first failure time for counted retries (non-rate-limit backoff path)\n if (shouldCountTowardsMaxRetries) {\n if (!firstFailureTime)\n firstFailureTime = Date.now();\n if (Date.now() - firstFailureTime >\n this._maxTotalBackoffDuration * 1000) {\n resolveFailedBatch(batch, failureReason);\n return;\n }\n }\n if (shouldCountTowardsMaxRetries) {\n countedRetries++;\n if (countedRetries > maxRetries) {\n resolveFailedBatch(batch, failureReason);\n return;\n }\n }\n // Safety cap: prevent infinite retries when server keeps returning Retry-After\n if (totalAttempts > maxRetries + MAX_RETRY_AFTER_RETRIES) {\n resolveFailedBatch(batch, failureReason);\n return;\n }\n const delayMs = shouldCountTowardsMaxRetries\n ? (0, analytics_core_1.backoff)({\n attempt: countedRetries,\n minTimeout: 500,\n maxTimeout: 60000,\n })\n : 0;\n try {\n await sleep(delayMs, signal);\n }\n catch {\n resolveFailedBatch(batch, signal.reason);\n return;\n }\n }\n }\n}\nexports.Publisher = Publisher;\nfunction resolveFailedBatch(batch, reason) {\n batch.getContexts().forEach((ctx) => ctx.setFailedDelivery({ reason }));\n batch.resolveEvents();\n}\n//# sourceMappingURL=publisher.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.detectRuntime = void 0;\nconst detectRuntime = () => {\n if (typeof process === 'object' &&\n process &&\n typeof process.env === 'object' &&\n process.env &&\n typeof process.version === 'string') {\n return 'node';\n }\n if (typeof window === 'object') {\n return 'browser';\n }\n // @ts-ignore\n if (typeof WebSocketPair !== 'undefined') {\n return 'cloudflare-worker';\n }\n // @ts-ignore\n if (typeof EdgeRuntime === 'string') {\n return 'vercel-edge';\n }\n if (\n // @ts-ignore\n typeof WorkerGlobalScope !== 'undefined' &&\n // @ts-ignore\n typeof importScripts === 'function') {\n return 'web-worker';\n }\n return 'unknown';\n};\nexports.detectRuntime = detectRuntime;\n//# sourceMappingURL=env.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.createConfiguredNodePlugin = exports.createNodePlugin = void 0;\nconst publisher_1 = require(\"./publisher\");\nconst version_1 = require(\"../../generated/version\");\nconst env_1 = require(\"../../lib/env\");\nfunction normalizeEvent(ctx) {\n ctx.updateEvent('context.library.name', '@segment/analytics-node');\n ctx.updateEvent('context.library.version', version_1.version);\n const runtime = (0, env_1.detectRuntime)();\n if (runtime === 'node') {\n // eslint-disable-next-line no-restricted-globals\n ctx.updateEvent('_metadata.nodeVersion', process.version);\n }\n ctx.updateEvent('_metadata.jsRuntime', runtime);\n}\nfunction createNodePlugin(publisher) {\n function action(ctx) {\n normalizeEvent(ctx);\n return publisher.enqueue(ctx);\n }\n return {\n name: 'Segment.io',\n type: 'destination',\n version: '1.0.0',\n isLoaded: () => true,\n load: () => Promise.resolve(),\n alias: action,\n group: action,\n identify: action,\n page: action,\n screen: action,\n track: action,\n };\n}\nexports.createNodePlugin = createNodePlugin;\nconst createConfiguredNodePlugin = (props, emitter) => {\n const publisher = new publisher_1.Publisher(props, emitter);\n return {\n publisher: publisher,\n plugin: createNodePlugin(publisher),\n };\n};\nexports.createConfiguredNodePlugin = createConfiguredNodePlugin;\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.createMessageId = void 0;\nconst uuid_1 = require(\"./uuid\");\n/**\n * get a unique messageId with a very low chance of collisions\n * using @lukeed/uuid/secure uses the node crypto module, which is the fastest\n * @example \"node-next-1668208232027-743be593-7789-4b74-8078-cbcc8894c586\"\n */\nconst createMessageId = () => {\n return `node-next-${Date.now()}-${(0, uuid_1.uuid)()}`;\n};\nexports.createMessageId = createMessageId;\n//# sourceMappingURL=get-message-id.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.NodeEventFactory = void 0;\nconst analytics_core_1 = require(\"@segment/analytics-core\");\nconst get_message_id_1 = require(\"../lib/get-message-id\");\nclass NodeEventFactory extends analytics_core_1.CoreEventFactory {\n constructor() {\n super({\n createMessageId: get_message_id_1.createMessageId,\n onFinishedEvent: (event) => {\n (0, analytics_core_1.assertUserIdentity)(event);\n },\n });\n }\n}\nexports.NodeEventFactory = NodeEventFactory;\n//# sourceMappingURL=event-factory.js.map","\"use strict\";\n// create a derived class since we may want to add node specific things to Context later\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Context = void 0;\nconst analytics_core_1 = require(\"@segment/analytics-core\");\n// While this is not a type, it is a definition\nclass Context extends analytics_core_1.CoreContext {\n static system() {\n return new this({ type: 'track', event: 'system' });\n }\n}\nexports.Context = Context;\n//# sourceMappingURL=context.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.dispatchAndEmit = void 0;\nconst analytics_core_1 = require(\"@segment/analytics-core\");\nconst context_1 = require(\"./context\");\nconst normalizeDispatchCb = (cb) => (ctx) => {\n const failedDelivery = ctx.failedDelivery();\n return failedDelivery ? cb(failedDelivery.reason, ctx) : cb(undefined, ctx);\n};\n/* Dispatch function, but swallow promise rejections and use event emitter instead */\nconst dispatchAndEmit = async (event, queue, emitter, callback) => {\n try {\n const context = new context_1.Context(event);\n const ctx = await (0, analytics_core_1.dispatch)(context, queue, emitter, {\n ...(callback ? { callback: normalizeDispatchCb(callback) } : {}),\n });\n const failedDelivery = ctx.failedDelivery();\n if (failedDelivery) {\n emitter.emit('error', {\n code: 'delivery_failure',\n reason: failedDelivery.reason,\n ctx: ctx,\n });\n }\n else {\n emitter.emit(event.type, ctx);\n }\n }\n catch (err) {\n emitter.emit('error', {\n code: 'unknown',\n reason: err,\n });\n }\n};\nexports.dispatchAndEmit = dispatchAndEmit;\n//# sourceMappingURL=dispatch-emit.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.NodeEmitter = void 0;\nconst analytics_generic_utils_1 = require(\"@segment/analytics-generic-utils\");\nclass NodeEmitter extends analytics_generic_utils_1.Emitter {\n}\nexports.NodeEmitter = NodeEmitter;\n//# sourceMappingURL=emitter.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.NodeEventQueue = void 0;\nconst analytics_core_1 = require(\"@segment/analytics-core\");\nclass NodePriorityQueue extends analytics_core_1.PriorityQueue {\n constructor() {\n super(1, []);\n }\n // do not use an internal \"seen\" map\n getAttempts(ctx) {\n return ctx.attempts ?? 0;\n }\n updateAttempts(ctx) {\n ctx.attempts = this.getAttempts(ctx) + 1;\n return this.getAttempts(ctx);\n }\n}\nclass NodeEventQueue extends analytics_core_1.CoreEventQueue {\n constructor() {\n super(new NodePriorityQueue());\n }\n}\nexports.NodeEventQueue = NodeEventQueue;\n//# sourceMappingURL=event-queue.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.abortSignalAfterTimeout = exports.AbortController = exports.AbortSignal = void 0;\n/**\n * use non-native event emitter for the benefit of non-node runtimes like CF workers.\n */\nconst analytics_generic_utils_1 = require(\"@segment/analytics-generic-utils\");\nconst env_1 = require(\"./env\");\n/**\n * adapted from: https://www.npmjs.com/package/node-abort-controller\n */\nclass AbortSignal {\n onabort = null;\n aborted = false;\n eventEmitter = new analytics_generic_utils_1.Emitter();\n toString() {\n return '[object AbortSignal]';\n }\n get [Symbol.toStringTag]() {\n return 'AbortSignal';\n }\n removeEventListener(...args) {\n this.eventEmitter.off(...args);\n }\n addEventListener(...args) {\n this.eventEmitter.on(...args);\n }\n dispatchEvent(type) {\n const event = { type, target: this };\n const handlerName = `on${type}`;\n if (typeof this[handlerName] === 'function') {\n ;\n this[handlerName](event);\n }\n this.eventEmitter.emit(type, event);\n }\n}\nexports.AbortSignal = AbortSignal;\n/**\n * This polyfill is only neccessary to support versions of node < 14.17.\n * Can be removed once node 14 support is dropped.\n */\nclass AbortController {\n signal = new AbortSignal();\n abort() {\n if (this.signal.aborted)\n return;\n this.signal.aborted = true;\n this.signal.dispatchEvent('abort');\n }\n toString() {\n return '[object AbortController]';\n }\n get [Symbol.toStringTag]() {\n return 'AbortController';\n }\n}\nexports.AbortController = AbortController;\n/**\n * @param timeoutMs - Set a request timeout, after which the request is cancelled.\n */\nconst abortSignalAfterTimeout = (timeoutMs) => {\n if ((0, env_1.detectRuntime)() === 'cloudflare-worker') {\n return []; // TODO: this is broken in cloudflare workers, otherwise results in \"A hanging Promise was canceled...\" error.\n }\n const ac = new (globalThis.AbortController || AbortController)();\n const timeoutId = setTimeout(() => {\n ac.abort();\n }, timeoutMs);\n // Allow Node.js processes to exit early if only the timeout is running\n timeoutId?.unref?.();\n return [ac.signal, timeoutId];\n};\nexports.abortSignalAfterTimeout = abortSignalAfterTimeout;\n//# sourceMappingURL=abort.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.fetch = void 0;\nconst fetch = (...args) => {\n return globalThis.fetch(...args);\n};\nexports.fetch = fetch;\n//# sourceMappingURL=fetch.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.FetchHTTPClient = void 0;\nconst abort_1 = require(\"./abort\");\nconst fetch_1 = require(\"./fetch\");\n/**\n * Default HTTP client implementation using fetch\n */\nclass FetchHTTPClient {\n _fetch;\n constructor(fetchFn) {\n this._fetch = fetchFn ?? fetch_1.fetch;\n }\n async makeRequest(options) {\n const [signal, timeoutId] = (0, abort_1.abortSignalAfterTimeout)(options.httpRequestTimeout);\n const requestInit = {\n url: options.url,\n method: options.method,\n headers: options.headers,\n body: options.body,\n signal: signal,\n };\n return this._fetch(options.url, requestInit).finally(() => clearTimeout(timeoutId));\n }\n}\nexports.FetchHTTPClient = FetchHTTPClient;\n//# sourceMappingURL=http-client.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Analytics = void 0;\nconst analytics_core_1 = require(\"@segment/analytics-core\");\nconst settings_1 = require(\"./settings\");\nconst version_1 = require(\"../generated/version\");\nconst segmentio_1 = require(\"../plugins/segmentio\");\nconst event_factory_1 = require(\"./event-factory\");\nconst dispatch_emit_1 = require(\"./dispatch-emit\");\nconst emitter_1 = require(\"./emitter\");\nconst context_1 = require(\"./context\");\nconst event_queue_1 = require(\"./event-queue\");\nconst http_client_1 = require(\"../lib/http-client\");\nclass Analytics extends emitter_1.NodeEmitter {\n _eventFactory;\n _isClosed = false;\n _pendingEvents = 0;\n _closeAndFlushDefaultTimeout;\n _publisher;\n _isFlushing = false;\n _queue;\n ready;\n constructor(settings) {\n super();\n (0, settings_1.validateSettings)(settings);\n this._eventFactory = new event_factory_1.NodeEventFactory();\n this._queue = new event_queue_1.NodeEventQueue();\n const flushInterval = settings.flushInterval ?? 10000;\n this._closeAndFlushDefaultTimeout = Math.max(60000, flushInterval) * 1.25;\n const { plugin, publisher } = (0, segmentio_1.createConfiguredNodePlugin)({\n writeKey: settings.writeKey,\n host: settings.host,\n path: settings.path,\n maxRetries: settings.maxRetries ?? 10,\n flushAt: settings.flushAt ?? settings.maxEventsInBatch ?? 15,\n httpRequestTimeout: settings.httpRequestTimeout,\n disable: settings.disable,\n flushInterval,\n httpClient: typeof settings.httpClient === 'function'\n ? new http_client_1.FetchHTTPClient(settings.httpClient)\n : settings.httpClient ?? new http_client_1.FetchHTTPClient(),\n oauthSettings: settings.oauthSettings,\n maxTotalBackoffDuration: settings.maxTotalBackoffDuration,\n maxRateLimitDuration: settings.maxRateLimitDuration,\n }, this);\n this._publisher = publisher;\n this.ready = this.register(plugin).then(() => undefined);\n this.emit('initialize', settings);\n (0, analytics_core_1.bindAll)(this);\n }\n get VERSION() {\n return version_1.version;\n }\n /**\n * Call this method to stop collecting new events and flush all existing events.\n * This method also waits for any event method-specific callbacks to be triggered,\n * and any of their subsequent promises to be resolved/rejected.\n */\n closeAndFlush({ timeout = this._closeAndFlushDefaultTimeout, } = {}) {\n return this.flush({ timeout, close: true });\n }\n /**\n * Call this method to flush all existing events..\n * This method also waits for any event method-specific callbacks to be triggered,\n * and any of their subsequent promises to be resolved/rejected.\n */\n async flush({ timeout, close = false, } = {}) {\n if (this._isFlushing) {\n // if we're already flushing, then we don't need to do anything\n console.warn('Overlapping flush calls detected. Please wait for the previous flush to finish before calling .flush again');\n return;\n }\n else {\n this._isFlushing = true;\n }\n if (close) {\n this._isClosed = true;\n }\n this._publisher.flush(this._pendingEvents);\n const promise = new Promise((resolve) => {\n if (!this._pendingEvents) {\n resolve();\n }\n else {\n this.once('drained', () => {\n resolve();\n });\n }\n }).finally(() => {\n this._isFlushing = false;\n });\n if (!timeout)\n return promise;\n return (0, analytics_core_1.pTimeout)(promise, timeout).catch(() => {\n this._publisher.abort();\n });\n }\n _dispatch(segmentEvent, callback) {\n if (this._isClosed) {\n this.emit('call_after_close', segmentEvent);\n return undefined;\n }\n this._pendingEvents++;\n (0, dispatch_emit_1.dispatchAndEmit)(segmentEvent, this._queue, this, callback)\n .catch((ctx) => ctx)\n .finally(() => {\n this._pendingEvents--;\n if (!this._pendingEvents) {\n this.emit('drained');\n }\n });\n }\n /**\n * Combines two unassociated user identities.\n * @link https://segment.com/docs/connections/sources/catalog/libraries/server/node/#alias\n */\n alias({ userId, previousId, context, timestamp, integrations, messageId, }, callback) {\n const segmentEvent = this._eventFactory.alias(userId, previousId, {\n context,\n integrations,\n timestamp,\n messageId,\n });\n this._dispatch(segmentEvent, callback);\n }\n /**\n * Associates an identified user with a collective.\n * @link https://segment.com/docs/connections/sources/catalog/libraries/server/node/#group\n */\n group({ timestamp, groupId, userId, anonymousId, traits = {}, context, integrations, messageId, }, callback) {\n const segmentEvent = this._eventFactory.group(groupId, traits, {\n context,\n anonymousId,\n userId,\n timestamp,\n integrations,\n messageId,\n });\n this._dispatch(segmentEvent, callback);\n }\n /**\n * Includes a unique userId and (maybe anonymousId) and any optional traits you know about them.\n * @link https://segment.com/docs/connections/sources/catalog/libraries/server/node/#identify\n */\n identify({ userId, anonymousId, traits = {}, context, timestamp, integrations, messageId, }, callback) {\n const segmentEvent = this._eventFactory.identify(userId, traits, {\n context,\n anonymousId,\n userId,\n timestamp,\n integrations,\n messageId,\n });\n this._dispatch(segmentEvent, callback);\n }\n /**\n * The page method lets you record page views on your website, along with optional extra information about the page being viewed.\n * @link https://segment.com/docs/connections/sources/catalog/libraries/server/node/#page\n */\n page({ userId, anonymousId, category, name, properties, context, timestamp, integrations, messageId, }, callback) {\n const segmentEvent = this._eventFactory.page(category ?? null, name ?? null, properties, { context, anonymousId, userId, timestamp, integrations, messageId });\n this._dispatch(segmentEvent, callback);\n }\n /**\n * Records screen views on your app, along with optional extra information\n * about the screen viewed by the user.\n *\n * TODO: This is not documented on the segment docs ATM (for node).\n */\n screen({ userId, anonymousId, category, name, properties, context, timestamp, integrations, messageId, }, callback) {\n const segmentEvent = this._eventFactory.screen(category ?? null, name ?? null, properties, { context, anonymousId, userId, timestamp, integrations, messageId });\n this._dispatch(segmentEvent, callback);\n }\n /**\n * Records actions your users perform.\n * @link https://segment.com/docs/connections/sources/catalog/libraries/server/node/#track\n */\n track({ userId, anonymousId, event, properties, context, timestamp, integrations, messageId, }, callback) {\n const segmentEvent = this._eventFactory.track(event, properties, {\n context,\n userId,\n anonymousId,\n timestamp,\n integrations,\n messageId,\n });\n this._dispatch(segmentEvent, callback);\n }\n /**\n * Registers one or more plugins to augment Analytics functionality.\n * @param plugins\n */\n register(...plugins) {\n return this._queue.criticalTasks.run(async () => {\n const ctx = context_1.Context.system();\n const registrations = plugins.map((xt) => this._queue.register(ctx, xt, this));\n await Promise.all(registrations);\n this.emit('register', plugins.map((el) => el.name));\n });\n }\n /**\n * Deregisters one or more plugins based on their names.\n * @param pluginNames - The names of one or more plugins to deregister.\n */\n async deregister(...pluginNames) {\n const ctx = context_1.Context.system();\n const deregistrations = pluginNames.map((pl) => {\n const plugin = this._queue.plugins.find((p) => p.name === pl);\n if (plugin) {\n return this._queue.deregister(ctx, plugin, this);\n }\n else {\n ctx.log('warn', `plugin ${pl} not found`);\n }\n });\n await Promise.all(deregistrations);\n this.emit('deregister', pluginNames);\n }\n}\nexports.Analytics = Analytics;\n//# sourceMappingURL=analytics-node.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.FetchHTTPClient = exports.Context = exports.Analytics = void 0;\nvar analytics_node_1 = require(\"./app/analytics-node\");\nObject.defineProperty(exports, \"Analytics\", { enumerable: true, get: function () { return analytics_node_1.Analytics; } });\nvar context_1 = require(\"./app/context\");\nObject.defineProperty(exports, \"Context\", { enumerable: true, get: function () { return context_1.Context; } });\nvar http_client_1 = require(\"./lib/http-client\");\nObject.defineProperty(exports, \"FetchHTTPClient\", { enumerable: true, get: function () { return http_client_1.FetchHTTPClient; } });\n//# sourceMappingURL=index.common.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst tslib_1 = require(\"tslib\");\ntslib_1.__exportStar(require(\"./index.common\"), exports);\n// export Analytics as both a named export and a default export (for backwards-compat. reasons)\nconst index_common_1 = require(\"./index.common\");\nexports.default = index_common_1.Analytics;\n//# sourceMappingURL=index.js.map"],"x_google_ignoreList":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134],"mappings":"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"}
|