@navios/jwt 0.3.0 → 0.3.1
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/dist/src/jwt-service.provider.d.mts +2 -1
- package/dist/src/jwt-service.provider.d.mts.map +1 -1
- package/dist/src/jwt.service.d.mts +20 -20
- package/dist/src/jwt.service.d.mts.map +1 -1
- package/dist/src/options/jwt-service.options.d.mts +26 -26
- package/dist/src/options/jwt-service.options.d.mts.map +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/lib/_tsup-dts-rollup.d.mts +49 -47
- package/lib/_tsup-dts-rollup.d.ts +49 -47
- package/lib/index.js +10 -2
- package/lib/index.js.map +1 -1
- package/lib/index.mjs +10 -2
- package/lib/index.mjs.map +1 -1
- package/package.json +3 -3
- package/src/jwt-service.provider.mts +6 -0
- package/src/jwt.service.mts +2 -0
- package/src/options/jwt-service.options.mts +12 -2
|
@@ -103,7 +103,7 @@ declare const JwtServiceOptionsSchema: z.ZodObject<{
|
|
|
103
103
|
keyid: z.ZodOptional<z.ZodString>;
|
|
104
104
|
expiresIn: z.ZodOptional<z.ZodUnion<[z.ZodString, z.ZodNumber]>>;
|
|
105
105
|
notBefore: z.ZodOptional<z.ZodUnion<[z.ZodString, z.ZodNumber]>>;
|
|
106
|
-
audience: z.ZodOptional<z.ZodUnion<[z.ZodString, z.ZodArray<z.ZodString, "many">]>>;
|
|
106
|
+
audience: z.ZodOptional<z.ZodUnion<[z.ZodString, z.ZodType<RegExp, z.ZodTypeDef, RegExp>, z.ZodArray<z.ZodUnion<[z.ZodString, z.ZodType<RegExp, z.ZodTypeDef, RegExp>]>, "many">]>>;
|
|
107
107
|
subject: z.ZodOptional<z.ZodString>;
|
|
108
108
|
issuer: z.ZodOptional<z.ZodString>;
|
|
109
109
|
jwtid: z.ZodOptional<z.ZodString>;
|
|
@@ -151,7 +151,7 @@ declare const JwtServiceOptionsSchema: z.ZodObject<{
|
|
|
151
151
|
keyid?: string | undefined;
|
|
152
152
|
expiresIn?: string | number | undefined;
|
|
153
153
|
notBefore?: string | number | undefined;
|
|
154
|
-
audience?: string | string[] | undefined;
|
|
154
|
+
audience?: string | RegExp | (string | RegExp)[] | undefined;
|
|
155
155
|
subject?: string | undefined;
|
|
156
156
|
issuer?: string | undefined;
|
|
157
157
|
jwtid?: string | undefined;
|
|
@@ -177,7 +177,7 @@ declare const JwtServiceOptionsSchema: z.ZodObject<{
|
|
|
177
177
|
keyid?: string | undefined;
|
|
178
178
|
expiresIn?: string | number | undefined;
|
|
179
179
|
notBefore?: string | number | undefined;
|
|
180
|
-
audience?: string | string[] | undefined;
|
|
180
|
+
audience?: string | RegExp | (string | RegExp)[] | undefined;
|
|
181
181
|
subject?: string | undefined;
|
|
182
182
|
issuer?: string | undefined;
|
|
183
183
|
jwtid?: string | undefined;
|
|
@@ -219,7 +219,7 @@ declare const JwtServiceOptionsSchema: z.ZodObject<{
|
|
|
219
219
|
}>]>>;
|
|
220
220
|
verifyOptions: z.ZodOptional<z.ZodObject<{
|
|
221
221
|
algorithms: z.ZodOptional<z.ZodArray<z.ZodEnum<["HS256", "HS384", "HS512", "RS256", "RS384", "RS512", "ES256", "ES384", "ES512", "PS256", "PS384", "PS512", "none"]>, "many">>;
|
|
222
|
-
audience: z.ZodOptional<z.ZodUnion<[z.ZodString, z.ZodType<RegExp, z.ZodTypeDef, RegExp>, z.ZodArray<z.ZodString, "many">]>>;
|
|
222
|
+
audience: z.ZodOptional<z.ZodUnion<[z.ZodString, z.ZodType<RegExp, z.ZodTypeDef, RegExp>, z.ZodArray<z.ZodUnion<[z.ZodString, z.ZodType<RegExp, z.ZodTypeDef, RegExp>]>, "many">]>>;
|
|
223
223
|
clockTimestamp: z.ZodOptional<z.ZodNumber>;
|
|
224
224
|
clockTolerance: z.ZodOptional<z.ZodNumber>;
|
|
225
225
|
complete: z.ZodOptional<z.ZodBoolean>;
|
|
@@ -232,7 +232,7 @@ declare const JwtServiceOptionsSchema: z.ZodObject<{
|
|
|
232
232
|
maxAge: z.ZodOptional<z.ZodUnion<[z.ZodString, z.ZodNumber]>>;
|
|
233
233
|
allowInvalidAsymmetricKeyTypes: z.ZodOptional<z.ZodBoolean>;
|
|
234
234
|
}, "strip", z.ZodTypeAny, {
|
|
235
|
-
audience?: string | RegExp | string[] | undefined;
|
|
235
|
+
audience?: string | RegExp | (string | RegExp)[] | undefined;
|
|
236
236
|
subject?: string | undefined;
|
|
237
237
|
issuer?: string | string[] | undefined;
|
|
238
238
|
jwtid?: string | undefined;
|
|
@@ -246,7 +246,7 @@ declare const JwtServiceOptionsSchema: z.ZodObject<{
|
|
|
246
246
|
nonce?: string | undefined;
|
|
247
247
|
maxAge?: string | number | undefined;
|
|
248
248
|
}, {
|
|
249
|
-
audience?: string | RegExp | string[] | undefined;
|
|
249
|
+
audience?: string | RegExp | (string | RegExp)[] | undefined;
|
|
250
250
|
subject?: string | undefined;
|
|
251
251
|
issuer?: string | string[] | undefined;
|
|
252
252
|
jwtid?: string | undefined;
|
|
@@ -265,7 +265,7 @@ declare const JwtServiceOptionsSchema: z.ZodObject<{
|
|
|
265
265
|
keyid: z.ZodOptional<z.ZodString>;
|
|
266
266
|
expiresIn: z.ZodOptional<z.ZodUnion<[z.ZodString, z.ZodNumber]>>;
|
|
267
267
|
notBefore: z.ZodOptional<z.ZodUnion<[z.ZodString, z.ZodNumber]>>;
|
|
268
|
-
audience: z.ZodOptional<z.ZodUnion<[z.ZodString, z.ZodArray<z.ZodString, "many">]>>;
|
|
268
|
+
audience: z.ZodOptional<z.ZodUnion<[z.ZodString, z.ZodType<RegExp, z.ZodTypeDef, RegExp>, z.ZodArray<z.ZodUnion<[z.ZodString, z.ZodType<RegExp, z.ZodTypeDef, RegExp>]>, "many">]>>;
|
|
269
269
|
subject: z.ZodOptional<z.ZodString>;
|
|
270
270
|
issuer: z.ZodOptional<z.ZodString>;
|
|
271
271
|
jwtid: z.ZodOptional<z.ZodString>;
|
|
@@ -313,7 +313,7 @@ declare const JwtServiceOptionsSchema: z.ZodObject<{
|
|
|
313
313
|
keyid?: string | undefined;
|
|
314
314
|
expiresIn?: string | number | undefined;
|
|
315
315
|
notBefore?: string | number | undefined;
|
|
316
|
-
audience?: string | string[] | undefined;
|
|
316
|
+
audience?: string | RegExp | (string | RegExp)[] | undefined;
|
|
317
317
|
subject?: string | undefined;
|
|
318
318
|
issuer?: string | undefined;
|
|
319
319
|
jwtid?: string | undefined;
|
|
@@ -339,7 +339,7 @@ declare const JwtServiceOptionsSchema: z.ZodObject<{
|
|
|
339
339
|
keyid?: string | undefined;
|
|
340
340
|
expiresIn?: string | number | undefined;
|
|
341
341
|
notBefore?: string | number | undefined;
|
|
342
|
-
audience?: string | string[] | undefined;
|
|
342
|
+
audience?: string | RegExp | (string | RegExp)[] | undefined;
|
|
343
343
|
subject?: string | undefined;
|
|
344
344
|
issuer?: string | undefined;
|
|
345
345
|
jwtid?: string | undefined;
|
|
@@ -362,7 +362,7 @@ declare const JwtServiceOptionsSchema: z.ZodObject<{
|
|
|
362
362
|
allowInvalidAsymmetricKeyTypes?: boolean | undefined;
|
|
363
363
|
}>, z.ZodObject<{
|
|
364
364
|
algorithms: z.ZodOptional<z.ZodArray<z.ZodEnum<["HS256", "HS384", "HS512", "RS256", "RS384", "RS512", "ES256", "ES384", "ES512", "PS256", "PS384", "PS512", "none"]>, "many">>;
|
|
365
|
-
audience: z.ZodOptional<z.ZodUnion<[z.ZodString, z.ZodType<RegExp, z.ZodTypeDef, RegExp>, z.ZodArray<z.ZodString, "many">]>>;
|
|
365
|
+
audience: z.ZodOptional<z.ZodUnion<[z.ZodString, z.ZodType<RegExp, z.ZodTypeDef, RegExp>, z.ZodArray<z.ZodUnion<[z.ZodString, z.ZodType<RegExp, z.ZodTypeDef, RegExp>]>, "many">]>>;
|
|
366
366
|
clockTimestamp: z.ZodOptional<z.ZodNumber>;
|
|
367
367
|
clockTolerance: z.ZodOptional<z.ZodNumber>;
|
|
368
368
|
complete: z.ZodOptional<z.ZodBoolean>;
|
|
@@ -375,7 +375,7 @@ declare const JwtServiceOptionsSchema: z.ZodObject<{
|
|
|
375
375
|
maxAge: z.ZodOptional<z.ZodUnion<[z.ZodString, z.ZodNumber]>>;
|
|
376
376
|
allowInvalidAsymmetricKeyTypes: z.ZodOptional<z.ZodBoolean>;
|
|
377
377
|
}, "strip", z.ZodTypeAny, {
|
|
378
|
-
audience?: string | RegExp | string[] | undefined;
|
|
378
|
+
audience?: string | RegExp | (string | RegExp)[] | undefined;
|
|
379
379
|
subject?: string | undefined;
|
|
380
380
|
issuer?: string | string[] | undefined;
|
|
381
381
|
jwtid?: string | undefined;
|
|
@@ -389,7 +389,7 @@ declare const JwtServiceOptionsSchema: z.ZodObject<{
|
|
|
389
389
|
nonce?: string | undefined;
|
|
390
390
|
maxAge?: string | number | undefined;
|
|
391
391
|
}, {
|
|
392
|
-
audience?: string | RegExp | string[] | undefined;
|
|
392
|
+
audience?: string | RegExp | (string | RegExp)[] | undefined;
|
|
393
393
|
subject?: string | undefined;
|
|
394
394
|
issuer?: string | string[] | undefined;
|
|
395
395
|
jwtid?: string | undefined;
|
|
@@ -439,7 +439,7 @@ declare const JwtServiceOptionsSchema: z.ZodObject<{
|
|
|
439
439
|
keyid?: string | undefined;
|
|
440
440
|
expiresIn?: string | number | undefined;
|
|
441
441
|
notBefore?: string | number | undefined;
|
|
442
|
-
audience?: string | string[] | undefined;
|
|
442
|
+
audience?: string | RegExp | (string | RegExp)[] | undefined;
|
|
443
443
|
subject?: string | undefined;
|
|
444
444
|
issuer?: string | undefined;
|
|
445
445
|
jwtid?: string | undefined;
|
|
@@ -470,7 +470,7 @@ declare const JwtServiceOptionsSchema: z.ZodObject<{
|
|
|
470
470
|
passphrase: string;
|
|
471
471
|
} | undefined;
|
|
472
472
|
verifyOptions?: {
|
|
473
|
-
audience?: string | RegExp | string[] | undefined;
|
|
473
|
+
audience?: string | RegExp | (string | RegExp)[] | undefined;
|
|
474
474
|
subject?: string | undefined;
|
|
475
475
|
issuer?: string | string[] | undefined;
|
|
476
476
|
jwtid?: string | undefined;
|
|
@@ -489,7 +489,7 @@ declare const JwtServiceOptionsSchema: z.ZodObject<{
|
|
|
489
489
|
keyid?: string | undefined;
|
|
490
490
|
expiresIn?: string | number | undefined;
|
|
491
491
|
notBefore?: string | number | undefined;
|
|
492
|
-
audience?: string | string[] | undefined;
|
|
492
|
+
audience?: string | RegExp | (string | RegExp)[] | undefined;
|
|
493
493
|
subject?: string | undefined;
|
|
494
494
|
issuer?: string | undefined;
|
|
495
495
|
jwtid?: string | undefined;
|
|
@@ -511,7 +511,7 @@ declare const JwtServiceOptionsSchema: z.ZodObject<{
|
|
|
511
511
|
allowInsecureKeySizes?: boolean | undefined;
|
|
512
512
|
allowInvalidAsymmetricKeyTypes?: boolean | undefined;
|
|
513
513
|
} | {
|
|
514
|
-
audience?: string | RegExp | string[] | undefined;
|
|
514
|
+
audience?: string | RegExp | (string | RegExp)[] | undefined;
|
|
515
515
|
subject?: string | undefined;
|
|
516
516
|
issuer?: string | string[] | undefined;
|
|
517
517
|
jwtid?: string | undefined;
|
|
@@ -541,7 +541,7 @@ declare const JwtServiceOptionsSchema: z.ZodObject<{
|
|
|
541
541
|
keyid?: string | undefined;
|
|
542
542
|
expiresIn?: string | number | undefined;
|
|
543
543
|
notBefore?: string | number | undefined;
|
|
544
|
-
audience?: string | string[] | undefined;
|
|
544
|
+
audience?: string | RegExp | (string | RegExp)[] | undefined;
|
|
545
545
|
subject?: string | undefined;
|
|
546
546
|
issuer?: string | undefined;
|
|
547
547
|
jwtid?: string | undefined;
|
|
@@ -572,7 +572,7 @@ declare const JwtServiceOptionsSchema: z.ZodObject<{
|
|
|
572
572
|
passphrase: string;
|
|
573
573
|
} | undefined;
|
|
574
574
|
verifyOptions?: {
|
|
575
|
-
audience?: string | RegExp | string[] | undefined;
|
|
575
|
+
audience?: string | RegExp | (string | RegExp)[] | undefined;
|
|
576
576
|
subject?: string | undefined;
|
|
577
577
|
issuer?: string | string[] | undefined;
|
|
578
578
|
jwtid?: string | undefined;
|
|
@@ -591,7 +591,7 @@ declare const JwtServiceOptionsSchema: z.ZodObject<{
|
|
|
591
591
|
keyid?: string | undefined;
|
|
592
592
|
expiresIn?: string | number | undefined;
|
|
593
593
|
notBefore?: string | number | undefined;
|
|
594
|
-
audience?: string | string[] | undefined;
|
|
594
|
+
audience?: string | RegExp | (string | RegExp)[] | undefined;
|
|
595
595
|
subject?: string | undefined;
|
|
596
596
|
issuer?: string | undefined;
|
|
597
597
|
jwtid?: string | undefined;
|
|
@@ -613,7 +613,7 @@ declare const JwtServiceOptionsSchema: z.ZodObject<{
|
|
|
613
613
|
allowInsecureKeySizes?: boolean | undefined;
|
|
614
614
|
allowInvalidAsymmetricKeyTypes?: boolean | undefined;
|
|
615
615
|
} | {
|
|
616
|
-
audience?: string | RegExp | string[] | undefined;
|
|
616
|
+
audience?: string | RegExp | (string | RegExp)[] | undefined;
|
|
617
617
|
subject?: string | undefined;
|
|
618
618
|
issuer?: string | string[] | undefined;
|
|
619
619
|
jwtid?: string | undefined;
|
|
@@ -647,7 +647,7 @@ algorithm: ZodOptional<ZodEnum<["HS256", "HS384", "HS512", "RS256", "RS384", "RS
|
|
|
647
647
|
keyid: ZodOptional<ZodString>;
|
|
648
648
|
expiresIn: ZodOptional<ZodUnion<[ZodString, ZodNumber]>>;
|
|
649
649
|
notBefore: ZodOptional<ZodUnion<[ZodString, ZodNumber]>>;
|
|
650
|
-
audience: ZodOptional<ZodUnion<[ZodString, ZodArray<ZodString, "many">]>>;
|
|
650
|
+
audience: ZodOptional<ZodUnion<[ZodString, ZodType<RegExp, ZodTypeDef, RegExp>, ZodArray<ZodUnion<[ZodString, ZodType<RegExp, ZodTypeDef, RegExp>]>, "many">]>>;
|
|
651
651
|
subject: ZodOptional<ZodString>;
|
|
652
652
|
issuer: ZodOptional<ZodString>;
|
|
653
653
|
jwtid: ZodOptional<ZodString>;
|
|
@@ -695,7 +695,7 @@ algorithm?: "HS256" | "HS384" | "HS512" | "RS256" | "RS384" | "RS512" | "ES256"
|
|
|
695
695
|
keyid?: string | undefined;
|
|
696
696
|
expiresIn?: string | number | undefined;
|
|
697
697
|
notBefore?: string | number | undefined;
|
|
698
|
-
audience?: string | string[] | undefined;
|
|
698
|
+
audience?: string | RegExp | (string | RegExp)[] | undefined;
|
|
699
699
|
subject?: string | undefined;
|
|
700
700
|
issuer?: string | undefined;
|
|
701
701
|
jwtid?: string | undefined;
|
|
@@ -721,7 +721,7 @@ algorithm?: "HS256" | "HS384" | "HS512" | "RS256" | "RS384" | "RS512" | "ES256"
|
|
|
721
721
|
keyid?: string | undefined;
|
|
722
722
|
expiresIn?: string | number | undefined;
|
|
723
723
|
notBefore?: string | number | undefined;
|
|
724
|
-
audience?: string | string[] | undefined;
|
|
724
|
+
audience?: string | RegExp | (string | RegExp)[] | undefined;
|
|
725
725
|
subject?: string | undefined;
|
|
726
726
|
issuer?: string | undefined;
|
|
727
727
|
jwtid?: string | undefined;
|
|
@@ -763,7 +763,7 @@ passphrase: string;
|
|
|
763
763
|
}>]>>;
|
|
764
764
|
verifyOptions: ZodOptional<ZodObject< {
|
|
765
765
|
algorithms: ZodOptional<ZodArray<ZodEnum<["HS256", "HS384", "HS512", "RS256", "RS384", "RS512", "ES256", "ES384", "ES512", "PS256", "PS384", "PS512", "none"]>, "many">>;
|
|
766
|
-
audience: ZodOptional<ZodUnion<[ZodString, ZodType<RegExp, ZodTypeDef, RegExp>, ZodArray<ZodString, "many">]>>;
|
|
766
|
+
audience: ZodOptional<ZodUnion<[ZodString, ZodType<RegExp, ZodTypeDef, RegExp>, ZodArray<ZodUnion<[ZodString, ZodType<RegExp, ZodTypeDef, RegExp>]>, "many">]>>;
|
|
767
767
|
clockTimestamp: ZodOptional<ZodNumber>;
|
|
768
768
|
clockTolerance: ZodOptional<ZodNumber>;
|
|
769
769
|
complete: ZodOptional<ZodBoolean>;
|
|
@@ -776,7 +776,7 @@ subject: ZodOptional<ZodString>;
|
|
|
776
776
|
maxAge: ZodOptional<ZodUnion<[ZodString, ZodNumber]>>;
|
|
777
777
|
allowInvalidAsymmetricKeyTypes: ZodOptional<ZodBoolean>;
|
|
778
778
|
}, "strip", ZodTypeAny, {
|
|
779
|
-
audience?: string | RegExp | string[] | undefined;
|
|
779
|
+
audience?: string | RegExp | (string | RegExp)[] | undefined;
|
|
780
780
|
subject?: string | undefined;
|
|
781
781
|
issuer?: string | string[] | undefined;
|
|
782
782
|
jwtid?: string | undefined;
|
|
@@ -790,7 +790,7 @@ ignoreNotBefore?: boolean | undefined;
|
|
|
790
790
|
nonce?: string | undefined;
|
|
791
791
|
maxAge?: string | number | undefined;
|
|
792
792
|
}, {
|
|
793
|
-
audience?: string | RegExp | string[] | undefined;
|
|
793
|
+
audience?: string | RegExp | (string | RegExp)[] | undefined;
|
|
794
794
|
subject?: string | undefined;
|
|
795
795
|
issuer?: string | string[] | undefined;
|
|
796
796
|
jwtid?: string | undefined;
|
|
@@ -809,7 +809,7 @@ algorithm: ZodOptional<ZodEnum<["HS256", "HS384", "HS512", "RS256", "RS384", "RS
|
|
|
809
809
|
keyid: ZodOptional<ZodString>;
|
|
810
810
|
expiresIn: ZodOptional<ZodUnion<[ZodString, ZodNumber]>>;
|
|
811
811
|
notBefore: ZodOptional<ZodUnion<[ZodString, ZodNumber]>>;
|
|
812
|
-
audience: ZodOptional<ZodUnion<[ZodString, ZodArray<ZodString, "many">]>>;
|
|
812
|
+
audience: ZodOptional<ZodUnion<[ZodString, ZodType<RegExp, ZodTypeDef, RegExp>, ZodArray<ZodUnion<[ZodString, ZodType<RegExp, ZodTypeDef, RegExp>]>, "many">]>>;
|
|
813
813
|
subject: ZodOptional<ZodString>;
|
|
814
814
|
issuer: ZodOptional<ZodString>;
|
|
815
815
|
jwtid: ZodOptional<ZodString>;
|
|
@@ -857,7 +857,7 @@ algorithm?: "HS256" | "HS384" | "HS512" | "RS256" | "RS384" | "RS512" | "ES256"
|
|
|
857
857
|
keyid?: string | undefined;
|
|
858
858
|
expiresIn?: string | number | undefined;
|
|
859
859
|
notBefore?: string | number | undefined;
|
|
860
|
-
audience?: string | string[] | undefined;
|
|
860
|
+
audience?: string | RegExp | (string | RegExp)[] | undefined;
|
|
861
861
|
subject?: string | undefined;
|
|
862
862
|
issuer?: string | undefined;
|
|
863
863
|
jwtid?: string | undefined;
|
|
@@ -883,7 +883,7 @@ algorithm?: "HS256" | "HS384" | "HS512" | "RS256" | "RS384" | "RS512" | "ES256"
|
|
|
883
883
|
keyid?: string | undefined;
|
|
884
884
|
expiresIn?: string | number | undefined;
|
|
885
885
|
notBefore?: string | number | undefined;
|
|
886
|
-
audience?: string | string[] | undefined;
|
|
886
|
+
audience?: string | RegExp | (string | RegExp)[] | undefined;
|
|
887
887
|
subject?: string | undefined;
|
|
888
888
|
issuer?: string | undefined;
|
|
889
889
|
jwtid?: string | undefined;
|
|
@@ -906,7 +906,7 @@ allowInsecureKeySizes?: boolean | undefined;
|
|
|
906
906
|
allowInvalidAsymmetricKeyTypes?: boolean | undefined;
|
|
907
907
|
}>, ZodObject< {
|
|
908
908
|
algorithms: ZodOptional<ZodArray<ZodEnum<["HS256", "HS384", "HS512", "RS256", "RS384", "RS512", "ES256", "ES384", "ES512", "PS256", "PS384", "PS512", "none"]>, "many">>;
|
|
909
|
-
audience: ZodOptional<ZodUnion<[ZodString, ZodType<RegExp, ZodTypeDef, RegExp>, ZodArray<ZodString, "many">]>>;
|
|
909
|
+
audience: ZodOptional<ZodUnion<[ZodString, ZodType<RegExp, ZodTypeDef, RegExp>, ZodArray<ZodUnion<[ZodString, ZodType<RegExp, ZodTypeDef, RegExp>]>, "many">]>>;
|
|
910
910
|
clockTimestamp: ZodOptional<ZodNumber>;
|
|
911
911
|
clockTolerance: ZodOptional<ZodNumber>;
|
|
912
912
|
complete: ZodOptional<ZodBoolean>;
|
|
@@ -919,7 +919,7 @@ subject: ZodOptional<ZodString>;
|
|
|
919
919
|
maxAge: ZodOptional<ZodUnion<[ZodString, ZodNumber]>>;
|
|
920
920
|
allowInvalidAsymmetricKeyTypes: ZodOptional<ZodBoolean>;
|
|
921
921
|
}, "strip", ZodTypeAny, {
|
|
922
|
-
audience?: string | RegExp | string[] | undefined;
|
|
922
|
+
audience?: string | RegExp | (string | RegExp)[] | undefined;
|
|
923
923
|
subject?: string | undefined;
|
|
924
924
|
issuer?: string | string[] | undefined;
|
|
925
925
|
jwtid?: string | undefined;
|
|
@@ -933,7 +933,7 @@ ignoreNotBefore?: boolean | undefined;
|
|
|
933
933
|
nonce?: string | undefined;
|
|
934
934
|
maxAge?: string | number | undefined;
|
|
935
935
|
}, {
|
|
936
|
-
audience?: string | RegExp | string[] | undefined;
|
|
936
|
+
audience?: string | RegExp | (string | RegExp)[] | undefined;
|
|
937
937
|
subject?: string | undefined;
|
|
938
938
|
issuer?: string | string[] | undefined;
|
|
939
939
|
jwtid?: string | undefined;
|
|
@@ -983,7 +983,7 @@ algorithm?: "HS256" | "HS384" | "HS512" | "RS256" | "RS384" | "RS512" | "ES256"
|
|
|
983
983
|
keyid?: string | undefined;
|
|
984
984
|
expiresIn?: string | number | undefined;
|
|
985
985
|
notBefore?: string | number | undefined;
|
|
986
|
-
audience?: string | string[] | undefined;
|
|
986
|
+
audience?: string | RegExp | (string | RegExp)[] | undefined;
|
|
987
987
|
subject?: string | undefined;
|
|
988
988
|
issuer?: string | undefined;
|
|
989
989
|
jwtid?: string | undefined;
|
|
@@ -1014,7 +1014,7 @@ key: string | Buffer<ArrayBufferLike>;
|
|
|
1014
1014
|
passphrase: string;
|
|
1015
1015
|
} | undefined;
|
|
1016
1016
|
verifyOptions?: {
|
|
1017
|
-
audience?: string | RegExp | string[] | undefined;
|
|
1017
|
+
audience?: string | RegExp | (string | RegExp)[] | undefined;
|
|
1018
1018
|
subject?: string | undefined;
|
|
1019
1019
|
issuer?: string | string[] | undefined;
|
|
1020
1020
|
jwtid?: string | undefined;
|
|
@@ -1033,7 +1033,7 @@ algorithm?: "HS256" | "HS384" | "HS512" | "RS256" | "RS384" | "RS512" | "ES256"
|
|
|
1033
1033
|
keyid?: string | undefined;
|
|
1034
1034
|
expiresIn?: string | number | undefined;
|
|
1035
1035
|
notBefore?: string | number | undefined;
|
|
1036
|
-
audience?: string | string[] | undefined;
|
|
1036
|
+
audience?: string | RegExp | (string | RegExp)[] | undefined;
|
|
1037
1037
|
subject?: string | undefined;
|
|
1038
1038
|
issuer?: string | undefined;
|
|
1039
1039
|
jwtid?: string | undefined;
|
|
@@ -1055,7 +1055,7 @@ encoding?: string | undefined;
|
|
|
1055
1055
|
allowInsecureKeySizes?: boolean | undefined;
|
|
1056
1056
|
allowInvalidAsymmetricKeyTypes?: boolean | undefined;
|
|
1057
1057
|
} | {
|
|
1058
|
-
audience?: string | RegExp | string[] | undefined;
|
|
1058
|
+
audience?: string | RegExp | (string | RegExp)[] | undefined;
|
|
1059
1059
|
subject?: string | undefined;
|
|
1060
1060
|
issuer?: string | string[] | undefined;
|
|
1061
1061
|
jwtid?: string | undefined;
|
|
@@ -1085,7 +1085,7 @@ algorithm?: "HS256" | "HS384" | "HS512" | "RS256" | "RS384" | "RS512" | "ES256"
|
|
|
1085
1085
|
keyid?: string | undefined;
|
|
1086
1086
|
expiresIn?: string | number | undefined;
|
|
1087
1087
|
notBefore?: string | number | undefined;
|
|
1088
|
-
audience?: string | string[] | undefined;
|
|
1088
|
+
audience?: string | RegExp | (string | RegExp)[] | undefined;
|
|
1089
1089
|
subject?: string | undefined;
|
|
1090
1090
|
issuer?: string | undefined;
|
|
1091
1091
|
jwtid?: string | undefined;
|
|
@@ -1116,7 +1116,7 @@ key: string | Buffer<ArrayBufferLike>;
|
|
|
1116
1116
|
passphrase: string;
|
|
1117
1117
|
} | undefined;
|
|
1118
1118
|
verifyOptions?: {
|
|
1119
|
-
audience?: string | RegExp | string[] | undefined;
|
|
1119
|
+
audience?: string | RegExp | (string | RegExp)[] | undefined;
|
|
1120
1120
|
subject?: string | undefined;
|
|
1121
1121
|
issuer?: string | string[] | undefined;
|
|
1122
1122
|
jwtid?: string | undefined;
|
|
@@ -1135,7 +1135,7 @@ algorithm?: "HS256" | "HS384" | "HS512" | "RS256" | "RS384" | "RS512" | "ES256"
|
|
|
1135
1135
|
keyid?: string | undefined;
|
|
1136
1136
|
expiresIn?: string | number | undefined;
|
|
1137
1137
|
notBefore?: string | number | undefined;
|
|
1138
|
-
audience?: string | string[] | undefined;
|
|
1138
|
+
audience?: string | RegExp | (string | RegExp)[] | undefined;
|
|
1139
1139
|
subject?: string | undefined;
|
|
1140
1140
|
issuer?: string | undefined;
|
|
1141
1141
|
jwtid?: string | undefined;
|
|
@@ -1157,7 +1157,7 @@ encoding?: string | undefined;
|
|
|
1157
1157
|
allowInsecureKeySizes?: boolean | undefined;
|
|
1158
1158
|
allowInvalidAsymmetricKeyTypes?: boolean | undefined;
|
|
1159
1159
|
} | {
|
|
1160
|
-
audience?: string | RegExp | string[] | undefined;
|
|
1160
|
+
audience?: string | RegExp | (string | RegExp)[] | undefined;
|
|
1161
1161
|
subject?: string | undefined;
|
|
1162
1162
|
issuer?: string | string[] | undefined;
|
|
1163
1163
|
jwtid?: string | undefined;
|
|
@@ -1201,7 +1201,9 @@ export { JwtVerifyOptions as JwtVerifyOptions_alias_1 }
|
|
|
1201
1201
|
|
|
1202
1202
|
export declare const NotBeforeError: typeof jwt.NotBeforeError;
|
|
1203
1203
|
|
|
1204
|
-
declare function provideJwtService(config: JwtServiceOptions
|
|
1204
|
+
declare function provideJwtService(config: JwtServiceOptions): BoundInjectionToken<JwtService, typeof JwtServiceOptionsSchema>;
|
|
1205
|
+
|
|
1206
|
+
declare function provideJwtService(config: () => Promise<JwtServiceOptions>): FactoryInjectionToken<JwtService, typeof JwtServiceOptionsSchema>;
|
|
1205
1207
|
export { provideJwtService }
|
|
1206
1208
|
export { provideJwtService as provideJwtService_alias_1 }
|
|
1207
1209
|
|
|
@@ -1244,7 +1246,7 @@ declare const SignOptionsSchema: z.ZodObject<{
|
|
|
1244
1246
|
keyid: z.ZodOptional<z.ZodString>;
|
|
1245
1247
|
expiresIn: z.ZodOptional<z.ZodUnion<[z.ZodString, z.ZodNumber]>>;
|
|
1246
1248
|
notBefore: z.ZodOptional<z.ZodUnion<[z.ZodString, z.ZodNumber]>>;
|
|
1247
|
-
audience: z.ZodOptional<z.ZodUnion<[z.ZodString, z.ZodArray<z.ZodString, "many">]>>;
|
|
1249
|
+
audience: z.ZodOptional<z.ZodUnion<[z.ZodString, z.ZodType<RegExp, z.ZodTypeDef, RegExp>, z.ZodArray<z.ZodUnion<[z.ZodString, z.ZodType<RegExp, z.ZodTypeDef, RegExp>]>, "many">]>>;
|
|
1248
1250
|
subject: z.ZodOptional<z.ZodString>;
|
|
1249
1251
|
issuer: z.ZodOptional<z.ZodString>;
|
|
1250
1252
|
jwtid: z.ZodOptional<z.ZodString>;
|
|
@@ -1292,7 +1294,7 @@ declare const SignOptionsSchema: z.ZodObject<{
|
|
|
1292
1294
|
keyid?: string | undefined;
|
|
1293
1295
|
expiresIn?: string | number | undefined;
|
|
1294
1296
|
notBefore?: string | number | undefined;
|
|
1295
|
-
audience?: string | string[] | undefined;
|
|
1297
|
+
audience?: string | RegExp | (string | RegExp)[] | undefined;
|
|
1296
1298
|
subject?: string | undefined;
|
|
1297
1299
|
issuer?: string | undefined;
|
|
1298
1300
|
jwtid?: string | undefined;
|
|
@@ -1318,7 +1320,7 @@ declare const SignOptionsSchema: z.ZodObject<{
|
|
|
1318
1320
|
keyid?: string | undefined;
|
|
1319
1321
|
expiresIn?: string | number | undefined;
|
|
1320
1322
|
notBefore?: string | number | undefined;
|
|
1321
|
-
audience?: string | string[] | undefined;
|
|
1323
|
+
audience?: string | RegExp | (string | RegExp)[] | undefined;
|
|
1322
1324
|
subject?: string | undefined;
|
|
1323
1325
|
issuer?: string | undefined;
|
|
1324
1326
|
jwtid?: string | undefined;
|
|
@@ -1351,7 +1353,7 @@ export { VerifyOptions as VerifyOptions_alias_1 }
|
|
|
1351
1353
|
|
|
1352
1354
|
declare const VerifyOptionsSchema: z.ZodObject<{
|
|
1353
1355
|
algorithms: z.ZodOptional<z.ZodArray<z.ZodEnum<["HS256", "HS384", "HS512", "RS256", "RS384", "RS512", "ES256", "ES384", "ES512", "PS256", "PS384", "PS512", "none"]>, "many">>;
|
|
1354
|
-
audience: z.ZodOptional<z.ZodUnion<[z.ZodString, z.ZodType<RegExp, z.ZodTypeDef, RegExp>, z.ZodArray<z.ZodString, "many">]>>;
|
|
1356
|
+
audience: z.ZodOptional<z.ZodUnion<[z.ZodString, z.ZodType<RegExp, z.ZodTypeDef, RegExp>, z.ZodArray<z.ZodUnion<[z.ZodString, z.ZodType<RegExp, z.ZodTypeDef, RegExp>]>, "many">]>>;
|
|
1355
1357
|
clockTimestamp: z.ZodOptional<z.ZodNumber>;
|
|
1356
1358
|
clockTolerance: z.ZodOptional<z.ZodNumber>;
|
|
1357
1359
|
complete: z.ZodOptional<z.ZodBoolean>;
|
|
@@ -1364,7 +1366,7 @@ declare const VerifyOptionsSchema: z.ZodObject<{
|
|
|
1364
1366
|
maxAge: z.ZodOptional<z.ZodUnion<[z.ZodString, z.ZodNumber]>>;
|
|
1365
1367
|
allowInvalidAsymmetricKeyTypes: z.ZodOptional<z.ZodBoolean>;
|
|
1366
1368
|
}, "strip", z.ZodTypeAny, {
|
|
1367
|
-
audience?: string | RegExp | string[] | undefined;
|
|
1369
|
+
audience?: string | RegExp | (string | RegExp)[] | undefined;
|
|
1368
1370
|
subject?: string | undefined;
|
|
1369
1371
|
issuer?: string | string[] | undefined;
|
|
1370
1372
|
jwtid?: string | undefined;
|
|
@@ -1378,7 +1380,7 @@ declare const VerifyOptionsSchema: z.ZodObject<{
|
|
|
1378
1380
|
nonce?: string | undefined;
|
|
1379
1381
|
maxAge?: string | number | undefined;
|
|
1380
1382
|
}, {
|
|
1381
|
-
audience?: string | RegExp | string[] | undefined;
|
|
1383
|
+
audience?: string | RegExp | (string | RegExp)[] | undefined;
|
|
1382
1384
|
subject?: string | undefined;
|
|
1383
1385
|
issuer?: string | string[] | undefined;
|
|
1384
1386
|
jwtid?: string | undefined;
|
package/lib/index.js
CHANGED
|
@@ -76,7 +76,11 @@ var SignOptionsSchema = zod.z.object({
|
|
|
76
76
|
keyid: zod.z.string().optional(),
|
|
77
77
|
expiresIn: zod.z.union([zod.z.string(), zod.z.number()]).optional(),
|
|
78
78
|
notBefore: zod.z.union([zod.z.string(), zod.z.number()]).optional(),
|
|
79
|
-
audience: zod.z.union([
|
|
79
|
+
audience: zod.z.union([
|
|
80
|
+
zod.z.string(),
|
|
81
|
+
zod.z.instanceof(RegExp),
|
|
82
|
+
zod.z.array(zod.z.union([zod.z.string(), zod.z.instanceof(RegExp)]))
|
|
83
|
+
]).optional(),
|
|
80
84
|
subject: zod.z.string().optional(),
|
|
81
85
|
issuer: zod.z.string().optional(),
|
|
82
86
|
jwtid: zod.z.string().optional(),
|
|
@@ -89,7 +93,11 @@ var SignOptionsSchema = zod.z.object({
|
|
|
89
93
|
});
|
|
90
94
|
var VerifyOptionsSchema = zod.z.object({
|
|
91
95
|
algorithms: AlgorithmType.array().optional(),
|
|
92
|
-
audience: zod.z.union([
|
|
96
|
+
audience: zod.z.union([
|
|
97
|
+
zod.z.string(),
|
|
98
|
+
zod.z.instanceof(RegExp),
|
|
99
|
+
zod.z.array(zod.z.union([zod.z.string(), zod.z.instanceof(RegExp)]))
|
|
100
|
+
]).optional(),
|
|
93
101
|
clockTimestamp: zod.z.number().optional(),
|
|
94
102
|
clockTolerance: zod.z.number().optional(),
|
|
95
103
|
complete: zod.z.boolean().optional(),
|
package/lib/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/options/jwt-service.options.mts","../src/jwt.service.mts","../src/jwt-service.provider.mts","../src/index.mts"],"names":["RequestType","z","InjectionToken","Injectable","syncInject","Logger","jwt"],"mappings":"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","file":"index.js","sourcesContent":["import type { Secret as JwtSecret } from 'jsonwebtoken'\n\nimport { z } from 'zod'\n\nexport enum RequestType {\n Sign = 'Sign',\n Verify = 'Verify',\n}\n\nexport const AlgorithmType = z.enum([\n 'HS256',\n 'HS384',\n 'HS512',\n 'RS256',\n 'RS384',\n 'RS512',\n 'ES256',\n 'ES384',\n 'ES512',\n 'PS256',\n 'PS384',\n 'PS512',\n 'none',\n])\n\nexport const JwtHeaderSchema = z.object({\n alg: AlgorithmType.or(z.string()),\n typ: z.string().optional(),\n cty: z.string().optional(),\n crit: z.string().array().optional(),\n kid: z.string().optional(),\n jku: z.string().optional(),\n x5u: z.union([z.string(), z.array(z.string())]).optional(),\n 'x5t#S256': z.string().optional(),\n x5t: z.string().optional(),\n x5c: z.union([z.string(), z.array(z.string())]).optional(),\n})\n\nexport type JwtHeader = z.infer<typeof JwtHeaderSchema>\n\nexport const SignOptionsSchema = z.object({\n algorithm: AlgorithmType.optional(),\n keyid: z.string().optional(),\n expiresIn: z.union([z.string(), z.number()]).optional(),\n notBefore: z.union([z.string(), z.number()]).optional(),\n audience: z.union([z.string(), z.string().array()]).optional(),\n subject: z.string().optional(),\n issuer: z.string().optional(),\n jwtid: z.string().optional(),\n mutatePayload: z.boolean().optional(),\n noTimestamp: z.boolean().optional(),\n header: JwtHeaderSchema.optional(),\n encoding: z.string().optional(),\n allowInsecureKeySizes: z.boolean().optional(),\n allowInvalidAsymmetricKeyTypes: z.boolean().optional(),\n})\n\nexport type SignOptions = z.infer<typeof SignOptionsSchema>\n\nexport const VerifyOptionsSchema = z.object({\n algorithms: AlgorithmType.array().optional(),\n audience: z\n .union([z.string(), z.instanceof(RegExp), z.string().array()])\n .optional(),\n clockTimestamp: z.number().optional(),\n clockTolerance: z.number().optional(),\n complete: z.boolean().optional(),\n issuer: z.union([z.string(), z.string().array()]).optional(),\n ignoreExpiration: z.boolean().optional(),\n ignoreNotBefore: z.boolean().optional(),\n jwtid: z.string().optional(),\n nonce: z.string().optional(),\n subject: z.string().optional(),\n maxAge: z.union([z.string(), z.number()]).optional(),\n allowInvalidAsymmetricKeyTypes: z.boolean().optional(),\n})\n\nexport type VerifyOptions = z.infer<typeof VerifyOptionsSchema>\n\nexport const SecretSchema = z.union([\n z.string(),\n z.instanceof(Buffer),\n z\n .object({\n type: z.string(),\n })\n .passthrough(),\n z.object({\n key: z.union([z.string(), z.instanceof(Buffer)]),\n passphrase: z.string(),\n }),\n])\n\nexport type Secret = z.infer<typeof SecretSchema>\n\nexport const JwtServiceOptionsSchema = z.object({\n signOptions: SignOptionsSchema.optional(),\n secret: z.string().optional(),\n publicKey: z.union([z.string(), z.instanceof(Buffer)]).optional(),\n privateKey: SecretSchema.optional(),\n verifyOptions: VerifyOptionsSchema.optional(),\n secretOrKeyProvider: z\n .function()\n .args(\n z.nativeEnum(RequestType),\n z.any(),\n z.union([SignOptionsSchema, VerifyOptionsSchema]).optional(),\n )\n .returns(z.union([SecretSchema, z.promise(SecretSchema)]))\n .optional(),\n})\n\nexport type JwtServiceOptions = z.infer<typeof JwtServiceOptionsSchema>\n\nexport interface JwtSignOptions extends SignOptions {\n secret?: string | Buffer\n privateKey?: Secret\n}\n\nexport interface JwtVerifyOptions extends VerifyOptions {\n secret?: string | Buffer\n publicKey?: string | Buffer\n}\n\nexport type GetSecretKeyResult = string | Buffer | JwtSecret\n","import { Injectable, InjectionToken, Logger, syncInject } from '@navios/core'\n\nimport jwt from 'jsonwebtoken'\n\nimport type {\n GetSecretKeyResult,\n JwtServiceOptions,\n JwtSignOptions,\n JwtVerifyOptions,\n SignOptions,\n VerifyOptions,\n} from './options/jwt-service.options.mjs'\n\nimport {\n JwtServiceOptionsSchema,\n RequestType,\n} from './options/jwt-service.options.mjs'\n\nexport const JwtServiceToken = InjectionToken.create(\n Symbol.for('JwtService'),\n JwtServiceOptionsSchema,\n)\n\n@Injectable({\n token: JwtServiceToken,\n})\nexport class JwtService {\n logger = syncInject(Logger, {\n context: JwtService.name,\n })\n\n constructor(private readonly options: JwtServiceOptions = {}) {}\n\n sign(\n payload: string,\n options?: Omit<JwtSignOptions, keyof SignOptions>,\n ): string\n sign(payload: Buffer | object, options?: JwtSignOptions): string\n sign(\n payload: string | Buffer | object,\n options: JwtSignOptions = {},\n ): string {\n const signOptions = this.mergeJwtOptions(\n { ...options },\n 'signOptions',\n ) as jwt.SignOptions\n const secret = this.getSecretKey(\n payload,\n options,\n 'privateKey',\n RequestType.Sign,\n )\n\n if (secret instanceof Promise) {\n secret.catch(() => {}) // suppress rejection from async provider\n this.logger.warn(\n 'For async version of \"secretOrKeyProvider\", please use \"signAsync\".',\n )\n throw new Error()\n }\n\n const allowedSignOptKeys = ['secret', 'privateKey']\n const signOptKeys = Object.keys(signOptions)\n if (\n typeof payload === 'string' &&\n signOptKeys.some((k) => !allowedSignOptKeys.includes(k))\n ) {\n throw new Error(\n 'Payload as string is not allowed with the following sign options: ' +\n signOptKeys.join(', '),\n )\n }\n\n return jwt.sign(payload, secret, signOptions)\n }\n\n signAsync(\n payload: string,\n options?: Omit<JwtSignOptions, keyof jwt.SignOptions>,\n ): Promise<string>\n signAsync(payload: Buffer | object, options?: JwtSignOptions): Promise<string>\n signAsync(\n payload: string | Buffer | object,\n options: JwtSignOptions = {},\n ): Promise<string> {\n const signOptions = this.mergeJwtOptions(\n { ...options },\n 'signOptions',\n ) as jwt.SignOptions\n const secret = this.getSecretKey(\n payload,\n options,\n 'privateKey',\n RequestType.Sign,\n )\n\n const allowedSignOptKeys = ['secret', 'privateKey']\n const signOptKeys = Object.keys(signOptions)\n if (\n typeof payload === 'string' &&\n signOptKeys.some((k) => !allowedSignOptKeys.includes(k))\n ) {\n throw new Error(\n 'Payload as string is not allowed with the following sign options: ' +\n signOptKeys.join(', '),\n )\n }\n\n return new Promise((resolve, reject) =>\n Promise.resolve()\n .then(() => secret)\n .then((scrt: GetSecretKeyResult) => {\n jwt.sign(payload, scrt, signOptions, (err, encoded) =>\n err ? reject(err) : resolve(encoded as string),\n )\n }),\n )\n }\n\n verify<T extends object = any>(\n token: string,\n options: JwtVerifyOptions = {},\n ): T {\n const verifyOptions = this.mergeJwtOptions({ ...options }, 'verifyOptions')\n const secret = this.getSecretKey(\n token,\n options,\n 'publicKey',\n RequestType.Verify,\n )\n\n if (secret instanceof Promise) {\n secret.catch(() => {}) // suppress rejection from async provider\n this.logger.warn(\n 'For async version of \"secretOrKeyProvider\", please use \"verifyAsync\".',\n )\n throw new Error()\n }\n\n return jwt.verify(token, secret, verifyOptions) as unknown as T\n }\n\n verifyAsync<T extends object = any>(\n token: string,\n options: JwtVerifyOptions = {},\n ): Promise<T> {\n const verifyOptions = this.mergeJwtOptions({ ...options }, 'verifyOptions')\n const secret = this.getSecretKey(\n token,\n options,\n 'publicKey',\n RequestType.Verify,\n )\n\n return new Promise((resolve, reject) =>\n Promise.resolve()\n .then(() => secret)\n .then((scrt: GetSecretKeyResult) => {\n jwt.verify(token, scrt, verifyOptions, (err, decoded) =>\n err ? reject(err) : resolve(decoded as T),\n )\n })\n .catch(reject),\n )\n }\n\n decode<T = any>(token: string, options?: jwt.DecodeOptions): T {\n return jwt.decode(token, options) as T\n }\n\n private mergeJwtOptions(\n options: JwtVerifyOptions | JwtSignOptions,\n key: 'verifyOptions' | 'signOptions',\n ): VerifyOptions | SignOptions {\n delete options.secret\n if (key === 'signOptions') {\n delete (options as JwtSignOptions).privateKey\n } else {\n delete (options as JwtVerifyOptions).publicKey\n }\n return options\n ? {\n ...(this.options[key] || {}),\n ...options,\n }\n : // @ts-expect-error We check it\n this.options[key]\n }\n\n private getSecretKey(\n token: string | object | Buffer,\n options: JwtVerifyOptions | JwtSignOptions,\n key: 'publicKey' | 'privateKey',\n secretRequestType: RequestType,\n ): GetSecretKeyResult | Promise<GetSecretKeyResult> {\n const secret = this.options.secretOrKeyProvider\n ? this.options.secretOrKeyProvider(secretRequestType, token, options)\n : options?.secret ||\n this.options.secret ||\n (key === 'privateKey'\n ? (options as JwtSignOptions)?.privateKey || this.options.privateKey\n : (options as JwtVerifyOptions)?.publicKey ||\n this.options.publicKey) ||\n this.options[key]\n\n return secret as GetSecretKeyResult\n }\n}\n","import type { BoundInjectionToken, FactoryInjectionToken } from '@navios/core'\n\nimport { InjectionToken } from '@navios/core'\n\nimport type { JwtServiceOptions } from './options/jwt-service.options.mjs'\n\nimport { JwtService, JwtServiceToken } from './jwt.service.mjs'\nimport { JwtServiceOptionsSchema } from './options/jwt-service.options.mjs'\n\nexport function provideJwtService(\n config: JwtServiceOptions | (() => Promise<JwtServiceOptions>),\n):\n | BoundInjectionToken<JwtService, typeof JwtServiceOptionsSchema>\n | FactoryInjectionToken<JwtService, typeof JwtServiceOptionsSchema> {\n if (typeof config === 'function') {\n return InjectionToken.factory(JwtServiceToken, config)\n }\n return InjectionToken.bound(JwtServiceToken, config)\n}\n","import jwt from 'jsonwebtoken'\n\nexport * from './options/jwt-service.options.mjs'\nexport * from './jwt.service.mjs'\nexport * from './jwt-service.provider.mjs'\nexport const TokenExpiredError = jwt.TokenExpiredError\nexport const NotBeforeError = jwt.NotBeforeError\nexport const JsonWebTokenError = jwt.JsonWebTokenError\n"]}
|
|
1
|
+
{"version":3,"sources":["../src/options/jwt-service.options.mts","../src/jwt.service.mts","../src/jwt-service.provider.mts","../src/index.mts"],"names":["RequestType","z","InjectionToken","Injectable","syncInject","Logger","jwt"],"mappings":"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","file":"index.js","sourcesContent":["import type { Secret as JwtSecret } from 'jsonwebtoken'\n\nimport { z } from 'zod'\n\nexport enum RequestType {\n Sign = 'Sign',\n Verify = 'Verify',\n}\n\nexport const AlgorithmType = z.enum([\n 'HS256',\n 'HS384',\n 'HS512',\n 'RS256',\n 'RS384',\n 'RS512',\n 'ES256',\n 'ES384',\n 'ES512',\n 'PS256',\n 'PS384',\n 'PS512',\n 'none',\n])\n\nexport const JwtHeaderSchema = z.object({\n alg: AlgorithmType.or(z.string()),\n typ: z.string().optional(),\n cty: z.string().optional(),\n crit: z.string().array().optional(),\n kid: z.string().optional(),\n jku: z.string().optional(),\n x5u: z.union([z.string(), z.array(z.string())]).optional(),\n 'x5t#S256': z.string().optional(),\n x5t: z.string().optional(),\n x5c: z.union([z.string(), z.array(z.string())]).optional(),\n})\n\nexport type JwtHeader = z.infer<typeof JwtHeaderSchema>\n\nexport const SignOptionsSchema = z.object({\n algorithm: AlgorithmType.optional(),\n keyid: z.string().optional(),\n expiresIn: z.union([z.string(), z.number()]).optional(),\n notBefore: z.union([z.string(), z.number()]).optional(),\n audience: z\n .union([\n z.string(),\n z.instanceof(RegExp),\n z.array(z.union([z.string(), z.instanceof(RegExp)])),\n ])\n .optional(),\n subject: z.string().optional(),\n issuer: z.string().optional(),\n jwtid: z.string().optional(),\n mutatePayload: z.boolean().optional(),\n noTimestamp: z.boolean().optional(),\n header: JwtHeaderSchema.optional(),\n encoding: z.string().optional(),\n allowInsecureKeySizes: z.boolean().optional(),\n allowInvalidAsymmetricKeyTypes: z.boolean().optional(),\n})\n\nexport type SignOptions = z.infer<typeof SignOptionsSchema>\n\nexport const VerifyOptionsSchema = z.object({\n algorithms: AlgorithmType.array().optional(),\n audience: z\n .union([\n z.string(),\n z.instanceof(RegExp),\n z.array(z.union([z.string(), z.instanceof(RegExp)])),\n ])\n .optional(),\n clockTimestamp: z.number().optional(),\n clockTolerance: z.number().optional(),\n complete: z.boolean().optional(),\n issuer: z.union([z.string(), z.string().array()]).optional(),\n ignoreExpiration: z.boolean().optional(),\n ignoreNotBefore: z.boolean().optional(),\n jwtid: z.string().optional(),\n nonce: z.string().optional(),\n subject: z.string().optional(),\n maxAge: z.union([z.string(), z.number()]).optional(),\n allowInvalidAsymmetricKeyTypes: z.boolean().optional(),\n})\n\nexport type VerifyOptions = z.infer<typeof VerifyOptionsSchema>\n\nexport const SecretSchema = z.union([\n z.string(),\n z.instanceof(Buffer),\n z\n .object({\n type: z.string(),\n })\n .passthrough(),\n z.object({\n key: z.union([z.string(), z.instanceof(Buffer)]),\n passphrase: z.string(),\n }),\n])\n\nexport type Secret = z.infer<typeof SecretSchema>\n\nexport const JwtServiceOptionsSchema = z.object({\n signOptions: SignOptionsSchema.optional(),\n secret: z.string().optional(),\n publicKey: z.union([z.string(), z.instanceof(Buffer)]).optional(),\n privateKey: SecretSchema.optional(),\n verifyOptions: VerifyOptionsSchema.optional(),\n secretOrKeyProvider: z\n .function()\n .args(\n z.nativeEnum(RequestType),\n z.any(),\n z.union([SignOptionsSchema, VerifyOptionsSchema]).optional(),\n )\n .returns(z.union([SecretSchema, z.promise(SecretSchema)]))\n .optional(),\n})\n\nexport type JwtServiceOptions = z.infer<typeof JwtServiceOptionsSchema>\n\nexport interface JwtSignOptions extends SignOptions {\n secret?: string | Buffer\n privateKey?: Secret\n}\n\nexport interface JwtVerifyOptions extends VerifyOptions {\n secret?: string | Buffer\n publicKey?: string | Buffer\n}\n\nexport type GetSecretKeyResult = string | Buffer | JwtSecret\n","import { Injectable, InjectionToken, Logger, syncInject } from '@navios/core'\n\nimport jwt from 'jsonwebtoken'\n\nimport type {\n GetSecretKeyResult,\n JwtServiceOptions,\n JwtSignOptions,\n JwtVerifyOptions,\n SignOptions,\n VerifyOptions,\n} from './options/jwt-service.options.mjs'\n\nimport {\n JwtServiceOptionsSchema,\n RequestType,\n} from './options/jwt-service.options.mjs'\n\nexport const JwtServiceToken = InjectionToken.create(\n Symbol.for('JwtService'),\n JwtServiceOptionsSchema,\n)\n\n@Injectable({\n token: JwtServiceToken,\n})\nexport class JwtService {\n logger = syncInject(Logger, {\n context: JwtService.name,\n })\n\n constructor(private readonly options: JwtServiceOptions = {}) {}\n\n sign(\n payload: string,\n options?: Omit<JwtSignOptions, keyof SignOptions>,\n ): string\n sign(payload: Buffer | object, options?: JwtSignOptions): string\n sign(\n payload: string | Buffer | object,\n options: JwtSignOptions = {},\n ): string {\n const signOptions = this.mergeJwtOptions(\n { ...options },\n 'signOptions',\n ) as jwt.SignOptions\n const secret = this.getSecretKey(\n payload,\n options,\n 'privateKey',\n RequestType.Sign,\n )\n\n if (secret instanceof Promise) {\n secret.catch(() => {}) // suppress rejection from async provider\n this.logger.warn(\n 'For async version of \"secretOrKeyProvider\", please use \"signAsync\".',\n )\n throw new Error()\n }\n\n const allowedSignOptKeys = ['secret', 'privateKey']\n const signOptKeys = Object.keys(signOptions)\n if (\n typeof payload === 'string' &&\n signOptKeys.some((k) => !allowedSignOptKeys.includes(k))\n ) {\n throw new Error(\n 'Payload as string is not allowed with the following sign options: ' +\n signOptKeys.join(', '),\n )\n }\n\n return jwt.sign(payload, secret, signOptions)\n }\n\n signAsync(\n payload: string,\n options?: Omit<JwtSignOptions, keyof jwt.SignOptions>,\n ): Promise<string>\n signAsync(payload: Buffer | object, options?: JwtSignOptions): Promise<string>\n signAsync(\n payload: string | Buffer | object,\n options: JwtSignOptions = {},\n ): Promise<string> {\n const signOptions = this.mergeJwtOptions(\n { ...options },\n 'signOptions',\n ) as jwt.SignOptions\n const secret = this.getSecretKey(\n payload,\n options,\n 'privateKey',\n RequestType.Sign,\n )\n\n const allowedSignOptKeys = ['secret', 'privateKey']\n const signOptKeys = Object.keys(signOptions)\n if (\n typeof payload === 'string' &&\n signOptKeys.some((k) => !allowedSignOptKeys.includes(k))\n ) {\n throw new Error(\n 'Payload as string is not allowed with the following sign options: ' +\n signOptKeys.join(', '),\n )\n }\n\n return new Promise((resolve, reject) =>\n Promise.resolve()\n .then(() => secret)\n .then((scrt: GetSecretKeyResult) => {\n jwt.sign(payload, scrt, signOptions, (err, encoded) =>\n err ? reject(err) : resolve(encoded as string),\n )\n }),\n )\n }\n\n verify<T extends object = any>(\n token: string,\n options: JwtVerifyOptions = {},\n ): T {\n const verifyOptions = this.mergeJwtOptions({ ...options }, 'verifyOptions')\n const secret = this.getSecretKey(\n token,\n options,\n 'publicKey',\n RequestType.Verify,\n )\n\n if (secret instanceof Promise) {\n secret.catch(() => {}) // suppress rejection from async provider\n this.logger.warn(\n 'For async version of \"secretOrKeyProvider\", please use \"verifyAsync\".',\n )\n throw new Error()\n }\n\n // @ts-expect-error We check it\n return jwt.verify(token, secret, verifyOptions) as unknown as T\n }\n\n verifyAsync<T extends object = any>(\n token: string,\n options: JwtVerifyOptions = {},\n ): Promise<T> {\n const verifyOptions = this.mergeJwtOptions({ ...options }, 'verifyOptions')\n const secret = this.getSecretKey(\n token,\n options,\n 'publicKey',\n RequestType.Verify,\n )\n\n return new Promise((resolve, reject) =>\n Promise.resolve()\n .then(() => secret)\n .then((scrt: GetSecretKeyResult) => {\n // @ts-expect-error We check it\n jwt.verify(token, scrt, verifyOptions, (err, decoded) =>\n err ? reject(err) : resolve(decoded as T),\n )\n })\n .catch(reject),\n )\n }\n\n decode<T = any>(token: string, options?: jwt.DecodeOptions): T {\n return jwt.decode(token, options) as T\n }\n\n private mergeJwtOptions(\n options: JwtVerifyOptions | JwtSignOptions,\n key: 'verifyOptions' | 'signOptions',\n ): VerifyOptions | SignOptions {\n delete options.secret\n if (key === 'signOptions') {\n delete (options as JwtSignOptions).privateKey\n } else {\n delete (options as JwtVerifyOptions).publicKey\n }\n return options\n ? {\n ...(this.options[key] || {}),\n ...options,\n }\n : // @ts-expect-error We check it\n this.options[key]\n }\n\n private getSecretKey(\n token: string | object | Buffer,\n options: JwtVerifyOptions | JwtSignOptions,\n key: 'publicKey' | 'privateKey',\n secretRequestType: RequestType,\n ): GetSecretKeyResult | Promise<GetSecretKeyResult> {\n const secret = this.options.secretOrKeyProvider\n ? this.options.secretOrKeyProvider(secretRequestType, token, options)\n : options?.secret ||\n this.options.secret ||\n (key === 'privateKey'\n ? (options as JwtSignOptions)?.privateKey || this.options.privateKey\n : (options as JwtVerifyOptions)?.publicKey ||\n this.options.publicKey) ||\n this.options[key]\n\n return secret as GetSecretKeyResult\n }\n}\n","import type { BoundInjectionToken, FactoryInjectionToken } from '@navios/core'\n\nimport { InjectionToken } from '@navios/core'\n\nimport type { JwtServiceOptions } from './options/jwt-service.options.mjs'\n\nimport { JwtService, JwtServiceToken } from './jwt.service.mjs'\nimport { JwtServiceOptionsSchema } from './options/jwt-service.options.mjs'\n\nexport function provideJwtService(\n config: JwtServiceOptions,\n): BoundInjectionToken<JwtService, typeof JwtServiceOptionsSchema>\nexport function provideJwtService(\n config: () => Promise<JwtServiceOptions>,\n): FactoryInjectionToken<JwtService, typeof JwtServiceOptionsSchema>\nexport function provideJwtService(\n config: JwtServiceOptions | (() => Promise<JwtServiceOptions>),\n):\n | BoundInjectionToken<JwtService, typeof JwtServiceOptionsSchema>\n | FactoryInjectionToken<JwtService, typeof JwtServiceOptionsSchema> {\n if (typeof config === 'function') {\n return InjectionToken.factory(JwtServiceToken, config)\n }\n return InjectionToken.bound(JwtServiceToken, config)\n}\n","import jwt from 'jsonwebtoken'\n\nexport * from './options/jwt-service.options.mjs'\nexport * from './jwt.service.mjs'\nexport * from './jwt-service.provider.mjs'\nexport const TokenExpiredError = jwt.TokenExpiredError\nexport const NotBeforeError = jwt.NotBeforeError\nexport const JsonWebTokenError = jwt.JsonWebTokenError\n"]}
|
package/lib/index.mjs
CHANGED
|
@@ -70,7 +70,11 @@ var SignOptionsSchema = z.object({
|
|
|
70
70
|
keyid: z.string().optional(),
|
|
71
71
|
expiresIn: z.union([z.string(), z.number()]).optional(),
|
|
72
72
|
notBefore: z.union([z.string(), z.number()]).optional(),
|
|
73
|
-
audience: z.union([
|
|
73
|
+
audience: z.union([
|
|
74
|
+
z.string(),
|
|
75
|
+
z.instanceof(RegExp),
|
|
76
|
+
z.array(z.union([z.string(), z.instanceof(RegExp)]))
|
|
77
|
+
]).optional(),
|
|
74
78
|
subject: z.string().optional(),
|
|
75
79
|
issuer: z.string().optional(),
|
|
76
80
|
jwtid: z.string().optional(),
|
|
@@ -83,7 +87,11 @@ var SignOptionsSchema = z.object({
|
|
|
83
87
|
});
|
|
84
88
|
var VerifyOptionsSchema = z.object({
|
|
85
89
|
algorithms: AlgorithmType.array().optional(),
|
|
86
|
-
audience: z.union([
|
|
90
|
+
audience: z.union([
|
|
91
|
+
z.string(),
|
|
92
|
+
z.instanceof(RegExp),
|
|
93
|
+
z.array(z.union([z.string(), z.instanceof(RegExp)]))
|
|
94
|
+
]).optional(),
|
|
87
95
|
clockTimestamp: z.number().optional(),
|
|
88
96
|
clockTolerance: z.number().optional(),
|
|
89
97
|
complete: z.boolean().optional(),
|