@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,11 +1,8 @@
|
|
|
1
|
-
import type * as
|
|
2
|
-
/**
|
|
3
|
-
* Every stable error code used by this module. {@link AnyJOSEError} pairs each subclass with the one
|
|
4
|
-
* it is thrown with, making that union a discriminated one.
|
|
5
|
-
*/
|
|
1
|
+
import type * as t from '../types.d.ts';
|
|
2
|
+
/** Stable error codes used by this module. */
|
|
6
3
|
export type JOSEErrorCode = 'ERR_JOSE_ALG_NOT_ALLOWED' | 'ERR_JOSE_GENERIC' | 'ERR_JOSE_NOT_SUPPORTED' | 'ERR_JWE_DECRYPTION_FAILED' | 'ERR_JWE_INVALID' | 'ERR_JWK_INVALID' | 'ERR_JWKS_INVALID' | 'ERR_JWKS_MULTIPLE_MATCHING_KEYS' | 'ERR_JWKS_NO_MATCHING_KEY' | 'ERR_JWKS_TIMEOUT' | 'ERR_JWS_INVALID' | 'ERR_JWS_SIGNATURE_VERIFICATION_FAILED' | 'ERR_JWT_CLAIM_VALIDATION_FAILED' | 'ERR_JWT_EXPIRED' | 'ERR_JWT_INVALID';
|
|
7
4
|
/**
|
|
8
|
-
*
|
|
5
|
+
* Shared properties of JWT Claims Set validation errors.
|
|
9
6
|
*
|
|
10
7
|
* > Note: {@link JWTExpired} does not extend {@link JWTClaimValidationFailed}, so `instanceof
|
|
11
8
|
* > JWTClaimValidationFailed` is `false` for an expired JWT. Use {@link JWTClaimValidationError} or
|
|
@@ -17,11 +14,11 @@ export interface JWTClaimValidationFailure {
|
|
|
17
14
|
/** Reason code for the validation failure. */
|
|
18
15
|
reason: JWTClaimValidationReason;
|
|
19
16
|
/** The parsed JWT Claims Set (aka payload). */
|
|
20
|
-
payload:
|
|
17
|
+
payload: t.JWTPayload;
|
|
21
18
|
}
|
|
22
19
|
/** Reason codes produced by JWT Claims Set validation. */
|
|
23
20
|
export type JWTClaimValidationReason = 'check_failed' | 'invalid' | 'mismatch' | 'missing' | 'unspecified' | (string & {});
|
|
24
|
-
/**
|
|
21
|
+
/** Base class for JOSE errors. */
|
|
25
22
|
export declare class JOSEError extends Error {
|
|
26
23
|
/** A unique error code for the particular error subclass. */
|
|
27
24
|
static code: JOSEErrorCode | (string & {});
|
|
@@ -34,10 +31,9 @@ export declare class JOSEError extends Error {
|
|
|
34
31
|
cause?: unknown;
|
|
35
32
|
});
|
|
36
33
|
}
|
|
37
|
-
/**
|
|
34
|
+
/** Thrown when JWT Claims Set validation fails. */
|
|
38
35
|
export declare class JWTClaimValidationFailed extends JOSEError implements JWTClaimValidationFailure {
|
|
39
36
|
static code: JOSEErrorCode | (string & {});
|
|
40
|
-
/** A unique error code for {@link JWTClaimValidationFailed}. */
|
|
41
37
|
code: JOSEErrorCode | (string & {});
|
|
42
38
|
/** The {@link JWTClaimValidationFailure} carried by every instance of this error. */
|
|
43
39
|
cause: JWTClaimValidationFailure;
|
|
@@ -51,13 +47,12 @@ export declare class JWTClaimValidationFailed extends JOSEError implements JWTCl
|
|
|
51
47
|
* has however been verified. Claims Set verification happens after the JWS Signature or JWE
|
|
52
48
|
* Decryption processes.
|
|
53
49
|
*/
|
|
54
|
-
payload:
|
|
55
|
-
constructor(message: string, payload:
|
|
50
|
+
payload: t.JWTPayload;
|
|
51
|
+
constructor(message: string, payload: t.JWTPayload, claim?: string, reason?: JWTClaimValidationReason);
|
|
56
52
|
}
|
|
57
|
-
/**
|
|
53
|
+
/** Thrown when a JWT is expired. */
|
|
58
54
|
export declare class JWTExpired extends JOSEError implements JWTClaimValidationFailure {
|
|
59
55
|
static code: JOSEErrorCode | (string & {});
|
|
60
|
-
/** A unique error code for {@link JWTExpired}. */
|
|
61
56
|
code: JOSEErrorCode | (string & {});
|
|
62
57
|
/** The {@link JWTClaimValidationFailure} carried by every instance of this error. */
|
|
63
58
|
cause: JWTClaimValidationFailure;
|
|
@@ -71,73 +66,61 @@ export declare class JWTExpired extends JOSEError implements JWTClaimValidationF
|
|
|
71
66
|
* has however been verified. Claims Set verification happens after the JWS Signature or JWE
|
|
72
67
|
* Decryption processes.
|
|
73
68
|
*/
|
|
74
|
-
payload:
|
|
75
|
-
constructor(message: string, payload:
|
|
69
|
+
payload: t.JWTPayload;
|
|
70
|
+
constructor(message: string, payload: t.JWTPayload, claim?: string, reason?: JWTClaimValidationReason);
|
|
76
71
|
}
|
|
77
|
-
/**
|
|
72
|
+
/** Thrown when an algorithm is disallowed by configuration. */
|
|
78
73
|
export declare class JOSEAlgNotAllowed extends JOSEError {
|
|
79
74
|
static code: JOSEErrorCode | (string & {});
|
|
80
|
-
/** A unique error code for {@link JOSEAlgNotAllowed}. */
|
|
81
75
|
code: JOSEErrorCode | (string & {});
|
|
82
76
|
}
|
|
83
|
-
/**
|
|
84
|
-
* An error subclass thrown when a particular feature or algorithm is not supported by this
|
|
85
|
-
* implementation or JOSE in general.
|
|
86
|
-
*/
|
|
77
|
+
/** Thrown when a feature or algorithm is unsupported. */
|
|
87
78
|
export declare class JOSENotSupported extends JOSEError {
|
|
88
79
|
static code: JOSEErrorCode | (string & {});
|
|
89
|
-
/** A unique error code for {@link JOSENotSupported}. */
|
|
90
80
|
code: JOSEErrorCode | (string & {});
|
|
91
81
|
}
|
|
92
|
-
/**
|
|
82
|
+
/** Thrown when JWE ciphertext decryption fails. */
|
|
93
83
|
export declare class JWEDecryptionFailed extends JOSEError {
|
|
94
84
|
static code: JOSEErrorCode | (string & {});
|
|
95
|
-
/** A unique error code for {@link JWEDecryptionFailed}. */
|
|
96
85
|
code: JOSEErrorCode | (string & {});
|
|
97
86
|
constructor(message?: string, options?: {
|
|
98
87
|
cause?: unknown;
|
|
99
88
|
});
|
|
100
89
|
}
|
|
101
|
-
/**
|
|
90
|
+
/** Thrown when a JWE is invalid. */
|
|
102
91
|
export declare class JWEInvalid extends JOSEError {
|
|
103
92
|
static code: JOSEErrorCode | (string & {});
|
|
104
|
-
/** A unique error code for {@link JWEInvalid}. */
|
|
105
93
|
code: JOSEErrorCode | (string & {});
|
|
106
94
|
}
|
|
107
|
-
/**
|
|
95
|
+
/** Thrown when a JWS is invalid. */
|
|
108
96
|
export declare class JWSInvalid extends JOSEError {
|
|
109
97
|
static code: JOSEErrorCode | (string & {});
|
|
110
|
-
/** A unique error code for {@link JWSInvalid}. */
|
|
111
98
|
code: JOSEErrorCode | (string & {});
|
|
112
99
|
}
|
|
113
|
-
/**
|
|
100
|
+
/** Thrown when a JWT is invalid. */
|
|
114
101
|
export declare class JWTInvalid extends JOSEError {
|
|
115
102
|
static code: JOSEErrorCode | (string & {});
|
|
116
|
-
/** A unique error code for {@link JWTInvalid}. */
|
|
117
103
|
code: JOSEErrorCode | (string & {});
|
|
118
104
|
}
|
|
119
|
-
/**
|
|
105
|
+
/** Thrown when a JWK is invalid. */
|
|
120
106
|
export declare class JWKInvalid extends JOSEError {
|
|
121
107
|
static code: JOSEErrorCode | (string & {});
|
|
122
|
-
/** A unique error code for {@link JWKInvalid}. */
|
|
123
108
|
code: JOSEErrorCode | (string & {});
|
|
124
109
|
}
|
|
125
|
-
/**
|
|
110
|
+
/** Thrown when a JWKS is invalid. */
|
|
126
111
|
export declare class JWKSInvalid extends JOSEError {
|
|
127
112
|
static code: JOSEErrorCode | (string & {});
|
|
128
|
-
/** A unique error code for {@link JWKSInvalid}. */
|
|
129
113
|
code: JOSEErrorCode | (string & {});
|
|
130
114
|
}
|
|
131
|
-
/**
|
|
115
|
+
/** Thrown when no keys match in a JWKS. */
|
|
132
116
|
export declare class JWKSNoMatchingKey extends JOSEError {
|
|
133
117
|
static code: JOSEErrorCode | (string & {});
|
|
134
|
-
/** A unique error code for {@link JWKSNoMatchingKey}. */
|
|
135
118
|
code: JOSEErrorCode | (string & {});
|
|
136
119
|
constructor(message?: string, options?: {
|
|
137
120
|
cause?: unknown;
|
|
138
121
|
});
|
|
139
122
|
}
|
|
140
|
-
/**
|
|
123
|
+
/** Thrown when multiple keys match in a JWKS. */
|
|
141
124
|
export declare class JWKSMultipleMatchingKeys extends JOSEError {
|
|
142
125
|
/**
|
|
143
126
|
* Iterates the public keys that matched the JWS JOSE Header, so that verification can be
|
|
@@ -146,43 +129,33 @@ export declare class JWKSMultipleMatchingKeys extends JOSEError {
|
|
|
146
129
|
* module always iterate the matched keys; an instance constructed by other code iterates
|
|
147
130
|
* nothing.
|
|
148
131
|
*/
|
|
149
|
-
[Symbol.asyncIterator]: () => AsyncIterableIterator<
|
|
132
|
+
[Symbol.asyncIterator]: () => AsyncIterableIterator<t.CryptoKey>;
|
|
150
133
|
static code: JOSEErrorCode | (string & {});
|
|
151
|
-
/** A unique error code for {@link JWKSMultipleMatchingKeys}. */
|
|
152
134
|
code: JOSEErrorCode | (string & {});
|
|
153
135
|
constructor(message?: string, options?: {
|
|
154
136
|
cause?: unknown;
|
|
155
137
|
});
|
|
156
138
|
}
|
|
157
|
-
/**
|
|
139
|
+
/** Thrown when fetching a remote JWKS times out. */
|
|
158
140
|
export declare class JWKSTimeout extends JOSEError {
|
|
159
141
|
static code: JOSEErrorCode | (string & {});
|
|
160
|
-
/** A unique error code for {@link JWKSTimeout}. */
|
|
161
142
|
code: JOSEErrorCode | (string & {});
|
|
162
143
|
constructor(message?: string, options?: {
|
|
163
144
|
cause?: unknown;
|
|
164
145
|
});
|
|
165
146
|
}
|
|
166
|
-
/**
|
|
147
|
+
/** Thrown when JWS signature verification fails. */
|
|
167
148
|
export declare class JWSSignatureVerificationFailed extends JOSEError {
|
|
168
149
|
static code: JOSEErrorCode | (string & {});
|
|
169
|
-
/** A unique error code for {@link JWSSignatureVerificationFailed}. */
|
|
170
150
|
code: JOSEErrorCode | (string & {});
|
|
171
151
|
constructor(message?: string, options?: {
|
|
172
152
|
cause?: unknown;
|
|
173
153
|
});
|
|
174
154
|
}
|
|
175
|
-
/**
|
|
176
|
-
* Union of the errors thrown during JWT Claims Set validation. {@link JWTExpired} does not extend
|
|
177
|
-
* {@link JWTClaimValidationFailed}, so a single `instanceof` check cannot cover both. Use this type
|
|
178
|
-
* — together with the {@link JOSEError.code code} discriminant — when handling either.
|
|
179
|
-
*/
|
|
155
|
+
/** Errors thrown during JWT Claims Set validation. */
|
|
180
156
|
export type JWTClaimValidationError = JWTClaimValidationFailed | JWTExpired;
|
|
181
157
|
/**
|
|
182
|
-
*
|
|
183
|
-
* {@link JOSEErrorCode} it is thrown with. That pairing lives here rather than on the classes, so
|
|
184
|
-
* that `code` stays assignable, writable, and overridable on them exactly as before, while a value
|
|
185
|
-
* of this type can still be switched over as a discriminated union.
|
|
158
|
+
* Discriminated union of the specific {@link JOSEError} subclasses.
|
|
186
159
|
*
|
|
187
160
|
* > Note: The base {@link JOSEError} is deliberately not a member — its `code` spans every value, which
|
|
188
161
|
* > would defeat the discriminant. A small number of JSON Web Key Set HTTP failures are thrown as the
|
|
@@ -1,32 +1,70 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
import * as errors from
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
export {
|
|
32
|
-
|
|
1
|
+
import { compactDecrypt } from "./jwe/compact/decrypt.js";
|
|
2
|
+
import { flattenedDecrypt } from "./jwe/flattened/decrypt.js";
|
|
3
|
+
import { generalDecrypt } from "./jwe/general/decrypt.js";
|
|
4
|
+
import { GeneralEncrypt } from "./jwe/general/encrypt.js";
|
|
5
|
+
import { compactVerify } from "./jws/compact/verify.js";
|
|
6
|
+
import { flattenedVerify } from "./jws/flattened/verify.js";
|
|
7
|
+
import { generalVerify } from "./jws/general/verify.js";
|
|
8
|
+
import { jwtVerify } from "./jwt/verify.js";
|
|
9
|
+
import { jwtDecrypt } from "./jwt/decrypt.js";
|
|
10
|
+
import { CompactEncrypt } from "./jwe/compact/encrypt.js";
|
|
11
|
+
import { FlattenedEncrypt } from "./jwe/flattened/encrypt.js";
|
|
12
|
+
import { CompactSign } from "./jws/compact/sign.js";
|
|
13
|
+
import { FlattenedSign } from "./jws/flattened/sign.js";
|
|
14
|
+
import { GeneralSign } from "./jws/general/sign.js";
|
|
15
|
+
import { SignJWT } from "./jwt/sign.js";
|
|
16
|
+
import { EncryptJWT } from "./jwt/encrypt.js";
|
|
17
|
+
import { calculateJwkThumbprint, calculateJwkThumbprintUri } from "./jwk/thumbprint.js";
|
|
18
|
+
import { EmbeddedJWK } from "./jwk/embedded.js";
|
|
19
|
+
import { createLocalJWKSet } from "./jwks/local.js";
|
|
20
|
+
import { createRemoteJWKSet, jwksCache, customFetch } from "./jwks/remote.js";
|
|
21
|
+
import { UnsecuredJWT } from "./jwt/unsecured.js";
|
|
22
|
+
import { exportPKCS8, exportSPKI, exportJWK } from "./key/export.js";
|
|
23
|
+
import { importSPKI, importPKCS8, importX509, importJWK } from "./key/import.js";
|
|
24
|
+
import { decodeProtectedHeader } from "./util/decode_protected_header.js";
|
|
25
|
+
import { decodeJwt } from "./util/decode_jwt.js";
|
|
26
|
+
import * as errors from "./util/errors.js";
|
|
27
|
+
import { generateKeyPair } from "./key/generate_key_pair.js";
|
|
28
|
+
import { generateSecret } from "./key/generate_secret.js";
|
|
29
|
+
import * as base64url from "./util/base64url.js";
|
|
30
|
+
const cryptoRuntime = "WebCryptoAPI";
|
|
31
|
+
export {
|
|
32
|
+
CompactEncrypt,
|
|
33
|
+
CompactSign,
|
|
34
|
+
EmbeddedJWK,
|
|
35
|
+
EncryptJWT,
|
|
36
|
+
FlattenedEncrypt,
|
|
37
|
+
FlattenedSign,
|
|
38
|
+
GeneralEncrypt,
|
|
39
|
+
GeneralSign,
|
|
40
|
+
SignJWT,
|
|
41
|
+
UnsecuredJWT,
|
|
42
|
+
base64url,
|
|
43
|
+
calculateJwkThumbprint,
|
|
44
|
+
calculateJwkThumbprintUri,
|
|
45
|
+
compactDecrypt,
|
|
46
|
+
compactVerify,
|
|
47
|
+
createLocalJWKSet,
|
|
48
|
+
createRemoteJWKSet,
|
|
49
|
+
cryptoRuntime,
|
|
50
|
+
customFetch,
|
|
51
|
+
decodeJwt,
|
|
52
|
+
decodeProtectedHeader,
|
|
53
|
+
errors,
|
|
54
|
+
exportJWK,
|
|
55
|
+
exportPKCS8,
|
|
56
|
+
exportSPKI,
|
|
57
|
+
flattenedDecrypt,
|
|
58
|
+
flattenedVerify,
|
|
59
|
+
generalDecrypt,
|
|
60
|
+
generalVerify,
|
|
61
|
+
generateKeyPair,
|
|
62
|
+
generateSecret,
|
|
63
|
+
importJWK,
|
|
64
|
+
importPKCS8,
|
|
65
|
+
importSPKI,
|
|
66
|
+
importX509,
|
|
67
|
+
jwksCache,
|
|
68
|
+
jwtDecrypt,
|
|
69
|
+
jwtVerify
|
|
70
|
+
};
|
|
@@ -1,9 +1,8 @@
|
|
|
1
|
-
import { prepareDecrypt, decryptCompact } from
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
if (typeof key === 'function') {
|
|
6
|
-
return { ...result, key: decrypted[2] };
|
|
7
|
-
}
|
|
8
|
-
return result;
|
|
1
|
+
import { prepareDecrypt, decryptCompact } from "../../lib/jwe_decrypt.js";
|
|
2
|
+
async function compactDecrypt(jwe, key, options) {
|
|
3
|
+
const decrypted = await decryptCompact(jwe, prepareDecrypt(options), key), result = { plaintext: decrypted[0], protectedHeader: decrypted[1] };
|
|
4
|
+
return typeof key == "function" ? { ...result, key: decrypted[2] } : result;
|
|
9
5
|
}
|
|
6
|
+
export {
|
|
7
|
+
compactDecrypt
|
|
8
|
+
};
|
|
@@ -1,49 +1,43 @@
|
|
|
1
|
-
import { assertNotSet } from
|
|
2
|
-
import { assertUint8Array } from
|
|
3
|
-
import { createJWE } from
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
undefined,
|
|
41
|
-
this.#cek,
|
|
42
|
-
this.#iv,
|
|
43
|
-
this.#keyManagementParameters,
|
|
44
|
-
undefined,
|
|
45
|
-
false,
|
|
46
|
-
], key, options);
|
|
47
|
-
return [jwe.protected, jwe.encrypted_key, jwe.iv, jwe.ciphertext, jwe.tag].join('.');
|
|
48
|
-
}
|
|
1
|
+
import { assertNotSet } from "../../lib/helpers.js";
|
|
2
|
+
import { assertUint8Array } from "../../lib/type_checks.js";
|
|
3
|
+
import { createJWE } from "../../lib/jwe_encrypt.js";
|
|
4
|
+
class CompactEncrypt {
|
|
5
|
+
#plaintext;
|
|
6
|
+
#protectedHeader;
|
|
7
|
+
#cek;
|
|
8
|
+
#iv;
|
|
9
|
+
#keyManagementParameters;
|
|
10
|
+
constructor(plaintext) {
|
|
11
|
+
assertUint8Array(plaintext, "plaintext"), this.#plaintext = plaintext;
|
|
12
|
+
}
|
|
13
|
+
setContentEncryptionKey(cek) {
|
|
14
|
+
return assertNotSet(this.#cek, "setContentEncryptionKey"), this.#cek = cek, this;
|
|
15
|
+
}
|
|
16
|
+
setInitializationVector(iv) {
|
|
17
|
+
return assertNotSet(this.#iv, "setInitializationVector"), this.#iv = iv, this;
|
|
18
|
+
}
|
|
19
|
+
setProtectedHeader(protectedHeader) {
|
|
20
|
+
return assertNotSet(this.#protectedHeader, "setProtectedHeader"), this.#protectedHeader = protectedHeader, this;
|
|
21
|
+
}
|
|
22
|
+
setKeyManagementParameters(parameters) {
|
|
23
|
+
return assertNotSet(this.#keyManagementParameters, "setKeyManagementParameters"), this.#keyManagementParameters = parameters, this;
|
|
24
|
+
}
|
|
25
|
+
async encrypt(key, options) {
|
|
26
|
+
const jwe = await createJWE([
|
|
27
|
+
this.#plaintext,
|
|
28
|
+
this.#protectedHeader,
|
|
29
|
+
void 0,
|
|
30
|
+
void 0,
|
|
31
|
+
void 0,
|
|
32
|
+
this.#cek,
|
|
33
|
+
this.#iv,
|
|
34
|
+
this.#keyManagementParameters,
|
|
35
|
+
void 0,
|
|
36
|
+
!1
|
|
37
|
+
], key, options);
|
|
38
|
+
return [jwe.protected, jwe.encrypted_key, jwe.iv, jwe.ciphertext, jwe.tag].join(".");
|
|
39
|
+
}
|
|
49
40
|
}
|
|
41
|
+
export {
|
|
42
|
+
CompactEncrypt
|
|
43
|
+
};
|
|
@@ -1,15 +1,15 @@
|
|
|
1
|
-
import { JWEInvalid } from
|
|
2
|
-
import { isObject } from
|
|
3
|
-
import { prepareDecrypt, decryptJWE, decryptResult, checkRecipient, snapshotSharedJWE, snapshotRecipientJWE
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
const snapshot = { ...shared, ...recipient };
|
|
13
|
-
checkRecipient(snapshot);
|
|
14
|
-
return decryptResult(snapshot, await decryptJWE(snapshot, prepareDecrypt(options), key));
|
|
1
|
+
import { JWEInvalid } from "../../util/errors.js";
|
|
2
|
+
import { isObject } from "../../lib/type_checks.js";
|
|
3
|
+
import { prepareDecrypt, decryptJWE, decryptResult, checkRecipient, snapshotSharedJWE, snapshotRecipientJWE } from "../../lib/jwe_decrypt.js";
|
|
4
|
+
async function flattenedDecrypt(jwe, key, options) {
|
|
5
|
+
if (!isObject(jwe))
|
|
6
|
+
throw new JWEInvalid("Flattened JWE must be an object");
|
|
7
|
+
const shared = snapshotSharedJWE(jwe), [recipient, , error] = snapshotRecipientJWE(jwe);
|
|
8
|
+
if (!recipient)
|
|
9
|
+
throw error;
|
|
10
|
+
const snapshot = { ...shared, ...recipient };
|
|
11
|
+
return checkRecipient(snapshot), decryptResult(snapshot, await decryptJWE(snapshot, prepareDecrypt(options), key));
|
|
15
12
|
}
|
|
13
|
+
export {
|
|
14
|
+
flattenedDecrypt
|
|
15
|
+
};
|
|
@@ -1,65 +1,54 @@
|
|
|
1
|
-
import { assertNotSet } from
|
|
2
|
-
import { createJWE } from
|
|
3
|
-
import { assertUint8Array } from
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
setKeyManagementParameters
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
async encrypt(key, options) {
|
|
52
|
-
return createJWE([
|
|
53
|
-
this.#plaintext,
|
|
54
|
-
this.#protectedHeader,
|
|
55
|
-
this.#unprotectedHeader,
|
|
56
|
-
this.#sharedUnprotectedHeader,
|
|
57
|
-
this.#aad,
|
|
58
|
-
this.#cek,
|
|
59
|
-
this.#iv,
|
|
60
|
-
this.#keyManagementParameters,
|
|
61
|
-
undefined,
|
|
62
|
-
false,
|
|
63
|
-
], key, options);
|
|
64
|
-
}
|
|
1
|
+
import { assertNotSet } from "../../lib/helpers.js";
|
|
2
|
+
import { createJWE } from "../../lib/jwe_encrypt.js";
|
|
3
|
+
import { assertUint8Array } from "../../lib/type_checks.js";
|
|
4
|
+
class FlattenedEncrypt {
|
|
5
|
+
#plaintext;
|
|
6
|
+
#protectedHeader;
|
|
7
|
+
#sharedUnprotectedHeader;
|
|
8
|
+
#unprotectedHeader;
|
|
9
|
+
#aad;
|
|
10
|
+
#cek;
|
|
11
|
+
#iv;
|
|
12
|
+
#keyManagementParameters;
|
|
13
|
+
constructor(plaintext) {
|
|
14
|
+
assertUint8Array(plaintext, "plaintext"), this.#plaintext = plaintext;
|
|
15
|
+
}
|
|
16
|
+
setKeyManagementParameters(parameters) {
|
|
17
|
+
return assertNotSet(this.#keyManagementParameters, "setKeyManagementParameters"), this.#keyManagementParameters = parameters, this;
|
|
18
|
+
}
|
|
19
|
+
setProtectedHeader(protectedHeader) {
|
|
20
|
+
return assertNotSet(this.#protectedHeader, "setProtectedHeader"), this.#protectedHeader = protectedHeader, this;
|
|
21
|
+
}
|
|
22
|
+
setSharedUnprotectedHeader(sharedUnprotectedHeader) {
|
|
23
|
+
return assertNotSet(this.#sharedUnprotectedHeader, "setSharedUnprotectedHeader"), this.#sharedUnprotectedHeader = sharedUnprotectedHeader, this;
|
|
24
|
+
}
|
|
25
|
+
setUnprotectedHeader(unprotectedHeader) {
|
|
26
|
+
return assertNotSet(this.#unprotectedHeader, "setUnprotectedHeader"), this.#unprotectedHeader = unprotectedHeader, this;
|
|
27
|
+
}
|
|
28
|
+
setAdditionalAuthenticatedData(aad) {
|
|
29
|
+
return this.#aad = aad, this;
|
|
30
|
+
}
|
|
31
|
+
setContentEncryptionKey(cek) {
|
|
32
|
+
return assertNotSet(this.#cek, "setContentEncryptionKey"), this.#cek = cek, this;
|
|
33
|
+
}
|
|
34
|
+
setInitializationVector(iv) {
|
|
35
|
+
return assertNotSet(this.#iv, "setInitializationVector"), this.#iv = iv, this;
|
|
36
|
+
}
|
|
37
|
+
async encrypt(key, options) {
|
|
38
|
+
return createJWE([
|
|
39
|
+
this.#plaintext,
|
|
40
|
+
this.#protectedHeader,
|
|
41
|
+
this.#unprotectedHeader,
|
|
42
|
+
this.#sharedUnprotectedHeader,
|
|
43
|
+
this.#aad,
|
|
44
|
+
this.#cek,
|
|
45
|
+
this.#iv,
|
|
46
|
+
this.#keyManagementParameters,
|
|
47
|
+
void 0,
|
|
48
|
+
!1
|
|
49
|
+
], key, options);
|
|
50
|
+
}
|
|
65
51
|
}
|
|
52
|
+
export {
|
|
53
|
+
FlattenedEncrypt
|
|
54
|
+
};
|