@nauth-toolkit/nestjs 0.1.21 → 0.1.22
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/auth.module.d.ts.map +1 -1
- package/dist/auth.module.js +10 -3
- package/dist/auth.module.js.map +1 -1
- package/dist/guards/auth.guard.d.ts +3 -4
- package/dist/guards/auth.guard.d.ts.map +1 -1
- package/dist/guards/auth.guard.js +49 -60
- package/dist/guards/auth.guard.js.map +1 -1
- package/dist/guards/nauth-context.guard.d.ts +44 -0
- package/dist/guards/nauth-context.guard.d.ts.map +1 -0
- package/dist/guards/nauth-context.guard.js +140 -0
- package/dist/guards/nauth-context.guard.js.map +1 -0
- package/dist/index.d.ts +2 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +5 -3
- package/dist/index.js.map +1 -1
- package/dist/interceptors/cookie-token.interceptor.d.ts.map +1 -1
- package/dist/interceptors/cookie-token.interceptor.js +10 -0
- package/dist/interceptors/cookie-token.interceptor.js.map +1 -1
- package/dist/interceptors/index.d.ts +1 -1
- package/dist/interceptors/index.d.ts.map +1 -1
- package/dist/interceptors/index.js +1 -1
- package/dist/interceptors/index.js.map +1 -1
- package/dist/interceptors/nauth-context.interceptor.d.ts +27 -0
- package/dist/interceptors/nauth-context.interceptor.d.ts.map +1 -0
- package/dist/interceptors/nauth-context.interceptor.js +64 -0
- package/dist/interceptors/nauth-context.interceptor.js.map +1 -0
- package/package.json +2 -2
- package/dist/interceptors/client-info.interceptor.d.ts +0 -50
- package/dist/interceptors/client-info.interceptor.d.ts.map +0 -1
- package/dist/interceptors/client-info.interceptor.js +0 -196
- package/dist/interceptors/client-info.interceptor.js.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"auth.module.d.ts","sourceRoot":"","sources":["../src/auth.module.ts"],"names":[],"mappings":"AAAA,OAAO,EAAU,aAAa,EAAU,MAAM,gBAAgB,CAAC;AAK/D,OAAO,EAYL,WAAW,EAqBZ,MAAM,qBAAqB,CAAC;
|
|
1
|
+
{"version":3,"file":"auth.module.d.ts","sourceRoot":"","sources":["../src/auth.module.ts"],"names":[],"mappings":"AAAA,OAAO,EAAU,aAAa,EAAU,MAAM,gBAAgB,CAAC;AAK/D,OAAO,EAYL,WAAW,EAqBZ,MAAM,qBAAqB,CAAC;AAmD7B;;;;;GAKG;AACH,MAAM,WAAW,iBAAkB,SAAQ,WAAW;IACpD;;;;;;;;;;;;;;;;;OAiBG;IACH,QAAQ,CAAC,EAAE,QAAQ,EAAE,CAAC;CACvB;AAED;;;;;GAKG;AACH,qBAEa,UAAU;IACrB;;;;OAIG;IACH,MAAM,CAAC,OAAO,CAAC,MAAM,EAAE,iBAAiB,GAAG,aAAa;IAyqCxD;;;;;;;;;;;;OAYG;IACH,OAAO,CAAC,MAAM,CAAC,cAAc;CAuB9B"}
|
package/dist/auth.module.js
CHANGED
|
@@ -49,9 +49,10 @@ const typeorm_2 = require("typeorm");
|
|
|
49
49
|
const core_2 = require("@nauth-toolkit/core");
|
|
50
50
|
// Internal API imports (for framework adapter use only)
|
|
51
51
|
const internal_1 = require("@nauth-toolkit/core/internal");
|
|
52
|
-
const client_info_interceptor_1 = require("./interceptors/client-info.interceptor");
|
|
53
52
|
const cookie_token_interceptor_1 = require("./interceptors/cookie-token.interceptor");
|
|
53
|
+
const nauth_context_interceptor_1 = require("./interceptors/nauth-context.interceptor");
|
|
54
54
|
const auth_guard_1 = require("./guards/auth.guard");
|
|
55
|
+
const nauth_context_guard_1 = require("./guards/nauth-context.guard");
|
|
55
56
|
const csrf_guard_1 = require("./guards/csrf.guard");
|
|
56
57
|
const csrf_service_1 = require("./services/csrf.service");
|
|
57
58
|
const token_delivery_http_service_1 = require("./services/token-delivery-http.service");
|
|
@@ -92,10 +93,16 @@ let AuthModule = AuthModule_1 = class AuthModule {
|
|
|
92
93
|
providers: [
|
|
93
94
|
// Auto-run nauth-toolkit migrations on startup (no consumer burden)
|
|
94
95
|
migrations_bootstrap_service_1.nauthMigrationsBootstrapProvider,
|
|
95
|
-
// Global
|
|
96
|
+
// Global guard for AsyncLocalStorage context initialization (runs FIRST)
|
|
97
|
+
// Must run before other guards to ensure context is available
|
|
98
|
+
{
|
|
99
|
+
provide: core_1.APP_GUARD,
|
|
100
|
+
useClass: nauth_context_guard_1.NAuthContextGuard,
|
|
101
|
+
},
|
|
102
|
+
// Global interceptor for context restoration (restores context for controllers)
|
|
96
103
|
{
|
|
97
104
|
provide: core_1.APP_INTERCEPTOR,
|
|
98
|
-
useClass:
|
|
105
|
+
useClass: nauth_context_interceptor_1.NAuthContextInterceptor,
|
|
99
106
|
},
|
|
100
107
|
// Shared token delivery helper (used by interceptor + controllers)
|
|
101
108
|
token_delivery_http_service_1.TokenDeliveryHttpService,
|
package/dist/auth.module.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"auth.module.js","sourceRoot":"","sources":["../src/auth.module.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,2CAA+D;AAC/D,uCAA0D;AAC1D,6CAAgD;AAChD,qCAAiE;AACjE,qBAAqB;AACrB,8CAiC6B;AAE7B,wDAAwD;AACxD,2DAiBsC;AAsBtC,oFAA+E;AAC/E,sFAAiF;AACjF,oDAAgD;AAChD,oDAAgD;AAChD,0DAAsD;AACtD,wFAAkF;AAClF,0FAA2F;AA8B3F;;;;;GAKG;AAGI,IAAM,UAAU,kBAAhB,MAAM,UAAU;IACrB;;;;OAIG;IACH,MAAM,CAAC,OAAO,CAAC,MAAyB;QACtC,yBAAyB;QACzB,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC;QAE5B,sEAAsE;QACtE,MAAM,WAAW,GAAG,IAAI,kBAAW,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;QAEnD,qBAAqB;QACrB,IAAI,WAAW,CAAC,SAAS,EAAE,EAAE,CAAC;YAC5B,WAAW,CAAC,GAAG,CAAC,+BAA+B,CAAC,CAAC;YACjD,WAAW,CAAC,KAAK,CAAC,iBAAiB,MAAM,CAAC,WAAW,IAAI,QAAQ,EAAE,CAAC,CAAC;YACrE,WAAW,CAAC,KAAK,CAAC,kBAAkB,MAAM,CAAC,GAAG,CAAC,SAAS,IAAI,OAAO,EAAE,CAAC,CAAC;QACzE,CAAC;QAED,0DAA0D;QAC1D,mFAAmF;QAEnF,gEAAgE;QAChE,MAAM,QAAQ,GAAG,MAAM,CAAC,QAAQ,IAAI,EAAE,CAAC;QAEvC,OAAO;YACL,MAAM,EAAE,YAAU;YAClB,OAAO,EAAE;gBACP,mFAAmF;gBACnF,GAAG,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,uBAAa,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;aACrE;YACD,SAAS,EAAE;gBACT,oEAAoE;gBACpE,+DAAgC;gBAEhC,0DAA0D;gBAC1D;oBACE,OAAO,EAAE,sBAAe;oBACxB,QAAQ,EAAE,+CAAqB;iBAChC;gBACD,mEAAmE;gBACnE,sDAAwB;gBAExB,mGAAmG;gBACnG;oBACE,OAAO,EAAE,4BAAqB;oBAC9B,UAAU,EAAE,CACV,MAAmB,EACnB,iBAAoC,EACpC,UAAgC,EAChC,OAAuB,EACvB,MAAmB,EACnB,EAAE;wBACF,OAAO,IAAI,4BAAqB,CAAC,MAAM,EAAE,iBAAiB,EAAE,UAAU,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC;oBAC3F,CAAC;oBACD,MAAM,EAAE,CAAC,cAAc,EAAE,wBAAiB,EAAE,yBAAyB,EAAE,iBAAiB,EAAE,cAAc,CAAC;iBAC1G;gBAED,oEAAoE;gBACpE;oBACE,OAAO,EAAE,sBAAe;oBACxB,QAAQ,EAAE,iDAAsB;iBACjC;gBAED,oGAAoG;gBACpG;oBACE,OAAO,EAAE,0BAAW;oBACpB,UAAU,EAAE,CAAC,MAAmB,EAAE,EAAE;wBAClC,OAAO,IAAI,0BAAW,CAAC,MAAM,CAAC,CAAC;oBACjC,CAAC;oBACD,MAAM,EAAE,CAAC,cAAc,CAAC;iBACzB;gBAED,4EAA4E;gBAC5E,GAAG,CAAC,MAAM,CAAC,aAAa,EAAE,MAAM,KAAK,SAAS,IAAI,MAAM,CAAC,aAAa,EAAE,MAAM,KAAK,QAAQ;oBACzF,CAAC,CAAC;wBACE;4BACE,OAAO,EAAE,gBAAS;4BAClB,QAAQ,EAAE,sBAAS;yBACpB;qBACF;oBACH,CAAC,CAAC,EAAE,CAAC;gBACP,gBAAgB;gBAChB;oBACE,OAAO,EAAE,cAAc;oBACvB,QAAQ,EAAE,MAAM;iBACjB;gBAED,SAAS;gBACT;oBACE,OAAO,EAAE,cAAc;oBACvB,QAAQ,EAAE,WAAW;iBACtB;gBAED,8FAA8F;gBAC9F,oFAAoF;gBACpF,gCAAgC;gBAChC,gDAAgD;gBAChD,uEAAuE;gBACvE,4DAA4D;gBAC5D;oBACE,OAAO,EAAE,iBAAiB;oBAC1B,UAAU,EAAE,KAAK,EACf,MAAmB,EACnB,MAAmB,EACnB,aAA+C,EAC/C,eAAmD,EACnD,EAAE;wBACF,oDAAoD;wBACpD,IAAI,MAAM,CAAC,cAAc,EAAE,CAAC;4BAC1B,MAAM,OAAO,GAAG,MAAM,CAAC,cAAc,CAAC;4BACtC,qFAAqF;4BACrF,IACE,OAAO;gCACP,OAAQ,OAAsE,CAAC,SAAS,KAAK,UAAU,EACvG,CAAC;gCACA,OAAqE,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;4BAC3F,CAAC;4BACD,iFAAiF;4BACjF,IACE,OAAO;gCACP,OACE,OAMD,CAAC,eAAe,KAAK,UAAU,EAChC,CAAC;gCACD,IAAI,aAAa,IAAI,eAAe,EAAE,CAAC;oCAEnC,OAMD,CAAC,eAAe,CAAC,aAAa,EAAE,eAAe,CAAC,CAAC;gCACpD,CAAC;4BACH,CAAC;4BACD,MAAM,OAAO,CAAC,UAAU,EAAE,CAAC;4BAC3B,OAAO,OAAO,CAAC;wBACjB,CAAC;wBAED,4FAA4F;wBAC5F,IAAI,aAAa,IAAI,eAAe,EAAE,CAAC;4BACrC,gGAAgG;4BAChG,IAAI,CAAC;gCACH,4CAA4C;gCAC5C,MAAM,EAAE,sBAAsB,EAAE,GAAG,wDAAa,iCAAiC,GAAC,CAAC;gCACnF,MAAM,OAAO,GAAG,IAAI,sBAAsB,CAAC,IAAI,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC;gCAC/D,OAAO,CAAC,eAAe,CAAC,aAAa,EAAE,eAAe,CAAC,CAAC;gCACxD,MAAM,OAAO,CAAC,UAAU,EAAE,CAAC;gCAC3B,MAAM,EAAE,IAAI,EAAE,CACZ,kFAAkF;oCAChF,qEAAqE,CACxE,CAAC;gCACF,OAAO,OAAO,CAAC;4BACjB,CAAC;4BAAC,OAAO,KAAK,EAAE,CAAC;gCACf,gEAAgE;gCAChE,MAAM,EAAE,KAAK,EAAE,CACb,qGAAqG,EACrG,EAAE,KAAK,EAAE,CACV,CAAC;4BACJ,CAAC;wBACH,CAAC;wBAED,6FAA6F;wBAC7F,MAAM,IAAI,KAAK,CACb,0DAA0D;4BACxD,uGAAuG;4BACvG,0DAA0D;4BAC1D,yEAAyE;4BACzE,+EAA+E;4BAC/E,oDAAoD;4BACpD,iFAAiF;4BACjF,yEAAyE;4BACzE,4DAA4D;4BAC5D,wEAAwE;4BACxE,kGAAkG;4BAClG,4EAA4E,CAC/E,CAAC;oBACJ,CAAC;oBACD,MAAM,EAAE,CAAC,cAAc,EAAE,cAAc,EAAE,qBAAqB,EAAE,uBAAuB,CAAC;iBACzF;gBAED,4EAA4E;gBAC5E;oBACE,OAAO,EAAE,qBAAqB;oBAC9B,UAAU,EAAE,CAAC,UAAsB,EAAE,EAAE;wBACrC,uCAAuC;wBACvC,MAAM,gBAAgB,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAW,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,WAAW,CAAC,CAAC;wBAChF,IAAI,gBAAgB,EAAE,CAAC;4BACrB,OAAO,UAAU,CAAC,aAAa,CAAC,gBAAgB,CAAC,CAAC;wBACpD,CAAC;wBACD,mDAAmD;wBACnD,MAAM,QAAQ,GAAG,UAAU,CAAC,eAAe,CAAC,IAAI,CAC9C,CAAC,CAAiB,EAAE,EAAE,CAAC,CAAC,CAAC,SAAS,KAAK,mBAAmB,CAC3D,CAAC;wBACF,IAAI,QAAQ,EAAE,CAAC;4BACb,OAAO,UAAU,CAAC,aAAa,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;wBACnD,CAAC;wBACD,wCAAwC;wBACxC,MAAM,cAAc,GAAG,UAAU,CAAC,eAAe,CAAC,IAAI,CACpD,CAAC,CAAiB,EAAE,EAAE,CAAC,OAAO,CAAC,CAAC,MAAM,KAAK,UAAU,IAAI,CAAC,CAAC,MAAM,CAAC,IAAI,KAAK,WAAW,CACvF,CAAC;wBACF,IAAI,cAAc,IAAI,OAAO,cAAc,CAAC,MAAM,KAAK,UAAU,EAAE,CAAC;4BAClE,OAAO,UAAU,CAAC,aAAa,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC;wBACzD,CAAC;wBACD,iFAAiF;wBACjF,OAAO,IAAI,CAAC;oBACd,CAAC;oBACD,MAAM,EAAE,CAAC,oBAAU,CAAC;iBACrB;gBAED,8EAA8E;gBAC9E;oBACE,OAAO,EAAE,uBAAuB;oBAChC,UAAU,EAAE,CAAC,UAAsB,EAAE,EAAE;wBACrC,uCAAuC;wBACvC,MAAM,gBAAgB,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAW,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,aAAa,CAAC,CAAC;wBAClF,IAAI,gBAAgB,EAAE,CAAC;4BACrB,OAAO,UAAU,CAAC,aAAa,CAAC,gBAAgB,CAAC,CAAC;wBACpD,CAAC;wBACD,mDAAmD;wBACnD,MAAM,QAAQ,GAAG,UAAU,CAAC,eAAe,CAAC,IAAI,CAC9C,CAAC,CAAiB,EAAE,EAAE,CAAC,CAAC,CAAC,SAAS,KAAK,qBAAqB,CAC7D,CAAC;wBACF,IAAI,QAAQ,EAAE,CAAC;4BACb,OAAO,UAAU,CAAC,aAAa,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;wBACnD,CAAC;wBACD,wCAAwC;wBACxC,MAAM,cAAc,GAAG,UAAU,CAAC,eAAe,CAAC,IAAI,CACpD,CAAC,CAAiB,EAAE,EAAE,CAAC,OAAO,CAAC,CAAC,MAAM,KAAK,UAAU,IAAI,CAAC,CAAC,MAAM,CAAC,IAAI,KAAK,aAAa,CACzF,CAAC;wBACF,IAAI,cAAc,IAAI,OAAO,cAAc,CAAC,MAAM,KAAK,UAAU,EAAE,CAAC;4BAClE,OAAO,UAAU,CAAC,aAAa,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC;wBACzD,CAAC;wBACD,iFAAiF;wBACjF,OAAO,IAAI,CAAC;oBACd,CAAC;oBACD,MAAM,EAAE,CAAC,oBAAU,CAAC;iBACrB;gBAED,iEAAiE;gBACjE,gFAAgF;gBAChF;oBACE,OAAO,EAAE,gBAAgB;oBACzB,UAAU,EAAE,CAAC,UAAsB,EAAE,EAAE;wBACrC,gDAAgD;wBAChD,MAAM,gBAAgB,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAW,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,MAAM,CAAC,CAAC;wBAC3E,IAAI,gBAAgB,EAAE,CAAC;4BACrB,OAAO,UAAU,CAAC,aAAa,CAAC,gBAAgB,CAAC,CAAC;wBACpD,CAAC;wBACD,yDAAyD;wBACzD,MAAM,QAAQ,GAAG,UAAU,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC,CAAiB,EAAE,EAAE,CAAC,CAAC,CAAC,SAAS,KAAK,aAAa,CAAC,CAAC;wBACvG,IAAI,CAAC,QAAQ,EAAE,CAAC;4BACd,MAAM,IAAI,qBAAc,CACtB,oBAAa,CAAC,iBAAiB,EAC/B,6FAA6F,CAC9F,CAAC;wBACJ,CAAC;wBACD,OAAO,UAAU,CAAC,aAAa,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;oBACnD,CAAC;oBACD,MAAM,EAAE,CAAC,oBAAU,CAAC;iBACrB;gBACD;oBACE,OAAO,EAAE,mBAAmB;oBAC5B,UAAU,EAAE,CAAC,UAAsB,EAAE,EAAE;wBACrC,MAAM,gBAAgB,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAW,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC;wBAC9E,IAAI,gBAAgB,EAAE,CAAC;4BACrB,OAAO,UAAU,CAAC,aAAa,CAAC,gBAAgB,CAAC,CAAC;wBACpD,CAAC;wBACD,MAAM,QAAQ,GAAG,UAAU,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC,CAAiB,EAAE,EAAE,CAAC,CAAC,CAAC,SAAS,KAAK,gBAAgB,CAAC,CAAC;wBAC1G,IAAI,CAAC,QAAQ,EAAE,CAAC;4BACd,MAAM,IAAI,qBAAc,CACtB,oBAAa,CAAC,iBAAiB,EAC/B,gGAAgG,CACjG,CAAC;wBACJ,CAAC;wBACD,OAAO,UAAU,CAAC,aAAa,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;oBACnD,CAAC;oBACD,MAAM,EAAE,CAAC,oBAAU,CAAC;iBACrB;gBACD;oBACE,OAAO,EAAE,wBAAwB;oBACjC,UAAU,EAAE,CAAC,UAAsB,EAAE,EAAE;wBACrC,MAAM,gBAAgB,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAW,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,cAAc,CAAC,CAAC;wBACnF,IAAI,gBAAgB,EAAE,CAAC;4BACrB,OAAO,UAAU,CAAC,aAAa,CAAC,gBAAgB,CAAC,CAAC;wBACpD,CAAC;wBACD,MAAM,QAAQ,GAAG,UAAU,CAAC,eAAe,CAAC,IAAI,CAC9C,CAAC,CAAiB,EAAE,EAAE,CAAC,CAAC,CAAC,SAAS,KAAK,sBAAsB,CAC9D,CAAC;wBACF,IAAI,CAAC,QAAQ,EAAE,CAAC;4BACd,MAAM,IAAI,qBAAc,CACtB,oBAAa,CAAC,iBAAiB,EAC/B,qGAAqG,CACtG,CAAC;wBACJ,CAAC;wBACD,OAAO,UAAU,CAAC,aAAa,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;oBACnD,CAAC;oBACD,MAAM,EAAE,CAAC,oBAAU,CAAC;iBACrB;gBACD;oBACE,OAAO,EAAE,6BAA6B;oBACtC,UAAU,EAAE,CAAC,UAAsB,EAAE,EAAE;wBACrC,MAAM,gBAAgB,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAW,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,mBAAmB,CAAC,CAAC;wBACxF,IAAI,gBAAgB,EAAE,CAAC;4BACrB,OAAO,UAAU,CAAC,aAAa,CAAC,gBAAgB,CAAC,CAAC;wBACpD,CAAC;wBACD,MAAM,QAAQ,GAAG,UAAU,CAAC,eAAe,CAAC,IAAI,CAC9C,CAAC,CAAiB,EAAE,EAAE,CAAC,CAAC,CAAC,SAAS,KAAK,2BAA2B,CACnE,CAAC;wBACF,IAAI,CAAC,QAAQ,EAAE,CAAC;4BACd,MAAM,IAAI,qBAAc,CACtB,oBAAa,CAAC,iBAAiB,EAC/B,0GAA0G,CAC3G,CAAC;wBACJ,CAAC;wBACD,OAAO,UAAU,CAAC,aAAa,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;oBACnD,CAAC;oBACD,MAAM,EAAE,CAAC,oBAAU,CAAC;iBACrB;gBACD;oBACE,OAAO,EAAE,yBAAyB;oBAClC,UAAU,EAAE,CAAC,UAAsB,EAAE,EAAE;wBACrC,MAAM,gBAAgB,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAW,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,eAAe,CAAC,CAAC;wBACpF,IAAI,gBAAgB,EAAE,CAAC;4BACrB,OAAO,UAAU,CAAC,aAAa,CAAC,gBAAgB,CAAC,CAAC;wBACpD,CAAC;wBACD,MAAM,QAAQ,GAAG,UAAU,CAAC,eAAe,CAAC,IAAI,CAC9C,CAAC,CAAiB,EAAE,EAAE,CAAC,CAAC,CAAC,SAAS,KAAK,uBAAuB,CAC/D,CAAC;wBACF,IAAI,CAAC,QAAQ,EAAE,CAAC;4BACd,MAAM,IAAI,qBAAc,CACtB,oBAAa,CAAC,iBAAiB,EAC/B,sGAAsG,CACvG,CAAC;wBACJ,CAAC;wBACD,OAAO,UAAU,CAAC,aAAa,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;oBACnD,CAAC;oBACD,MAAM,EAAE,CAAC,oBAAU,CAAC;iBACrB;gBACD;oBACE,OAAO,EAAE,4BAA4B;oBACrC,UAAU,EAAE,CAAC,UAAsB,EAAE,EAAE;wBACrC,MAAM,gBAAgB,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAW,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,kBAAkB,CAAC,CAAC;wBACvF,IAAI,gBAAgB,EAAE,CAAC;4BACrB,OAAO,UAAU,CAAC,aAAa,CAAC,gBAAgB,CAAC,CAAC;wBACpD,CAAC;wBACD,MAAM,QAAQ,GAAG,UAAU,CAAC,eAAe,CAAC,IAAI,CAC9C,CAAC,CAAiB,EAAE,EAAE,CAAC,CAAC,CAAC,SAAS,KAAK,0BAA0B,CAClE,CAAC;wBACF,IAAI,CAAC,QAAQ,EAAE,CAAC;4BACd,MAAM,IAAI,qBAAc,CACtB,oBAAa,CAAC,iBAAiB,EAC/B,yGAAyG,CAC1G,CAAC;wBACJ,CAAC;wBACD,OAAO,UAAU,CAAC,aAAa,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;oBACnD,CAAC;oBACD,MAAM,EAAE,CAAC,oBAAU,CAAC;iBACrB;gBACD;oBACE,OAAO,EAAE,qBAAqB;oBAC9B,UAAU,EAAE,CAAC,UAAsB,EAAE,EAAE;wBACrC,MAAM,gBAAgB,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAW,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,WAAW,CAAC,CAAC;wBAChF,IAAI,gBAAgB,EAAE,CAAC;4BACrB,OAAO,UAAU,CAAC,aAAa,CAAC,gBAAgB,CAAC,CAAC;wBACpD,CAAC;wBACD,MAAM,QAAQ,GAAG,UAAU,CAAC,eAAe,CAAC,IAAI,CAC9C,CAAC,CAAiB,EAAE,EAAE,CAAC,CAAC,CAAC,SAAS,KAAK,mBAAmB,CAC3D,CAAC;wBACF,IAAI,CAAC,QAAQ,EAAE,CAAC;4BACd,MAAM,IAAI,qBAAc,CACtB,oBAAa,CAAC,iBAAiB,EAC/B,kGAAkG,CACnG,CAAC;wBACJ,CAAC;wBACD,OAAO,UAAU,CAAC,aAAa,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;oBACnD,CAAC;oBACD,MAAM,EAAE,CAAC,oBAAU,CAAC;iBACrB;gBACD;oBACE,OAAO,EAAE,qBAAqB;oBAC9B,UAAU,EAAE,CAAC,UAAsB,EAAE,EAAE;wBACrC,MAAM,gBAAgB,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAW,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,WAAW,CAAC,CAAC;wBAChF,IAAI,gBAAgB,EAAE,CAAC;4BACrB,OAAO,UAAU,CAAC,aAAa,CAAC,gBAAgB,CAAC,CAAC;wBACpD,CAAC;wBACD,MAAM,QAAQ,GAAG,UAAU,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC,CAAiB,EAAE,EAAE,CAAC,CAAC,CAAC,SAAS,KAAK,kBAAkB,CAAC,CAAC;wBAC5G,IAAI,CAAC,QAAQ,EAAE,CAAC;4BACd,MAAM,IAAI,qBAAc,CACtB,oBAAa,CAAC,iBAAiB,EAC/B,kGAAkG,CACnG,CAAC;wBACJ,CAAC;wBACD,OAAO,UAAU,CAAC,aAAa,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;oBACnD,CAAC;oBACD,MAAM,EAAE,CAAC,oBAAU,CAAC;iBACrB;gBACD;oBACE,OAAO,EAAE,yBAAyB;oBAClC,UAAU,EAAE,CAAC,UAAsB,EAAE,EAAE;wBACrC,MAAM,gBAAgB,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAW,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,eAAe,CAAC,CAAC;wBACpF,IAAI,gBAAgB,EAAE,CAAC;4BACrB,OAAO,UAAU,CAAC,aAAa,CAAC,gBAAgB,CAAC,CAAC;wBACpD,CAAC;wBACD,MAAM,QAAQ,GAAG,UAAU,CAAC,eAAe,CAAC,IAAI,CAC9C,CAAC,CAAiB,EAAE,EAAE,CAAC,CAAC,CAAC,SAAS,KAAK,uBAAuB,CAC/D,CAAC;wBACF,IAAI,CAAC,QAAQ,EAAE,CAAC;4BACd,8DAA8D;4BAC9D,OAAO,IAAI,CAAC;wBACd,CAAC;wBACD,OAAO,UAAU,CAAC,aAAa,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;oBACnD,CAAC;oBACD,MAAM,EAAE,CAAC,oBAAU,CAAC;iBACrB;gBAED,WAAW;gBACX;oBACE,OAAO,EAAE,0BAAe;oBACxB,UAAU,EAAE,GAAG,EAAE;wBACf,OAAO,IAAI,0BAAe,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;oBAC9C,CAAC;iBACF;gBACD;oBACE,OAAO,EAAE,kBAAkB;oBAC3B,UAAU,EAAE,GAAG,EAAE;wBACf,OAAO,IAAI,0BAAe,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;oBAC9C,CAAC;iBACF;gBACD;oBACE,OAAO,EAAE,qBAAU;oBACnB,UAAU,EAAE,GAAG,EAAE;wBACf,OAAO,IAAI,qBAAU,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;oBACpC,CAAC;iBACF;gBACD;oBACE,OAAO,EAAE,yBAAc;oBACvB,UAAU,EAAE,CACV,iBAA0C,EAC1C,cAA8B,EAC9B,iBAAoC,EACpC,WAAwB,EACxB,MAAmB,EACnB,YAAuC,EACvC,EAAE;wBACF,OAAO,IAAI,yBAAc,CACvB,iBAAiB,EACjB,cAAc,EACd,iBAAiB,EACjB,WAAW,EACX,MAAM,EACN,YAAY,CACb,CAAC;oBACJ,CAAC;oBACD,MAAM,EAAE;wBACN,mBAAmB;wBACnB,iBAAiB;wBACjB,wBAAiB;wBACjB,cAAc;wBACd,cAAc;wBACd,EAAE,KAAK,EAAE,2BAAwB,EAAE,QAAQ,EAAE,IAAI,EAAE,EAAE,2DAA2D;qBACjH;iBACF;gBACD;oBACE,OAAO,EAAE,2BAAgB;oBACzB,UAAU,EAAE,CACV,0BAA4D,EAC5D,iBAAoC,EACpC,MAAmB,EACnB,YAAuC,EACvC,EAAE;wBACF,OAAO,IAAI,2BAAgB,CAAC,0BAA0B,EAAE,iBAAiB,EAAE,MAAM,EAAE,YAAY,CAAC,CAAC;oBACnG,CAAC;oBACD,MAAM,EAAE;wBACN,4BAA4B;wBAC5B,wBAAiB;wBACjB,cAAc;wBACd,EAAE,KAAK,EAAE,2BAAwB,EAAE,QAAQ,EAAE,IAAI,EAAE,EAAE,2DAA2D;qBACjH;iBACF;gBACD,mEAAmE;gBACnE;oBACE,OAAO,EAAE,iCAAsB;oBAC/B,UAAU,EAAE,CACV,oBAAkD,EAClD,0BAAuD,EACvD,iBAAqC,EACrC,MAAoB,EACpB,EAAE;wBACF,OAAO,IAAI,iCAAsB,CAC/B,oBAAoB,IAAI,SAAS,EACjC,0BAA0B,EAC1B,iBAAiB,EACjB,MAAM,CACP,CAAC;oBACJ,CAAC;oBACD,MAAM,EAAE;wBACN,EAAE,KAAK,EAAE,+BAAoB,EAAE,QAAQ,EAAE,IAAI,EAAE;wBAC/C,EAAE,KAAK,EAAE,qCAA0B,EAAE,QAAQ,EAAE,IAAI,EAAE;wBACrD,EAAE,KAAK,EAAE,wBAAiB,EAAE,QAAQ,EAAE,IAAI,EAAE;wBAC5C,EAAE,KAAK,EAAE,cAAc,EAAE,QAAQ,EAAE,IAAI,EAAE;qBAC1C;iBACF;gBACD,qEAAqE;gBACrE;oBACE,OAAO,EAAE,sCAA2B;oBACpC,UAAU,EAAE,CAAC,cAAsC,EAAE,MAAoB,EAAE,EAAE;wBAC3E,OAAO,IAAI,sCAA2B,CAAC,cAAc,EAAE,MAAM,CAAC,CAAC;oBACjE,CAAC;oBACD,MAAM,EAAE,CAAC,iCAAsB,EAAE,EAAE,KAAK,EAAE,cAAc,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;iBAC5E;gBACD;oBACE,OAAO,EAAE,qCAA0B;oBACnC,UAAU,EAAE,CACV,gBAAkC,EAClC,UAAsB,EACtB,cAA8B,EAC9B,mBAA8C,EAC9C,MAAmB,EACnB,YAAyC,EACzC,cAAsC,EACtC,iBAAoC,EACpC,wBAAmD,EACnD,wBAAmD,EACnD,EAAE;wBACF,OAAO,IAAI,qCAA0B,CACnC,gBAAgB,EAChB,UAAU,EACV,cAAc,EACd,mBAAmB,EACnB,MAAM,EACN,YAAY,EACZ,cAAc,EACd,iBAAiB,EACjB,wBAAwB,EACxB,wBAAwB,CACzB,CAAC;oBACJ,CAAC;oBACD,MAAM,EAAE;wBACN,2BAAgB;wBAChB,qBAAU;wBACV,yBAAc;wBACd,qBAAqB;wBACrB,cAAc;wBACd,sCAA2B;wBAC3B,iCAAsB;wBACtB,wBAAiB;wBACjB,EAAE,KAAK,EAAE,+BAAwB,EAAE,QAAQ,EAAE,IAAI,EAAE;wBACnD,EAAE,KAAK,EAAE,+BAAwB,EAAE,QAAQ,EAAE,IAAI,EAAE;qBACpD;iBACF;gBACD;oBACE,OAAO,EAAE,kBAAW;oBACpB,UAAU,EAAE,CACV,cAAoC,EACpC,sBAAoD,EACpD,eAAgC,EAChC,UAAsB,EACtB,cAA8B,EAC9B,gBAAkC,EAClC,eAA2C,EAC3C,wBAAkD,EAClD,iBAAoC,EACpC,qBAAmD,EACnD,WAAwB,EACxB,MAAmB,EACnB,YAAuC,EAAE,2DAA2D;oBACpG,wBAAmD,EACnD,UAAuB,EACvB,mBAA+C,EAC/C,oBAA2C,EAC3C,oBAA2C,EAC3C,EAAE;wBACF,OAAO,IAAI,kBAAW,CACpB,cAAc,EACd,sBAAsB,EACtB,eAAe,EACf,UAAU,EACV,cAAc,EACd,gBAAgB,EAChB,eAAe,EACf,wBAAwB,EACxB,iBAAiB,EACjB,qBAAqB,EACrB,WAAW,EACX,MAAM,EACN,YAAY,EACZ,wBAAwB,EACxB,UAAU,EACV,mBAAmB,EACnB,oBAAoB,EACpB,oBAAoB,CACrB,CAAC;oBACJ,CAAC;oBACD,MAAM,EAAE;wBACN,gBAAgB;wBAChB,wBAAwB;wBACxB,0BAAe;wBACf,qBAAU;wBACV,yBAAc;wBACd,2BAAgB;wBAChB,qCAA0B;wBAC1B,+BAAwB;wBACxB,wBAAiB;wBACjB,mCAA4B;wBAC5B,cAAc;wBACd,cAAc;wBACd,EAAE,KAAK,EAAE,2BAAwB,EAAE,QAAQ,EAAE,IAAI,EAAE,EAAE,2DAA2D;wBAChH,EAAE,KAAK,EAAE,+BAAwB,EAAE,QAAQ,EAAE,IAAI,EAAE;wBACnD,EAAE,KAAK,EAAE,iBAAU,EAAE,QAAQ,EAAE,IAAI,EAAE,EAAE,uEAAuE;wBAC9G,EAAE,KAAK,EAAE,qBAAqB,EAAE,QAAQ,EAAE,IAAI,EAAE;wBAChD,EAAE,KAAK,EAAE,+BAAoB,EAAE,QAAQ,EAAE,IAAI,EAAE;wBAC/C,EAAE,KAAK,EAAE,+BAAoB,EAAE,QAAQ,EAAE,IAAI,EAAE;qBAChD;iBACF;gBACD;oBACE,OAAO,EAAE,+BAAoB;oBAC7B,UAAU,EAAE,CACV,MAAmB,EACnB,MAAmB,EACnB,uBAA8D,EAC9D,EAAE;wBACF,IAAI,CAAC,uBAAuB,EAAE,CAAC;4BAC7B,oEAAoE;4BACpE,OAAO,IAAI,CAAC;wBACd,CAAC;wBACD,OAAO,IAAI,+BAAoB,CAAC,MAAM,EAAE,MAAM,EAAE,uBAAuB,CAAC,CAAC;oBAC3E,CAAC;oBACD,MAAM,EAAE,CAAC,cAAc,EAAE,cAAc,EAAE,EAAE,KAAK,EAAE,yBAAyB,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;iBAC/F;gBAED,oGAAoG;gBACpG;oBACE,OAAO,EAAE,yBAAyB;oBAClC,UAAU,EAAE,CAAC,cAA8B,EAAE,MAAmB,EAAE,EAAE;wBAClE,OAAO,IAAI,+BAAoB,CAAC,cAAc,EAAE,MAAM,CAAC,CAAC;oBAC1D,CAAC;oBACD,MAAM,EAAE,CAAC,iBAAiB,EAAE,cAAc,CAAC;iBAC5C;gBAED,oEAAoE;gBACpE,yEAAyE;gBACzE,6EAA6E;gBAC7E,iCAAsB;gBAEtB,2DAA2D;gBAC3D,yEAAyE;gBACzE,4EAA4E;gBAC5E;oBACE,OAAO,EAAE,iBAAU;oBACnB,UAAU,EAAE,CACV,mBAA8C,EAC9C,cAAoC,EACpC,gBAAmC,EACnC,WAAyB,EACzB,MAAoB,EACpB,YAAuC,EACvC,iBAAqC,EACrC,EAAE;wBACF,OAAO,IAAI,iBAAU,CACnB,mBAAmB,EACnB,cAAc,EACd,gBAAgB,EAChB,WAAW,EACX,MAAM,EACN,YAAY,EACZ,iBAAiB,CAClB,CAAC;oBACJ,CAAC;oBACD,MAAM,EAAE;wBACN,qBAAqB;wBACrB,gBAAgB;wBAChB,EAAE,KAAK,EAAE,2BAAgB,EAAE,QAAQ,EAAE,IAAI,EAAE;wBAC3C,EAAE,KAAK,EAAE,cAAc,EAAE,QAAQ,EAAE,IAAI,EAAE;wBACzC,EAAE,KAAK,EAAE,cAAc,EAAE,QAAQ,EAAE,IAAI,EAAE;wBACzC,EAAE,KAAK,EAAE,uBAAgB,EAAE,QAAQ,EAAE,IAAI,EAAE;wBAC3C,EAAE,KAAK,EAAE,wBAAiB,EAAE,QAAQ,EAAE,IAAI,EAAE;qBAC7C;iBACF;gBACD;oBACE,OAAO,EAAE,wBAAiB;oBAC1B,UAAU,EAAE,CACV,gBAAwC,EACxC,cAAoC,EACpC,uBAAsD,EACtD,WAAwB,EACxB,MAAmB,EACnB,YAAuC,EACvC,EAAE;wBACF,OAAO,IAAI,wBAAiB,CAC1B,gBAAgB,EAChB,cAAc,EACd,uBAAuB,EACvB,WAAW,EACX,MAAM,EACN,YAAY,CACb,CAAC;oBACJ,CAAC;oBACD,MAAM,EAAE;wBACN,iCAAsB;wBACtB,gBAAgB;wBAChB,yBAAyB;wBACzB,kBAAW;wBACX,cAAc;wBACd,EAAE,KAAK,EAAE,2BAAwB,EAAE,QAAQ,EAAE,IAAI,EAAE,EAAE,2DAA2D;qBACjH;iBACF;gBACD,wBAAiB;gBACjB,2EAA2E;gBAC3E,+DAA+D;gBAC/D,EAAE;gBACF,gBAAgB;gBAChB,oDAAoD;gBACpD,0FAA0F;gBAC1F,qFAAqF;gBACrF,qEAAqE;gBACrE,GAAG,CAAC,MAAM,CAAC,SAAS,EAAE,OAAO,KAAK,KAAK;oBACrC,CAAC,CAAC;wBACE,+EAA+E;wBAC/E;4BACE,OAAO,EAAE,2BAAwB;4BACjC,UAAU,EAAE,CACV,eAA0C,EAC1C,cAAoC,EACpC,MAAmB,EACnB,iBAAoC,EACpC,EAAE;gCACF,OAAO,IAAI,2BAAwB,CAAC,eAAe,EAAE,cAAc,EAAE,MAAM,EAAE,iBAAiB,CAAC,CAAC;4BAClG,CAAC;4BACD,MAAM,EAAE,CAAC,qBAAqB,EAAE,gBAAgB,EAAE,cAAc,EAAE,wBAAiB,CAAC;yBACrF;wBACD,+EAA+E;wBAC/E,kEAAkE;wBAClE,qFAAqF;wBACrF;4BACE,OAAO,EAAE,uBAAgB;4BACzB,WAAW,EAAE,2BAAwB;yBACtC;qBACF;oBACH,CAAC,CAAC,EAAE,CAAC;gBACP;oBACE,OAAO,EAAE,+BAAoB;oBAC7B,UAAU,EAAE,CACV,iBAA0C,EAC1C,eAA0C,EAC1C,MAAmB,EACnB,MAAmB,EACnB,oBAAkD,EAClD,EAAE;wBACF,OAAO,IAAI,+BAAoB,CAC7B,iBAAiB,EACjB,eAAe,EACf,MAAM,EACN,MAAM,EACN,oBAAoB,IAAI,SAAS,CAClC,CAAC;oBACJ,CAAC;oBACD,MAAM,EAAE;wBACN,mBAAmB;wBACnB,qBAAqB;wBACrB,cAAc;wBACd,cAAc;wBACd,EAAE,KAAK,EAAE,+BAAoB,EAAE,QAAQ,EAAE,IAAI,EAAE;qBAChD;iBACF;gBACD;oBACE,OAAO,EAAE,6BAAkB;oBAC3B,UAAU,EAAE,CAAC,MAAmB,EAAE,MAAmB,EAAE,EAAE;wBACvD,OAAO,IAAI,6BAAkB,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;oBAChD,CAAC;oBACD,MAAM,EAAE,CAAC,cAAc,EAAE,cAAc,CAAC;iBACzC;gBACD;oBACE,OAAO,EAAE,qCAA0B;oBACnC,UAAU,EAAE,CACV,oBAA0C,EAC1C,kBAAsC,EACtC,cAA8B,EAC9B,iBAAoC,EACpC,MAAmB,EACnB,MAAmB,EACnB,YAAuC,EACvC,EAAE;wBACF,OAAO,IAAI,qCAA0B,CACnC,oBAAoB,EACpB,kBAAkB,EAClB,cAAc,EACd,iBAAiB,EACjB,MAAM,EACN,MAAM,EACN,YAAY,CACb,CAAC;oBACJ,CAAC;oBACD,MAAM,EAAE;wBACN,+BAAoB;wBACpB,6BAAkB;wBAClB,iBAAiB;wBACjB,wBAAiB;wBACjB,cAAc;wBACd,cAAc;wBACd,EAAE,KAAK,EAAE,2BAAwB,EAAE,QAAQ,EAAE,IAAI,EAAE,EAAE,2DAA2D;qBACjH;iBACF;gBAED,0FAA0F;gBAC1F,6EAA6E;gBAC7E,GAAG,CAAC,MAAM,CAAC,WAAW,EAAE,OAAO;oBAC7B,CAAC,CAAC;wBACE;4BACE,OAAO,EAAE,gBAAgB;4BACzB,UAAU,EAAE,KAAK,IAA6B,EAAE;gCAC9C,IAAI,CAAC;oCACH,uDAAuD;oCACvD,qEAAqE;oCACrE,qEAAqE;oCACrE,MAAM,aAAa,GAAG,wDAAa,sBAAsB,GAAC,CAAC;oCAC3D,OAAO,aAAa,CAAC;gCACvB,CAAC;gCAAC,MAAM,CAAC;oCACP,uEAAuE;oCACvE,OAAO,IAAI,CAAC;gCACd,CAAC;4BACH,CAAC;yBACF;qBACF;oBACH,CAAC,CAAC;wBACE;4BACE,OAAO,EAAE,gBAAgB;4BACzB,QAAQ,EAAE,IAAI;yBACf;qBACF,CAAC;gBAEN,mEAAmE;gBACnE,GAAG,CAAC,MAAM,CAAC,WAAW,EAAE,OAAO;oBAC7B,CAAC,CAAC;wBACE;4BACE,OAAO,EAAE,6BAAkB;4BAC3B,UAAU,EAAE,CACV,WAAwB,EACxB,cAA8B,EAC9B,UAA0B,EAC1B,MAAoB,EACpB,EAAE;gCACF,OAAO,IAAI,6BAAkB,CAC3B,WAAW,EACX,cAAc,EACd,UAAkC,EAClC,MAAM,CACP,CAAC;4BACJ,CAAC;4BACD,MAAM,EAAE,CAAC,cAAc,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,cAAc,CAAC;yBAC9E;qBACF;oBACH,CAAC,CAAC,EAAE,CAAC;gBAEP,+EAA+E;gBAC/E;oBACE,OAAO,EAAE,gBAAgB;oBACzB,UAAU,EAAE,GAAkB,EAAE;wBAC9B,IAAI,CAAC,MAAM,CAAC,aAAa,EAAE,CAAC;4BAC1B,MAAM,IAAI,qBAAc,CACtB,oBAAa,CAAC,iBAAiB,EAC/B,sEAAsE;gCACpE,qDAAqD;gCACrD,6DAA6D,CAChE,CAAC;wBACJ,CAAC;wBACD,MAAM,QAAQ,GAAG,MAAM,CAAC,aAA8B,CAAC;wBAEvD,4CAA4C;wBAC5C,IACE,OAAO,QAAQ,CAAC,qBAAqB,KAAK,UAAU;4BACpD,OAAO,QAAQ,CAAC,sBAAsB,KAAK,UAAU;4BACrD,OAAO,QAAQ,CAAC,gBAAgB,KAAK,UAAU,EAC/C,CAAC;4BACD,MAAM,IAAI,qBAAc,CACtB,oBAAa,CAAC,iBAAiB,EAC/B,kGAAkG,CACnG,CAAC;wBACJ,CAAC;wBAED,yDAAyD;wBACzD,CAAC;4BACC,MAAM,gBAAgB,GAAG,QAAoE,CAAC;4BAC9F,IAAI,OAAO,gBAAgB,CAAC,SAAS,KAAK,UAAU,EAAE,CAAC;gCACrD,gBAAgB,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC;4BAC1C,CAAC;wBACH,CAAC;wBACD,oEAAoE;wBACpE,IACE,OAAQ,QAAwF;6BAC7F,kBAAkB,KAAK,UAAU;4BACpC,MAAM,CAAC,KAAK,EACZ,CAAC;4BACD,MAAM,UAAU,GAA4B,EAAE,CAAC;4BAC/C,oCAAoC;4BACpC,IAAI,MAAM,CAAC,KAAK,CAAC,OAAO;gCAAE,UAAU,CAAC,OAAO,GAAG,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC;4BACpE,IAAI,MAAM,CAAC,KAAK,CAAC,WAAW;gCAAE,UAAU,CAAC,WAAW,GAAG,MAAM,CAAC,KAAK,CAAC,WAAW,CAAC;4BAChF,IAAI,MAAM,CAAC,KAAK,CAAC,OAAO;gCAAE,UAAU,CAAC,OAAO,GAAG,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC;4BACpE,IAAI,MAAM,CAAC,KAAK,CAAC,YAAY;gCAAE,UAAU,CAAC,YAAY,GAAG,MAAM,CAAC,KAAK,CAAC,YAAY,CAAC;4BACnF,IAAI,MAAM,CAAC,KAAK,CAAC,YAAY;gCAAE,UAAU,CAAC,YAAY,GAAG,MAAM,CAAC,KAAK,CAAC,YAAY,CAAC;4BACnF,IAAI,MAAM,CAAC,KAAK,CAAC,UAAU;gCAAE,UAAU,CAAC,UAAU,GAAG,MAAM,CAAC,KAAK,CAAC,UAAU,CAAC;4BAC7E,IAAI,MAAM,CAAC,KAAK,CAAC,gBAAgB;gCAAE,UAAU,CAAC,gBAAgB,GAAG,MAAM,CAAC,KAAK,CAAC,gBAAgB,CAAC;4BAC/F,oFAAoF;4BACpF,MAAM,UAAU,GAAG;gCACjB,GAAG,UAAU;gCACb,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,SAAS,EAAE,eAAe,IAAI,EAAE,CAAC;6BACnD,CAAC;4BAEA,QACD,CAAC,kBAAkB,CAAC,UAAU,CAAC,CAAC;wBACnC,CAAC;wBACD,OAAO,QAAQ,CAAC;oBAClB,CAAC;iBACF;gBACD;oBACE,OAAO,EAAE,+BAAwB;oBACjC,UAAU,EAAE,CACV,qBAAwD,EACxD,QAA8B,EAC9B,aAA4B,EAC5B,cAA8B,EAC9B,WAAwB,EACxB,iBAAoC,EACpC,MAAmB,EACnB,YAAuC,EACvC,EAAE;wBACF,OAAO,IAAI,+BAAwB,CACjC,qBAAqB,EACrB,QAAQ,EACR,aAAa,EACb,cAAc,EACd,WAAW,EACX,iBAAiB,EACjB,MAAM,EACN,YAAY,CACb,CAAC;oBACJ,CAAC;oBACD,MAAM,EAAE;wBACN,6BAA6B;wBAC7B,gBAAgB;wBAChB,gBAAgB;wBAChB,iBAAiB;wBACjB,cAAc;wBACd,wBAAiB;wBACjB,cAAc;wBACd,EAAE,KAAK,EAAE,2BAAwB,EAAE,QAAQ,EAAE,IAAI,EAAE,EAAE,2DAA2D;qBACjH;iBACF;gBAED,oEAAoE;gBACpE,GAAG,CAAC,MAAM,CAAC,WAAW;oBACpB,CAAC,CAAC;wBACE;4BACE,OAAO,EAAE,cAAc;4BACvB,UAAU,EAAE,KAAK,IAA0B,EAAE;gCAC3C,MAAM,QAAQ,GAAG,MAAM,CAAC,WAA0B,CAAC;gCAEnD,IAAI,CAAC,QAAQ,IAAI,OAAO,QAAQ,CAAC,OAAO,KAAK,UAAU,EAAE,CAAC;oCACxD,MAAM,IAAI,qBAAc,CAAC,oBAAa,CAAC,iBAAiB,EAAE,oCAAoC,CAAC,CAAC;gCAClG,CAAC;gCAED,yDAAyD;gCACzD,CAAC;oCACC,MAAM,gBAAgB,GAAG,QAAoE,CAAC;oCAC9F,IAAI,OAAO,gBAAgB,CAAC,SAAS,KAAK,UAAU,EAAE,CAAC;wCACrD,gBAAgB,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC;oCAC1C,CAAC;gCACH,CAAC;gCAED,+EAA+E;gCAC/E,iCAAiC;gCACjC,+EAA+E;gCAC/E,MAAM,YAAY,GAAG,MAAM,CAAC,GAAG,EAAE,SAAS,CAAC;gCAC3C,IAAI,YAAY,EAAE,CAAC;oCACjB,8EAA8E;oCAC9E,kFAAkF;oCAClF,IAAI,OAAO,QAAQ,CAAC,iBAAiB,KAAK,UAAU,EAAE,CAAC;wCACrD,MAAM,IAAI,qBAAc,CACtB,oBAAa,CAAC,iBAAiB,EAC/B,2EAA2E;4CACzE,4FAA4F,CAC/F,CAAC;oCACJ,CAAC;oCAED,wCAAwC;oCACxC,MAAM,cAAc,GAClB,YAAY,CAAC,MAAM,IAAI,IAAI,4BAAqB,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,WAAW,CAAC,CAAC;oCAE/E,4BAA4B;oCAC5B,IAAI,YAAY,CAAC,eAAe,EAAE,CAAC;wCACjC,KAAK,MAAM,CAAC,IAAI,EAAE,WAAW,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,YAAY,CAAC,eAAe,CAAC,EAAE,CAAC;4CAC/E,IAAI,CAAC;gDACH,IAAI,WAAW,CAAC,OAAO,EAAE,CAAC;oDACxB,kBAAkB;oDAClB,cAAc,CAAC,gBAAgB,CAAC,IAAI,EAAE,EAAE,OAAO,EAAE,WAAW,CAAC,OAAO,EAAE,CAAC,CAAC;gDAC1E,CAAC;qDAAM,IAAI,WAAW,CAAC,WAAW,EAAE,CAAC;oDACnC,sBAAsB;oDACtB,MAAM,cAAc,CAAC,2BAA2B,CAAC,IAAI,EAAE;wDACrD,OAAO,EAAE,EAAE,QAAQ,EAAE,WAAW,CAAC,WAAW,EAAE;qDAC/C,CAAC,CAAC;gDACL,CAAC;4CACH,CAAC;4CAAC,OAAO,KAAK,EAAE,CAAC;gDACf,MAAM,YAAY,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,eAAe,CAAC;gDAC9E,WAAW,CAAC,KAAK,EAAE,CACjB,oCAAoC,IAAI,MAAM,YAAY,2BAA2B,CACtF,CAAC;4CACJ,CAAC;wCACH,CAAC;oCACH,CAAC;oCAED,uCAAuC;oCACvC,QAAQ,CAAC,iBAAiB,CAAC,cAAc,CAAC,CAAC;oCAE3C,uBAAuB;oCACvB,IAAI,OAAO,QAAQ,CAAC,kBAAkB,KAAK,UAAU,IAAI,YAAY,CAAC,eAAe,EAAE,CAAC;wCACtF,qEAAqE;wCACrE,MAAM,UAAU,GAA0D,EAAE,CAAC;wCAC7E,IAAI,MAAM,CAAC,KAAK,EAAE,OAAO;4CAAE,UAAU,CAAC,OAAO,GAAG,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC;wCACrE,IAAI,MAAM,CAAC,KAAK,EAAE,WAAW;4CAAE,UAAU,CAAC,WAAW,GAAG,MAAM,CAAC,KAAK,CAAC,WAAW,CAAC;wCACjF,IAAI,MAAM,CAAC,KAAK,EAAE,YAAY;4CAAE,UAAU,CAAC,YAAY,GAAG,MAAM,CAAC,KAAK,CAAC,YAAY,CAAC;wCAEpF,4FAA4F;wCAC5F,uDAAuD;wCACvD,MAAM,aAAa,GAA0D,EAAE,CAAC;wCAChF,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,YAAY,CAAC,eAAe,CAAC,EAAE,CAAC;4CACxE,IACE,OAAO,KAAK,KAAK,QAAQ;gDACzB,OAAO,KAAK,KAAK,QAAQ;gDACzB,OAAO,KAAK,KAAK,SAAS;gDAC1B,KAAK,KAAK,SAAS,EACnB,CAAC;gDACD,aAAa,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;4CAC7B,CAAC;wCACH,CAAC;wCAED,MAAM,UAAU,GAA0D;4CACxE,GAAG,UAAU;4CACb,GAAG,aAAa;yCACjB,CAAC;wCACF,QAAQ,CAAC,kBAAkB,CAAC,UAAgE,CAAC,CAAC;oCAChG,CAAC;gCACH,CAAC;gCAED,OAAO,QAAQ,CAAC;4BAClB,CAAC;yBACF;wBACD;4BACE,OAAO,EAAE,+BAAwB;4BACjC,UAAU,EAAE,CACV,qBAAwD,EACxD,QAA8B,EAC9B,WAAwB,EACxB,cAA8B,EAC9B,WAAwB,EACxB,iBAAoC,EACpC,MAAmB,EACnB,YAAuC,EACvC,EAAE;gCACF,OAAO,IAAI,+BAAwB,CACjC,qBAAqB,EACrB,QAAQ,EACR,WAAW,EACX,cAAc,EACd,WAAW,EACX,iBAAiB,EACjB,MAAM,EACN,YAAY,CACb,CAAC;4BACJ,CAAC;4BACD,MAAM,EAAE;gCACN,6BAA6B;gCAC7B,gBAAgB;gCAChB,cAAc;gCACd,iBAAiB;gCACjB,cAAc;gCACd,wBAAiB;gCACjB,EAAE,KAAK,EAAE,2BAAwB,EAAE,QAAQ,EAAE,IAAI,EAAE,EAAE,2DAA2D;gCAChH,cAAc;6BACf;yBACF;qBACF;oBACH,CAAC,CAAC,EAAE,CAAC;gBAEP;oBACE,OAAO,EAAE,+BAAoB;oBAC7B,UAAU,EAAE,CACV,qBAAwD,EACxD,aAA4B,EAC5B,cAA8B,EAC9B,WAAwB,EACxB,iBAAoC,EACpC,MAAmB,EACnB,YAAuC,EAAE,2DAA2D;oBACpG,WAAyB,EACzB,EAAE;wBACF,OAAO,IAAI,+BAAoB,CAC7B,qBAAqB,EACrB,aAAa,EACb,cAAc,EACd,WAAW,EACX,iBAAiB,EACjB,MAAM,EACN,YAAY,EACZ,WAAW,CACZ,CAAC;oBACJ,CAAC;oBACD,MAAM,EAAE;wBACN,6BAA6B;wBAC7B,gBAAgB;wBAChB,iBAAiB;wBACjB,cAAc;wBACd,wBAAiB;wBACjB,cAAc;wBACd,EAAE,KAAK,EAAE,2BAAwB,EAAE,QAAQ,EAAE,IAAI,EAAE,EAAE,2DAA2D;wBAChH,EAAE,KAAK,EAAE,cAAc,EAAE,QAAQ,EAAE,IAAI,EAAE,EAAE,2DAA2D;qBACvG;iBACF;gBAED;oBACE,OAAO,EAAE,8BAAuB;oBAChC,UAAU,EAAE,CAAC,cAA8B,EAAE,EAAE;wBAC7C,OAAO,IAAI,8BAAuB,CAAC,cAAc,CAAC,CAAC;oBACrD,CAAC;oBACD,MAAM,EAAE,CAAC,iBAAiB,CAAC;iBAC5B;gBACD;oBACE,OAAO,EAAE,mCAA4B;oBACrC,UAAU,EAAE,CAAC,cAA8B,EAAE,EAAE;wBAC7C,OAAO,IAAI,mCAA4B,CAAC,cAAc,CAAC,CAAC;oBAC1D,CAAC;oBACD,MAAM,EAAE,CAAC,iBAAiB,CAAC;iBAC5B;gBAED,SAAS;gBACT,sBAAS;gBACT,GAAG,CAAC,MAAM,CAAC,aAAa,EAAE,MAAM,KAAK,SAAS,IAAI,MAAM,CAAC,aAAa,EAAE,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,sBAAS,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;aAChH;YACD,OAAO,EAAE;gBACP,kBAAW;gBACX,0BAAe;gBACf,qBAAU;gBACV,yBAAc;gBACd,2BAAgB;gBAChB,qCAA0B,EAAE,kCAAkC;gBAC9D,iCAAsB,EAAE,+DAA+D;gBACvF,wBAAiB;gBACjB,iDAAiD;gBACjD,8CAA8C;gBAC9C,8GAA8G;gBAC9G,iGAAiG;gBACjG,kGAAkG;gBAClG,GAAG,CAAC,MAAM,CAAC,SAAS,EAAE,OAAO,KAAK,KAAK,CAAC,CAAC,CAAC,CAAC,uBAAgB,EAAE,2BAAwB,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;gBAC5F,sBAAS;gBACT,GAAG,CAAC,MAAM,CAAC,aAAa,EAAE,MAAM,KAAK,SAAS,IAAI,MAAM,CAAC,aAAa,EAAE,MAAM,KAAK,QAAQ;oBACzF,CAAC,CAAC,CAAC,sBAAS,EAAE,0BAAW,CAAC;oBAC1B,CAAC,CAAC,EAAE,CAAC;gBACP,8BAAuB;gBACvB,mCAA4B;gBAC5B,GAAG,CAAC,MAAM,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,6BAAkB,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;gBAC5D,gBAAgB;gBAChB,+BAAwB;gBACxB,GAAG,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,cAAc,EAAE,+BAAwB,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;gBACzE,wBAAiB,EAAE,0EAA0E;gBAC7F,iBAAU,EAAE,8EAA8E;gBAC1F,2EAA2E;gBAC3E,4BAAqB;gBACrB,qFAAqF;gBACrF,cAAc;gBACd,cAAc,EAAE,+CAA+C;gBAC/D,yBAAyB,EAAE,sDAAsD;gBACjF,iFAAiF;gBACjF,2EAA2E;gBAC3E,+GAA+G;gBAC/G,gBAAgB;gBAChB,qBAAqB;gBACrB,6FAA6F;gBAE7F,yGAAyG;gBACzG,yEAAyE;gBACzE,8FAA8F;gBAC9F,0FAA0F;aAC3F;SACF,CAAC;IACJ,CAAC;IAED;;;;;;;;;;;;OAYG;IACK,MAAM,CAAC,cAAc,CAAC,MAAyB;QACrD,MAAM,MAAM,GAAG,uBAAgB,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;QAElD,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;YACpB,2CAA2C;YAC3C,MAAM,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC,MAAM;iBAC/B,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE;gBACX,MAAM,IAAI,GAAG,GAAG,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC;gBAC/D,OAAO,OAAO,IAAI,KAAK,GAAG,CAAC,OAAO,EAAE,CAAC;YACvC,CAAC,CAAC;iBACD,IAAI,CAAC,IAAI,CAAC,CAAC;YAEd,MAAM,IAAI,qBAAc,CACtB,oBAAa,CAAC,iBAAiB,EAC/B,uCAAuC,MAAM,MAAM;gBACjD,mFAAmF,CACtF,CAAC;QACJ,CAAC;QAED,sDAAsD;QACtD,sDAAsD;QACtD,6DAA6D;IAC/D,CAAC;CACF,CAAA;AA5sCY,gCAAU;qBAAV,UAAU;IAFtB,IAAA,eAAM,GAAE;IACR,IAAA,eAAM,EAAC,EAAE,CAAC;GACE,UAAU,CA4sCtB"}
|
|
1
|
+
{"version":3,"file":"auth.module.js","sourceRoot":"","sources":["../src/auth.module.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
import { CanActivate, ExecutionContext } from '@nestjs/common';
|
|
2
2
|
import { Reflector } from '@nestjs/core';
|
|
3
|
-
import {
|
|
4
|
-
import { NAuthConfig, BaseUser } from '@nauth-toolkit/core';
|
|
3
|
+
import { NAuthConfig, AuthService } from '@nauth-toolkit/core';
|
|
5
4
|
import { JwtService, SessionService } from '@nauth-toolkit/core/internal';
|
|
6
5
|
/**
|
|
7
6
|
* Native Auth Guard (NO Passport dependency)
|
|
@@ -23,9 +22,9 @@ export declare class AuthGuard implements CanActivate {
|
|
|
23
22
|
private readonly reflector;
|
|
24
23
|
private readonly jwtService;
|
|
25
24
|
private readonly sessionService;
|
|
26
|
-
private readonly
|
|
25
|
+
private readonly authService;
|
|
27
26
|
private readonly config;
|
|
28
|
-
constructor(reflector: Reflector, jwtService: JwtService, sessionService: SessionService,
|
|
27
|
+
constructor(reflector: Reflector, jwtService: JwtService, sessionService: SessionService, authService: AuthService, config: NAuthConfig);
|
|
29
28
|
canActivate(context: ExecutionContext): Promise<boolean>;
|
|
30
29
|
/**
|
|
31
30
|
* Extract JWT token from request with strict source validation based on configuration
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"auth.guard.d.ts","sourceRoot":"","sources":["../../src/guards/auth.guard.ts"],"names":[],"mappings":"AAAA,OAAO,EAAc,WAAW,EAAE,gBAAgB,EAAU,MAAM,gBAAgB,CAAC;AACnF,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AACzC,OAAO,
|
|
1
|
+
{"version":3,"file":"auth.guard.d.ts","sourceRoot":"","sources":["../../src/guards/auth.guard.ts"],"names":[],"mappings":"AAAA,OAAO,EAAc,WAAW,EAAE,gBAAgB,EAAU,MAAM,gBAAgB,CAAC;AACnF,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AACzC,OAAO,EACL,WAAW,EAKX,WAAW,EAEZ,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAE,UAAU,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC;AAK1E;;;;;;;;;;;;;;;GAeG;AACH,qBACa,SAAU,YAAW,WAAW;IAEzC,OAAO,CAAC,QAAQ,CAAC,SAAS;IAC1B,OAAO,CAAC,QAAQ,CAAC,UAAU;IAC3B,OAAO,CAAC,QAAQ,CAAC,cAAc;IAC/B,OAAO,CAAC,QAAQ,CAAC,WAAW;IAE5B,OAAO,CAAC,QAAQ,CAAC,MAAM;gBALN,SAAS,EAAE,SAAS,EACpB,UAAU,EAAE,UAAU,EACtB,cAAc,EAAE,cAAc,EAC9B,WAAW,EAAE,WAAW,EAExB,MAAM,EAAE,WAAW;IAGhC,WAAW,CAAC,OAAO,EAAE,gBAAgB,GAAG,OAAO,CAAC,OAAO,CAAC;IA2G9D;;;;;;;;;OASG;IACH,OAAO,CAAC,YAAY;CAwCrB"}
|
|
@@ -15,11 +15,11 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
15
15
|
exports.AuthGuard = void 0;
|
|
16
16
|
const common_1 = require("@nestjs/common");
|
|
17
17
|
const core_1 = require("@nestjs/core");
|
|
18
|
-
const typeorm_1 = require("typeorm");
|
|
19
18
|
const core_2 = require("@nauth-toolkit/core");
|
|
20
19
|
const internal_1 = require("@nauth-toolkit/core/internal");
|
|
21
20
|
const public_decorator_1 = require("../decorators/public.decorator");
|
|
22
21
|
const token_delivery_decorator_1 = require("../decorators/token-delivery.decorator");
|
|
22
|
+
const nauth_context_guard_1 = require("./nauth-context.guard");
|
|
23
23
|
/**
|
|
24
24
|
* Native Auth Guard (NO Passport dependency)
|
|
25
25
|
*
|
|
@@ -40,13 +40,13 @@ let AuthGuard = class AuthGuard {
|
|
|
40
40
|
reflector;
|
|
41
41
|
jwtService;
|
|
42
42
|
sessionService;
|
|
43
|
-
|
|
43
|
+
authService;
|
|
44
44
|
config;
|
|
45
|
-
constructor(reflector, jwtService, sessionService,
|
|
45
|
+
constructor(reflector, jwtService, sessionService, authService, config) {
|
|
46
46
|
this.reflector = reflector;
|
|
47
47
|
this.jwtService = jwtService;
|
|
48
48
|
this.sessionService = sessionService;
|
|
49
|
-
this.
|
|
49
|
+
this.authService = authService;
|
|
50
50
|
this.config = config;
|
|
51
51
|
}
|
|
52
52
|
async canActivate(context) {
|
|
@@ -87,61 +87,51 @@ let AuthGuard = class AuthGuard {
|
|
|
87
87
|
if (session.expiresAt < new Date()) {
|
|
88
88
|
throw new core_2.NAuthException(core_2.AuthErrorCode.SESSION_EXPIRED, 'Session has expired');
|
|
89
89
|
}
|
|
90
|
-
//
|
|
91
|
-
//
|
|
92
|
-
//
|
|
93
|
-
//
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
'isPhoneVerified',
|
|
105
|
-
'isActive',
|
|
106
|
-
'mustChangePassword',
|
|
107
|
-
'isLocked',
|
|
108
|
-
'lockReason',
|
|
109
|
-
'lockedAt',
|
|
110
|
-
'lockedUntil',
|
|
111
|
-
'failedLoginAttempts',
|
|
112
|
-
'lastFailedLoginAt',
|
|
113
|
-
'lastLoginAt',
|
|
114
|
-
'lastLoginIp',
|
|
115
|
-
'hasSocialAuth',
|
|
116
|
-
'socialProviders',
|
|
117
|
-
'mfaEnabled',
|
|
118
|
-
'mfaMethods',
|
|
119
|
-
'preferredMfaMethod',
|
|
120
|
-
'mfaExempt',
|
|
121
|
-
'mfaExemptReason',
|
|
122
|
-
'mfaExemptGrantedAt',
|
|
123
|
-
'metadata',
|
|
124
|
-
'createdAt',
|
|
125
|
-
'updatedAt',
|
|
126
|
-
],
|
|
127
|
-
where: { sub: validation.payload.sub },
|
|
128
|
-
});
|
|
129
|
-
if (!user) {
|
|
130
|
-
throw new core_2.NAuthException(core_2.AuthErrorCode.NOT_FOUND, 'User not found');
|
|
131
|
-
}
|
|
132
|
-
if (!user.isActive) {
|
|
133
|
-
throw new core_2.NAuthException(core_2.AuthErrorCode.ACCOUNT_INACTIVE, 'Account is not active');
|
|
134
|
-
}
|
|
135
|
-
// SECURITY CRITICAL: Re-check session hasn't been modified (optimistic locking)
|
|
136
|
-
// Prevents TOCTOU (Time-of-Check-Time-of-Use) vulnerabilities
|
|
137
|
-
const revalidated = await this.sessionService.findByIdLight(sessionId);
|
|
138
|
-
if (!revalidated || revalidated.version !== initialVersion || revalidated.isRevoked) {
|
|
139
|
-
throw new core_2.NAuthException(core_2.AuthErrorCode.TOKEN_INVALID, 'Session was modified during request - possible security breach');
|
|
90
|
+
// ============================================================================
|
|
91
|
+
// Load user via AuthService (service-first architecture)
|
|
92
|
+
// ============================================================================
|
|
93
|
+
// AuthService.getUserForAuthContext handles:
|
|
94
|
+
// - User lookup by sub
|
|
95
|
+
// - Active status check
|
|
96
|
+
// - Computing hasPasswordHash from passwordHash
|
|
97
|
+
// - Removing sensitive fields (passwordHash, totpSecret, backupCodes, passwordHistory)
|
|
98
|
+
//
|
|
99
|
+
// Wrap in context restoration to ensure ContextStorage.set() works
|
|
100
|
+
const store = (0, nauth_context_guard_1.getNAuthContextStore)(request);
|
|
101
|
+
if (!store) {
|
|
102
|
+
// No context available - should not happen with proper setup
|
|
103
|
+
throw new core_2.NAuthException(core_2.AuthErrorCode.INTERNAL_ERROR, 'Context not initialized');
|
|
140
104
|
}
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
105
|
+
return core_2.ContextStorage.enterStore(store, async () => {
|
|
106
|
+
const user = await this.authService.getUserForAuthContext(validation.payload.sub);
|
|
107
|
+
// SECURITY CRITICAL: Re-check session hasn't been modified (optimistic locking)
|
|
108
|
+
// Prevents TOCTOU (Time-of-Check-Time-of-Use) vulnerabilities
|
|
109
|
+
const revalidated = await this.sessionService.findByIdLight(sessionId);
|
|
110
|
+
if (!revalidated || revalidated.version !== initialVersion || revalidated.isRevoked) {
|
|
111
|
+
throw new core_2.NAuthException(core_2.AuthErrorCode.TOKEN_INVALID, 'Session was modified during request - possible security breach');
|
|
112
|
+
}
|
|
113
|
+
// Attach user to request
|
|
114
|
+
request.user = user;
|
|
115
|
+
request.token = validation.payload;
|
|
116
|
+
// Store in ContextStorage for service access
|
|
117
|
+
core_2.ContextStorage.set('CURRENT_USER', user);
|
|
118
|
+
core_2.ContextStorage.set('JWT_PAYLOAD', validation.payload);
|
|
119
|
+
core_2.ContextStorage.set('CURRENT_SESSION', sessionId);
|
|
120
|
+
// Update CLIENT_INFO with sessionId and userId
|
|
121
|
+
const clientInfo = core_2.ContextStorage.get('CLIENT_INFO');
|
|
122
|
+
if (clientInfo) {
|
|
123
|
+
const sessionIdNumber = typeof sessionId === 'number' ? sessionId : parseInt(String(sessionId), 10);
|
|
124
|
+
const userIdNumber = typeof user.id === 'number' ? user.id : parseInt(String(user.id), 10);
|
|
125
|
+
if (!isNaN(sessionIdNumber) && sessionIdNumber > 0) {
|
|
126
|
+
clientInfo.sessionId = sessionIdNumber;
|
|
127
|
+
}
|
|
128
|
+
if (!isNaN(userIdNumber) && userIdNumber > 0) {
|
|
129
|
+
clientInfo.userId = userIdNumber;
|
|
130
|
+
}
|
|
131
|
+
core_2.ContextStorage.set('CLIENT_INFO', clientInfo);
|
|
132
|
+
}
|
|
133
|
+
return true;
|
|
134
|
+
});
|
|
145
135
|
}
|
|
146
136
|
/**
|
|
147
137
|
* Extract JWT token from request with strict source validation based on configuration
|
|
@@ -192,11 +182,10 @@ let AuthGuard = class AuthGuard {
|
|
|
192
182
|
exports.AuthGuard = AuthGuard;
|
|
193
183
|
exports.AuthGuard = AuthGuard = __decorate([
|
|
194
184
|
(0, common_1.Injectable)(),
|
|
195
|
-
__param(3, (0, common_1.Inject)('UserRepository')),
|
|
196
185
|
__param(4, (0, common_1.Inject)('NAUTH_CONFIG')),
|
|
197
186
|
__metadata("design:paramtypes", [core_1.Reflector,
|
|
198
187
|
internal_1.JwtService,
|
|
199
188
|
internal_1.SessionService,
|
|
200
|
-
|
|
189
|
+
core_2.AuthService, Object])
|
|
201
190
|
], AuthGuard);
|
|
202
191
|
//# sourceMappingURL=auth.guard.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"auth.guard.js","sourceRoot":"","sources":["../../src/guards/auth.guard.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,2CAAmF;AACnF,uCAAyC;AACzC,
|
|
1
|
+
{"version":3,"file":"auth.guard.js","sourceRoot":"","sources":["../../src/guards/auth.guard.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
import { CanActivate, ExecutionContext } from '@nestjs/common';
|
|
2
|
+
import { NAuthConfig } from '@nauth-toolkit/core';
|
|
3
|
+
import { GeoLocationService } from '@nauth-toolkit/core/internal';
|
|
4
|
+
/**
|
|
5
|
+
* NAuth Context Guard
|
|
6
|
+
*
|
|
7
|
+
* Runs FIRST for HTTP requests (registered as APP_GUARD).
|
|
8
|
+
* Initializes AsyncLocalStorage context and extracts client information.
|
|
9
|
+
*
|
|
10
|
+
* **Responsibilities:**
|
|
11
|
+
* - Creates a new AsyncLocalStorage store using `ContextStorage.run()`
|
|
12
|
+
* - Stores the created store on the raw request object for subsequent hooks/interceptors
|
|
13
|
+
* - Extracts and stores client info (IP, user agent, device token, geolocation)
|
|
14
|
+
* - Stores HTTP_RESPONSE in context for services that need response access
|
|
15
|
+
*
|
|
16
|
+
* **Why a Guard (not Middleware):**
|
|
17
|
+
* - Guards run before interceptors, ensuring context is available for both guards and controllers
|
|
18
|
+
* - Works with Fastify adapter (Nest middleware is not consistently supported)
|
|
19
|
+
* - Mirrors the core FastifyAdapter pattern for context management
|
|
20
|
+
*
|
|
21
|
+
* @example
|
|
22
|
+
* ```typescript
|
|
23
|
+
* // Registered globally in AuthModule as APP_GUARD
|
|
24
|
+
* // No manual usage required - runs automatically for all HTTP requests
|
|
25
|
+
* ```
|
|
26
|
+
*/
|
|
27
|
+
export declare class NAuthContextGuard implements CanActivate {
|
|
28
|
+
private readonly config;
|
|
29
|
+
private readonly geoLocationService?;
|
|
30
|
+
private readonly clientInfoService;
|
|
31
|
+
constructor(config: NAuthConfig, geoLocationService?: GeoLocationService | undefined);
|
|
32
|
+
canActivate(context: ExecutionContext): Promise<boolean>;
|
|
33
|
+
/**
|
|
34
|
+
* Extract client information and store in context
|
|
35
|
+
*
|
|
36
|
+
* Equivalent to core ClientInfoHandler behavior.
|
|
37
|
+
*/
|
|
38
|
+
private extractAndStoreClientInfo;
|
|
39
|
+
}
|
|
40
|
+
/**
|
|
41
|
+
* Get the context store from request (for use in interceptor)
|
|
42
|
+
*/
|
|
43
|
+
export declare function getNAuthContextStore(request: unknown): Map<string, unknown> | undefined;
|
|
44
|
+
//# sourceMappingURL=nauth-context.guard.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"nauth-context.guard.d.ts","sourceRoot":"","sources":["../../src/guards/nauth-context.guard.ts"],"names":[],"mappings":"AAAA,OAAO,EAAc,WAAW,EAAE,gBAAgB,EAAoB,MAAM,gBAAgB,CAAC;AAC7F,OAAO,EAKL,WAAW,EAEZ,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAE,kBAAkB,EAAE,MAAM,8BAA8B,CAAC;AAOlE;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,qBACa,iBAAkB,YAAW,WAAW;IAKjD,OAAO,CAAC,QAAQ,CAAC,MAAM;IAEvB,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CAAC;IANtC,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAA2B;gBAI1C,MAAM,EAAE,WAAW,EAEnB,kBAAkB,CAAC,EAAE,kBAAkB,YAAA;IAGpD,WAAW,CAAC,OAAO,EAAE,gBAAgB,GAAG,OAAO,CAAC,OAAO,CAAC;IAsB9D;;;;OAIG;YACW,yBAAyB;CAiExC;AAED;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,OAAO,GAAG,GAAG,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,CAEvF"}
|
|
@@ -0,0 +1,140 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
3
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
4
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
5
|
+
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
6
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
7
|
+
};
|
|
8
|
+
var __metadata = (this && this.__metadata) || function (k, v) {
|
|
9
|
+
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
10
|
+
};
|
|
11
|
+
var __param = (this && this.__param) || function (paramIndex, decorator) {
|
|
12
|
+
return function (target, key) { decorator(target, key, paramIndex); }
|
|
13
|
+
};
|
|
14
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
15
|
+
exports.NAuthContextGuard = void 0;
|
|
16
|
+
exports.getNAuthContextStore = getNAuthContextStore;
|
|
17
|
+
const common_1 = require("@nestjs/common");
|
|
18
|
+
const core_1 = require("@nauth-toolkit/core");
|
|
19
|
+
const internal_1 = require("@nauth-toolkit/core/internal");
|
|
20
|
+
/**
|
|
21
|
+
* Symbol for storing context store on request (avoids property name collisions)
|
|
22
|
+
*/
|
|
23
|
+
const NAUTH_CONTEXT_STORE = Symbol.for('nauth.contextStore');
|
|
24
|
+
/**
|
|
25
|
+
* NAuth Context Guard
|
|
26
|
+
*
|
|
27
|
+
* Runs FIRST for HTTP requests (registered as APP_GUARD).
|
|
28
|
+
* Initializes AsyncLocalStorage context and extracts client information.
|
|
29
|
+
*
|
|
30
|
+
* **Responsibilities:**
|
|
31
|
+
* - Creates a new AsyncLocalStorage store using `ContextStorage.run()`
|
|
32
|
+
* - Stores the created store on the raw request object for subsequent hooks/interceptors
|
|
33
|
+
* - Extracts and stores client info (IP, user agent, device token, geolocation)
|
|
34
|
+
* - Stores HTTP_RESPONSE in context for services that need response access
|
|
35
|
+
*
|
|
36
|
+
* **Why a Guard (not Middleware):**
|
|
37
|
+
* - Guards run before interceptors, ensuring context is available for both guards and controllers
|
|
38
|
+
* - Works with Fastify adapter (Nest middleware is not consistently supported)
|
|
39
|
+
* - Mirrors the core FastifyAdapter pattern for context management
|
|
40
|
+
*
|
|
41
|
+
* @example
|
|
42
|
+
* ```typescript
|
|
43
|
+
* // Registered globally in AuthModule as APP_GUARD
|
|
44
|
+
* // No manual usage required - runs automatically for all HTTP requests
|
|
45
|
+
* ```
|
|
46
|
+
*/
|
|
47
|
+
let NAuthContextGuard = class NAuthContextGuard {
|
|
48
|
+
config;
|
|
49
|
+
geoLocationService;
|
|
50
|
+
clientInfoService = new core_1.ClientInfoService();
|
|
51
|
+
constructor(config, geoLocationService) {
|
|
52
|
+
this.config = config;
|
|
53
|
+
this.geoLocationService = geoLocationService;
|
|
54
|
+
}
|
|
55
|
+
async canActivate(context) {
|
|
56
|
+
// Only operate in HTTP context
|
|
57
|
+
if (context.getType() !== 'http') {
|
|
58
|
+
return true;
|
|
59
|
+
}
|
|
60
|
+
const request = context.switchToHttp().getRequest();
|
|
61
|
+
const response = context.switchToHttp().getResponse();
|
|
62
|
+
// Initialize AsyncLocalStorage context
|
|
63
|
+
// Store the context store on the request for subsequent hooks/interceptors
|
|
64
|
+
return core_1.ContextStorage.run(() => {
|
|
65
|
+
// Store context store on request for restoration in interceptor
|
|
66
|
+
request[NAUTH_CONTEXT_STORE] = core_1.ContextStorage.getStore();
|
|
67
|
+
// Extract and store client information
|
|
68
|
+
this.extractAndStoreClientInfo(request, response);
|
|
69
|
+
return true;
|
|
70
|
+
});
|
|
71
|
+
}
|
|
72
|
+
/**
|
|
73
|
+
* Extract client information and store in context
|
|
74
|
+
*
|
|
75
|
+
* Equivalent to core ClientInfoHandler behavior.
|
|
76
|
+
*/
|
|
77
|
+
async extractAndStoreClientInfo(request, response) {
|
|
78
|
+
const req = request;
|
|
79
|
+
const headers = req.headers || {};
|
|
80
|
+
const userAgent = headers['user-agent'];
|
|
81
|
+
const userAgentString = typeof userAgent === 'string' ? userAgent : 'unknown';
|
|
82
|
+
// Parse user agent to extract platform and browser
|
|
83
|
+
const parsedUA = this.clientInfoService.parseUserAgent(userAgentString);
|
|
84
|
+
// Extract device token from cookie or header
|
|
85
|
+
const deviceTokenCookieName = (0, core_1.getDeviceTokenCookieName)(this.config);
|
|
86
|
+
const deviceTokenCookie = req.cookies?.[deviceTokenCookieName];
|
|
87
|
+
const deviceTokenHeader = headers['x-device-token'] || headers['X-Device-Token'];
|
|
88
|
+
const deviceToken = (typeof deviceTokenCookie === 'string' ? deviceTokenCookie : undefined) ||
|
|
89
|
+
(typeof deviceTokenHeader === 'string' ? deviceTokenHeader : undefined) ||
|
|
90
|
+
(deviceTokenHeader ? String(deviceTokenHeader) : undefined);
|
|
91
|
+
// Extract IP address
|
|
92
|
+
const ipAddress = (0, core_1.extractClientIp)(req);
|
|
93
|
+
const clientInfo = {
|
|
94
|
+
ipAddress,
|
|
95
|
+
userAgent: userAgentString,
|
|
96
|
+
deviceToken,
|
|
97
|
+
deviceName: req.body?.deviceName || parsedUA.deviceName || undefined,
|
|
98
|
+
deviceType: (req.body?.deviceType || parsedUA.deviceType || undefined),
|
|
99
|
+
platform: parsedUA.platform || undefined,
|
|
100
|
+
browser: parsedUA.browser || undefined,
|
|
101
|
+
sessionId: undefined, // Set later by AuthGuard after token validation
|
|
102
|
+
userId: undefined, // Set later by AuthGuard after token validation
|
|
103
|
+
ipCountry: undefined,
|
|
104
|
+
ipCity: undefined,
|
|
105
|
+
ipLatitude: undefined,
|
|
106
|
+
ipLongitude: undefined,
|
|
107
|
+
};
|
|
108
|
+
// Populate geolocation if service available
|
|
109
|
+
if (this.geoLocationService && clientInfo.ipAddress && clientInfo.ipAddress !== '0.0.0.0') {
|
|
110
|
+
try {
|
|
111
|
+
const geo = await this.geoLocationService.getIpGeolocation(clientInfo.ipAddress);
|
|
112
|
+
clientInfo.ipCountry = geo.country;
|
|
113
|
+
clientInfo.ipCity = geo.city;
|
|
114
|
+
clientInfo.ipLatitude = geo.latitude;
|
|
115
|
+
clientInfo.ipLongitude = geo.longitude;
|
|
116
|
+
}
|
|
117
|
+
catch {
|
|
118
|
+
// Non-blocking: Silently fail - geolocation remains undefined
|
|
119
|
+
// Errors are already logged by GeoLocationService
|
|
120
|
+
}
|
|
121
|
+
}
|
|
122
|
+
// Store in AsyncLocalStorage context
|
|
123
|
+
core_1.ContextStorage.set('CLIENT_INFO', clientInfo);
|
|
124
|
+
core_1.ContextStorage.set('HTTP_RESPONSE', response);
|
|
125
|
+
}
|
|
126
|
+
};
|
|
127
|
+
exports.NAuthContextGuard = NAuthContextGuard;
|
|
128
|
+
exports.NAuthContextGuard = NAuthContextGuard = __decorate([
|
|
129
|
+
(0, common_1.Injectable)(),
|
|
130
|
+
__param(0, (0, common_1.Inject)('NAUTH_CONFIG')),
|
|
131
|
+
__param(1, (0, common_1.Optional)()),
|
|
132
|
+
__metadata("design:paramtypes", [Object, internal_1.GeoLocationService])
|
|
133
|
+
], NAuthContextGuard);
|
|
134
|
+
/**
|
|
135
|
+
* Get the context store from request (for use in interceptor)
|
|
136
|
+
*/
|
|
137
|
+
function getNAuthContextStore(request) {
|
|
138
|
+
return request[NAUTH_CONTEXT_STORE];
|
|
139
|
+
}
|
|
140
|
+
//# sourceMappingURL=nauth-context.guard.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"nauth-context.guard.js","sourceRoot":"","sources":["../../src/guards/nauth-context.guard.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
|
@@ -14,11 +14,12 @@ export { AuthModule, NAuthModuleConfig } from './auth.module';
|
|
|
14
14
|
* NestJS Guards - Route protection and authentication
|
|
15
15
|
*/
|
|
16
16
|
export { AuthGuard } from './guards/auth.guard';
|
|
17
|
+
export { NAuthContextGuard } from './guards/nauth-context.guard';
|
|
17
18
|
export { CsrfGuard } from './guards/csrf.guard';
|
|
18
19
|
/**
|
|
19
20
|
* NestJS Interceptors - Request/response processing
|
|
20
21
|
*/
|
|
21
|
-
export {
|
|
22
|
+
export { NAuthContextInterceptor } from './interceptors/nauth-context.interceptor';
|
|
22
23
|
export { CookieTokenInterceptor } from './interceptors/cookie-token.interceptor';
|
|
23
24
|
/**
|
|
24
25
|
* NestJS Decorators - Parameter decorators and metadata
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAWH,cAAc,qBAAqB,CAAC;AAMpC;;GAEG;AACH,OAAO,EAAE,UAAU,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAC;AAE9D;;GAEG;AACH,OAAO,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAChD,OAAO,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAEhD;;GAEG;AACH,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAWH,cAAc,qBAAqB,CAAC;AAMpC;;GAEG;AACH,OAAO,EAAE,UAAU,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAC;AAE9D;;GAEG;AACH,OAAO,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAChD,OAAO,EAAE,iBAAiB,EAAE,MAAM,8BAA8B,CAAC;AACjE,OAAO,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAEhD;;GAEG;AACH,OAAO,EAAE,uBAAuB,EAAE,MAAM,0CAA0C,CAAC;AACnF,OAAO,EAAE,sBAAsB,EAAE,MAAM,yCAAyC,CAAC;AAEjF;;GAEG;AACH,OAAO,EAAE,WAAW,EAAE,MAAM,qCAAqC,CAAC;AAClE,OAAO,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,+BAA+B,CAAC;AACtE,OAAO,EAAE,UAAU,EAAE,MAAM,oCAAoC,CAAC;AAChE,OAAO,EAAE,aAAa,EAAE,kBAAkB,EAAE,aAAa,EAAE,MAAM,uCAAuC,CAAC;AAEzG;;GAEG;AACH,OAAO,EAAE,wBAAwB,EAAE,MAAM,uCAAuC,CAAC;AAEjF;;GAEG;AACH,OAAO,EAAE,mBAAmB,EAAE,MAAM,mCAAmC,CAAC;AAExE;;GAEG;AACH,OAAO,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAEtD;;GAEG;AACH,cAAc,OAAO,CAAC;AAEtB;;GAEG;AACH,OAAO,EACL,4BAA4B,EAC5B,yBAAyB,EACzB,yBAAyB,GAC1B,MAAM,qCAAqC,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -21,7 +21,7 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
|
21
21
|
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
22
22
|
};
|
|
23
23
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
24
|
-
exports.createRedisClusterAdapter = exports.createRedisStorageAdapter = exports.createDatabaseStorageAdapter = exports.CsrfService = exports.NestJsLoggerAdapter = exports.NAuthHttpExceptionFilter = exports.TOKEN_DELIVERY_KEY = exports.TokenDelivery = exports.ClientInfo = exports.IS_PUBLIC_KEY = exports.Public = exports.CurrentUser = exports.CookieTokenInterceptor = exports.
|
|
24
|
+
exports.createRedisClusterAdapter = exports.createRedisStorageAdapter = exports.createDatabaseStorageAdapter = exports.CsrfService = exports.NestJsLoggerAdapter = exports.NAuthHttpExceptionFilter = exports.TOKEN_DELIVERY_KEY = exports.TokenDelivery = exports.ClientInfo = exports.IS_PUBLIC_KEY = exports.Public = exports.CurrentUser = exports.CookieTokenInterceptor = exports.NAuthContextInterceptor = exports.CsrfGuard = exports.NAuthContextGuard = exports.AuthGuard = exports.AuthModule = void 0;
|
|
25
25
|
// ============================================================================
|
|
26
26
|
// Re-export Public API from Core
|
|
27
27
|
// ============================================================================
|
|
@@ -45,13 +45,15 @@ Object.defineProperty(exports, "AuthModule", { enumerable: true, get: function (
|
|
|
45
45
|
*/
|
|
46
46
|
var auth_guard_1 = require("./guards/auth.guard");
|
|
47
47
|
Object.defineProperty(exports, "AuthGuard", { enumerable: true, get: function () { return auth_guard_1.AuthGuard; } });
|
|
48
|
+
var nauth_context_guard_1 = require("./guards/nauth-context.guard");
|
|
49
|
+
Object.defineProperty(exports, "NAuthContextGuard", { enumerable: true, get: function () { return nauth_context_guard_1.NAuthContextGuard; } });
|
|
48
50
|
var csrf_guard_1 = require("./guards/csrf.guard");
|
|
49
51
|
Object.defineProperty(exports, "CsrfGuard", { enumerable: true, get: function () { return csrf_guard_1.CsrfGuard; } });
|
|
50
52
|
/**
|
|
51
53
|
* NestJS Interceptors - Request/response processing
|
|
52
54
|
*/
|
|
53
|
-
var
|
|
54
|
-
Object.defineProperty(exports, "
|
|
55
|
+
var nauth_context_interceptor_1 = require("./interceptors/nauth-context.interceptor");
|
|
56
|
+
Object.defineProperty(exports, "NAuthContextInterceptor", { enumerable: true, get: function () { return nauth_context_interceptor_1.NAuthContextInterceptor; } });
|
|
55
57
|
var cookie_token_interceptor_1 = require("./interceptors/cookie-token.interceptor");
|
|
56
58
|
Object.defineProperty(exports, "CookieTokenInterceptor", { enumerable: true, get: function () { return cookie_token_interceptor_1.CookieTokenInterceptor; } });
|
|
57
59
|
/**
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAAA;;;;;;GAMG;;;;;;;;;;;;;;;;;AAEH,+EAA+E;AAC/E,iCAAiC;AACjC,+EAA+E;AAC/E,+EAA+E;AAC/E,kFAAkF;AAClF,qCAAqC;AACrC,EAAE;AACF,wDAAwD;AACxD,qDAAqD;AACrD,sDAAoC;AAEpC,+EAA+E;AAC/E,0BAA0B;AAC1B,+EAA+E;AAE/E;;GAEG;AACH,6CAA8D;AAArD,yGAAA,UAAU,OAAA;AAEnB;;GAEG;AACH,kDAAgD;AAAvC,uGAAA,SAAS,OAAA;AAClB,kDAAgD;AAAvC,uGAAA,SAAS,OAAA;AAElB;;GAEG;AACH,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAAA;;;;;;GAMG;;;;;;;;;;;;;;;;;AAEH,+EAA+E;AAC/E,iCAAiC;AACjC,+EAA+E;AAC/E,+EAA+E;AAC/E,kFAAkF;AAClF,qCAAqC;AACrC,EAAE;AACF,wDAAwD;AACxD,qDAAqD;AACrD,sDAAoC;AAEpC,+EAA+E;AAC/E,0BAA0B;AAC1B,+EAA+E;AAE/E;;GAEG;AACH,6CAA8D;AAArD,yGAAA,UAAU,OAAA;AAEnB;;GAEG;AACH,kDAAgD;AAAvC,uGAAA,SAAS,OAAA;AAClB,oEAAiE;AAAxD,wHAAA,iBAAiB,OAAA;AAC1B,kDAAgD;AAAvC,uGAAA,SAAS,OAAA;AAElB;;GAEG;AACH,sFAAmF;AAA1E,oIAAA,uBAAuB,OAAA;AAChC,oFAAiF;AAAxE,kIAAA,sBAAsB,OAAA;AAE/B;;GAEG;AACH,8EAAkE;AAAzD,qHAAA,WAAW,OAAA;AACpB,kEAAsE;AAA7D,0GAAA,MAAM,OAAA;AAAE,iHAAA,aAAa,OAAA;AAC9B,4EAAgE;AAAvD,mHAAA,UAAU,OAAA;AACnB,kFAAyG;AAAhG,yHAAA,aAAa,OAAA;AAAE,8HAAA,kBAAkB,OAAA;AAE1C;;GAEG;AACH,qFAAiF;AAAxE,uIAAA,wBAAwB,OAAA;AAEjC;;GAEG;AACH,2EAAwE;AAA/D,4HAAA,mBAAmB,OAAA;AAE5B;;GAEG;AACH,wDAAsD;AAA7C,2GAAA,WAAW,OAAA;AAEpB;;GAEG;AACH,wCAAsB;AAEtB;;GAEG;AACH,+EAI6C;AAH3C,uIAAA,4BAA4B,OAAA;AAC5B,oIAAA,yBAAyB,OAAA;AACzB,oIAAA,yBAAyB,OAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cookie-token.interceptor.d.ts","sourceRoot":"","sources":["../../src/interceptors/cookie-token.interceptor.ts"],"names":[],"mappings":"AAAA,OAAO,EAAc,eAAe,EAAE,gBAAgB,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAC5F,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AACzC,OAAO,EAAE,UAAU,EAAE,MAAM,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"cookie-token.interceptor.d.ts","sourceRoot":"","sources":["../../src/interceptors/cookie-token.interceptor.ts"],"names":[],"mappings":"AAAA,OAAO,EAAc,eAAe,EAAE,gBAAgB,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAC5F,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AACzC,OAAO,EAAE,UAAU,EAAE,MAAM,MAAM,CAAC;AAIlC,OAAO,EAAE,wBAAwB,EAAE,MAAM,yCAAyC,CAAC;AAEnF;;;;;;;;;;;;;;;GAeG;AACH,qBACa,sBAAuB,YAAW,eAAe;IAE1D,OAAO,CAAC,QAAQ,CAAC,iBAAiB;IAClC,OAAO,CAAC,QAAQ,CAAC,SAAS;gBADT,iBAAiB,EAAE,wBAAwB,EAC3C,SAAS,EAAE,SAAS;IAGvC,SAAS,CAAC,OAAO,EAAE,gBAAgB,EAAE,IAAI,EAAE,WAAW,GAAG,UAAU,CAAC,OAAO,CAAC;CAkF7E"}
|
|
@@ -49,6 +49,16 @@ let CookieTokenInterceptor = class CookieTokenInterceptor {
|
|
|
49
49
|
// Determine effective delivery for this request
|
|
50
50
|
const routeMode = this.reflector.get(token_delivery_decorator_1.TOKEN_DELIVERY_KEY, context.getHandler());
|
|
51
51
|
const effective = this.tokenDeliveryHttp.resolveEffectiveDelivery(req, routeMode);
|
|
52
|
+
// ============================================================================
|
|
53
|
+
// Expose route-level delivery decision to downstream handlers
|
|
54
|
+
// ============================================================================
|
|
55
|
+
// Social redirect endpoints (and other framework-neutral handlers) may need to
|
|
56
|
+
// know the route-level delivery override in hybrid deployments. Provider callbacks
|
|
57
|
+
// often omit `Origin`, so the only deterministic signal is the route itself.
|
|
58
|
+
//
|
|
59
|
+
// We store it on the request object using a non-enumerable-ish private-ish key.
|
|
60
|
+
// Frameworks tolerate extra properties on the request object (Express/Fastify).
|
|
61
|
+
req.__nauthRouteDelivery = routeMode;
|
|
52
62
|
return next.handle().pipe((0, operators_1.map)((data) => {
|
|
53
63
|
// ============================================================================
|
|
54
64
|
// Safety: Only process object responses
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cookie-token.interceptor.js","sourceRoot":"","sources":["../../src/interceptors/cookie-token.interceptor.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,2CAA4F;AAC5F,uCAAyC;AAEzC,8CAAqC;
|
|
1
|
+
{"version":3,"file":"cookie-token.interceptor.js","sourceRoot":"","sources":["../../src/interceptors/cookie-token.interceptor.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/interceptors/index.ts"],"names":[],"mappings":"AAAA,cAAc,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/interceptors/index.ts"],"names":[],"mappings":"AAAA,cAAc,6BAA6B,CAAC;AAC5C,cAAc,4BAA4B,CAAC"}
|
|
@@ -14,6 +14,6 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
|
14
14
|
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
15
|
};
|
|
16
16
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
-
__exportStar(require("./
|
|
17
|
+
__exportStar(require("./nauth-context.interceptor"), exports);
|
|
18
18
|
__exportStar(require("./cookie-token.interceptor"), exports);
|
|
19
19
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/interceptors/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/interceptors/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,8DAA4C;AAC5C,6DAA2C"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import { NestInterceptor, ExecutionContext, CallHandler } from '@nestjs/common';
|
|
2
|
+
import { Observable } from 'rxjs';
|
|
3
|
+
/**
|
|
4
|
+
* NAuth Context Interceptor
|
|
5
|
+
*
|
|
6
|
+
* Re-enters the AsyncLocalStorage context that was initialized by NAuthContextGuard.
|
|
7
|
+
* This ensures controllers and services run inside the same request-scoped context.
|
|
8
|
+
*
|
|
9
|
+
* **Why This is Needed:**
|
|
10
|
+
* - Guards and interceptors run in separate execution contexts
|
|
11
|
+
* - AsyncLocalStorage context from the guard is not automatically available to controllers
|
|
12
|
+
* - This interceptor restores the context using `ContextStorage.enterStore()`
|
|
13
|
+
*
|
|
14
|
+
* **Pattern:**
|
|
15
|
+
* - Mirrors the core FastifyAdapter pattern for context restoration
|
|
16
|
+
* - Works with both Express and Fastify adapters
|
|
17
|
+
*
|
|
18
|
+
* @example
|
|
19
|
+
* ```typescript
|
|
20
|
+
* // Registered globally in AuthModule as APP_INTERCEPTOR
|
|
21
|
+
* // No manual usage required - runs automatically for all HTTP requests
|
|
22
|
+
* ```
|
|
23
|
+
*/
|
|
24
|
+
export declare class NAuthContextInterceptor implements NestInterceptor {
|
|
25
|
+
intercept(context: ExecutionContext, next: CallHandler): Observable<unknown>;
|
|
26
|
+
}
|
|
27
|
+
//# sourceMappingURL=nauth-context.interceptor.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"nauth-context.interceptor.d.ts","sourceRoot":"","sources":["../../src/interceptors/nauth-context.interceptor.ts"],"names":[],"mappings":"AAAA,OAAO,EAAc,eAAe,EAAE,gBAAgB,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAC5F,OAAO,EAAE,UAAU,EAAE,MAAM,MAAM,CAAC;AAIlC;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,qBACa,uBAAwB,YAAW,eAAe;IAC7D,SAAS,CAAC,OAAO,EAAE,gBAAgB,EAAE,IAAI,EAAE,WAAW,GAAG,UAAU,CAAC,OAAO,CAAC;CA2B7E"}
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
3
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
4
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
5
|
+
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
6
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
7
|
+
};
|
|
8
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
9
|
+
exports.NAuthContextInterceptor = void 0;
|
|
10
|
+
const common_1 = require("@nestjs/common");
|
|
11
|
+
const rxjs_1 = require("rxjs");
|
|
12
|
+
const core_1 = require("@nauth-toolkit/core");
|
|
13
|
+
const nauth_context_guard_1 = require("../guards/nauth-context.guard");
|
|
14
|
+
/**
|
|
15
|
+
* NAuth Context Interceptor
|
|
16
|
+
*
|
|
17
|
+
* Re-enters the AsyncLocalStorage context that was initialized by NAuthContextGuard.
|
|
18
|
+
* This ensures controllers and services run inside the same request-scoped context.
|
|
19
|
+
*
|
|
20
|
+
* **Why This is Needed:**
|
|
21
|
+
* - Guards and interceptors run in separate execution contexts
|
|
22
|
+
* - AsyncLocalStorage context from the guard is not automatically available to controllers
|
|
23
|
+
* - This interceptor restores the context using `ContextStorage.enterStore()`
|
|
24
|
+
*
|
|
25
|
+
* **Pattern:**
|
|
26
|
+
* - Mirrors the core FastifyAdapter pattern for context restoration
|
|
27
|
+
* - Works with both Express and Fastify adapters
|
|
28
|
+
*
|
|
29
|
+
* @example
|
|
30
|
+
* ```typescript
|
|
31
|
+
* // Registered globally in AuthModule as APP_INTERCEPTOR
|
|
32
|
+
* // No manual usage required - runs automatically for all HTTP requests
|
|
33
|
+
* ```
|
|
34
|
+
*/
|
|
35
|
+
let NAuthContextInterceptor = class NAuthContextInterceptor {
|
|
36
|
+
intercept(context, next) {
|
|
37
|
+
// Only operate in HTTP context
|
|
38
|
+
if (context.getType() !== 'http') {
|
|
39
|
+
return next.handle();
|
|
40
|
+
}
|
|
41
|
+
const request = context.switchToHttp().getRequest();
|
|
42
|
+
// Get the context store that was created by NAuthContextGuard
|
|
43
|
+
const store = (0, nauth_context_guard_1.getNAuthContextStore)(request);
|
|
44
|
+
if (!store) {
|
|
45
|
+
// No context available - continue without context (shouldn't happen with proper setup)
|
|
46
|
+
return next.handle();
|
|
47
|
+
}
|
|
48
|
+
// Re-enter the context store so controllers/services have access to it
|
|
49
|
+
return new rxjs_1.Observable((subscriber) => {
|
|
50
|
+
core_1.ContextStorage.enterStore(store, () => {
|
|
51
|
+
next.handle().subscribe({
|
|
52
|
+
next: (value) => subscriber.next(value),
|
|
53
|
+
error: (err) => subscriber.error(err),
|
|
54
|
+
complete: () => subscriber.complete(),
|
|
55
|
+
});
|
|
56
|
+
});
|
|
57
|
+
});
|
|
58
|
+
}
|
|
59
|
+
};
|
|
60
|
+
exports.NAuthContextInterceptor = NAuthContextInterceptor;
|
|
61
|
+
exports.NAuthContextInterceptor = NAuthContextInterceptor = __decorate([
|
|
62
|
+
(0, common_1.Injectable)()
|
|
63
|
+
], NAuthContextInterceptor);
|
|
64
|
+
//# sourceMappingURL=nauth-context.interceptor.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"nauth-context.interceptor.js","sourceRoot":"","sources":["../../src/interceptors/nauth-context.interceptor.ts"],"names":[],"mappings":";;;;;;;;;AAAA,2CAA4F;AAC5F,+BAAkC;AAClC,8CAAqD;AACrD,uEAAqE;AAErE;;;;;;;;;;;;;;;;;;;;GAoBG;AAEI,IAAM,uBAAuB,GAA7B,MAAM,uBAAuB;IAClC,SAAS,CAAC,OAAyB,EAAE,IAAiB;QACpD,+BAA+B;QAC/B,IAAI,OAAO,CAAC,OAAO,EAAE,KAAK,MAAM,EAAE,CAAC;YACjC,OAAO,IAAI,CAAC,MAAM,EAAE,CAAC;QACvB,CAAC;QAED,MAAM,OAAO,GAAG,OAAO,CAAC,YAAY,EAAE,CAAC,UAAU,EAAE,CAAC;QAEpD,8DAA8D;QAC9D,MAAM,KAAK,GAAG,IAAA,0CAAoB,EAAC,OAAO,CAAC,CAAC;QAE5C,IAAI,CAAC,KAAK,EAAE,CAAC;YACX,uFAAuF;YACvF,OAAO,IAAI,CAAC,MAAM,EAAE,CAAC;QACvB,CAAC;QAED,uEAAuE;QACvE,OAAO,IAAI,iBAAU,CAAC,CAAC,UAAU,EAAE,EAAE;YACnC,qBAAc,CAAC,UAAU,CAAC,KAAK,EAAE,GAAG,EAAE;gBACpC,IAAI,CAAC,MAAM,EAAE,CAAC,SAAS,CAAC;oBACtB,IAAI,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC;oBACvC,KAAK,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,UAAU,CAAC,KAAK,CAAC,GAAG,CAAC;oBACrC,QAAQ,EAAE,GAAG,EAAE,CAAC,UAAU,CAAC,QAAQ,EAAE;iBACtC,CAAC,CAAC;YACL,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;IACL,CAAC;CACF,CAAA;AA5BY,0DAAuB;kCAAvB,uBAAuB;IADnC,IAAA,mBAAU,GAAE;GACA,uBAAuB,CA4BnC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@nauth-toolkit/nestjs",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.22",
|
|
4
4
|
"description": "NestJS adapter for nauth-toolkit - Platform-specific integrations",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"types": "dist/index.d.ts",
|
|
@@ -39,7 +39,7 @@
|
|
|
39
39
|
"typeorm": "^0.3.0"
|
|
40
40
|
},
|
|
41
41
|
"dependencies": {
|
|
42
|
-
"@nauth-toolkit/core": "0.1.
|
|
42
|
+
"@nauth-toolkit/core": "0.1.22"
|
|
43
43
|
},
|
|
44
44
|
"devDependencies": {
|
|
45
45
|
"@nestjs/common": "^11.1.8",
|
|
@@ -1,50 +0,0 @@
|
|
|
1
|
-
import { NestInterceptor, ExecutionContext, CallHandler } from '@nestjs/common';
|
|
2
|
-
import { Observable } from 'rxjs';
|
|
3
|
-
import { NAuthConfig } from '@nauth-toolkit/core';
|
|
4
|
-
import { GeoLocationService } from '@nauth-toolkit/core/internal';
|
|
5
|
-
/**
|
|
6
|
-
* Client Info Interceptor
|
|
7
|
-
*
|
|
8
|
-
* Automatically extracts client information (IP address, user agent, device info)
|
|
9
|
-
* from incoming HTTP requests and stores it in async local storage (CLS).
|
|
10
|
-
*
|
|
11
|
-
* This interceptor runs globally when configured in AuthModule, ensuring that
|
|
12
|
-
* all authentication services have transparent access to client metadata without
|
|
13
|
-
* needing to pass it as parameters.
|
|
14
|
-
*
|
|
15
|
-
* Benefits:
|
|
16
|
-
* - Transparent IP/user agent handling (like AWS Cognito)
|
|
17
|
-
* - Handles proxies and load balancers automatically
|
|
18
|
-
* - No parameters needed - services read from context automatically
|
|
19
|
-
* - Works across async boundaries
|
|
20
|
-
* - Type-safe and consistent
|
|
21
|
-
*
|
|
22
|
-
* @example
|
|
23
|
-
* // In your controller (no IP/UA parameters needed!)
|
|
24
|
-
* @Post('login')
|
|
25
|
-
* async login(@Body() dto: LoginDTO) {
|
|
26
|
-
* return this.authService.login(dto); // IP extracted internally!
|
|
27
|
-
* }
|
|
28
|
-
*
|
|
29
|
-
* // In AuthService (reads from context automatically)
|
|
30
|
-
* async login(dto: LoginDTO) {
|
|
31
|
-
* const clientInfo = this.clientInfoService.get(); // From context!
|
|
32
|
-
* // Use clientInfo.ipAddress, clientInfo.userAgent, etc.
|
|
33
|
-
* }
|
|
34
|
-
*/
|
|
35
|
-
export declare class ClientInfoInterceptor implements NestInterceptor {
|
|
36
|
-
private readonly config?;
|
|
37
|
-
private readonly geoLocationService?;
|
|
38
|
-
private readonly clientInfoService;
|
|
39
|
-
constructor(config?: NAuthConfig | undefined, geoLocationService?: GeoLocationService | undefined);
|
|
40
|
-
intercept(context: ExecutionContext, next: CallHandler): Observable<unknown>;
|
|
41
|
-
/**
|
|
42
|
-
* Extract and store client information in context
|
|
43
|
-
*
|
|
44
|
-
* @param context - Execution context
|
|
45
|
-
* @param next - Call handler
|
|
46
|
-
* @returns Observable
|
|
47
|
-
*/
|
|
48
|
-
private extractAndStoreClientInfo;
|
|
49
|
-
}
|
|
50
|
-
//# sourceMappingURL=client-info.interceptor.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"client-info.interceptor.d.ts","sourceRoot":"","sources":["../../src/interceptors/client-info.interceptor.ts"],"names":[],"mappings":"AAAA,OAAO,EAAc,eAAe,EAAE,gBAAgB,EAAE,WAAW,EAAoB,MAAM,gBAAgB,CAAC;AAC9G,OAAO,EAAE,UAAU,EAAY,MAAM,MAAM,CAAC;AAE5C,OAAO,EAKL,WAAW,EAEZ,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAE,kBAAkB,EAAE,MAAM,8BAA8B,CAAC;AAElE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AACH,qBACa,qBAAsB,YAAW,eAAe;IAMzD,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC;IAExB,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CAAC;IAPtC,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAA2B;gBAK1C,MAAM,CAAC,EAAE,WAAW,YAAA,EAEpB,kBAAkB,CAAC,EAAE,kBAAkB,YAAA;IAG1D,SAAS,CAAC,OAAO,EAAE,gBAAgB,EAAE,IAAI,EAAE,WAAW,GAAG,UAAU,CAAC,OAAO,CAAC;IAa5E;;;;;;OAMG;IACH,OAAO,CAAC,yBAAyB;CAkIlC"}
|
|
@@ -1,196 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
3
|
-
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
4
|
-
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
5
|
-
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
6
|
-
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
7
|
-
};
|
|
8
|
-
var __metadata = (this && this.__metadata) || function (k, v) {
|
|
9
|
-
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
10
|
-
};
|
|
11
|
-
var __param = (this && this.__param) || function (paramIndex, decorator) {
|
|
12
|
-
return function (target, key) { decorator(target, key, paramIndex); }
|
|
13
|
-
};
|
|
14
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
15
|
-
exports.ClientInfoInterceptor = void 0;
|
|
16
|
-
const common_1 = require("@nestjs/common");
|
|
17
|
-
const rxjs_1 = require("rxjs");
|
|
18
|
-
const operators_1 = require("rxjs/operators");
|
|
19
|
-
const core_1 = require("@nauth-toolkit/core");
|
|
20
|
-
const internal_1 = require("@nauth-toolkit/core/internal");
|
|
21
|
-
/**
|
|
22
|
-
* Client Info Interceptor
|
|
23
|
-
*
|
|
24
|
-
* Automatically extracts client information (IP address, user agent, device info)
|
|
25
|
-
* from incoming HTTP requests and stores it in async local storage (CLS).
|
|
26
|
-
*
|
|
27
|
-
* This interceptor runs globally when configured in AuthModule, ensuring that
|
|
28
|
-
* all authentication services have transparent access to client metadata without
|
|
29
|
-
* needing to pass it as parameters.
|
|
30
|
-
*
|
|
31
|
-
* Benefits:
|
|
32
|
-
* - Transparent IP/user agent handling (like AWS Cognito)
|
|
33
|
-
* - Handles proxies and load balancers automatically
|
|
34
|
-
* - No parameters needed - services read from context automatically
|
|
35
|
-
* - Works across async boundaries
|
|
36
|
-
* - Type-safe and consistent
|
|
37
|
-
*
|
|
38
|
-
* @example
|
|
39
|
-
* // In your controller (no IP/UA parameters needed!)
|
|
40
|
-
* @Post('login')
|
|
41
|
-
* async login(@Body() dto: LoginDTO) {
|
|
42
|
-
* return this.authService.login(dto); // IP extracted internally!
|
|
43
|
-
* }
|
|
44
|
-
*
|
|
45
|
-
* // In AuthService (reads from context automatically)
|
|
46
|
-
* async login(dto: LoginDTO) {
|
|
47
|
-
* const clientInfo = this.clientInfoService.get(); // From context!
|
|
48
|
-
* // Use clientInfo.ipAddress, clientInfo.userAgent, etc.
|
|
49
|
-
* }
|
|
50
|
-
*/
|
|
51
|
-
let ClientInfoInterceptor = class ClientInfoInterceptor {
|
|
52
|
-
config;
|
|
53
|
-
geoLocationService;
|
|
54
|
-
clientInfoService = new core_1.ClientInfoService();
|
|
55
|
-
constructor(config, geoLocationService) {
|
|
56
|
-
this.config = config;
|
|
57
|
-
this.geoLocationService = geoLocationService;
|
|
58
|
-
}
|
|
59
|
-
intercept(context, next) {
|
|
60
|
-
// Initialize context storage for this request (platform-agnostic)
|
|
61
|
-
return new rxjs_1.Observable((subscriber) => {
|
|
62
|
-
core_1.ContextStorage.run(() => {
|
|
63
|
-
this.extractAndStoreClientInfo(context, next).subscribe({
|
|
64
|
-
next: (value) => subscriber.next(value),
|
|
65
|
-
error: (err) => subscriber.error(err),
|
|
66
|
-
complete: () => subscriber.complete(),
|
|
67
|
-
});
|
|
68
|
-
});
|
|
69
|
-
});
|
|
70
|
-
}
|
|
71
|
-
/**
|
|
72
|
-
* Extract and store client information in context
|
|
73
|
-
*
|
|
74
|
-
* @param context - Execution context
|
|
75
|
-
* @param next - Call handler
|
|
76
|
-
* @returns Observable
|
|
77
|
-
*/
|
|
78
|
-
extractAndStoreClientInfo(context, next) {
|
|
79
|
-
const request = context.switchToHttp().getRequest();
|
|
80
|
-
const response = context.switchToHttp().getResponse();
|
|
81
|
-
// Extract client information
|
|
82
|
-
const headers = request.headers || {};
|
|
83
|
-
const userAgent = headers['user-agent'];
|
|
84
|
-
const userAgentString = typeof userAgent === 'string' ? userAgent : 'unknown';
|
|
85
|
-
// Parse user agent to extract platform and browser using ClientInfoService
|
|
86
|
-
const parsedUA = this.clientInfoService.parseUserAgent(userAgentString);
|
|
87
|
-
// Extract device token from cookie (web) or header (mobile)
|
|
88
|
-
// Security: Never accept device token from request body (prevent client manipulation)
|
|
89
|
-
const deviceTokenCookieName = this.config ? (0, core_1.getDeviceTokenCookieName)(this.config) : 'nauth_device_token';
|
|
90
|
-
const deviceTokenCookie = request.cookies?.[deviceTokenCookieName];
|
|
91
|
-
const deviceTokenHeader = headers['x-device-token'] || headers['X-Device-Token'];
|
|
92
|
-
const deviceToken = (typeof deviceTokenCookie === 'string' ? deviceTokenCookie : undefined) ||
|
|
93
|
-
(typeof deviceTokenHeader === 'string' ? deviceTokenHeader : undefined) ||
|
|
94
|
-
(deviceTokenHeader ? String(deviceTokenHeader) : undefined);
|
|
95
|
-
// Extract sessionId and userId from token (set by AuthGuard after validation)
|
|
96
|
-
// sessionId and sub (userId) are strings in JWT payload, convert to number for database
|
|
97
|
-
const sessionIdFromToken = request?.token?.sessionId;
|
|
98
|
-
const sessionIdNumber = sessionIdFromToken ? parseInt(sessionIdFromToken, 10) : undefined;
|
|
99
|
-
const userIdFromToken = request?.token?.sub;
|
|
100
|
-
const userIdNumber = userIdFromToken ? parseInt(userIdFromToken, 10) : undefined;
|
|
101
|
-
const clientInfo = {
|
|
102
|
-
//ipAddress: extractClientIp(request),
|
|
103
|
-
/**
|
|
104
|
-
* In development mode, assign a random known public IP address
|
|
105
|
-
* for better testability (to trigger geolocation flows, etc.).
|
|
106
|
-
* In production, default to 'unknown' if IP extraction fails.
|
|
107
|
-
*/
|
|
108
|
-
ipAddress: (0, core_1.extractClientIp)(request),
|
|
109
|
-
// process.env.NODE_ENV === 'development'
|
|
110
|
-
// ? [
|
|
111
|
-
// '203.97.24.118', // Invercargill, New Zealand
|
|
112
|
-
// '194.103.82.33', // Umeå, Sweden
|
|
113
|
-
// '80.12.134.67', // La Rochelle, France
|
|
114
|
-
// '124.148.98.45', // Port Hedland, Australia
|
|
115
|
-
// '200.68.114.22', // Mar del Plata, Argentina
|
|
116
|
-
// '213.216.200.77', // Oulu, Finland
|
|
117
|
-
// '206.248.142.91', // Timmins, Canada
|
|
118
|
-
// '95.43.18.140', // Plovdiv, Bulgaria
|
|
119
|
-
// '110.164.231.162', // Surat Thani, Thailand
|
|
120
|
-
// '190.186.7.20', // Cochabamba, Bolivia
|
|
121
|
-
// ][Math.floor(Math.random() * 10)]
|
|
122
|
-
// : extractClientIp(request),
|
|
123
|
-
userAgent: userAgentString,
|
|
124
|
-
deviceToken, // Extracted from cookie or header only
|
|
125
|
-
// Use deviceName from request body if provided, otherwise parse from user agent
|
|
126
|
-
deviceName: request.body?.deviceName || parsedUA.deviceName || undefined,
|
|
127
|
-
deviceType: request.body?.deviceType || parsedUA.deviceType || undefined,
|
|
128
|
-
platform: parsedUA.platform || undefined,
|
|
129
|
-
browser: parsedUA.browser || undefined,
|
|
130
|
-
// Session ID from authenticated request (set by AuthGuard after token validation)
|
|
131
|
-
sessionId: sessionIdNumber && !isNaN(sessionIdNumber) ? sessionIdNumber : undefined,
|
|
132
|
-
// User ID from authenticated request (set by AuthGuard after token validation)
|
|
133
|
-
userId: userIdNumber && !isNaN(userIdNumber) ? userIdNumber : undefined,
|
|
134
|
-
// Geolocation populated below if GeoLocationService is available
|
|
135
|
-
ipCountry: undefined,
|
|
136
|
-
ipCity: undefined,
|
|
137
|
-
ipLatitude: undefined,
|
|
138
|
-
ipLongitude: undefined,
|
|
139
|
-
};
|
|
140
|
-
// ============================================================================
|
|
141
|
-
// Populate Geolocation (Optional)
|
|
142
|
-
// ============================================================================
|
|
143
|
-
if (this.geoLocationService && clientInfo.ipAddress) {
|
|
144
|
-
// Use RxJS operators to await geolocation lookup
|
|
145
|
-
// CRITICAL: Use catchError BEFORE switchMap to only catch geolocation errors,
|
|
146
|
-
// not errors from the controller (which would cause duplicate execution)
|
|
147
|
-
return (0, rxjs_1.from)(this.geoLocationService.getIpGeolocation(clientInfo.ipAddress)).pipe((0, operators_1.catchError)(() => {
|
|
148
|
-
// Non-blocking: Silently fail - geolocation remains undefined
|
|
149
|
-
// Errors are already logged by GeoLocationService
|
|
150
|
-
// Return empty geo data to continue the request
|
|
151
|
-
return (0, rxjs_1.of)({ country: undefined, city: undefined, latitude: undefined, longitude: undefined });
|
|
152
|
-
}), (0, operators_1.switchMap)((geo) => {
|
|
153
|
-
// Update clientInfo with geolocation (or undefined if lookup failed)
|
|
154
|
-
clientInfo.ipCountry = geo.country;
|
|
155
|
-
clientInfo.ipCity = geo.city;
|
|
156
|
-
clientInfo.ipLatitude = geo.latitude;
|
|
157
|
-
clientInfo.ipLongitude = geo.longitude;
|
|
158
|
-
// Store in async local storage for transparent access
|
|
159
|
-
core_1.ContextStorage.set('CLIENT_INFO', clientInfo);
|
|
160
|
-
// Store response object for services to access (e.g., for clearing cookies)
|
|
161
|
-
core_1.ContextStorage.set('HTTP_RESPONSE', response);
|
|
162
|
-
// Also attach to request object for @ClientInfo() decorator (backward compatibility)
|
|
163
|
-
request.clientInfo = clientInfo;
|
|
164
|
-
// Expose current session id for observability/debugging (set by AuthGuard after validation)
|
|
165
|
-
// This is safe metadata; tokens are never exposed. If unavailable, header is omitted.
|
|
166
|
-
const sessionId = request?.token?.sessionId;
|
|
167
|
-
if (sessionId && typeof response.setHeader === 'function') {
|
|
168
|
-
response.setHeader('X-Session-Id', sessionId);
|
|
169
|
-
}
|
|
170
|
-
return next.handle();
|
|
171
|
-
}));
|
|
172
|
-
}
|
|
173
|
-
// Store in async local storage for transparent access
|
|
174
|
-
core_1.ContextStorage.set('CLIENT_INFO', clientInfo);
|
|
175
|
-
// Store response object for services to access (e.g., for clearing cookies)
|
|
176
|
-
core_1.ContextStorage.set('HTTP_RESPONSE', response);
|
|
177
|
-
// Also attach to request object for @ClientInfo() decorator (backward compatibility)
|
|
178
|
-
request.clientInfo = clientInfo;
|
|
179
|
-
// Expose current session id for observability/debugging (set by AuthGuard after validation)
|
|
180
|
-
// This is safe metadata; tokens are never exposed. If unavailable, header is omitted.
|
|
181
|
-
const sessionId = request?.token?.sessionId;
|
|
182
|
-
if (sessionId && typeof response.setHeader === 'function') {
|
|
183
|
-
response.setHeader('X-Session-Id', sessionId);
|
|
184
|
-
}
|
|
185
|
-
return next.handle();
|
|
186
|
-
}
|
|
187
|
-
};
|
|
188
|
-
exports.ClientInfoInterceptor = ClientInfoInterceptor;
|
|
189
|
-
exports.ClientInfoInterceptor = ClientInfoInterceptor = __decorate([
|
|
190
|
-
(0, common_1.Injectable)(),
|
|
191
|
-
__param(0, (0, common_1.Optional)()),
|
|
192
|
-
__param(0, (0, common_1.Inject)('NAUTH_CONFIG')),
|
|
193
|
-
__param(1, (0, common_1.Optional)()),
|
|
194
|
-
__metadata("design:paramtypes", [Object, internal_1.GeoLocationService])
|
|
195
|
-
], ClientInfoInterceptor);
|
|
196
|
-
//# sourceMappingURL=client-info.interceptor.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"client-info.interceptor.js","sourceRoot":"","sources":["../../src/interceptors/client-info.interceptor.ts"],"names":[],"mappings":"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"}
|