@blockspark/chat-widget 1.0.7 → 1.0.9
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +117 -140
- package/dist/_virtual/_plugin-vue_export-helper.cjs.js +2 -0
- package/dist/_virtual/_plugin-vue_export-helper.cjs.js.map +1 -0
- package/dist/_virtual/_plugin-vue_export-helper.esm.js +11 -0
- package/dist/_virtual/_plugin-vue_export-helper.esm.js.map +1 -0
- package/dist/components/ChatWidget.cjs.js +2 -0
- package/dist/components/ChatWidget.cjs.js.map +1 -0
- package/dist/components/ChatWidget.d.ts.map +1 -1
- package/dist/components/ChatWidget.esm.js +1129 -0
- package/dist/components/ChatWidget.esm.js.map +1 -0
- package/dist/components/ChatWidget.vue.cjs.js +2 -0
- package/dist/components/ChatWidget.vue.cjs.js.map +1 -0
- package/dist/components/ChatWidget.vue.cjs2.js +2 -0
- package/dist/components/ChatWidget.vue.cjs2.js.map +1 -0
- package/dist/components/ChatWidget.vue.esm.js +8 -0
- package/dist/components/ChatWidget.vue.esm.js.map +1 -0
- package/dist/components/ChatWidget.vue.esm2.js +374 -0
- package/dist/components/ChatWidget.vue.esm2.js.map +1 -0
- package/dist/composables/useChatWidget.cjs.js +2 -0
- package/dist/composables/useChatWidget.cjs.js.map +1 -0
- package/dist/composables/useChatWidget.d.ts +35 -0
- package/dist/composables/useChatWidget.d.ts.map +1 -0
- package/dist/composables/useChatWidget.esm.js +75 -0
- package/dist/composables/useChatWidget.esm.js.map +1 -0
- package/dist/core/stateManager.cjs.js +2 -0
- package/dist/core/stateManager.cjs.js.map +1 -0
- package/dist/core/stateManager.esm.js +915 -0
- package/dist/core/stateManager.esm.js.map +1 -0
- package/dist/entry/nuxt.d.ts +9 -4
- package/dist/entry/nuxt.d.ts.map +1 -1
- package/dist/entry/vanilla.cjs.js +2 -0
- package/dist/entry/vanilla.cjs.js.map +1 -0
- package/dist/entry/vanilla.esm.js +50 -0
- package/dist/entry/vanilla.esm.js.map +1 -0
- package/dist/entry/vue.d.ts +8 -5
- package/dist/entry/vue.d.ts.map +1 -1
- package/dist/hooks/useChatMode.cjs.js +2 -0
- package/dist/hooks/useChatMode.cjs.js.map +1 -0
- package/dist/hooks/useChatMode.esm.js +61 -0
- package/dist/hooks/useChatMode.esm.js.map +1 -0
- package/dist/index.cjs.js +2 -2
- package/dist/index.cjs.js.map +1 -0
- package/dist/index.esm.js +16 -2
- package/dist/index.esm.js.map +1 -0
- package/dist/node_modules/jose/dist/browser/jws/compact/sign.cjs.js +2 -0
- package/dist/node_modules/jose/dist/browser/jws/compact/sign.cjs.js.map +1 -0
- package/dist/node_modules/jose/dist/browser/jws/compact/sign.esm.js +21 -0
- package/dist/node_modules/jose/dist/browser/jws/compact/sign.esm.js.map +1 -0
- package/dist/node_modules/jose/dist/browser/jws/flattened/sign.cjs.js +2 -0
- package/dist/node_modules/jose/dist/browser/jws/flattened/sign.cjs.js.map +1 -0
- package/dist/node_modules/jose/dist/browser/jws/flattened/sign.esm.js +84 -0
- package/dist/node_modules/jose/dist/browser/jws/flattened/sign.esm.js.map +1 -0
- package/dist/node_modules/jose/dist/browser/jwt/produce.cjs.js +2 -0
- package/dist/node_modules/jose/dist/browser/jwt/produce.cjs.js.map +1 -0
- package/dist/node_modules/jose/dist/browser/jwt/produce.esm.js +72 -0
- package/dist/node_modules/jose/dist/browser/jwt/produce.esm.js.map +1 -0
- package/dist/node_modules/jose/dist/browser/jwt/sign.cjs.js +2 -0
- package/dist/node_modules/jose/dist/browser/jwt/sign.cjs.js.map +1 -0
- package/dist/node_modules/jose/dist/browser/jwt/sign.esm.js +22 -0
- package/dist/node_modules/jose/dist/browser/jwt/sign.esm.js.map +1 -0
- package/dist/node_modules/jose/dist/browser/key/import.cjs.js +2 -0
- package/dist/node_modules/jose/dist/browser/key/import.cjs.js.map +1 -0
- package/dist/node_modules/jose/dist/browser/key/import.esm.js +11 -0
- package/dist/node_modules/jose/dist/browser/key/import.esm.js.map +1 -0
- package/dist/node_modules/jose/dist/browser/lib/buffer_utils.cjs.js +2 -0
- package/dist/node_modules/jose/dist/browser/lib/buffer_utils.cjs.js.map +1 -0
- package/dist/node_modules/jose/dist/browser/lib/buffer_utils.esm.js +18 -0
- package/dist/node_modules/jose/dist/browser/lib/buffer_utils.esm.js.map +1 -0
- package/dist/node_modules/jose/dist/browser/lib/check_key_type.cjs.js +2 -0
- package/dist/node_modules/jose/dist/browser/lib/check_key_type.cjs.js.map +1 -0
- package/dist/node_modules/jose/dist/browser/lib/check_key_type.esm.js +77 -0
- package/dist/node_modules/jose/dist/browser/lib/check_key_type.esm.js.map +1 -0
- package/dist/node_modules/jose/dist/browser/lib/crypto_key.cjs.js +2 -0
- package/dist/node_modules/jose/dist/browser/lib/crypto_key.cjs.js.map +1 -0
- package/dist/node_modules/jose/dist/browser/lib/crypto_key.esm.js +101 -0
- package/dist/node_modules/jose/dist/browser/lib/crypto_key.esm.js.map +1 -0
- package/dist/node_modules/jose/dist/browser/lib/epoch.cjs.js +2 -0
- package/dist/node_modules/jose/dist/browser/lib/epoch.cjs.js.map +1 -0
- package/dist/node_modules/jose/dist/browser/lib/epoch.esm.js +5 -0
- package/dist/node_modules/jose/dist/browser/lib/epoch.esm.js.map +1 -0
- package/dist/node_modules/jose/dist/browser/lib/invalid_key_input.cjs.js +2 -0
- package/dist/node_modules/jose/dist/browser/lib/invalid_key_input.cjs.js.map +1 -0
- package/dist/node_modules/jose/dist/browser/lib/invalid_key_input.esm.js +32 -0
- package/dist/node_modules/jose/dist/browser/lib/invalid_key_input.esm.js.map +1 -0
- package/dist/node_modules/jose/dist/browser/lib/is_disjoint.cjs.js +2 -0
- package/dist/node_modules/jose/dist/browser/lib/is_disjoint.cjs.js.map +1 -0
- package/dist/node_modules/jose/dist/browser/lib/is_disjoint.esm.js +25 -0
- package/dist/node_modules/jose/dist/browser/lib/is_disjoint.esm.js.map +1 -0
- package/dist/node_modules/jose/dist/browser/lib/is_jwk.cjs.js +2 -0
- package/dist/node_modules/jose/dist/browser/lib/is_jwk.cjs.js.map +1 -0
- package/dist/node_modules/jose/dist/browser/lib/is_jwk.esm.js +20 -0
- package/dist/node_modules/jose/dist/browser/lib/is_jwk.esm.js.map +1 -0
- package/dist/node_modules/jose/dist/browser/lib/is_object.cjs.js +2 -0
- package/dist/node_modules/jose/dist/browser/lib/is_object.cjs.js.map +1 -0
- package/dist/node_modules/jose/dist/browser/lib/is_object.esm.js +20 -0
- package/dist/node_modules/jose/dist/browser/lib/is_object.esm.js.map +1 -0
- package/dist/node_modules/jose/dist/browser/lib/secs.cjs.js +2 -0
- package/dist/node_modules/jose/dist/browser/lib/secs.cjs.js.map +1 -0
- package/dist/node_modules/jose/dist/browser/lib/secs.esm.js +59 -0
- package/dist/node_modules/jose/dist/browser/lib/secs.esm.js.map +1 -0
- package/dist/node_modules/jose/dist/browser/lib/validate_crit.cjs.js +2 -0
- package/dist/node_modules/jose/dist/browser/lib/validate_crit.cjs.js.map +1 -0
- package/dist/node_modules/jose/dist/browser/lib/validate_crit.esm.js +34 -0
- package/dist/node_modules/jose/dist/browser/lib/validate_crit.esm.js.map +1 -0
- package/dist/node_modules/jose/dist/browser/runtime/asn1.cjs.js +2 -0
- package/dist/node_modules/jose/dist/browser/runtime/asn1.cjs.js.map +1 -0
- package/dist/node_modules/jose/dist/browser/runtime/asn1.esm.js +103 -0
- package/dist/node_modules/jose/dist/browser/runtime/asn1.esm.js.map +1 -0
- package/dist/node_modules/jose/dist/browser/runtime/base64url.cjs.js +2 -0
- package/dist/node_modules/jose/dist/browser/runtime/base64url.cjs.js.map +1 -0
- package/dist/node_modules/jose/dist/browser/runtime/base64url.esm.js +43 -0
- package/dist/node_modules/jose/dist/browser/runtime/base64url.esm.js.map +1 -0
- package/dist/node_modules/jose/dist/browser/runtime/check_key_length.cjs.js +2 -0
- package/dist/node_modules/jose/dist/browser/runtime/check_key_length.cjs.js.map +1 -0
- package/dist/node_modules/jose/dist/browser/runtime/check_key_length.esm.js +12 -0
- package/dist/node_modules/jose/dist/browser/runtime/check_key_length.esm.js.map +1 -0
- package/dist/node_modules/jose/dist/browser/runtime/get_sign_verify_key.cjs.js +2 -0
- package/dist/node_modules/jose/dist/browser/runtime/get_sign_verify_key.cjs.js.map +1 -0
- package/dist/node_modules/jose/dist/browser/runtime/get_sign_verify_key.esm.js +25 -0
- package/dist/node_modules/jose/dist/browser/runtime/get_sign_verify_key.esm.js.map +1 -0
- package/dist/node_modules/jose/dist/browser/runtime/is_key_like.cjs.js +2 -0
- package/dist/node_modules/jose/dist/browser/runtime/is_key_like.cjs.js.map +1 -0
- package/dist/node_modules/jose/dist/browser/runtime/is_key_like.esm.js +13 -0
- package/dist/node_modules/jose/dist/browser/runtime/is_key_like.esm.js.map +1 -0
- package/dist/node_modules/jose/dist/browser/runtime/jwk_to_key.cjs.js +2 -0
- package/dist/node_modules/jose/dist/browser/runtime/jwk_to_key.cjs.js.map +1 -0
- package/dist/node_modules/jose/dist/browser/runtime/jwk_to_key.esm.js +107 -0
- package/dist/node_modules/jose/dist/browser/runtime/jwk_to_key.esm.js.map +1 -0
- package/dist/node_modules/jose/dist/browser/runtime/normalize_key.cjs.js +2 -0
- package/dist/node_modules/jose/dist/browser/runtime/normalize_key.cjs.js.map +1 -0
- package/dist/node_modules/jose/dist/browser/runtime/normalize_key.esm.js +71 -0
- package/dist/node_modules/jose/dist/browser/runtime/normalize_key.esm.js.map +1 -0
- package/dist/node_modules/jose/dist/browser/runtime/sign.cjs.js +2 -0
- package/dist/node_modules/jose/dist/browser/runtime/sign.cjs.js.map +1 -0
- package/dist/node_modules/jose/dist/browser/runtime/sign.esm.js +14 -0
- package/dist/node_modules/jose/dist/browser/runtime/sign.esm.js.map +1 -0
- package/dist/node_modules/jose/dist/browser/runtime/subtle_dsa.cjs.js +2 -0
- package/dist/node_modules/jose/dist/browser/runtime/subtle_dsa.cjs.js.map +1 -0
- package/dist/node_modules/jose/dist/browser/runtime/subtle_dsa.esm.js +32 -0
- package/dist/node_modules/jose/dist/browser/runtime/subtle_dsa.esm.js.map +1 -0
- package/dist/node_modules/jose/dist/browser/runtime/webcrypto.cjs.js +2 -0
- package/dist/node_modules/jose/dist/browser/runtime/webcrypto.cjs.js.map +1 -0
- package/dist/node_modules/jose/dist/browser/runtime/webcrypto.esm.js +7 -0
- package/dist/node_modules/jose/dist/browser/runtime/webcrypto.esm.js.map +1 -0
- package/dist/node_modules/jose/dist/browser/util/errors.cjs.js +2 -0
- package/dist/node_modules/jose/dist/browser/util/errors.cjs.js.map +1 -0
- package/dist/node_modules/jose/dist/browser/util/errors.esm.js +131 -0
- package/dist/node_modules/jose/dist/browser/util/errors.esm.js.map +1 -0
- package/dist/node_modules/react-dom/client.cjs.js +2 -0
- package/dist/node_modules/react-dom/client.cjs.js.map +1 -0
- package/dist/node_modules/react-dom/client.esm.js +21 -0
- package/dist/node_modules/react-dom/client.esm.js.map +1 -0
- package/dist/nuxt.cjs.js +2 -0
- package/dist/nuxt.cjs.js.map +1 -0
- package/dist/nuxt.esm.js +10 -0
- package/dist/nuxt.esm.js.map +1 -0
- package/dist/services/chatService.cjs.js +2 -0
- package/dist/services/chatService.cjs.js.map +1 -0
- package/dist/services/chatService.esm.js +482 -0
- package/dist/services/chatService.esm.js.map +1 -0
- package/dist/services/dialogflowClient.cjs.js +2 -0
- package/dist/services/dialogflowClient.cjs.js.map +1 -0
- package/dist/services/dialogflowClient.esm.js +282 -0
- package/dist/services/dialogflowClient.esm.js.map +1 -0
- package/dist/services/sessionManager.cjs.js +2 -0
- package/dist/services/sessionManager.cjs.js.map +1 -0
- package/dist/services/sessionManager.esm.js +48 -0
- package/dist/services/sessionManager.esm.js.map +1 -0
- package/dist/styles.css +1 -596
- package/dist/utils/frameworkDetector.cjs.js +2 -0
- package/dist/utils/frameworkDetector.cjs.js.map +1 -0
- package/dist/utils/frameworkDetector.esm.js +125 -0
- package/dist/utils/frameworkDetector.esm.js.map +1 -0
- package/dist/utils/sanitize.cjs.js +2 -0
- package/dist/utils/sanitize.cjs.js.map +1 -0
- package/dist/utils/sanitize.d.ts +25 -0
- package/dist/utils/sanitize.d.ts.map +1 -0
- package/dist/utils/sanitize.esm.js +52 -0
- package/dist/utils/sanitize.esm.js.map +1 -0
- package/dist/utils/ssr.d.ts +35 -0
- package/dist/utils/ssr.d.ts.map +1 -0
- package/dist/vue.cjs.js +2 -1
- package/dist/vue.cjs.js.map +1 -0
- package/dist/vue.esm.js +10 -1
- package/dist/vue.esm.js.map +1 -0
- package/package.json +30 -23
- package/dist/index.cjs.js.LICENSE.txt +0 -27
- package/dist/index.esm.js.LICENSE.txt +0 -27
- package/dist/index.js +0 -2
- package/dist/index.js.LICENSE.txt +0 -9
- package/dist/index.umd.js +0 -2
- package/dist/index.umd.js.LICENSE.txt +0 -27
- package/dist/react.cjs.js +0 -2
- package/dist/react.cjs.js.LICENSE.txt +0 -9
- package/dist/react.esm.js +0 -2
- package/dist/react.esm.js.LICENSE.txt +0 -9
- package/dist/vue/ChatWidgetWrapper.d.ts +0 -182
- package/dist/vue/ChatWidgetWrapper.d.ts.map +0 -1
- package/dist/vue/index.d.ts +0 -191
- package/dist/vue/index.d.ts.map +0 -1
- package/dist/vue.js +0 -2
- package/dist/vue.js.LICENSE.txt +0 -39
|
@@ -0,0 +1,101 @@
|
|
|
1
|
+
function unusable(name, prop = "algorithm.name") {
|
|
2
|
+
return new TypeError(`CryptoKey does not support this operation, its ${prop} must be ${name}`);
|
|
3
|
+
}
|
|
4
|
+
function isAlgorithm(algorithm, name) {
|
|
5
|
+
return algorithm.name === name;
|
|
6
|
+
}
|
|
7
|
+
function getHashLength(hash) {
|
|
8
|
+
return parseInt(hash.name.slice(4), 10);
|
|
9
|
+
}
|
|
10
|
+
function getNamedCurve(alg) {
|
|
11
|
+
switch (alg) {
|
|
12
|
+
case "ES256":
|
|
13
|
+
return "P-256";
|
|
14
|
+
case "ES384":
|
|
15
|
+
return "P-384";
|
|
16
|
+
case "ES512":
|
|
17
|
+
return "P-521";
|
|
18
|
+
default:
|
|
19
|
+
throw new Error("unreachable");
|
|
20
|
+
}
|
|
21
|
+
}
|
|
22
|
+
function checkUsage(key, usages) {
|
|
23
|
+
if (usages.length && !usages.some((expected) => key.usages.includes(expected))) {
|
|
24
|
+
let msg = "CryptoKey does not support this operation, its usages must include ";
|
|
25
|
+
if (usages.length > 2) {
|
|
26
|
+
const last = usages.pop();
|
|
27
|
+
msg += `one of ${usages.join(", ")}, or ${last}.`;
|
|
28
|
+
} else if (usages.length === 2) {
|
|
29
|
+
msg += `one of ${usages[0]} or ${usages[1]}.`;
|
|
30
|
+
} else {
|
|
31
|
+
msg += `${usages[0]}.`;
|
|
32
|
+
}
|
|
33
|
+
throw new TypeError(msg);
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
function checkSigCryptoKey(key, alg, ...usages) {
|
|
37
|
+
switch (alg) {
|
|
38
|
+
case "HS256":
|
|
39
|
+
case "HS384":
|
|
40
|
+
case "HS512": {
|
|
41
|
+
if (!isAlgorithm(key.algorithm, "HMAC"))
|
|
42
|
+
throw unusable("HMAC");
|
|
43
|
+
const expected = parseInt(alg.slice(2), 10);
|
|
44
|
+
const actual = getHashLength(key.algorithm.hash);
|
|
45
|
+
if (actual !== expected)
|
|
46
|
+
throw unusable(`SHA-${expected}`, "algorithm.hash");
|
|
47
|
+
break;
|
|
48
|
+
}
|
|
49
|
+
case "RS256":
|
|
50
|
+
case "RS384":
|
|
51
|
+
case "RS512": {
|
|
52
|
+
if (!isAlgorithm(key.algorithm, "RSASSA-PKCS1-v1_5"))
|
|
53
|
+
throw unusable("RSASSA-PKCS1-v1_5");
|
|
54
|
+
const expected = parseInt(alg.slice(2), 10);
|
|
55
|
+
const actual = getHashLength(key.algorithm.hash);
|
|
56
|
+
if (actual !== expected)
|
|
57
|
+
throw unusable(`SHA-${expected}`, "algorithm.hash");
|
|
58
|
+
break;
|
|
59
|
+
}
|
|
60
|
+
case "PS256":
|
|
61
|
+
case "PS384":
|
|
62
|
+
case "PS512": {
|
|
63
|
+
if (!isAlgorithm(key.algorithm, "RSA-PSS"))
|
|
64
|
+
throw unusable("RSA-PSS");
|
|
65
|
+
const expected = parseInt(alg.slice(2), 10);
|
|
66
|
+
const actual = getHashLength(key.algorithm.hash);
|
|
67
|
+
if (actual !== expected)
|
|
68
|
+
throw unusable(`SHA-${expected}`, "algorithm.hash");
|
|
69
|
+
break;
|
|
70
|
+
}
|
|
71
|
+
case "EdDSA": {
|
|
72
|
+
if (key.algorithm.name !== "Ed25519" && key.algorithm.name !== "Ed448") {
|
|
73
|
+
throw unusable("Ed25519 or Ed448");
|
|
74
|
+
}
|
|
75
|
+
break;
|
|
76
|
+
}
|
|
77
|
+
case "Ed25519": {
|
|
78
|
+
if (!isAlgorithm(key.algorithm, "Ed25519"))
|
|
79
|
+
throw unusable("Ed25519");
|
|
80
|
+
break;
|
|
81
|
+
}
|
|
82
|
+
case "ES256":
|
|
83
|
+
case "ES384":
|
|
84
|
+
case "ES512": {
|
|
85
|
+
if (!isAlgorithm(key.algorithm, "ECDSA"))
|
|
86
|
+
throw unusable("ECDSA");
|
|
87
|
+
const expected = getNamedCurve(alg);
|
|
88
|
+
const actual = key.algorithm.namedCurve;
|
|
89
|
+
if (actual !== expected)
|
|
90
|
+
throw unusable(expected, "algorithm.namedCurve");
|
|
91
|
+
break;
|
|
92
|
+
}
|
|
93
|
+
default:
|
|
94
|
+
throw new TypeError("CryptoKey does not support this operation");
|
|
95
|
+
}
|
|
96
|
+
checkUsage(key, usages);
|
|
97
|
+
}
|
|
98
|
+
export {
|
|
99
|
+
checkSigCryptoKey
|
|
100
|
+
};
|
|
101
|
+
//# sourceMappingURL=crypto_key.esm.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"crypto_key.esm.js","sources":["../../../../../../node_modules/jose/dist/browser/lib/crypto_key.js"],"sourcesContent":["function unusable(name, prop = 'algorithm.name') {\n return new TypeError(`CryptoKey does not support this operation, its ${prop} must be ${name}`);\n}\nfunction isAlgorithm(algorithm, name) {\n return algorithm.name === name;\n}\nfunction getHashLength(hash) {\n return parseInt(hash.name.slice(4), 10);\n}\nfunction getNamedCurve(alg) {\n switch (alg) {\n case 'ES256':\n return 'P-256';\n case 'ES384':\n return 'P-384';\n case 'ES512':\n return 'P-521';\n default:\n throw new Error('unreachable');\n }\n}\nfunction checkUsage(key, usages) {\n if (usages.length && !usages.some((expected) => key.usages.includes(expected))) {\n let msg = 'CryptoKey does not support this operation, its usages must include ';\n if (usages.length > 2) {\n const last = usages.pop();\n msg += `one of ${usages.join(', ')}, or ${last}.`;\n }\n else if (usages.length === 2) {\n msg += `one of ${usages[0]} or ${usages[1]}.`;\n }\n else {\n msg += `${usages[0]}.`;\n }\n throw new TypeError(msg);\n }\n}\nexport function checkSigCryptoKey(key, alg, ...usages) {\n switch (alg) {\n case 'HS256':\n case 'HS384':\n case 'HS512': {\n if (!isAlgorithm(key.algorithm, 'HMAC'))\n throw unusable('HMAC');\n const expected = parseInt(alg.slice(2), 10);\n const actual = getHashLength(key.algorithm.hash);\n if (actual !== expected)\n throw unusable(`SHA-${expected}`, 'algorithm.hash');\n break;\n }\n case 'RS256':\n case 'RS384':\n case 'RS512': {\n if (!isAlgorithm(key.algorithm, 'RSASSA-PKCS1-v1_5'))\n throw unusable('RSASSA-PKCS1-v1_5');\n const expected = parseInt(alg.slice(2), 10);\n const actual = getHashLength(key.algorithm.hash);\n if (actual !== expected)\n throw unusable(`SHA-${expected}`, 'algorithm.hash');\n break;\n }\n case 'PS256':\n case 'PS384':\n case 'PS512': {\n if (!isAlgorithm(key.algorithm, 'RSA-PSS'))\n throw unusable('RSA-PSS');\n const expected = parseInt(alg.slice(2), 10);\n const actual = getHashLength(key.algorithm.hash);\n if (actual !== expected)\n throw unusable(`SHA-${expected}`, 'algorithm.hash');\n break;\n }\n case 'EdDSA': {\n if (key.algorithm.name !== 'Ed25519' && key.algorithm.name !== 'Ed448') {\n throw unusable('Ed25519 or Ed448');\n }\n break;\n }\n case 'Ed25519': {\n if (!isAlgorithm(key.algorithm, 'Ed25519'))\n throw unusable('Ed25519');\n break;\n }\n case 'ES256':\n case 'ES384':\n case 'ES512': {\n if (!isAlgorithm(key.algorithm, 'ECDSA'))\n throw unusable('ECDSA');\n const expected = getNamedCurve(alg);\n const actual = key.algorithm.namedCurve;\n if (actual !== expected)\n throw unusable(expected, 'algorithm.namedCurve');\n break;\n }\n default:\n throw new TypeError('CryptoKey does not support this operation');\n }\n checkUsage(key, usages);\n}\nexport function checkEncCryptoKey(key, alg, ...usages) {\n switch (alg) {\n case 'A128GCM':\n case 'A192GCM':\n case 'A256GCM': {\n if (!isAlgorithm(key.algorithm, 'AES-GCM'))\n throw unusable('AES-GCM');\n const expected = parseInt(alg.slice(1, 4), 10);\n const actual = key.algorithm.length;\n if (actual !== expected)\n throw unusable(expected, 'algorithm.length');\n break;\n }\n case 'A128KW':\n case 'A192KW':\n case 'A256KW': {\n if (!isAlgorithm(key.algorithm, 'AES-KW'))\n throw unusable('AES-KW');\n const expected = parseInt(alg.slice(1, 4), 10);\n const actual = key.algorithm.length;\n if (actual !== expected)\n throw unusable(expected, 'algorithm.length');\n break;\n }\n case 'ECDH': {\n switch (key.algorithm.name) {\n case 'ECDH':\n case 'X25519':\n case 'X448':\n break;\n default:\n throw unusable('ECDH, X25519, or X448');\n }\n break;\n }\n case 'PBES2-HS256+A128KW':\n case 'PBES2-HS384+A192KW':\n case 'PBES2-HS512+A256KW':\n if (!isAlgorithm(key.algorithm, 'PBKDF2'))\n throw unusable('PBKDF2');\n break;\n case 'RSA-OAEP':\n case 'RSA-OAEP-256':\n case 'RSA-OAEP-384':\n case 'RSA-OAEP-512': {\n if (!isAlgorithm(key.algorithm, 'RSA-OAEP'))\n throw unusable('RSA-OAEP');\n const expected = parseInt(alg.slice(9), 10) || 1;\n const actual = getHashLength(key.algorithm.hash);\n if (actual !== expected)\n throw unusable(`SHA-${expected}`, 'algorithm.hash');\n break;\n }\n default:\n throw new TypeError('CryptoKey does not support this operation');\n }\n checkUsage(key, usages);\n}\n"],"names":[],"mappings":"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","x_google_ignoreList":[0]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"epoch.cjs.js","sources":["../../../../../../node_modules/jose/dist/browser/lib/epoch.js"],"sourcesContent":["export default (date) => Math.floor(date.getTime() / 1000);\n"],"names":["date","Math","floor","getTime"],"mappings":"4HAAgBA,GAASC,KAAKC,MAAMF,EAAKG,UAAY","x_google_ignoreList":[0]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"epoch.esm.js","sources":["../../../../../../node_modules/jose/dist/browser/lib/epoch.js"],"sourcesContent":["export default (date) => Math.floor(date.getTime() / 1000);\n"],"names":[],"mappings":"AAAA,MAAA,QAAe,CAAC,SAAS,KAAK,MAAM,KAAK,QAAO,IAAK,GAAI;","x_google_ignoreList":[0]}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
"use strict";function e(e,t,...o){if((o=o.filter(Boolean)).length>2){const t=o.pop();e+=`one of type ${o.join(", ")}, or ${t}.`}else 2===o.length?e+=`one of type ${o[0]} or ${o[1]}.`:e+=`of type ${o[0]}.`;return null==t?e+=` Received ${t}`:"function"==typeof t&&t.name?e+=` Received function ${t.name}`:"object"==typeof t&&null!=t&&t.constructor?.name&&(e+=` Received an instance of ${t.constructor.name}`),e}Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});exports.default=(t,...o)=>e("Key must be ",t,...o),exports.withAlg=function(t,o,...n){return e(`Key for the ${t} algorithm must be `,o,...n)};
|
|
2
|
+
//# sourceMappingURL=invalid_key_input.cjs.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"invalid_key_input.cjs.js","sources":["../../../../../../node_modules/jose/dist/browser/lib/invalid_key_input.js"],"sourcesContent":["function message(msg, actual, ...types) {\n types = types.filter(Boolean);\n if (types.length > 2) {\n const last = types.pop();\n msg += `one of type ${types.join(', ')}, or ${last}.`;\n }\n else if (types.length === 2) {\n msg += `one of type ${types[0]} or ${types[1]}.`;\n }\n else {\n msg += `of type ${types[0]}.`;\n }\n if (actual == null) {\n msg += ` Received ${actual}`;\n }\n else if (typeof actual === 'function' && actual.name) {\n msg += ` Received function ${actual.name}`;\n }\n else if (typeof actual === 'object' && actual != null) {\n if (actual.constructor?.name) {\n msg += ` Received an instance of ${actual.constructor.name}`;\n }\n }\n return msg;\n}\nexport default (actual, ...types) => {\n return message('Key must be ', actual, ...types);\n};\nexport function withAlg(alg, actual, ...types) {\n return message(`Key for the ${alg} algorithm must be `, actual, ...types);\n}\n"],"names":["message","msg","actual","types","filter","Boolean","length","last","pop","join","name","constructor","alg"],"mappings":"aAAA,SAASA,EAAQC,EAAKC,KAAWC,GAE7B,IADAA,EAAQA,EAAMC,OAAOC,UACXC,OAAS,EAAG,CAClB,MAAMC,EAAOJ,EAAMK,MACnBP,GAAO,eAAeE,EAAMM,KAAK,aAAaF,IAClD,MAC0B,IAAjBJ,EAAMG,OACXL,GAAO,eAAeE,EAAM,SAASA,EAAM,MAG3CF,GAAO,WAAWE,EAAM,MAa5B,OAXc,MAAVD,EACAD,GAAO,aAAaC,IAEG,mBAAXA,GAAyBA,EAAOQ,KAC5CT,GAAO,sBAAsBC,EAAOQ,OAEb,iBAAXR,GAAiC,MAAVA,GAC/BA,EAAOS,aAAaD,OACpBT,GAAO,4BAA4BC,EAAOS,YAAYD,QAGvDT,CACX,gHACe,CAACC,KAAWC,IAChBH,EAAQ,eAAgBE,KAAWC,mBAEvC,SAAiBS,EAAKV,KAAWC,GACpC,OAAOH,EAAQ,eAAeY,uBAA0BV,KAAWC,EACvE","x_google_ignoreList":[0]}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
function message(msg, actual, ...types) {
|
|
2
|
+
types = types.filter(Boolean);
|
|
3
|
+
if (types.length > 2) {
|
|
4
|
+
const last = types.pop();
|
|
5
|
+
msg += `one of type ${types.join(", ")}, or ${last}.`;
|
|
6
|
+
} else if (types.length === 2) {
|
|
7
|
+
msg += `one of type ${types[0]} or ${types[1]}.`;
|
|
8
|
+
} else {
|
|
9
|
+
msg += `of type ${types[0]}.`;
|
|
10
|
+
}
|
|
11
|
+
if (actual == null) {
|
|
12
|
+
msg += ` Received ${actual}`;
|
|
13
|
+
} else if (typeof actual === "function" && actual.name) {
|
|
14
|
+
msg += ` Received function ${actual.name}`;
|
|
15
|
+
} else if (typeof actual === "object" && actual != null) {
|
|
16
|
+
if (actual.constructor?.name) {
|
|
17
|
+
msg += ` Received an instance of ${actual.constructor.name}`;
|
|
18
|
+
}
|
|
19
|
+
}
|
|
20
|
+
return msg;
|
|
21
|
+
}
|
|
22
|
+
const invalidKeyInput = (actual, ...types) => {
|
|
23
|
+
return message("Key must be ", actual, ...types);
|
|
24
|
+
};
|
|
25
|
+
function withAlg(alg, actual, ...types) {
|
|
26
|
+
return message(`Key for the ${alg} algorithm must be `, actual, ...types);
|
|
27
|
+
}
|
|
28
|
+
export {
|
|
29
|
+
invalidKeyInput as default,
|
|
30
|
+
withAlg
|
|
31
|
+
};
|
|
32
|
+
//# sourceMappingURL=invalid_key_input.esm.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"invalid_key_input.esm.js","sources":["../../../../../../node_modules/jose/dist/browser/lib/invalid_key_input.js"],"sourcesContent":["function message(msg, actual, ...types) {\n types = types.filter(Boolean);\n if (types.length > 2) {\n const last = types.pop();\n msg += `one of type ${types.join(', ')}, or ${last}.`;\n }\n else if (types.length === 2) {\n msg += `one of type ${types[0]} or ${types[1]}.`;\n }\n else {\n msg += `of type ${types[0]}.`;\n }\n if (actual == null) {\n msg += ` Received ${actual}`;\n }\n else if (typeof actual === 'function' && actual.name) {\n msg += ` Received function ${actual.name}`;\n }\n else if (typeof actual === 'object' && actual != null) {\n if (actual.constructor?.name) {\n msg += ` Received an instance of ${actual.constructor.name}`;\n }\n }\n return msg;\n}\nexport default (actual, ...types) => {\n return message('Key must be ', actual, ...types);\n};\nexport function withAlg(alg, actual, ...types) {\n return message(`Key for the ${alg} algorithm must be `, actual, ...types);\n}\n"],"names":[],"mappings":"AAAA,SAAS,QAAQ,KAAK,WAAW,OAAO;AACpC,UAAQ,MAAM,OAAO,OAAO;AAC5B,MAAI,MAAM,SAAS,GAAG;AAClB,UAAM,OAAO,MAAM,IAAG;AACtB,WAAO,eAAe,MAAM,KAAK,IAAI,CAAC,QAAQ,IAAI;AAAA,EACtD,WACS,MAAM,WAAW,GAAG;AACzB,WAAO,eAAe,MAAM,CAAC,CAAC,OAAO,MAAM,CAAC,CAAC;AAAA,EACjD,OACK;AACD,WAAO,WAAW,MAAM,CAAC,CAAC;AAAA,EAC9B;AACA,MAAI,UAAU,MAAM;AAChB,WAAO,aAAa,MAAM;AAAA,EAC9B,WACS,OAAO,WAAW,cAAc,OAAO,MAAM;AAClD,WAAO,sBAAsB,OAAO,IAAI;AAAA,EAC5C,WACS,OAAO,WAAW,YAAY,UAAU,MAAM;AACnD,QAAI,OAAO,aAAa,MAAM;AAC1B,aAAO,4BAA4B,OAAO,YAAY,IAAI;AAAA,IAC9D;AAAA,EACJ;AACA,SAAO;AACX;AACA,MAAA,kBAAe,CAAC,WAAW,UAAU;AACjC,SAAO,QAAQ,gBAAgB,QAAQ,GAAG,KAAK;AACnD;AACO,SAAS,QAAQ,KAAK,WAAW,OAAO;AAC3C,SAAO,QAAQ,eAAe,GAAG,uBAAuB,QAAQ,GAAG,KAAK;AAC5E;","x_google_ignoreList":[0]}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
"use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});exports.default=(...e)=>{const t=e.filter(Boolean);if(0===t.length||1===t.length)return!0;let o;for(const r of t){const e=Object.keys(r);if(o&&0!==o.size)for(const t of e){if(o.has(t))return!1;o.add(t)}else o=new Set(e)}return!0};
|
|
2
|
+
//# sourceMappingURL=is_disjoint.cjs.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"is_disjoint.cjs.js","sources":["../../../../../../node_modules/jose/dist/browser/lib/is_disjoint.js"],"sourcesContent":["const isDisjoint = (...headers) => {\n const sources = headers.filter(Boolean);\n if (sources.length === 0 || sources.length === 1) {\n return true;\n }\n let acc;\n for (const header of sources) {\n const parameters = Object.keys(header);\n if (!acc || acc.size === 0) {\n acc = new Set(parameters);\n continue;\n }\n for (const parameter of parameters) {\n if (acc.has(parameter)) {\n return false;\n }\n acc.add(parameter);\n }\n }\n return true;\n};\nexport default isDisjoint;\n"],"names":["headers","sources","filter","Boolean","length","acc","header","parameters","Object","keys","size","parameter","has","add","Set"],"mappings":"4HAAmB,IAAIA,KACnB,MAAMC,EAAUD,EAAQE,OAAOC,SAC/B,GAAuB,IAAnBF,EAAQG,QAAmC,IAAnBH,EAAQG,OAChC,OAAO,EAEX,IAAIC,EACJ,IAAA,MAAWC,KAAUL,EAAS,CAC1B,MAAMM,EAAaC,OAAOC,KAAKH,GAC/B,GAAKD,GAAoB,IAAbA,EAAIK,KAIhB,IAAA,MAAWC,KAAaJ,EAAY,CAChC,GAAIF,EAAIO,IAAID,GACR,OAAO,EAEXN,EAAIQ,IAAIF,EACZ,MARIN,EAAM,IAAIS,IAAIP,EAStB,CACA,OAAO","x_google_ignoreList":[0]}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
const isDisjoint = (...headers) => {
|
|
2
|
+
const sources = headers.filter(Boolean);
|
|
3
|
+
if (sources.length === 0 || sources.length === 1) {
|
|
4
|
+
return true;
|
|
5
|
+
}
|
|
6
|
+
let acc;
|
|
7
|
+
for (const header of sources) {
|
|
8
|
+
const parameters = Object.keys(header);
|
|
9
|
+
if (!acc || acc.size === 0) {
|
|
10
|
+
acc = new Set(parameters);
|
|
11
|
+
continue;
|
|
12
|
+
}
|
|
13
|
+
for (const parameter of parameters) {
|
|
14
|
+
if (acc.has(parameter)) {
|
|
15
|
+
return false;
|
|
16
|
+
}
|
|
17
|
+
acc.add(parameter);
|
|
18
|
+
}
|
|
19
|
+
}
|
|
20
|
+
return true;
|
|
21
|
+
};
|
|
22
|
+
export {
|
|
23
|
+
isDisjoint as default
|
|
24
|
+
};
|
|
25
|
+
//# sourceMappingURL=is_disjoint.esm.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"is_disjoint.esm.js","sources":["../../../../../../node_modules/jose/dist/browser/lib/is_disjoint.js"],"sourcesContent":["const isDisjoint = (...headers) => {\n const sources = headers.filter(Boolean);\n if (sources.length === 0 || sources.length === 1) {\n return true;\n }\n let acc;\n for (const header of sources) {\n const parameters = Object.keys(header);\n if (!acc || acc.size === 0) {\n acc = new Set(parameters);\n continue;\n }\n for (const parameter of parameters) {\n if (acc.has(parameter)) {\n return false;\n }\n acc.add(parameter);\n }\n }\n return true;\n};\nexport default isDisjoint;\n"],"names":[],"mappings":"AAAK,MAAC,aAAa,IAAI,YAAY;AAC/B,QAAM,UAAU,QAAQ,OAAO,OAAO;AACtC,MAAI,QAAQ,WAAW,KAAK,QAAQ,WAAW,GAAG;AAC9C,WAAO;AAAA,EACX;AACA,MAAI;AACJ,aAAW,UAAU,SAAS;AAC1B,UAAM,aAAa,OAAO,KAAK,MAAM;AACrC,QAAI,CAAC,OAAO,IAAI,SAAS,GAAG;AACxB,YAAM,IAAI,IAAI,UAAU;AACxB;AAAA,IACJ;AACA,eAAW,aAAa,YAAY;AAChC,UAAI,IAAI,IAAI,SAAS,GAAG;AACpB,eAAO;AAAA,MACX;AACA,UAAI,IAAI,SAAS;AAAA,IACrB;AAAA,EACJ;AACA,SAAO;AACX;","x_google_ignoreList":[0]}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const t=require("./is_object.cjs.js");function e(e){return t.default(e)&&"string"==typeof e.kty}exports.isJWK=e,exports.isPrivateJWK=function(t){return"oct"!==t.kty&&"string"==typeof t.d},exports.isPublicJWK=function(t){return"oct"!==t.kty&&void 0===t.d},exports.isSecretJWK=function(t){return e(t)&&"oct"===t.kty&&"string"==typeof t.k};
|
|
2
|
+
//# sourceMappingURL=is_jwk.cjs.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"is_jwk.cjs.js","sources":["../../../../../../node_modules/jose/dist/browser/lib/is_jwk.js"],"sourcesContent":["import isObject from './is_object.js';\nexport function isJWK(key) {\n return isObject(key) && typeof key.kty === 'string';\n}\nexport function isPrivateJWK(key) {\n return key.kty !== 'oct' && typeof key.d === 'string';\n}\nexport function isPublicJWK(key) {\n return key.kty !== 'oct' && typeof key.d === 'undefined';\n}\nexport function isSecretJWK(key) {\n return isJWK(key) && key.kty === 'oct' && typeof key.k === 'string';\n}\n"],"names":["isJWK","key","isObject","kty","d","k"],"mappings":"sHACO,SAASA,EAAMC,GAClB,OAAOC,EAAAA,QAASD,IAA2B,iBAAZA,EAAIE,GACvC,sCACO,SAAsBF,GACzB,MAAmB,QAAZA,EAAIE,KAAkC,iBAAVF,EAAIG,CAC3C,sBACO,SAAqBH,GACxB,MAAmB,QAAZA,EAAIE,UAAkC,IAAVF,EAAIG,CAC3C,sBACO,SAAqBH,GACxB,OAAOD,EAAMC,IAAoB,QAAZA,EAAIE,KAAkC,iBAAVF,EAAII,CACzD","x_google_ignoreList":[0]}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import isObject from "./is_object.esm.js";
|
|
2
|
+
function isJWK(key) {
|
|
3
|
+
return isObject(key) && typeof key.kty === "string";
|
|
4
|
+
}
|
|
5
|
+
function isPrivateJWK(key) {
|
|
6
|
+
return key.kty !== "oct" && typeof key.d === "string";
|
|
7
|
+
}
|
|
8
|
+
function isPublicJWK(key) {
|
|
9
|
+
return key.kty !== "oct" && typeof key.d === "undefined";
|
|
10
|
+
}
|
|
11
|
+
function isSecretJWK(key) {
|
|
12
|
+
return isJWK(key) && key.kty === "oct" && typeof key.k === "string";
|
|
13
|
+
}
|
|
14
|
+
export {
|
|
15
|
+
isJWK,
|
|
16
|
+
isPrivateJWK,
|
|
17
|
+
isPublicJWK,
|
|
18
|
+
isSecretJWK
|
|
19
|
+
};
|
|
20
|
+
//# sourceMappingURL=is_jwk.esm.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"is_jwk.esm.js","sources":["../../../../../../node_modules/jose/dist/browser/lib/is_jwk.js"],"sourcesContent":["import isObject from './is_object.js';\nexport function isJWK(key) {\n return isObject(key) && typeof key.kty === 'string';\n}\nexport function isPrivateJWK(key) {\n return key.kty !== 'oct' && typeof key.d === 'string';\n}\nexport function isPublicJWK(key) {\n return key.kty !== 'oct' && typeof key.d === 'undefined';\n}\nexport function isSecretJWK(key) {\n return isJWK(key) && key.kty === 'oct' && typeof key.k === 'string';\n}\n"],"names":[],"mappings":";AACO,SAAS,MAAM,KAAK;AACvB,SAAO,SAAS,GAAG,KAAK,OAAO,IAAI,QAAQ;AAC/C;AACO,SAAS,aAAa,KAAK;AAC9B,SAAO,IAAI,QAAQ,SAAS,OAAO,IAAI,MAAM;AACjD;AACO,SAAS,YAAY,KAAK;AAC7B,SAAO,IAAI,QAAQ,SAAS,OAAO,IAAI,MAAM;AACjD;AACO,SAAS,YAAY,KAAK;AAC7B,SAAO,MAAM,GAAG,KAAK,IAAI,QAAQ,SAAS,OAAO,IAAI,MAAM;AAC/D;","x_google_ignoreList":[0]}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
"use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}}),exports.default=function(t){if("object"!=typeof(e=t)||null===e||"[object Object]"!==Object.prototype.toString.call(t))return!1;var e;if(null===Object.getPrototypeOf(t))return!0;let o=t;for(;null!==Object.getPrototypeOf(o);)o=Object.getPrototypeOf(o);return Object.getPrototypeOf(t)===o};
|
|
2
|
+
//# sourceMappingURL=is_object.cjs.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"is_object.cjs.js","sources":["../../../../../../node_modules/jose/dist/browser/lib/is_object.js"],"sourcesContent":["function isObjectLike(value) {\n return typeof value === 'object' && value !== null;\n}\nexport default function isObject(input) {\n if (!isObjectLike(input) || Object.prototype.toString.call(input) !== '[object Object]') {\n return false;\n }\n if (Object.getPrototypeOf(input) === null) {\n return true;\n }\n let proto = input;\n while (Object.getPrototypeOf(proto) !== null) {\n proto = Object.getPrototypeOf(proto);\n }\n return Object.getPrototypeOf(input) === proto;\n}\n"],"names":["input","value","Object","prototype","toString","call","getPrototypeOf","proto"],"mappings":"4HAGe,SAAkBA,GAC7B,GAHwB,iBADNC,EAIAD,IAH4B,OAAVC,GAGkC,oBAA1CC,OAAOC,UAAUC,SAASC,KAAKL,GACvD,OAAO,EALf,IAAsBC,EAOlB,GAAqC,OAAjCC,OAAOI,eAAeN,GACtB,OAAO,EAEX,IAAIO,EAAQP,EACZ,KAAwC,OAAjCE,OAAOI,eAAeC,IACzBA,EAAQL,OAAOI,eAAeC,GAElC,OAAOL,OAAOI,eAAeN,KAAWO,CAC5C","x_google_ignoreList":[0]}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
function isObjectLike(value) {
|
|
2
|
+
return typeof value === "object" && value !== null;
|
|
3
|
+
}
|
|
4
|
+
function isObject(input) {
|
|
5
|
+
if (!isObjectLike(input) || Object.prototype.toString.call(input) !== "[object Object]") {
|
|
6
|
+
return false;
|
|
7
|
+
}
|
|
8
|
+
if (Object.getPrototypeOf(input) === null) {
|
|
9
|
+
return true;
|
|
10
|
+
}
|
|
11
|
+
let proto = input;
|
|
12
|
+
while (Object.getPrototypeOf(proto) !== null) {
|
|
13
|
+
proto = Object.getPrototypeOf(proto);
|
|
14
|
+
}
|
|
15
|
+
return Object.getPrototypeOf(input) === proto;
|
|
16
|
+
}
|
|
17
|
+
export {
|
|
18
|
+
isObject as default
|
|
19
|
+
};
|
|
20
|
+
//# sourceMappingURL=is_object.esm.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"is_object.esm.js","sources":["../../../../../../node_modules/jose/dist/browser/lib/is_object.js"],"sourcesContent":["function isObjectLike(value) {\n return typeof value === 'object' && value !== null;\n}\nexport default function isObject(input) {\n if (!isObjectLike(input) || Object.prototype.toString.call(input) !== '[object Object]') {\n return false;\n }\n if (Object.getPrototypeOf(input) === null) {\n return true;\n }\n let proto = input;\n while (Object.getPrototypeOf(proto) !== null) {\n proto = Object.getPrototypeOf(proto);\n }\n return Object.getPrototypeOf(input) === proto;\n}\n"],"names":[],"mappings":"AAAA,SAAS,aAAa,OAAO;AACzB,SAAO,OAAO,UAAU,YAAY,UAAU;AAClD;AACe,SAAS,SAAS,OAAO;AACpC,MAAI,CAAC,aAAa,KAAK,KAAK,OAAO,UAAU,SAAS,KAAK,KAAK,MAAM,mBAAmB;AACrF,WAAO;AAAA,EACX;AACA,MAAI,OAAO,eAAe,KAAK,MAAM,MAAM;AACvC,WAAO;AAAA,EACX;AACA,MAAI,QAAQ;AACZ,SAAO,OAAO,eAAe,KAAK,MAAM,MAAM;AAC1C,YAAQ,OAAO,eAAe,KAAK;AAAA,EACvC;AACA,SAAO,OAAO,eAAe,KAAK,MAAM;AAC5C;","x_google_ignoreList":[0]}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
"use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const e=86400,s=/^(\+|\-)? ?(\d+|\d+\.\d+) ?(seconds?|secs?|s|minutes?|mins?|m|hours?|hrs?|h|days?|d|weeks?|w|years?|yrs?|y)(?: (ago|from now))?$/i;exports.default=a=>{const r=s.exec(a);if(!r||r[4]&&r[1])throw new TypeError("Invalid time period format");const c=parseFloat(r[2]);let o;switch(r[3].toLowerCase()){case"sec":case"secs":case"second":case"seconds":case"s":o=Math.round(c);break;case"minute":case"minutes":case"min":case"mins":case"m":o=Math.round(60*c);break;case"hour":case"hours":case"hr":case"hrs":case"h":o=Math.round(3600*c);break;case"day":case"days":case"d":o=Math.round(c*e);break;case"week":case"weeks":case"w":o=Math.round(604800*c);break;default:o=Math.round(31557600*c)}return"-"===r[1]||"ago"===r[4]?-o:o};
|
|
2
|
+
//# sourceMappingURL=secs.cjs.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"secs.cjs.js","sources":["../../../../../../node_modules/jose/dist/browser/lib/secs.js"],"sourcesContent":["const minute = 60;\nconst hour = minute * 60;\nconst day = hour * 24;\nconst week = day * 7;\nconst year = day * 365.25;\nconst REGEX = /^(\\+|\\-)? ?(\\d+|\\d+\\.\\d+) ?(seconds?|secs?|s|minutes?|mins?|m|hours?|hrs?|h|days?|d|weeks?|w|years?|yrs?|y)(?: (ago|from now))?$/i;\nexport default (str) => {\n const matched = REGEX.exec(str);\n if (!matched || (matched[4] && matched[1])) {\n throw new TypeError('Invalid time period format');\n }\n const value = parseFloat(matched[2]);\n const unit = matched[3].toLowerCase();\n let numericDate;\n switch (unit) {\n case 'sec':\n case 'secs':\n case 'second':\n case 'seconds':\n case 's':\n numericDate = Math.round(value);\n break;\n case 'minute':\n case 'minutes':\n case 'min':\n case 'mins':\n case 'm':\n numericDate = Math.round(value * minute);\n break;\n case 'hour':\n case 'hours':\n case 'hr':\n case 'hrs':\n case 'h':\n numericDate = Math.round(value * hour);\n break;\n case 'day':\n case 'days':\n case 'd':\n numericDate = Math.round(value * day);\n break;\n case 'week':\n case 'weeks':\n case 'w':\n numericDate = Math.round(value * week);\n break;\n default:\n numericDate = Math.round(value * year);\n break;\n }\n if (matched[1] === '-' || matched[4] === 'ago') {\n return -numericDate;\n }\n return numericDate;\n};\n"],"names":["day","hour","REGEX","str","matched","exec","TypeError","value","parseFloat","numericDate","toLowerCase","Math","round","minute"],"mappings":"4GAAA,MAEMA,EAAMC,MAGNC,EAAQ,oJACEC,IACZ,MAAMC,EAAUF,EAAMG,KAAKF,GAC3B,IAAKC,GAAYA,EAAQ,IAAMA,EAAQ,GACnC,MAAM,IAAIE,UAAU,8BAExB,MAAMC,EAAQC,WAAWJ,EAAQ,IAEjC,IAAIK,EACJ,OAFaL,EAAQ,GAAGM,eAGpB,IAAK,MACL,IAAK,OACL,IAAK,SACL,IAAK,UACL,IAAK,IACDD,EAAcE,KAAKC,MAAML,GACzB,MACJ,IAAK,SACL,IAAK,UACL,IAAK,MACL,IAAK,OACL,IAAK,IACDE,EAAcE,KAAKC,MA3BhB,GA2BsBL,GACzB,MACJ,IAAK,OACL,IAAK,QACL,IAAK,KACL,IAAK,MACL,IAAK,IACDE,EAAcE,KAAKC,MAjClBC,KAiCwBN,GACzB,MACJ,IAAK,MACL,IAAK,OACL,IAAK,IACDE,EAAcE,KAAKC,MAAML,EAAQP,GACjC,MACJ,IAAK,OACL,IAAK,QACL,IAAK,IACDS,EAAcE,KAAKC,MAzClBZ,OAyCwBO,GACzB,MACJ,QACIE,EAAcE,KAAKC,MA3ClBZ,SA2CwBO,GAGjC,MAAmB,MAAfH,EAAQ,IAA6B,QAAfA,EAAQ,IACtBK,EAELA","x_google_ignoreList":[0]}
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
const minute = 60;
|
|
2
|
+
const hour = minute * 60;
|
|
3
|
+
const day = hour * 24;
|
|
4
|
+
const week = day * 7;
|
|
5
|
+
const year = day * 365.25;
|
|
6
|
+
const REGEX = /^(\+|\-)? ?(\d+|\d+\.\d+) ?(seconds?|secs?|s|minutes?|mins?|m|hours?|hrs?|h|days?|d|weeks?|w|years?|yrs?|y)(?: (ago|from now))?$/i;
|
|
7
|
+
const secs = (str) => {
|
|
8
|
+
const matched = REGEX.exec(str);
|
|
9
|
+
if (!matched || matched[4] && matched[1]) {
|
|
10
|
+
throw new TypeError("Invalid time period format");
|
|
11
|
+
}
|
|
12
|
+
const value = parseFloat(matched[2]);
|
|
13
|
+
const unit = matched[3].toLowerCase();
|
|
14
|
+
let numericDate;
|
|
15
|
+
switch (unit) {
|
|
16
|
+
case "sec":
|
|
17
|
+
case "secs":
|
|
18
|
+
case "second":
|
|
19
|
+
case "seconds":
|
|
20
|
+
case "s":
|
|
21
|
+
numericDate = Math.round(value);
|
|
22
|
+
break;
|
|
23
|
+
case "minute":
|
|
24
|
+
case "minutes":
|
|
25
|
+
case "min":
|
|
26
|
+
case "mins":
|
|
27
|
+
case "m":
|
|
28
|
+
numericDate = Math.round(value * minute);
|
|
29
|
+
break;
|
|
30
|
+
case "hour":
|
|
31
|
+
case "hours":
|
|
32
|
+
case "hr":
|
|
33
|
+
case "hrs":
|
|
34
|
+
case "h":
|
|
35
|
+
numericDate = Math.round(value * hour);
|
|
36
|
+
break;
|
|
37
|
+
case "day":
|
|
38
|
+
case "days":
|
|
39
|
+
case "d":
|
|
40
|
+
numericDate = Math.round(value * day);
|
|
41
|
+
break;
|
|
42
|
+
case "week":
|
|
43
|
+
case "weeks":
|
|
44
|
+
case "w":
|
|
45
|
+
numericDate = Math.round(value * week);
|
|
46
|
+
break;
|
|
47
|
+
default:
|
|
48
|
+
numericDate = Math.round(value * year);
|
|
49
|
+
break;
|
|
50
|
+
}
|
|
51
|
+
if (matched[1] === "-" || matched[4] === "ago") {
|
|
52
|
+
return -numericDate;
|
|
53
|
+
}
|
|
54
|
+
return numericDate;
|
|
55
|
+
};
|
|
56
|
+
export {
|
|
57
|
+
secs as default
|
|
58
|
+
};
|
|
59
|
+
//# sourceMappingURL=secs.esm.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"secs.esm.js","sources":["../../../../../../node_modules/jose/dist/browser/lib/secs.js"],"sourcesContent":["const minute = 60;\nconst hour = minute * 60;\nconst day = hour * 24;\nconst week = day * 7;\nconst year = day * 365.25;\nconst REGEX = /^(\\+|\\-)? ?(\\d+|\\d+\\.\\d+) ?(seconds?|secs?|s|minutes?|mins?|m|hours?|hrs?|h|days?|d|weeks?|w|years?|yrs?|y)(?: (ago|from now))?$/i;\nexport default (str) => {\n const matched = REGEX.exec(str);\n if (!matched || (matched[4] && matched[1])) {\n throw new TypeError('Invalid time period format');\n }\n const value = parseFloat(matched[2]);\n const unit = matched[3].toLowerCase();\n let numericDate;\n switch (unit) {\n case 'sec':\n case 'secs':\n case 'second':\n case 'seconds':\n case 's':\n numericDate = Math.round(value);\n break;\n case 'minute':\n case 'minutes':\n case 'min':\n case 'mins':\n case 'm':\n numericDate = Math.round(value * minute);\n break;\n case 'hour':\n case 'hours':\n case 'hr':\n case 'hrs':\n case 'h':\n numericDate = Math.round(value * hour);\n break;\n case 'day':\n case 'days':\n case 'd':\n numericDate = Math.round(value * day);\n break;\n case 'week':\n case 'weeks':\n case 'w':\n numericDate = Math.round(value * week);\n break;\n default:\n numericDate = Math.round(value * year);\n break;\n }\n if (matched[1] === '-' || matched[4] === 'ago') {\n return -numericDate;\n }\n return numericDate;\n};\n"],"names":[],"mappings":"AAAA,MAAM,SAAS;AACf,MAAM,OAAO,SAAS;AACtB,MAAM,MAAM,OAAO;AACnB,MAAM,OAAO,MAAM;AACnB,MAAM,OAAO,MAAM;AACnB,MAAM,QAAQ;AACd,MAAA,OAAe,CAAC,QAAQ;AACpB,QAAM,UAAU,MAAM,KAAK,GAAG;AAC9B,MAAI,CAAC,WAAY,QAAQ,CAAC,KAAK,QAAQ,CAAC,GAAI;AACxC,UAAM,IAAI,UAAU,4BAA4B;AAAA,EACpD;AACA,QAAM,QAAQ,WAAW,QAAQ,CAAC,CAAC;AACnC,QAAM,OAAO,QAAQ,CAAC,EAAE,YAAW;AACnC,MAAI;AACJ,UAAQ,MAAI;AAAA,IACR,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AACD,oBAAc,KAAK,MAAM,KAAK;AAC9B;AAAA,IACJ,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AACD,oBAAc,KAAK,MAAM,QAAQ,MAAM;AACvC;AAAA,IACJ,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AACD,oBAAc,KAAK,MAAM,QAAQ,IAAI;AACrC;AAAA,IACJ,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AACD,oBAAc,KAAK,MAAM,QAAQ,GAAG;AACpC;AAAA,IACJ,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AACD,oBAAc,KAAK,MAAM,QAAQ,IAAI;AACrC;AAAA,IACJ;AACI,oBAAc,KAAK,MAAM,QAAQ,IAAI;AACrC;AAAA,EACZ;AACI,MAAI,QAAQ,CAAC,MAAM,OAAO,QAAQ,CAAC,MAAM,OAAO;AAC5C,WAAO,CAAC;AAAA,EACZ;AACA,SAAO;AACX;","x_google_ignoreList":[0]}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
"use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const e=require("../util/errors.cjs.js");exports.default=function(r,t,i,n,o){if(void 0!==o.crit&&void 0===n?.crit)throw new r('"crit" (Critical) Header Parameter MUST be integrity protected');if(!n||void 0===n.crit)return new Set;if(!Array.isArray(n.crit)||0===n.crit.length||n.crit.some(e=>"string"!=typeof e||0===e.length))throw new r('"crit" (Critical) Header Parameter MUST be an array of non-empty strings when present');let a;a=void 0!==i?new Map([...Object.entries(i),...t.entries()]):t;for(const s of n.crit){if(!a.has(s))throw new e.JOSENotSupported(`Extension Header Parameter "${s}" is not recognized`);if(void 0===o[s])throw new r(`Extension Header Parameter "${s}" is missing`);if(a.get(s)&&void 0===n[s])throw new r(`Extension Header Parameter "${s}" MUST be integrity protected`)}return new Set(n.crit)};
|
|
2
|
+
//# sourceMappingURL=validate_crit.cjs.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"validate_crit.cjs.js","sources":["../../../../../../node_modules/jose/dist/browser/lib/validate_crit.js"],"sourcesContent":["import { JOSENotSupported } from '../util/errors.js';\nfunction validateCrit(Err, recognizedDefault, recognizedOption, protectedHeader, joseHeader) {\n if (joseHeader.crit !== undefined && protectedHeader?.crit === undefined) {\n throw new Err('\"crit\" (Critical) Header Parameter MUST be integrity protected');\n }\n if (!protectedHeader || protectedHeader.crit === undefined) {\n return new Set();\n }\n if (!Array.isArray(protectedHeader.crit) ||\n protectedHeader.crit.length === 0 ||\n protectedHeader.crit.some((input) => typeof input !== 'string' || input.length === 0)) {\n throw new Err('\"crit\" (Critical) Header Parameter MUST be an array of non-empty strings when present');\n }\n let recognized;\n if (recognizedOption !== undefined) {\n recognized = new Map([...Object.entries(recognizedOption), ...recognizedDefault.entries()]);\n }\n else {\n recognized = recognizedDefault;\n }\n for (const parameter of protectedHeader.crit) {\n if (!recognized.has(parameter)) {\n throw new JOSENotSupported(`Extension Header Parameter \"${parameter}\" is not recognized`);\n }\n if (joseHeader[parameter] === undefined) {\n throw new Err(`Extension Header Parameter \"${parameter}\" is missing`);\n }\n if (recognized.get(parameter) && protectedHeader[parameter] === undefined) {\n throw new Err(`Extension Header Parameter \"${parameter}\" MUST be integrity protected`);\n }\n }\n return new Set(protectedHeader.crit);\n}\nexport default validateCrit;\n"],"names":["Err","recognizedDefault","recognizedOption","protectedHeader","joseHeader","crit","Set","Array","isArray","length","some","input","recognized","Map","Object","entries","parameter","has","JOSENotSupported","get"],"mappings":"qKACA,SAAsBA,EAAKC,EAAmBC,EAAkBC,EAAiBC,GAC7E,QAAwB,IAApBA,EAAWC,WAAgD,IAA1BF,GAAiBE,KAClD,MAAM,IAAIL,EAAI,kEAElB,IAAKG,QAA4C,IAAzBA,EAAgBE,KACpC,WAAWC,IAEf,IAAKC,MAAMC,QAAQL,EAAgBE,OACC,IAAhCF,EAAgBE,KAAKI,QACrBN,EAAgBE,KAAKK,KAAMC,GAA2B,iBAAVA,GAAuC,IAAjBA,EAAMF,QACxE,MAAM,IAAIT,EAAI,yFAElB,IAAIY,EAEAA,OADqB,IAArBV,EACa,IAAIW,IAAI,IAAIC,OAAOC,QAAQb,MAAsBD,EAAkBc,YAGnEd,EAEjB,IAAA,MAAWe,KAAab,EAAgBE,KAAM,CAC1C,IAAKO,EAAWK,IAAID,GAChB,MAAM,IAAIE,EAAAA,iBAAiB,+BAA+BF,wBAE9D,QAA8B,IAA1BZ,EAAWY,GACX,MAAM,IAAIhB,EAAI,+BAA+BgB,iBAEjD,GAAIJ,EAAWO,IAAIH,SAA6C,IAA/Bb,EAAgBa,GAC7C,MAAM,IAAIhB,EAAI,+BAA+BgB,iCAErD,CACA,OAAO,IAAIV,IAAIH,EAAgBE,KACnC","x_google_ignoreList":[0]}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import { JOSENotSupported } from "../util/errors.esm.js";
|
|
2
|
+
function validateCrit(Err, recognizedDefault, recognizedOption, protectedHeader, joseHeader) {
|
|
3
|
+
if (joseHeader.crit !== void 0 && protectedHeader?.crit === void 0) {
|
|
4
|
+
throw new Err('"crit" (Critical) Header Parameter MUST be integrity protected');
|
|
5
|
+
}
|
|
6
|
+
if (!protectedHeader || protectedHeader.crit === void 0) {
|
|
7
|
+
return /* @__PURE__ */ new Set();
|
|
8
|
+
}
|
|
9
|
+
if (!Array.isArray(protectedHeader.crit) || protectedHeader.crit.length === 0 || protectedHeader.crit.some((input) => typeof input !== "string" || input.length === 0)) {
|
|
10
|
+
throw new Err('"crit" (Critical) Header Parameter MUST be an array of non-empty strings when present');
|
|
11
|
+
}
|
|
12
|
+
let recognized;
|
|
13
|
+
if (recognizedOption !== void 0) {
|
|
14
|
+
recognized = new Map([...Object.entries(recognizedOption), ...recognizedDefault.entries()]);
|
|
15
|
+
} else {
|
|
16
|
+
recognized = recognizedDefault;
|
|
17
|
+
}
|
|
18
|
+
for (const parameter of protectedHeader.crit) {
|
|
19
|
+
if (!recognized.has(parameter)) {
|
|
20
|
+
throw new JOSENotSupported(`Extension Header Parameter "${parameter}" is not recognized`);
|
|
21
|
+
}
|
|
22
|
+
if (joseHeader[parameter] === void 0) {
|
|
23
|
+
throw new Err(`Extension Header Parameter "${parameter}" is missing`);
|
|
24
|
+
}
|
|
25
|
+
if (recognized.get(parameter) && protectedHeader[parameter] === void 0) {
|
|
26
|
+
throw new Err(`Extension Header Parameter "${parameter}" MUST be integrity protected`);
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
return new Set(protectedHeader.crit);
|
|
30
|
+
}
|
|
31
|
+
export {
|
|
32
|
+
validateCrit as default
|
|
33
|
+
};
|
|
34
|
+
//# sourceMappingURL=validate_crit.esm.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"validate_crit.esm.js","sources":["../../../../../../node_modules/jose/dist/browser/lib/validate_crit.js"],"sourcesContent":["import { JOSENotSupported } from '../util/errors.js';\nfunction validateCrit(Err, recognizedDefault, recognizedOption, protectedHeader, joseHeader) {\n if (joseHeader.crit !== undefined && protectedHeader?.crit === undefined) {\n throw new Err('\"crit\" (Critical) Header Parameter MUST be integrity protected');\n }\n if (!protectedHeader || protectedHeader.crit === undefined) {\n return new Set();\n }\n if (!Array.isArray(protectedHeader.crit) ||\n protectedHeader.crit.length === 0 ||\n protectedHeader.crit.some((input) => typeof input !== 'string' || input.length === 0)) {\n throw new Err('\"crit\" (Critical) Header Parameter MUST be an array of non-empty strings when present');\n }\n let recognized;\n if (recognizedOption !== undefined) {\n recognized = new Map([...Object.entries(recognizedOption), ...recognizedDefault.entries()]);\n }\n else {\n recognized = recognizedDefault;\n }\n for (const parameter of protectedHeader.crit) {\n if (!recognized.has(parameter)) {\n throw new JOSENotSupported(`Extension Header Parameter \"${parameter}\" is not recognized`);\n }\n if (joseHeader[parameter] === undefined) {\n throw new Err(`Extension Header Parameter \"${parameter}\" is missing`);\n }\n if (recognized.get(parameter) && protectedHeader[parameter] === undefined) {\n throw new Err(`Extension Header Parameter \"${parameter}\" MUST be integrity protected`);\n }\n }\n return new Set(protectedHeader.crit);\n}\nexport default validateCrit;\n"],"names":[],"mappings":";AACA,SAAS,aAAa,KAAK,mBAAmB,kBAAkB,iBAAiB,YAAY;AACzF,MAAI,WAAW,SAAS,UAAa,iBAAiB,SAAS,QAAW;AACtE,UAAM,IAAI,IAAI,gEAAgE;AAAA,EAClF;AACA,MAAI,CAAC,mBAAmB,gBAAgB,SAAS,QAAW;AACxD,WAAO,oBAAI,IAAG;AAAA,EAClB;AACA,MAAI,CAAC,MAAM,QAAQ,gBAAgB,IAAI,KACnC,gBAAgB,KAAK,WAAW,KAChC,gBAAgB,KAAK,KAAK,CAAC,UAAU,OAAO,UAAU,YAAY,MAAM,WAAW,CAAC,GAAG;AACvF,UAAM,IAAI,IAAI,uFAAuF;AAAA,EACzG;AACA,MAAI;AACJ,MAAI,qBAAqB,QAAW;AAChC,iBAAa,IAAI,IAAI,CAAC,GAAG,OAAO,QAAQ,gBAAgB,GAAG,GAAG,kBAAkB,QAAO,CAAE,CAAC;AAAA,EAC9F,OACK;AACD,iBAAa;AAAA,EACjB;AACA,aAAW,aAAa,gBAAgB,MAAM;AAC1C,QAAI,CAAC,WAAW,IAAI,SAAS,GAAG;AAC5B,YAAM,IAAI,iBAAiB,+BAA+B,SAAS,qBAAqB;AAAA,IAC5F;AACA,QAAI,WAAW,SAAS,MAAM,QAAW;AACrC,YAAM,IAAI,IAAI,+BAA+B,SAAS,cAAc;AAAA,IACxE;AACA,QAAI,WAAW,IAAI,SAAS,KAAK,gBAAgB,SAAS,MAAM,QAAW;AACvE,YAAM,IAAI,IAAI,+BAA+B,SAAS,+BAA+B;AAAA,IACzF;AAAA,EACJ;AACA,SAAO,IAAI,IAAI,gBAAgB,IAAI;AACvC;","x_google_ignoreList":[0]}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("./webcrypto.cjs.js"),a=require("../util/errors.cjs.js"),r=(e,a,s=0)=>{0===s&&(a.unshift(a.length),a.unshift(6));const t=e.indexOf(a[0],s);if(-1===t)return!1;const n=e.subarray(t,t+a.length);return n.length===a.length&&(n.every((e,r)=>e===a[r])||r(e,a,t+1))},s=e=>{switch(!0){case r(e,[42,134,72,206,61,3,1,7]):return"P-256";case r(e,[43,129,4,0,34]):return"P-384";case r(e,[43,129,4,0,35]):return"P-521";case r(e,[43,101,110]):return"X25519";case r(e,[43,101,111]):return"X448";case r(e,[43,101,112]):return"Ed25519";case r(e,[43,101,113]):return"Ed448";default:throw new a.JOSENotSupported("Invalid or unsupported EC Key Curve or OKP Key Sub Type")}};exports.fromPKCS8=(r,t,n)=>(async(r,t,n,c)=>{let S,u;const E=new Uint8Array(atob(n.replace(r,"")).split("").map(e=>e.charCodeAt(0)));switch(c){case"PS256":case"PS384":case"PS512":S={name:"RSA-PSS",hash:`SHA-${c.slice(-3)}`},u=["sign"];break;case"RS256":case"RS384":case"RS512":S={name:"RSASSA-PKCS1-v1_5",hash:`SHA-${c.slice(-3)}`},u=["sign"];break;case"RSA-OAEP":case"RSA-OAEP-256":case"RSA-OAEP-384":case"RSA-OAEP-512":S={name:"RSA-OAEP",hash:`SHA-${parseInt(c.slice(-3),10)||1}`},u=["decrypt","unwrapKey"];break;case"ES256":S={name:"ECDSA",namedCurve:"P-256"},u=["sign"];break;case"ES384":S={name:"ECDSA",namedCurve:"P-384"},u=["sign"];break;case"ES512":S={name:"ECDSA",namedCurve:"P-521"},u=["sign"];break;case"ECDH-ES":case"ECDH-ES+A128KW":case"ECDH-ES+A192KW":case"ECDH-ES+A256KW":{const e=s(E);S=e.startsWith("P-")?{name:"ECDH",namedCurve:e}:{name:e},u=["deriveBits"];break}case"Ed25519":S={name:"Ed25519"},u=["sign"];break;case"EdDSA":S={name:s(E)},u=["sign"];break;default:throw new a.JOSENotSupported('Invalid or unsupported "alg" (Algorithm) value')}return e.default.subtle.importKey(t,E,S,!1,u)})(/(?:-----(?:BEGIN|END) PRIVATE KEY-----|\s)/g,"pkcs8",r,t);
|
|
2
|
+
//# sourceMappingURL=asn1.cjs.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"asn1.cjs.js","sources":["../../../../../../node_modules/jose/dist/browser/runtime/asn1.js"],"sourcesContent":["import crypto, { isCryptoKey } from './webcrypto.js';\nimport invalidKeyInput from '../lib/invalid_key_input.js';\nimport { encodeBase64, decodeBase64 } from './base64url.js';\nimport formatPEM from '../lib/format_pem.js';\nimport { JOSENotSupported } from '../util/errors.js';\nimport { types } from './is_key_like.js';\nconst genericExport = async (keyType, keyFormat, key) => {\n if (!isCryptoKey(key)) {\n throw new TypeError(invalidKeyInput(key, ...types));\n }\n if (!key.extractable) {\n throw new TypeError('CryptoKey is not extractable');\n }\n if (key.type !== keyType) {\n throw new TypeError(`key is not a ${keyType} key`);\n }\n return formatPEM(encodeBase64(new Uint8Array(await crypto.subtle.exportKey(keyFormat, key))), `${keyType.toUpperCase()} KEY`);\n};\nexport const toSPKI = (key) => {\n return genericExport('public', 'spki', key);\n};\nexport const toPKCS8 = (key) => {\n return genericExport('private', 'pkcs8', key);\n};\nconst findOid = (keyData, oid, from = 0) => {\n if (from === 0) {\n oid.unshift(oid.length);\n oid.unshift(0x06);\n }\n const i = keyData.indexOf(oid[0], from);\n if (i === -1)\n return false;\n const sub = keyData.subarray(i, i + oid.length);\n if (sub.length !== oid.length)\n return false;\n return sub.every((value, index) => value === oid[index]) || findOid(keyData, oid, i + 1);\n};\nconst getNamedCurve = (keyData) => {\n switch (true) {\n case findOid(keyData, [0x2a, 0x86, 0x48, 0xce, 0x3d, 0x03, 0x01, 0x07]):\n return 'P-256';\n case findOid(keyData, [0x2b, 0x81, 0x04, 0x00, 0x22]):\n return 'P-384';\n case findOid(keyData, [0x2b, 0x81, 0x04, 0x00, 0x23]):\n return 'P-521';\n case findOid(keyData, [0x2b, 0x65, 0x6e]):\n return 'X25519';\n case findOid(keyData, [0x2b, 0x65, 0x6f]):\n return 'X448';\n case findOid(keyData, [0x2b, 0x65, 0x70]):\n return 'Ed25519';\n case findOid(keyData, [0x2b, 0x65, 0x71]):\n return 'Ed448';\n default:\n throw new JOSENotSupported('Invalid or unsupported EC Key Curve or OKP Key Sub Type');\n }\n};\nconst genericImport = async (replace, keyFormat, pem, alg, options) => {\n let algorithm;\n let keyUsages;\n const keyData = new Uint8Array(atob(pem.replace(replace, ''))\n .split('')\n .map((c) => c.charCodeAt(0)));\n const isPublic = keyFormat === 'spki';\n switch (alg) {\n case 'PS256':\n case 'PS384':\n case 'PS512':\n algorithm = { name: 'RSA-PSS', hash: `SHA-${alg.slice(-3)}` };\n keyUsages = isPublic ? ['verify'] : ['sign'];\n break;\n case 'RS256':\n case 'RS384':\n case 'RS512':\n algorithm = { name: 'RSASSA-PKCS1-v1_5', hash: `SHA-${alg.slice(-3)}` };\n keyUsages = isPublic ? ['verify'] : ['sign'];\n break;\n case 'RSA-OAEP':\n case 'RSA-OAEP-256':\n case 'RSA-OAEP-384':\n case 'RSA-OAEP-512':\n algorithm = {\n name: 'RSA-OAEP',\n hash: `SHA-${parseInt(alg.slice(-3), 10) || 1}`,\n };\n keyUsages = isPublic ? ['encrypt', 'wrapKey'] : ['decrypt', 'unwrapKey'];\n break;\n case 'ES256':\n algorithm = { name: 'ECDSA', namedCurve: 'P-256' };\n keyUsages = isPublic ? ['verify'] : ['sign'];\n break;\n case 'ES384':\n algorithm = { name: 'ECDSA', namedCurve: 'P-384' };\n keyUsages = isPublic ? ['verify'] : ['sign'];\n break;\n case 'ES512':\n algorithm = { name: 'ECDSA', namedCurve: 'P-521' };\n keyUsages = isPublic ? ['verify'] : ['sign'];\n break;\n case 'ECDH-ES':\n case 'ECDH-ES+A128KW':\n case 'ECDH-ES+A192KW':\n case 'ECDH-ES+A256KW': {\n const namedCurve = getNamedCurve(keyData);\n algorithm = namedCurve.startsWith('P-') ? { name: 'ECDH', namedCurve } : { name: namedCurve };\n keyUsages = isPublic ? [] : ['deriveBits'];\n break;\n }\n case 'Ed25519':\n algorithm = { name: 'Ed25519' };\n keyUsages = isPublic ? ['verify'] : ['sign'];\n break;\n case 'EdDSA':\n algorithm = { name: getNamedCurve(keyData) };\n keyUsages = isPublic ? ['verify'] : ['sign'];\n break;\n default:\n throw new JOSENotSupported('Invalid or unsupported \"alg\" (Algorithm) value');\n }\n return crypto.subtle.importKey(keyFormat, keyData, algorithm, options?.extractable ?? false, keyUsages);\n};\nexport const fromPKCS8 = (pem, alg, options) => {\n return genericImport(/(?:-----(?:BEGIN|END) PRIVATE KEY-----|\\s)/g, 'pkcs8', pem, alg, options);\n};\nexport const fromSPKI = (pem, alg, options) => {\n return genericImport(/(?:-----(?:BEGIN|END) PUBLIC KEY-----|\\s)/g, 'spki', pem, alg, options);\n};\nfunction getElement(seq) {\n const result = [];\n let next = 0;\n while (next < seq.length) {\n const nextPart = parseElement(seq.subarray(next));\n result.push(nextPart);\n next += nextPart.byteLength;\n }\n return result;\n}\nfunction parseElement(bytes) {\n let position = 0;\n let tag = bytes[0] & 0x1f;\n position++;\n if (tag === 0x1f) {\n tag = 0;\n while (bytes[position] >= 0x80) {\n tag = tag * 128 + bytes[position] - 0x80;\n position++;\n }\n tag = tag * 128 + bytes[position] - 0x80;\n position++;\n }\n let length = 0;\n if (bytes[position] < 0x80) {\n length = bytes[position];\n position++;\n }\n else if (length === 0x80) {\n length = 0;\n while (bytes[position + length] !== 0 || bytes[position + length + 1] !== 0) {\n if (length > bytes.byteLength) {\n throw new TypeError('invalid indefinite form length');\n }\n length++;\n }\n const byteLength = position + length + 2;\n return {\n byteLength,\n contents: bytes.subarray(position, position + length),\n raw: bytes.subarray(0, byteLength),\n };\n }\n else {\n const numberOfDigits = bytes[position] & 0x7f;\n position++;\n length = 0;\n for (let i = 0; i < numberOfDigits; i++) {\n length = length * 256 + bytes[position];\n position++;\n }\n }\n const byteLength = position + length;\n return {\n byteLength,\n contents: bytes.subarray(position, byteLength),\n raw: bytes.subarray(0, byteLength),\n };\n}\nfunction spkiFromX509(buf) {\n const tbsCertificate = getElement(getElement(parseElement(buf).contents)[0].contents);\n return encodeBase64(tbsCertificate[tbsCertificate[0].raw[0] === 0xa0 ? 6 : 5].raw);\n}\nfunction getSPKI(x509) {\n const pem = x509.replace(/(?:-----(?:BEGIN|END) CERTIFICATE-----|\\s)/g, '');\n const raw = decodeBase64(pem);\n return formatPEM(spkiFromX509(raw), 'PUBLIC KEY');\n}\nexport const fromX509 = (pem, alg, options) => {\n let spki;\n try {\n spki = getSPKI(pem);\n }\n catch (cause) {\n throw new TypeError('Failed to parse the X.509 certificate', { cause });\n }\n return fromSPKI(spki, alg, options);\n};\n"],"names":["findOid","keyData","oid","from","unshift","length","i","indexOf","sub","subarray","every","value","index","getNamedCurve","JOSENotSupported","pem","alg","options","async","replace","keyFormat","algorithm","keyUsages","Uint8Array","atob","split","map","c","charCodeAt","name","hash","slice","parseInt","namedCurve","startsWith","crypto","subtle","importKey","genericImport"],"mappings":"yJAwBMA,EAAU,CAACC,EAASC,EAAKC,EAAO,KACrB,IAATA,IACAD,EAAIE,QAAQF,EAAIG,QAChBH,EAAIE,QAAQ,IAEhB,MAAME,EAAIL,EAAQM,QAAQL,EAAI,GAAIC,GAClC,IAAU,IAANG,EACA,OAAO,EACX,MAAME,EAAMP,EAAQQ,SAASH,EAAGA,EAAIJ,EAAIG,QACxC,OAAIG,EAAIH,SAAWH,EAAIG,SAEhBG,EAAIE,MAAM,CAACC,EAAOC,IAAUD,IAAUT,EAAIU,KAAWZ,EAAQC,EAASC,EAAKI,EAAI,KAEpFO,EAAiBZ,IACnB,QAAQ,GACJ,KAAKD,EAAQC,EAAS,CAAC,GAAM,IAAM,GAAM,IAAM,GAAM,EAAM,EAAM,IAC7D,MAAO,QACX,KAAKD,EAAQC,EAAS,CAAC,GAAM,IAAM,EAAM,EAAM,KAC3C,MAAO,QACX,KAAKD,EAAQC,EAAS,CAAC,GAAM,IAAM,EAAM,EAAM,KAC3C,MAAO,QACX,KAAKD,EAAQC,EAAS,CAAC,GAAM,IAAM,MAC/B,MAAO,SACX,KAAKD,EAAQC,EAAS,CAAC,GAAM,IAAM,MAC/B,MAAO,OACX,KAAKD,EAAQC,EAAS,CAAC,GAAM,IAAM,MAC/B,MAAO,UACX,KAAKD,EAAQC,EAAS,CAAC,GAAM,IAAM,MAC/B,MAAO,QACX,QACI,MAAM,IAAIa,EAAAA,iBAAiB,+EAmEd,CAACC,EAAKC,EAAKC,IAhEdC,OAAOC,EAASC,EAAWL,EAAKC,KAClD,IAAIK,EACAC,EACJ,MAAMrB,EAAU,IAAIsB,WAAWC,KAAKT,EAAII,QAAQA,EAAS,KACpDM,MAAM,IACNC,IAAKC,GAAMA,EAAEC,WAAW,KAE7B,OAAQZ,GACJ,IAAK,QACL,IAAK,QACL,IAAK,QACDK,EAAY,CAAEQ,KAAM,UAAWC,KAAM,OAAOd,EAAIe,OAAM,MACtDT,EAAoC,CAAC,QACrC,MACJ,IAAK,QACL,IAAK,QACL,IAAK,QACDD,EAAY,CAAEQ,KAAM,oBAAqBC,KAAM,OAAOd,EAAIe,OAAM,MAChET,EAAoC,CAAC,QACrC,MACJ,IAAK,WACL,IAAK,eACL,IAAK,eACL,IAAK,eACDD,EAAY,CACRQ,KAAM,WACNC,KAAM,OAAOE,SAAShB,EAAIe,OAAM,GAAK,KAAO,KAEhDT,EAAgD,CAAC,UAAW,aAC5D,MACJ,IAAK,QACDD,EAAY,CAAEQ,KAAM,QAASI,WAAY,SACzCX,EAAoC,CAAC,QACrC,MACJ,IAAK,QACDD,EAAY,CAAEQ,KAAM,QAASI,WAAY,SACzCX,EAAoC,CAAC,QACrC,MACJ,IAAK,QACDD,EAAY,CAAEQ,KAAM,QAASI,WAAY,SACzCX,EAAoC,CAAC,QACrC,MACJ,IAAK,UACL,IAAK,iBACL,IAAK,iBACL,IAAK,iBAAkB,CACnB,MAAMW,EAAapB,EAAcZ,GACjCoB,EAAYY,EAAWC,WAAW,MAAQ,CAAEL,KAAM,OAAQI,cAAe,CAAEJ,KAAMI,GACjFX,EAA4B,CAAC,cAC7B,KACJ,CACA,IAAK,UACDD,EAAY,CAAEQ,KAAM,WACpBP,EAAoC,CAAC,QACrC,MACJ,IAAK,QACDD,EAAY,CAAEQ,KAAMhB,EAAcZ,IAClCqB,EAAoC,CAAC,QACrC,MACJ,QACI,MAAM,IAAIR,EAAAA,iBAAiB,kDAEnC,OAAOqB,EAAAA,QAAOC,OAAOC,UAAUjB,EAAWnB,EAASoB,GAAmC,EAAOC,IAGtFgB,CAAc,8CAA+C,QAASvB,EAAKC","x_google_ignoreList":[0]}
|
|
@@ -0,0 +1,103 @@
|
|
|
1
|
+
import crypto from "./webcrypto.esm.js";
|
|
2
|
+
import { JOSENotSupported } from "../util/errors.esm.js";
|
|
3
|
+
const findOid = (keyData, oid, from = 0) => {
|
|
4
|
+
if (from === 0) {
|
|
5
|
+
oid.unshift(oid.length);
|
|
6
|
+
oid.unshift(6);
|
|
7
|
+
}
|
|
8
|
+
const i = keyData.indexOf(oid[0], from);
|
|
9
|
+
if (i === -1)
|
|
10
|
+
return false;
|
|
11
|
+
const sub = keyData.subarray(i, i + oid.length);
|
|
12
|
+
if (sub.length !== oid.length)
|
|
13
|
+
return false;
|
|
14
|
+
return sub.every((value, index) => value === oid[index]) || findOid(keyData, oid, i + 1);
|
|
15
|
+
};
|
|
16
|
+
const getNamedCurve = (keyData) => {
|
|
17
|
+
switch (true) {
|
|
18
|
+
case findOid(keyData, [42, 134, 72, 206, 61, 3, 1, 7]):
|
|
19
|
+
return "P-256";
|
|
20
|
+
case findOid(keyData, [43, 129, 4, 0, 34]):
|
|
21
|
+
return "P-384";
|
|
22
|
+
case findOid(keyData, [43, 129, 4, 0, 35]):
|
|
23
|
+
return "P-521";
|
|
24
|
+
case findOid(keyData, [43, 101, 110]):
|
|
25
|
+
return "X25519";
|
|
26
|
+
case findOid(keyData, [43, 101, 111]):
|
|
27
|
+
return "X448";
|
|
28
|
+
case findOid(keyData, [43, 101, 112]):
|
|
29
|
+
return "Ed25519";
|
|
30
|
+
case findOid(keyData, [43, 101, 113]):
|
|
31
|
+
return "Ed448";
|
|
32
|
+
default:
|
|
33
|
+
throw new JOSENotSupported("Invalid or unsupported EC Key Curve or OKP Key Sub Type");
|
|
34
|
+
}
|
|
35
|
+
};
|
|
36
|
+
const genericImport = async (replace, keyFormat, pem, alg, options) => {
|
|
37
|
+
let algorithm;
|
|
38
|
+
let keyUsages;
|
|
39
|
+
const keyData = new Uint8Array(atob(pem.replace(replace, "")).split("").map((c) => c.charCodeAt(0)));
|
|
40
|
+
switch (alg) {
|
|
41
|
+
case "PS256":
|
|
42
|
+
case "PS384":
|
|
43
|
+
case "PS512":
|
|
44
|
+
algorithm = { name: "RSA-PSS", hash: `SHA-${alg.slice(-3)}` };
|
|
45
|
+
keyUsages = ["sign"];
|
|
46
|
+
break;
|
|
47
|
+
case "RS256":
|
|
48
|
+
case "RS384":
|
|
49
|
+
case "RS512":
|
|
50
|
+
algorithm = { name: "RSASSA-PKCS1-v1_5", hash: `SHA-${alg.slice(-3)}` };
|
|
51
|
+
keyUsages = ["sign"];
|
|
52
|
+
break;
|
|
53
|
+
case "RSA-OAEP":
|
|
54
|
+
case "RSA-OAEP-256":
|
|
55
|
+
case "RSA-OAEP-384":
|
|
56
|
+
case "RSA-OAEP-512":
|
|
57
|
+
algorithm = {
|
|
58
|
+
name: "RSA-OAEP",
|
|
59
|
+
hash: `SHA-${parseInt(alg.slice(-3), 10) || 1}`
|
|
60
|
+
};
|
|
61
|
+
keyUsages = ["decrypt", "unwrapKey"];
|
|
62
|
+
break;
|
|
63
|
+
case "ES256":
|
|
64
|
+
algorithm = { name: "ECDSA", namedCurve: "P-256" };
|
|
65
|
+
keyUsages = ["sign"];
|
|
66
|
+
break;
|
|
67
|
+
case "ES384":
|
|
68
|
+
algorithm = { name: "ECDSA", namedCurve: "P-384" };
|
|
69
|
+
keyUsages = ["sign"];
|
|
70
|
+
break;
|
|
71
|
+
case "ES512":
|
|
72
|
+
algorithm = { name: "ECDSA", namedCurve: "P-521" };
|
|
73
|
+
keyUsages = ["sign"];
|
|
74
|
+
break;
|
|
75
|
+
case "ECDH-ES":
|
|
76
|
+
case "ECDH-ES+A128KW":
|
|
77
|
+
case "ECDH-ES+A192KW":
|
|
78
|
+
case "ECDH-ES+A256KW": {
|
|
79
|
+
const namedCurve = getNamedCurve(keyData);
|
|
80
|
+
algorithm = namedCurve.startsWith("P-") ? { name: "ECDH", namedCurve } : { name: namedCurve };
|
|
81
|
+
keyUsages = ["deriveBits"];
|
|
82
|
+
break;
|
|
83
|
+
}
|
|
84
|
+
case "Ed25519":
|
|
85
|
+
algorithm = { name: "Ed25519" };
|
|
86
|
+
keyUsages = ["sign"];
|
|
87
|
+
break;
|
|
88
|
+
case "EdDSA":
|
|
89
|
+
algorithm = { name: getNamedCurve(keyData) };
|
|
90
|
+
keyUsages = ["sign"];
|
|
91
|
+
break;
|
|
92
|
+
default:
|
|
93
|
+
throw new JOSENotSupported('Invalid or unsupported "alg" (Algorithm) value');
|
|
94
|
+
}
|
|
95
|
+
return crypto.subtle.importKey(keyFormat, keyData, algorithm, false, keyUsages);
|
|
96
|
+
};
|
|
97
|
+
const fromPKCS8 = (pem, alg, options) => {
|
|
98
|
+
return genericImport(/(?:-----(?:BEGIN|END) PRIVATE KEY-----|\s)/g, "pkcs8", pem, alg);
|
|
99
|
+
};
|
|
100
|
+
export {
|
|
101
|
+
fromPKCS8
|
|
102
|
+
};
|
|
103
|
+
//# sourceMappingURL=asn1.esm.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"asn1.esm.js","sources":["../../../../../../node_modules/jose/dist/browser/runtime/asn1.js"],"sourcesContent":["import crypto, { isCryptoKey } from './webcrypto.js';\nimport invalidKeyInput from '../lib/invalid_key_input.js';\nimport { encodeBase64, decodeBase64 } from './base64url.js';\nimport formatPEM from '../lib/format_pem.js';\nimport { JOSENotSupported } from '../util/errors.js';\nimport { types } from './is_key_like.js';\nconst genericExport = async (keyType, keyFormat, key) => {\n if (!isCryptoKey(key)) {\n throw new TypeError(invalidKeyInput(key, ...types));\n }\n if (!key.extractable) {\n throw new TypeError('CryptoKey is not extractable');\n }\n if (key.type !== keyType) {\n throw new TypeError(`key is not a ${keyType} key`);\n }\n return formatPEM(encodeBase64(new Uint8Array(await crypto.subtle.exportKey(keyFormat, key))), `${keyType.toUpperCase()} KEY`);\n};\nexport const toSPKI = (key) => {\n return genericExport('public', 'spki', key);\n};\nexport const toPKCS8 = (key) => {\n return genericExport('private', 'pkcs8', key);\n};\nconst findOid = (keyData, oid, from = 0) => {\n if (from === 0) {\n oid.unshift(oid.length);\n oid.unshift(0x06);\n }\n const i = keyData.indexOf(oid[0], from);\n if (i === -1)\n return false;\n const sub = keyData.subarray(i, i + oid.length);\n if (sub.length !== oid.length)\n return false;\n return sub.every((value, index) => value === oid[index]) || findOid(keyData, oid, i + 1);\n};\nconst getNamedCurve = (keyData) => {\n switch (true) {\n case findOid(keyData, [0x2a, 0x86, 0x48, 0xce, 0x3d, 0x03, 0x01, 0x07]):\n return 'P-256';\n case findOid(keyData, [0x2b, 0x81, 0x04, 0x00, 0x22]):\n return 'P-384';\n case findOid(keyData, [0x2b, 0x81, 0x04, 0x00, 0x23]):\n return 'P-521';\n case findOid(keyData, [0x2b, 0x65, 0x6e]):\n return 'X25519';\n case findOid(keyData, [0x2b, 0x65, 0x6f]):\n return 'X448';\n case findOid(keyData, [0x2b, 0x65, 0x70]):\n return 'Ed25519';\n case findOid(keyData, [0x2b, 0x65, 0x71]):\n return 'Ed448';\n default:\n throw new JOSENotSupported('Invalid or unsupported EC Key Curve or OKP Key Sub Type');\n }\n};\nconst genericImport = async (replace, keyFormat, pem, alg, options) => {\n let algorithm;\n let keyUsages;\n const keyData = new Uint8Array(atob(pem.replace(replace, ''))\n .split('')\n .map((c) => c.charCodeAt(0)));\n const isPublic = keyFormat === 'spki';\n switch (alg) {\n case 'PS256':\n case 'PS384':\n case 'PS512':\n algorithm = { name: 'RSA-PSS', hash: `SHA-${alg.slice(-3)}` };\n keyUsages = isPublic ? ['verify'] : ['sign'];\n break;\n case 'RS256':\n case 'RS384':\n case 'RS512':\n algorithm = { name: 'RSASSA-PKCS1-v1_5', hash: `SHA-${alg.slice(-3)}` };\n keyUsages = isPublic ? ['verify'] : ['sign'];\n break;\n case 'RSA-OAEP':\n case 'RSA-OAEP-256':\n case 'RSA-OAEP-384':\n case 'RSA-OAEP-512':\n algorithm = {\n name: 'RSA-OAEP',\n hash: `SHA-${parseInt(alg.slice(-3), 10) || 1}`,\n };\n keyUsages = isPublic ? ['encrypt', 'wrapKey'] : ['decrypt', 'unwrapKey'];\n break;\n case 'ES256':\n algorithm = { name: 'ECDSA', namedCurve: 'P-256' };\n keyUsages = isPublic ? ['verify'] : ['sign'];\n break;\n case 'ES384':\n algorithm = { name: 'ECDSA', namedCurve: 'P-384' };\n keyUsages = isPublic ? ['verify'] : ['sign'];\n break;\n case 'ES512':\n algorithm = { name: 'ECDSA', namedCurve: 'P-521' };\n keyUsages = isPublic ? ['verify'] : ['sign'];\n break;\n case 'ECDH-ES':\n case 'ECDH-ES+A128KW':\n case 'ECDH-ES+A192KW':\n case 'ECDH-ES+A256KW': {\n const namedCurve = getNamedCurve(keyData);\n algorithm = namedCurve.startsWith('P-') ? { name: 'ECDH', namedCurve } : { name: namedCurve };\n keyUsages = isPublic ? [] : ['deriveBits'];\n break;\n }\n case 'Ed25519':\n algorithm = { name: 'Ed25519' };\n keyUsages = isPublic ? ['verify'] : ['sign'];\n break;\n case 'EdDSA':\n algorithm = { name: getNamedCurve(keyData) };\n keyUsages = isPublic ? ['verify'] : ['sign'];\n break;\n default:\n throw new JOSENotSupported('Invalid or unsupported \"alg\" (Algorithm) value');\n }\n return crypto.subtle.importKey(keyFormat, keyData, algorithm, options?.extractable ?? false, keyUsages);\n};\nexport const fromPKCS8 = (pem, alg, options) => {\n return genericImport(/(?:-----(?:BEGIN|END) PRIVATE KEY-----|\\s)/g, 'pkcs8', pem, alg, options);\n};\nexport const fromSPKI = (pem, alg, options) => {\n return genericImport(/(?:-----(?:BEGIN|END) PUBLIC KEY-----|\\s)/g, 'spki', pem, alg, options);\n};\nfunction getElement(seq) {\n const result = [];\n let next = 0;\n while (next < seq.length) {\n const nextPart = parseElement(seq.subarray(next));\n result.push(nextPart);\n next += nextPart.byteLength;\n }\n return result;\n}\nfunction parseElement(bytes) {\n let position = 0;\n let tag = bytes[0] & 0x1f;\n position++;\n if (tag === 0x1f) {\n tag = 0;\n while (bytes[position] >= 0x80) {\n tag = tag * 128 + bytes[position] - 0x80;\n position++;\n }\n tag = tag * 128 + bytes[position] - 0x80;\n position++;\n }\n let length = 0;\n if (bytes[position] < 0x80) {\n length = bytes[position];\n position++;\n }\n else if (length === 0x80) {\n length = 0;\n while (bytes[position + length] !== 0 || bytes[position + length + 1] !== 0) {\n if (length > bytes.byteLength) {\n throw new TypeError('invalid indefinite form length');\n }\n length++;\n }\n const byteLength = position + length + 2;\n return {\n byteLength,\n contents: bytes.subarray(position, position + length),\n raw: bytes.subarray(0, byteLength),\n };\n }\n else {\n const numberOfDigits = bytes[position] & 0x7f;\n position++;\n length = 0;\n for (let i = 0; i < numberOfDigits; i++) {\n length = length * 256 + bytes[position];\n position++;\n }\n }\n const byteLength = position + length;\n return {\n byteLength,\n contents: bytes.subarray(position, byteLength),\n raw: bytes.subarray(0, byteLength),\n };\n}\nfunction spkiFromX509(buf) {\n const tbsCertificate = getElement(getElement(parseElement(buf).contents)[0].contents);\n return encodeBase64(tbsCertificate[tbsCertificate[0].raw[0] === 0xa0 ? 6 : 5].raw);\n}\nfunction getSPKI(x509) {\n const pem = x509.replace(/(?:-----(?:BEGIN|END) CERTIFICATE-----|\\s)/g, '');\n const raw = decodeBase64(pem);\n return formatPEM(spkiFromX509(raw), 'PUBLIC KEY');\n}\nexport const fromX509 = (pem, alg, options) => {\n let spki;\n try {\n spki = getSPKI(pem);\n }\n catch (cause) {\n throw new TypeError('Failed to parse the X.509 certificate', { cause });\n }\n return fromSPKI(spki, alg, options);\n};\n"],"names":[],"mappings":"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","x_google_ignoreList":[0]}
|