@blade-hq/agent-react 2610.0.0-beta.8 → 2610.0.0-beta.81

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.
Files changed (70) hide show
  1. package/README.md +313 -8
  2. package/dist/chunk-G3PMV62Z.js +36 -0
  3. package/dist/components/AgentChat.d.ts +3 -0
  4. package/dist/components/AgentLoopBlock.d.ts +3 -5
  5. package/dist/components/AgentTaskCard.d.ts +12 -0
  6. package/dist/components/AskUserQuestionBlock.d.ts +12 -1
  7. package/dist/components/AssistantTurnBlock.d.ts +26 -8
  8. package/dist/components/ChatInput.d.ts +21 -1
  9. package/dist/components/ChatSurface.d.ts +133 -2
  10. package/dist/components/ChatView.d.ts +1 -1
  11. package/dist/components/ConnectorPanel.d.ts +41 -0
  12. package/dist/components/ContextCard.d.ts +20 -0
  13. package/dist/components/MarkdownContent.d.ts +17 -0
  14. package/dist/components/McpAppCard.d.ts +14 -0
  15. package/dist/components/MessageList.d.ts +38 -4
  16. package/dist/components/PlanUpdateBlock.d.ts +32 -0
  17. package/dist/components/PluginConnectorList.d.ts +47 -0
  18. package/dist/components/PluginTriggerStack.d.ts +22 -0
  19. package/dist/components/PostChatFollowupBlock.d.ts +5 -1
  20. package/dist/components/SessionMemoryToggle.d.ts +19 -0
  21. package/dist/components/SessionPluginConfigDialog.d.ts +10 -0
  22. package/dist/components/SessionPluginConfigForm.d.ts +14 -0
  23. package/dist/components/SessionPluginIcon.d.ts +30 -0
  24. package/dist/components/SessionPluginSelector.d.ts +10 -0
  25. package/dist/components/SessionQueuePanel.d.ts +74 -0
  26. package/dist/components/ToolCallBlock.d.ts +9 -3
  27. package/dist/components/ToolUiCardView.d.ts +9 -0
  28. package/dist/components/TurnNavRail.d.ts +23 -0
  29. package/dist/components/UserMessageBubble.d.ts +7 -3
  30. package/dist/components/WhatIfUserBubble.d.ts +7 -0
  31. package/dist/components/connector-panel-types.d.ts +37 -0
  32. package/dist/components/display-utils.d.ts +10 -0
  33. package/dist/components/markdown/heal-incomplete.d.ts +7 -0
  34. package/dist/components/markdown/incremental.d.ts +73 -0
  35. package/dist/components/markdown/index.d.ts +18 -0
  36. package/dist/components/markdown/parse.d.ts +19 -0
  37. package/dist/components/markdown/render.d.ts +79 -0
  38. package/dist/components/markdown/sanitize.d.ts +50 -0
  39. package/dist/components/markdown/types.d.ts +53 -0
  40. package/dist/components/plugin-config-draft.d.ts +13 -0
  41. package/dist/components/plugin-config-schema.d.ts +6 -0
  42. package/dist/components/plugin-connector.d.ts +40 -0
  43. package/dist/components/queue-panel-adjacency.d.ts +1 -0
  44. package/dist/components/use-session-plugin-activation.d.ts +40 -0
  45. package/dist/context.d.ts +1 -0
  46. package/dist/embed/blade-chat-element.d.ts +4 -3
  47. package/dist/embed/entry.d.ts +50 -0
  48. package/dist/hooks/use-agent-session.d.ts +5 -0
  49. package/dist/hooks/use-message-pin.d.ts +28 -0
  50. package/dist/hooks/use-turn-navigation.d.ts +117 -0
  51. package/dist/hooks/use-typewriter-reveal.d.ts +32 -0
  52. package/dist/index.d.ts +53 -1
  53. package/dist/index.js +58276 -2243
  54. package/dist/index.js.map +1 -1
  55. package/dist/lib/agent-computer-command.d.ts +34 -0
  56. package/dist/lib/random-id.d.ts +10 -0
  57. package/dist/lib/utils.d.ts +17 -2
  58. package/dist/lib/whatif-prompt.d.ts +18 -0
  59. package/dist/style.css +506 -401
  60. package/dist/style.full.css +517 -405
  61. package/dist/webapi-W3IB5DO4.js +2481 -0
  62. package/dist/webapi-W3IB5DO4.js.map +1 -0
  63. package/package.json +2 -2
  64. package/public-api.md +1762 -67
  65. package/dist/chunk-ZXXLY4RM.js +0 -28255
  66. package/dist/chunk-ZXXLY4RM.js.map +0 -1
  67. package/dist/highlighted-body-B3W2YXNL-YD7FAP6V.js +0 -27
  68. package/dist/highlighted-body-B3W2YXNL-YD7FAP6V.js.map +0 -1
  69. package/dist/mermaid-3ZIDBTTL-N7YKJ3SM.js +0 -8
  70. /package/dist/{mermaid-3ZIDBTTL-N7YKJ3SM.js.map → chunk-G3PMV62Z.js.map} +0 -0
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../node_modules/.pnpm/jose@6.2.12/node_modules/jose/dist/webapi/lib/buffer_utils.js","../../../node_modules/.pnpm/jose@6.2.12/node_modules/jose/dist/webapi/util/errors.js","../../../node_modules/.pnpm/jose@6.2.12/node_modules/jose/dist/webapi/util/base64url.js","../../../node_modules/.pnpm/jose@6.2.12/node_modules/jose/dist/webapi/lib/validate.js","../../../node_modules/.pnpm/jose@6.2.12/node_modules/jose/dist/webapi/lib/key.js","../../../node_modules/.pnpm/jose@6.2.12/node_modules/jose/dist/webapi/lib/content_encryption.js","../../../node_modules/.pnpm/jose@6.2.12/node_modules/jose/dist/webapi/lib/key_descriptor.js","../../../node_modules/.pnpm/jose@6.2.12/node_modules/jose/dist/webapi/lib/jwe_algorithms.js","../../../node_modules/.pnpm/jose@6.2.12/node_modules/jose/dist/webapi/lib/key_management.js","../../../node_modules/.pnpm/jose@6.2.12/node_modules/jose/dist/webapi/lib/deflate.js","../../../node_modules/.pnpm/jose@6.2.12/node_modules/jose/dist/webapi/lib/jwe_decrypt.js","../../../node_modules/.pnpm/jose@6.2.12/node_modules/jose/dist/webapi/jwe/compact/decrypt.js","../../../node_modules/.pnpm/jose@6.2.12/node_modules/jose/dist/webapi/jwe/flattened/decrypt.js","../../../node_modules/.pnpm/jose@6.2.12/node_modules/jose/dist/webapi/jwe/general/decrypt.js","../../../node_modules/.pnpm/jose@6.2.12/node_modules/jose/dist/webapi/lib/jwe_encrypt.js","../../../node_modules/.pnpm/jose@6.2.12/node_modules/jose/dist/webapi/jwe/general/encrypt.js","../../../node_modules/.pnpm/jose@6.2.12/node_modules/jose/dist/webapi/lib/jws_algorithms.js","../../../node_modules/.pnpm/jose@6.2.12/node_modules/jose/dist/webapi/lib/jws_verify.js","../../../node_modules/.pnpm/jose@6.2.12/node_modules/jose/dist/webapi/jws/compact/verify.js","../../../node_modules/.pnpm/jose@6.2.12/node_modules/jose/dist/webapi/jws/flattened/verify.js","../../../node_modules/.pnpm/jose@6.2.12/node_modules/jose/dist/webapi/jws/general/verify.js","../../../node_modules/.pnpm/jose@6.2.12/node_modules/jose/dist/webapi/lib/jwt_claims_set.js","../../../node_modules/.pnpm/jose@6.2.12/node_modules/jose/dist/webapi/jwt/verify.js","../../../node_modules/.pnpm/jose@6.2.12/node_modules/jose/dist/webapi/jwt/decrypt.js","../../../node_modules/.pnpm/jose@6.2.12/node_modules/jose/dist/webapi/jwe/compact/encrypt.js","../../../node_modules/.pnpm/jose@6.2.12/node_modules/jose/dist/webapi/jwe/flattened/encrypt.js","../../../node_modules/.pnpm/jose@6.2.12/node_modules/jose/dist/webapi/lib/jws_sign.js","../../../node_modules/.pnpm/jose@6.2.12/node_modules/jose/dist/webapi/jws/compact/sign.js","../../../node_modules/.pnpm/jose@6.2.12/node_modules/jose/dist/webapi/jws/flattened/sign.js","../../../node_modules/.pnpm/jose@6.2.12/node_modules/jose/dist/webapi/jws/general/sign.js","../../../node_modules/.pnpm/jose@6.2.12/node_modules/jose/dist/webapi/jwt/sign.js","../../../node_modules/.pnpm/jose@6.2.12/node_modules/jose/dist/webapi/jwt/encrypt.js","../../../node_modules/.pnpm/jose@6.2.12/node_modules/jose/dist/webapi/lib/key_algorithm.js","../../../node_modules/.pnpm/jose@6.2.12/node_modules/jose/dist/webapi/lib/asn1.js","../../../node_modules/.pnpm/jose@6.2.12/node_modules/jose/dist/webapi/key/export.js","../../../node_modules/.pnpm/jose@6.2.12/node_modules/jose/dist/webapi/jwk/thumbprint.js","../../../node_modules/.pnpm/jose@6.2.12/node_modules/jose/dist/webapi/jwk/embedded.js","../../../node_modules/.pnpm/jose@6.2.12/node_modules/jose/dist/webapi/jwks/local.js","../../../node_modules/.pnpm/jose@6.2.12/node_modules/jose/dist/webapi/jwks/remote.js","../../../node_modules/.pnpm/jose@6.2.12/node_modules/jose/dist/webapi/jwt/unsecured.js","../../../node_modules/.pnpm/jose@6.2.12/node_modules/jose/dist/webapi/key/import.js","../../../node_modules/.pnpm/jose@6.2.12/node_modules/jose/dist/webapi/util/decode_protected_header.js","../../../node_modules/.pnpm/jose@6.2.12/node_modules/jose/dist/webapi/util/decode_jwt.js","../../../node_modules/.pnpm/jose@6.2.12/node_modules/jose/dist/webapi/key/generate_key_pair.js","../../../node_modules/.pnpm/jose@6.2.12/node_modules/jose/dist/webapi/key/generate_secret.js","../../../node_modules/.pnpm/jose@6.2.12/node_modules/jose/dist/webapi/index.js"],"sourcesContent":["const encoder = new TextEncoder(), decoder = new TextDecoder(), strictDecoder = new TextDecoder(\"utf-8\", { fatal: !0 }), MAX_INT32 = 2 ** 32;\nfunction concat(...buffers) {\n const size = buffers.reduce((acc, { length }) => acc + length, 0), buf = new Uint8Array(size);\n let i = 0;\n for (const buffer of buffers)\n buf.set(buffer, i), i += buffer.length;\n return buf;\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 buf.set([value >>> 24, value >>> 16, value >>> 8, value & 255], offset);\n}\nfunction uint64be(value) {\n const high = Math.floor(value / MAX_INT32), low = value % MAX_INT32, buf = new Uint8Array(8);\n return writeUInt32BE(buf, high, 0), writeUInt32BE(buf, low, 4), buf;\n}\nfunction uint32be(value) {\n const buf = new Uint8Array(4);\n return writeUInt32BE(buf, value), buf;\n}\nconst NON_ASCII = /[^\\x00-\\x7f]/;\nfunction encode(string) {\n if (typeof string == \"string\" && string.length >= 128) {\n if (NON_ASCII.test(string))\n throw new TypeError(\"non-ASCII string encountered in encode()\");\n return encoder.encode(string);\n }\n const bytes = new Uint8Array(string.length);\n for (let i = 0; i < string.length; i++) {\n const code = string.charCodeAt(i);\n if (code > 127)\n throw new TypeError(\"non-ASCII string encountered in encode()\");\n bytes[i] = code;\n }\n return bytes;\n}\nfunction encodeBase64(input, url = !1) {\n if (Uint8Array.prototype.toBase64)\n return input.toBase64({ alphabet: url ? \"base64url\" : \"base64\", omitPadding: url });\n const CHUNK_SIZE = 32768, arr = [];\n for (let i = 0; i < input.length; i += CHUNK_SIZE)\n arr.push(String.fromCharCode.apply(null, input.subarray(i, i + CHUNK_SIZE)));\n const encoded = btoa(arr.join(\"\"));\n return url ? encoded.replace(/=/g, \"\").replace(/\\+/g, \"-\").replace(/\\//g, \"_\") : encoded;\n}\nfunction decodeBase64(encoded, url = !1) {\n if (Uint8Array.fromBase64)\n return Uint8Array.fromBase64(encoded, { alphabet: url ? \"base64url\" : \"base64\" });\n if (url) {\n if (encoded.includes(\"+\") || encoded.includes(\"/\"))\n throw new TypeError(\"Invalid base64url\");\n encoded = encoded.replace(/-/g, \"+\").replace(/_/g, \"/\");\n }\n const binary = atob(encoded), bytes = new Uint8Array(binary.length);\n for (let i = 0; i < binary.length; i++)\n bytes[i] = binary.charCodeAt(i);\n return bytes;\n}\nasync function digest(algorithm, data) {\n const subtleDigest = `SHA-${algorithm.slice(-3)}`;\n return new Uint8Array(await crypto.subtle.digest(subtleDigest, data));\n}\nexport {\n concat,\n decodeBase64,\n decoder,\n digest,\n encode,\n encodeBase64,\n encoder,\n strictDecoder,\n uint32be,\n uint64be\n};\n","class JOSEError extends Error {\n static code = \"ERR_JOSE_GENERIC\";\n code = \"ERR_JOSE_GENERIC\";\n constructor(message, options) {\n super(message, options), this.name = this.constructor.name, Error.captureStackTrace?.(this, this.constructor);\n }\n}\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 } }), this.claim = claim, this.reason = reason, this.payload = payload;\n }\n}\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 } }), this.claim = claim, this.reason = reason, this.payload = payload;\n }\n}\nclass JOSEAlgNotAllowed extends JOSEError {\n static code = \"ERR_JOSE_ALG_NOT_ALLOWED\";\n code = \"ERR_JOSE_ALG_NOT_ALLOWED\";\n}\nclass JOSENotSupported extends JOSEError {\n static code = \"ERR_JOSE_NOT_SUPPORTED\";\n code = \"ERR_JOSE_NOT_SUPPORTED\";\n}\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}\nclass JWEInvalid extends JOSEError {\n static code = \"ERR_JWE_INVALID\";\n code = \"ERR_JWE_INVALID\";\n}\nclass JWSInvalid extends JOSEError {\n static code = \"ERR_JWS_INVALID\";\n code = \"ERR_JWS_INVALID\";\n}\nclass JWTInvalid extends JOSEError {\n static code = \"ERR_JWT_INVALID\";\n code = \"ERR_JWT_INVALID\";\n}\nclass JWKInvalid extends JOSEError {\n static code = \"ERR_JWK_INVALID\";\n code = \"ERR_JWK_INVALID\";\n}\nclass JWKSInvalid extends JOSEError {\n static code = \"ERR_JWKS_INVALID\";\n code = \"ERR_JWKS_INVALID\";\n}\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}\nclass JWKSMultipleMatchingKeys extends JOSEError {\n [Symbol.asyncIterator] = async function* () {\n };\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}\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}\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}\nexport {\n JOSEAlgNotAllowed,\n JOSEError,\n JOSENotSupported,\n JWEDecryptionFailed,\n JWEInvalid,\n JWKInvalid,\n JWKSInvalid,\n JWKSMultipleMatchingKeys,\n JWKSNoMatchingKey,\n JWKSTimeout,\n JWSInvalid,\n JWSSignatureVerificationFailed,\n JWTClaimValidationFailed,\n JWTExpired,\n JWTInvalid\n};\n","import { encoder, decoder, encodeBase64, decodeBase64 } from \"../lib/buffer_utils.js\";\nconst invalid = \"The input to be decoded is not correctly encoded.\";\nfunction decode(input) {\n try {\n return decodeBase64(typeof input == \"string\" ? input : decoder.decode(input), !0);\n } catch (cause) {\n throw new TypeError(invalid, { cause });\n }\n}\nfunction encode(input) {\n return encodeBase64(typeof input == \"string\" ? encoder.encode(input) : input, !0);\n}\nexport {\n decode,\n encode\n};\n","import { JOSENotSupported, JWSInvalid } from \"../util/errors.js\";\nimport { decode } from \"../util/base64url.js\";\nimport { encode, strictDecoder } from \"./buffer_utils.js\";\nfunction assertUint8Array(input, label) {\n if (!(input instanceof Uint8Array))\n throw new TypeError(`${label} must be an instance of Uint8Array`);\n}\nfunction isObject(input) {\n if (typeof input != \"object\" || input === null || Object.prototype.toString.call(input) !== \"[object Object]\")\n return !1;\n const prototype = Object.getPrototypeOf(input);\n return prototype === null || Object.getPrototypeOf(prototype) === null;\n}\nfunction isJwkSet(input) {\n return isObject(input) && Array.isArray(input.keys) && Array.from(input.keys).every(isObject);\n}\nfunction isDisjoint(...headers) {\n const parameters = /* @__PURE__ */ new Set();\n for (const header of headers)\n if (header)\n for (const parameter of Object.keys(header)) {\n if (parameters.has(parameter))\n return !1;\n parameters.add(parameter);\n }\n return !0;\n}\nfunction assertNotSet(value, name) {\n if (value !== void 0)\n throw new TypeError(`${name} can only be called once`);\n}\nfunction decodeBase64url(value, label, ErrorClass) {\n try {\n return decode(value);\n } catch {\n throw new ErrorClass(`Failed to base64url decode the ${label}`);\n }\n}\nfunction encodeBase64url(value, label, ErrorClass) {\n try {\n return encode(value);\n } catch {\n throw new ErrorClass(`The ${label} is not a valid base64url string`);\n }\n}\nfunction parseJoseHeader(b64, ErrorClass, message) {\n let parsed;\n try {\n parsed = JSON.parse(strictDecoder.decode(decode(b64)));\n } catch {\n throw new ErrorClass(message);\n }\n if (!isObject(parsed))\n throw new ErrorClass(message);\n return parsed;\n}\nconst JWS_RECOGNIZED = { __proto__: null, b64: !0 }, JWE_RECOGNIZED = { __proto__: null };\nfunction validateAlgorithms(option, algorithms) {\n if (algorithms !== void 0 && (!Array.isArray(algorithms) || algorithms.some((s) => typeof s != \"string\")))\n throw new TypeError(`\"${option}\" option must be an array of strings`);\n return algorithms === void 0 ? void 0 : new Set(algorithms);\n}\nfunction validateCritDuplicates(Err, protectedHeader) {\n const { crit } = protectedHeader ?? {};\n if (Array.isArray(crit) && new Set(crit).size !== crit.length)\n throw new Err('\"crit\" (Critical) Header Parameter MUST NOT contain duplicate values');\n}\nfunction validateCrit(Err, recognizedDefault, recognizedOption, protectedHeader, joseHeader) {\n if (joseHeader.crit !== void 0 && protectedHeader?.crit === void 0)\n throw new Err('\"crit\" (Critical) Header Parameter MUST be integrity protected');\n if (!protectedHeader || protectedHeader.crit === void 0)\n return [];\n if (!Array.isArray(protectedHeader.crit) || protectedHeader.crit.length === 0 || 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 const recognized = recognizedOption === void 0 ? recognizedDefault : { __proto__: null, ...recognizedOption, ...recognizedDefault };\n for (const parameter of protectedHeader.crit) {\n if (!(parameter in recognized))\n throw new JOSENotSupported(`Extension Header Parameter \"${parameter}\" is not recognized`);\n if (!Object.hasOwn(joseHeader, parameter) || joseHeader[parameter] === void 0)\n throw new Err(`Extension Header Parameter \"${parameter}\" is missing`);\n if (recognized[parameter] && (!Object.hasOwn(protectedHeader, parameter) || protectedHeader[parameter] === void 0))\n throw new Err(`Extension Header Parameter \"${parameter}\" MUST be integrity protected`);\n }\n return protectedHeader.crit;\n}\nfunction validateB64(protectedHeader, extensions) {\n if (extensions.includes(\"b64\")) {\n const b64 = protectedHeader.b64;\n if (typeof b64 != \"boolean\")\n throw new JWSInvalid('The \"b64\" (base64url-encode payload) Header Parameter must be a boolean');\n return b64;\n }\n return !0;\n}\nfunction serializeJoseHeader(Err, header) {\n let serialized, parsed;\n try {\n serialized = JSON.stringify(header), parsed = JSON.parse(serialized);\n } catch (cause) {\n throw new Err(\"JOSE Header is not valid JSON\", { cause });\n }\n if (!isObject(parsed))\n throw new Err(\"JOSE Header is not a JSON object\");\n return [parsed, serialized];\n}\nexport {\n JWE_RECOGNIZED,\n JWS_RECOGNIZED,\n assertNotSet,\n assertUint8Array,\n decodeBase64url,\n encodeBase64url,\n isDisjoint,\n isJwkSet,\n isObject,\n parseJoseHeader,\n serializeJoseHeader,\n validateAlgorithms,\n validateB64,\n validateCrit,\n validateCritDuplicates\n};\n","import { isObject } from \"./validate.js\";\nimport { decode } from \"../util/base64url.js\";\nimport { JOSENotSupported } from \"../util/errors.js\";\nconst tag = (key) => key[Symbol.toStringTag], jwkMatchesOp = (entry, key, usage) => {\n const { alg } = entry;\n if (key.use !== void 0) {\n const expected = usage === \"sign\" || usage === \"verify\" ? \"sig\" : \"enc\";\n if (key.use !== expected)\n throw new TypeError(`Invalid key for this operation, its \"use\" must be \"${expected}\" when present`);\n }\n if (key.alg !== void 0 && key.alg !== alg)\n throw new TypeError(`Invalid key for this operation, its \"alg\" must be \"${alg}\" when present`);\n if (Array.isArray(key.key_ops)) {\n const expectedKeyOp = usage === \"encrypt\" || usage === \"decrypt\" ? entry.ops?.[usage === \"encrypt\" ? 0 : 1] : usage;\n if (expectedKeyOp && !key.key_ops.includes(expectedKeyOp))\n throw new TypeError(`Invalid key for this operation, its \"key_ops\" must include \"${expectedKeyOp}\" when present`);\n }\n};\nasync function prepareKey(entry, key, usage) {\n const { alg, secret } = entry, privateKey = usage === \"decrypt\" || usage === \"sign\";\n if (secret && key instanceof Uint8Array)\n return key;\n let normalized, keyObject;\n if (isObject(key)) {\n if (normalized = normalizeJwk(key), typeof normalized.kty != \"string\")\n throw invalidKeyType(alg, key, secret);\n if (!(secret ? normalized.kty === \"oct\" && typeof normalized.k == \"string\" : normalized.kty !== \"oct\" && (privateKey ? normalized.kty === \"AKP\" && typeof normalized.priv == \"string\" || typeof normalized.d == \"string\" : normalized.d === void 0 && normalized.priv === void 0)))\n throw new TypeError(secret ? 'JSON Web Key for symmetric algorithms must have JWK \"kty\" (Key Type) equal to \"oct\" and the JWK \"k\" (Key Value) present' : `JSON Web Key for this operation must be a ${privateKey ? \"private\" : \"public\"} JWK`);\n if (jwkMatchesOp(entry, normalized, usage), normalized.kty === \"oct\")\n return decode(normalized.k);\n if (!Object.isFrozen(key)) {\n const { key_ops } = key;\n Array.isArray(key_ops) && Object.freeze(key_ops), Object.freeze(key);\n }\n } else {\n if (!isKeyLike(key))\n throw invalidKeyType(alg, key, secret);\n const expectedType = secret ? \"secret\" : privateKey ? \"private\" : \"public\";\n if (key.type !== expectedType && (secret || [\"secret\", \"public\", \"private\"].includes(key.type)))\n throw new TypeError(`${tag(key)} instances must be of type \"${expectedType}\" for the ${alg} algorithm`);\n if (isCryptoKey(key))\n return key;\n if (keyObject = key, keyObject.type === \"secret\")\n return keyObject.export();\n }\n cache ||= /* @__PURE__ */ new WeakMap();\n const cacheKey = key;\n let cached = cache.get(cacheKey);\n if (cached?.[alg])\n return cached[alg];\n if (cached || cache.set(cacheKey, cached = {}), keyObject && typeof keyObject.toCryptoKey == \"function\") {\n const isPublic = keyObject.type === \"public\", crv = nist[keyObject.asymmetricKeyDetails?.namedCurve], params = entry.resolve?.({ crv, asymmetricKeyType: keyObject.asymmetricKeyType }) ?? entry.subtle;\n return cached[alg] = keyObject.toCryptoKey(params, isPublic, entry.usages[isPublic ? 0 : 1]);\n }\n return normalized ??= keyObject.export({ format: \"jwk\" }), normalized.alg = alg, cached[alg] = await jwkToKey(entry, normalized);\n}\nlet cache;\nconst nist = {\n __proto__: null,\n prime256v1: \"P-256\",\n secp384r1: \"P-384\",\n secp521r1: \"P-521\"\n};\nfunction assertCryptoKey(key) {\n if (!isCryptoKey(key))\n throw new Error(\"CryptoKey instance expected\");\n}\nconst isCryptoKey = (key) => {\n if (key?.[Symbol.toStringTag] === \"CryptoKey\")\n return !0;\n try {\n return key instanceof CryptoKey;\n } catch {\n return !1;\n }\n}, isKeyObject = (key) => key?.[Symbol.toStringTag] === \"KeyObject\", isKeyLike = (key) => isCryptoKey(key) || isKeyObject(key);\nfunction message(msg, actual, ...types) {\n if (types.length > 2) {\n const last = types.pop();\n msg += `one of type ${types.join(\", \")}, or ${last}.`;\n } else types.length === 2 ? msg += `one of type ${types[0]} or ${types[1]}.` : msg += `of type ${types[0]}.`;\n return actual == null ? msg += ` Received ${actual}` : typeof actual == \"function\" && actual.name ? msg += ` Received function ${actual.name}` : typeof actual == \"object\" && actual != null && actual.constructor?.name && (msg += ` Received an instance of ${actual.constructor.name}`), msg;\n}\nconst invalidKeyInput = (actual, ...types) => message(\"Key must be \", actual, ...types);\nfunction invalidKeyType(alg, actual, secret) {\n const types = [\"CryptoKey\", \"KeyObject\", \"JSON Web Key\"];\n return secret && types.push(\"Uint8Array\"), new TypeError(message(`Key for the ${alg} algorithm must be `, actual, ...types));\n}\nconst unusable = (name, prop = \"algorithm.name\") => new TypeError(`CryptoKey does not support this operation, its ${prop} must be ${name}`);\nfunction checkUsage(key, usage) {\n if (usage && !key.usages.includes(usage))\n throw new TypeError(`CryptoKey does not support this operation, its usages must include ${usage}.`);\n}\nfunction checkModulusLength(alg, key) {\n const { modulusLength } = key.algorithm;\n if (typeof modulusLength != \"number\" || modulusLength < 2048)\n throw new TypeError(`${alg} requires key modulusLength to be 2048 bits or larger`);\n}\nfunction checkCryptoKey(key, expected, usage) {\n const algorithm = key.algorithm;\n if (algorithm.name !== expected.name)\n throw unusable(expected.name);\n if (expected.hash && algorithm.hash?.name !== expected.hash)\n throw unusable(expected.hash, \"algorithm.hash\");\n if (expected.namedCurve && algorithm.namedCurve !== expected.namedCurve)\n throw unusable(expected.namedCurve, \"algorithm.namedCurve\");\n if (expected.length !== void 0 && algorithm.length !== expected.length)\n throw unusable(expected.length, \"algorithm.length\");\n checkUsage(key, usage);\n}\nfunction snapshotJwk(jwk) {\n return { __proto__: null, ...jwk };\n}\nfunction normalizeJwk(jwk) {\n const normalized = snapshotJwk(jwk);\n if (normalized.ext !== void 0 && typeof normalized.ext != \"boolean\")\n throw new TypeError('\"ext\" (Extractable) Parameter must be a boolean');\n if (normalized.key_ops !== void 0) {\n const value = normalized.key_ops, keyOps = Array.isArray(value) ? [...value] : void 0;\n if (!keyOps || keyOps.some((operation) => typeof operation != \"string\") || new Set(keyOps).size !== keyOps.length)\n throw new TypeError('\"key_ops\" (Key Operations) Parameter must be an array of unique strings');\n normalized.key_ops = keyOps;\n }\n return normalized;\n}\nfunction validateExtractableOption(extractable) {\n if (extractable !== void 0 && typeof extractable != \"boolean\")\n throw new TypeError('\"extractable\" option must be a boolean');\n return extractable;\n}\nasync function jwkToKey(entry, jwk, extractable) {\n if (!entry.kty.includes(jwk.kty))\n throw new JOSENotSupported('Invalid or unsupported JWK \"alg\" (Algorithm) Parameter value');\n const algorithm = entry.resolve?.({ kty: jwk.kty, crv: jwk.crv }) ?? entry.subtle, isPrivate = !!(jwk.d || jwk.priv), keyData = { ...jwk, ext: extractable ?? jwk.ext };\n return keyData.kty !== \"AKP\" && delete keyData.alg, delete keyData.use, crypto.subtle.importKey(\"jwk\", keyData, algorithm, keyData.ext ?? !isPrivate, jwk.key_ops ?? entry.usages[isPrivate ? 1 : 0]);\n}\nasync function rawKey(key, expected, usage, extractable = !1) {\n return key instanceof Uint8Array && (key = await crypto.subtle.importKey(\"raw\", key, expected, extractable, [usage])), checkCryptoKey(key, expected, usage), key;\n}\nexport {\n assertCryptoKey,\n checkCryptoKey,\n checkModulusLength,\n checkUsage,\n invalidKeyInput,\n isCryptoKey,\n isKeyLike,\n isKeyObject,\n jwkToKey,\n normalizeJwk,\n prepareKey,\n rawKey,\n snapshotJwk,\n validateExtractableOption\n};\n","import { concat, uint64be } from \"./buffer_utils.js\";\nimport { rawKey, invalidKeyInput, isCryptoKey } from \"./key.js\";\nimport { JWEDecryptionFailed, JWEInvalid } from \"../util/errors.js\";\nconst generateCek = (enc) => crypto.getRandomValues(new Uint8Array(enc.cekBits >> 3));\nfunction checkCekLength(cek, expected) {\n const actual = cek.byteLength << 3;\n if (actual !== expected)\n throw new JWEInvalid(`Invalid Content Encryption Key length. Expected ${expected} bits, got ${actual} bits`);\n}\nconst generateIv = (enc) => crypto.getRandomValues(new Uint8Array(enc.ivBits >> 3));\nfunction checkIvLength(enc, iv) {\n if (iv.length << 3 !== enc.ivBits)\n throw new JWEInvalid(\"Invalid Initialization Vector length\");\n}\nasync function cbcKeySetup(enc, cek, usage) {\n if (!(cek instanceof Uint8Array))\n throw new TypeError(invalidKeyInput(cek, \"Uint8Array\"));\n const keySize = enc.cekBits >> 1, encKey = await crypto.subtle.importKey(\"raw\", cek.subarray(keySize >> 3), \"AES-CBC\", !1, [usage]), macKey = await crypto.subtle.importKey(\"raw\", cek.subarray(0, keySize >> 3), {\n hash: `SHA-${keySize << 1}`,\n name: \"HMAC\"\n }, !1, [\"sign\"]);\n return [encKey, macKey, keySize];\n}\nasync function cbcHmacTag(macKey, macData, keySize) {\n return new Uint8Array((await crypto.subtle.sign(\"HMAC\", macKey, macData)).slice(0, keySize >> 3));\n}\nasync function cbcEncrypt(enc, plaintext, cek, iv, aad) {\n const [encKey, macKey, keySize] = await cbcKeySetup(enc, cek, \"encrypt\"), ciphertext = new Uint8Array(await crypto.subtle.encrypt({\n iv,\n name: \"AES-CBC\"\n }, encKey, plaintext)), macData = concat(aad, iv, ciphertext, uint64be(aad.length * 8)), tag = await cbcHmacTag(macKey, macData, keySize);\n return { ciphertext, tag, iv };\n}\nasync function timingSafeEqual(a, b) {\n const algorithm = { name: \"HMAC\", hash: \"SHA-256\" }, key = await crypto.subtle.generateKey(algorithm, !1, [\"sign\", \"verify\"]), aHmac = await crypto.subtle.sign(algorithm, key, a);\n return crypto.subtle.verify(algorithm, key, aHmac, b);\n}\nasync function cbcDecrypt(enc, cek, ciphertext, iv, tag, aad) {\n const [encKey, macKey, keySize] = await cbcKeySetup(enc, cek, \"decrypt\"), macData = concat(aad, iv, ciphertext, uint64be(aad.length * 8)), expectedTag = await cbcHmacTag(macKey, macData, keySize);\n try {\n if (await timingSafeEqual(tag, expectedTag))\n return new Uint8Array(await crypto.subtle.decrypt({ iv, name: \"AES-CBC\" }, encKey, ciphertext));\n } catch {\n }\n throw new JWEDecryptionFailed();\n}\nasync function encrypt(enc, plaintext, cek, iv, aad) {\n if (!isCryptoKey(cek) && !(cek instanceof Uint8Array))\n throw new TypeError(invalidKeyInput(cek, \"CryptoKey\", \"KeyObject\", \"Uint8Array\", \"JSON Web Key\"));\n if (iv ? checkIvLength(enc, iv) : iv = generateIv(enc), cek instanceof Uint8Array && checkCekLength(cek, enc.cekBits), enc.cbc)\n return cbcEncrypt(enc, plaintext, cek, iv, aad);\n const encKey = await rawKey(cek, enc.subtle, \"encrypt\"), encrypted = new Uint8Array(await crypto.subtle.encrypt({\n additionalData: aad,\n iv,\n name: \"AES-GCM\",\n tagLength: 128\n }, encKey, plaintext));\n return { ciphertext: encrypted.subarray(0, -16), tag: encrypted.subarray(-16), iv };\n}\nasync function decrypt(enc, cek, ciphertext, iv, tag, aad) {\n if (!isCryptoKey(cek) && !(cek instanceof Uint8Array))\n throw new TypeError(invalidKeyInput(cek, \"CryptoKey\", \"KeyObject\", \"Uint8Array\", \"JSON Web Key\"));\n if (!iv)\n throw new JWEInvalid(\"JWE Initialization Vector missing\");\n if (!tag)\n throw new JWEInvalid(\"JWE Authentication Tag missing\");\n if (!enc.cbc && tag.length !== 16)\n throw new JWEInvalid(\"Invalid Authentication Tag length\");\n if (checkIvLength(enc, iv), cek instanceof Uint8Array && checkCekLength(cek, enc.cekBits), enc.cbc)\n return cbcDecrypt(enc, cek, ciphertext, iv, tag, aad);\n const encKey = await rawKey(cek, enc.subtle, \"decrypt\");\n try {\n return new Uint8Array(await crypto.subtle.decrypt({\n additionalData: aad,\n iv,\n name: \"AES-GCM\",\n tagLength: 128\n }, encKey, concat(ciphertext, tag)));\n } catch {\n throw new JWEDecryptionFailed();\n }\n}\nexport {\n checkCekLength,\n checkIvLength,\n decrypt,\n encrypt,\n generateCek,\n generateIv\n};\n","function table(entries) {\n const out = { __proto__: null };\n for (const alg in entries)\n out[alg] = { ...entries[alg], alg };\n return out;\n}\nexport {\n table\n};\n","import { JOSENotSupported } from \"../util/errors.js\";\nimport { table } from \"./key_descriptor.js\";\nconst wrap = [\n [\"encrypt\", \"wrapKey\"],\n [\"decrypt\", \"unwrapKey\"]\n], derive = [[], [\"deriveBits\"]], none = [[], []];\nfunction rsaes(bits) {\n return {\n kty: [\"RSA\"],\n mode: \"key-encryption\",\n subtle: { name: \"RSA-OAEP\", hash: `SHA-${bits}` },\n usages: wrap,\n ops: [\"wrapKey\", \"unwrapKey\"]\n };\n}\nfunction ecdh(mode) {\n return {\n kty: [\"EC\", \"OKP\"],\n mode,\n subtle: { name: \"ECDH\" },\n resolve: ({ kty, crv, asymmetricKeyType }) => {\n if (crv === \"X25519\" || asymmetricKeyType === \"x25519\")\n return { name: \"X25519\" };\n if (kty === \"OKP\")\n throw new JOSENotSupported('Invalid or unsupported JWK \"alg\" (Algorithm) Parameter value');\n return { name: \"ECDH\", namedCurve: crv };\n },\n usages: derive,\n ops: [void 0, \"deriveBits\"]\n };\n}\nfunction aeskw(bits, gcm = !1) {\n return {\n kty: [\"oct\"],\n mode: \"key-wrapping\",\n secret: !0,\n subtle: { name: gcm ? \"AES-GCM\" : \"AES-KW\", length: bits },\n usages: none,\n ops: gcm ? [\"encrypt\", \"decrypt\"] : [\"wrapKey\", \"unwrapKey\"]\n };\n}\nfunction pbes2() {\n return {\n kty: [\"oct\"],\n mode: \"key-wrapping\",\n secret: !0,\n subtle: { name: \"PBKDF2\" },\n usages: none,\n ops: [\"deriveBits\", \"deriveBits\"]\n };\n}\nconst JWE = table({\n dir: {\n kty: [\"oct\"],\n mode: \"direct-encryption\",\n secret: !0,\n subtle: { name: \"AES-GCM\" },\n usages: none,\n ops: [\"encrypt\", \"decrypt\"]\n },\n \"RSA-OAEP\": rsaes(1),\n \"RSA-OAEP-256\": rsaes(256),\n \"RSA-OAEP-384\": rsaes(384),\n \"RSA-OAEP-512\": rsaes(512),\n \"ECDH-ES\": ecdh(\"direct-key-agreement\"),\n \"ECDH-ES+A128KW\": ecdh(\"key-agreement-with-key-wrapping\"),\n \"ECDH-ES+A192KW\": ecdh(\"key-agreement-with-key-wrapping\"),\n \"ECDH-ES+A256KW\": ecdh(\"key-agreement-with-key-wrapping\"),\n A128KW: aeskw(128),\n A192KW: aeskw(192),\n A256KW: aeskw(256),\n A128GCMKW: aeskw(128, !0),\n A192GCMKW: aeskw(192, !0),\n A256GCMKW: aeskw(256, !0),\n \"PBES2-HS256+A128KW\": pbes2(),\n \"PBES2-HS384+A192KW\": pbes2(),\n \"PBES2-HS512+A256KW\": pbes2()\n}), contentOps = [\"encrypt\", \"decrypt\"];\nfunction contentEncryption(bits, cbc = !1) {\n return {\n kty: [\"oct\"],\n secret: !0,\n subtle: { name: cbc ? \"AES-CBC\" : \"AES-GCM\", length: bits },\n usages: none,\n ops: contentOps,\n cekBits: bits,\n ivBits: cbc ? 128 : 96,\n cbc\n };\n}\nconst ENC = table({\n A128GCM: contentEncryption(128),\n A192GCM: contentEncryption(192),\n A256GCM: contentEncryption(256),\n \"A128CBC-HS256\": contentEncryption(256, !0),\n \"A192CBC-HS384\": contentEncryption(384, !0),\n \"A256CBC-HS512\": contentEncryption(512, !0)\n});\nfunction unsupported(parameter, name) {\n throw new JOSENotSupported(`Invalid or unsupported \"${parameter}\" (JWE ${name}) header value`);\n}\nfunction jweAlgorithm(alg) {\n return (typeof alg == \"string\" ? JWE[alg] : void 0) ?? unsupported(\"alg\", \"Algorithm\");\n}\nfunction isJWECEKTransport(algorithm) {\n return algorithm.mode === \"key-wrapping\" || algorithm.mode === \"key-encryption\" || algorithm.mode === \"key-agreement-with-key-wrapping\";\n}\nfunction jweEncryption(enc) {\n return (typeof enc == \"string\" ? ENC[enc] : void 0) ?? unsupported(\"enc\", \"Encryption Algorithm\");\n}\nexport {\n JWE,\n isJWECEKTransport,\n jweAlgorithm,\n jweEncryption\n};\n","import { encode as b64u } from \"../util/base64url.js\";\nimport { prepareKey, rawKey, jwkToKey, checkCryptoKey, checkModulusLength, checkUsage, assertCryptoKey } from \"./key.js\";\nimport { jweAlgorithm, jweEncryption, isJWECEKTransport } from \"./jwe_algorithms.js\";\nimport { JOSENotSupported, JWEInvalid } from \"../util/errors.js\";\nimport { decodeBase64url, assertUint8Array, isObject } from \"./validate.js\";\nimport { digest, concat, encode, uint32be } from \"./buffer_utils.js\";\nimport { checkCekLength, generateCek, encrypt, decrypt } from \"./content_encryption.js\";\nfunction checkEcdhCryptoKey(key, usage) {\n if (key.algorithm.name !== \"ECDH\" && key.algorithm.name !== \"X25519\")\n throw new TypeError(\"CryptoKey does not support this operation, its algorithm.name must be ECDH or X25519\");\n checkUsage(key, usage);\n}\nasync function aeskwWrap(alg, key, cek) {\n const cryptoKey = await rawKey(key, jweAlgorithm(alg).subtle, \"wrapKey\", !0), cryptoKeyCek = await crypto.subtle.importKey(\"raw\", cek, { hash: \"SHA-256\", name: \"HMAC\" }, !0, [\"sign\"]);\n return new Uint8Array(await crypto.subtle.wrapKey(\"raw\", cryptoKeyCek, cryptoKey, \"AES-KW\"));\n}\nasync function aeskwUnwrap(alg, key, encryptedKey) {\n const cryptoKey = await rawKey(key, jweAlgorithm(alg).subtle, \"unwrapKey\", !0), cryptoKeyCek = await crypto.subtle.unwrapKey(\"raw\", encryptedKey, cryptoKey, \"AES-KW\", { hash: \"SHA-256\", name: \"HMAC\" }, !0, [\"sign\"]);\n return new Uint8Array(await crypto.subtle.exportKey(\"raw\", cryptoKeyCek));\n}\nfunction checkRsaKey(alg, key, usage) {\n checkCryptoKey(key, jweAlgorithm(alg).subtle, usage), checkModulusLength(alg, key);\n}\nasync function deriveKey(p2s, alg, p2c, key) {\n if (!(p2s instanceof Uint8Array) || p2s.length < 8)\n throw new JWEInvalid(\"PBES2 Salt Input must be 8 or more octets\");\n if (!Number.isSafeInteger(p2c) || Math.sign(p2c) !== 1)\n throw new JWEInvalid(\"PBES2 Count Input must be a positive integer\");\n const salt = concat(encode(alg), Uint8Array.of(0), p2s), keylen = parseInt(alg.slice(13, 16), 10), subtleAlg = {\n hash: `SHA-${alg.slice(8, 11)}`,\n iterations: p2c,\n name: \"PBKDF2\",\n salt\n }, cryptoKey = await rawKey(key, jweAlgorithm(alg).subtle, \"deriveBits\");\n return new Uint8Array(await crypto.subtle.deriveBits(subtleAlg, cryptoKey, keylen));\n}\nfunction lengthAndInput(input) {\n return concat(uint32be(input.length), input);\n}\nasync function concatKdf(Z, L, OtherInfo) {\n const dkLen = L >> 3, hashLen = 32, reps = Math.ceil(dkLen / hashLen), dk = new Uint8Array(reps * hashLen);\n for (let i = 1; i <= reps; i++) {\n const hashResult = await digest(\"sha256\", concat(uint32be(i), Z, OtherInfo));\n dk.set(hashResult, (i - 1) * hashLen);\n }\n return dk.slice(0, dkLen);\n}\nasync function ecdhesDeriveKey(publicKey, privateKey, algorithm, keyLength, apu = new Uint8Array(), apv = new Uint8Array()) {\n checkEcdhCryptoKey(publicKey), checkEcdhCryptoKey(privateKey, \"deriveBits\");\n const otherInfo = concat(lengthAndInput(encode(algorithm)), lengthAndInput(apu), lengthAndInput(apv), uint32be(keyLength)), Z = new Uint8Array(await crypto.subtle.deriveBits({\n name: publicKey.algorithm.name,\n public: publicKey\n }, privateKey, publicKey.algorithm.name === \"X25519\" ? 256 : Math.ceil(parseInt(publicKey.algorithm.namedCurve.slice(-3), 10) / 8) << 3));\n return concatKdf(Z, keyLength, otherInfo);\n}\nfunction assertEcdhKey(key) {\n assertCryptoKey(key);\n const curve = key.algorithm.namedCurve;\n if (curve !== \"P-256\" && curve !== \"P-384\" && curve !== \"P-521\" && key.algorithm.name !== \"X25519\")\n throw new JOSENotSupported(\"ECDH with the provided key is not allowed or not supported by your javascript runtime\");\n}\nfunction partyInfo(joseHeader, name) {\n const value = joseHeader[name];\n if (value !== void 0) {\n if (typeof value != \"string\")\n throw new JWEInvalid(`JOSE Header \"${name}\" (Agreement Party${name === \"apu\" ? \"U\" : \"V\"}Info) invalid`);\n return decodeBase64url(value, name, JWEInvalid);\n }\n}\nfunction checkPartyInfo(apu, apv) {\n if (!(apu === void 0 || apv === void 0 || apu.byteLength !== apv.byteLength)) {\n for (let i = 0; i < apu.byteLength; i++)\n if (apu[i] !== apv[i])\n return;\n throw new JWEInvalid('JOSE Header \"apu\" and \"apv\" values must be distinct');\n }\n}\nfunction assertEncryptedKey(encryptedKey) {\n if (encryptedKey === void 0)\n throw new JWEInvalid(\"JWE Encrypted Key missing\");\n}\nfunction assertNoEncryptedKey(encryptedKey) {\n if (encryptedKey !== void 0)\n throw new JWEInvalid(\"Encountered unexpected JWE Encrypted Key\");\n}\nfunction validateMaxPBES2Count(value) {\n if (value !== void 0 && value !== 1 / 0 && (!Number.isSafeInteger(value) || value < 1))\n throw new TypeError(\"maxPBES2Count must be a positive safe integer or Infinity\");\n}\nasync function decryptKeyManagement(entry, enc, key, encryptedKey, joseHeader, maxPBES2Count) {\n const { alg } = entry, mode = entry.mode;\n if (mode === \"direct-encryption\")\n return assertNoEncryptedKey(encryptedKey), key;\n const direct = mode === \"direct-key-agreement\";\n switch (direct ? assertNoEncryptedKey(encryptedKey) : assertEncryptedKey(encryptedKey), entry.subtle.name) {\n case \"ECDH\": {\n const { epk } = joseHeader;\n if (!isObject(epk) || [\"d\", \"k\", \"p\", \"q\", \"dp\", \"dq\", \"qi\", \"oth\", \"priv\"].some((parameter) => Object.hasOwn(epk, parameter)))\n throw new JWEInvalid('JOSE Header \"epk\" (Ephemeral Public Key) missing or invalid');\n assertEcdhKey(key);\n const ephemeralPublicKey = await jwkToKey(entry, epk), partyUInfo = partyInfo(joseHeader, \"apu\"), partyVInfo = partyInfo(joseHeader, \"apv\");\n checkPartyInfo(partyUInfo, partyVInfo);\n const sharedSecret = await ecdhesDeriveKey(ephemeralPublicKey, key, direct ? enc.alg : alg, direct ? enc.cekBits : parseInt(alg.slice(-5, -2), 10), partyUInfo, partyVInfo);\n if (direct)\n return sharedSecret;\n key = sharedSecret;\n break;\n }\n case \"RSA-OAEP\":\n return assertCryptoKey(key), checkRsaKey(alg, key, \"decrypt\"), new Uint8Array(await crypto.subtle.decrypt(\"RSA-OAEP\", key, encryptedKey));\n case \"PBKDF2\": {\n if (typeof joseHeader.p2c != \"number\")\n throw new JWEInvalid('JOSE Header \"p2c\" (PBES2 Count) missing or invalid');\n validateMaxPBES2Count(maxPBES2Count);\n const p2cLimit = maxPBES2Count ?? 1e4;\n if (joseHeader.p2c > p2cLimit)\n throw new JWEInvalid('JOSE Header \"p2c\" (PBES2 Count) out is of acceptable bounds');\n if (typeof joseHeader.p2s != \"string\")\n throw new JWEInvalid('JOSE Header \"p2s\" (PBES2 Salt) missing or invalid');\n const p2s = decodeBase64url(joseHeader.p2s, \"p2s\", JWEInvalid);\n key = await deriveKey(p2s, alg, joseHeader.p2c, key);\n break;\n }\n case \"AES-GCM\": {\n if (typeof joseHeader.iv != \"string\")\n throw new JWEInvalid('JOSE Header \"iv\" (Initialization Vector) missing or invalid');\n if (typeof joseHeader.tag != \"string\")\n throw new JWEInvalid('JOSE Header \"tag\" (Authentication Tag) missing or invalid');\n const iv = decodeBase64url(joseHeader.iv, \"iv\", JWEInvalid), tag = decodeBase64url(joseHeader.tag, \"tag\", JWEInvalid);\n if (iv.byteLength !== 12)\n throw new JWEInvalid(\"Invalid Initialization Vector length\");\n if (tag.byteLength !== 16)\n throw new JWEInvalid(\"Invalid Authentication Tag length\");\n return decrypt(jweEncryption(alg.slice(0, -2)), key, encryptedKey, iv, tag, new Uint8Array());\n }\n }\n return aeskwUnwrap(alg.slice(-6), key, encryptedKey);\n}\nasync function encryptKeyManagement(entry, enc, inputKey, joseHeader, providedCek, providedParameters = {}) {\n const { alg, mode } = entry, transport = isJWECEKTransport(entry);\n if (providedCek !== void 0 && !transport)\n throw new TypeError(`setContentEncryptionKey cannot be called with JWE \"alg\" (Algorithm) Header ${alg}`);\n let key = await prepareKey(mode === \"direct-encryption\" ? enc : entry, inputKey, \"encrypt\");\n if (mode === \"direct-encryption\")\n return [key, void 0, void 0];\n const cek = transport ? providedCek ?? generateCek(enc) : void 0;\n cek && checkCekLength(cek, enc.cekBits);\n let encryptedKey, parameters;\n switch (entry.subtle.name) {\n case \"ECDH\": {\n assertEcdhKey(key);\n const { apu: providedApu, apv: providedApv } = providedParameters;\n providedApu !== void 0 && assertUint8Array(providedApu, '\"apu\"'), providedApv !== void 0 && assertUint8Array(providedApv, '\"apv\"');\n const apu = providedApu ?? partyInfo(joseHeader, \"apu\"), apv = providedApv ?? partyInfo(joseHeader, \"apv\");\n checkPartyInfo(apu, apv);\n let ephemeralKey;\n providedParameters.epk !== void 0 ? ephemeralKey = await prepareKey(entry, providedParameters.epk, \"decrypt\") : ephemeralKey = (await crypto.subtle.generateKey(key.algorithm, !0, [\"deriveBits\"])).privateKey;\n const subtle = crypto.subtle;\n let exportableEpk = ephemeralKey;\n if (!exportableEpk.extractable) {\n if (typeof subtle.getPublicKey != \"function\")\n throw new TypeError('CryptoKey for \"epk\" must be extractable');\n exportableEpk = await subtle.getPublicKey(ephemeralKey, []);\n }\n const { x, y, crv, kty } = await subtle.exportKey(\"jwk\", exportableEpk), direct = mode === \"direct-key-agreement\", sharedSecret = await ecdhesDeriveKey(key, ephemeralKey, direct ? enc.alg : alg, direct ? enc.cekBits : parseInt(alg.slice(-5, -2), 10), apu, apv), epk = { x, crv, kty };\n if (kty === \"EC\" && (epk.y = y), parameters = { epk }, providedApu !== void 0 && (parameters.apu = b64u(providedApu)), providedApv !== void 0 && (parameters.apv = b64u(providedApv)), direct)\n return [sharedSecret, void 0, parameters];\n key = sharedSecret;\n break;\n }\n case \"RSA-OAEP\": {\n assertCryptoKey(key), checkRsaKey(alg, key, \"encrypt\"), encryptedKey = new Uint8Array(await crypto.subtle.encrypt(\"RSA-OAEP\", key, cek));\n break;\n }\n case \"PBKDF2\": {\n const { p2c = 2048, p2s = crypto.getRandomValues(new Uint8Array(16)) } = providedParameters;\n key = await deriveKey(p2s, alg, p2c, key), parameters = { p2c, p2s: b64u(p2s) };\n break;\n }\n case \"AES-GCM\": {\n const iv = providedParameters.iv === void 0 ? crypto.getRandomValues(new Uint8Array(12)) : providedParameters.iv;\n if (!(iv instanceof Uint8Array))\n throw new TypeError('\"iv\" must be an instance of Uint8Array');\n const wrapped = await encrypt(jweEncryption(alg.slice(0, -2)), cek, key, iv, new Uint8Array());\n encryptedKey = wrapped.ciphertext, parameters = { iv: b64u(wrapped.iv), tag: b64u(wrapped.tag) };\n }\n }\n if (encryptedKey ??= await aeskwWrap(alg.slice(-6), key, cek), !(encryptedKey instanceof Uint8Array) || !encryptedKey.byteLength)\n throw new TypeError(\"JWE key management algorithm did not produce an Encrypted Key\");\n return [cek, encryptedKey, parameters];\n}\nexport {\n decryptKeyManagement,\n encryptKeyManagement,\n validateMaxPBES2Count\n};\n","import { JOSENotSupported, JWEInvalid } from \"../util/errors.js\";\nimport { concat } from \"./buffer_utils.js\";\nfunction validateZip(joseHeader, protectedHeader) {\n if (joseHeader.zip !== void 0 && joseHeader.zip !== \"DEF\")\n throw new JOSENotSupported('Unsupported JWE \"zip\" (Compression Algorithm) Header Parameter value.');\n if (joseHeader.zip !== void 0 && !protectedHeader?.zip)\n throw new JWEInvalid('JWE \"zip\" (Compression Algorithm) Header Parameter MUST be in a protected header.');\n}\nfunction supported(name) {\n if (typeof globalThis[name] > \"u\")\n throw new JOSENotSupported(`JWE \"zip\" (Compression Algorithm) Header Parameter requires the ${name} API.`);\n}\nasync function transform(stream, input, maxLength = 1 / 0) {\n const writer = stream.writable.getWriter();\n writer.write(input).catch(() => {\n }), writer.close().catch(() => {\n });\n const chunks = [];\n let length = 0;\n const reader = stream.readable.getReader();\n for (; ; ) {\n const { value, done } = await reader.read();\n if (done)\n break;\n if (chunks.push(value), length += value.byteLength, maxLength !== 1 / 0 && length > maxLength)\n throw new JWEInvalid(\"Decompressed plaintext exceeded the configured limit\");\n }\n return concat(...chunks);\n}\nasync function compress(input) {\n return supported(\"CompressionStream\"), transform(new CompressionStream(\"deflate-raw\"), input);\n}\nasync function decompress(input, maxLength) {\n return supported(\"DecompressionStream\"), transform(new DecompressionStream(\"deflate-raw\"), input, maxLength);\n}\nexport {\n compress,\n decompress,\n validateZip\n};\n","import { decrypt, generateCek } from \"./content_encryption.js\";\nimport { decodeBase64url, encodeBase64url, parseJoseHeader, isDisjoint, isObject, validateCrit, validateAlgorithms, JWE_RECOGNIZED } from \"./validate.js\";\nimport { JOSEAlgNotAllowed, JOSENotSupported, JWEInvalid } from \"../util/errors.js\";\nimport { decryptKeyManagement } from \"./key_management.js\";\nimport { decoder } from \"./buffer_utils.js\";\nimport { prepareKey } from \"./key.js\";\nimport { JWE, isJWECEKTransport, jweAlgorithm, jweEncryption } from \"./jwe_algorithms.js\";\nimport { decompress, validateZip } from \"./deflate.js\";\nfunction snapshotSharedJWE(jwe) {\n const { aad, ciphertext, iv, protected: encodedProtected, tag, unprotected } = jwe;\n if (iv !== void 0 && (typeof iv != \"string\" || !iv))\n throw new JWEInvalid(\"JWE Initialization Vector incorrect type\");\n if (typeof ciphertext != \"string\")\n throw new JWEInvalid(\"JWE Ciphertext missing or incorrect type\");\n if (tag !== void 0 && (typeof tag != \"string\" || !tag))\n throw new JWEInvalid(\"JWE Authentication Tag incorrect type\");\n if (encodedProtected !== void 0 && typeof encodedProtected != \"string\")\n throw new JWEInvalid(\"JWE Protected Header incorrect type\");\n if (aad !== void 0 && (typeof aad != \"string\" || !aad))\n throw new JWEInvalid(\"JWE AAD incorrect type\");\n if (unprotected !== void 0 && !isObject(unprotected))\n throw new JWEInvalid(\"JWE Shared Unprotected Header incorrect type\");\n return {\n aad,\n ciphertext,\n iv,\n protected: encodedProtected,\n tag,\n unprotected: unprotected === void 0 ? void 0 : { ...unprotected }\n };\n}\nfunction snapshotRecipientJWE(recipient) {\n let header, headerAlg;\n try {\n const { header: inputHeader } = recipient;\n if (isObject(inputHeader)) {\n headerAlg = inputHeader.alg;\n const parameters = Object.keys(inputHeader);\n parameters.includes(\"alg\") || (headerAlg = void 0), header = Object.fromEntries(parameters.map((parameter) => [\n parameter,\n parameter === \"alg\" ? headerAlg : inputHeader[parameter]\n ]));\n } else\n header = inputHeader;\n const { encrypted_key: encryptedKey } = recipient;\n return [{ encrypted_key: encryptedKey, header }, headerAlg];\n } catch (error) {\n return [void 0, headerAlg, error];\n }\n}\nfunction checkRecipient(jwe) {\n const { encrypted_key: encryptedKey, header } = jwe;\n if (encryptedKey !== void 0 && typeof encryptedKey != \"string\")\n throw new JWEInvalid(\"JWE Encrypted Key incorrect type\");\n if (header !== void 0 && !isObject(header))\n throw new JWEInvalid(\"JWE Per-Recipient Unprotected Header incorrect type\");\n if (jwe.protected === void 0 && header === void 0 && jwe.unprotected === void 0)\n throw new JWEInvalid(\"JOSE Header missing\");\n}\nfunction shareJWE(jwe) {\n const { protected: encodedProtected, ciphertext, iv, tag, aad } = jwe;\n let parsedProt;\n return encodedProtected !== void 0 && (parsedProt = parseJoseHeader(encodedProtected, JWEInvalid, \"JWE Protected Header is invalid\")), [\n parsedProt,\n decodeBase64url(ciphertext, \"ciphertext\", JWEInvalid),\n iv !== void 0 ? decodeBase64url(iv, \"iv\", JWEInvalid) : void 0,\n tag !== void 0 ? decodeBase64url(tag, \"tag\", JWEInvalid) : void 0,\n encodeBase64url((encodedProtected ?? \"\") + (aad !== void 0 ? `.${aad}` : \"\"), \"aad\", JWEInvalid)\n ];\n}\nfunction prepareDecrypt(options) {\n return [\n options && validateAlgorithms(\"keyManagementAlgorithms\", options.keyManagementAlgorithms),\n options && validateAlgorithms(\"contentEncryptionAlgorithms\", options.contentEncryptionAlgorithms),\n options?.crit,\n options?.maxPBES2Count,\n options?.maxDecompressedLength\n ];\n}\nasync function decryptJWE(jwe, shared, key, token = shareJWE(jwe)) {\n const [parsedProt, ciphertext, iv, tag, additionalData] = token, { header, unprotected, aad } = jwe;\n let joseHeader;\n if (header !== void 0 || unprotected !== void 0) {\n if (!isDisjoint(parsedProt, header, unprotected))\n throw new JWEInvalid(\"JWE Protected, JWE Unprotected Header, and JWE Per-Recipient Unprotected Header Parameter names must be disjoint\");\n joseHeader = { ...parsedProt, ...header, ...unprotected };\n } else\n joseHeader = parsedProt ?? {};\n const [keyManagementAlgorithms, contentEncryptionAlgorithms, crit, maxPBES2Count, maxDecompressedLength] = shared, { encrypted_key: encodedKey } = jwe;\n validateCrit(JWEInvalid, JWE_RECOGNIZED, crit, parsedProt, joseHeader), validateZip(joseHeader, parsedProt);\n const { alg, enc } = joseHeader;\n if (typeof alg != \"string\" || !alg)\n throw new JWEInvalid(\"missing JWE Algorithm (alg) in JWE Header\");\n const selected = JWE[alg];\n if (encodedKey === \"\" && (!selected || !isJWECEKTransport(selected)))\n throw new JWEInvalid(\"JWE Encrypted Key incorrect type\");\n const integrated = selected?.mode === \"integrated-encryption\";\n if (!integrated && (typeof enc != \"string\" || !enc))\n throw new JWEInvalid(\"missing JWE Encryption Algorithm (enc) in JWE Header\");\n if (keyManagementAlgorithms && !keyManagementAlgorithms.has(alg) || !keyManagementAlgorithms && alg.startsWith(\"PBES2\"))\n throw new JOSEAlgNotAllowed('\"alg\" (Algorithm) Header Parameter value not allowed');\n let encEntry;\n if (integrated) {\n if (enc !== void 0)\n throw new JWEInvalid('JWE \"enc\" (Encryption Algorithm) Header Parameter must not be present for integrated encryption');\n if (iv?.byteLength)\n throw new JWEInvalid(\"JWE Initialization Vector must be empty for integrated encryption\");\n if (tag?.byteLength)\n throw new JWEInvalid(\"JWE Authentication Tag must be empty for integrated encryption\");\n } else {\n if (contentEncryptionAlgorithms && !contentEncryptionAlgorithms.has(enc))\n throw new JOSEAlgNotAllowed('\"enc\" (Encryption Algorithm) Header Parameter value not allowed');\n encEntry = jweEncryption(enc);\n }\n let encryptedKey;\n if (encodedKey !== void 0)\n try {\n encryptedKey = decodeBase64url(encodedKey, \"encrypted_key\", JWEInvalid);\n } catch (error) {\n if (!selected || !isJWECEKTransport(selected))\n throw error;\n encryptedKey = new Uint8Array();\n }\n let resolvedKey = !1;\n typeof key == \"function\" && (key = await key(parsedProt, jwe), resolvedKey = !0);\n const algEntry = selected ?? jweAlgorithm(alg);\n isJWECEKTransport(algEntry) && encryptedKey === void 0 && (encryptedKey = new Uint8Array());\n const k = await prepareKey(algEntry.mode === \"direct-encryption\" ? encEntry : algEntry, key, \"decrypt\");\n let plaintext;\n if (algEntry.mode === \"integrated-encryption\")\n plaintext = await algEntry.decrypt(k, encryptedKey, ciphertext, additionalData, parsedProt, joseHeader);\n else {\n const encryption = encEntry;\n let cek;\n try {\n cek = await decryptKeyManagement(algEntry, encryption, k, encryptedKey, joseHeader, maxPBES2Count), isJWECEKTransport(algEntry) && cek instanceof Uint8Array && cek.byteLength << 3 !== encryption.cekBits && (cek = generateCek(encryption));\n } catch (err) {\n if (err instanceof TypeError || err instanceof JWEInvalid || err instanceof JOSENotSupported)\n throw err;\n cek = generateCek(encryption);\n }\n plaintext = await decrypt(encryption, cek, ciphertext, iv, tag, additionalData);\n }\n if (joseHeader.zip === \"DEF\") {\n const decompressionLimit = maxDecompressedLength ?? 25e4;\n if (decompressionLimit === 0)\n throw new JOSENotSupported('JWE \"zip\" (Compression Algorithm) Header Parameter is not supported.');\n if (decompressionLimit !== 1 / 0 && (!Number.isSafeInteger(decompressionLimit) || decompressionLimit < 1))\n throw new TypeError(\"maxDecompressedLength must be 0, a positive safe integer, or Infinity\");\n plaintext = await decompress(plaintext, decompressionLimit).catch((cause) => {\n throw cause instanceof JWEInvalid ? cause : new JWEInvalid(\"Failed to decompress plaintext\", { cause });\n });\n }\n return {\n plaintext,\n ...parsedProt && { protectedHeader: parsedProt },\n ...aad !== void 0 && {\n additionalAuthenticatedData: decodeBase64url(aad, \"aad\", JWEInvalid)\n },\n ...unprotected && { sharedUnprotectedHeader: unprotected },\n ...header && { unprotectedHeader: header },\n ...resolvedKey && { key: k }\n };\n}\nasync function decryptCompact(jwe, shared, key) {\n if (jwe instanceof Uint8Array && (jwe = decoder.decode(jwe)), typeof jwe != \"string\")\n throw new JWEInvalid(\"Compact JWE must be a string or Uint8Array\");\n const { 0: protectedHeader, 1: encryptedKey, 2: iv, 3: ciphertext, 4: tag, length } = jwe.split(\".\");\n if (length !== 5)\n throw new JWEInvalid(\"Invalid Compact JWE\");\n return decryptJWE({\n ciphertext,\n iv: iv || void 0,\n protected: protectedHeader,\n tag: tag || void 0,\n encrypted_key: encryptedKey || void 0\n }, shared, key);\n}\nexport {\n checkRecipient,\n decryptCompact,\n decryptJWE,\n prepareDecrypt,\n shareJWE,\n snapshotRecipientJWE,\n snapshotSharedJWE\n};\n","import { prepareDecrypt, decryptCompact } from \"../../lib/jwe_decrypt.js\";\nasync function compactDecrypt(jwe, key, options) {\n return decryptCompact(jwe, prepareDecrypt(options), key);\n}\nexport {\n compactDecrypt\n};\n","import { JWEInvalid } from \"../../util/errors.js\";\nimport { isObject } from \"../../lib/validate.js\";\nimport { prepareDecrypt, decryptJWE, checkRecipient, snapshotSharedJWE, snapshotRecipientJWE } from \"../../lib/jwe_decrypt.js\";\nasync function flattenedDecrypt(jwe, key, options) {\n if (!isObject(jwe))\n throw new JWEInvalid(\"Flattened JWE must be an object\");\n const shared = snapshotSharedJWE(jwe), [recipient, , error] = snapshotRecipientJWE(jwe);\n if (!recipient)\n throw error;\n const snapshot = { ...shared, ...recipient };\n return checkRecipient(snapshot), decryptJWE(snapshot, prepareDecrypt(options), key);\n}\nexport {\n flattenedDecrypt\n};\n","import { prepareDecrypt, shareJWE, decryptJWE, checkRecipient, snapshotSharedJWE, snapshotRecipientJWE } from \"../../lib/jwe_decrypt.js\";\nimport { JWEDecryptionFailed, JWEInvalid } from \"../../util/errors.js\";\nimport { isObject } from \"../../lib/validate.js\";\nimport { JWE, isJWECEKTransport } from \"../../lib/jwe_algorithms.js\";\nasync function generalDecrypt(jwe, key, options) {\n if (!isObject(jwe))\n throw new JWEInvalid(\"General JWE must be an object\");\n const inputRecipients = jwe.recipients;\n if (!Array.isArray(inputRecipients))\n throw new JWEInvalid(\"JWE Recipients missing or incorrect type\");\n const recipients = Array.from(inputRecipients);\n if (!recipients.every(isObject))\n throw new JWEInvalid(\"JWE Recipients missing or incorrect type\");\n if (!recipients.length)\n throw new JWEInvalid(\"JWE Recipients has no members\");\n let shared, sharedJwe, token;\n try {\n shared = prepareDecrypt(options), sharedJwe = snapshotSharedJWE(jwe), token = shareJWE(sharedJwe);\n } catch {\n throw new JWEDecryptionFailed();\n }\n const recipientSnapshots = recipients.map((recipient) => snapshotRecipientJWE(recipient));\n if (recipients.length > 1)\n for (const [, headerAlg] of recipientSnapshots) {\n const alg = token[0]?.alg ?? headerAlg ?? sharedJwe.unprotected?.alg, algEntry = typeof alg == \"string\" ? JWE[alg] : void 0;\n if (algEntry && !isJWECEKTransport(algEntry))\n throw new JWEInvalid(`\"${alg}\" alg may only have a single recipient`);\n }\n for (const [recipient] of recipientSnapshots)\n if (recipient)\n try {\n const flattened = { ...sharedJwe, ...recipient };\n return checkRecipient(flattened), await decryptJWE(flattened, shared, key, token);\n } catch {\n }\n throw new JWEDecryptionFailed();\n}\nexport {\n generalDecrypt\n};\n","import { encode as b64u } from \"../util/base64url.js\";\nimport { encrypt } from \"./content_encryption.js\";\nimport { encryptKeyManagement } from \"./key_management.js\";\nimport { JWEInvalid } from \"../util/errors.js\";\nimport { assertUint8Array, isDisjoint, isObject, serializeJoseHeader, validateCrit, validateCritDuplicates, JWE_RECOGNIZED } from \"./validate.js\";\nimport { encode } from \"./buffer_utils.js\";\nimport { prepareKey } from \"./key.js\";\nimport { JWE, jweAlgorithm, jweEncryption } from \"./jwe_algorithms.js\";\nimport { compress, validateZip } from \"./deflate.js\";\nfunction checkDisjoint(protectedHeader, unprotectedHeader, sharedUnprotectedHeader) {\n if (!isDisjoint(protectedHeader, unprotectedHeader, sharedUnprotectedHeader))\n throw new JWEInvalid(\"JWE Protected, JWE Shared Unprotected and JWE Per-Recipient Header Parameter names must be disjoint\");\n}\nfunction checkEncryptHeaders(input, options, sharedHeadersNormalized = !1) {\n if (!input[1] && !input[2] && !input[3])\n throw new JWEInvalid(\"either setProtectedHeader, setUnprotectedHeader, or sharedUnprotectedHeader must be called before #encrypt()\");\n options !== void 0 && (input[8] = options?.crit);\n let [, protectedHeader, unprotectedHeader, sharedUnprotectedHeader, aad, cek, iv, keyManagementParameters, crit] = input;\n if (aad !== void 0 && assertUint8Array(aad, \"JWE Additional Authenticated Data\"), cek !== void 0 && assertUint8Array(cek, \"JWE Content Encryption Key\"), iv !== void 0 && assertUint8Array(iv, \"JWE Initialization Vector\"), !sharedHeadersNormalized && protectedHeader !== void 0 && (protectedHeader = serializeJoseHeader(JWEInvalid, protectedHeader)[0], input[1] = protectedHeader), unprotectedHeader !== void 0 && (unprotectedHeader = serializeJoseHeader(JWEInvalid, unprotectedHeader)[0], input[2] = unprotectedHeader), !sharedHeadersNormalized && sharedUnprotectedHeader !== void 0 && (sharedUnprotectedHeader = serializeJoseHeader(JWEInvalid, sharedUnprotectedHeader)[0], input[3] = sharedUnprotectedHeader), keyManagementParameters !== void 0 && !isObject(keyManagementParameters))\n throw new TypeError(\"JWE Key Management Parameters must be an object\");\n checkDisjoint(protectedHeader, unprotectedHeader, sharedUnprotectedHeader);\n const joseHeader = {\n ...protectedHeader,\n ...unprotectedHeader,\n ...sharedUnprotectedHeader\n };\n validateCritDuplicates(JWEInvalid, protectedHeader), validateCrit(JWEInvalid, JWE_RECOGNIZED, crit, protectedHeader, joseHeader), validateZip(joseHeader, protectedHeader);\n const { alg, enc } = joseHeader;\n if (typeof alg != \"string\" || !alg)\n throw new JWEInvalid('JWE \"alg\" (Algorithm) Header Parameter missing or invalid');\n const algEntry = JWE[alg];\n if (algEntry?.mode === \"integrated-encryption\") {\n if (enc !== void 0)\n throw new JWEInvalid('JWE \"enc\" (Encryption Algorithm) Header Parameter must not be present for integrated encryption');\n if (cek !== void 0)\n throw new TypeError(`setContentEncryptionKey cannot be called with JWE \"alg\" (Algorithm) Header ${alg}`);\n if (iv !== void 0)\n throw new TypeError(`setInitializationVector cannot be called with JWE \"alg\" (Algorithm) Header ${alg}`);\n return [joseHeader, void 0, algEntry];\n }\n if (typeof enc != \"string\" || !enc)\n throw new JWEInvalid('JWE \"enc\" (Encryption Algorithm) Header Parameter missing or invalid');\n return [joseHeader, jweEncryption(enc), algEntry];\n}\nasync function encryptJWE(input, checked, key) {\n const [joseHeader, encEntry, selected] = checked, [inputPlaintext, inputProtectedHeader, inputUnprotectedHeader, sharedUnprotectedHeader, aad, providedCek, inputIv, keyManagementParameters, , unprotectedParameters] = input;\n let protectedHeader = inputProtectedHeader, unprotectedHeader = inputUnprotectedHeader;\n const algEntry = selected ?? jweAlgorithm(joseHeader.alg);\n let encryptedKey, parameters, cek;\n algEntry.mode === \"integrated-encryption\" ? cek = await prepareKey(algEntry, key, \"encrypt\") : [cek, encryptedKey, parameters] = await encryptKeyManagement(algEntry, encEntry, key, joseHeader, providedCek, keyManagementParameters), parameters && (unprotectedParameters ? unprotectedHeader = unprotectedHeader ? { ...unprotectedHeader, ...parameters } : parameters : protectedHeader = protectedHeader ? { ...protectedHeader, ...parameters } : parameters, checkDisjoint(protectedHeader, unprotectedHeader, sharedUnprotectedHeader));\n const protectedHeaderS = protectedHeader ? b64u(JSON.stringify(protectedHeader)) : \"\", aadMember = aad?.byteLength ? b64u(aad) : void 0, additionalData = encode(aadMember ? `${protectedHeaderS}.${aadMember}` : protectedHeaderS);\n let plaintext = inputPlaintext;\n joseHeader.zip === \"DEF\" && (plaintext = await compress(plaintext).catch((cause) => {\n throw new JWEInvalid(\"Failed to compress plaintext\", { cause });\n }));\n let ciphertext, tag, iv;\n algEntry.mode === \"integrated-encryption\" ? [encryptedKey, ciphertext] = await algEntry.encrypt(cek, plaintext, additionalData, protectedHeader, joseHeader, keyManagementParameters) : { ciphertext, tag, iv } = await encrypt(encEntry, plaintext, cek, inputIv, additionalData);\n const jwe = {\n ciphertext: b64u(ciphertext)\n };\n return iv && (jwe.iv = b64u(iv)), tag && (jwe.tag = b64u(tag)), encryptedKey?.byteLength && (jwe.encrypted_key = b64u(encryptedKey)), aadMember && (jwe.aad = aadMember), protectedHeader && (jwe.protected = protectedHeaderS), sharedUnprotectedHeader && (jwe.unprotected = sharedUnprotectedHeader), unprotectedHeader && (jwe.header = unprotectedHeader), jwe;\n}\nasync function createJWE(input, key, options) {\n return encryptJWE(input, checkEncryptHeaders(input, options), key);\n}\nfunction compactJWE(jwe) {\n return [jwe.protected, jwe.encrypted_key, jwe.iv, jwe.ciphertext, jwe.tag].join(\".\");\n}\nexport {\n checkDisjoint,\n checkEncryptHeaders,\n compactJWE,\n createJWE,\n encryptJWE\n};\n","import { assertNotSet, assertUint8Array } from \"../../lib/validate.js\";\nimport { JWEInvalid } from \"../../util/errors.js\";\nimport { generateCek } from \"../../lib/content_encryption.js\";\nimport { encode as b64u } from \"../../util/base64url.js\";\nimport { checkDisjoint, checkEncryptHeaders, encryptJWE } from \"../../lib/jwe_encrypt.js\";\nimport { encryptKeyManagement } from \"../../lib/key_management.js\";\nimport { isJWECEKTransport, jweAlgorithm } from \"../../lib/jwe_algorithms.js\";\nclass IndividualRecipient {\n #parent;\n state;\n constructor(enc, key, crit) {\n this.#parent = enc, this.state = [void 0, void 0, key, crit];\n }\n setUnprotectedHeader(unprotectedHeader) {\n return assertNotSet(this.state[0], \"setUnprotectedHeader\"), this.state[0] = unprotectedHeader, this;\n }\n setKeyManagementParameters(parameters) {\n return assertNotSet(this.state[1], \"setKeyManagementParameters\"), this.state[1] = parameters, 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, options?.crit);\n return this.#recipients.push(recipient), recipient;\n }\n setProtectedHeader(protectedHeader) {\n return assertNotSet(this.#protectedHeader, \"setProtectedHeader\"), this.#protectedHeader = protectedHeader, this;\n }\n setSharedUnprotectedHeader(sharedUnprotectedHeader) {\n return assertNotSet(this.#unprotectedHeader, \"setSharedUnprotectedHeader\"), this.#unprotectedHeader = sharedUnprotectedHeader, this;\n }\n setAdditionalAuthenticatedData(aad) {\n return this.#aad = aad, this;\n }\n async encrypt() {\n if (!this.#recipients.length)\n throw new JWEInvalid(\"at least one recipient must be added\");\n assertUint8Array(this.#plaintext, \"plaintext\");\n const multiple = this.#recipients.length > 1;\n let enc, protectedHeader = this.#protectedHeader, sharedUnprotectedHeader = this.#unprotectedHeader;\n const recipients = [];\n for (const recipient of this.#recipients) {\n const [unprotectedHeader, keyManagementParameters, key, crit] = recipient.state, input = [\n this.#plaintext,\n protectedHeader,\n unprotectedHeader,\n sharedUnprotectedHeader,\n this.#aad,\n void 0,\n void 0,\n keyManagementParameters,\n crit,\n multiple\n ], headers = checkEncryptHeaders(input, void 0, recipients.length > 0);\n recipients.length || (protectedHeader = input[1], sharedUnprotectedHeader = input[3]), recipients.push([input, headers, key]);\n const [{ alg, enc: recipientEnc }, , algEntry] = headers;\n if (multiple && algEntry && !isJWECEKTransport(algEntry))\n throw new JWEInvalid(`\"${alg}\" alg may only have a single recipient`);\n if (!enc)\n enc = recipientEnc;\n else if (enc !== recipientEnc)\n throw new JWEInvalid('JWE \"enc\" (Encryption Algorithm) Header Parameter must be the same for all recipients');\n }\n for (const [, headers] of recipients)\n headers[2] ??= jweAlgorithm(headers[0].alg);\n const [firstInput, firstHeaders, firstKey] = recipients[0], cek = multiple ? generateCek(firstHeaders[1]) : void 0;\n firstInput[5] = cek;\n const { encrypted_key, header, ...shared } = await encryptJWE(firstInput, firstHeaders, firstKey), jwe = {\n ...shared,\n recipients: [{}]\n };\n encrypted_key && (jwe.recipients[0].encrypted_key = encrypted_key), header && (jwe.recipients[0].header = header);\n for (let i = 1; i < recipients.length; i++) {\n const [input, [joseHeader, encEntry, algEntry], key] = recipients[i], unprotectedHeader = input[2], [, encryptedKey, parameters] = await encryptKeyManagement(algEntry, encEntry, key, joseHeader, cek, input[7]), target = {\n encrypted_key: b64u(encryptedKey)\n };\n if (unprotectedHeader || parameters) {\n const header2 = { ...unprotectedHeader, ...parameters };\n parameters && checkDisjoint(input[1], header2, input[3]), target.header = header2;\n }\n jwe.recipients.push(target);\n }\n return jwe;\n }\n}\nexport {\n GeneralEncrypt\n};\n","import { JOSENotSupported } from \"../util/errors.js\";\nimport { table } from \"./key_descriptor.js\";\nconst sig = [[\"verify\"], [\"sign\"]];\nfunction hmac(bits) {\n const subtle = { name: \"HMAC\", hash: `SHA-${bits}` };\n return { kty: [\"oct\"], secret: !0, subtle, signing: subtle, usages: sig };\n}\nfunction rsa(bits, saltLength) {\n const subtle = { name: saltLength ? \"RSA-PSS\" : \"RSASSA-PKCS1-v1_5\", hash: `SHA-${bits}` };\n return {\n kty: [\"RSA\"],\n subtle,\n signing: saltLength ? { ...subtle, saltLength } : subtle,\n usages: sig,\n minRsaBits: 2048\n };\n}\nfunction ecdsa(crv, bits) {\n return {\n kty: [\"EC\"],\n crv,\n subtle: { name: \"ECDSA\", namedCurve: crv },\n signing: { name: \"ECDSA\", hash: `SHA-${bits}` },\n usages: sig\n };\n}\nfunction eddsa() {\n const subtle = { name: \"Ed25519\" };\n return {\n kty: [\"OKP\"],\n crv: \"Ed25519\",\n subtle,\n signing: subtle,\n usages: sig\n };\n}\nfunction mldsa(bits) {\n const subtle = { name: `ML-DSA-${bits}` };\n return {\n kty: [\"AKP\"],\n subtle,\n signing: subtle,\n usages: sig\n };\n}\nconst JWS = table({\n HS256: hmac(256),\n HS384: hmac(384),\n HS512: hmac(512),\n RS256: rsa(256),\n RS384: rsa(384),\n RS512: rsa(512),\n PS256: rsa(256, 32),\n PS384: rsa(384, 48),\n PS512: rsa(512, 64),\n ES256: ecdsa(\"P-256\", 256),\n ES384: ecdsa(\"P-384\", 384),\n ES512: ecdsa(\"P-521\", 512),\n EdDSA: eddsa(),\n Ed25519: eddsa(),\n \"ML-DSA-44\": mldsa(44),\n \"ML-DSA-65\": mldsa(65),\n \"ML-DSA-87\": mldsa(87)\n});\nfunction jwsAlgorithm(alg) {\n const entry = typeof alg == \"string\" ? JWS[alg] : void 0;\n if (!entry)\n throw new JOSENotSupported(`alg ${alg} is not supported either by JOSE or your javascript runtime`);\n return entry;\n}\nexport {\n JWS,\n jwsAlgorithm\n};\n","import { jwsAlgorithm } from \"./jws_algorithms.js\";\nimport { JOSEAlgNotAllowed, JWSInvalid, JWSSignatureVerificationFailed } from \"../util/errors.js\";\nimport { concat, decoder, encoder, encode } from \"./buffer_utils.js\";\nimport { decodeBase64url, encodeBase64url, parseJoseHeader, isDisjoint, isObject, validateB64, validateCrit, validateAlgorithms, JWS_RECOGNIZED } from \"./validate.js\";\nimport { prepareKey, rawKey, checkModulusLength } from \"./key.js\";\nfunction snapshotJws(jws, sharedPayload) {\n const encodedProtected = jws.protected, inputHeader = jws.header, header = isObject(inputHeader) ? { ...inputHeader } : inputHeader;\n let payload = sharedPayload ? sharedPayload[0] : jws.payload;\n !sharedPayload && payload instanceof Uint8Array && (payload = new Uint8Array(payload));\n const signature = jws.signature, snapshot = { payload, signature };\n if (encodedProtected !== void 0 && (snapshot.protected = encodedProtected), inputHeader !== void 0 && (snapshot.header = header), encodedProtected === void 0 && header === void 0)\n throw new JWSInvalid('Flattened JWS must have either of the \"protected\" or \"header\" members');\n if (encodedProtected !== void 0 && typeof encodedProtected != \"string\")\n throw new JWSInvalid(\"JWS Protected Header incorrect type\");\n if (payload === void 0)\n throw new JWSInvalid(\"JWS Payload missing\");\n if (typeof signature != \"string\")\n throw new JWSInvalid(\"JWS Signature missing or incorrect type\");\n if (header !== void 0 && !isObject(header))\n throw new JWSInvalid(\"JWS Unprotected Header incorrect type\");\n return snapshot;\n}\nfunction prepareVerify(options) {\n return [options && validateAlgorithms(\"algorithms\", options.algorithms), options?.crit];\n}\nfunction parseProtectedHeader(encodedProtected) {\n return encodedProtected === void 0 ? {} : parseJoseHeader(encodedProtected, JWSInvalid, \"JWS Protected Header is invalid\");\n}\nfunction encodeJsonUnencodedPayload(payload) {\n const invalid = /[\\p{Cs}\\p{Cn}]/u.exec(payload)?.[0];\n if (invalid !== void 0)\n throw new JWSInvalid(/\\p{Cs}/u.test(invalid) ? \"JWS Payload must be a well-formed Unicode string\" : \"JWS Payload must not contain unassigned Unicode code points\");\n return encoder.encode(payload);\n}\nfunction encodeCompactUnencodedPayload(payload) {\n try {\n return encode(payload);\n } catch {\n throw new JWSInvalid(\"JWS Compact Serialization payload must use only ASCII characters\");\n }\n}\nasync function verifySignature(jws, shared, key, encodeUnencodedPayload, parsedProtected) {\n const { protected: encodedProtected, header, payload: inputPayload } = jws, parsedProt = parsedProtected ?? parseProtectedHeader(encodedProtected);\n if (!isDisjoint(parsedProt, header))\n throw new JWSInvalid(\"JWS Protected and JWS Unprotected Header Parameter names must be disjoint\");\n const joseHeader = { ...parsedProt, ...header }, b64 = validateB64(parsedProt, validateCrit(JWSInvalid, JWS_RECOGNIZED, shared[1], parsedProt, joseHeader)), { alg } = joseHeader;\n if (typeof alg != \"string\" || !alg)\n throw new JWSInvalid('JWS \"alg\" (Algorithm) Header Parameter missing or invalid');\n if (shared[0] && !shared[0].has(alg))\n throw new JOSEAlgNotAllowed('\"alg\" (Algorithm) Header Parameter value not allowed');\n if (b64) {\n if (typeof inputPayload != \"string\")\n throw new JWSInvalid(\"JWS Payload must be a string\");\n } else if (typeof inputPayload != \"string\" && !(inputPayload instanceof Uint8Array))\n throw new JWSInvalid(\"JWS Payload must be a string or an Uint8Array instance\");\n const signingPayload = b64 || typeof inputPayload != \"string\" ? inputPayload : encodeUnencodedPayload(inputPayload);\n let resolvedKey = !1;\n typeof key == \"function\" && (key = await key(parsedProt, jws), resolvedKey = !0);\n const entry = jwsAlgorithm(alg), data = concat(encodedProtected !== void 0 ? encode(encodedProtected) : new Uint8Array(), encode(\".\"), typeof signingPayload == \"string\" ? shared[2] ??= encodeBase64url(signingPayload, \"payload\", JWSInvalid) : signingPayload), signature = decodeBase64url(jws.signature, \"signature\", JWSInvalid), k = await prepareKey(entry, key, \"verify\"), cryptoKey = await rawKey(k, entry.subtle, \"verify\");\n entry.minRsaBits && checkModulusLength(entry.alg, cryptoKey);\n let verified = !1;\n try {\n verified = await crypto.subtle.verify(entry.signing, cryptoKey, signature, data);\n } catch {\n }\n if (!verified)\n throw new JWSSignatureVerificationFailed();\n const result = { payload: typeof signingPayload == \"string\" ? decodeBase64url(signingPayload, \"payload\", JWSInvalid) : signingPayload };\n return encodedProtected !== void 0 && (result.protectedHeader = parsedProt), header !== void 0 && (result.unprotectedHeader = header), resolvedKey ? [{ ...result, key: k }, b64] : [result, b64];\n}\nasync function verifyCompact(jws, shared, key) {\n if (jws instanceof Uint8Array && (jws = decoder.decode(jws)), typeof jws != \"string\")\n throw new JWSInvalid(\"Compact JWS must be a string or Uint8Array\");\n const { 0: protectedHeader, 1: payload, 2: signature, length } = jws.split(\".\");\n if (length !== 3)\n throw new JWSInvalid(\"Invalid Compact JWS\");\n return verifySignature({ payload, protected: protectedHeader, signature }, shared, key, encodeCompactUnencodedPayload);\n}\nexport {\n encodeJsonUnencodedPayload,\n parseProtectedHeader,\n prepareVerify,\n snapshotJws,\n verifyCompact,\n verifySignature\n};\n","import { prepareVerify, verifyCompact } from \"../../lib/jws_verify.js\";\nasync function compactVerify(jws, key, options) {\n const [result] = await verifyCompact(jws, prepareVerify(options), key);\n return result;\n}\nexport {\n compactVerify\n};\n","import { JWSInvalid } from \"../../util/errors.js\";\nimport { isObject } from \"../../lib/validate.js\";\nimport { encodeJsonUnencodedPayload, prepareVerify, snapshotJws, verifySignature } from \"../../lib/jws_verify.js\";\nasync function flattenedVerify(jws, key, options) {\n if (!isObject(jws))\n throw new JWSInvalid(\"Flattened JWS must be an object\");\n const snapshot = snapshotJws(jws), [result] = await verifySignature(snapshot, prepareVerify(options), key, encodeJsonUnencodedPayload);\n return result;\n}\nexport {\n flattenedVerify\n};\n","import { encodeJsonUnencodedPayload, parseProtectedHeader, prepareVerify, snapshotJws, verifySignature } from \"../../lib/jws_verify.js\";\nimport { JWSInvalid, JWSSignatureVerificationFailed } from \"../../util/errors.js\";\nimport { isObject } from \"../../lib/validate.js\";\nfunction snapshotSignature(signature, payload) {\n try {\n const jws = snapshotJws(signature, [payload]), protectedHeader = parseProtectedHeader(jws.protected), { b64, crit } = protectedHeader;\n return [\n jws,\n protectedHeader,\n Array.isArray(crit) && crit.includes(\"b64\") ? typeof b64 == \"boolean\" ? b64 ? 1 : 2 : 0 : 1\n ];\n } catch {\n return;\n }\n}\nasync function generalVerify(jws, key, options) {\n if (!isObject(jws))\n throw new JWSInvalid(\"General JWS must be an object\");\n const { signatures, payload: inputPayload } = jws;\n if (!Array.isArray(signatures))\n throw new JWSInvalid(\"JWS Signatures missing or incorrect type\");\n const signatureEntries = Array.from(signatures);\n if (!signatureEntries.every(isObject))\n throw new JWSInvalid(\"JWS Signatures missing or incorrect type\");\n let shared;\n try {\n if (inputPayload === void 0)\n throw new Error();\n shared = prepareVerify(options);\n } catch {\n throw new JWSSignatureVerificationFailed();\n }\n const payload = inputPayload instanceof Uint8Array ? new Uint8Array(inputPayload) : inputPayload, candidates = signatureEntries.map((signature) => snapshotSignature(signature, payload)).filter((candidate) => candidate !== void 0);\n let modes = 0;\n for (const [, , mode] of candidates)\n if (modes |= mode, modes === 3)\n throw new JWSInvalid(\"inconsistent use of JWS Unencoded Payload (RFC7797)\");\n for (const candidate of candidates)\n try {\n const [result] = await verifySignature(candidate[0], shared, key, encodeJsonUnencodedPayload, candidate[1]);\n return result;\n } catch {\n }\n throw new JWSSignatureVerificationFailed();\n}\nexport {\n generalVerify\n};\n","import { JWTClaimValidationFailed, JWTExpired, JWTInvalid } from \"../util/errors.js\";\nimport { encoder, strictDecoder } from \"./buffer_utils.js\";\nimport { isObject } from \"./validate.js\";\nconst epoch = (date) => Math.floor(date.getTime() / 1e3), multipliers = {\n s: 1,\n m: 60,\n h: 3600,\n d: 86400,\n w: 604800,\n y: 31557600\n}, REGEX = /^(\\+|\\-)? ?(\\d+|\\d+\\.\\d+) ?(seconds?|secs?|s|minutes?|mins?|m|hours?|hrs?|h|days?|d|weeks?|w|years?|yrs?|y)(?: (ago|from now))?$/i, checkFailed = \"check_failed\";\nfunction invalidDuration() {\n throw new TypeError(\"Invalid time period format\");\n}\nfunction secs(str) {\n typeof str != \"string\" && invalidDuration();\n const matched = REGEX.exec(str);\n (!matched || matched[4] && matched[1]) && invalidDuration();\n const value = parseFloat(matched[2]), numericDate2 = Math.round(value * multipliers[matched[3][0].toLowerCase()]);\n return Number.isFinite(numericDate2) || invalidDuration(), matched[1] === \"-\" || matched[4] === \"ago\" ? -numericDate2 : numericDate2;\n}\nfunction validateInput(label, input) {\n if (!Number.isFinite(input))\n throw new TypeError(`Invalid ${label} input`);\n return input;\n}\nfunction validateStringClaim(claim, value) {\n if (typeof value != \"string\")\n throw new TypeError(`\"${claim}\" claim must be a string`);\n}\nfunction validateAudienceClaim(value) {\n if (typeof value != \"string\" && (!Array.isArray(value) || Array.from(value).some((member) => typeof member != \"string\")))\n throw new TypeError('\"aud\" claim must be a string or an array of strings');\n}\nfunction numericDate(value, label) {\n return typeof value == \"number\" ? validateInput(label, value) : value instanceof Date ? validateInput(label, epoch(value)) : epoch(/* @__PURE__ */ new Date()) + secs(value);\n}\nconst normalizeTyp = (value) => {\n const normalized = value.toLowerCase();\n return value.includes(\"/\") ? normalized : `application/${normalized}`;\n}, checkAudiencePresence = (audPayload, audOption) => typeof audPayload == \"string\" ? audOption.includes(audPayload) : Array.isArray(audPayload) ? audOption.some((aud) => audPayload.includes(aud)) : !1;\nfunction validateNumericDate(payload, claim, required = !1) {\n const value = payload[claim];\n if (!(value === void 0 && !required)) {\n if (typeof value != \"number\")\n throw new JWTClaimValidationFailed(`\"${claim}\" claim must be a number`, payload, claim, \"invalid\");\n return value;\n }\n}\nfunction unexpectedClaim(payload, claim) {\n throw new JWTClaimValidationFailed(`unexpected \"${claim}\" claim value`, payload, claim, checkFailed);\n}\nfunction validateClaimsSet(protectedHeader, encodedPayload, options = {}) {\n let payload;\n try {\n payload = JSON.parse(strictDecoder.decode(encodedPayload));\n } catch {\n }\n if (!isObject(payload))\n throw new JWTInvalid(\"JWT Claims Set must be a top-level JSON object\");\n const { typ } = options;\n if (typ !== void 0 && (typeof protectedHeader.typ != \"string\" || normalizeTyp(protectedHeader.typ) !== normalizeTyp(typ)))\n throw new JWTClaimValidationFailed('unexpected \"typ\" JWT header value', payload, \"typ\", checkFailed);\n const { requiredClaims = [], issuer, subject, audience, maxTokenAge } = options, presenceCheck = [...requiredClaims];\n maxTokenAge !== void 0 && presenceCheck.push(\"iat\"), audience !== void 0 && presenceCheck.push(\"aud\"), subject !== void 0 && presenceCheck.push(\"sub\"), issuer !== void 0 && presenceCheck.push(\"iss\");\n for (const claim of new Set(presenceCheck.reverse()))\n if (!Object.hasOwn(payload, claim))\n throw new JWTClaimValidationFailed(`missing required \"${claim}\" claim`, payload, claim, \"missing\");\n issuer !== void 0 && !(Array.isArray(issuer) ? issuer : [issuer]).includes(payload.iss) && unexpectedClaim(payload, \"iss\"), subject !== void 0 && payload.sub !== subject && unexpectedClaim(payload, \"sub\"), audience !== void 0 && !checkAudiencePresence(payload.aud, typeof audience == \"string\" ? [audience] : audience) && unexpectedClaim(payload, \"aud\");\n const { clockTolerance } = options;\n let tolerance = 0;\n if (typeof clockTolerance == \"string\")\n tolerance = secs(clockTolerance);\n else if (clockTolerance !== void 0) {\n if (typeof clockTolerance != \"number\")\n throw new TypeError(\"Invalid clockTolerance option type\");\n tolerance = clockTolerance;\n }\n validateInput(\"clockTolerance option\", tolerance);\n const { currentDate } = options, now = validateInput(\"currentDate option\", epoch(currentDate === void 0 ? /* @__PURE__ */ new Date() : currentDate)), iat = validateNumericDate(payload, \"iat\", maxTokenAge !== void 0), nbf = validateNumericDate(payload, \"nbf\");\n if (nbf !== void 0 && nbf > now + tolerance)\n throw new JWTClaimValidationFailed('\"nbf\" claim timestamp check failed', payload, \"nbf\", checkFailed);\n const exp = validateNumericDate(payload, \"exp\");\n if (exp !== void 0 && exp <= now - tolerance)\n throw new JWTExpired('\"exp\" claim timestamp check failed', payload, \"exp\", checkFailed);\n if (maxTokenAge !== void 0) {\n const age = now - iat, max = validateInput(\"maxTokenAge option\", typeof maxTokenAge == \"number\" ? maxTokenAge : secs(maxTokenAge));\n if (age - tolerance > max)\n throw new JWTExpired('\"iat\" claim timestamp check failed (too far in the past)', payload, \"iat\", checkFailed);\n if (age < -tolerance)\n throw new JWTClaimValidationFailed('\"iat\" claim timestamp check failed (it should be in the past)', payload, \"iat\", checkFailed);\n }\n return payload;\n}\nlet producerPayloads;\nfunction producerPayload(producer) {\n return producerPayloads.get(producer);\n}\nfunction jwtData(producer) {\n const payload = producerPayload(producer);\n for (const claim of [\"iat\", \"nbf\", \"exp\"]) {\n const value = payload[claim];\n if (typeof value == \"number\" && !Number.isFinite(value))\n throw new TypeError(`\"${claim}\" claim must be a finite number`);\n }\n return encoder.encode(JSON.stringify(payload));\n}\nfunction jwtClaim(producer, claim) {\n return producerPayload(producer)[claim];\n}\nclass JWTClaimsBuilder {\n constructor(payload = {}) {\n if (!isObject(payload))\n throw new TypeError(\"JWT Claims Set MUST be an object\");\n (producerPayloads ||= /* @__PURE__ */ new WeakMap()).set(this, structuredClone(payload));\n }\n setIssuer(value) {\n return validateStringClaim(\"iss\", value), producerPayload(this).iss = value, this;\n }\n setSubject(value) {\n return validateStringClaim(\"sub\", value), producerPayload(this).sub = value, this;\n }\n setAudience(value) {\n return validateAudienceClaim(value), producerPayload(this).aud = value, this;\n }\n setJti(value) {\n return validateStringClaim(\"jti\", value), producerPayload(this).jti = value, this;\n }\n setNotBefore(value) {\n return producerPayload(this).nbf = numericDate(value, \"setNotBefore\"), this;\n }\n setExpirationTime(value) {\n return producerPayload(this).exp = numericDate(value, \"setExpirationTime\"), this;\n }\n setIssuedAt(value) {\n const payload = producerPayload(this);\n return value === void 0 ? payload.iat = epoch(/* @__PURE__ */ new Date()) : typeof value == \"string\" ? payload.iat = validateInput(\"setIssuedAt\", epoch(/* @__PURE__ */ new Date()) + secs(value)) : payload.iat = numericDate(value, \"setIssuedAt\"), this;\n }\n}\nexport {\n JWTClaimsBuilder,\n jwtClaim,\n jwtData,\n secs,\n validateClaimsSet\n};\n","import { prepareVerify, verifyCompact } from \"../lib/jws_verify.js\";\nimport { validateClaimsSet } from \"../lib/jwt_claims_set.js\";\nimport { JWTInvalid } from \"../util/errors.js\";\nasync function jwtVerify(jwt, key, options) {\n const [verified, b64] = await verifyCompact(jwt, prepareVerify(options), key);\n if (!b64)\n throw new JWTInvalid(\"JWTs MUST NOT use unencoded payload\");\n const payload = validateClaimsSet(verified.protectedHeader, verified.payload, options);\n return { ...verified, payload };\n}\nexport {\n jwtVerify\n};\n","import { prepareDecrypt, decryptCompact } from \"../lib/jwe_decrypt.js\";\nimport { validateClaimsSet } from \"../lib/jwt_claims_set.js\";\nimport { JWTClaimValidationFailed } from \"../util/errors.js\";\nasync function jwtDecrypt(jwt, key, options) {\n const { plaintext, ...result } = await decryptCompact(jwt, prepareDecrypt(options), key), { protectedHeader } = result, payload = validateClaimsSet(protectedHeader, plaintext, options);\n for (const claim of [\"iss\", \"sub\", \"aud\"])\n if (protectedHeader[claim] !== void 0 && (claim === \"aud\" ? JSON.stringify(protectedHeader.aud) !== JSON.stringify(payload.aud) : protectedHeader[claim] !== payload[claim]))\n throw new JWTClaimValidationFailed(`replicated \"${claim}\" claim header parameter mismatch`, payload, claim, \"mismatch\");\n return { payload, ...result };\n}\nexport {\n jwtDecrypt\n};\n","import { assertNotSet, assertUint8Array } from \"../../lib/validate.js\";\nimport { compactJWE, createJWE } from \"../../lib/jwe_encrypt.js\";\nclass CompactEncrypt {\n #input;\n constructor(plaintext) {\n assertUint8Array(plaintext, \"plaintext\"), this.#input = [plaintext];\n }\n setContentEncryptionKey(cek) {\n return assertNotSet(this.#input[5], \"setContentEncryptionKey\"), this.#input[5] = cek, this;\n }\n setInitializationVector(iv) {\n return assertNotSet(this.#input[6], \"setInitializationVector\"), this.#input[6] = iv, this;\n }\n setProtectedHeader(protectedHeader) {\n return assertNotSet(this.#input[1], \"setProtectedHeader\"), this.#input[1] = protectedHeader, this;\n }\n setKeyManagementParameters(parameters) {\n return assertNotSet(this.#input[7], \"setKeyManagementParameters\"), this.#input[7] = parameters, this;\n }\n async encrypt(key, options) {\n return compactJWE(await createJWE([...this.#input], key, options));\n }\n}\nexport {\n CompactEncrypt\n};\n","import { assertNotSet, assertUint8Array } from \"../../lib/validate.js\";\nimport { createJWE } from \"../../lib/jwe_encrypt.js\";\nclass FlattenedEncrypt {\n #input;\n constructor(plaintext) {\n assertUint8Array(plaintext, \"plaintext\"), this.#input = [plaintext];\n }\n setKeyManagementParameters(parameters) {\n return assertNotSet(this.#input[7], \"setKeyManagementParameters\"), this.#input[7] = parameters, this;\n }\n setProtectedHeader(protectedHeader) {\n return assertNotSet(this.#input[1], \"setProtectedHeader\"), this.#input[1] = protectedHeader, this;\n }\n setSharedUnprotectedHeader(sharedUnprotectedHeader) {\n return assertNotSet(this.#input[3], \"setSharedUnprotectedHeader\"), this.#input[3] = sharedUnprotectedHeader, this;\n }\n setUnprotectedHeader(unprotectedHeader) {\n return assertNotSet(this.#input[2], \"setUnprotectedHeader\"), this.#input[2] = unprotectedHeader, this;\n }\n setAdditionalAuthenticatedData(aad) {\n return this.#input[4] = aad, this;\n }\n setContentEncryptionKey(cek) {\n return assertNotSet(this.#input[5], \"setContentEncryptionKey\"), this.#input[5] = cek, this;\n }\n setInitializationVector(iv) {\n return assertNotSet(this.#input[6], \"setInitializationVector\"), this.#input[6] = iv, this;\n }\n async encrypt(key, options) {\n return createJWE([...this.#input], key, options);\n }\n}\nexport {\n FlattenedEncrypt\n};\n","import { encode as b64u } from \"../util/base64url.js\";\nimport { jwsAlgorithm } from \"./jws_algorithms.js\";\nimport { isDisjoint, serializeJoseHeader, validateB64, validateCrit, validateCritDuplicates, JWS_RECOGNIZED } from \"./validate.js\";\nimport { JWSInvalid } from \"../util/errors.js\";\nimport { concat, encode, encoder } from \"./buffer_utils.js\";\nimport { prepareKey, rawKey, checkModulusLength } from \"./key.js\";\nasync function createSignature(input, key, rejectUnencoded) {\n let [payload, protectedHeader, unprotectedHeader, crit] = input, protectedHeaderString = \"\";\n if (protectedHeader !== void 0) {\n const normalized = serializeJoseHeader(JWSInvalid, protectedHeader);\n protectedHeader = normalized[0], protectedHeaderString = b64u(normalized[1]);\n }\n if (unprotectedHeader !== void 0 && (unprotectedHeader = serializeJoseHeader(JWSInvalid, unprotectedHeader)[0]), !protectedHeader && !unprotectedHeader)\n throw new JWSInvalid(\"either setProtectedHeader or setUnprotectedHeader must be called before #sign()\");\n if (!isDisjoint(protectedHeader, unprotectedHeader))\n throw new JWSInvalid(\"JWS Protected and JWS Unprotected Header Parameter names must be disjoint\");\n const joseHeader = { ...protectedHeader, ...unprotectedHeader };\n validateCritDuplicates(JWSInvalid, protectedHeader);\n const b64 = validateB64(protectedHeader, validateCrit(JWSInvalid, JWS_RECOGNIZED, crit, protectedHeader, joseHeader));\n b64 || rejectUnencoded?.();\n const { alg } = joseHeader;\n if (typeof alg != \"string\" || !alg)\n throw new JWSInvalid('JWS \"alg\" (Algorithm) Header Parameter missing or invalid');\n const entry = jwsAlgorithm(alg);\n let payloadS = \"\", payloadB = payload, data;\n if (b64) {\n const encoded = input[4];\n encoded ? (payloadS = encoded[0] ??= b64u(payload), payloadB = encoded[1] ??= encode(payloadS)) : (payloadS = b64u(payload), data = encoder.encode(`${protectedHeaderString}.${payloadS}`));\n }\n data ??= concat(encode(protectedHeaderString), encode(\".\"), payloadB);\n const k = await rawKey(await prepareKey(entry, key, \"sign\"), entry.subtle, \"sign\");\n entry.minRsaBits && checkModulusLength(entry.alg, k);\n const jws = {\n signature: b64u(new Uint8Array(await crypto.subtle.sign(entry.signing, k, data))),\n payload: payloadS\n };\n return protectedHeader && (jws.protected = protectedHeaderString), unprotectedHeader && (jws.header = unprotectedHeader), [jws, b64];\n}\nasync function createCompactSignature(payload, protectedHeader, crit, key, rejectUnencoded) {\n const [jws] = await createSignature([payload, protectedHeader, void 0, crit], key, rejectUnencoded);\n return `${jws.protected}.${jws.payload}.${jws.signature}`;\n}\nexport {\n createCompactSignature,\n createSignature\n};\n","import { createCompactSignature } from \"../../lib/jws_sign.js\";\nimport { assertNotSet, assertUint8Array } from \"../../lib/validate.js\";\nclass CompactSign {\n #payload;\n #protectedHeader;\n constructor(payload) {\n assertUint8Array(payload, \"payload\"), this.#payload = payload;\n }\n setProtectedHeader(protectedHeader) {\n return assertNotSet(this.#protectedHeader, \"setProtectedHeader\"), this.#protectedHeader = protectedHeader, this;\n }\n async sign(key, options) {\n return createCompactSignature(this.#payload, this.#protectedHeader, options?.crit, key, () => {\n throw new TypeError(\"use the flattened module for creating JWS with b64: false\");\n });\n }\n}\nexport {\n CompactSign\n};\n","import { createSignature } from \"../../lib/jws_sign.js\";\nimport { assertNotSet, assertUint8Array } from \"../../lib/validate.js\";\nclass FlattenedSign {\n #input;\n constructor(payload) {\n assertUint8Array(payload, \"payload\"), this.#input = [payload];\n }\n setProtectedHeader(protectedHeader) {\n return assertNotSet(this.#input[1], \"setProtectedHeader\"), this.#input[1] = protectedHeader, this;\n }\n setUnprotectedHeader(unprotectedHeader) {\n return assertNotSet(this.#input[2], \"setUnprotectedHeader\"), this.#input[2] = unprotectedHeader, this;\n }\n async sign(key, options) {\n const input = [...this.#input];\n input[3] = options?.crit;\n const [jws] = await createSignature(input, key);\n return jws;\n }\n}\nexport {\n FlattenedSign\n};\n","import { createSignature } from \"../../lib/jws_sign.js\";\nimport { JWSInvalid } from \"../../util/errors.js\";\nimport { assertNotSet, assertUint8Array } from \"../../lib/validate.js\";\nclass IndividualSignature {\n #parent;\n state;\n constructor(sig, key, options) {\n this.#parent = sig, this.state = [void 0, void 0, key, options?.crit];\n }\n setProtectedHeader(protectedHeader) {\n return assertNotSet(this.state[0], \"setProtectedHeader\"), this.state[0] = protectedHeader, this;\n }\n setUnprotectedHeader(unprotectedHeader) {\n return assertNotSet(this.state[1], \"setUnprotectedHeader\"), this.state[1] = unprotectedHeader, 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 return this.#signatures.push(signature), signature;\n }\n async sign() {\n if (!this.#signatures.length)\n throw new JWSInvalid(\"at least one signature must be added\");\n assertUint8Array(this.#payload, \"payload\");\n const jws = {\n signatures: [],\n payload: \"\"\n }, encoded = [];\n let b64;\n for (const signature of this.#signatures) {\n const [protectedHeader, unprotectedHeader, key, crit] = signature.state, [{ payload, ...rest }, signatureB64] = await createSignature([this.#payload, protectedHeader, unprotectedHeader, crit, encoded], key);\n if (b64 === void 0)\n b64 = signatureB64, jws.payload = payload;\n else if (b64 !== signatureB64)\n throw new JWSInvalid(\"inconsistent use of JWS Unencoded Payload (RFC7797)\");\n jws.signatures.push(rest);\n }\n return jws;\n }\n}\nexport {\n GeneralSign\n};\n","import { createCompactSignature } from \"../lib/jws_sign.js\";\nimport { JWTInvalid } from \"../util/errors.js\";\nimport { JWTClaimsBuilder, jwtData } from \"../lib/jwt_claims_set.js\";\nimport { assertNotSet } from \"../lib/validate.js\";\nconst SignJWT_base = JWTClaimsBuilder;\nclass SignJWT extends SignJWT_base {\n #protectedHeader;\n setProtectedHeader(protectedHeader) {\n return assertNotSet(this.#protectedHeader, \"setProtectedHeader\"), this.#protectedHeader = protectedHeader, this;\n }\n async sign(key, options) {\n return createCompactSignature(jwtData(this), this.#protectedHeader, options?.crit, key, () => {\n throw new JWTInvalid(\"JWTs MUST NOT use unencoded payload\");\n });\n }\n}\nexport {\n SignJWT\n};\n","import { compactJWE, createJWE } from \"../lib/jwe_encrypt.js\";\nimport { JWTClaimsBuilder, jwtClaim, jwtData } from \"../lib/jwt_claims_set.js\";\nimport { assertNotSet } from \"../lib/validate.js\";\nconst EncryptJWT_base = JWTClaimsBuilder;\nclass EncryptJWT extends EncryptJWT_base {\n #input = [void 0];\n #replicateIssuerAsHeader;\n #replicateSubjectAsHeader;\n #replicateAudienceAsHeader;\n setProtectedHeader(protectedHeader) {\n return assertNotSet(this.#input[1], \"setProtectedHeader\"), this.#input[1] = protectedHeader, this;\n }\n setKeyManagementParameters(parameters) {\n return assertNotSet(this.#input[7], \"setKeyManagementParameters\"), this.#input[7] = parameters, this;\n }\n setContentEncryptionKey(cek) {\n return assertNotSet(this.#input[5], \"setContentEncryptionKey\"), this.#input[5] = cek, this;\n }\n setInitializationVector(iv) {\n return assertNotSet(this.#input[6], \"setInitializationVector\"), this.#input[6] = iv, this;\n }\n replicateIssuerAsHeader() {\n return this.#replicateIssuerAsHeader = !0, this;\n }\n replicateSubjectAsHeader() {\n return this.#replicateSubjectAsHeader = !0, this;\n }\n replicateAudienceAsHeader() {\n return this.#replicateAudienceAsHeader = !0, this;\n }\n async encrypt(key, options) {\n const plaintext = jwtData(this);\n this.#input[1] && (this.#replicateIssuerAsHeader || this.#replicateSubjectAsHeader || this.#replicateAudienceAsHeader) && (this.#input[1] = {\n ...this.#input[1],\n iss: this.#replicateIssuerAsHeader ? jwtClaim(this, \"iss\") : void 0,\n sub: this.#replicateSubjectAsHeader ? jwtClaim(this, \"sub\") : void 0,\n aud: this.#replicateAudienceAsHeader ? jwtClaim(this, \"aud\") : void 0\n });\n const input = [...this.#input];\n return input[0] = plaintext, compactJWE(await createJWE(input, key, options));\n }\n}\nexport {\n EncryptJWT\n};\n","import { JOSENotSupported } from \"../util/errors.js\";\nimport { JWS } from \"./jws_algorithms.js\";\nimport { JWE } from \"./jwe_algorithms.js\";\nconst algArgument = '\"alg\" (Algorithm)';\nfunction unsupportedAlg(source = 'JWK \"alg\" (Algorithm) Parameter') {\n throw new JOSENotSupported(`Invalid or unsupported ${source} value`);\n}\nfunction keyAlgorithm(alg, source) {\n return (typeof alg == \"string\" ? JWS[alg] ?? JWE[alg] : void 0) ?? unsupportedAlg(source);\n}\nexport {\n algArgument,\n keyAlgorithm,\n unsupportedAlg\n};\n","import { invalidKeyInput, isCryptoKey, isKeyObject, validateExtractableOption } from \"./key.js\";\nimport { encodeBase64, decodeBase64 } from \"./buffer_utils.js\";\nimport { JOSENotSupported } from \"../util/errors.js\";\nimport { keyAlgorithm, unsupportedAlg, algArgument } from \"./key_algorithm.js\";\nconst formatPEM = (b64, descriptor) => {\n const newlined = (b64.match(/.{1,64}/g) || []).join(`\n`);\n return `-----BEGIN ${descriptor}-----\n${newlined}\n-----END ${descriptor}-----`;\n}, genericExport = async (keyType, keyFormat, key) => {\n if (isKeyObject(key)) {\n if (key.type !== keyType)\n throw new TypeError(`key is not a ${keyType} key`);\n return key.export({ format: \"pem\", type: keyFormat });\n }\n if (!isCryptoKey(key))\n throw new TypeError(invalidKeyInput(key, \"CryptoKey\", \"KeyObject\"));\n if (!key.extractable)\n throw new TypeError(\"CryptoKey is not extractable\");\n if (key.type !== keyType)\n throw new TypeError(`key is not a ${keyType} key`);\n return formatPEM(encodeBase64(new Uint8Array(await crypto.subtle.exportKey(keyFormat, key))), `${keyType.toUpperCase()} KEY`);\n}, toSPKI = (key) => genericExport(\"public\", \"spki\", key), toPKCS8 = (key) => genericExport(\"private\", \"pkcs8\", key), bytesEqual = (a, b) => {\n if (a.byteLength !== b.length)\n return !1;\n for (let i = 0; i < a.byteLength; i++)\n if (a[i] !== b[i])\n return !1;\n return !0;\n}, createASN1State = (data) => ({ data, pos: 0 }), readByte = (state) => {\n const byte = state.data[state.pos++];\n if (byte === void 0)\n throw new Error(\"Unexpected end of ASN.1 input\");\n return byte;\n}, parseLength = (state) => {\n const first = readByte(state);\n if (first & 128) {\n const lengthOfLen = first & 127;\n let length = 0;\n for (let i = 0; i < lengthOfLen; i++)\n length = length << 8 | readByte(state);\n return length;\n }\n return first;\n}, skipElement = (state, count = 1) => {\n for (; count-- > 0; ) {\n state.pos++;\n const length = parseLength(state);\n state.pos += length;\n }\n}, expectTag = (state, expectedTag, errorMessage) => {\n if (readByte(state) !== expectedTag)\n throw new Error(errorMessage);\n}, getSubarray = (state, length) => {\n if (length < 0 || state.pos + length > state.data.length)\n throw new Error(\"Unexpected end of ASN.1 input\");\n const result = state.data.subarray(state.pos, state.pos + length);\n return state.pos += length, result;\n}, parseAlgorithmOID = (state) => {\n expectTag(state, 6, \"Expected algorithm OID\");\n const oidLen = parseLength(state);\n return getSubarray(state, oidLen);\n};\nfunction parseKeyHeader(state, keyFormat) {\n if (expectTag(state, 48, `Invalid ${keyFormat === \"spki\" ? \"SPKI\" : \"PKCS#8\"} structure`), parseLength(state), keyFormat === \"pkcs8\") {\n expectTag(state, 2, \"Expected version field\");\n const length = parseLength(state);\n state.pos += length;\n }\n expectTag(state, 48, \"Expected algorithm identifier\"), parseLength(state);\n}\nconst parseECAlgorithmIdentifier = (state) => {\n const algOid = parseAlgorithmOID(state);\n if (bytesEqual(algOid, [43, 101, 110]))\n return \"X25519\";\n if (!bytesEqual(algOid, [42, 134, 72, 206, 61, 2, 1]))\n throw new Error(\"Unsupported key algorithm\");\n expectTag(state, 6, \"Expected curve OID\");\n const curveOidLen = parseLength(state), curveOid = getSubarray(state, curveOidLen);\n if (bytesEqual(curveOid, [42, 134, 72, 206, 61, 3, 1, 7]))\n return \"P-256\";\n if (bytesEqual(curveOid, [43, 129, 4, 0, 34]))\n return \"P-384\";\n if (bytesEqual(curveOid, [43, 129, 4, 0, 35]))\n return \"P-521\";\n throw new Error(\"Unsupported named curve\");\n}, genericImport = async (keyFormat, keyData, alg, options) => {\n const extractable = validateExtractableOption(options?.extractable), entry = keyAlgorithm(alg, algArgument);\n entry.secret && unsupportedAlg(algArgument);\n const isPublic = keyFormat === \"spki\";\n let algorithm;\n if (entry.resolve)\n try {\n const state = createASN1State(keyData);\n parseKeyHeader(state, keyFormat), algorithm = entry.resolve({ crv: parseECAlgorithmIdentifier(state) });\n } catch {\n throw new JOSENotSupported(\"Invalid or unsupported key format\");\n }\n else\n algorithm = entry.subtle;\n return crypto.subtle.importKey(keyFormat, keyData, algorithm, extractable ?? isPublic, entry.usages[isPublic ? 0 : 1]);\n}, processPEMData = (pem, pattern) => decodeBase64(pem.replace(pattern, \"\")), fromPKCS8 = (pem, alg, options) => {\n const keyData = processPEMData(pem, /(?:-----(?:BEGIN|END) PRIVATE KEY-----|\\s)/g);\n return genericImport(\"pkcs8\", keyData, alg, options);\n}, fromSPKI = (pem, alg, options) => {\n const keyData = processPEMData(pem, /(?:-----(?:BEGIN|END) PUBLIC KEY-----|\\s)/g);\n return genericImport(\"spki\", keyData, alg, options);\n};\nfunction spkiFromX509(buf) {\n const state = createASN1State(buf);\n expectTag(state, 48, \"Invalid certificate structure\");\n const certificateLength = parseLength(state);\n if (certificateLength < 0 || state.pos + certificateLength > state.data.length)\n throw new Error(\"Unexpected end of ASN.1 input\");\n expectTag(state, 48, \"Invalid tbsCertificate structure\"), parseLength(state), buf[state.pos] === 160 ? skipElement(state, 6) : skipElement(state, 5);\n const spkiStart = state.pos;\n expectTag(state, 48, \"Invalid SPKI structure\");\n const spkiContentLen = parseLength(state);\n return buf.subarray(spkiStart, spkiStart + spkiContentLen + (state.pos - spkiStart));\n}\nconst fromX509 = (pem, alg, options) => {\n let spki;\n try {\n const certificate = processPEMData(pem, /(?:-----(?:BEGIN|END) CERTIFICATE-----|\\s)/g);\n spki = spkiFromX509(certificate);\n } catch (cause) {\n throw new TypeError(\"Failed to parse the X.509 certificate\", { cause });\n }\n return genericImport(\"spki\", spki, alg, options);\n};\nexport {\n fromPKCS8,\n fromSPKI,\n fromX509,\n toPKCS8,\n toSPKI\n};\n","import { toSPKI as exportPublic, toPKCS8 as exportPrivate } from \"../lib/asn1.js\";\nimport { invalidKeyInput, isCryptoKey, isKeyObject } from \"../lib/key.js\";\nimport { encode as b64u } from \"../util/base64url.js\";\nfunction exportSPKI(key) {\n return exportPublic(key);\n}\nfunction exportPKCS8(key) {\n return exportPrivate(key);\n}\nasync function exportJWK(key) {\n if (isKeyObject(key))\n if (key.type === \"secret\")\n key = key.export();\n else\n return key.export({ format: \"jwk\" });\n if (key instanceof Uint8Array)\n return {\n kty: \"oct\",\n k: b64u(key)\n };\n if (!isCryptoKey(key))\n throw new TypeError(invalidKeyInput(key, \"CryptoKey\", \"KeyObject\", \"Uint8Array\"));\n if (!key.extractable)\n throw new TypeError(\"non-extractable CryptoKey cannot be exported as a JWK\");\n const jwk = await crypto.subtle.exportKey(\"jwk\", key);\n delete jwk.ext, delete jwk.key_ops, delete jwk.use, jwk.kty !== \"AKP\" && delete jwk.alg;\n for (const parameter of Object.keys(jwk))\n jwk[parameter] === void 0 && delete jwk[parameter];\n return jwk;\n}\nexport {\n exportJWK,\n exportPKCS8,\n exportSPKI\n};\n","import { digest, encode } from \"../lib/buffer_utils.js\";\nimport { encode as b64u } from \"../util/base64url.js\";\nimport { JOSENotSupported, JWKInvalid } from \"../util/errors.js\";\nimport { isKeyLike, invalidKeyInput, snapshotJwk } from \"../lib/key.js\";\nimport { isObject } from \"../lib/validate.js\";\nimport { exportJWK } from \"../key/export.js\";\nconst check = (value, description) => {\n if (typeof value != \"string\" || !value)\n throw new JWKInvalid(`${description} missing or invalid`);\n};\nasync function calculateJwkThumbprint(key, digestAlgorithm) {\n let jwk;\n if (isObject(key)) {\n if (jwk = snapshotJwk(key), typeof jwk.kty != \"string\")\n throw new TypeError(invalidKeyInput(key, \"CryptoKey\", \"KeyObject\", \"JSON Web Key\"));\n } else if (isKeyLike(key))\n jwk = snapshotJwk(await exportJWK(key));\n else\n throw new TypeError(invalidKeyInput(key, \"CryptoKey\", \"KeyObject\", \"JSON Web Key\"));\n if (digestAlgorithm ??= \"sha256\", digestAlgorithm !== \"sha256\" && digestAlgorithm !== \"sha384\" && digestAlgorithm !== \"sha512\")\n throw new TypeError('digestAlgorithm must one of \"sha256\", \"sha384\", or \"sha512\"');\n let components;\n switch (jwk.kty) {\n case \"AKP\":\n check(jwk.alg, '\"alg\" (Algorithm) Parameter'), check(jwk.pub, '\"pub\" (Public key) Parameter'), components = { alg: jwk.alg, kty: jwk.kty, pub: jwk.pub };\n break;\n case \"EC\":\n check(jwk.crv, '\"crv\" (Curve) Parameter'), check(jwk.x, '\"x\" (X Coordinate) Parameter'), check(jwk.y, '\"y\" (Y Coordinate) Parameter'), 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'), check(jwk.x, '\"x\" (Public Key) Parameter'), components = { crv: jwk.crv, kty: jwk.kty, x: jwk.x };\n break;\n case \"RSA\":\n check(jwk.e, '\"e\" (Exponent) Parameter'), check(jwk.n, '\"n\" (Modulus) Parameter'), components = { e: jwk.e, kty: jwk.kty, n: jwk.n };\n break;\n case \"oct\":\n if (typeof jwk.k != \"string\")\n throw new JWKInvalid('\"k\" (Key Value) Parameter missing or invalid');\n components = { k: jwk.k, kty: jwk.kty };\n break;\n default:\n throw new JOSENotSupported('\"kty\" (Key Type) Parameter missing or unsupported');\n }\n const data = encode(JSON.stringify(components));\n return b64u(await digest(digestAlgorithm, data));\n}\nasync function calculateJwkThumbprintUri(key, digestAlgorithm) {\n digestAlgorithm ??= \"sha256\";\n const thumbprint = await calculateJwkThumbprint(key, digestAlgorithm);\n return `urn:ietf:params:oauth:jwk-thumbprint:sha-${digestAlgorithm.slice(-3)}:${thumbprint}`;\n}\nexport {\n calculateJwkThumbprint,\n calculateJwkThumbprintUri\n};\n","import { jwkToKey, normalizeJwk } from \"../lib/key.js\";\nimport { jwsAlgorithm } from \"../lib/jws_algorithms.js\";\nimport { isObject } from \"../lib/validate.js\";\nimport { JWSInvalid } from \"../util/errors.js\";\nasync function EmbeddedJWK(protectedHeader, token) {\n const joseHeader = {\n ...protectedHeader,\n ...token?.header\n };\n if (!isObject(joseHeader.jwk))\n throw new JWSInvalid('\"jwk\" (JSON Web Key) Header Parameter must be a JSON object');\n let jwk;\n try {\n jwk = normalizeJwk(joseHeader.jwk);\n } catch (cause) {\n throw new JWSInvalid(\"Invalid Embedded JWK\", { cause });\n }\n const entry = jwsAlgorithm(joseHeader.alg);\n if (jwk.use !== void 0 && jwk.use !== \"sig\")\n throw new JWSInvalid('Invalid Embedded JWK, its \"use\" must be \"sig\" when present');\n if (jwk.alg !== void 0 && jwk.alg !== entry.alg)\n throw new JWSInvalid(`Invalid Embedded JWK, its \"alg\" must be \"${entry.alg}\" when present`);\n const key = await jwkToKey(entry, jwk, !0);\n if (key.type !== \"public\")\n throw new JWSInvalid('\"jwk\" (JSON Web Key) Header Parameter must be a public key');\n return key;\n}\nexport {\n EmbeddedJWK\n};\n","import { jwkToKey, snapshotJwk } from \"../lib/key.js\";\nimport { JWS } from \"../lib/jws_algorithms.js\";\nimport { JWKSInvalid, JOSENotSupported, JWKSNoMatchingKey, JWKSMultipleMatchingKeys } from \"../util/errors.js\";\nimport { isJwkSet } from \"../lib/validate.js\";\nfunction isUsableJWK(jwk, entry, alg, kid) {\n const { kty, key_ops: keyOps, ext, kid: jwkKid, alg: jwkAlg, use, crv } = jwk;\n return (ext === void 0 || typeof ext == \"boolean\") && (keyOps === void 0 || Array.isArray(keyOps) && keyOps.every((operation, index) => typeof operation == \"string\" && keyOps.indexOf(operation) === index) && keyOps.includes(\"verify\")) && entry.kty.includes(kty) && (kid === void 0 || typeof kid == \"string\" && kid === jwkKid) && (jwkAlg === void 0 ? kty !== \"AKP\" : alg === jwkAlg) && (use === void 0 || use === \"sig\") && (!entry.crv || crv === entry.crv);\n}\nasync function importWithAlgCache(cache, jwk, entry) {\n const cached = cache.get(jwk) || cache.set(jwk, {}).get(jwk), { alg } = entry;\n if (cached[alg] === void 0) {\n const pending = jwkToKey(entry, jwk, !0).then((key) => {\n if (key.type !== \"public\")\n throw new JWKSInvalid(\"JSON Web Key Set members must be public keys\");\n return cached[alg] = key, key;\n }).catch((error) => {\n throw cached[alg] === pending && delete cached[alg], error;\n });\n cached[alg] = pending;\n }\n return cached[alg];\n}\nfunction createLocalJWKSet(jwks) {\n let snapshot;\n try {\n snapshot = structuredClone(jwks);\n } catch {\n }\n if (!isJwkSet(snapshot))\n throw new JWKSInvalid(\"JSON Web Key Set malformed\");\n const metadata = snapshot.keys.map((jwk) => {\n const normalized = snapshotJwk(jwk);\n return Array.isArray(normalized.key_ops) && (normalized.key_ops = [...normalized.key_ops]), normalized;\n }), cached = /* @__PURE__ */ new WeakMap();\n return Object.defineProperty(async (protectedHeader, token) => {\n const { alg, kid } = { ...protectedHeader, ...token?.header }, entry = typeof alg == \"string\" ? JWS[alg] : void 0;\n if (!entry || entry.secret)\n throw new JOSENotSupported('Unsupported \"alg\" value for a JSON Web Key Set');\n const candidates = snapshot.keys.filter((_, index) => isUsableJWK(metadata[index], entry, alg, kid)), { 0: jwk, length } = candidates;\n if (!length)\n throw new JWKSNoMatchingKey();\n if (length !== 1) {\n const error = new JWKSMultipleMatchingKeys();\n throw error[Symbol.asyncIterator] = async function* () {\n for (const jwk2 of candidates)\n try {\n yield await importWithAlgCache(cached, jwk2, entry);\n } catch {\n }\n }, error;\n }\n return importWithAlgCache(cached, jwk, entry);\n }, \"jwks\", {\n value: () => structuredClone(snapshot)\n });\n}\nexport {\n createLocalJWKSet\n};\n","import { JOSEError, JWKSNoMatchingKey, JWKSTimeout } from \"../util/errors.js\";\nimport { createLocalJWKSet } from \"./local.js\";\nimport { isJwkSet } from \"../lib/validate.js\";\nfunction isCloudflareWorkers() {\n return typeof WebSocketPair < \"u\" || typeof navigator < \"u\" && navigator.userAgent === \"Cloudflare-Workers\" || typeof EdgeRuntime < \"u\" && EdgeRuntime === \"vercel\";\n}\nlet USER_AGENT;\n(typeof navigator > \"u\" || !navigator.userAgent?.startsWith?.(\"Mozilla/5.0 \")) && (USER_AGENT = \"jose/v6.2.12\");\nconst customFetch = /* @__PURE__ */ Symbol();\nasync function fetchJwks(url, headers, signal, fetchImpl = fetch) {\n const response = await fetchImpl(url, {\n method: \"GET\",\n signal,\n redirect: \"manual\",\n headers\n }).catch((err) => {\n throw err.name === \"TimeoutError\" ? new JWKSTimeout() : err;\n });\n if (response.status !== 200)\n throw new JOSEError(\"Expected 200 OK from the JSON Web Key Set HTTP response\");\n try {\n return await response.json();\n } catch {\n throw new JOSEError(\"Failed to parse the JSON Web Key Set HTTP response as JSON\");\n }\n}\nconst jwksCache = /* @__PURE__ */ Symbol();\nfunction isFreshFor(timestamp, duration) {\n return Number.isFinite(timestamp) && Date.now() < timestamp + duration;\n}\nfunction validateDuration(value, fallback, option) {\n if (Number.isNaN(value))\n throw new TypeError(`\"${option}\" option must not be NaN`);\n return typeof value == \"number\" ? value : fallback;\n}\nfunction createRemoteJWKSet(url, options) {\n if (!(url instanceof URL))\n throw new TypeError(\"url must be an instance of URL\");\n const href = new URL(url.href).href, opts = options ?? {}, timeoutOption = opts.timeoutDuration;\n if (typeof timeoutOption == \"number\" && (!Number.isInteger(timeoutOption) || timeoutOption < 0))\n throw new TypeError('\"timeoutDuration\" option must be a non-negative integer');\n const timeoutDuration = typeof timeoutOption == \"number\" ? timeoutOption : 5e3, cooldownDuration = validateDuration(opts.cooldownDuration, 3e4, \"cooldownDuration\"), cacheMaxAge = validateDuration(opts.cacheMaxAge, 6e5, \"cacheMaxAge\"), headers = new Headers(opts.headers);\n USER_AGENT && !headers.has(\"User-Agent\") && headers.set(\"User-Agent\", USER_AGENT), headers.has(\"accept\") || headers.set(\"accept\", \"application/json, application/jwk-set+json\");\n const fetchImpl = opts[customFetch], cache = opts[jwksCache];\n let jwksTimestamp, pendingFetch, reloadSequence = 0, appliedSequence = 0, local;\n if (cache && typeof cache == \"object\") {\n const { uat, jwks } = cache;\n isFreshFor(uat, cacheMaxAge) && isJwkSet(jwks) && (jwksTimestamp = uat, local = createLocalJWKSet(jwks));\n }\n const reload = async () => {\n if (pendingFetch && isCloudflareWorkers() && (pendingFetch = void 0), !pendingFetch) {\n const sequence = ++reloadSequence, current = pendingFetch = fetchJwks(href, headers, AbortSignal.timeout(timeoutDuration), fetchImpl).then((json) => {\n const next = createLocalJWKSet(json);\n if (sequence <= appliedSequence)\n return;\n local = next;\n const updatedAt = Date.now();\n cache && (cache.uat = updatedAt, cache.jwks = json), jwksTimestamp = updatedAt, appliedSequence = sequence;\n }).finally(() => {\n pendingFetch === current && (pendingFetch = void 0);\n });\n }\n await pendingFetch;\n };\n return Object.defineProperties(async (protectedHeader, token) => {\n (!local || !isFreshFor(jwksTimestamp, cacheMaxAge)) && await reload();\n try {\n return await local(protectedHeader, token);\n } catch (err) {\n if (err instanceof JWKSNoMatchingKey && !isFreshFor(jwksTimestamp, cooldownDuration))\n return await reload(), local(protectedHeader, token);\n throw err;\n }\n }, {\n coolingDown: {\n get: () => isFreshFor(jwksTimestamp, cooldownDuration),\n enumerable: !0\n },\n fresh: {\n get: () => isFreshFor(jwksTimestamp, cacheMaxAge),\n enumerable: !0\n },\n reload: {\n value: reload,\n enumerable: !0\n },\n reloading: {\n get: () => !!pendingFetch,\n enumerable: !0\n },\n jwks: {\n value: () => local?.jwks(),\n enumerable: !0\n }\n });\n}\nexport {\n createRemoteJWKSet,\n customFetch,\n jwksCache\n};\n","import * as b64u from \"../util/base64url.js\";\nimport { decodeBase64url, parseJoseHeader, JWS_RECOGNIZED, validateB64, validateCrit } from \"../lib/validate.js\";\nimport { JWSInvalid, JWTInvalid } from \"../util/errors.js\";\nimport { validateClaimsSet, JWTClaimsBuilder, jwtData } from \"../lib/jwt_claims_set.js\";\nconst UnsecuredJWT_base = JWTClaimsBuilder;\nclass UnsecuredJWT extends UnsecuredJWT_base {\n encode() {\n const header = b64u.encode(JSON.stringify({ alg: \"none\" })), payload = b64u.encode(jwtData(this));\n return `${header}.${payload}.`;\n }\n static decode(jwt, options) {\n if (typeof jwt != \"string\")\n throw new JWTInvalid(\"Unsecured JWT must be a string\");\n const { 0: encodedHeader, 1: encodedPayload, 2: signature, length } = jwt.split(\".\");\n if (length !== 3 || signature !== \"\")\n throw new JWTInvalid(\"Invalid Unsecured JWT\");\n let header, b64;\n try {\n header = parseJoseHeader(encodedHeader, JWSInvalid, \"JWS Protected Header is invalid\");\n const extensions = validateCrit(JWSInvalid, JWS_RECOGNIZED, void 0, header, header);\n b64 = validateB64(header, extensions);\n } catch (cause) {\n throw cause instanceof JWSInvalid ? new JWTInvalid(\"Invalid Unsecured JWT\", { cause }) : cause;\n }\n if (header.alg !== \"none\")\n throw new JWTInvalid(\"Invalid Unsecured JWT\");\n if (!b64)\n throw new JWTInvalid(\"JWTs MUST NOT use unencoded payload\");\n return { payload: validateClaimsSet(header, decodeBase64url(encodedPayload, \"payload\", JWTInvalid), options), header };\n }\n}\nexport {\n UnsecuredJWT\n};\n","import { decode as decodeBase64URL } from \"../util/base64url.js\";\nimport { fromSPKI, fromPKCS8, fromX509 } from \"../lib/asn1.js\";\nimport { jwkToKey, validateExtractableOption, normalizeJwk } from \"../lib/key.js\";\nimport { keyAlgorithm } from \"../lib/key_algorithm.js\";\nimport { JOSENotSupported } from \"../util/errors.js\";\nimport { isObject } from \"../lib/validate.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 return 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 return 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 return fromPKCS8(pkcs8, alg, options);\n}\nasync function importJWK(jwk, alg, options) {\n if (!isObject(jwk))\n throw new TypeError(\"JWK must be an object\");\n const normalized = normalizeJwk(jwk), extractable = validateExtractableOption(options?.extractable), { alg: jwkAlg } = normalized;\n if (alg ??= jwkAlg, normalized.kty !== \"oct\" && !alg)\n throw new TypeError('\"alg\" argument is required when \"jwk.alg\" is not present');\n switch (normalized.kty) {\n case \"oct\":\n if (typeof normalized.k != \"string\")\n throw new TypeError('missing \"k\" (Key Value) Parameter value');\n return decodeBase64URL(normalized.k);\n case \"AKP\": {\n if (typeof jwkAlg != \"string\" || !jwkAlg)\n throw new TypeError('missing \"alg\" (Algorithm) Parameter value');\n if (alg !== jwkAlg)\n throw new TypeError(\"JWK alg and alg option value mismatch\");\n return jwkToKey(keyAlgorithm(alg), normalized, extractable);\n }\n case \"RSA\":\n case \"EC\":\n case \"OKP\":\n return jwkToKey(keyAlgorithm(alg), normalized, extractable);\n default:\n throw new JOSENotSupported('Unsupported \"kty\" (Key Type) Parameter value');\n }\n}\nexport {\n importJWK,\n importPKCS8,\n importSPKI,\n importX509\n};\n","import { parseJoseHeader } from \"../lib/validate.js\";\nfunction decodeProtectedHeader(token) {\n let protectedB64u;\n if (typeof token == \"string\") {\n const parts = token.split(\".\");\n (parts.length === 3 || parts.length === 5) && ([protectedB64u] = parts);\n } else if (typeof token == \"object\" && token)\n if (\"protected\" in token)\n protectedB64u = token.protected;\n else\n throw new TypeError(\"Token does not contain a Protected Header\");\n const invalid = \"Invalid Token or Protected Header formatting\";\n if (typeof protectedB64u != \"string\" || !protectedB64u)\n throw new TypeError(invalid);\n return parseJoseHeader(protectedB64u, TypeError, invalid);\n}\nexport {\n decodeProtectedHeader\n};\n","import { decode as b64u } from \"./base64url.js\";\nimport { strictDecoder } from \"../lib/buffer_utils.js\";\nimport { isObject } from \"../lib/validate.js\";\nimport { JWTInvalid } from \"./errors.js\";\nfunction decodeJwt(jwt) {\n if (typeof jwt != \"string\")\n throw new 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 JWTInvalid(\"Only JWTs using Compact JWS serialization can be decoded\");\n if (length !== 3)\n throw new JWTInvalid(\"Invalid JWT\");\n if (!payload)\n throw new JWTInvalid(\"JWTs must contain a payload\");\n let decoded;\n try {\n decoded = b64u(payload);\n } catch {\n throw new JWTInvalid(\"Failed to base64url decode the payload\");\n }\n let result;\n try {\n result = JSON.parse(strictDecoder.decode(decoded));\n } catch {\n throw new JWTInvalid(\"Failed to parse the decoded payload as JSON\");\n }\n if (!isObject(result))\n throw new JWTInvalid(\"Invalid JWT Claims Set\");\n return result;\n}\nexport {\n decodeJwt\n};\n","import { JOSENotSupported } from \"../util/errors.js\";\nimport { validateExtractableOption } from \"../lib/key.js\";\nimport { keyAlgorithm, unsupportedAlg, algArgument } from \"../lib/key_algorithm.js\";\nfunction getModulusLengthOption(options) {\n const modulusLength = options?.modulusLength ?? 2048;\n if (typeof modulusLength != \"number\" || !Number.isInteger(modulusLength) || modulusLength < 2048)\n throw new JOSENotSupported(\"Invalid or unsupported modulusLength option provided, 2048 bits or larger keys must be used\");\n return modulusLength;\n}\nasync function generateKeyPair(alg, options) {\n const extractable = validateExtractableOption(options?.extractable), entry = keyAlgorithm(alg, algArgument);\n entry.secret && unsupportedAlg(algArgument);\n let algorithm;\n if (entry.resolve) {\n const crv = options?.crv ?? \"P-256\";\n if (![\"P-256\", \"P-384\", \"P-521\", \"X25519\"].includes(crv))\n throw new JOSENotSupported(\"Invalid or unsupported crv option provided, supported values are P-256, P-384, P-521, and X25519\");\n algorithm = entry.resolve({ crv });\n } else {\n if (entry.crv !== void 0 && options?.crv !== void 0 && options.crv !== entry.crv)\n throw new JOSENotSupported(`Invalid or unsupported crv option provided, the only supported value for ${alg} is ${entry.crv}`);\n algorithm = entry.kty[0] === \"RSA\" ? {\n ...entry.subtle,\n publicExponent: Uint8Array.of(1, 0, 1),\n modulusLength: getModulusLengthOption(options)\n } : entry.subtle;\n }\n return crypto.subtle.generateKey(algorithm, extractable ?? !1, [\n ...entry.usages[1],\n ...entry.usages[0]\n ]);\n}\nexport {\n generateKeyPair\n};\n","import { unsupportedAlg, algArgument } from \"../lib/key_algorithm.js\";\nimport { validateExtractableOption } from \"../lib/key.js\";\nasync function generateSecret(alg, options) {\n const extractable = validateExtractableOption(options?.extractable);\n let length, algorithm, keyUsages;\n switch (alg) {\n case \"HS256\":\n case \"HS384\":\n case \"HS512\":\n length = +alg.slice(-3), algorithm = { name: \"HMAC\", hash: `SHA-${length}`, length }, keyUsages = [\"sign\", \"verify\"];\n break;\n case \"A128CBC-HS256\":\n case \"A192CBC-HS384\":\n case \"A256CBC-HS512\":\n return crypto.getRandomValues(new Uint8Array(+alg.slice(-3) >> 3));\n case \"A128KW\":\n case \"A192KW\":\n case \"A256KW\":\n length = +alg.slice(1, 4), algorithm = { name: \"AES-KW\", length }, keyUsages = [\"wrapKey\", \"unwrapKey\"];\n break;\n case \"A128GCMKW\":\n case \"A192GCMKW\":\n case \"A256GCMKW\":\n case \"A128GCM\":\n case \"A192GCM\":\n case \"A256GCM\":\n length = +alg.slice(1, 4), algorithm = { name: \"AES-GCM\", length }, keyUsages = [\"encrypt\", \"decrypt\"];\n break;\n default:\n unsupportedAlg(algArgument);\n }\n return crypto.subtle.generateKey(algorithm, extractable ?? !1, keyUsages);\n}\nexport {\n generateSecret\n};\n","import { compactDecrypt } from \"./jwe/compact/decrypt.js\";\nimport { flattenedDecrypt } from \"./jwe/flattened/decrypt.js\";\nimport { generalDecrypt } from \"./jwe/general/decrypt.js\";\nimport { GeneralEncrypt } from \"./jwe/general/encrypt.js\";\nimport { compactVerify } from \"./jws/compact/verify.js\";\nimport { flattenedVerify } from \"./jws/flattened/verify.js\";\nimport { generalVerify } from \"./jws/general/verify.js\";\nimport { jwtVerify } from \"./jwt/verify.js\";\nimport { jwtDecrypt } from \"./jwt/decrypt.js\";\nimport { CompactEncrypt } from \"./jwe/compact/encrypt.js\";\nimport { FlattenedEncrypt } from \"./jwe/flattened/encrypt.js\";\nimport { CompactSign } from \"./jws/compact/sign.js\";\nimport { FlattenedSign } from \"./jws/flattened/sign.js\";\nimport { GeneralSign } from \"./jws/general/sign.js\";\nimport { SignJWT } from \"./jwt/sign.js\";\nimport { EncryptJWT } from \"./jwt/encrypt.js\";\nimport { calculateJwkThumbprint, calculateJwkThumbprintUri } from \"./jwk/thumbprint.js\";\nimport { EmbeddedJWK } from \"./jwk/embedded.js\";\nimport { createLocalJWKSet } from \"./jwks/local.js\";\nimport { createRemoteJWKSet, jwksCache, customFetch } from \"./jwks/remote.js\";\nimport { UnsecuredJWT } from \"./jwt/unsecured.js\";\nimport { exportPKCS8, exportSPKI, exportJWK } from \"./key/export.js\";\nimport { importSPKI, importPKCS8, importX509, importJWK } from \"./key/import.js\";\nimport { decodeProtectedHeader } from \"./util/decode_protected_header.js\";\nimport { decodeJwt } from \"./util/decode_jwt.js\";\nimport * as errors from \"./util/errors.js\";\nimport { generateKeyPair } from \"./key/generate_key_pair.js\";\nimport { generateSecret } from \"./key/generate_secret.js\";\nimport * as base64url from \"./util/base64url.js\";\nconst cryptoRuntime = \"WebCryptoAPI\";\nexport {\n CompactEncrypt,\n CompactSign,\n EmbeddedJWK,\n EncryptJWT,\n FlattenedEncrypt,\n FlattenedSign,\n GeneralEncrypt,\n GeneralSign,\n SignJWT,\n UnsecuredJWT,\n base64url,\n calculateJwkThumbprint,\n calculateJwkThumbprintUri,\n compactDecrypt,\n compactVerify,\n createLocalJWKSet,\n createRemoteJWKSet,\n cryptoRuntime,\n customFetch,\n decodeJwt,\n decodeProtectedHeader,\n errors,\n exportJWK,\n exportPKCS8,\n exportSPKI,\n flattenedDecrypt,\n flattenedVerify,\n generalDecrypt,\n generalVerify,\n generateKeyPair,\n generateSecret,\n importJWK,\n importPKCS8,\n importSPKI,\n importX509,\n jwksCache,\n jwtDecrypt,\n jwtVerify\n};\n"],"mappings":"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","names":["message","encode","encode","message","tag","tag","encode","tag","encode","tag","encode","invalid","encode","sig","encode","encode","cache","cache","encode","invalid"]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@blade-hq/agent-react",
3
- "version": "2610.0.0-beta.8",
3
+ "version": "2610.0.0-beta.81",
4
4
  "description": "Blade Agent React 绑定:BladeProvider、useAgentSession、开箱即用的 ChatView 聊天界面。",
5
5
  "repository": {
6
6
  "type": "git",
@@ -31,7 +31,7 @@
31
31
  "access": "public"
32
32
  },
33
33
  "dependencies": {
34
- "@blade-hq/agent-client": "2610.0.0-beta.8"
34
+ "@blade-hq/agent-client": "2610.0.0-beta.81"
35
35
  },
36
36
  "bundledDependencies": [],
37
37
  "peerDependencies": {