@navios/jwt 0.3.1 → 0.5.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/lib/index.js CHANGED
@@ -1,7 +1,7 @@
1
1
  'use strict';
2
2
 
3
3
  var jwt = require('jsonwebtoken');
4
- var zod = require('zod');
4
+ var v4 = require('zod/v4');
5
5
  var core = require('@navios/core');
6
6
 
7
7
  function _interopDefault (e) { return e && e.__esModule ? e : { default: e }; }
@@ -44,7 +44,7 @@ var RequestType = /* @__PURE__ */ ((RequestType2) => {
44
44
  RequestType2["Verify"] = "Verify";
45
45
  return RequestType2;
46
46
  })(RequestType || {});
47
- var AlgorithmType = zod.z.enum([
47
+ var AlgorithmType = v4.z.enum([
48
48
  "HS256",
49
49
  "HS384",
50
50
  "HS512",
@@ -59,79 +59,82 @@ var AlgorithmType = zod.z.enum([
59
59
  "PS512",
60
60
  "none"
61
61
  ]);
62
- var JwtHeaderSchema = zod.z.object({
63
- alg: AlgorithmType.or(zod.z.string()),
64
- typ: zod.z.string().optional(),
65
- cty: zod.z.string().optional(),
66
- crit: zod.z.string().array().optional(),
67
- kid: zod.z.string().optional(),
68
- jku: zod.z.string().optional(),
69
- x5u: zod.z.union([zod.z.string(), zod.z.array(zod.z.string())]).optional(),
70
- "x5t#S256": zod.z.string().optional(),
71
- x5t: zod.z.string().optional(),
72
- x5c: zod.z.union([zod.z.string(), zod.z.array(zod.z.string())]).optional()
62
+ var JwtHeaderSchema = v4.z.object({
63
+ alg: AlgorithmType.or(v4.z.string()),
64
+ typ: v4.z.string().optional(),
65
+ cty: v4.z.string().optional(),
66
+ crit: v4.z.string().array().optional(),
67
+ kid: v4.z.string().optional(),
68
+ jku: v4.z.string().optional(),
69
+ x5u: v4.z.union([v4.z.string(), v4.z.array(v4.z.string())]).optional(),
70
+ "x5t#S256": v4.z.string().optional(),
71
+ x5t: v4.z.string().optional(),
72
+ x5c: v4.z.union([v4.z.string(), v4.z.array(v4.z.string())]).optional()
73
73
  });
74
- var SignOptionsSchema = zod.z.object({
74
+ var SignOptionsSchema = v4.z.object({
75
75
  algorithm: AlgorithmType.optional(),
76
- keyid: zod.z.string().optional(),
77
- expiresIn: zod.z.union([zod.z.string(), zod.z.number()]).optional(),
78
- notBefore: zod.z.union([zod.z.string(), zod.z.number()]).optional(),
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)]))
76
+ keyid: v4.z.string().optional(),
77
+ expiresIn: v4.z.union([v4.z.string(), v4.z.number()]).optional(),
78
+ notBefore: v4.z.union([v4.z.string(), v4.z.number()]).optional(),
79
+ audience: v4.z.union([
80
+ v4.z.string(),
81
+ v4.z.instanceof(RegExp),
82
+ v4.z.array(v4.z.union([v4.z.string(), v4.z.instanceof(RegExp)]))
83
83
  ]).optional(),
84
- subject: zod.z.string().optional(),
85
- issuer: zod.z.string().optional(),
86
- jwtid: zod.z.string().optional(),
87
- mutatePayload: zod.z.boolean().optional(),
88
- noTimestamp: zod.z.boolean().optional(),
84
+ subject: v4.z.string().optional(),
85
+ issuer: v4.z.string().optional(),
86
+ jwtid: v4.z.string().optional(),
87
+ mutatePayload: v4.z.boolean().optional(),
88
+ noTimestamp: v4.z.boolean().optional(),
89
89
  header: JwtHeaderSchema.optional(),
90
- encoding: zod.z.string().optional(),
91
- allowInsecureKeySizes: zod.z.boolean().optional(),
92
- allowInvalidAsymmetricKeyTypes: zod.z.boolean().optional()
90
+ encoding: v4.z.string().optional(),
91
+ allowInsecureKeySizes: v4.z.boolean().optional(),
92
+ allowInvalidAsymmetricKeyTypes: v4.z.boolean().optional()
93
93
  });
94
- var VerifyOptionsSchema = zod.z.object({
94
+ var VerifyOptionsSchema = v4.z.object({
95
95
  algorithms: AlgorithmType.array().optional(),
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)]))
96
+ audience: v4.z.union([
97
+ v4.z.string(),
98
+ v4.z.instanceof(RegExp),
99
+ v4.z.array(v4.z.union([v4.z.string(), v4.z.instanceof(RegExp)]))
100
100
  ]).optional(),
101
- clockTimestamp: zod.z.number().optional(),
102
- clockTolerance: zod.z.number().optional(),
103
- complete: zod.z.boolean().optional(),
104
- issuer: zod.z.union([zod.z.string(), zod.z.string().array()]).optional(),
105
- ignoreExpiration: zod.z.boolean().optional(),
106
- ignoreNotBefore: zod.z.boolean().optional(),
107
- jwtid: zod.z.string().optional(),
108
- nonce: zod.z.string().optional(),
109
- subject: zod.z.string().optional(),
110
- maxAge: zod.z.union([zod.z.string(), zod.z.number()]).optional(),
111
- allowInvalidAsymmetricKeyTypes: zod.z.boolean().optional()
101
+ clockTimestamp: v4.z.number().optional(),
102
+ clockTolerance: v4.z.number().optional(),
103
+ complete: v4.z.boolean().optional(),
104
+ issuer: v4.z.union([v4.z.string(), v4.z.string().array()]).optional(),
105
+ ignoreExpiration: v4.z.boolean().optional(),
106
+ ignoreNotBefore: v4.z.boolean().optional(),
107
+ jwtid: v4.z.string().optional(),
108
+ nonce: v4.z.string().optional(),
109
+ subject: v4.z.string().optional(),
110
+ maxAge: v4.z.union([v4.z.string(), v4.z.number()]).optional(),
111
+ allowInvalidAsymmetricKeyTypes: v4.z.boolean().optional()
112
112
  });
113
- var SecretSchema = zod.z.union([
114
- zod.z.string(),
115
- zod.z.instanceof(Buffer),
116
- zod.z.object({
117
- type: zod.z.string()
113
+ var SecretSchema = v4.z.union([
114
+ v4.z.string(),
115
+ v4.z.instanceof(Buffer),
116
+ v4.z.object({
117
+ type: v4.z.string()
118
118
  }).passthrough(),
119
- zod.z.object({
120
- key: zod.z.union([zod.z.string(), zod.z.instanceof(Buffer)]),
121
- passphrase: zod.z.string()
119
+ v4.z.object({
120
+ key: v4.z.union([v4.z.string(), v4.z.instanceof(Buffer)]),
121
+ passphrase: v4.z.string()
122
122
  })
123
123
  ]);
124
- var JwtServiceOptionsSchema = zod.z.object({
124
+ var JwtServiceOptionsSchema = v4.z.object({
125
125
  signOptions: SignOptionsSchema.optional(),
126
- secret: zod.z.string().optional(),
127
- publicKey: zod.z.union([zod.z.string(), zod.z.instanceof(Buffer)]).optional(),
126
+ secret: v4.z.string().optional(),
127
+ publicKey: v4.z.union([v4.z.string(), v4.z.instanceof(Buffer)]).optional(),
128
128
  privateKey: SecretSchema.optional(),
129
129
  verifyOptions: VerifyOptionsSchema.optional(),
130
- secretOrKeyProvider: zod.z.function().args(
131
- zod.z.nativeEnum(RequestType),
132
- zod.z.any(),
133
- zod.z.union([SignOptionsSchema, VerifyOptionsSchema]).optional()
134
- ).returns(zod.z.union([SecretSchema, zod.z.promise(SecretSchema)])).optional()
130
+ secretOrKeyProvider: v4.z.function({
131
+ input: [
132
+ v4.z.enum(RequestType),
133
+ v4.z.any(),
134
+ v4.z.union([SignOptionsSchema, VerifyOptionsSchema]).optional()
135
+ ],
136
+ output: v4.z.union([SecretSchema, v4.z.promise(SecretSchema)])
137
+ }).optional()
135
138
  });
136
139
  var JwtServiceToken = core.InjectionToken.create(
137
140
  Symbol.for("JwtService"),
@@ -145,7 +148,7 @@ var _JwtService = class _JwtService {
145
148
  constructor(options = {}) {
146
149
  this.options = options;
147
150
  }
148
- logger = core.syncInject(core.Logger, {
151
+ logger = core.inject(core.Logger, {
149
152
  context: _JwtService.name
150
153
  });
151
154
  sign(payload, options = {}) {
@@ -253,7 +256,7 @@ var _JwtService = class _JwtService {
253
256
  delete options.publicKey;
254
257
  }
255
258
  return options ? {
256
- ...this.options[key] || {},
259
+ ...this.options[key],
257
260
  ...options
258
261
  } : (
259
262
  // @ts-expect-error We check it
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\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"]}
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","inject","Logger","jwt"],"mappings":"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","file":"index.js","sourcesContent":["import type { Secret as JwtSecret } from 'jsonwebtoken'\n\nimport { z } from 'zod/v4'\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 input: [\n z.enum(RequestType),\n z.any(),\n z.union([SignOptionsSchema, VerifyOptionsSchema]).optional(),\n ],\n output: z.union([SecretSchema, z.promise(SecretSchema)]),\n })\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 { inject, Injectable, InjectionToken, Logger } 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 = inject(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
@@ -1,6 +1,6 @@
1
1
  import jwt from 'jsonwebtoken';
2
- import { z } from 'zod';
3
- import { InjectionToken, Injectable, syncInject, Logger } from '@navios/core';
2
+ import { z } from 'zod/v4';
3
+ import { InjectionToken, Injectable, inject, Logger } from '@navios/core';
4
4
 
5
5
  var __create = Object.create;
6
6
  var __defProp = Object.defineProperty;
@@ -121,11 +121,14 @@ var JwtServiceOptionsSchema = z.object({
121
121
  publicKey: z.union([z.string(), z.instanceof(Buffer)]).optional(),
122
122
  privateKey: SecretSchema.optional(),
123
123
  verifyOptions: VerifyOptionsSchema.optional(),
124
- secretOrKeyProvider: z.function().args(
125
- z.nativeEnum(RequestType),
126
- z.any(),
127
- z.union([SignOptionsSchema, VerifyOptionsSchema]).optional()
128
- ).returns(z.union([SecretSchema, z.promise(SecretSchema)])).optional()
124
+ secretOrKeyProvider: z.function({
125
+ input: [
126
+ z.enum(RequestType),
127
+ z.any(),
128
+ z.union([SignOptionsSchema, VerifyOptionsSchema]).optional()
129
+ ],
130
+ output: z.union([SecretSchema, z.promise(SecretSchema)])
131
+ }).optional()
129
132
  });
130
133
  var JwtServiceToken = InjectionToken.create(
131
134
  Symbol.for("JwtService"),
@@ -139,7 +142,7 @@ var _JwtService = class _JwtService {
139
142
  constructor(options = {}) {
140
143
  this.options = options;
141
144
  }
142
- logger = syncInject(Logger, {
145
+ logger = inject(Logger, {
143
146
  context: _JwtService.name
144
147
  });
145
148
  sign(payload, options = {}) {
@@ -247,7 +250,7 @@ var _JwtService = class _JwtService {
247
250
  delete options.publicKey;
248
251
  }
249
252
  return options ? {
250
- ...this.options[key] || {},
253
+ ...this.options[key],
251
254
  ...options
252
255
  } : (
253
256
  // @ts-expect-error We check it
package/lib/index.mjs.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","InjectionToken","jwt"],"mappings":"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","file":"index.mjs","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"]}
1
+ {"version":3,"sources":["../src/options/jwt-service.options.mts","../src/jwt.service.mts","../src/jwt-service.provider.mts","../src/index.mts"],"names":["RequestType","InjectionToken","jwt"],"mappings":"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","file":"index.mjs","sourcesContent":["import type { Secret as JwtSecret } from 'jsonwebtoken'\n\nimport { z } from 'zod/v4'\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 input: [\n z.enum(RequestType),\n z.any(),\n z.union([SignOptionsSchema, VerifyOptionsSchema]).optional(),\n ],\n output: z.union([SecretSchema, z.promise(SecretSchema)]),\n })\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 { inject, Injectable, InjectionToken, Logger } 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 = inject(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/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@navios/jwt",
3
3
  "description": "JWT authentication and authorization for Navios",
4
- "version": "0.3.1",
4
+ "version": "0.5.0",
5
5
  "author": {
6
6
  "name": "Oleksandr Hanzha",
7
7
  "email": "alex@granted.name"
@@ -13,8 +13,8 @@
13
13
  },
14
14
  "license": "MIT",
15
15
  "peerDependencies": {
16
- "@navios/core": "^0.3.0",
17
- "zod": "^3.23.8"
16
+ "@navios/core": "^0.5.0",
17
+ "zod": "^3.25.0 || ^4.0.0"
18
18
  },
19
19
  "typings": "./lib/index.d.mts",
20
20
  "main": "./lib/index.js",
@@ -32,9 +32,9 @@
32
32
  }
33
33
  },
34
34
  "devDependencies": {
35
- "@navios/core": "^0.3.0",
35
+ "@navios/core": "^0.5.0",
36
36
  "@types/jsonwebtoken": "^9.0.10",
37
- "zod": "^3.25.76"
37
+ "zod": "^4.1.8"
38
38
  },
39
39
  "dependencies": {
40
40
  "jsonwebtoken": "^9.0.2"
package/project.json CHANGED
@@ -15,6 +15,14 @@
15
15
  "cwd": "packages/jwt"
16
16
  }
17
17
  },
18
+ "lint": {
19
+ "executor": "nx:run-commands",
20
+ "inputs": ["^projectSources", "project"],
21
+ "options": {
22
+ "command": "oxlint --fix",
23
+ "cwd": "packages/jwt"
24
+ }
25
+ },
18
26
  "test:ci": {
19
27
  "executor": "nx:run-commands",
20
28
  "inputs": ["^projectSources", "project"],
@@ -27,7 +35,7 @@
27
35
  "executor": "nx:run-commands",
28
36
  "inputs": ["projectSources"],
29
37
  "outputs": ["{projectRoot}/lib"],
30
- "dependsOn": ["check"],
38
+ "dependsOn": ["check", "lint"],
31
39
  "options": {
32
40
  "command": "tsup",
33
41
  "cwd": "packages/jwt"
@@ -1,4 +1,4 @@
1
- import { Injectable, InjectionToken, Logger, syncInject } from '@navios/core'
1
+ import { inject, Injectable, InjectionToken, Logger } from '@navios/core'
2
2
 
3
3
  import jwt from 'jsonwebtoken'
4
4
 
@@ -25,7 +25,7 @@ export const JwtServiceToken = InjectionToken.create(
25
25
  token: JwtServiceToken,
26
26
  })
27
27
  export class JwtService {
28
- logger = syncInject(Logger, {
28
+ logger = inject(Logger, {
29
29
  context: JwtService.name,
30
30
  })
31
31
 
@@ -182,7 +182,7 @@ export class JwtService {
182
182
  }
183
183
  return options
184
184
  ? {
185
- ...(this.options[key] || {}),
185
+ ...this.options[key],
186
186
  ...options,
187
187
  }
188
188
  : // @ts-expect-error We check it
@@ -1,6 +1,6 @@
1
1
  import type { Secret as JwtSecret } from 'jsonwebtoken'
2
2
 
3
- import { z } from 'zod'
3
+ import { z } from 'zod/v4'
4
4
 
5
5
  export enum RequestType {
6
6
  Sign = 'Sign',
@@ -110,13 +110,14 @@ export const JwtServiceOptionsSchema = z.object({
110
110
  privateKey: SecretSchema.optional(),
111
111
  verifyOptions: VerifyOptionsSchema.optional(),
112
112
  secretOrKeyProvider: z
113
- .function()
114
- .args(
115
- z.nativeEnum(RequestType),
116
- z.any(),
117
- z.union([SignOptionsSchema, VerifyOptionsSchema]).optional(),
118
- )
119
- .returns(z.union([SecretSchema, z.promise(SecretSchema)]))
113
+ .function({
114
+ input: [
115
+ z.enum(RequestType),
116
+ z.any(),
117
+ z.union([SignOptionsSchema, VerifyOptionsSchema]).optional(),
118
+ ],
119
+ output: z.union([SecretSchema, z.promise(SecretSchema)]),
120
+ })
120
121
  .optional(),
121
122
  })
122
123
 
@@ -1,3 +0,0 @@
1
- declare const _default: import("tsdown").UserConfig | import("tsdown").UserConfigFn;
2
- export default _default;
3
- //# sourceMappingURL=tsdown.config.d.mts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"tsdown.config.d.mts","sourceRoot":"","sources":["../tsdown.config.mts"],"names":[],"mappings":";AAEA,wBAQE"}
@@ -1,3 +0,0 @@
1
- declare const _default: import("tsup").Options | import("tsup").Options[] | ((overrideOptions: import("tsup").Options) => import("tsup").Options | import("tsup").Options[] | Promise<import("tsup").Options | import("tsup").Options[]>);
2
- export default _default;
3
- //# sourceMappingURL=tsup.config.d.mts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"tsup.config.d.mts","sourceRoot":"","sources":["../tsup.config.mts"],"names":[],"mappings":";AAEA,wBAQE"}
@@ -1,3 +0,0 @@
1
- declare const _default: import("vitest/config").UserWorkspaceConfig;
2
- export default _default;
3
- //# sourceMappingURL=vitest.config.d.mts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"vitest.config.d.mts","sourceRoot":"","sources":["../vitest.config.mts"],"names":[],"mappings":";AAEA,wBAME"}