vona-module-a-jwt 5.0.30 → 5.1.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.
Files changed (46) hide show
  1. package/LICENSE +0 -0
  2. package/dist/.metadata/index.d.ts +1 -0
  3. package/dist/.metadata/index.d.ts.map +1 -0
  4. package/dist/.metadata/this.d.ts +1 -0
  5. package/dist/.metadata/this.d.ts.map +1 -0
  6. package/dist/bean/bean.jwt.d.ts +2 -1
  7. package/dist/bean/bean.jwt.d.ts.map +1 -0
  8. package/dist/config/config.d.ts +1 -0
  9. package/dist/config/config.d.ts.map +1 -0
  10. package/dist/dto/jwtToken.d.ts +1 -0
  11. package/dist/dto/jwtToken.d.ts.map +1 -0
  12. package/dist/index.d.ts +1 -0
  13. package/dist/index.d.ts.map +1 -0
  14. package/dist/index.js +13 -3
  15. package/dist/index.js.map +1 -0
  16. package/dist/lib/authHeader.d.ts +1 -0
  17. package/dist/lib/authHeader.d.ts.map +1 -0
  18. package/dist/lib/checkErrorJwtExpired.d.ts +2 -0
  19. package/dist/lib/checkErrorJwtExpired.d.ts.map +1 -0
  20. package/dist/lib/const.d.ts +2 -0
  21. package/dist/lib/const.d.ts.map +1 -0
  22. package/dist/lib/index.d.ts +3 -0
  23. package/dist/lib/index.d.ts.map +1 -0
  24. package/dist/service/jwtClient.d.ts +2 -1
  25. package/dist/service/jwtClient.d.ts.map +1 -0
  26. package/dist/service/jwtExtract.d.ts +2 -1
  27. package/dist/service/jwtExtract.d.ts.map +1 -0
  28. package/dist/types/index.d.ts +1 -0
  29. package/dist/types/index.d.ts.map +1 -0
  30. package/dist/types/jwt.d.ts +1 -1
  31. package/dist/types/jwt.d.ts.map +1 -0
  32. package/package.json +21 -16
  33. package/src/.metadata/index.ts +146 -0
  34. package/src/.metadata/this.ts +2 -0
  35. package/src/bean/bean.jwt.ts +52 -0
  36. package/src/config/config.ts +47 -0
  37. package/src/dto/jwtToken.ts +20 -0
  38. package/src/index.ts +3 -0
  39. package/src/lib/authHeader.ts +7 -0
  40. package/src/lib/checkErrorJwtExpired.ts +8 -0
  41. package/src/lib/const.ts +1 -0
  42. package/src/lib/index.ts +3 -0
  43. package/src/service/jwtClient.ts +109 -0
  44. package/src/service/jwtExtract.ts +37 -0
  45. package/src/types/index.ts +1 -0
  46. package/src/types/jwt.ts +66 -0
package/LICENSE CHANGED
File without changes
@@ -107,3 +107,4 @@ declare module 'vona' {
107
107
  }
108
108
  }
109
109
  /** scope: end */
110
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/.metadata/index.ts"],"names":[],"mappings":"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"}
@@ -1,2 +1,3 @@
1
1
  export declare const __ThisModule__ = "a-jwt";
2
2
  export { ScopeModuleAJwt as ScopeModule } from './index.ts';
3
+ //# sourceMappingURL=this.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"this.d.ts","sourceRoot":"","sources":["../../src/.metadata/this.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,cAAc,UAAU,CAAC;AACtC,OAAO,EAAE,eAAe,IAAI,WAAW,EAAE,MAAM,YAAY,CAAC"}
@@ -1,6 +1,6 @@
1
1
  import type { IAuthenticateStrategyState } from 'vona-module-a-auth';
2
- import type { IJwtClientRecord, IJwtSignOptions, IJwtToken, IPayloadData } from '../types/jwt.ts';
3
2
  import { BeanBase } from 'vona';
3
+ import type { IJwtClientRecord, IJwtSignOptions, IJwtToken, IPayloadData } from '../types/jwt.ts';
4
4
  import { ServiceJwtClient } from '../service/jwtClient.ts';
