@navios/jwt 0.5.0 → 0.7.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/CHANGELOG.md +24 -0
- package/README.md +211 -34
- package/dist/src/index.d.mts +51 -0
- package/dist/src/index.d.mts.map +1 -1
- package/dist/src/jwt-service.provider.d.mts +50 -0
- package/dist/src/jwt-service.provider.d.mts.map +1 -1
- package/dist/src/jwt.service.d.mts +170 -0
- package/dist/src/jwt.service.d.mts.map +1 -1
- package/dist/src/options/jwt-service.options.d.mts +106 -0
- package/dist/src/options/jwt-service.options.d.mts.map +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/lib/index.cjs +668 -0
- package/lib/index.cjs.map +1 -0
- package/lib/index.d.cts +936 -0
- package/lib/index.d.cts.map +1 -0
- package/lib/index.d.mts +936 -21
- package/lib/index.d.mts.map +1 -0
- package/lib/index.mjs +610 -270
- package/lib/index.mjs.map +1 -1
- package/package.json +5 -5
- package/project.json +2 -2
- package/src/index.mts +54 -0
- package/src/jwt-service.provider.mts +50 -0
- package/src/jwt.service.mts +170 -0
- package/src/options/jwt-service.options.mts +106 -0
- package/tsdown.config.mts +33 -0
- package/lib/_tsup-dts-rollup.d.mts +0 -624
- package/lib/_tsup-dts-rollup.d.ts +0 -624
- package/lib/index.d.ts +0 -21
- package/lib/index.js +0 -301
- package/lib/index.js.map +0 -1
- package/tsup.config.mts +0 -12
package/lib/index.d.cts
ADDED
|
@@ -0,0 +1,936 @@
|
|
|
1
|
+
import jwt, { Secret as Secret$1 } from "jsonwebtoken";
|
|
2
|
+
import * as zod_v40 from "zod/v4";
|
|
3
|
+
import { z } from "zod/v4";
|
|
4
|
+
import * as zod_v4_core0 from "zod/v4/core";
|
|
5
|
+
import * as _navios_core0 from "@navios/core";
|
|
6
|
+
import { BoundInjectionToken, FactoryInjectionToken, InjectionToken } from "@navios/core";
|
|
7
|
+
|
|
8
|
+
//#region src/options/jwt-service.options.d.mts
|
|
9
|
+
/**
|
|
10
|
+
* Request type for secret or key provider functions.
|
|
11
|
+
*
|
|
12
|
+
* Used to distinguish between signing and verification operations when
|
|
13
|
+
* dynamically resolving secrets or keys.
|
|
14
|
+
*/
|
|
15
|
+
declare enum RequestType {
|
|
16
|
+
/** Request is for signing a token */
|
|
17
|
+
Sign = "Sign",
|
|
18
|
+
/** Request is for verifying a token */
|
|
19
|
+
Verify = "Verify",
|
|
20
|
+
}
|
|
21
|
+
/**
|
|
22
|
+
* Supported JWT algorithms.
|
|
23
|
+
*
|
|
24
|
+
* Includes symmetric (HMAC) and asymmetric (RSA, ECDSA, EdDSA) algorithms.
|
|
25
|
+
*/
|
|
26
|
+
declare const AlgorithmType: z.ZodEnum<{
|
|
27
|
+
HS256: "HS256";
|
|
28
|
+
HS384: "HS384";
|
|
29
|
+
HS512: "HS512";
|
|
30
|
+
RS256: "RS256";
|
|
31
|
+
RS384: "RS384";
|
|
32
|
+
RS512: "RS512";
|
|
33
|
+
ES256: "ES256";
|
|
34
|
+
ES384: "ES384";
|
|
35
|
+
ES512: "ES512";
|
|
36
|
+
PS256: "PS256";
|
|
37
|
+
PS384: "PS384";
|
|
38
|
+
PS512: "PS512";
|
|
39
|
+
none: "none";
|
|
40
|
+
}>;
|
|
41
|
+
/**
|
|
42
|
+
* JWT header schema.
|
|
43
|
+
*
|
|
44
|
+
* Defines the structure of the JWT header with standard claims.
|
|
45
|
+
*/
|
|
46
|
+
declare const JwtHeaderSchema: z.ZodObject<{
|
|
47
|
+
alg: z.ZodUnion<[z.ZodEnum<{
|
|
48
|
+
HS256: "HS256";
|
|
49
|
+
HS384: "HS384";
|
|
50
|
+
HS512: "HS512";
|
|
51
|
+
RS256: "RS256";
|
|
52
|
+
RS384: "RS384";
|
|
53
|
+
RS512: "RS512";
|
|
54
|
+
ES256: "ES256";
|
|
55
|
+
ES384: "ES384";
|
|
56
|
+
ES512: "ES512";
|
|
57
|
+
PS256: "PS256";
|
|
58
|
+
PS384: "PS384";
|
|
59
|
+
PS512: "PS512";
|
|
60
|
+
none: "none";
|
|
61
|
+
}>, z.ZodString]>;
|
|
62
|
+
typ: z.ZodOptional<z.ZodString>;
|
|
63
|
+
cty: z.ZodOptional<z.ZodString>;
|
|
64
|
+
crit: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
65
|
+
kid: z.ZodOptional<z.ZodString>;
|
|
66
|
+
jku: z.ZodOptional<z.ZodString>;
|
|
67
|
+
x5u: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodArray<z.ZodString>]>>;
|
|
68
|
+
'x5t#S256': z.ZodOptional<z.ZodString>;
|
|
69
|
+
x5t: z.ZodOptional<z.ZodString>;
|
|
70
|
+
x5c: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodArray<z.ZodString>]>>;
|
|
71
|
+
}, z.core.$strip>;
|
|
72
|
+
/**
|
|
73
|
+
* JWT header type.
|
|
74
|
+
*
|
|
75
|
+
* Contains algorithm, type, and optional header claims.
|
|
76
|
+
*/
|
|
77
|
+
type JwtHeader = z.infer<typeof JwtHeaderSchema>;
|
|
78
|
+
/**
|
|
79
|
+
* Schema for JWT signing options.
|
|
80
|
+
*
|
|
81
|
+
* Defines all available options for signing tokens including algorithm,
|
|
82
|
+
* expiration, audience, issuer, and other standard JWT claims.
|
|
83
|
+
*/
|
|
84
|
+
declare const SignOptionsSchema: z.ZodObject<{
|
|
85
|
+
algorithm: z.ZodOptional<z.ZodEnum<{
|
|
86
|
+
HS256: "HS256";
|
|
87
|
+
HS384: "HS384";
|
|
88
|
+
HS512: "HS512";
|
|
89
|
+
RS256: "RS256";
|
|
90
|
+
RS384: "RS384";
|
|
91
|
+
RS512: "RS512";
|
|
92
|
+
ES256: "ES256";
|
|
93
|
+
ES384: "ES384";
|
|
94
|
+
ES512: "ES512";
|
|
95
|
+
PS256: "PS256";
|
|
96
|
+
PS384: "PS384";
|
|
97
|
+
PS512: "PS512";
|
|
98
|
+
none: "none";
|
|
99
|
+
}>>;
|
|
100
|
+
keyid: z.ZodOptional<z.ZodString>;
|
|
101
|
+
expiresIn: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodNumber]>>;
|
|
102
|
+
notBefore: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodNumber]>>;
|
|
103
|
+
audience: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodCustom<RegExp, RegExp>, z.ZodArray<z.ZodUnion<readonly [z.ZodString, z.ZodCustom<RegExp, RegExp>]>>]>>;
|
|
104
|
+
subject: z.ZodOptional<z.ZodString>;
|
|
105
|
+
issuer: z.ZodOptional<z.ZodString>;
|
|
106
|
+
jwtid: z.ZodOptional<z.ZodString>;
|
|
107
|
+
mutatePayload: z.ZodOptional<z.ZodBoolean>;
|
|
108
|
+
noTimestamp: z.ZodOptional<z.ZodBoolean>;
|
|
109
|
+
header: z.ZodOptional<z.ZodObject<{
|
|
110
|
+
alg: z.ZodUnion<[z.ZodEnum<{
|
|
111
|
+
HS256: "HS256";
|
|
112
|
+
HS384: "HS384";
|
|
113
|
+
HS512: "HS512";
|
|
114
|
+
RS256: "RS256";
|
|
115
|
+
RS384: "RS384";
|
|
116
|
+
RS512: "RS512";
|
|
117
|
+
ES256: "ES256";
|
|
118
|
+
ES384: "ES384";
|
|
119
|
+
ES512: "ES512";
|
|
120
|
+
PS256: "PS256";
|
|
121
|
+
PS384: "PS384";
|
|
122
|
+
PS512: "PS512";
|
|
123
|
+
none: "none";
|
|
124
|
+
}>, z.ZodString]>;
|
|
125
|
+
typ: z.ZodOptional<z.ZodString>;
|
|
126
|
+
cty: z.ZodOptional<z.ZodString>;
|
|
127
|
+
crit: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
128
|
+
kid: z.ZodOptional<z.ZodString>;
|
|
129
|
+
jku: z.ZodOptional<z.ZodString>;
|
|
130
|
+
x5u: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodArray<z.ZodString>]>>;
|
|
131
|
+
'x5t#S256': z.ZodOptional<z.ZodString>;
|
|
132
|
+
x5t: z.ZodOptional<z.ZodString>;
|
|
133
|
+
x5c: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodArray<z.ZodString>]>>;
|
|
134
|
+
}, z.core.$strip>>;
|
|
135
|
+
encoding: z.ZodOptional<z.ZodString>;
|
|
136
|
+
allowInsecureKeySizes: z.ZodOptional<z.ZodBoolean>;
|
|
137
|
+
allowInvalidAsymmetricKeyTypes: z.ZodOptional<z.ZodBoolean>;
|
|
138
|
+
}, z.core.$strip>;
|
|
139
|
+
/**
|
|
140
|
+
* Options for signing JWT tokens.
|
|
141
|
+
*
|
|
142
|
+
* @see SignOptionsSchema for the complete schema definition
|
|
143
|
+
*/
|
|
144
|
+
type SignOptions = z.infer<typeof SignOptionsSchema>;
|
|
145
|
+
/**
|
|
146
|
+
* Schema for JWT verification options.
|
|
147
|
+
*
|
|
148
|
+
* Defines all available options for verifying tokens including allowed
|
|
149
|
+
* algorithms, audience, issuer, expiration handling, and other validation rules.
|
|
150
|
+
*/
|
|
151
|
+
declare const VerifyOptionsSchema: z.ZodObject<{
|
|
152
|
+
algorithms: z.ZodOptional<z.ZodArray<z.ZodEnum<{
|
|
153
|
+
HS256: "HS256";
|
|
154
|
+
HS384: "HS384";
|
|
155
|
+
HS512: "HS512";
|
|
156
|
+
RS256: "RS256";
|
|
157
|
+
RS384: "RS384";
|
|
158
|
+
RS512: "RS512";
|
|
159
|
+
ES256: "ES256";
|
|
160
|
+
ES384: "ES384";
|
|
161
|
+
ES512: "ES512";
|
|
162
|
+
PS256: "PS256";
|
|
163
|
+
PS384: "PS384";
|
|
164
|
+
PS512: "PS512";
|
|
165
|
+
none: "none";
|
|
166
|
+
}>>>;
|
|
167
|
+
audience: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodCustom<RegExp, RegExp>, z.ZodArray<z.ZodUnion<readonly [z.ZodString, z.ZodCustom<RegExp, RegExp>]>>]>>;
|
|
168
|
+
clockTimestamp: z.ZodOptional<z.ZodNumber>;
|
|
169
|
+
clockTolerance: z.ZodOptional<z.ZodNumber>;
|
|
170
|
+
complete: z.ZodOptional<z.ZodBoolean>;
|
|
171
|
+
issuer: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodArray<z.ZodString>]>>;
|
|
172
|
+
ignoreExpiration: z.ZodOptional<z.ZodBoolean>;
|
|
173
|
+
ignoreNotBefore: z.ZodOptional<z.ZodBoolean>;
|
|
174
|
+
jwtid: z.ZodOptional<z.ZodString>;
|
|
175
|
+
nonce: z.ZodOptional<z.ZodString>;
|
|
176
|
+
subject: z.ZodOptional<z.ZodString>;
|
|
177
|
+
maxAge: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodNumber]>>;
|
|
178
|
+
allowInvalidAsymmetricKeyTypes: z.ZodOptional<z.ZodBoolean>;
|
|
179
|
+
}, z.core.$strip>;
|
|
180
|
+
/**
|
|
181
|
+
* Options for verifying JWT tokens.
|
|
182
|
+
*
|
|
183
|
+
* @see VerifyOptionsSchema for the complete schema definition
|
|
184
|
+
*/
|
|
185
|
+
type VerifyOptions = z.infer<typeof VerifyOptionsSchema>;
|
|
186
|
+
/**
|
|
187
|
+
* Schema for JWT secret/key types.
|
|
188
|
+
*
|
|
189
|
+
* Supports string secrets, Buffer objects, and key objects with passphrases.
|
|
190
|
+
*/
|
|
191
|
+
declare const SecretSchema: z.ZodUnion<readonly [z.ZodString, z.ZodCustom<Buffer<ArrayBufferLike>, Buffer<ArrayBufferLike>>, z.ZodObject<{
|
|
192
|
+
type: z.ZodString;
|
|
193
|
+
}, z.core.$loose>, z.ZodObject<{
|
|
194
|
+
key: z.ZodUnion<readonly [z.ZodString, z.ZodCustom<Buffer<ArrayBufferLike>, Buffer<ArrayBufferLike>>]>;
|
|
195
|
+
passphrase: z.ZodString;
|
|
196
|
+
}, z.core.$strip>]>;
|
|
197
|
+
/**
|
|
198
|
+
* Secret or key type for JWT operations.
|
|
199
|
+
*
|
|
200
|
+
* Can be a string, Buffer, or an object with key and optional passphrase.
|
|
201
|
+
*/
|
|
202
|
+
type Secret = z.infer<typeof SecretSchema>;
|
|
203
|
+
declare const JwtServiceOptionsSchema: z.ZodObject<{
|
|
204
|
+
signOptions: z.ZodOptional<z.ZodObject<{
|
|
205
|
+
algorithm: z.ZodOptional<z.ZodEnum<{
|
|
206
|
+
HS256: "HS256";
|
|
207
|
+
HS384: "HS384";
|
|
208
|
+
HS512: "HS512";
|
|
209
|
+
RS256: "RS256";
|
|
210
|
+
RS384: "RS384";
|
|
211
|
+
RS512: "RS512";
|
|
212
|
+
ES256: "ES256";
|
|
213
|
+
ES384: "ES384";
|
|
214
|
+
ES512: "ES512";
|
|
215
|
+
PS256: "PS256";
|
|
216
|
+
PS384: "PS384";
|
|
217
|
+
PS512: "PS512";
|
|
218
|
+
none: "none";
|
|
219
|
+
}>>;
|
|
220
|
+
keyid: z.ZodOptional<z.ZodString>;
|
|
221
|
+
expiresIn: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodNumber]>>;
|
|
222
|
+
notBefore: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodNumber]>>;
|
|
223
|
+
audience: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodCustom<RegExp, RegExp>, z.ZodArray<z.ZodUnion<readonly [z.ZodString, z.ZodCustom<RegExp, RegExp>]>>]>>;
|
|
224
|
+
subject: z.ZodOptional<z.ZodString>;
|
|
225
|
+
issuer: z.ZodOptional<z.ZodString>;
|
|
226
|
+
jwtid: z.ZodOptional<z.ZodString>;
|
|
227
|
+
mutatePayload: z.ZodOptional<z.ZodBoolean>;
|
|
228
|
+
noTimestamp: z.ZodOptional<z.ZodBoolean>;
|
|
229
|
+
header: z.ZodOptional<z.ZodObject<{
|
|
230
|
+
alg: z.ZodUnion<[z.ZodEnum<{
|
|
231
|
+
HS256: "HS256";
|
|
232
|
+
HS384: "HS384";
|
|
233
|
+
HS512: "HS512";
|
|
234
|
+
RS256: "RS256";
|
|
235
|
+
RS384: "RS384";
|
|
236
|
+
RS512: "RS512";
|
|
237
|
+
ES256: "ES256";
|
|
238
|
+
ES384: "ES384";
|
|
239
|
+
ES512: "ES512";
|
|
240
|
+
PS256: "PS256";
|
|
241
|
+
PS384: "PS384";
|
|
242
|
+
PS512: "PS512";
|
|
243
|
+
none: "none";
|
|
244
|
+
}>, z.ZodString]>;
|
|
245
|
+
typ: z.ZodOptional<z.ZodString>;
|
|
246
|
+
cty: z.ZodOptional<z.ZodString>;
|
|
247
|
+
crit: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
248
|
+
kid: z.ZodOptional<z.ZodString>;
|
|
249
|
+
jku: z.ZodOptional<z.ZodString>;
|
|
250
|
+
x5u: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodArray<z.ZodString>]>>;
|
|
251
|
+
'x5t#S256': z.ZodOptional<z.ZodString>;
|
|
252
|
+
x5t: z.ZodOptional<z.ZodString>;
|
|
253
|
+
x5c: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodArray<z.ZodString>]>>;
|
|
254
|
+
}, z.core.$strip>>;
|
|
255
|
+
encoding: z.ZodOptional<z.ZodString>;
|
|
256
|
+
allowInsecureKeySizes: z.ZodOptional<z.ZodBoolean>;
|
|
257
|
+
allowInvalidAsymmetricKeyTypes: z.ZodOptional<z.ZodBoolean>;
|
|
258
|
+
}, z.core.$strip>>;
|
|
259
|
+
secret: z.ZodOptional<z.ZodString>;
|
|
260
|
+
publicKey: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodCustom<Buffer<ArrayBufferLike>, Buffer<ArrayBufferLike>>]>>;
|
|
261
|
+
privateKey: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodCustom<Buffer<ArrayBufferLike>, Buffer<ArrayBufferLike>>, z.ZodObject<{
|
|
262
|
+
type: z.ZodString;
|
|
263
|
+
}, z.core.$loose>, z.ZodObject<{
|
|
264
|
+
key: z.ZodUnion<readonly [z.ZodString, z.ZodCustom<Buffer<ArrayBufferLike>, Buffer<ArrayBufferLike>>]>;
|
|
265
|
+
passphrase: z.ZodString;
|
|
266
|
+
}, z.core.$strip>]>>;
|
|
267
|
+
verifyOptions: z.ZodOptional<z.ZodObject<{
|
|
268
|
+
algorithms: z.ZodOptional<z.ZodArray<z.ZodEnum<{
|
|
269
|
+
HS256: "HS256";
|
|
270
|
+
HS384: "HS384";
|
|
271
|
+
HS512: "HS512";
|
|
272
|
+
RS256: "RS256";
|
|
273
|
+
RS384: "RS384";
|
|
274
|
+
RS512: "RS512";
|
|
275
|
+
ES256: "ES256";
|
|
276
|
+
ES384: "ES384";
|
|
277
|
+
ES512: "ES512";
|
|
278
|
+
PS256: "PS256";
|
|
279
|
+
PS384: "PS384";
|
|
280
|
+
PS512: "PS512";
|
|
281
|
+
none: "none";
|
|
282
|
+
}>>>;
|
|
283
|
+
audience: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodCustom<RegExp, RegExp>, z.ZodArray<z.ZodUnion<readonly [z.ZodString, z.ZodCustom<RegExp, RegExp>]>>]>>;
|
|
284
|
+
clockTimestamp: z.ZodOptional<z.ZodNumber>;
|
|
285
|
+
clockTolerance: z.ZodOptional<z.ZodNumber>;
|
|
286
|
+
complete: z.ZodOptional<z.ZodBoolean>;
|
|
287
|
+
issuer: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodArray<z.ZodString>]>>;
|
|
288
|
+
ignoreExpiration: z.ZodOptional<z.ZodBoolean>;
|
|
289
|
+
ignoreNotBefore: z.ZodOptional<z.ZodBoolean>;
|
|
290
|
+
jwtid: z.ZodOptional<z.ZodString>;
|
|
291
|
+
nonce: z.ZodOptional<z.ZodString>;
|
|
292
|
+
subject: z.ZodOptional<z.ZodString>;
|
|
293
|
+
maxAge: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodNumber]>>;
|
|
294
|
+
allowInvalidAsymmetricKeyTypes: z.ZodOptional<z.ZodBoolean>;
|
|
295
|
+
}, z.core.$strip>>;
|
|
296
|
+
secretOrKeyProvider: z.ZodOptional<z.ZodFunction<z.ZodTuple<readonly [z.ZodEnum<typeof RequestType>, z.ZodAny, z.ZodOptional<z.ZodUnion<readonly [z.ZodObject<{
|
|
297
|
+
algorithm: z.ZodOptional<z.ZodEnum<{
|
|
298
|
+
HS256: "HS256";
|
|
299
|
+
HS384: "HS384";
|
|
300
|
+
HS512: "HS512";
|
|
301
|
+
RS256: "RS256";
|
|
302
|
+
RS384: "RS384";
|
|
303
|
+
RS512: "RS512";
|
|
304
|
+
ES256: "ES256";
|
|
305
|
+
ES384: "ES384";
|
|
306
|
+
ES512: "ES512";
|
|
307
|
+
PS256: "PS256";
|
|
308
|
+
PS384: "PS384";
|
|
309
|
+
PS512: "PS512";
|
|
310
|
+
none: "none";
|
|
311
|
+
}>>;
|
|
312
|
+
keyid: z.ZodOptional<z.ZodString>;
|
|
313
|
+
expiresIn: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodNumber]>>;
|
|
314
|
+
notBefore: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodNumber]>>;
|
|
315
|
+
audience: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodCustom<RegExp, RegExp>, z.ZodArray<z.ZodUnion<readonly [z.ZodString, z.ZodCustom<RegExp, RegExp>]>>]>>;
|
|
316
|
+
subject: z.ZodOptional<z.ZodString>;
|
|
317
|
+
issuer: z.ZodOptional<z.ZodString>;
|
|
318
|
+
jwtid: z.ZodOptional<z.ZodString>;
|
|
319
|
+
mutatePayload: z.ZodOptional<z.ZodBoolean>;
|
|
320
|
+
noTimestamp: z.ZodOptional<z.ZodBoolean>;
|
|
321
|
+
header: z.ZodOptional<z.ZodObject<{
|
|
322
|
+
alg: z.ZodUnion<[z.ZodEnum<{
|
|
323
|
+
HS256: "HS256";
|
|
324
|
+
HS384: "HS384";
|
|
325
|
+
HS512: "HS512";
|
|
326
|
+
RS256: "RS256";
|
|
327
|
+
RS384: "RS384";
|
|
328
|
+
RS512: "RS512";
|
|
329
|
+
ES256: "ES256";
|
|
330
|
+
ES384: "ES384";
|
|
331
|
+
ES512: "ES512";
|
|
332
|
+
PS256: "PS256";
|
|
333
|
+
PS384: "PS384";
|
|
334
|
+
PS512: "PS512";
|
|
335
|
+
none: "none";
|
|
336
|
+
}>, z.ZodString]>;
|
|
337
|
+
typ: z.ZodOptional<z.ZodString>;
|
|
338
|
+
cty: z.ZodOptional<z.ZodString>;
|
|
339
|
+
crit: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
340
|
+
kid: z.ZodOptional<z.ZodString>;
|
|
341
|
+
jku: z.ZodOptional<z.ZodString>;
|
|
342
|
+
x5u: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodArray<z.ZodString>]>>;
|
|
343
|
+
'x5t#S256': z.ZodOptional<z.ZodString>;
|
|
344
|
+
x5t: z.ZodOptional<z.ZodString>;
|
|
345
|
+
x5c: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodArray<z.ZodString>]>>;
|
|
346
|
+
}, z.core.$strip>>;
|
|
347
|
+
encoding: z.ZodOptional<z.ZodString>;
|
|
348
|
+
allowInsecureKeySizes: z.ZodOptional<z.ZodBoolean>;
|
|
349
|
+
allowInvalidAsymmetricKeyTypes: z.ZodOptional<z.ZodBoolean>;
|
|
350
|
+
}, z.core.$strip>, z.ZodObject<{
|
|
351
|
+
algorithms: z.ZodOptional<z.ZodArray<z.ZodEnum<{
|
|
352
|
+
HS256: "HS256";
|
|
353
|
+
HS384: "HS384";
|
|
354
|
+
HS512: "HS512";
|
|
355
|
+
RS256: "RS256";
|
|
356
|
+
RS384: "RS384";
|
|
357
|
+
RS512: "RS512";
|
|
358
|
+
ES256: "ES256";
|
|
359
|
+
ES384: "ES384";
|
|
360
|
+
ES512: "ES512";
|
|
361
|
+
PS256: "PS256";
|
|
362
|
+
PS384: "PS384";
|
|
363
|
+
PS512: "PS512";
|
|
364
|
+
none: "none";
|
|
365
|
+
}>>>;
|
|
366
|
+
audience: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodCustom<RegExp, RegExp>, z.ZodArray<z.ZodUnion<readonly [z.ZodString, z.ZodCustom<RegExp, RegExp>]>>]>>;
|
|
367
|
+
clockTimestamp: z.ZodOptional<z.ZodNumber>;
|
|
368
|
+
clockTolerance: z.ZodOptional<z.ZodNumber>;
|
|
369
|
+
complete: z.ZodOptional<z.ZodBoolean>;
|
|
370
|
+
issuer: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodArray<z.ZodString>]>>;
|
|
371
|
+
ignoreExpiration: z.ZodOptional<z.ZodBoolean>;
|
|
372
|
+
ignoreNotBefore: z.ZodOptional<z.ZodBoolean>;
|
|
373
|
+
jwtid: z.ZodOptional<z.ZodString>;
|
|
374
|
+
nonce: z.ZodOptional<z.ZodString>;
|
|
375
|
+
subject: z.ZodOptional<z.ZodString>;
|
|
376
|
+
maxAge: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodNumber]>>;
|
|
377
|
+
allowInvalidAsymmetricKeyTypes: z.ZodOptional<z.ZodBoolean>;
|
|
378
|
+
}, z.core.$strip>]>>], null>, z.ZodUnion<readonly [z.ZodUnion<readonly [z.ZodString, z.ZodCustom<Buffer<ArrayBufferLike>, Buffer<ArrayBufferLike>>, z.ZodObject<{
|
|
379
|
+
type: z.ZodString;
|
|
380
|
+
}, z.core.$loose>, z.ZodObject<{
|
|
381
|
+
key: z.ZodUnion<readonly [z.ZodString, z.ZodCustom<Buffer<ArrayBufferLike>, Buffer<ArrayBufferLike>>]>;
|
|
382
|
+
passphrase: z.ZodString;
|
|
383
|
+
}, z.core.$strip>]>, z.ZodPromise<z.ZodUnion<readonly [z.ZodString, z.ZodCustom<Buffer<ArrayBufferLike>, Buffer<ArrayBufferLike>>, z.ZodObject<{
|
|
384
|
+
type: z.ZodString;
|
|
385
|
+
}, z.core.$loose>, z.ZodObject<{
|
|
386
|
+
key: z.ZodUnion<readonly [z.ZodString, z.ZodCustom<Buffer<ArrayBufferLike>, Buffer<ArrayBufferLike>>]>;
|
|
387
|
+
passphrase: z.ZodString;
|
|
388
|
+
}, z.core.$strip>]>>]>>>;
|
|
389
|
+
}, z.core.$strip>;
|
|
390
|
+
/**
|
|
391
|
+
* Configuration options for the JWT service.
|
|
392
|
+
*
|
|
393
|
+
* @property signOptions - Default options for signing tokens
|
|
394
|
+
* @property secret - Default secret for symmetric algorithms (HS256, HS384, HS512)
|
|
395
|
+
* @property publicKey - Default public key for asymmetric algorithms (RS256, ES256, etc.)
|
|
396
|
+
* @property privateKey - Default private key for asymmetric algorithms
|
|
397
|
+
* @property verifyOptions - Default options for verifying tokens
|
|
398
|
+
* @property secretOrKeyProvider - Optional function to dynamically resolve secrets/keys
|
|
399
|
+
*
|
|
400
|
+
* @example
|
|
401
|
+
* ```ts
|
|
402
|
+
* const options: JwtServiceOptions = {
|
|
403
|
+
* secret: 'your-secret-key',
|
|
404
|
+
* signOptions: {
|
|
405
|
+
* expiresIn: '1h',
|
|
406
|
+
* algorithm: 'HS256',
|
|
407
|
+
* },
|
|
408
|
+
* verifyOptions: {
|
|
409
|
+
* algorithms: ['HS256'],
|
|
410
|
+
* },
|
|
411
|
+
* }
|
|
412
|
+
* ```
|
|
413
|
+
*/
|
|
414
|
+
type JwtServiceOptions = z.infer<typeof JwtServiceOptionsSchema>;
|
|
415
|
+
/**
|
|
416
|
+
* Options for signing JWT tokens.
|
|
417
|
+
*
|
|
418
|
+
* Extends `SignOptions` with additional properties for specifying
|
|
419
|
+
* the secret or private key to use for signing.
|
|
420
|
+
*
|
|
421
|
+
* @property secret - Secret key for symmetric algorithms (overrides service default)
|
|
422
|
+
* @property privateKey - Private key for asymmetric algorithms (overrides service default)
|
|
423
|
+
*/
|
|
424
|
+
interface JwtSignOptions extends SignOptions {
|
|
425
|
+
/** Secret key for symmetric algorithms */
|
|
426
|
+
secret?: string | Buffer;
|
|
427
|
+
/** Private key for asymmetric algorithms */
|
|
428
|
+
privateKey?: Secret;
|
|
429
|
+
}
|
|
430
|
+
/**
|
|
431
|
+
* Options for verifying JWT tokens.
|
|
432
|
+
*
|
|
433
|
+
* Extends `VerifyOptions` with additional properties for specifying
|
|
434
|
+
* the secret or public key to use for verification.
|
|
435
|
+
*
|
|
436
|
+
* @property secret - Secret key for symmetric algorithms (overrides service default)
|
|
437
|
+
* @property publicKey - Public key for asymmetric algorithms (overrides service default)
|
|
438
|
+
*/
|
|
439
|
+
interface JwtVerifyOptions extends VerifyOptions {
|
|
440
|
+
/** Secret key for symmetric algorithms */
|
|
441
|
+
secret?: string | Buffer;
|
|
442
|
+
/** Public key for asymmetric algorithms */
|
|
443
|
+
publicKey?: string | Buffer;
|
|
444
|
+
}
|
|
445
|
+
/**
|
|
446
|
+
* Result type for secret/key resolution.
|
|
447
|
+
*
|
|
448
|
+
* Represents the possible return types from secret or key provider functions.
|
|
449
|
+
*/
|
|
450
|
+
type GetSecretKeyResult = string | Buffer | Secret$1;
|
|
451
|
+
//#endregion
|
|
452
|
+
//#region src/jwt.service.d.mts
|
|
453
|
+
/**
|
|
454
|
+
* Injection token for JwtService.
|
|
455
|
+
*
|
|
456
|
+
* Used internally by the dependency injection system to register and resolve JwtService instances.
|
|
457
|
+
*/
|
|
458
|
+
declare const JwtServiceToken: InjectionToken<unknown, zod_v40.ZodObject<{
|
|
459
|
+
signOptions: zod_v40.ZodOptional<zod_v40.ZodObject<{
|
|
460
|
+
algorithm: zod_v40.ZodOptional<zod_v40.ZodEnum<{
|
|
461
|
+
HS256: "HS256";
|
|
462
|
+
HS384: "HS384";
|
|
463
|
+
HS512: "HS512";
|
|
464
|
+
RS256: "RS256";
|
|
465
|
+
RS384: "RS384";
|
|
466
|
+
RS512: "RS512";
|
|
467
|
+
ES256: "ES256";
|
|
468
|
+
ES384: "ES384";
|
|
469
|
+
ES512: "ES512";
|
|
470
|
+
PS256: "PS256";
|
|
471
|
+
PS384: "PS384";
|
|
472
|
+
PS512: "PS512";
|
|
473
|
+
none: "none";
|
|
474
|
+
}>>;
|
|
475
|
+
keyid: zod_v40.ZodOptional<zod_v40.ZodString>;
|
|
476
|
+
expiresIn: zod_v40.ZodOptional<zod_v40.ZodUnion<readonly [zod_v40.ZodString, zod_v40.ZodNumber]>>;
|
|
477
|
+
notBefore: zod_v40.ZodOptional<zod_v40.ZodUnion<readonly [zod_v40.ZodString, zod_v40.ZodNumber]>>;
|
|
478
|
+
audience: zod_v40.ZodOptional<zod_v40.ZodUnion<readonly [zod_v40.ZodString, zod_v40.ZodCustom<RegExp, RegExp>, zod_v40.ZodArray<zod_v40.ZodUnion<readonly [zod_v40.ZodString, zod_v40.ZodCustom<RegExp, RegExp>]>>]>>;
|
|
479
|
+
subject: zod_v40.ZodOptional<zod_v40.ZodString>;
|
|
480
|
+
issuer: zod_v40.ZodOptional<zod_v40.ZodString>;
|
|
481
|
+
jwtid: zod_v40.ZodOptional<zod_v40.ZodString>;
|
|
482
|
+
mutatePayload: zod_v40.ZodOptional<zod_v40.ZodBoolean>;
|
|
483
|
+
noTimestamp: zod_v40.ZodOptional<zod_v40.ZodBoolean>;
|
|
484
|
+
header: zod_v40.ZodOptional<zod_v40.ZodObject<{
|
|
485
|
+
alg: zod_v40.ZodUnion<[zod_v40.ZodEnum<{
|
|
486
|
+
HS256: "HS256";
|
|
487
|
+
HS384: "HS384";
|
|
488
|
+
HS512: "HS512";
|
|
489
|
+
RS256: "RS256";
|
|
490
|
+
RS384: "RS384";
|
|
491
|
+
RS512: "RS512";
|
|
492
|
+
ES256: "ES256";
|
|
493
|
+
ES384: "ES384";
|
|
494
|
+
ES512: "ES512";
|
|
495
|
+
PS256: "PS256";
|
|
496
|
+
PS384: "PS384";
|
|
497
|
+
PS512: "PS512";
|
|
498
|
+
none: "none";
|
|
499
|
+
}>, zod_v40.ZodString]>;
|
|
500
|
+
typ: zod_v40.ZodOptional<zod_v40.ZodString>;
|
|
501
|
+
cty: zod_v40.ZodOptional<zod_v40.ZodString>;
|
|
502
|
+
crit: zod_v40.ZodOptional<zod_v40.ZodArray<zod_v40.ZodString>>;
|
|
503
|
+
kid: zod_v40.ZodOptional<zod_v40.ZodString>;
|
|
504
|
+
jku: zod_v40.ZodOptional<zod_v40.ZodString>;
|
|
505
|
+
x5u: zod_v40.ZodOptional<zod_v40.ZodUnion<readonly [zod_v40.ZodString, zod_v40.ZodArray<zod_v40.ZodString>]>>;
|
|
506
|
+
'x5t#S256': zod_v40.ZodOptional<zod_v40.ZodString>;
|
|
507
|
+
x5t: zod_v40.ZodOptional<zod_v40.ZodString>;
|
|
508
|
+
x5c: zod_v40.ZodOptional<zod_v40.ZodUnion<readonly [zod_v40.ZodString, zod_v40.ZodArray<zod_v40.ZodString>]>>;
|
|
509
|
+
}, zod_v4_core0.$strip>>;
|
|
510
|
+
encoding: zod_v40.ZodOptional<zod_v40.ZodString>;
|
|
511
|
+
allowInsecureKeySizes: zod_v40.ZodOptional<zod_v40.ZodBoolean>;
|
|
512
|
+
allowInvalidAsymmetricKeyTypes: zod_v40.ZodOptional<zod_v40.ZodBoolean>;
|
|
513
|
+
}, zod_v4_core0.$strip>>;
|
|
514
|
+
secret: zod_v40.ZodOptional<zod_v40.ZodString>;
|
|
515
|
+
publicKey: zod_v40.ZodOptional<zod_v40.ZodUnion<readonly [zod_v40.ZodString, zod_v40.ZodCustom<Buffer<ArrayBufferLike>, Buffer<ArrayBufferLike>>]>>;
|
|
516
|
+
privateKey: zod_v40.ZodOptional<zod_v40.ZodUnion<readonly [zod_v40.ZodString, zod_v40.ZodCustom<Buffer<ArrayBufferLike>, Buffer<ArrayBufferLike>>, zod_v40.ZodObject<{
|
|
517
|
+
type: zod_v40.ZodString;
|
|
518
|
+
}, zod_v4_core0.$loose>, zod_v40.ZodObject<{
|
|
519
|
+
key: zod_v40.ZodUnion<readonly [zod_v40.ZodString, zod_v40.ZodCustom<Buffer<ArrayBufferLike>, Buffer<ArrayBufferLike>>]>;
|
|
520
|
+
passphrase: zod_v40.ZodString;
|
|
521
|
+
}, zod_v4_core0.$strip>]>>;
|
|
522
|
+
verifyOptions: zod_v40.ZodOptional<zod_v40.ZodObject<{
|
|
523
|
+
algorithms: zod_v40.ZodOptional<zod_v40.ZodArray<zod_v40.ZodEnum<{
|
|
524
|
+
HS256: "HS256";
|
|
525
|
+
HS384: "HS384";
|
|
526
|
+
HS512: "HS512";
|
|
527
|
+
RS256: "RS256";
|
|
528
|
+
RS384: "RS384";
|
|
529
|
+
RS512: "RS512";
|
|
530
|
+
ES256: "ES256";
|
|
531
|
+
ES384: "ES384";
|
|
532
|
+
ES512: "ES512";
|
|
533
|
+
PS256: "PS256";
|
|
534
|
+
PS384: "PS384";
|
|
535
|
+
PS512: "PS512";
|
|
536
|
+
none: "none";
|
|
537
|
+
}>>>;
|
|
538
|
+
audience: zod_v40.ZodOptional<zod_v40.ZodUnion<readonly [zod_v40.ZodString, zod_v40.ZodCustom<RegExp, RegExp>, zod_v40.ZodArray<zod_v40.ZodUnion<readonly [zod_v40.ZodString, zod_v40.ZodCustom<RegExp, RegExp>]>>]>>;
|
|
539
|
+
clockTimestamp: zod_v40.ZodOptional<zod_v40.ZodNumber>;
|
|
540
|
+
clockTolerance: zod_v40.ZodOptional<zod_v40.ZodNumber>;
|
|
541
|
+
complete: zod_v40.ZodOptional<zod_v40.ZodBoolean>;
|
|
542
|
+
issuer: zod_v40.ZodOptional<zod_v40.ZodUnion<readonly [zod_v40.ZodString, zod_v40.ZodArray<zod_v40.ZodString>]>>;
|
|
543
|
+
ignoreExpiration: zod_v40.ZodOptional<zod_v40.ZodBoolean>;
|
|
544
|
+
ignoreNotBefore: zod_v40.ZodOptional<zod_v40.ZodBoolean>;
|
|
545
|
+
jwtid: zod_v40.ZodOptional<zod_v40.ZodString>;
|
|
546
|
+
nonce: zod_v40.ZodOptional<zod_v40.ZodString>;
|
|
547
|
+
subject: zod_v40.ZodOptional<zod_v40.ZodString>;
|
|
548
|
+
maxAge: zod_v40.ZodOptional<zod_v40.ZodUnion<readonly [zod_v40.ZodString, zod_v40.ZodNumber]>>;
|
|
549
|
+
allowInvalidAsymmetricKeyTypes: zod_v40.ZodOptional<zod_v40.ZodBoolean>;
|
|
550
|
+
}, zod_v4_core0.$strip>>;
|
|
551
|
+
secretOrKeyProvider: zod_v40.ZodOptional<zod_v40.ZodFunction<zod_v40.ZodTuple<readonly [zod_v40.ZodEnum<typeof RequestType>, zod_v40.ZodAny, zod_v40.ZodOptional<zod_v40.ZodUnion<readonly [zod_v40.ZodObject<{
|
|
552
|
+
algorithm: zod_v40.ZodOptional<zod_v40.ZodEnum<{
|
|
553
|
+
HS256: "HS256";
|
|
554
|
+
HS384: "HS384";
|
|
555
|
+
HS512: "HS512";
|
|
556
|
+
RS256: "RS256";
|
|
557
|
+
RS384: "RS384";
|
|
558
|
+
RS512: "RS512";
|
|
559
|
+
ES256: "ES256";
|
|
560
|
+
ES384: "ES384";
|
|
561
|
+
ES512: "ES512";
|
|
562
|
+
PS256: "PS256";
|
|
563
|
+
PS384: "PS384";
|
|
564
|
+
PS512: "PS512";
|
|
565
|
+
none: "none";
|
|
566
|
+
}>>;
|
|
567
|
+
keyid: zod_v40.ZodOptional<zod_v40.ZodString>;
|
|
568
|
+
expiresIn: zod_v40.ZodOptional<zod_v40.ZodUnion<readonly [zod_v40.ZodString, zod_v40.ZodNumber]>>;
|
|
569
|
+
notBefore: zod_v40.ZodOptional<zod_v40.ZodUnion<readonly [zod_v40.ZodString, zod_v40.ZodNumber]>>;
|
|
570
|
+
audience: zod_v40.ZodOptional<zod_v40.ZodUnion<readonly [zod_v40.ZodString, zod_v40.ZodCustom<RegExp, RegExp>, zod_v40.ZodArray<zod_v40.ZodUnion<readonly [zod_v40.ZodString, zod_v40.ZodCustom<RegExp, RegExp>]>>]>>;
|
|
571
|
+
subject: zod_v40.ZodOptional<zod_v40.ZodString>;
|
|
572
|
+
issuer: zod_v40.ZodOptional<zod_v40.ZodString>;
|
|
573
|
+
jwtid: zod_v40.ZodOptional<zod_v40.ZodString>;
|
|
574
|
+
mutatePayload: zod_v40.ZodOptional<zod_v40.ZodBoolean>;
|
|
575
|
+
noTimestamp: zod_v40.ZodOptional<zod_v40.ZodBoolean>;
|
|
576
|
+
header: zod_v40.ZodOptional<zod_v40.ZodObject<{
|
|
577
|
+
alg: zod_v40.ZodUnion<[zod_v40.ZodEnum<{
|
|
578
|
+
HS256: "HS256";
|
|
579
|
+
HS384: "HS384";
|
|
580
|
+
HS512: "HS512";
|
|
581
|
+
RS256: "RS256";
|
|
582
|
+
RS384: "RS384";
|
|
583
|
+
RS512: "RS512";
|
|
584
|
+
ES256: "ES256";
|
|
585
|
+
ES384: "ES384";
|
|
586
|
+
ES512: "ES512";
|
|
587
|
+
PS256: "PS256";
|
|
588
|
+
PS384: "PS384";
|
|
589
|
+
PS512: "PS512";
|
|
590
|
+
none: "none";
|
|
591
|
+
}>, zod_v40.ZodString]>;
|
|
592
|
+
typ: zod_v40.ZodOptional<zod_v40.ZodString>;
|
|
593
|
+
cty: zod_v40.ZodOptional<zod_v40.ZodString>;
|
|
594
|
+
crit: zod_v40.ZodOptional<zod_v40.ZodArray<zod_v40.ZodString>>;
|
|
595
|
+
kid: zod_v40.ZodOptional<zod_v40.ZodString>;
|
|
596
|
+
jku: zod_v40.ZodOptional<zod_v40.ZodString>;
|
|
597
|
+
x5u: zod_v40.ZodOptional<zod_v40.ZodUnion<readonly [zod_v40.ZodString, zod_v40.ZodArray<zod_v40.ZodString>]>>;
|
|
598
|
+
'x5t#S256': zod_v40.ZodOptional<zod_v40.ZodString>;
|
|
599
|
+
x5t: zod_v40.ZodOptional<zod_v40.ZodString>;
|
|
600
|
+
x5c: zod_v40.ZodOptional<zod_v40.ZodUnion<readonly [zod_v40.ZodString, zod_v40.ZodArray<zod_v40.ZodString>]>>;
|
|
601
|
+
}, zod_v4_core0.$strip>>;
|
|
602
|
+
encoding: zod_v40.ZodOptional<zod_v40.ZodString>;
|
|
603
|
+
allowInsecureKeySizes: zod_v40.ZodOptional<zod_v40.ZodBoolean>;
|
|
604
|
+
allowInvalidAsymmetricKeyTypes: zod_v40.ZodOptional<zod_v40.ZodBoolean>;
|
|
605
|
+
}, zod_v4_core0.$strip>, zod_v40.ZodObject<{
|
|
606
|
+
algorithms: zod_v40.ZodOptional<zod_v40.ZodArray<zod_v40.ZodEnum<{
|
|
607
|
+
HS256: "HS256";
|
|
608
|
+
HS384: "HS384";
|
|
609
|
+
HS512: "HS512";
|
|
610
|
+
RS256: "RS256";
|
|
611
|
+
RS384: "RS384";
|
|
612
|
+
RS512: "RS512";
|
|
613
|
+
ES256: "ES256";
|
|
614
|
+
ES384: "ES384";
|
|
615
|
+
ES512: "ES512";
|
|
616
|
+
PS256: "PS256";
|
|
617
|
+
PS384: "PS384";
|
|
618
|
+
PS512: "PS512";
|
|
619
|
+
none: "none";
|
|
620
|
+
}>>>;
|
|
621
|
+
audience: zod_v40.ZodOptional<zod_v40.ZodUnion<readonly [zod_v40.ZodString, zod_v40.ZodCustom<RegExp, RegExp>, zod_v40.ZodArray<zod_v40.ZodUnion<readonly [zod_v40.ZodString, zod_v40.ZodCustom<RegExp, RegExp>]>>]>>;
|
|
622
|
+
clockTimestamp: zod_v40.ZodOptional<zod_v40.ZodNumber>;
|
|
623
|
+
clockTolerance: zod_v40.ZodOptional<zod_v40.ZodNumber>;
|
|
624
|
+
complete: zod_v40.ZodOptional<zod_v40.ZodBoolean>;
|
|
625
|
+
issuer: zod_v40.ZodOptional<zod_v40.ZodUnion<readonly [zod_v40.ZodString, zod_v40.ZodArray<zod_v40.ZodString>]>>;
|
|
626
|
+
ignoreExpiration: zod_v40.ZodOptional<zod_v40.ZodBoolean>;
|
|
627
|
+
ignoreNotBefore: zod_v40.ZodOptional<zod_v40.ZodBoolean>;
|
|
628
|
+
jwtid: zod_v40.ZodOptional<zod_v40.ZodString>;
|
|
629
|
+
nonce: zod_v40.ZodOptional<zod_v40.ZodString>;
|
|
630
|
+
subject: zod_v40.ZodOptional<zod_v40.ZodString>;
|
|
631
|
+
maxAge: zod_v40.ZodOptional<zod_v40.ZodUnion<readonly [zod_v40.ZodString, zod_v40.ZodNumber]>>;
|
|
632
|
+
allowInvalidAsymmetricKeyTypes: zod_v40.ZodOptional<zod_v40.ZodBoolean>;
|
|
633
|
+
}, zod_v4_core0.$strip>]>>], null>, zod_v40.ZodUnion<readonly [zod_v40.ZodUnion<readonly [zod_v40.ZodString, zod_v40.ZodCustom<Buffer<ArrayBufferLike>, Buffer<ArrayBufferLike>>, zod_v40.ZodObject<{
|
|
634
|
+
type: zod_v40.ZodString;
|
|
635
|
+
}, zod_v4_core0.$loose>, zod_v40.ZodObject<{
|
|
636
|
+
key: zod_v40.ZodUnion<readonly [zod_v40.ZodString, zod_v40.ZodCustom<Buffer<ArrayBufferLike>, Buffer<ArrayBufferLike>>]>;
|
|
637
|
+
passphrase: zod_v40.ZodString;
|
|
638
|
+
}, zod_v4_core0.$strip>]>, zod_v40.ZodPromise<zod_v40.ZodUnion<readonly [zod_v40.ZodString, zod_v40.ZodCustom<Buffer<ArrayBufferLike>, Buffer<ArrayBufferLike>>, zod_v40.ZodObject<{
|
|
639
|
+
type: zod_v40.ZodString;
|
|
640
|
+
}, zod_v4_core0.$loose>, zod_v40.ZodObject<{
|
|
641
|
+
key: zod_v40.ZodUnion<readonly [zod_v40.ZodString, zod_v40.ZodCustom<Buffer<ArrayBufferLike>, Buffer<ArrayBufferLike>>]>;
|
|
642
|
+
passphrase: zod_v40.ZodString;
|
|
643
|
+
}, zod_v4_core0.$strip>]>>]>>>;
|
|
644
|
+
}, zod_v4_core0.$strip>, true>;
|
|
645
|
+
/**
|
|
646
|
+
* Service for signing, verifying, and decoding JSON Web Tokens (JWTs).
|
|
647
|
+
*
|
|
648
|
+
* This service provides a type-safe wrapper around the `jsonwebtoken` library with
|
|
649
|
+
* seamless integration into Navios's dependency injection system. It supports both
|
|
650
|
+
* symmetric (HS256, HS384, HS512) and asymmetric (RS256, ES256, etc.) algorithms.
|
|
651
|
+
*
|
|
652
|
+
* @example
|
|
653
|
+
* ```ts
|
|
654
|
+
* import { provideJwtService } from '@navios/jwt'
|
|
655
|
+
* import { inject } from '@navios/core'
|
|
656
|
+
*
|
|
657
|
+
* const JwtService = provideJwtService({
|
|
658
|
+
* secret: 'your-secret-key',
|
|
659
|
+
* signOptions: { expiresIn: '1h' },
|
|
660
|
+
* })
|
|
661
|
+
*
|
|
662
|
+
* @Injectable()
|
|
663
|
+
* class AuthService {
|
|
664
|
+
* jwtService = inject(JwtService)
|
|
665
|
+
*
|
|
666
|
+
* async login(userId: string) {
|
|
667
|
+
* const token = this.jwtService.sign({ userId, role: 'user' })
|
|
668
|
+
* return token
|
|
669
|
+
* }
|
|
670
|
+
* }
|
|
671
|
+
* ```
|
|
672
|
+
*/
|
|
673
|
+
declare class JwtService {
|
|
674
|
+
private readonly options;
|
|
675
|
+
logger: _navios_core0.LoggerInstance;
|
|
676
|
+
/**
|
|
677
|
+
* Creates a new JwtService instance.
|
|
678
|
+
*
|
|
679
|
+
* @param options - Configuration options for the JWT service
|
|
680
|
+
*/
|
|
681
|
+
constructor(options?: JwtServiceOptions);
|
|
682
|
+
/**
|
|
683
|
+
* Signs a JWT payload synchronously.
|
|
684
|
+
*
|
|
685
|
+
* When the payload is a string, only `secret` and `privateKey` options are allowed.
|
|
686
|
+
* For object or Buffer payloads, all sign options are available.
|
|
687
|
+
*
|
|
688
|
+
* @param payload - The payload to sign. Can be a string, Buffer, or object.
|
|
689
|
+
* @param options - Signing options. When payload is a string, only `secret` and `privateKey` are allowed.
|
|
690
|
+
* @returns The signed JWT token as a string
|
|
691
|
+
* @throws {Error} If `secretOrKeyProvider` returns a Promise (use `signAsync` instead)
|
|
692
|
+
* @throws {Error} If payload is a string and invalid options are provided
|
|
693
|
+
*
|
|
694
|
+
* @example
|
|
695
|
+
* ```ts
|
|
696
|
+
* // Sign with object payload
|
|
697
|
+
* const token = jwtService.sign(
|
|
698
|
+
* { userId: '123', role: 'admin' },
|
|
699
|
+
* { expiresIn: '1h' }
|
|
700
|
+
* )
|
|
701
|
+
*
|
|
702
|
+
* // Sign with string payload (limited options)
|
|
703
|
+
* const token = jwtService.sign('payload-string', { secret: 'key' })
|
|
704
|
+
* ```
|
|
705
|
+
*/
|
|
706
|
+
sign(payload: string, options?: Omit<JwtSignOptions, keyof SignOptions>): string;
|
|
707
|
+
/**
|
|
708
|
+
* Signs a JWT payload synchronously.
|
|
709
|
+
*
|
|
710
|
+
* @param payload - The payload to sign. Can be a Buffer or object.
|
|
711
|
+
* @param options - Signing options including algorithm, expiration, etc.
|
|
712
|
+
* @returns The signed JWT token as a string
|
|
713
|
+
*/
|
|
714
|
+
sign(payload: Buffer | object, options?: JwtSignOptions): string;
|
|
715
|
+
/**
|
|
716
|
+
* Signs a JWT payload asynchronously.
|
|
717
|
+
*
|
|
718
|
+
* Use this method when `secretOrKeyProvider` returns a Promise or when you need
|
|
719
|
+
* to handle async key resolution. Supports the same payload types and options as `sign()`.
|
|
720
|
+
*
|
|
721
|
+
* @param payload - The payload to sign. Can be a string, Buffer, or object.
|
|
722
|
+
* @param options - Signing options. When payload is a string, only `secret` and `privateKey` are allowed.
|
|
723
|
+
* @returns A Promise that resolves to the signed JWT token as a string
|
|
724
|
+
* @throws {Error} If payload is a string and invalid options are provided
|
|
725
|
+
*
|
|
726
|
+
* @example
|
|
727
|
+
* ```ts
|
|
728
|
+
* // Sign with async key provider
|
|
729
|
+
* const token = await jwtService.signAsync(
|
|
730
|
+
* { userId: '123' },
|
|
731
|
+
* { expiresIn: '1h' }
|
|
732
|
+
* )
|
|
733
|
+
* ```
|
|
734
|
+
*/
|
|
735
|
+
signAsync(payload: string, options?: Omit<JwtSignOptions, keyof jwt.SignOptions>): Promise<string>;
|
|
736
|
+
/**
|
|
737
|
+
* Signs a JWT payload asynchronously.
|
|
738
|
+
*
|
|
739
|
+
* @param payload - The payload to sign. Can be a Buffer or object.
|
|
740
|
+
* @param options - Signing options including algorithm, expiration, etc.
|
|
741
|
+
* @returns A Promise that resolves to the signed JWT token as a string
|
|
742
|
+
*/
|
|
743
|
+
signAsync(payload: Buffer | object, options?: JwtSignOptions): Promise<string>;
|
|
744
|
+
/**
|
|
745
|
+
* Verifies and decodes a JWT token synchronously.
|
|
746
|
+
*
|
|
747
|
+
* This method validates the token's signature, expiration, and other claims
|
|
748
|
+
* according to the provided options. If verification fails, an error is thrown.
|
|
749
|
+
*
|
|
750
|
+
* @template T - The expected type of the decoded payload
|
|
751
|
+
* @param token - The JWT token string to verify
|
|
752
|
+
* @param options - Verification options including algorithms, audience, issuer, etc.
|
|
753
|
+
* @returns The decoded payload as type T
|
|
754
|
+
* @throws {TokenExpiredError} If the token has expired
|
|
755
|
+
* @throws {NotBeforeError} If the token is not yet valid (nbf claim)
|
|
756
|
+
* @throws {JsonWebTokenError} If the token is invalid or malformed
|
|
757
|
+
* @throws {Error} If `secretOrKeyProvider` returns a Promise (use `verifyAsync` instead)
|
|
758
|
+
*
|
|
759
|
+
* @example
|
|
760
|
+
* ```ts
|
|
761
|
+
* try {
|
|
762
|
+
* const payload = jwtService.verify<{ userId: string; role: string }>(token)
|
|
763
|
+
* console.log(payload.userId) // '123'
|
|
764
|
+
* } catch (error) {
|
|
765
|
+
* if (error instanceof TokenExpiredError) {
|
|
766
|
+
* console.error('Token expired')
|
|
767
|
+
* }
|
|
768
|
+
* }
|
|
769
|
+
* ```
|
|
770
|
+
*/
|
|
771
|
+
verify<T extends object = any>(token: string, options?: JwtVerifyOptions): T;
|
|
772
|
+
/**
|
|
773
|
+
* Verifies and decodes a JWT token asynchronously.
|
|
774
|
+
*
|
|
775
|
+
* Use this method when `secretOrKeyProvider` returns a Promise or when you need
|
|
776
|
+
* to handle async key resolution. Provides the same validation as `verify()`.
|
|
777
|
+
*
|
|
778
|
+
* @template T - The expected type of the decoded payload
|
|
779
|
+
* @param token - The JWT token string to verify
|
|
780
|
+
* @param options - Verification options including algorithms, audience, issuer, etc.
|
|
781
|
+
* @returns A Promise that resolves to the decoded payload as type T
|
|
782
|
+
* @throws {TokenExpiredError} If the token has expired
|
|
783
|
+
* @throws {NotBeforeError} If the token is not yet valid (nbf claim)
|
|
784
|
+
* @throws {JsonWebTokenError} If the token is invalid or malformed
|
|
785
|
+
*
|
|
786
|
+
* @example
|
|
787
|
+
* ```ts
|
|
788
|
+
* try {
|
|
789
|
+
* const payload = await jwtService.verifyAsync<{ userId: string }>(token)
|
|
790
|
+
* console.log(payload.userId)
|
|
791
|
+
* } catch (error) {
|
|
792
|
+
* if (error instanceof TokenExpiredError) {
|
|
793
|
+
* console.error('Token expired')
|
|
794
|
+
* }
|
|
795
|
+
* }
|
|
796
|
+
* ```
|
|
797
|
+
*/
|
|
798
|
+
verifyAsync<T extends object = any>(token: string, options?: JwtVerifyOptions): Promise<T>;
|
|
799
|
+
/**
|
|
800
|
+
* Decodes a JWT token without verification.
|
|
801
|
+
*
|
|
802
|
+
* This method decodes the token without validating its signature or claims.
|
|
803
|
+
* Use this only when you need to inspect the token contents without verification.
|
|
804
|
+
* For secure token validation, use `verify()` or `verifyAsync()` instead.
|
|
805
|
+
*
|
|
806
|
+
* @template T - The expected type of the decoded payload
|
|
807
|
+
* @param token - The JWT token string to decode
|
|
808
|
+
* @param options - Decode options (complete, json, etc.)
|
|
809
|
+
* @returns The decoded payload as type T, or null if decoding fails
|
|
810
|
+
*
|
|
811
|
+
* @example
|
|
812
|
+
* ```ts
|
|
813
|
+
* // Decode without verification (not recommended for production)
|
|
814
|
+
* const payload = jwtService.decode<{ userId: string }>(token)
|
|
815
|
+
* if (payload) {
|
|
816
|
+
* console.log(payload.userId)
|
|
817
|
+
* }
|
|
818
|
+
* ```
|
|
819
|
+
*/
|
|
820
|
+
decode<T = any>(token: string, options?: jwt.DecodeOptions): T;
|
|
821
|
+
private mergeJwtOptions;
|
|
822
|
+
private getSecretKey;
|
|
823
|
+
}
|
|
824
|
+
//#endregion
|
|
825
|
+
//#region src/jwt-service.provider.d.mts
|
|
826
|
+
/**
|
|
827
|
+
* Creates a JWT service provider for dependency injection.
|
|
828
|
+
*
|
|
829
|
+
* This function creates an injection token that can be used to register and resolve
|
|
830
|
+
* `JwtService` instances in the Navios dependency injection container. It supports
|
|
831
|
+
* both static configuration and async factory functions for dynamic configuration.
|
|
832
|
+
*
|
|
833
|
+
* @param config - Static JWT service configuration options
|
|
834
|
+
* @returns A bound injection token that can be used with `inject()` or `syncInject()`
|
|
835
|
+
*
|
|
836
|
+
* @example
|
|
837
|
+
* ```ts
|
|
838
|
+
* // Static configuration
|
|
839
|
+
* const JwtService = provideJwtService({
|
|
840
|
+
* secret: 'your-secret-key',
|
|
841
|
+
* signOptions: { expiresIn: '1h' },
|
|
842
|
+
* })
|
|
843
|
+
*
|
|
844
|
+
* @Injectable()
|
|
845
|
+
* class AuthService {
|
|
846
|
+
* jwtService = inject(JwtService)
|
|
847
|
+
* }
|
|
848
|
+
* ```
|
|
849
|
+
*/
|
|
850
|
+
declare function provideJwtService(config: JwtServiceOptions): BoundInjectionToken<JwtService, typeof JwtServiceOptionsSchema>;
|
|
851
|
+
/**
|
|
852
|
+
* Creates a JWT service provider with async configuration factory.
|
|
853
|
+
*
|
|
854
|
+
* Use this overload when you need to load configuration asynchronously, such as
|
|
855
|
+
* fetching secrets from a configuration service or environment variables.
|
|
856
|
+
*
|
|
857
|
+
* @param config - Async factory function that returns JWT service configuration
|
|
858
|
+
* @returns A factory injection token that resolves configuration asynchronously
|
|
859
|
+
*
|
|
860
|
+
* @example
|
|
861
|
+
* ```ts
|
|
862
|
+
* // Async configuration
|
|
863
|
+
* const JwtService = provideJwtService(async () => {
|
|
864
|
+
* const configService = await inject(ConfigService)
|
|
865
|
+
* return {
|
|
866
|
+
* secret: configService.jwt.secret,
|
|
867
|
+
* signOptions: { expiresIn: configService.jwt.expiresIn },
|
|
868
|
+
* }
|
|
869
|
+
* })
|
|
870
|
+
*
|
|
871
|
+
* @Injectable()
|
|
872
|
+
* class AuthService {
|
|
873
|
+
* jwtService = inject(JwtService)
|
|
874
|
+
* }
|
|
875
|
+
* ```
|
|
876
|
+
*/
|
|
877
|
+
declare function provideJwtService(config: () => Promise<JwtServiceOptions>): FactoryInjectionToken<JwtService, typeof JwtServiceOptionsSchema>;
|
|
878
|
+
//#endregion
|
|
879
|
+
//#region src/index.d.mts
|
|
880
|
+
/**
|
|
881
|
+
* Error thrown when a JWT token has expired.
|
|
882
|
+
*
|
|
883
|
+
* This error is thrown by `verify()` and `verifyAsync()` when the token's
|
|
884
|
+
* expiration time (exp claim) has passed.
|
|
885
|
+
*
|
|
886
|
+
* @example
|
|
887
|
+
* ```ts
|
|
888
|
+
* try {
|
|
889
|
+
* jwtService.verify(token)
|
|
890
|
+
* } catch (error) {
|
|
891
|
+
* if (error instanceof TokenExpiredError) {
|
|
892
|
+
* console.error('Token expired at:', error.expiredAt)
|
|
893
|
+
* }
|
|
894
|
+
* }
|
|
895
|
+
* ```
|
|
896
|
+
*/
|
|
897
|
+
declare const TokenExpiredError: typeof jwt.TokenExpiredError;
|
|
898
|
+
/**
|
|
899
|
+
* Error thrown when a JWT token is not yet valid.
|
|
900
|
+
*
|
|
901
|
+
* This error is thrown by `verify()` and `verifyAsync()` when the token's
|
|
902
|
+
* "not before" time (nbf claim) is in the future.
|
|
903
|
+
*
|
|
904
|
+
* @example
|
|
905
|
+
* ```ts
|
|
906
|
+
* try {
|
|
907
|
+
* jwtService.verify(token)
|
|
908
|
+
* } catch (error) {
|
|
909
|
+
* if (error instanceof NotBeforeError) {
|
|
910
|
+
* console.error('Token not valid until:', error.date)
|
|
911
|
+
* }
|
|
912
|
+
* }
|
|
913
|
+
* ```
|
|
914
|
+
*/
|
|
915
|
+
declare const NotBeforeError: typeof jwt.NotBeforeError;
|
|
916
|
+
/**
|
|
917
|
+
* Base error class for JWT-related errors.
|
|
918
|
+
*
|
|
919
|
+
* This is the base class for all JWT errors including `TokenExpiredError`
|
|
920
|
+
* and `NotBeforeError`. It's thrown for invalid or malformed tokens.
|
|
921
|
+
*
|
|
922
|
+
* @example
|
|
923
|
+
* ```ts
|
|
924
|
+
* try {
|
|
925
|
+
* jwtService.verify(token)
|
|
926
|
+
* } catch (error) {
|
|
927
|
+
* if (error instanceof JsonWebTokenError) {
|
|
928
|
+
* console.error('JWT error:', error.message)
|
|
929
|
+
* }
|
|
930
|
+
* }
|
|
931
|
+
* ```
|
|
932
|
+
*/
|
|
933
|
+
declare const JsonWebTokenError: typeof jwt.JsonWebTokenError;
|
|
934
|
+
//#endregion
|
|
935
|
+
export { AlgorithmType, GetSecretKeyResult, JsonWebTokenError, JwtHeader, JwtHeaderSchema, JwtService, JwtServiceOptions, JwtServiceOptionsSchema, JwtServiceToken, JwtSignOptions, JwtVerifyOptions, NotBeforeError, RequestType, Secret, SecretSchema, SignOptions, SignOptionsSchema, TokenExpiredError, VerifyOptions, VerifyOptionsSchema, provideJwtService };
|
|
936
|
+
//# sourceMappingURL=index.d.cts.map
|