@suveren/gateway 0.7.6 → 0.8.0
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/content/integrations/mollie.json +103 -28
- package/dist/mcp-server/http.mjs +228 -118
- package/dist/ui/assets/{index-CsrM6RQr.js → index-BFnSVa9N.js} +22 -22
- package/dist/ui/index.html +1 -1
- package/node_modules/@hap/core/dist/index.d.mts +29 -6
- package/node_modules/@hap/core/dist/index.d.ts +29 -6
- package/node_modules/@hap/core/dist/index.js +54 -8
- package/node_modules/@hap/core/dist/index.mjs +53 -8
- package/node_modules/@hap/core/package.json +2 -1
- package/node_modules/@hap/core/src/frame.ts +115 -14
- package/node_modules/@hap/core/src/gatekeeper.ts +26 -0
- package/node_modules/@hap/core/src/types.ts +7 -1
- package/node_modules/@types/node/README.md +1 -1
- package/node_modules/@types/node/buffer.buffer.d.ts +5 -0
- package/node_modules/@types/node/crypto.d.ts +0 -2
- package/node_modules/@types/node/dgram.d.ts +119 -4
- package/node_modules/@types/node/ffi.d.ts +1 -1
- package/node_modules/@types/node/fs/promises.d.ts +61 -65
- package/node_modules/@types/node/fs.d.ts +86 -76
- package/node_modules/@types/node/http.d.ts +1 -1
- package/node_modules/@types/node/http2.d.ts +2 -2
- package/node_modules/@types/node/index.d.ts +1 -0
- package/node_modules/@types/node/inspector.d.ts +2 -1
- package/node_modules/@types/node/net.d.ts +108 -16
- package/node_modules/@types/node/package.json +2 -2
- package/node_modules/@types/node/quic.d.ts +37 -11
- package/node_modules/@types/node/stream/iter.d.ts +4 -4
- package/node_modules/@types/node/tls.d.ts +24 -0
- package/node_modules/@types/node/ts5.6/buffer.buffer.d.ts +5 -0
- package/node_modules/@types/node/ts5.6/index.d.ts +1 -0
- package/node_modules/@types/node/ts5.7/index.d.ts +1 -0
- package/node_modules/@types/node/tty.d.ts +4 -3
- package/node_modules/@types/node/vfs.d.ts +210 -0
- package/node_modules/@types/node/vm.d.ts +1 -1
- package/node_modules/express-rate-limit/dist/index.cjs +6 -3
- package/node_modules/express-rate-limit/dist/index.d.cts +11 -0
- package/node_modules/express-rate-limit/dist/index.d.mts +11 -0
- package/node_modules/express-rate-limit/dist/index.d.ts +11 -0
- package/node_modules/express-rate-limit/dist/index.mjs +6 -3
- package/node_modules/express-rate-limit/{license.md → license} +7 -6
- package/node_modules/express-rate-limit/package.json +5 -5
- package/node_modules/express-rate-limit/readme.md +1 -0
- package/node_modules/fast-uri/index.js +20 -5
- package/node_modules/fast-uri/lib/utils.js +8 -1
- package/node_modules/fast-uri/package.json +1 -1
- package/node_modules/fast-uri/test/component-safe-serialization.test.js +58 -0
- package/node_modules/fast-uri/test/ipv6-validation.test.js +34 -0
- package/node_modules/ip-address/README.md +92 -82
- package/node_modules/ip-address/dist/common.d.ts +20 -0
- package/node_modules/ip-address/dist/common.js +36 -0
- package/node_modules/ip-address/dist/common.js.map +1 -1
- package/node_modules/ip-address/dist/ipv4.d.ts +50 -0
- package/node_modules/ip-address/dist/ipv4.js +75 -0
- package/node_modules/ip-address/dist/ipv4.js.map +1 -1
- package/node_modules/ip-address/dist/ipv6.d.ts +79 -10
- package/node_modules/ip-address/dist/ipv6.js +120 -30
- package/node_modules/ip-address/dist/ipv6.js.map +1 -1
- package/node_modules/ip-address/dist/v4/constants.d.ts +12 -0
- package/node_modules/ip-address/dist/v4/constants.js +40 -1
- package/node_modules/ip-address/dist/v4/constants.js.map +1 -1
- package/node_modules/ip-address/dist/v6/constants.d.ts +14 -0
- package/node_modules/ip-address/dist/v6/constants.js +47 -1
- package/node_modules/ip-address/dist/v6/constants.js.map +1 -1
- package/node_modules/ip-address/package.json +1 -1
- package/node_modules/jose/dist/types/jwe/compact/decrypt.d.ts +7 -16
- package/node_modules/jose/dist/types/jwe/compact/encrypt.d.ts +6 -17
- package/node_modules/jose/dist/types/jwe/flattened/decrypt.d.ts +7 -16
- package/node_modules/jose/dist/types/jwe/flattened/encrypt.d.ts +11 -34
- package/node_modules/jose/dist/types/jwe/general/decrypt.d.ts +7 -16
- package/node_modules/jose/dist/types/jwe/general/encrypt.d.ts +15 -35
- package/node_modules/jose/dist/types/jwk/embedded.d.ts +3 -8
- package/node_modules/jose/dist/types/jwk/thumbprint.d.ts +5 -5
- package/node_modules/jose/dist/types/jwks/local.d.ts +6 -10
- package/node_modules/jose/dist/types/jwks/remote.d.ts +13 -24
- package/node_modules/jose/dist/types/jws/compact/sign.d.ts +5 -10
- package/node_modules/jose/dist/types/jws/compact/verify.d.ts +9 -18
- package/node_modules/jose/dist/types/jws/flattened/sign.d.ts +7 -16
- package/node_modules/jose/dist/types/jws/flattened/verify.d.ts +9 -18
- package/node_modules/jose/dist/types/jws/general/sign.d.ts +11 -21
- package/node_modules/jose/dist/types/jws/general/verify.d.ts +9 -18
- package/node_modules/jose/dist/types/jwt/decrypt.d.ts +10 -20
- package/node_modules/jose/dist/types/jwt/encrypt.d.ts +6 -13
- package/node_modules/jose/dist/types/jwt/sign.d.ts +5 -6
- package/node_modules/jose/dist/types/jwt/unsecured.d.ts +9 -14
- package/node_modules/jose/dist/types/jwt/verify.d.ts +9 -19
- package/node_modules/jose/dist/types/key/export.d.ts +4 -4
- package/node_modules/jose/dist/types/key/generate_key_pair.d.ts +6 -8
- package/node_modules/jose/dist/types/key/generate_secret.d.ts +4 -11
- package/node_modules/jose/dist/types/key/import.d.ts +10 -17
- package/node_modules/jose/dist/types/types.d.ts +44 -84
- package/node_modules/jose/dist/types/util/base64url.d.ts +2 -2
- package/node_modules/jose/dist/types/util/decode_jwt.d.ts +3 -10
- package/node_modules/jose/dist/types/util/decode_protected_header.d.ts +4 -4
- package/node_modules/jose/dist/types/util/errors.d.ts +26 -53
- package/node_modules/jose/dist/webapi/index.js +70 -32
- package/node_modules/jose/dist/webapi/jwe/compact/decrypt.js +7 -8
- package/node_modules/jose/dist/webapi/jwe/compact/encrypt.js +42 -48
- package/node_modules/jose/dist/webapi/jwe/flattened/decrypt.js +14 -14
- package/node_modules/jose/dist/webapi/jwe/flattened/encrypt.js +53 -64
- package/node_modules/jose/dist/webapi/jwe/general/decrypt.js +38 -49
- package/node_modules/jose/dist/webapi/jwe/general/encrypt.js +121 -169
- package/node_modules/jose/dist/webapi/jwk/embedded.js +30 -32
- package/node_modules/jose/dist/webapi/jwk/thumbprint.js +54 -70
- package/node_modules/jose/dist/webapi/jwks/local.js +47 -64
- package/node_modules/jose/dist/webapi/jwks/remote.js +88 -136
- package/node_modules/jose/dist/webapi/jws/compact/sign.js +21 -21
- package/node_modules/jose/dist/webapi/jws/compact/verify.js +7 -8
- package/node_modules/jose/dist/webapi/jws/flattened/sign.js +29 -31
- package/node_modules/jose/dist/webapi/jws/flattened/verify.js +21 -24
- package/node_modules/jose/dist/webapi/jws/general/sign.js +61 -72
- package/node_modules/jose/dist/webapi/jws/general/verify.js +45 -69
- package/node_modules/jose/dist/webapi/jwt/decrypt.js +13 -20
- package/node_modules/jose/dist/webapi/jwt/encrypt.js +57 -70
- package/node_modules/jose/dist/webapi/jwt/sign.js +17 -16
- package/node_modules/jose/dist/webapi/jwt/unsecured.js +32 -40
- package/node_modules/jose/dist/webapi/jwt/verify.js +12 -14
- package/node_modules/jose/dist/webapi/key/export.js +32 -37
- package/node_modules/jose/dist/webapi/key/generate_key_pair.js +40 -48
- package/node_modules/jose/dist/webapi/key/generate_secret.js +35 -40
- package/node_modules/jose/dist/webapi/key/import.js +52 -56
- package/node_modules/jose/dist/webapi/lib/asn1.js +130 -169
- package/node_modules/jose/dist/webapi/lib/base64.js +18 -20
- package/node_modules/jose/dist/webapi/lib/buffer_utils.js +34 -38
- package/node_modules/jose/dist/webapi/lib/content_encryption.js +79 -115
- package/node_modules/jose/dist/webapi/lib/crypto_key.js +24 -25
- package/node_modules/jose/dist/webapi/lib/deflate.js +45 -47
- package/node_modules/jose/dist/webapi/lib/helpers.js +40 -37
- package/node_modules/jose/dist/webapi/lib/invalid_key_input.js +10 -24
- package/node_modules/jose/dist/webapi/lib/is_key_like.js +17 -15
- package/node_modules/jose/dist/webapi/lib/jwe_algorithms.js +106 -93
- package/node_modules/jose/dist/webapi/lib/jwe_decrypt.js +207 -230
- package/node_modules/jose/dist/webapi/lib/jwe_encrypt.js +104 -138
- package/node_modules/jose/dist/webapi/lib/jwk_metadata.js +17 -18
- package/node_modules/jose/dist/webapi/lib/jwk_to_key.js +9 -16
- package/node_modules/jose/dist/webapi/lib/jws_algorithms.js +62 -61
- package/node_modules/jose/dist/webapi/lib/jws_sign.js +50 -75
- package/node_modules/jose/dist/webapi/lib/jws_verify.js +80 -125
- package/node_modules/jose/dist/webapi/lib/jwt_claims_set.js +123 -209
- package/node_modules/jose/dist/webapi/lib/key.js +84 -136
- package/node_modules/jose/dist/webapi/lib/key_algorithm.js +13 -8
- package/node_modules/jose/dist/webapi/lib/key_descriptor.js +8 -6
- package/node_modules/jose/dist/webapi/lib/key_management.js +200 -231
- package/node_modules/jose/dist/webapi/lib/key_options.js +7 -5
- package/node_modules/jose/dist/webapi/lib/options.js +55 -68
- package/node_modules/jose/dist/webapi/lib/signing.js +18 -22
- package/node_modules/jose/dist/webapi/lib/type_checks.js +26 -29
- package/node_modules/jose/dist/webapi/util/base64url.js +26 -35
- package/node_modules/jose/dist/webapi/util/decode_jwt.js +32 -31
- package/node_modules/jose/dist/webapi/util/decode_protected_header.js +18 -23
- package/node_modules/jose/dist/webapi/util/errors.js +94 -84
- package/node_modules/jose/package.json +17 -81
- package/package.json +2 -2
- package/profiles/calendar/0.5.profile.json +190 -0
- package/profiles/charge/0.5.profile.json +210 -0
- package/profiles/customers/0.7.profile.json +157 -0
- package/profiles/deploy/0.9.profile.json +176 -0
- package/profiles/email/0.6.profile.json +208 -0
- package/profiles/index.json +9 -1
- package/profiles/publish/0.5.profile.json +186 -0
- package/profiles/purchase/0.5.profile.json +231 -0
- package/profiles/records/0.5.profile.json +117 -0
|
@@ -1,26 +1,22 @@
|
|
|
1
|
-
import { checkCryptoKey, checkModulusLength } from
|
|
1
|
+
import { checkCryptoKey, checkModulusLength } from "./crypto_key.js";
|
|
2
2
|
async function getSigKey(entry, key, usage) {
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
]);
|
|
7
|
-
}
|
|
8
|
-
checkCryptoKey(key, entry.subtle, usage);
|
|
9
|
-
if (entry.minRsaBits)
|
|
10
|
-
checkModulusLength(entry.alg, key);
|
|
11
|
-
return key;
|
|
3
|
+
return key instanceof Uint8Array ? crypto.subtle.importKey("raw", key, entry.subtle, !1, [
|
|
4
|
+
usage
|
|
5
|
+
]) : (checkCryptoKey(key, entry.subtle, usage), entry.minRsaBits && checkModulusLength(entry.alg, key), key);
|
|
12
6
|
}
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
return new Uint8Array(signature);
|
|
7
|
+
async function sign(entry, key, data) {
|
|
8
|
+
const cryptoKey = await getSigKey(entry, key, "sign"), signature = await crypto.subtle.sign(entry.signing, cryptoKey, data);
|
|
9
|
+
return new Uint8Array(signature);
|
|
17
10
|
}
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
}
|
|
11
|
+
async function verify(entry, key, signature, data) {
|
|
12
|
+
const cryptoKey = await getSigKey(entry, key, "verify");
|
|
13
|
+
try {
|
|
14
|
+
return await crypto.subtle.verify(entry.signing, cryptoKey, signature, data);
|
|
15
|
+
} catch {
|
|
16
|
+
return !1;
|
|
17
|
+
}
|
|
26
18
|
}
|
|
19
|
+
export {
|
|
20
|
+
sign,
|
|
21
|
+
verify
|
|
22
|
+
};
|
|
@@ -1,33 +1,30 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
}
|
|
1
|
+
function assertUint8Array(input, label) {
|
|
2
|
+
if (!(input instanceof Uint8Array))
|
|
3
|
+
throw new TypeError(`${label} must be an instance of Uint8Array`);
|
|
5
4
|
}
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
}
|
|
12
|
-
const prototype = Object.getPrototypeOf(input);
|
|
13
|
-
return prototype === null || Object.getPrototypeOf(prototype) === null;
|
|
5
|
+
function isObject(input) {
|
|
6
|
+
if (typeof input != "object" || input === null || Object.prototype.toString.call(input) !== "[object Object]")
|
|
7
|
+
return !1;
|
|
8
|
+
const prototype = Object.getPrototypeOf(input);
|
|
9
|
+
return prototype === null || Object.getPrototypeOf(prototype) === null;
|
|
14
10
|
}
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
Array.isArray(input.keys) &&
|
|
18
|
-
Array.from(input.keys).every(isObject));
|
|
11
|
+
function isJwkSet(input) {
|
|
12
|
+
return isObject(input) && Array.isArray(input.keys) && Array.from(input.keys).every(isObject);
|
|
19
13
|
}
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
}
|
|
31
|
-
}
|
|
32
|
-
return true;
|
|
14
|
+
function isDisjoint(...headers) {
|
|
15
|
+
const parameters = /* @__PURE__ */ new Set();
|
|
16
|
+
for (const header of headers)
|
|
17
|
+
if (header)
|
|
18
|
+
for (const parameter of Object.keys(header)) {
|
|
19
|
+
if (parameters.has(parameter))
|
|
20
|
+
return !1;
|
|
21
|
+
parameters.add(parameter);
|
|
22
|
+
}
|
|
23
|
+
return !0;
|
|
33
24
|
}
|
|
25
|
+
export {
|
|
26
|
+
assertUint8Array,
|
|
27
|
+
isDisjoint,
|
|
28
|
+
isJwkSet,
|
|
29
|
+
isObject
|
|
30
|
+
};
|
|
@@ -1,39 +1,30 @@
|
|
|
1
|
-
import { encoder, decoder } from
|
|
2
|
-
import { encodeBase64, decodeBase64 } from
|
|
3
|
-
const invalid =
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
try {
|
|
7
|
-
return Uint8Array.fromBase64(typeof input === 'string' ? input : decoder.decode(input), {
|
|
8
|
-
alphabet: 'base64url',
|
|
9
|
-
});
|
|
10
|
-
}
|
|
11
|
-
catch (cause) {
|
|
12
|
-
throw new TypeError(invalid, { cause });
|
|
13
|
-
}
|
|
14
|
-
}
|
|
15
|
-
let encoded = input;
|
|
16
|
-
if (encoded instanceof Uint8Array) {
|
|
17
|
-
encoded = decoder.decode(encoded);
|
|
18
|
-
}
|
|
19
|
-
if (encoded.includes('+') || encoded.includes('/')) {
|
|
20
|
-
throw new TypeError(invalid);
|
|
21
|
-
}
|
|
22
|
-
encoded = encoded.replace(/-/g, '+').replace(/_/g, '/');
|
|
1
|
+
import { encoder, decoder } from "../lib/buffer_utils.js";
|
|
2
|
+
import { encodeBase64, decodeBase64 } from "../lib/base64.js";
|
|
3
|
+
const invalid = "The input to be decoded is not correctly encoded.";
|
|
4
|
+
function decode(input) {
|
|
5
|
+
if (Uint8Array.fromBase64)
|
|
23
6
|
try {
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
7
|
+
return Uint8Array.fromBase64(typeof input == "string" ? input : decoder.decode(input), {
|
|
8
|
+
alphabet: "base64url"
|
|
9
|
+
});
|
|
10
|
+
} catch (cause) {
|
|
11
|
+
throw new TypeError(invalid, { cause });
|
|
28
12
|
}
|
|
13
|
+
let encoded = input;
|
|
14
|
+
if (encoded instanceof Uint8Array && (encoded = decoder.decode(encoded)), encoded.includes("+") || encoded.includes("/"))
|
|
15
|
+
throw new TypeError(invalid);
|
|
16
|
+
encoded = encoded.replace(/-/g, "+").replace(/_/g, "/");
|
|
17
|
+
try {
|
|
18
|
+
return decodeBase64(encoded);
|
|
19
|
+
} catch {
|
|
20
|
+
throw new TypeError(invalid);
|
|
21
|
+
}
|
|
29
22
|
}
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
unencoded = encoder.encode(unencoded);
|
|
34
|
-
}
|
|
35
|
-
if (Uint8Array.prototype.toBase64) {
|
|
36
|
-
return unencoded.toBase64({ alphabet: 'base64url', omitPadding: true });
|
|
37
|
-
}
|
|
38
|
-
return encodeBase64(unencoded).replace(/=/g, '').replace(/\+/g, '-').replace(/\//g, '_');
|
|
23
|
+
function encode(input) {
|
|
24
|
+
let unencoded = input;
|
|
25
|
+
return typeof unencoded == "string" && (unencoded = encoder.encode(unencoded)), Uint8Array.prototype.toBase64 ? unencoded.toBase64({ alphabet: "base64url", omitPadding: !0 }) : encodeBase64(unencoded).replace(/=/g, "").replace(/\+/g, "-").replace(/\//g, "_");
|
|
39
26
|
}
|
|
27
|
+
export {
|
|
28
|
+
decode,
|
|
29
|
+
encode
|
|
30
|
+
};
|
|
@@ -1,32 +1,33 @@
|
|
|
1
|
-
import { decode as b64u } from
|
|
2
|
-
import { strictDecoder } from
|
|
3
|
-
import { isObject } from
|
|
4
|
-
import { JWTInvalid } from
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
throw new JWTInvalid('Invalid JWT Claims Set');
|
|
31
|
-
return result;
|
|
1
|
+
import { decode as b64u } from "./base64url.js";
|
|
2
|
+
import { strictDecoder } from "../lib/buffer_utils.js";
|
|
3
|
+
import { isObject } from "../lib/type_checks.js";
|
|
4
|
+
import { JWTInvalid } from "./errors.js";
|
|
5
|
+
function decodeJwt(jwt) {
|
|
6
|
+
if (typeof jwt != "string")
|
|
7
|
+
throw new JWTInvalid("JWTs must use Compact JWS serialization, JWT must be a string");
|
|
8
|
+
const { 1: payload, length } = jwt.split(".");
|
|
9
|
+
if (length === 5)
|
|
10
|
+
throw new JWTInvalid("Only JWTs using Compact JWS serialization can be decoded");
|
|
11
|
+
if (length !== 3)
|
|
12
|
+
throw new JWTInvalid("Invalid JWT");
|
|
13
|
+
if (!payload)
|
|
14
|
+
throw new JWTInvalid("JWTs must contain a payload");
|
|
15
|
+
let decoded;
|
|
16
|
+
try {
|
|
17
|
+
decoded = b64u(payload);
|
|
18
|
+
} catch {
|
|
19
|
+
throw new JWTInvalid("Failed to base64url decode the payload");
|
|
20
|
+
}
|
|
21
|
+
let result;
|
|
22
|
+
try {
|
|
23
|
+
result = JSON.parse(strictDecoder.decode(decoded));
|
|
24
|
+
} catch {
|
|
25
|
+
throw new JWTInvalid("Failed to parse the decoded payload as JSON");
|
|
26
|
+
}
|
|
27
|
+
if (!isObject(result))
|
|
28
|
+
throw new JWTInvalid("Invalid JWT Claims Set");
|
|
29
|
+
return result;
|
|
32
30
|
}
|
|
31
|
+
export {
|
|
32
|
+
decodeJwt
|
|
33
|
+
};
|
|
@@ -1,24 +1,19 @@
|
|
|
1
|
-
import { parseJoseHeader } from
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
throw new TypeError('Token does not contain a Protected Header');
|
|
17
|
-
}
|
|
18
|
-
}
|
|
19
|
-
const invalid = 'Invalid Token or Protected Header formatting';
|
|
20
|
-
if (typeof protectedB64u !== 'string' || !protectedB64u) {
|
|
21
|
-
throw new TypeError(invalid);
|
|
22
|
-
}
|
|
23
|
-
return parseJoseHeader(protectedB64u, TypeError, invalid);
|
|
1
|
+
import { parseJoseHeader } from "../lib/helpers.js";
|
|
2
|
+
function decodeProtectedHeader(token) {
|
|
3
|
+
let protectedB64u;
|
|
4
|
+
if (typeof token == "string") {
|
|
5
|
+
const parts = token.split(".");
|
|
6
|
+
(parts.length === 3 || parts.length === 5) && ([protectedB64u] = parts);
|
|
7
|
+
} else if (typeof token == "object" && token)
|
|
8
|
+
if ("protected" in token)
|
|
9
|
+
protectedB64u = token.protected;
|
|
10
|
+
else
|
|
11
|
+
throw new TypeError("Token does not contain a Protected Header");
|
|
12
|
+
const invalid = "Invalid Token or Protected Header formatting";
|
|
13
|
+
if (typeof protectedB64u != "string" || !protectedB64u)
|
|
14
|
+
throw new TypeError(invalid);
|
|
15
|
+
return parseJoseHeader(protectedB64u, TypeError, invalid);
|
|
24
16
|
}
|
|
17
|
+
export {
|
|
18
|
+
decodeProtectedHeader
|
|
19
|
+
};
|
|
@@ -1,99 +1,109 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
Error.captureStackTrace?.(this, this.constructor);
|
|
8
|
-
}
|
|
1
|
+
class JOSEError extends Error {
|
|
2
|
+
static code = "ERR_JOSE_GENERIC";
|
|
3
|
+
code = "ERR_JOSE_GENERIC";
|
|
4
|
+
constructor(message, options) {
|
|
5
|
+
super(message, options), this.name = this.constructor.name, Error.captureStackTrace?.(this, this.constructor);
|
|
6
|
+
}
|
|
9
7
|
}
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
this.reason = reason;
|
|
20
|
-
this.payload = payload;
|
|
21
|
-
}
|
|
8
|
+
class JWTClaimValidationFailed extends JOSEError {
|
|
9
|
+
static code = "ERR_JWT_CLAIM_VALIDATION_FAILED";
|
|
10
|
+
code = "ERR_JWT_CLAIM_VALIDATION_FAILED";
|
|
11
|
+
claim;
|
|
12
|
+
reason;
|
|
13
|
+
payload;
|
|
14
|
+
constructor(message, payload, claim = "unspecified", reason = "unspecified") {
|
|
15
|
+
super(message, { cause: { claim, reason, payload } }), this.claim = claim, this.reason = reason, this.payload = payload;
|
|
16
|
+
}
|
|
22
17
|
}
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
this.reason = reason;
|
|
33
|
-
this.payload = payload;
|
|
34
|
-
}
|
|
18
|
+
class JWTExpired extends JOSEError {
|
|
19
|
+
static code = "ERR_JWT_EXPIRED";
|
|
20
|
+
code = "ERR_JWT_EXPIRED";
|
|
21
|
+
claim;
|
|
22
|
+
reason;
|
|
23
|
+
payload;
|
|
24
|
+
constructor(message, payload, claim = "unspecified", reason = "unspecified") {
|
|
25
|
+
super(message, { cause: { claim, reason, payload } }), this.claim = claim, this.reason = reason, this.payload = payload;
|
|
26
|
+
}
|
|
35
27
|
}
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
28
|
+
class JOSEAlgNotAllowed extends JOSEError {
|
|
29
|
+
static code = "ERR_JOSE_ALG_NOT_ALLOWED";
|
|
30
|
+
code = "ERR_JOSE_ALG_NOT_ALLOWED";
|
|
39
31
|
}
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
32
|
+
class JOSENotSupported extends JOSEError {
|
|
33
|
+
static code = "ERR_JOSE_NOT_SUPPORTED";
|
|
34
|
+
code = "ERR_JOSE_NOT_SUPPORTED";
|
|
43
35
|
}
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
36
|
+
class JWEDecryptionFailed extends JOSEError {
|
|
37
|
+
static code = "ERR_JWE_DECRYPTION_FAILED";
|
|
38
|
+
code = "ERR_JWE_DECRYPTION_FAILED";
|
|
39
|
+
constructor(message = "decryption operation failed", options) {
|
|
40
|
+
super(message, options);
|
|
41
|
+
}
|
|
50
42
|
}
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
43
|
+
class JWEInvalid extends JOSEError {
|
|
44
|
+
static code = "ERR_JWE_INVALID";
|
|
45
|
+
code = "ERR_JWE_INVALID";
|
|
54
46
|
}
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
47
|
+
class JWSInvalid extends JOSEError {
|
|
48
|
+
static code = "ERR_JWS_INVALID";
|
|
49
|
+
code = "ERR_JWS_INVALID";
|
|
58
50
|
}
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
51
|
+
class JWTInvalid extends JOSEError {
|
|
52
|
+
static code = "ERR_JWT_INVALID";
|
|
53
|
+
code = "ERR_JWT_INVALID";
|
|
62
54
|
}
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
55
|
+
class JWKInvalid extends JOSEError {
|
|
56
|
+
static code = "ERR_JWK_INVALID";
|
|
57
|
+
code = "ERR_JWK_INVALID";
|
|
66
58
|
}
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
59
|
+
class JWKSInvalid extends JOSEError {
|
|
60
|
+
static code = "ERR_JWKS_INVALID";
|
|
61
|
+
code = "ERR_JWKS_INVALID";
|
|
70
62
|
}
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
63
|
+
class JWKSNoMatchingKey extends JOSEError {
|
|
64
|
+
static code = "ERR_JWKS_NO_MATCHING_KEY";
|
|
65
|
+
code = "ERR_JWKS_NO_MATCHING_KEY";
|
|
66
|
+
constructor(message = "no applicable key found in the JSON Web Key Set", options) {
|
|
67
|
+
super(message, options);
|
|
68
|
+
}
|
|
77
69
|
}
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
70
|
+
class JWKSMultipleMatchingKeys extends JOSEError {
|
|
71
|
+
[Symbol.asyncIterator] = async function* () {
|
|
72
|
+
};
|
|
73
|
+
static code = "ERR_JWKS_MULTIPLE_MATCHING_KEYS";
|
|
74
|
+
code = "ERR_JWKS_MULTIPLE_MATCHING_KEYS";
|
|
75
|
+
constructor(message = "multiple matching keys found in the JSON Web Key Set", options) {
|
|
76
|
+
super(message, options);
|
|
77
|
+
}
|
|
85
78
|
}
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
79
|
+
class JWKSTimeout extends JOSEError {
|
|
80
|
+
static code = "ERR_JWKS_TIMEOUT";
|
|
81
|
+
code = "ERR_JWKS_TIMEOUT";
|
|
82
|
+
constructor(message = "request timed out", options) {
|
|
83
|
+
super(message, options);
|
|
84
|
+
}
|
|
92
85
|
}
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
86
|
+
class JWSSignatureVerificationFailed extends JOSEError {
|
|
87
|
+
static code = "ERR_JWS_SIGNATURE_VERIFICATION_FAILED";
|
|
88
|
+
code = "ERR_JWS_SIGNATURE_VERIFICATION_FAILED";
|
|
89
|
+
constructor(message = "signature verification failed", options) {
|
|
90
|
+
super(message, options);
|
|
91
|
+
}
|
|
99
92
|
}
|
|
93
|
+
export {
|
|
94
|
+
JOSEAlgNotAllowed,
|
|
95
|
+
JOSEError,
|
|
96
|
+
JOSENotSupported,
|
|
97
|
+
JWEDecryptionFailed,
|
|
98
|
+
JWEInvalid,
|
|
99
|
+
JWKInvalid,
|
|
100
|
+
JWKSInvalid,
|
|
101
|
+
JWKSMultipleMatchingKeys,
|
|
102
|
+
JWKSNoMatchingKey,
|
|
103
|
+
JWKSTimeout,
|
|
104
|
+
JWSInvalid,
|
|
105
|
+
JWSSignatureVerificationFailed,
|
|
106
|
+
JWTClaimValidationFailed,
|
|
107
|
+
JWTExpired,
|
|
108
|
+
JWTInvalid
|
|
109
|
+
};
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "jose",
|
|
3
|
-
"version": "6.2.
|
|
3
|
+
"version": "6.2.11",
|
|
4
4
|
"description": "JWA, JWS, JWE, JWT, JWK, JWKS for Node.js, Browser, Cloudflare Workers, Deno, Bun, and other Web-interoperable runtimes",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"akp",
|
|
@@ -67,13 +67,9 @@
|
|
|
67
67
|
"types": "./dist/types/index.d.ts",
|
|
68
68
|
"default": "./dist/webapi/index.js"
|
|
69
69
|
},
|
|
70
|
-
"./jwk
|
|
71
|
-
"types": "./dist/types/jwk
|
|
72
|
-
"default": "./dist/webapi/jwk
|
|
73
|
-
},
|
|
74
|
-
"./jwk/thumbprint": {
|
|
75
|
-
"types": "./dist/types/jwk/thumbprint.d.ts",
|
|
76
|
-
"default": "./dist/webapi/jwk/thumbprint.js"
|
|
70
|
+
"./jwk/*": {
|
|
71
|
+
"types": "./dist/types/jwk/*.d.ts",
|
|
72
|
+
"default": "./dist/webapi/jwk/*.js"
|
|
77
73
|
},
|
|
78
74
|
"./key/import": {
|
|
79
75
|
"types": "./dist/types/key/import.d.ts",
|
|
@@ -91,89 +87,29 @@
|
|
|
91
87
|
"types": "./dist/types/key/generate_secret.d.ts",
|
|
92
88
|
"default": "./dist/webapi/key/generate_secret.js"
|
|
93
89
|
},
|
|
94
|
-
"./jwks
|
|
95
|
-
"types": "./dist/types/jwks
|
|
96
|
-
"default": "./dist/webapi/jwks
|
|
97
|
-
},
|
|
98
|
-
"./jwks/local": {
|
|
99
|
-
"types": "./dist/types/jwks/local.d.ts",
|
|
100
|
-
"default": "./dist/webapi/jwks/local.js"
|
|
101
|
-
},
|
|
102
|
-
"./jwt/sign": {
|
|
103
|
-
"types": "./dist/types/jwt/sign.d.ts",
|
|
104
|
-
"default": "./dist/webapi/jwt/sign.js"
|
|
105
|
-
},
|
|
106
|
-
"./jwt/verify": {
|
|
107
|
-
"types": "./dist/types/jwt/verify.d.ts",
|
|
108
|
-
"default": "./dist/webapi/jwt/verify.js"
|
|
109
|
-
},
|
|
110
|
-
"./jwt/encrypt": {
|
|
111
|
-
"types": "./dist/types/jwt/encrypt.d.ts",
|
|
112
|
-
"default": "./dist/webapi/jwt/encrypt.js"
|
|
113
|
-
},
|
|
114
|
-
"./jwt/decrypt": {
|
|
115
|
-
"types": "./dist/types/jwt/decrypt.d.ts",
|
|
116
|
-
"default": "./dist/webapi/jwt/decrypt.js"
|
|
117
|
-
},
|
|
118
|
-
"./jwt/unsecured": {
|
|
119
|
-
"types": "./dist/types/jwt/unsecured.d.ts",
|
|
120
|
-
"default": "./dist/webapi/jwt/unsecured.js"
|
|
90
|
+
"./jwks/*": {
|
|
91
|
+
"types": "./dist/types/jwks/*.d.ts",
|
|
92
|
+
"default": "./dist/webapi/jwks/*.js"
|
|
121
93
|
},
|
|
122
94
|
"./jwt/decode": {
|
|
123
95
|
"types": "./dist/types/util/decode_jwt.d.ts",
|
|
124
96
|
"default": "./dist/webapi/util/decode_jwt.js"
|
|
125
97
|
},
|
|
98
|
+
"./jwt/*": {
|
|
99
|
+
"types": "./dist/types/jwt/*.d.ts",
|
|
100
|
+
"default": "./dist/webapi/jwt/*.js"
|
|
101
|
+
},
|
|
126
102
|
"./decode/protected_header": {
|
|
127
103
|
"types": "./dist/types/util/decode_protected_header.d.ts",
|
|
128
104
|
"default": "./dist/webapi/util/decode_protected_header.js"
|
|
129
105
|
},
|
|
130
|
-
"./jws
|
|
131
|
-
"types": "./dist/types/jws
|
|
132
|
-
"default": "./dist/webapi/jws
|
|
133
|
-
},
|
|
134
|
-
"./jws/compact/verify": {
|
|
135
|
-
"types": "./dist/types/jws/compact/verify.d.ts",
|
|
136
|
-
"default": "./dist/webapi/jws/compact/verify.js"
|
|
137
|
-
},
|
|
138
|
-
"./jws/flattened/sign": {
|
|
139
|
-
"types": "./dist/types/jws/flattened/sign.d.ts",
|
|
140
|
-
"default": "./dist/webapi/jws/flattened/sign.js"
|
|
141
|
-
},
|
|
142
|
-
"./jws/flattened/verify": {
|
|
143
|
-
"types": "./dist/types/jws/flattened/verify.d.ts",
|
|
144
|
-
"default": "./dist/webapi/jws/flattened/verify.js"
|
|
145
|
-
},
|
|
146
|
-
"./jws/general/sign": {
|
|
147
|
-
"types": "./dist/types/jws/general/sign.d.ts",
|
|
148
|
-
"default": "./dist/webapi/jws/general/sign.js"
|
|
149
|
-
},
|
|
150
|
-
"./jws/general/verify": {
|
|
151
|
-
"types": "./dist/types/jws/general/verify.d.ts",
|
|
152
|
-
"default": "./dist/webapi/jws/general/verify.js"
|
|
153
|
-
},
|
|
154
|
-
"./jwe/compact/encrypt": {
|
|
155
|
-
"types": "./dist/types/jwe/compact/encrypt.d.ts",
|
|
156
|
-
"default": "./dist/webapi/jwe/compact/encrypt.js"
|
|
157
|
-
},
|
|
158
|
-
"./jwe/compact/decrypt": {
|
|
159
|
-
"types": "./dist/types/jwe/compact/decrypt.d.ts",
|
|
160
|
-
"default": "./dist/webapi/jwe/compact/decrypt.js"
|
|
161
|
-
},
|
|
162
|
-
"./jwe/flattened/encrypt": {
|
|
163
|
-
"types": "./dist/types/jwe/flattened/encrypt.d.ts",
|
|
164
|
-
"default": "./dist/webapi/jwe/flattened/encrypt.js"
|
|
165
|
-
},
|
|
166
|
-
"./jwe/flattened/decrypt": {
|
|
167
|
-
"types": "./dist/types/jwe/flattened/decrypt.d.ts",
|
|
168
|
-
"default": "./dist/webapi/jwe/flattened/decrypt.js"
|
|
169
|
-
},
|
|
170
|
-
"./jwe/general/encrypt": {
|
|
171
|
-
"types": "./dist/types/jwe/general/encrypt.d.ts",
|
|
172
|
-
"default": "./dist/webapi/jwe/general/encrypt.js"
|
|
106
|
+
"./jws/*": {
|
|
107
|
+
"types": "./dist/types/jws/*.d.ts",
|
|
108
|
+
"default": "./dist/webapi/jws/*.js"
|
|
173
109
|
},
|
|
174
|
-
"./jwe
|
|
175
|
-
"types": "./dist/types/jwe
|
|
176
|
-
"default": "./dist/webapi/jwe
|
|
110
|
+
"./jwe/*": {
|
|
111
|
+
"types": "./dist/types/jwe/*.d.ts",
|
|
112
|
+
"default": "./dist/webapi/jwe/*.js"
|
|
177
113
|
},
|
|
178
114
|
"./errors": {
|
|
179
115
|
"types": "./dist/types/util/errors.d.ts",
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@suveren/gateway",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.8.0",
|
|
4
4
|
"description": "Suveren gateway — local agent gateway built in compliance with the Human Agency Protocol (HAP). Runs the UI, control plane, and MCP server in one Node process.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "server.js",
|
|
@@ -24,7 +24,7 @@
|
|
|
24
24
|
"node": ">=20"
|
|
25
25
|
},
|
|
26
26
|
"dependencies": {
|
|
27
|
-
"@hap/core": "npm:@humanagencyp/hap-core@^0.
|
|
27
|
+
"@hap/core": "npm:@humanagencyp/hap-core@^0.10.0",
|
|
28
28
|
"@hpke/core": "^1.9.0",
|
|
29
29
|
"express": "^4.18.0",
|
|
30
30
|
"http-proxy-middleware": "^3.0.0",
|