5
5
  export declare class BeanJwt extends BeanBase {
6
6
  get(clientName?: keyof IJwtClientRecord): ServiceJwtClient;
@@ -11,3 +11,4 @@ export declare class BeanJwt extends BeanBase {
11
11
  createOauthCode(payloadData: IPayloadData, options?: IJwtSignOptions): Promise<string>;
12
12
  extractAuthTokenFromAllWays(): string | undefined;
13
13
  }
14
+ //# sourceMappingURL=bean.jwt.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bean.jwt.d.ts","sourceRoot":"","sources":["../../src/bean/bean.jwt.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,oBAAoB,CAAC;AAGrE,OAAO,EAAE,QAAQ,EAAE,MAAM,MAAM,CAAC;AAGhC,OAAO,KAAK,EAAE,gBAAgB,EAAE,eAAe,EAAE,SAAS,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAElG,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAE3D,qBACa,OAAQ,SAAQ,QAAQ;IACnC,GAAG,CAAC,UAAU,CAAC,EAAE,MAAM,gBAAgB;IAIjC,MAAM,CAAC,WAAW,EAAE,YAAY,EAAE,OAAO,CAAC,EAAE,eAAe,GAAG,OAAO,CAAC,SAAS,CAAC;IAgBhF,mBAAmB,CAAC,WAAW,EAAE,YAAY,EAAE,OAAO,CAAC,EAAE,eAAe;IAIxE,oBAAoB,CAAC,WAAW,EAAE,YAAY,EAAE,OAAO,CAAC,EAAE,eAAe;IAIzE,gBAAgB,CAAC,WAAW,EAAE,0BAA0B,EAAE,OAAO,CAAC,EAAE,eAAe;IAInF,eAAe,CAAC,WAAW,EAAE,YAAY,EAAE,OAAO,CAAC,EAAE,eAAe;IAI1E,2BAA2B;CAG5B"}
@@ -1,3 +1,4 @@
1
1
  import type { VonaApplication, VonaConfigEnv } from 'vona';
2
2
  import type { ConfigJwt } from '../types/jwt.ts';
3
3
  export declare function config(_app: VonaApplication, env: VonaConfigEnv): ConfigJwt;
4
+ //# sourceMappingURL=config.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/config/config.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,aAAa,EAAE,MAAM,MAAM,CAAC;AAE3D,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAEjD,wBAAgB,MAAM,CAAC,IAAI,EAAE,eAAe,EAAE,GAAG,EAAE,aAAa,GAyCzD,SAAS,CACf"}
@@ -7,3 +7,4 @@ export declare class DtoJwtToken implements IJwtToken {
7
7
  refreshToken: string;
8
8
  expiresIn: number;
9
9
  }
10
+ //# sourceMappingURL=jwtToken.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"jwtToken.d.ts","sourceRoot":"","sources":["../../src/dto/jwtToken.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,mBAAmB,CAAC;AAK9D,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAEjD,MAAM,WAAW,mBAAoB,SAAQ,oBAAoB;CAAG;AAEpE,qBACa,WAAY,YAAW,SAAS;IAE3C,WAAW,EAAE,MAAM,CAAC;IAGpB,YAAY,EAAE,MAAM,CAAC;IAGrB,SAAS,EAAE,MAAM,CAAC;CACnB"}
package/dist/index.d.ts CHANGED
@@ -1,3 +1,4 @@
1
1
  export * from './.metadata/index.ts';
2
2
  export * from './lib/index.ts';
3
3
  export * from './types/index.ts';
4
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,sBAAsB,CAAC;AACrC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,kBAAkB,CAAC"}
package/dist/index.js CHANGED
@@ -169,8 +169,10 @@ let ServiceJwtExtract = class ServiceJwtExtract extends BeanBase {
169
169
  fromQuery() {
170
170
  return this.ctx.request.query[this.scope.config.field.extract.query];
171
171
  }
172
- fromAuthHeaderWithScheme() {
173
- const headerValue = this.ctx.request.headers[this.scope.config.field.extract.headerAuth];
172
+ fromAuthHeaderWithScheme(headerValue) {
173
+ if (!headerValue) {
174
+ headerValue = this.ctx.request.headers[this.scope.config.field.extract.headerAuth];
175
+ }
174
176
  const auth = parseAuthHeader(headerValue);
175
177
  if (!auth || auth.scheme.toLocaleLowerCase() !== this.scope.config.field.extract.headerAuthScheme.toLocaleLowerCase()) return;
176
178
  return auth.value;
@@ -272,4 +274,12 @@ ScopeModuleAJwt = __decorate([Scope(), BeanInfo({
272
274
 
273
275
  const ErrorMessageJwtExpired = 'jwt expired';
274
276
 
275
- export { BeanJwt, DtoJwtToken, ErrorMessageJwtExpired, ScopeModuleAJwt, ServiceJwtClient, ServiceJwtExtract, config, parseAuthHeader };
277
+ // throw error only when ErrorMessageJwtExpired
278
+ function checkErrorJwtExpired(err, headers) {
279
+ if (err && err.message === ErrorMessageJwtExpired && (headers['x-vona-jwt-authtoken'] === true || headers['x-vona-jwt-authtoken'] === 'true')) {
280
+ throw err;
281
+ }
282
+ }
283
+
284
+ export { BeanJwt, DtoJwtToken, ErrorMessageJwtExpired, ScopeModuleAJwt, ServiceJwtClient, ServiceJwtExtract, checkErrorJwtExpired, config, parseAuthHeader };
285
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sources":["../src/service/jwtClient.ts","../src/bean/bean.jwt.ts","../src/lib/authHeader.ts","../src/service/jwtExtract.ts","../src/dto/jwtToken.ts","../src/config/config.ts","../src/.metadata/index.ts","../src/lib/const.ts","../src/lib/checkErrorJwtExpired.ts"],"sourcesContent":[null,null,null,null,null,null,null,null,null],"names":["ServiceJwtClient","BeanBase","constructor","args","_jwtInstance","_clientName","_clientOptions","instance","__init__","clientName","_createClient","configJwt","scope","config","configClient","clients","Error","secret","base","app","server","keys","deepExtend","jwt","fieldClient","field","payload","client","fieldPath","path","fieldData","data","sign","payloadData","options","res","error","catchError","_signInner","$loggerChild","debug","message","Promise","resolve","reject","signOptions","dev","Object","assign","expiresIn","refresh","temp","tempAuthToken","err","encoded","verify","token","service","jwtExtract","fromAllWays","_verifyInner","undefined","verifyOptions","decoded","cast","throw","_checkVerifyPath","pathTarget","pathReal","String","ctx","route","routePathRaw","Array","isArray","includes","__decorate","Service","__z_BeanInfo","module","BeanJwt","get","bean","_getBeanSelector","create","accessToken","refreshToken","access","Math","floor","ms","createTempAuthToken","createOauthAuthToken","createOauthState","createOauthCode","extractAuthTokenFromAllWays","Bean","re","parseAuthHeader","headerValue","matches","match","scheme","value","ServiceJwtExtract","fromHeader","extract","header","request","headers","fromQuery","query","fromAuthHeaderWithScheme","headerAuth","auth","toLocaleLowerCase","headerAuthScheme","fromCookie","cookies","cookie","DtoJwtToken","Api","prototype","Dto","_app","env","issuer","APP_NAME","oauth","oauthstate","code","ScopeModuleAJwt","BeanScopeBase","Scope","ErrorMessageJwtExpired","checkErrorJwtExpired"],"mappings":";;;;;;;;;AAQO,IAAMA,gBAAgB,GAAtB,MAAMA,gBAAiB,SAAQC,QAAQ,CAAA;AAAAC,EAAAA,WAAAA,CAAA,GAAAC,IAAA,EAAA;AAAA,IAAA,KAAA,CAAA,GAAAA,IAAA,CAAA;AAAA,IAAA,IAAA,CACpCC,YAAY,GAAA,MAAA;AAAA,IAAA,IAAA,CACZC,WAAW,GAAA,MAAA;AAAA,IAAA,IAAA,CACXC,cAAc,GAAA,MAAA;AAAA,EAAA;EAEtB,IAAIC,QAAQA,GAAA;IACV,OAAO,IAAI,CAACH,YAAY;AAC1B,EAAA;EAEUI,QAAQA,CAACC,UAAmC,EAAA;AACpD,IAAA,IAAI,CAACC,aAAa,CAACD,UAAU,CAAC;AAChC,EAAA;EAEQC,aAAaA,CAACD,UAAmC,EAAA;IACvDA,UAAU,GAAGA,UAAU,IAAI,QAAQ;AACnC,IAAA,MAAME,SAAS,GAAG,IAAI,CAACC,KAAK,CAACC,MAAM;AACnC,IAAA,MAAMC,YAAY,GAAGH,SAAS,CAACI,OAAO,CAACN,UAAU,CAAC;IAClD,IAAI,CAACK,YAAY,EAAE,MAAM,IAAIE,KAAK,CAAC,CAAA,sBAAA,EAAyBP,UAAU,CAAA,CAAE,CAAC;AACzE,IAAA,MAAMQ,MAAM,GAAGN,SAAS,CAACO,IAAI,CAACD,MAAM,IAAI,IAAI,CAACE,GAAG,CAACN,MAAM,CAACO,MAAM,CAACC,IAAI,CAAC,CAAC,CAAC;IACtE,IAAI,CAACf,cAAc,GAAGgB,UAAU,CAAC,EAAE,EAAEX,SAAS,CAACO,IAAI,EAAE;AAAED,MAAAA;KAAQ,EAAEH,YAAY,CAAC;IAC9E,IAAI,CAACT,WAAW,GAAGI,UAAU;IAC7B,IAAI,CAACL,YAAY,GAAGmB,GAAG;AACzB,EAAA;EAEA,IAAYC,WAAWA,GAAA;IACrB,OAAO,IAAI,CAACZ,KAAK,CAACC,MAAM,CAACY,KAAK,CAACC,OAAO,CAACC,MAAM;AAC/C,EAAA;EAEA,IAAYC,SAASA,GAAA;IACnB,OAAO,IAAI,CAAChB,KAAK,CAACC,MAAM,CAACY,KAAK,CAACC,OAAO,CAACG,IAAI;AAC7C,EAAA;EAEA,IAAYC,SAASA,GAAA;IACnB,OAAO,IAAI,CAAClB,KAAK,CAACC,MAAM,CAACY,KAAK,CAACC,OAAO,CAACK,IAAI;AAC7C,EAAA;AAEA,EAAA,MAAMC,IAAIA,CAACC,WAAyB,EAAEC,OAAyB,EAAA;IAC7D,MAAM,CAACC,GAAG,EAAEC,KAAK,CAAC,GAAG,MAAMC,UAAU,CAAC,MAAK;AACzC,MAAA,OAAO,IAAI,CAACC,UAAU,CAACL,WAAW,EAAEC,OAAO,CAAC;AAC9C,IAAA,CAAC,CAAC;IACF,IAAI,CAACK,YAAY,CAAC,KAAK,CAAC,CAACC,KAAK,CAAC,MAAM,CAAA,iBAAA,EAAoB,IAAI,CAACnC,WAAW,WAAW8B,GAAG,CAAA,EAAGC,KAAK,GAAG,CAAA,SAAA,EAAYA,KAAK,CAACK,OAAO,CAAA,CAAE,GAAG,EAAE,CAAA,CAAE,CAAC;IACrI,IAAIL,KAAK,EAAE,MAAMA,KAAK;AACtB,IAAA,OAAOD,GAAG;AACZ,EAAA;AAEQ,EAAA,MAAMG,UAAUA,CAACL,WAAyB,EAAEC,OAAyB,EAAA;AAC3E,IAAA,OAAO,IAAIQ,OAAO,CAAC,CAACC,OAAO,EAAEC,MAAM,KAAI;AACrC,MAAA,MAAMlB,OAAO,GAAgB;AAC3B,QAAA,CAAC,IAAI,CAACF,WAAW,GAAG,IAAI,CAACnB,WAAW;QACpC,CAAC,IAAI,CAACyB,SAAS,GAAGG;OACnB;AACD,MAAA,IAAIC,OAAO,EAAEL,IAAI,EAAEH,OAAO,CAAC,IAAI,CAACE,SAAS,CAAC,GAAGM,OAAO,CAACL,IAAI;AACzD,MAAA,IAAIgB,WAAW,GAAG,IAAI,CAACvC,cAAc,CAACuC,WAAW;MACjD,IAAIX,OAAO,EAAEY,GAAG,EAAE;QAChBD,WAAW,GAAGE,MAAM,CAACC,MAAM,CAAC,EAAE,EAAEH,WAAW,EAAE;AAAEI,UAAAA,SAAS,EAAE,IAAI,CAACrC,KAAK,CAACC,MAAM,CAACE,OAAO,CAACmC,OAAO,CAACL,WAAW,CAACI;AAAS,SAAE,CAAC;AACtH,MAAA;MACA,IAAIf,OAAO,EAAEiB,IAAI,EAAE;QACjBN,WAAW,GAAGE,MAAM,CAACC,MAAM,CAAC,EAAE,EAAEH,WAAW,EAAE;UAAEI,SAAS,EAAE,IAAI,CAACrC,KAAK,CAACC,MAAM,CAACuC,aAAa,CAACP,WAAW,CAACI;AAAS,SAAE,CAAC;AACpH,MAAA;AACA,MAAA,IAAI,CAAC7C,YAAY,CAAC4B,IAAI,CAACN,OAAO,EAAE,IAAI,CAACpB,cAAc,CAACW,MAAO,EAAE4B,WAAW,EAAE,CAACQ,GAAG,EAAEC,OAAO,KAAI;AACzF,QAAA,IAAID,GAAG,EAAE,OAAOT,MAAM,CAACS,GAAG,CAAC;QAC3BV,OAAO,CAACW,OAAQ,CAAC;AACnB,MAAA,CAAC,CAAC;AACJ,IAAA,CAAC,CAAC;AACJ,EAAA;AAEA,EAAA,MAAMC,MAAMA,CAACC,KAAc,EAAEtB,OAA2B,EAAA;IACtD,IAAI,CAACsB,KAAK,IAAI,IAAI,CAACnD,WAAW,KAAK,QAAQ,EAAEmD,KAAK,GAAG,IAAI,CAAC5C,KAAK,CAAC6C,OAAO,CAACC,UAAU,CAACC,WAAW,EAAE;IAChG,MAAM,CAACxB,GAAG,EAAEC,KAAK,CAAC,GAAG,MAAMC,UAAU,CAAC,MAAK;AACzC,MAAA,OAAO,IAAI,CAACuB,YAAY,CAACJ,KAAK,EAAEtB,OAAO,CAAC;AAC1C,IAAA,CAAC,CAAC;IACF,IAAI,CAACK,YAAY,CAAC,KAAK,CAAC,CAACC,KAAK,CAAC,MAAM,CAAA,mBAAA,EAAsB,IAAI,CAACnC,WAAW,WAAWmD,KAAK,CAAA,EAAGpB,KAAK,GAAG,CAAA,SAAA,EAAYA,KAAK,CAACK,OAAO,CAAA,CAAE,GAAG,EAAE,CAAA,CAAE,CAAC;IACzI,IAAIL,KAAK,EAAE,MAAMA,KAAK;AACtB,IAAA,OAAOD,GAAG;AACZ,EAAA;AAEQ,EAAA,MAAMyB,YAAYA,CAACJ,KAAc,EAAEtB,OAA2B,EAAA;AACpE,IAAA,IAAI,CAACsB,KAAK,EAAE,OAAOK,SAAS;AAC5B,IAAA,OAAO,IAAInB,OAAO,CAAC,CAACC,OAAO,EAAEC,MAAM,KAAI;MACrC,IAAI,CAACxC,YAAY,CAACmD,MAAM,CAACC,KAAK,EAAE,IAAI,CAAClD,cAAc,CAACW,MAAO,EAAE,IAAI,CAACX,cAAc,CAACwD,aAAa,EAAE,CAACT,GAAG,EAAEU,OAAO,KAAI;AAC/G,QAAA,IAAIV,GAAG,EAAE;UACP,OAAOT,MAAM,CAACS,GAAG,CAAC;AACpB,QAAA;AACA,QAAA,MAAM3B,OAAO,GAAGsC,IAAI,CAAcD,OAAO,CAAC;AAC1C;AACA,QAAA,IAAIrC,OAAO,CAAC,IAAI,CAACF,WAAW,CAAC,KAAK,IAAI,CAACnB,WAAW,EAAE,OAAO,IAAI,CAACc,GAAG,CAAC8C,KAAK,CAAC,GAAG,CAAC;AAC9E;QACA,IAAI,CAAC,IAAI,CAACC,gBAAgB,CAACxC,OAAO,CAAC,IAAI,CAACE,SAAS,CAAC,EAAEM,OAAO,EAAEL,IAAI,CAAC,EAAE,OAAO,IAAI,CAACV,GAAG,CAAC8C,KAAK,CAAC,GAAG,CAAC;AAC9F;AACAtB,QAAAA,OAAO,CAACjB,OAAO,CAAC,IAAI,CAACI,SAAS,CAAC,CAAC;AAClC,MAAA,CAAC,CAAC;AACJ,IAAA,CAAC,CAAC;AACJ,EAAA;AAEAoC,EAAAA,gBAAgBA,CAACC,UAAyC,EAAEC,QAA4B,EAAA;AACtF,IAAA,IAAI,CAACD,UAAU,EAAE,OAAO,IAAI;AAC5B,IAAA,MAAMtC,IAAI,GAAGuC,QAAQ,IAAIC,MAAM,CAAC,IAAI,CAACC,GAAG,CAACC,KAAK,CAACC,YAAY,CAAC;AAC5D,IAAA,IAAIC,KAAK,CAACC,OAAO,CAACP,UAAU,CAAC,IAAI,CAACA,UAAU,CAACQ,QAAQ,CAAC9C,IAAI,CAAC,EAAE,OAAO,KAAK;IACzE,OAAOsC,UAAU,KAAKtC,IAAI;AAC5B,EAAA;;AAnGW7B,gBAAgB,GAAA4E,UAAA,CAAA,CAD5BC,OAAO,EAAE,EAAAC,QAAA,CAAA;EAAAC,MAAA,EAAA;AAAA,CAAA,CAAA,CACG,EAAA/E,gBAAgB,CAoG5B;;ACjGM,IAAMgF,OAAO,GAAb,MAAMA,OAAQ,SAAQ/E,QAAQ,CAAA;EACnCgF,GAAGA,CAACxE,UAAmC,EAAA;IACrC,OAAO,IAAI,CAACU,GAAG,CAAC+D,IAAI,CAACC,gBAAgB,CAACnF,gBAAgB,EAAES,UAAU,CAAC;AACrE,EAAA;AAEA,EAAA,MAAM2E,MAAMA,CAACnD,WAAyB,EAAEC,OAAyB,EAAA;AAC/D;AACA,IAAA,MAAMmD,WAAW,GAAG,MAAM,IAAI,CAACJ,GAAG,CAAC,QAAQ,CAAC,CAACjD,IAAI,CAACC,WAAW,EAAEC,OAAO,CAAC;AACvE;AACA,IAAA,MAAMoD,YAAY,GAAG,MAAM,IAAI,CAACL,GAAG,CAAC,SAAS,CAAC,CAACjD,IAAI,CAACC,WAAW,EAAEC,OAAO,CAAC;AACzE;AACA,IAAA,IAAIe,SAAS,GAAG,IAAI,CAACrC,KAAK,CAACC,MAAM,CAACE,OAAO,CAACwE,MAAM,CAAC1C,WAAW,CAACI,SAAU;AACvE,IAAA,IAAI,OAAOA,SAAS,KAAK,QAAQ,EAAEA,SAAS,GAAGuC,IAAI,CAACC,KAAK,CAACC,EAAE,CAACzC,SAAS,CAAC,GAAG,IAAI,CAAC;AAC/E;IACA,OAAO;MACLoC,WAAW;MACXC,YAAY;AACZrC,MAAAA;KACD;AACH,EAAA;AAEA,EAAA,MAAM0C,mBAAmBA,CAAC1D,WAAyB,EAAEC,OAAyB,EAAA;IAC5E,OAAO,MAAM,IAAI,CAAC+C,GAAG,CAAC,QAAQ,CAAC,CAACjD,IAAI,CAACC,WAAW,EAAEc,MAAM,CAACC,MAAM,CAAC,EAAE,EAAEd,OAAO,EAAE;AAAEiB,MAAAA,IAAI,EAAE;AAAI,KAAE,CAAC,CAAC;AAC/F,EAAA;AAEA,EAAA,MAAMyC,oBAAoBA,CAAC3D,WAAyB,EAAEC,OAAyB,EAAA;AAC7E,IAAA,OAAO,MAAM,IAAI,CAAC+C,GAAG,CAAC,OAAO,CAAC,CAACjD,IAAI,CAACC,WAAW,EAAEC,OAAO,CAAC;AAC3D,EAAA;AAEA,EAAA,MAAM2D,gBAAgBA,CAAC5D,WAAuC,EAAEC,OAAyB,EAAA;AACvF,IAAA,OAAO,MAAM,IAAI,CAAC+C,GAAG,CAAC,YAAY,CAAC,CAACjD,IAAI,CAACC,WAA2B,EAAEC,OAAO,CAAC;AAChF,EAAA;AAEA,EAAA,MAAM4D,eAAeA,CAAC7D,WAAyB,EAAEC,OAAyB,EAAA;AACxE,IAAA,OAAO,MAAM,IAAI,CAAC+C,GAAG,CAAC,MAAM,CAAC,CAACjD,IAAI,CAACC,WAAW,EAAEC,OAAO,CAAC;AAC1D,EAAA;AAEA6D,EAAAA,2BAA2BA,GAAA;IACzB,OAAO,IAAI,CAACnF,KAAK,CAAC6C,OAAO,CAACC,UAAU,CAACC,WAAW,EAAE;AACpD,EAAA;;AAvCWqB,OAAO,GAAAJ,UAAA,CAAA,CADnBoB,IAAI,EAAE,EAAAlB,QAAA,CAAA;EAAAC,MAAA,EAAA;AAAA,CAAA,CAAA,CACM,EAAAC,OAAO,CAwCnB;;ACnDD,MAAMiB,EAAE,GAAG,eAAe;AAEpB,SAAUC,eAAeA,CAACC,WAAiB,EAAA;AAC/C,EAAA,IAAI,OAAOA,WAAW,KAAK,QAAQ,EAAE;AACrC,EAAA,MAAMC,OAAO,GAAGD,WAAW,CAACE,KAAK,CAACJ,EAAE,CAAC;AACrC,EAAA,OAAOG,OAAO,IAAI;AAAEE,IAAAA,MAAM,EAAEF,OAAO,CAAC,CAAC,CAAC;IAAEG,KAAK,EAAEH,OAAO,CAAC,CAAC;GAAG;AAC7D;;ACAO,IAAMI,iBAAiB,GAAvB,MAAMA,iBAAkB,SAAQvG,QAAQ,CAAA;AAC7CwG,EAAAA,UAAUA,GAAA;AACR,IAAA,IAAI,CAAC,IAAI,CAAC7F,KAAK,CAACC,MAAM,CAACY,KAAK,CAACiF,OAAO,CAACC,MAAM,EAAE;AAC7C,IAAA,OAAO,IAAI,CAACrC,GAAG,CAACsC,OAAO,CAACC,OAAO,CAAC,IAAI,CAACjG,KAAK,CAACC,MAAM,CAACY,KAAK,CAACiF,OAAO,CAACC,MAAM,CAAuB;AAC/F,EAAA;AAEAG,EAAAA,SAASA,GAAA;AACP,IAAA,OAAO,IAAI,CAACxC,GAAG,CAACsC,OAAO,CAACG,KAAK,CAAC,IAAI,CAACnG,KAAK,CAACC,MAAM,CAACY,KAAK,CAACiF,OAAO,CAACK,KAAK,CAAC;AACtE,EAAA;EAEAC,wBAAwBA,CAACb,WAAoB,EAAA;IAC3C,IAAI,CAACA,WAAW,EAAE;MAChBA,WAAW,GAAG,IAAI,CAAC7B,GAAG,CAACsC,OAAO,CAACC,OAAO,CAAC,IAAI,CAACjG,KAAK,CAACC,MAAM,CAACY,KAAK,CAACiF,OAAO,CAACO,UAAU,CAAuB;AAC1G,IAAA;AACA,IAAA,MAAMC,IAAI,GAAGhB,eAAe,CAACC,WAAW,CAAC;IACzC,IAAI,CAACe,IAAI,IAAIA,IAAI,CAACZ,MAAM,CAACa,iBAAiB,EAAE,KAAK,IAAI,CAACvG,KAAK,CAACC,MAAM,CAACY,KAAK,CAACiF,OAAO,CAACU,gBAAgB,CAACD,iBAAiB,EAAE,EAAE;IACvH,OAAOD,IAAI,CAACX,KAAK;AACnB,EAAA;AAEAc,EAAAA,UAAUA,GAAA;AACR,IAAA,OAAO,IAAI,CAAC/C,GAAG,CAACgD,OAAO,CAACrC,GAAG,CAAC,IAAI,CAACrE,KAAK,CAACC,MAAM,CAACY,KAAK,CAACiF,OAAO,CAACa,MAAM,CAAC;AACrE,EAAA;AAEA5D,EAAAA,WAAWA,GAAA;AACT,IAAA,IAAIH,KAAK,GAAuB,IAAI,CAACsD,SAAS,EAAE;IAChD,IAAI,CAACtD,KAAK,EAAEA,KAAK,GAAG,IAAI,CAACwD,wBAAwB,EAAE;IACnD,IAAI,CAACxD,KAAK,EAAEA,KAAK,GAAG,IAAI,CAACiD,UAAU,EAAE;IACrC,IAAI,CAACjD,KAAK,EAAEA,KAAK,GAAG,IAAI,CAAC6D,UAAU,EAAE;AACrC,IAAA,OAAO7D,KAAK;AACd,EAAA;;AA7BWgD,iBAAiB,GAAA5B,UAAA,CAAA,CAD7BC,OAAO,EAAE,EAAAC,QAAA,CAAA;EAAAC,MAAA,EAAA;AAAA,CAAA,CAAA,CACG,EAAAyB,iBAAiB,CA8B7B;;AC1BM,IAAMgB,WAAW,GAAjB,MAAMA,WAAW,CAAA;EAAAtH,WAAAA,GAAA;AAAA,IAAA,IAAA,CAEtBmF,WAAW,GAAA,MAAA;AAAA,IAAA,IAAA,CAGXC,YAAY,GAAA,MAAA;AAAA,IAAA,IAAA,CAGZrC,SAAS,GAAA,MAAA;AAAA,EAAA;;AANT2B,UAAA,CAAA,CADC6C,GAAG,CAAChG,KAAK,EAAE,oCACQ,EAAA+F,WAAA,CAAAE,SAAA,EAAA,aAAA,EAAA,MAAA,CAAA;AAGpB9C,UAAA,CAAA,CADC6C,GAAG,CAAChG,KAAK,EAAE,oCACS,EAAA+F,WAAA,CAAAE,SAAA,EAAA,cAAA,EAAA,MAAA,CAAA;AAGrB9C,UAAA,CAAA,CADC6C,GAAG,CAAChG,KAAK,EAAE,oCACM,EAAA+F,WAAA,CAAAE,SAAA,EAAA,WAAA,EAAA,MAAA,CAAA;AARPF,WAAW,GAAA5C,UAAA,CAAA,CADvB+C,GAAG,EAAuB,EAAA7C,QAAA,CAAA;EAAAC,MAAA,EAAA;AAAA,CAAA,CAAA,CACd,EAAAyC,WAAW,CASvB;;ACfK,SAAU3G,MAAMA,CAAC+G,IAAqB,EAAEC,GAAkB,EAAA;EAC9D,OAAO;AACLpG,IAAAA,KAAK,EAAE;AACLC,MAAAA,OAAO,EAAE;AACPC,QAAAA,MAAM,EAAE,QAAQ;AAChBE,QAAAA,IAAI,EAAE,MAAM;AACZE,QAAAA,IAAI,EAAE;OACP;AACD2E,MAAAA,OAAO,EAAE;AACPC,QAAAA,MAAM,EAAE,EAAE;AACVM,QAAAA,UAAU,EAAE,eAAe;AAC3BG,QAAAA,gBAAgB,EAAE,QAAQ;AAC1BL,QAAAA,KAAK,EAAE,YAAY;AACnBQ,QAAAA,MAAM,EAAE;AACT;KACF;AACDnE,IAAAA,aAAa,EAAE;AACbP,MAAAA,WAAW,EAAE;QAAEI,SAAS,EAAE,EAAE,GAAG;AAAE;KAClC;AACD/B,IAAAA,IAAI,EAAE;AACJD,MAAAA,MAAM,EAAE4C,SAAS;AACjBhB,MAAAA,WAAW,EAAE;QAAEiF,MAAM,EAAED,GAAG,CAACE;OAAU;AACrCjE,MAAAA,aAAa,EAAE;QAAEgE,MAAM,EAAED,GAAG,CAACE;AAAQ;KACtC;AACDhH,IAAAA,OAAO,EAAE;AACPwE,MAAAA,MAAM,EAAE;AACN1C,QAAAA,WAAW,EAAE;AAAEI,UAAAA,SAAS,EAAE,CAAC,GAAG,EAAE,GAAG;AAAE;OACtC;AACDC,MAAAA,OAAO,EAAE;AACPL,QAAAA,WAAW,EAAE;AAAEI,UAAAA,SAAS,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG;AAAE;OAC3C;AACD+E,MAAAA,KAAK,EAAE;AACLnF,QAAAA,WAAW,EAAE;UAAEI,SAAS,EAAE,CAAC,GAAG;AAAE;OACjC;AACDgF,MAAAA,UAAU,EAAE;AACVpF,QAAAA,WAAW,EAAE;UAAEI,SAAS,EAAE,CAAC,GAAG;AAAE;OACjC;AACDiF,MAAAA,IAAI,EAAE;AACJrF,QAAAA,WAAW,EAAE;UAAEI,SAAS,EAAE,CAAC,GAAG;AAAE;AACjC;AACF;GACW;AAChB;;ACyEO,IAAMkF,eAAe,GAArB,MAAMA,eAAgB,SAAQC,aAAa,CAAA;AAArCD,eAAe,GAAAvD,UAAA,CAAA,CAD3ByD,KAAK,EAAE,EAAAvD,QAAA,CAAA;EAAAC,MAAA,EAAA;AAAA,CAAA,CAAA,CACK,EAAAoD,eAAe,CAAyB;AA0BrD;;ACjJO,MAAMG,sBAAsB,GAAG;;ACEtC;AACM,SAAUC,oBAAoBA,CAAClF,GAAsB,EAAEwD,OAAY,EAAA;EACvE,IAAIxD,GAAG,IAAIA,GAAG,CAACZ,OAAO,KAAK6F,sBAAsB,KAAKzB,OAAO,CAAC,sBAAsB,CAAC,KAAK,IAAI,IAAIA,OAAO,CAAC,sBAAsB,CAAC,KAAK,MAAM,CAAC,EAAE;AAC7I,IAAA,MAAMxD,GAAG;AACX,EAAA;AACF;;;;"}
@@ -2,3 +2,4 @@ export declare function parseAuthHeader(headerValue?: any): {
2
2
  scheme: string;
3
3
  value: string;
4
4
  } | null | undefined;
5
+ //# sourceMappingURL=authHeader.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"authHeader.d.ts","sourceRoot":"","sources":["../../src/lib/authHeader.ts"],"names":[],"mappings":"AAEA,wBAAgB,eAAe,CAAC,WAAW,CAAC,EAAE,GAAG;;;qBAIhD"}
@@ -0,0 +1,2 @@
1
+ export declare function checkErrorJwtExpired(err: Error | undefined, headers: any): void;
2
+ //# sourceMappingURL=checkErrorJwtExpired.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"checkErrorJwtExpired.d.ts","sourceRoot":"","sources":["../../src/lib/checkErrorJwtExpired.ts"],"names":[],"mappings":"AAGA,wBAAgB,oBAAoB,CAAC,GAAG,EAAE,KAAK,GAAG,SAAS,EAAE,OAAO,EAAE,GAAG,QAIxE"}
@@ -0,0 +1,2 @@
1
+ export declare const ErrorMessageJwtExpired = "jwt expired";
2
+ //# sourceMappingURL=const.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"const.d.ts","sourceRoot":"","sources":["../../src/lib/const.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,sBAAsB,gBAAgB,CAAC"}
@@ -1 +1,4 @@
1
1
  export * from './authHeader.ts';
2
+ export * from './checkErrorJwtExpired.ts';
3
+ export * from './const.ts';
4
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/lib/index.ts"],"names":[],"mappings":"AAAA,cAAc,iBAAiB,CAAC;AAChC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,YAAY,CAAC"}
@@ -1,6 +1,6 @@
1
- import type { IJwtClientRecord, IJwtSignOptions, IJwtVerifyOptions, IPayloadData } from '../types/jwt.ts';
2
1
  import jwt from 'jsonwebtoken';
3
2
  import { BeanBase } from 'vona';
3
+ import type { IJwtClientRecord, IJwtSignOptions, IJwtVerifyOptions, IPayloadData } from '../types/jwt.ts';
4
4
  export declare class ServiceJwtClient extends BeanBase {
5
5
  private _jwtInstance;
6
6
  private _clientName;
@@ -17,3 +17,4 @@ export declare class ServiceJwtClient extends BeanBase {
17
17
  private _verifyInner;
18
18
  _checkVerifyPath(pathTarget: string | string[] | undefined, pathReal: string | undefined): boolean;
19
19
  }
20
+ //# sourceMappingURL=jwtClient.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"jwtClient.d.ts","sourceRoot":"","sources":["../../src/service/jwtClient.ts"],"names":[],"mappings":"AACA,OAAO,GAAG,MAAM,cAAc,CAAC;AAC/B,OAAO,EAAE,QAAQ,EAAoB,MAAM,MAAM,CAAC;AAGlD,OAAO,KAAK,EAAqB,gBAAgB,EAAe,eAAe,EAAE,iBAAiB,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAE1I,qBACa,gBAAiB,SAAQ,QAAQ;IAC5C,OAAO,CAAC,YAAY,CAAa;IACjC,OAAO,CAAC,WAAW,CAAyB;IAC5C,OAAO,CAAC,cAAc,CAAoB;IAE1C,IAAI,QAAQ,IAAI,OAAO,GAAG,CAEzB;IAED,SAAS,CAAC,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,gBAAgB;IAItD,OAAO,CAAC,aAAa;IAWrB,OAAO,KAAK,WAAW,GAEtB;IAED,OAAO,KAAK,SAAS,GAEpB;IAED,OAAO,KAAK,SAAS,GAEpB;IAEK,IAAI,CAAC,WAAW,EAAE,YAAY,EAAE,OAAO,CAAC,EAAE,eAAe,GAAG,OAAO,CAAC,MAAM,CAAC;YASnE,UAAU;IAqBlB,MAAM,CAAC,KAAK,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,iBAAiB,GAAG,OAAO,CAAC,YAAY,GAAG,SAAS,CAAC;YAU9E,YAAY;IAkB1B,gBAAgB,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM,EAAE,GAAG,SAAS,EAAE,QAAQ,EAAE,MAAM,GAAG,SAAS;CAMzF"}
@@ -2,7 +2,8 @@ import { BeanBase } from 'vona';
2
2
  export declare class ServiceJwtExtract extends BeanBase {
3
3
  fromHeader(): string | undefined;
4
4
  fromQuery(): string;
5
- fromAuthHeaderWithScheme(): string | undefined;
5
+ fromAuthHeaderWithScheme(headerValue?: string): string | undefined;
6
6
  fromCookie(): string | undefined;
7
7
  fromAllWays(): string | undefined;
8
8
  }
9
+ //# sourceMappingURL=jwtExtract.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"jwtExtract.d.ts","sourceRoot":"","sources":["../../src/service/jwtExtract.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,MAAM,CAAC;AAKhC,qBACa,iBAAkB,SAAQ,QAAQ;IAC7C,UAAU,IAAI,MAAM,GAAG,SAAS;IAKhC,SAAS;IAIT,wBAAwB,CAAC,WAAW,CAAC,EAAE,MAAM;IAS7C,UAAU;IAIV,WAAW;CAOZ"}
@@ -1 +1,2 @@
1
1
  export * from './jwt.ts';
2
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":"AAAA,cAAc,UAAU,CAAC"}
@@ -1,7 +1,6 @@
1
1
  import type { SignOptions, VerifyOptions } from 'jsonwebtoken';
2
2
  import type { StringValue } from 'ms';
3
3
  import 'vona';
4
- export declare const ErrorMessageJwtExpired = "jwt expired";
5
4
  export interface IJwtToken {
6
5
  accessToken: string;
7
6
  refreshToken: string;
@@ -59,3 +58,4 @@ declare module 'vona' {
59
58
  jwt: never;
60
59
  }
61
60
  }
61
+ //# sourceMappingURL=jwt.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"jwt.d.ts","sourceRoot":"","sources":["../../src/types/jwt.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAC/D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,IAAI,CAAC;AAEtC,OAAO,MAAM,CAAC;AAEd,MAAM,WAAW,SAAS;IACxB,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,MAAM,CAAC;IACrB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,gBAAgB;IAC/B,MAAM,EAAE,KAAK,CAAC;IACd,OAAO,EAAE,KAAK,CAAC;IACf,KAAK,EAAE,KAAK,CAAC;IACb,UAAU,EAAE,KAAK,CAAC;IAClB,IAAI,EAAE,KAAK,CAAC;CACb;AAED,MAAM,WAAW,eAAe;IAC9B,IAAI,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;IACzB,GAAG,CAAC,EAAE,OAAO,CAAC;IACd,IAAI,CAAC,EAAE,OAAO,CAAC;CAChB;AAED,MAAM,WAAW,iBAAiB;IAChC,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,iBAAiB;IAChC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,WAAW,CAAC;IACzB,aAAa,CAAC,EAAE,aAAa,CAAC;CAC/B;AAED,MAAM,WAAW,SAAS;IACxB,KAAK,EAAE;QACL,OAAO,EAAE;YACP,MAAM,EAAE,MAAM,CAAC;YACf,IAAI,EAAE,MAAM,CAAC;YACb,IAAI,EAAE,MAAM,CAAC;SACd,CAAC;QACF,OAAO,EAAE;YACP,MAAM,EAAE,MAAM,CAAC;YACf,UAAU,EAAE,MAAM,CAAC;YACnB,gBAAgB,EAAE,MAAM,CAAC;YACzB,KAAK,EAAE,MAAM,CAAC;YACd,MAAM,EAAE,MAAM,CAAC;SAChB,CAAC;KACH,CAAC;IACF,aAAa,EAAE;QACb,WAAW,EAAE;YAAE,SAAS,EAAE,WAAW,GAAG,MAAM,CAAA;SAAE,CAAC;KAClD,CAAC;IACF,IAAI,EAAE,iBAAiB,CAAC;IACxB,OAAO,EAAE,MAAM,CAAC,MAAM,gBAAgB,EAAE,iBAAiB,CAAC,CAAC;CAC5D;AAED,MAAM,WAAW,YAAY;CAAG;AAEhC,MAAM,WAAW,WAAW;CAAG;AAE/B,OAAO,QAAQ,MAAM,CAAC;IACpB,UAAiB,kBAAkB;QACjC,GAAG,EAAE,KAAK,CAAC;KACZ;CACF"}
package/package.json CHANGED
@@ -1,16 +1,17 @@
1
1
  {
2
2
  "name": "vona-module-a-jwt",
3
- "type": "module",
4
- "version": "5.0.30",
5
- "title": "a-jwt",
6
- "vonaModule": {
7
- "dependencies": {}
8
- },
3
+ "version": "5.1.1",
9
4
  "description": "",
10
- "author": "",
11
5
  "keywords": [
12
6
  "Vona Module"
13
7
  ],
8
+ "author": "",
9
+ "files": [
10
+ "assets",
11
+ "dist",
12
+ "src"
13
+ ],
14
+ "type": "module",
14
15
  "exports": {
15
16
  ".": {
16
17
  "types": [
@@ -21,10 +22,13 @@
21
22
  },
22
23
  "./package.json": "./package.json"
23
24
  },
24
- "files": [
25
- "assets",
26
- "dist"
27
- ],
25
+ "scripts": {
26
+ "clean": "rimraf dist tsconfig.build.tsbuildinfo",
27
+ "tsc:publish": "npm run clean && vona :bin:buildModule --sourcemap && tsc -p tsconfig.build.json",
28
+ "prepublishOnly": "npm run tsc:publish",
29
+ "prepack": "clean-package",
30
+ "postpack": "clean-package restore && npm run clean"
31
+ },
28
32
  "dependencies": {
29
33
  "@types/jsonwebtoken": "^9.0.10",
30
34
  "@types/ms": "^2.1.0",
@@ -35,8 +39,9 @@
35
39
  "clean-package": "^2.2.0",
36
40
  "rimraf": "^6.0.1"
37
41
  },
38
- "scripts": {
39
- "clean": "rimraf dist tsconfig.build.tsbuildinfo",
40
- "tsc:publish": "npm run clean && vona :bin:buildModule && tsc -p tsconfig.build.json"
41
- }
42
- }
42
+ "title": "a-jwt",
43
+ "vonaModule": {
44
+ "dependencies": {}
45
+ },
46
+ "gitHead": "991189da4443b789fcf77872990b901ccf43bccb"
47
+ }
@@ -0,0 +1,146 @@
1
+ // eslint-disable
2
+ import type { TypeSymbolKeyFieldsMore } from 'vona-module-a-orm';
3
+ import type { TypeEntityOptionsFields } from 'vona-module-a-openapi';
4
+ /** bean: begin */
5
+ export * from '../bean/bean.jwt.ts';
6
+
7
+ import 'vona';
8
+ declare module 'vona' {
9
+
10
+
11
+ }
12
+ declare module 'vona-module-a-jwt' {
13
+
14
+ export interface BeanJwt {
15
+ /** @internal */
16
+ get scope(): ScopeModuleAJwt;
17
+ }
18
+ }
19
+ /** bean: end */
20
+ /** bean: begin */
21
+ import type { BeanJwt } from '../bean/bean.jwt.ts';
22
+ import 'vona';
23
+ declare module 'vona' {
24
+ export interface IBeanRecordGlobal {
25
+ 'jwt': BeanJwt;
26
+ }
27
+ }
28
+ /** bean: end */
29
+ /** service: begin */
30
+ export * from '../service/jwtClient.ts';
31
+ export * from '../service/jwtExtract.ts';
32
+
33
+ import 'vona-module-a-bean';
34
+ declare module 'vona-module-a-bean' {
35
+
36
+ export interface IServiceRecord {
37
+ 'a-jwt:jwtClient': never;
38
+ 'a-jwt:jwtExtract': never;
39
+ }
40
+
41
+
42
+ }
43
+ declare module 'vona-module-a-jwt' {
44
+
45
+ export interface ServiceJwtClient {
46
+ /** @internal */
47
+ get scope(): ScopeModuleAJwt;
48
+ }
49
+
50
+ export interface ServiceJwtClient {
51
+ get $beanFullName(): 'a-jwt.service.jwtClient';
52
+ get $onionName(): 'a-jwt:jwtClient';
53
+
54
+ }
55
+
56
+ export interface ServiceJwtExtract {
57
+ /** @internal */
58
+ get scope(): ScopeModuleAJwt;
59
+ }
60
+
61
+ export interface ServiceJwtExtract {
62
+ get $beanFullName(): 'a-jwt.service.jwtExtract';
63
+ get $onionName(): 'a-jwt:jwtExtract';
64
+
65
+ }
66
+ }
67
+ /** service: end */
68
+ /** service: begin */
69
+ import type { ServiceJwtClient } from '../service/jwtClient.ts';
70
+ import type { ServiceJwtExtract } from '../service/jwtExtract.ts';
71
+ export interface IModuleService {
72
+ 'jwtClient': ServiceJwtClient;
73
+ 'jwtExtract': ServiceJwtExtract;
74
+ }
75
+ /** service: end */
76
+ /** service: begin */
77
+
78
+ import 'vona';
79
+ declare module 'vona' {
80
+ export interface IBeanRecordGeneral {
81
+ 'a-jwt.service.jwtClient': ServiceJwtClient;
82
+ 'a-jwt.service.jwtExtract': ServiceJwtExtract;
83
+ }
84
+ }
85
+ /** service: end */
86
+ /** dto: begin */
87
+ export * from '../dto/jwtToken.ts';
88
+ import type { IDtoOptionsJwtToken } from '../dto/jwtToken.ts';
89
+ import 'vona-module-a-web';
90
+ declare module 'vona-module-a-web' {
91
+
92
+ export interface IDtoRecord {
93
+ 'a-jwt:jwtToken': IDtoOptionsJwtToken;
94
+ }
95
+
96
+
97
+ }
98
+ declare module 'vona-module-a-jwt' {
99
+
100
+ }
101
+ /** dto: end */
102
+ /** dto: begin */
103
+ import type { DtoJwtToken } from '../dto/jwtToken.ts';
104
+ declare module 'vona-module-a-jwt' {
105
+
106
+ export interface IDtoOptionsJwtToken {
107
+ fields?: TypeEntityOptionsFields<DtoJwtToken, IDtoOptionsJwtToken[TypeSymbolKeyFieldsMore]>;
108
+ }
109
+ }
110
+ /** dto: end */
111
+ /** config: begin */
112
+ export * from '../config/config.ts';
113
+ import type { config } from '../config/config.ts';
114
+ /** config: end */
115
+ /** scope: begin */
116
+ import { BeanScopeBase, type BeanScopeUtil, type TypeModuleConfig } from 'vona';
117
+ import { Scope } from 'vona-module-a-bean';
118
+
119
+ @Scope()
120
+ export class ScopeModuleAJwt extends BeanScopeBase {}
121
+
122
+ export interface ScopeModuleAJwt {
123
+ util: BeanScopeUtil;
124
+ config: TypeModuleConfig<typeof config>;
125
+ service: IModuleService;
126
+ }
127
+
128
+ import 'vona';
129
+ declare module 'vona' {
130
+ export interface IBeanScopeRecord {
131
+ 'a-jwt': ScopeModuleAJwt;
132
+ }
133
+
134
+ export interface IBeanScopeContainer {
135
+ jwt: ScopeModuleAJwt;
136
+ }
137
+
138
+ export interface IBeanScopeConfig {
139
+ 'a-jwt': ReturnType<typeof config>;
140
+ }
141
+
142
+
143
+
144
+
145
+ }
146
+ /** scope: end */
@@ -0,0 +1,2 @@
1
+ export const __ThisModule__ = 'a-jwt';
2
+ export { ScopeModuleAJwt as ScopeModule } from './index.ts';
@@ -0,0 +1,52 @@
1
+ import type { IAuthenticateStrategyState } from 'vona-module-a-auth';
2
+
3
+ import ms from 'ms';
4
+ import { BeanBase } from 'vona';
5
+ import { Bean } from 'vona-module-a-bean';
6
+
7
+ import type { IJwtClientRecord, IJwtSignOptions, IJwtToken, IPayloadData } from '../types/jwt.ts';
8
+
9
+ import { ServiceJwtClient } from '../service/jwtClient.ts';
10
+
11
+ @Bean()
12
+ export class BeanJwt extends BeanBase {
13
+ get(clientName?: keyof IJwtClientRecord) {
14
+ return this.app.bean._getBeanSelector(ServiceJwtClient, clientName);
15
+ }
16
+
17
+ async create(payloadData: IPayloadData, options?: IJwtSignOptions): Promise<IJwtToken> {
18
+ // accessToken
19
+ const accessToken = await this.get('access').sign(payloadData, options);
20
+ // refreshToken
21
+ const refreshToken = await this.get('refresh').sign(payloadData, options);
22
+ // expiresIn
23
+ let expiresIn = this.scope.config.clients.access.signOptions.expiresIn!;
24
+ if (typeof expiresIn === 'string') expiresIn = Math.floor(ms(expiresIn) / 1000);
25
+ // ok
26
+ return {
27
+ accessToken,
28
+ refreshToken,
29
+ expiresIn,
30
+ };
31
+ }
32
+
33
+ async createTempAuthToken(payloadData: IPayloadData, options?: IJwtSignOptions) {
34
+ return await this.get('access').sign(payloadData, Object.assign({}, options, { temp: true }));
35
+ }
36
+
37
+ async createOauthAuthToken(payloadData: IPayloadData, options?: IJwtSignOptions) {
38
+ return await this.get('oauth').sign(payloadData, options);
39
+ }
40
+
41
+ async createOauthState(payloadData: IAuthenticateStrategyState, options?: IJwtSignOptions) {
42
+ return await this.get('oauthstate').sign(payloadData as IPayloadData, options);
43
+ }
44
+
45
+ async createOauthCode(payloadData: IPayloadData, options?: IJwtSignOptions) {
46
+ return await this.get('code').sign(payloadData, options);
47
+ }
48
+
49
+ extractAuthTokenFromAllWays() {
50
+ return this.scope.service.jwtExtract.fromAllWays();
51
+ }
52
+ }
@@ -0,0 +1,47 @@
1
+ import type { VonaApplication, VonaConfigEnv } from 'vona';
2
+
3
+ import type { ConfigJwt } from '../types/jwt.ts';
4
+
5
+ export function config(_app: VonaApplication, env: VonaConfigEnv) {
6
+ return {
7
+ field: {
8
+ payload: {
9
+ client: 'client',
10
+ path: 'path',
11
+ data: 'data',
12
+ },
13
+ extract: {
14
+ header: '',
15
+ headerAuth: 'authorization',
16
+ headerAuthScheme: 'bearer',
17
+ query: 'auth_token',
18
+ cookie: 'token',
19
+ },
20
+ },
21
+ tempAuthToken: {
22
+ signOptions: { expiresIn: 10 * 60 },
23
+ },
24
+ base: {
25
+ secret: undefined,
26
+ signOptions: { issuer: env.APP_NAME },
27
+ verifyOptions: { issuer: env.APP_NAME },
28
+ },
29
+ clients: {
30
+ access: {
31
+ signOptions: { expiresIn: 2 * 60 * 60 },
32
+ },
33
+ refresh: {
34
+ signOptions: { expiresIn: 7 * 24 * 60 * 60 },
35
+ },
36
+ oauth: {
37
+ signOptions: { expiresIn: 5 * 60 },
38
+ },
39
+ oauthstate: {
40
+ signOptions: { expiresIn: 5 * 60 },
41
+ },
42
+ code: {
43
+ signOptions: { expiresIn: 3 * 60 },
44
+ },
45
+ },
46
+ } as ConfigJwt;
47
+ }
@@ -0,0 +1,20 @@
1
+ import type { IDecoratorDtoOptions } from 'vona-module-a-web';
2
+
3
+ import { Api } from 'vona-module-a-openapiutils';
4
+ import { Dto } from 'vona-module-a-web';
5
+
6
+ import type { IJwtToken } from '../types/jwt.ts';
7
+
8
+ export interface IDtoOptionsJwtToken extends IDecoratorDtoOptions {}
9
+
10
+ @Dto<IDtoOptionsJwtToken>()
11
+ export class DtoJwtToken implements IJwtToken {
12
+ @Api.field()
13
+ accessToken: string;
14
+
15
+ @Api.field()
16
+ refreshToken: string;
17
+
18
+ @Api.field()
19
+ expiresIn: number;
20
+ }
package/src/index.ts ADDED
@@ -0,0 +1,3 @@
1
+ export * from './.metadata/index.ts';
2
+ export * from './lib/index.ts';
3
+ export * from './types/index.ts';
@@ -0,0 +1,7 @@
1
+ const re = /(\S+)\s+(\S+)/;
2
+
3
+ export function parseAuthHeader(headerValue?: any) {
4
+ if (typeof headerValue !== 'string') return;
5
+ const matches = headerValue.match(re);
6
+ return matches && { scheme: matches[1], value: matches[2] };
7
+ }
@@ -0,0 +1,8 @@
1
+ import { ErrorMessageJwtExpired } from './const.ts';
2
+
3
+ // throw error only when ErrorMessageJwtExpired
4
+ export function checkErrorJwtExpired(err: Error | undefined, headers: any) {
5
+ if (err && err.message === ErrorMessageJwtExpired && (headers['x-vona-jwt-authtoken'] === true || headers['x-vona-jwt-authtoken'] === 'true')) {
6
+ throw err;
7
+ }
8
+ }
@@ -0,0 +1 @@
1
+ export const ErrorMessageJwtExpired = 'jwt expired';
@@ -0,0 +1,3 @@
1
+ export * from './authHeader.ts';
2
+ export * from './checkErrorJwtExpired.ts';
3
+ export * from './const.ts';
@@ -0,0 +1,109 @@
1
+ import { catchError } from '@cabloy/utils';
2
+ import jwt from 'jsonwebtoken';
3
+ import { BeanBase, cast, deepExtend } from 'vona';
4
+ import { Service } from 'vona-module-a-bean';
5
+
6
+ import type { IJwtClientOptions, IJwtClientRecord, IJwtPayload, IJwtSignOptions, IJwtVerifyOptions, IPayloadData } from '../types/jwt.ts';
7
+
8
+ @Service()
9
+ export class ServiceJwtClient extends BeanBase {
10
+ private _jwtInstance: typeof jwt;
11
+ private _clientName: keyof IJwtClientRecord;
12
+ private _clientOptions: IJwtClientOptions;
13
+
14
+ get instance(): typeof jwt {
15
+ return this._jwtInstance;
16
+ }
17
+
18
+ protected __init__(clientName?: keyof IJwtClientRecord) {
19
+ this._createClient(clientName);
20
+ }
21
+
22
+ private _createClient(clientName?: keyof IJwtClientRecord) {
23
+ clientName = clientName || 'access';
24
+ const configJwt = this.scope.config;
25
+ const configClient = configJwt.clients[clientName];
26
+ if (!configClient) throw new Error(`jwt client not found: ${clientName}`);
27
+ const secret = configJwt.base.secret ?? this.app.config.server.keys[0];
28
+ this._clientOptions = deepExtend({}, configJwt.base, { secret }, configClient);
29
+ this._clientName = clientName;
30
+ this._jwtInstance = jwt;
31
+ }
32
+
33
+ private get fieldClient() {
34
+ return this.scope.config.field.payload.client;
35
+ }
36
+
37
+ private get fieldPath() {
38
+ return this.scope.config.field.payload.path;
39
+ }
40
+
41
+ private get fieldData() {
42
+ return this.scope.config.field.payload.data;
43
+ }
44
+
45
+ async sign(payloadData: IPayloadData, options?: IJwtSignOptions): Promise<string> {
46
+ const [res, error] = await catchError(() => {
47
+ return this._signInner(payloadData, options);
48
+ });
49
+ this.$loggerChild('jwt').debug(() => `jwt.sign: client:${this._clientName}, token:${res}${error ? `, error: ${error.message}` : ''}`);
50
+ if (error) throw error;
51
+ return res;
52
+ }
53
+
54
+ private async _signInner(payloadData: IPayloadData, options?: IJwtSignOptions): Promise<string> {
55
+ return new Promise((resolve, reject) => {
56
+ const payload: IJwtPayload = {
57
+ [this.fieldClient]: this._clientName,
58
+ [this.fieldData]: payloadData,
59
+ };
60
+ if (options?.path) payload[this.fieldPath] = options.path;
61
+ let signOptions = this._clientOptions.signOptions;
62
+ if (options?.dev) {
63
+ signOptions = Object.assign({}, signOptions, { expiresIn: this.scope.config.clients.refresh.signOptions.expiresIn });
64
+ }
65
+ if (options?.temp) {
66
+ signOptions = Object.assign({}, signOptions, { expiresIn: this.scope.config.tempAuthToken.signOptions.expiresIn });
67
+ }
68
+ this._jwtInstance.sign(payload, this._clientOptions.secret!, signOptions, (err, encoded) => {
69
+ if (err) return reject(err);
70
+ resolve(encoded!);
71
+ });
72
+ });
73
+ }
74
+
75
+ async verify(token?: string, options?: IJwtVerifyOptions): Promise<IPayloadData | undefined> {
76
+ if (!token && this._clientName === 'access') token = this.scope.service.jwtExtract.fromAllWays();
77
+ const [res, error] = await catchError(() => {
78
+ return this._verifyInner(token, options);
79
+ });
80
+ this.$loggerChild('jwt').debug(() => `jwt.verify: client:${this._clientName}, token:${token}${error ? `, error: ${error.message}` : ''}`);
81
+ if (error) throw error;
82
+ return res;
83
+ }
84
+
85
+ private async _verifyInner(token?: string, options?: IJwtVerifyOptions): Promise<IPayloadData | undefined> {
86
+ if (!token) return undefined;
87
+ return new Promise((resolve, reject) => {
88
+ this._jwtInstance.verify(token, this._clientOptions.secret!, this._clientOptions.verifyOptions, (err, decoded) => {
89
+ if (err) {
90
+ return reject(err);
91
+ }
92
+ const payload = cast<IJwtPayload>(decoded);
93
+ // check field client
94
+ if (payload[this.fieldClient] !== this._clientName) return this.app.throw(401);
95
+ // check field path
96
+ if (!this._checkVerifyPath(payload[this.fieldPath], options?.path)) return this.app.throw(401);
97
+ // passed
98
+ resolve(payload[this.fieldData]);
99
+ });
100
+ });
101
+ }
102
+
103
+ _checkVerifyPath(pathTarget: string | string[] | undefined, pathReal: string | undefined) {
104
+ if (!pathTarget) return true;
105
+ const path = pathReal ?? String(this.ctx.route.routePathRaw);
106
+ if (Array.isArray(pathTarget) && !pathTarget.includes(path)) return false;
107
+ return pathTarget === path;
108
+ }
109
+ }
@@ -0,0 +1,37 @@
1
+ import { BeanBase } from 'vona';
2
+ import { Service } from 'vona-module-a-bean';
3
+
4
+ import { parseAuthHeader } from '../lib/authHeader.ts';
5
+
6
+ @Service()
7
+ export class ServiceJwtExtract extends BeanBase {
8
+ fromHeader(): string | undefined {
9
+ if (!this.scope.config.field.extract.header) return;
10
+ return this.ctx.request.headers[this.scope.config.field.extract.header] as string | undefined;
11
+ }
12
+
13
+ fromQuery() {
14
+ return this.ctx.request.query[this.scope.config.field.extract.query];
15
+ }
16
+
17
+ fromAuthHeaderWithScheme(headerValue?: string) {
18
+ if (!headerValue) {
19
+ headerValue = this.ctx.request.headers[this.scope.config.field.extract.headerAuth] as string | undefined;
20
+ }
21
+ const auth = parseAuthHeader(headerValue);
22
+ if (!auth || auth.scheme.toLocaleLowerCase() !== this.scope.config.field.extract.headerAuthScheme.toLocaleLowerCase()) return;
23
+ return auth.value;
24
+ }
25
+
26
+ fromCookie() {
27
+ return this.ctx.cookies.get(this.scope.config.field.extract.cookie);
28
+ }
29
+
30
+ fromAllWays() {
31
+ let token: string | undefined = this.fromQuery();
32
+ if (!token) token = this.fromAuthHeaderWithScheme();
33
+ if (!token) token = this.fromHeader();
34
+ if (!token) token = this.fromCookie();
35
+ return token;
36
+ }
37
+ }
@@ -0,0 +1 @@
1
+ export * from './jwt.ts';
@@ -0,0 +1,66 @@
1
+ import type { SignOptions, VerifyOptions } from 'jsonwebtoken';
2
+ import type { StringValue } from 'ms';
3
+
4
+ import 'vona';
5
+
6
+ export interface IJwtToken {
7
+ accessToken: string;
8
+ refreshToken: string;
9
+ expiresIn: number;
10
+ }
11
+
12
+ export interface IJwtClientRecord {
13
+ access: never;
14
+ refresh: never;
15
+ oauth: never;
16
+ oauthstate: never;
17
+ code: never;
18
+ }
19
+
20
+ export interface IJwtSignOptions {
21
+ path?: string | string[];
22
+ dev?: boolean;
23
+ temp?: boolean;
24
+ }
25
+
26
+ export interface IJwtVerifyOptions {
27
+ path?: string;
28
+ }
29
+
30
+ export interface IJwtClientOptions {
31
+ secret?: string;
32
+ signOptions: SignOptions;
33
+ verifyOptions?: VerifyOptions;
34
+ }
35
+
36
+ export interface ConfigJwt {
37
+ field: {
38
+ payload: {
39
+ client: string;
40
+ path: string;
41
+ data: string;
42
+ };
43
+ extract: {
44
+ header: string;
45
+ headerAuth: string;
46
+ headerAuthScheme: string;
47
+ query: string;
48
+ cookie: string;
49
+ };
50
+ };
51
+ tempAuthToken: {
52
+ signOptions: { expiresIn: StringValue | number };
53
+ };
54
+ base: IJwtClientOptions;
55
+ clients: Record<keyof IJwtClientRecord, IJwtClientOptions>;
56
+ }
57
+
58
+ export interface IPayloadData {}
59
+
60
+ export interface IJwtPayload {}
61
+
62
+ declare module 'vona' {
63
+ export interface ILoggerChildRecord {
64
+ jwt: never;
65
+ }
66
+ }