@decaf-ts/for-nest 0.12.1 → 0.13.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (112) hide show
  1. package/README.md +31 -5
  2. package/dist/for-nest.cjs +1 -1
  3. package/dist/for-nest.cjs.map +1 -1
  4. package/dist/for-nest.js +1 -1
  5. package/dist/for-nest.js.map +1 -1
  6. package/lib/cjs/auth/AuthInterceptor.cjs +3 -11
  7. package/lib/cjs/auth/AuthInterceptor.cjs.map +1 -1
  8. package/lib/cjs/auth/AuthMiddleware.cjs +51 -0
  9. package/lib/cjs/auth/AuthMiddleware.cjs.map +1 -0
  10. package/lib/cjs/auth/DecafAuthHandler.cjs +8 -3
  11. package/lib/cjs/auth/DecafAuthHandler.cjs.map +1 -1
  12. package/lib/cjs/auth/DecafAuthModule.cjs +6 -1
  13. package/lib/cjs/auth/DecafAuthModule.cjs.map +1 -1
  14. package/lib/cjs/auth/constants.cjs +3 -1
  15. package/lib/cjs/auth/constants.cjs.map +1 -1
  16. package/lib/cjs/auth/decorators.cjs +4 -0
  17. package/lib/cjs/auth/decorators.cjs.map +1 -1
  18. package/lib/cjs/auth/index.cjs +1 -0
  19. package/lib/cjs/auth/index.cjs.map +1 -1
  20. package/lib/cjs/decaf-model/FromModelController.cjs +6 -0
  21. package/lib/cjs/decaf-model/FromModelController.cjs.map +1 -1
  22. package/lib/cjs/events-module/DecafStreamModule.cjs +13 -2
  23. package/lib/cjs/events-module/DecafStreamModule.cjs.map +1 -1
  24. package/lib/cjs/events-module/EventsController.cjs +28 -5
  25. package/lib/cjs/events-module/EventsController.cjs.map +1 -1
  26. package/lib/cjs/events-module/EventsSubscriptionController.cjs +81 -0
  27. package/lib/cjs/events-module/EventsSubscriptionController.cjs.map +1 -0
  28. package/lib/cjs/events-module/ObserverSubscriptionRegistry.cjs +51 -0
  29. package/lib/cjs/events-module/ObserverSubscriptionRegistry.cjs.map +1 -0
  30. package/lib/cjs/events-module/constant.cjs +2 -1
  31. package/lib/cjs/events-module/constant.cjs.map +1 -1
  32. package/lib/cjs/events-module/index.cjs +3 -0
  33. package/lib/cjs/events-module/index.cjs.map +1 -1
  34. package/lib/cjs/index.cjs +3 -3
  35. package/lib/cjs/interceptors/DecafRequestHandlerInterceptor.cjs +3 -31
  36. package/lib/cjs/interceptors/DecafRequestHandlerInterceptor.cjs.map +1 -1
  37. package/lib/cjs/module.cjs +1 -1
  38. package/lib/cjs/module.cjs.map +1 -1
  39. package/lib/cjs/request/contextualize.cjs +46 -0
  40. package/lib/cjs/request/contextualize.cjs.map +1 -0
  41. package/lib/cjs/request/index.cjs +1 -0
  42. package/lib/cjs/request/index.cjs.map +1 -1
  43. package/lib/esm/auth/AuthInterceptor.js +4 -12
  44. package/lib/esm/auth/AuthInterceptor.js.map +1 -1
  45. package/lib/esm/auth/AuthMiddleware.js +42 -0
  46. package/lib/esm/auth/AuthMiddleware.js.map +1 -0
  47. package/lib/esm/auth/DecafAuthHandler.js +8 -3
  48. package/lib/esm/auth/DecafAuthHandler.js.map +1 -1
  49. package/lib/esm/auth/DecafAuthModule.js +7 -2
  50. package/lib/esm/auth/DecafAuthModule.js.map +1 -1
  51. package/lib/esm/auth/constants.js +2 -0
  52. package/lib/esm/auth/constants.js.map +1 -1
  53. package/lib/esm/auth/decorators.js +4 -1
  54. package/lib/esm/auth/decorators.js.map +1 -1
  55. package/lib/esm/auth/index.js +1 -0
  56. package/lib/esm/auth/index.js.map +1 -1
  57. package/lib/esm/decaf-model/FromModelController.js +8 -2
  58. package/lib/esm/decaf-model/FromModelController.js.map +1 -1
  59. package/lib/esm/events-module/DecafStreamModule.js +14 -3
  60. package/lib/esm/events-module/DecafStreamModule.js.map +1 -1
  61. package/lib/esm/events-module/EventsController.js +30 -7
  62. package/lib/esm/events-module/EventsController.js.map +1 -1
  63. package/lib/esm/events-module/EventsSubscriptionController.js +72 -0
  64. package/lib/esm/events-module/EventsSubscriptionController.js.map +1 -0
  65. package/lib/esm/events-module/ObserverSubscriptionRegistry.js +43 -0
  66. package/lib/esm/events-module/ObserverSubscriptionRegistry.js.map +1 -0
  67. package/lib/esm/events-module/constant.js +1 -0
  68. package/lib/esm/events-module/constant.js.map +1 -1
  69. package/lib/esm/events-module/index.js +3 -0
  70. package/lib/esm/events-module/index.js.map +1 -1
  71. package/lib/esm/index.js +3 -3
  72. package/lib/esm/interceptors/DecafRequestHandlerInterceptor.js +3 -31
  73. package/lib/esm/interceptors/DecafRequestHandlerInterceptor.js.map +1 -1
  74. package/lib/esm/module.js +1 -1
  75. package/lib/esm/module.js.map +1 -1
  76. package/lib/esm/request/contextualize.js +42 -0
  77. package/lib/esm/request/contextualize.js.map +1 -0
  78. package/lib/esm/request/index.js +1 -0
  79. package/lib/esm/request/index.js.map +1 -1
  80. package/lib/types/auth/AuthMiddleware.d.cts +9 -0
  81. package/lib/types/auth/AuthMiddleware.d.mts +9 -0
  82. package/lib/types/auth/DecafAuthHandler.d.cts +6 -4
  83. package/lib/types/auth/DecafAuthHandler.d.mts +6 -4
  84. package/lib/types/auth/DecafAuthModule.d.cts +3 -2
  85. package/lib/types/auth/DecafAuthModule.d.mts +3 -2
  86. package/lib/types/auth/constants.d.cts +2 -0
  87. package/lib/types/auth/constants.d.mts +2 -0
  88. package/lib/types/auth/decorators.d.cts +1 -0
  89. package/lib/types/auth/decorators.d.mts +1 -0
  90. package/lib/types/auth/index.d.cts +1 -0
  91. package/lib/types/auth/index.d.mts +1 -0
  92. package/lib/types/events-module/DecafStreamModule.d.cts +2 -1
  93. package/lib/types/events-module/DecafStreamModule.d.mts +2 -1
  94. package/lib/types/events-module/EventsController.d.cts +6 -2
  95. package/lib/types/events-module/EventsController.d.mts +6 -2
  96. package/lib/types/events-module/EventsSubscriptionController.d.cts +17 -0
  97. package/lib/types/events-module/EventsSubscriptionController.d.mts +17 -0
  98. package/lib/types/events-module/ObserverSubscriptionRegistry.d.cts +13 -0
  99. package/lib/types/events-module/ObserverSubscriptionRegistry.d.mts +13 -0
  100. package/lib/types/events-module/constant.d.cts +1 -0
  101. package/lib/types/events-module/constant.d.mts +1 -0
  102. package/lib/types/events-module/index.d.cts +3 -0
  103. package/lib/types/events-module/index.d.mts +3 -0
  104. package/lib/types/index.d.cts +3 -3
  105. package/lib/types/index.d.mts +3 -3
  106. package/lib/types/request/contextualize.d.cts +2 -0
  107. package/lib/types/request/contextualize.d.mts +2 -0
  108. package/lib/types/request/index.d.cts +1 -0
  109. package/lib/types/request/index.d.mts +1 -0
  110. package/lib/types/types.d.cts +7 -2
  111. package/lib/types/types.d.mts +7 -2
  112. package/package.json +1 -1
@@ -0,0 +1,81 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.EventsSubscriptionController = void 0;
4
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
5
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
6
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function")
7
+ r = Reflect.decorate(decorators, target, key, desc);
8
+ else
9
+ for (var i = decorators.length - 1; i >= 0; i--)
10
+ if (d = decorators[i])
11
+ r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
12
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
13
+ };
14
+ var __metadata = (this && this.__metadata) || function (k, v) {
15
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function")
16
+ return Reflect.metadata(k, v);
17
+ };
18
+ var __param = (this && this.__param) || function (paramIndex, decorator) {
19
+ return function (target, key) { decorator(target, key, paramIndex); };
20
+ };
21
+ var EventsSubscriptionController_1;
22
+ const common_1 = require("@nestjs/common");
23
+ const core_1 = require("@decaf-ts/core");
24
+ const index_js_1 = require("./../request/index.cjs");
25
+ const controllers_js_1 = require("./../controllers.cjs");
26
+ const constant_js_1 = require("./constant.cjs");
27
+ const ObserverSubscriptionRegistry_js_1 = require("./ObserverSubscriptionRegistry.cjs");
28
+ let EventsSubscriptionController = EventsSubscriptionController_1 = class EventsSubscriptionController extends controllers_js_1.DecafController {
29
+ constructor(clientContext, options, registry) {
30
+ super(clientContext, EventsSubscriptionController_1.name);
31
+ this.options = options;
32
+ this.registry = registry;
33
+ }
34
+ async subscribe(body) {
35
+ if (!this.options.subscriptionMode) {
36
+ return { enabled: false };
37
+ }
38
+ const subscriberId = body?.subscriberId || (await Promise.resolve(core_1.UUID.instance.generate()));
39
+ const topics = Array.isArray(body?.topics) ? body.topics : [];
40
+ const record = this.registry.upsert(subscriberId, topics);
41
+ return {
42
+ subscriberId: record.subscriberId,
43
+ topics: this.registry.topicsFor(record.subscriberId),
44
+ };
45
+ }
46
+ unsubscribe(body) {
47
+ if (!this.options.subscriptionMode) {
48
+ return { enabled: false };
49
+ }
50
+ const subscriberId = body?.subscriberId;
51
+ if (!subscriberId) {
52
+ return { unsubscribed: false };
53
+ }
54
+ return {
55
+ unsubscribed: this.registry.remove(subscriberId),
56
+ subscriberId,
57
+ };
58
+ }
59
+ };
60
+ exports.EventsSubscriptionController = EventsSubscriptionController;
61
+ __decorate([
62
+ (0, common_1.Post)("subscribe"),
63
+ __param(0, (0, common_1.Body)()),
64
+ __metadata("design:type", Function),
65
+ __metadata("design:paramtypes", [Object]),
66
+ __metadata("design:returntype", Promise)
67
+ ], EventsSubscriptionController.prototype, "subscribe", null);
68
+ __decorate([
69
+ (0, common_1.Post)("unsubscribe"),
70
+ __param(0, (0, common_1.Body)()),
71
+ __metadata("design:type", Function),
72
+ __metadata("design:paramtypes", [Object]),
73
+ __metadata("design:returntype", Object)
74
+ ], EventsSubscriptionController.prototype, "unsubscribe", null);
75
+ exports.EventsSubscriptionController = EventsSubscriptionController = EventsSubscriptionController_1 = __decorate([
76
+ (0, common_1.Controller)(),
77
+ __param(1, (0, common_1.Inject)(constant_js_1.OBSERVER_EVENTS_OPTIONS)),
78
+ __metadata("design:paramtypes", [index_js_1.DecafRequestContext, Object, ObserverSubscriptionRegistry_js_1.ObserverSubscriptionRegistry])
79
+ ], EventsSubscriptionController);
80
+ //# sourceMappingURL=EventsSubscriptionController.js.map
81
+ //# sourceMappingURL=EventsSubscriptionController.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"events-module/EventsSubscriptionController.cjs","sourceRoot":"","sources":["events-module/EventsSubscriptionController.js"],"names":[],"mappings":"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"}
@@ -0,0 +1,51 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ObserverSubscriptionRegistry = void 0;
4
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
5
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
6
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function")
7
+ r = Reflect.decorate(decorators, target, key, desc);
8
+ else
9
+ for (var i = decorators.length - 1; i >= 0; i--)
10
+ if (d = decorators[i])
11
+ r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
12
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
13
+ };
14
+ const common_1 = require("@nestjs/common");
15
+ let ObserverSubscriptionRegistry = class ObserverSubscriptionRegistry {
16
+ constructor() {
17
+ this.records = new Map();
18
+ }
19
+ upsert(subscriberId, topics = []) {
20
+ const record = {
21
+ subscriberId,
22
+ topics: new Set(topics.filter(Boolean)),
23
+ updatedAt: new Date(),
24
+ };
25
+ this.records.set(subscriberId, record);
26
+ return record;
27
+ }
28
+ remove(subscriberId) {
29
+ return this.records.delete(subscriberId);
30
+ }
31
+ get(subscriberId) {
32
+ return this.records.get(subscriberId);
33
+ }
34
+ topicsFor(subscriberId) {
35
+ return [...(this.records.get(subscriberId)?.topics ?? [])];
36
+ }
37
+ matches(subscriberId, topic) {
38
+ const record = this.records.get(subscriberId);
39
+ if (!record)
40
+ return false;
41
+ if (!record.topics.size)
42
+ return false;
43
+ return record.topics.has(topic) || record.topics.has("*");
44
+ }
45
+ };
46
+ exports.ObserverSubscriptionRegistry = ObserverSubscriptionRegistry;
47
+ exports.ObserverSubscriptionRegistry = ObserverSubscriptionRegistry = __decorate([
48
+ (0, common_1.Injectable)()
49
+ ], ObserverSubscriptionRegistry);
50
+ //# sourceMappingURL=ObserverSubscriptionRegistry.js.map
51
+ //# sourceMappingURL=ObserverSubscriptionRegistry.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"events-module/ObserverSubscriptionRegistry.cjs","sourceRoot":"","sources":["events-module/ObserverSubscriptionRegistry.js"],"names":[],"mappings":"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"}
@@ -1,6 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.LISTENING_ADAPTERS_FLAVOURS = void 0;
3
+ exports.OBSERVER_EVENTS_OPTIONS = exports.LISTENING_ADAPTERS_FLAVOURS = void 0;
4
4
  exports.LISTENING_ADAPTERS_FLAVOURS = Symbol("LISTENING_ADAPTERS_FLAVOURS");
5
+ exports.OBSERVER_EVENTS_OPTIONS = Symbol("OBSERVER_EVENTS_OPTIONS");
5
6
  //# sourceMappingURL=constant.js.map
6
7
  //# sourceMappingURL=constant.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"events-module/constant.cjs","sourceRoot":"","sources":["events-module/constant.js"],"names":[],"mappings":";;;AAAa,QAAA,2BAA2B,GAAG,MAAM,CAAC,6BAA6B,CAAC,CAAC;AACjF,oCAAoC"}
1
+ {"version":3,"file":"events-module/constant.cjs","sourceRoot":"","sources":["events-module/constant.js"],"names":[],"mappings":";;;AAAa,QAAA,2BAA2B,GAAG,MAAM,CAAC,6BAA6B,CAAC,CAAC;AACpE,QAAA,uBAAuB,GAAG,MAAM,CAAC,yBAAyB,CAAC,CAAC;AACzE,oCAAoC"}
@@ -15,6 +15,9 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
15
15
  };
16
16
  Object.defineProperty(exports, "__esModule", { value: true });
17
17
  __exportStar(require("./EventsController.cjs"), exports);
18
+ __exportStar(require("./EventsSubscriptionController.cjs"), exports);
18
19
  __exportStar(require("./DecafStreamModule.cjs"), exports);
20
+ __exportStar(require("./ObserverSubscriptionRegistry.cjs"), exports);
21
+ __exportStar(require("./constant.cjs"), exports);
19
22
  //# sourceMappingURL=index.js.map
20
23
  //# sourceMappingURL=index.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"events-module/index.cjs","sourceRoot":"","sources":["events-module/index.js"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,wDAAsC;AACtC,yDAAuC;AACvC,iCAAiC"}
1
+ {"version":3,"file":"events-module/index.cjs","sourceRoot":"","sources":["events-module/index.js"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,wDAAsC;AACtC,oEAAkD;AAClD,yDAAuC;AACvC,oEAAkD;AAClD,gDAA8B;AAC9B,iCAAiC"}
package/lib/cjs/index.cjs CHANGED
@@ -60,21 +60,21 @@ __exportStar(require("./events-module/index.cjs"), exports);
60
60
  * @constant
61
61
  * @type {string}
62
62
  */
63
- exports.VERSION = "0.12.0";
63
+ exports.VERSION = "0.12.2-0";
64
64
  /**
65
65
  * @description Represents the current commit hash of the module build.
66
66
  * @summary Stores the current git commit hash for the package. The build replaces
67
67
  * the placeholder with the actual commit hash at publish time.
68
68
  * @const COMMIT
69
69
  */
70
- exports.COMMIT = "3ac17fe";
70
+ exports.COMMIT = "612701f";
71
71
  /**
72
72
  * @description Represents the full version string of the module.
73
73
  * @summary Stores the semver version and commit hash for the package.
74
74
  * The build replaces the placeholder with the actual `<version>-<commit>` value at publish time.
75
75
  * @const FULL_VERSION
76
76
  */
77
- exports.FULL_VERSION = "0.12.0-3ac17fe";
77
+ exports.FULL_VERSION = "0.12.2-0-612701f";
78
78
  exports.PACKAGE_NAME = "@decaf-ts/for-nest";
79
79
  decoration_1.Metadata.allowReregistration(true);
80
80
  decoration_1.Metadata.registerLibrary(exports.PACKAGE_NAME, exports.VERSION);
@@ -18,9 +18,9 @@ var __metadata = (this && this.__metadata) || function (k, v) {
18
18
  var DecafRequestHandlerInterceptor_1;
19
19
  const common_1 = require("@nestjs/common");
20
20
  const index_js_1 = require("./../request/index.cjs");
21
- const core_1 = require("@decaf-ts/core");
22
- require("./../overrides/index.cjs");
21
+ const contextualize_js_1 = require("./../request/contextualize.cjs");
23
22
  const logging_1 = require("@decaf-ts/logging");
23
+ require("./../overrides/index.cjs");
24
24
  /**
25
25
  * @description
26
26
  * Interceptor responsible for executing all registered Decaf request handlers
@@ -73,18 +73,7 @@ let DecafRequestHandlerInterceptor = DecafRequestHandlerInterceptor_1 = class De
73
73
  this.executor = executor;
74
74
  }
75
75
  async contextualize(req) {
76
- const headers = req.headers;
77
- const flags = {
78
- headers: headers,
79
- overrides: {},
80
- };
81
- const ip = extractIp(req);
82
- const logger = logging_1.Logging.get().for({ ip });
83
- this.requestContext.accumulate(Object.assign({}, core_1.DefaultAdapterFlags, {
84
- logger,
85
- timestamp: new Date(),
86
- operation: `${req.method} ${req.url}`,
87
- }, flags));
76
+ (0, contextualize_js_1.contextualizeRequestContext)(this.requestContext, req);
88
77
  }
89
78
  async intercept(context, next) {
90
79
  const req = context.switchToHttp().getRequest();
@@ -104,22 +93,5 @@ exports.DecafRequestHandlerInterceptor = DecafRequestHandlerInterceptor = DecafR
104
93
  __metadata("design:paramtypes", [index_js_1.DecafRequestContext,
105
94
  index_js_1.DecafHandlerExecutor])
106
95
  ], DecafRequestHandlerInterceptor);
107
- function extractIp(req) {
108
- const headers = req.headers;
109
- function parseIpHeader(value) {
110
- if (!value)
111
- return undefined;
112
- const candidate = Array.isArray(value) ? value[0] : value;
113
- return candidate
114
- .split(",")
115
- .map((segment) => segment.trim())
116
- .filter(Boolean)[0];
117
- }
118
- return (parseIpHeader(headers?.["x-forwarded-for"]) ??
119
- parseIpHeader(headers?.["x-real-ip"]) ??
120
- parseIpHeader(headers?.["X-Forwarded-For"]) ??
121
- parseIpHeader(headers?.["X-Real-IP"]) ??
122
- req.ip);
123
- }
124
96
  //# sourceMappingURL=DecafRequestHandlerInterceptor.js.map
125
97
  //# sourceMappingURL=DecafRequestHandlerInterceptor.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"interceptors/DecafRequestHandlerInterceptor.cjs","sourceRoot":"","sources":["interceptors/DecafRequestHandlerInterceptor.js"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"interceptors/DecafRequestHandlerInterceptor.cjs","sourceRoot":"","sources":["interceptors/DecafRequestHandlerInterceptor.js"],"names":[],"mappings":"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"}
@@ -37,7 +37,7 @@ let DecafModule = DecafModule_1 = class DecafModule {
37
37
  });
38
38
  }
39
39
  if (options.observerOptions?.enableObserverEvents) {
40
- imports.push(index_js_2.DecafStreamModule.forFlavours(options.observerOptions.observerFlavours || flavours));
40
+ imports.push(index_js_2.DecafStreamModule.forFlavours(options.observerOptions.observerFlavours || flavours, options.observerOptions.observerApiPath ?? "/events", options.observerOptions));
41
41
  }
42
42
  return {
43
43
  module: DecafModule_1,
@@ -1 +1 @@
1
- {"version":3,"file":"module.cjs","sourceRoot":"","sources":["module.js"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"module.cjs","sourceRoot":"","sources":["module.js"],"names":[],"mappings":"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"}
@@ -0,0 +1,46 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.contextualizeRequestContext = contextualizeRequestContext;
4
+ const core_1 = require("@decaf-ts/core");
5
+ const logging_1 = require("@decaf-ts/logging");
6
+ const REQUEST_CONTEXTUALIZED_KEY = "__decafRequestContextContextualized";
7
+ function contextualizeRequestContext(requestContext, req) {
8
+ if (requestContext.getOrUndefined(REQUEST_CONTEXTUALIZED_KEY)) {
9
+ return false;
10
+ }
11
+ const headers = req.headers;
12
+ const flags = {
13
+ headers: headers,
14
+ overrides: {},
15
+ };
16
+ const ip = extractIp(req);
17
+ const currentLog = requestContext.getOrUndefined("logger");
18
+ const logger = ip
19
+ ? (currentLog ?? logging_1.Logging.get()).for({ ip })
20
+ : currentLog ?? logging_1.Logging.get();
21
+ requestContext.accumulate(Object.assign({}, core_1.DefaultAdapterFlags, {
22
+ logger,
23
+ timestamp: new Date(),
24
+ operation: `${req.method} ${req.url}`,
25
+ }, flags, { [REQUEST_CONTEXTUALIZED_KEY]: true }));
26
+ return true;
27
+ }
28
+ function extractIp(req) {
29
+ const headers = req.headers;
30
+ function parseIpHeader(value) {
31
+ if (!value)
32
+ return undefined;
33
+ const candidate = Array.isArray(value) ? value[0] : value;
34
+ return candidate
35
+ .split(",")
36
+ .map((segment) => segment.trim())
37
+ .filter(Boolean)[0];
38
+ }
39
+ return (parseIpHeader(headers?.["x-forwarded-for"]) ??
40
+ parseIpHeader(headers?.["x-real-ip"]) ??
41
+ parseIpHeader(headers?.["X-Forwarded-For"]) ??
42
+ parseIpHeader(headers?.["X-Real-IP"]) ??
43
+ req.ip);
44
+ }
45
+ //# sourceMappingURL=contextualize.js.map
46
+ //# sourceMappingURL=contextualize.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"request/contextualize.cjs","sourceRoot":"","sources":["request/contextualize.js"],"names":[],"mappings":";;AAGA,kEAoBC;AAvBD,yCAAqD;AACrD,+CAA4C;AAC5C,MAAM,0BAA0B,GAAG,qCAAqC,CAAC;AACzE,SAAgB,2BAA2B,CAAC,cAAc,EAAE,GAAG;IAC3D,IAAI,cAAc,CAAC,cAAc,CAAC,0BAA0B,CAAC,EAAE,CAAC;QAC5D,OAAO,KAAK,CAAC;IACjB,CAAC;IACD,MAAM,OAAO,GAAG,GAAG,CAAC,OAAO,CAAC;IAC5B,MAAM,KAAK,GAAG;QACV,OAAO,EAAE,OAAO;QAChB,SAAS,EAAE,EAAE;KAChB,CAAC;IACF,MAAM,EAAE,GAAG,SAAS,CAAC,GAAG,CAAC,CAAC;IAC1B,MAAM,UAAU,GAAG,cAAc,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAC;IAC3D,MAAM,MAAM,GAAG,EAAE;QACb,CAAC,CAAC,CAAC,UAAU,IAAI,iBAAO,CAAC,GAAG,EAAE,CAAC,CAAC,GAAG,CAAC,EAAE,EAAE,EAAE,CAAC;QAC3C,CAAC,CAAC,UAAU,IAAI,iBAAO,CAAC,GAAG,EAAE,CAAC;IAClC,cAAc,CAAC,UAAU,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,0BAAmB,EAAE;QAC7D,MAAM;QACN,SAAS,EAAE,IAAI,IAAI,EAAE;QACrB,SAAS,EAAE,GAAG,GAAG,CAAC,MAAM,IAAI,GAAG,CAAC,GAAG,EAAE;KACxC,EAAE,KAAK,EAAE,EAAE,CAAC,0BAA0B,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;IACnD,OAAO,IAAI,CAAC;AAChB,CAAC;AACD,SAAS,SAAS,CAAC,GAAG;IAClB,MAAM,OAAO,GAAG,GAAG,CAAC,OAAO,CAAC;IAC5B,SAAS,aAAa,CAAC,KAAK;QACxB,IAAI,CAAC,KAAK;YACN,OAAO,SAAS,CAAC;QACrB,MAAM,SAAS,GAAG,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;QAC1D,OAAO,SAAS;aACX,KAAK,CAAC,GAAG,CAAC;aACV,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;aAChC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC;IAC5B,CAAC;IACD,OAAO,CAAC,aAAa,CAAC,OAAO,EAAE,CAAC,iBAAiB,CAAC,CAAC;QAC/C,aAAa,CAAC,OAAO,EAAE,CAAC,WAAW,CAAC,CAAC;QACrC,aAAa,CAAC,OAAO,EAAE,CAAC,iBAAiB,CAAC,CAAC;QAC3C,aAAa,CAAC,OAAO,EAAE,CAAC,WAAW,CAAC,CAAC;QACrC,GAAG,CAAC,EAAE,CAAC,CAAC;AAChB,CAAC;AACD,yCAAyC"}
@@ -18,5 +18,6 @@ __exportStar(require("./DecafAuthHandler.cjs"), exports);
18
18
  __exportStar(require("./DecafRequestContext.cjs"), exports);
19
19
  __exportStar(require("./DecafHandlerExecutor.cjs"), exports);
20
20
  __exportStar(require("./DecafResponseInterceptor.cjs"), exports);
21
+ __exportStar(require("./contextualize.cjs"), exports);
21
22
  //# sourceMappingURL=index.js.map
22
23
  //# sourceMappingURL=index.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"request/index.cjs","sourceRoot":"","sources":["request/index.js"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,wDAAsC;AACtC,2DAAyC;AACzC,4DAA0C;AAC1C,gEAA8C;AAC9C,iCAAiC"}
1
+ {"version":3,"file":"request/index.cjs","sourceRoot":"","sources":["request/index.js"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,wDAAsC;AACtC,2DAAyC;AACzC,4DAA0C;AAC1C,gEAA8C;AAC9C,qDAAmC;AACnC,iCAAiC"}
@@ -14,7 +14,7 @@ import { Injectable, Inject, Optional, Scope, } from "@nestjs/common";
14
14
  import { Reflector } from "@nestjs/core";
15
15
  import { Logging } from "@decaf-ts/logging";
16
16
  import { Adapter } from "@decaf-ts/core";
17
- import { AUTH_HANDLER, AUTH_META_KEY, IS_PUBLIC_KEY, REQUIRED_ROLES_KEY, SKIP_MODEL_ROLES_KEY, } from "./constants.js";
17
+ import { AUTH_HANDLER, AUTH_META_KEY, IS_PUBLIC_KEY, REQUIRED_NAMESPACES_KEY, REQUIRED_ROLES_KEY, SKIP_MODEL_ROLES_KEY, SKIP_MODEL_NAMESPACES_KEY, } from "./constants.js";
18
18
  import { DecafRequestContext } from "./../request/DecafRequestContext.js";
19
19
  let AuthInterceptor = class AuthInterceptor {
20
20
  constructor(reflector, requestContext, authHandler) {
@@ -31,29 +31,21 @@ let AuthInterceptor = class AuthInterceptor {
31
31
  const modelName = this.reflector.get(AUTH_META_KEY, ctx.getHandler()) ??
32
32
  this.reflector.get(AUTH_META_KEY, ctx.getClass());
33
33
  const requiredRoles = this.reflector.getAllAndOverride(REQUIRED_ROLES_KEY, [ctx.getHandler(), ctx.getClass()]);
34
+ const requiredNamespaces = this.reflector.getAllAndOverride(REQUIRED_NAMESPACES_KEY, [ctx.getHandler(), ctx.getClass()]);
34
35
  const skipModelRoles = this.reflector.getAllAndOverride(SKIP_MODEL_ROLES_KEY, [ctx.getHandler(), ctx.getClass()]);
36
+ const skipModelNamespaces = this.reflector.getAllAndOverride(SKIP_MODEL_NAMESPACES_KEY, [ctx.getHandler(), ctx.getClass()]);
35
37
  const effectiveModel = skipModelRoles ? undefined : modelName;
36
38
  log.verbose(`Intercepted request${modelName ? ` for ${modelName}` : ""}`);
37
39
  if (isPublic) {
38
40
  log.debug(`Public route — skipping auth`);
39
41
  }
40
42
  else if (this.authHandler) {
41
- await this.authHandler.authorize(ctx, effectiveModel, requiredRoles, this.requestContext);
43
+ await this.authHandler.authorize(ctx, effectiveModel, requiredRoles, requiredNamespaces, skipModelNamespaces, this.requestContext);
42
44
  }
43
45
  else {
44
46
  log.debug(`No auth handler registered`);
45
47
  }
46
- // Transformers run AFTER auth so they can read auth-populated fields
47
- // (e.g. `user`) from the context and map them to adapter-specific keys
48
- // (e.g. `UUID` for RamAdapter's @createdBy/@updatedBy handlers).
49
48
  await this.applyTransformers();
50
- const user = this.requestContext.getOrUndefined("user");
51
- const organization = this.requestContext.getOrUndefined("organization");
52
- if (user || organization) {
53
- const currentLog = this.requestContext.get("logger");
54
- const childLog = currentLog.for({ user, organization });
55
- this.requestContext.accumulate({ logger: childLog });
56
- }
57
49
  return next.handle();
58
50
  }
59
51
  async applyTransformers() {
@@ -1 +1 @@
1
- {"version":3,"file":"AuthInterceptor.js","sourceRoot":"","sources":["../../../src/auth/AuthInterceptor.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"AuthInterceptor.js","sourceRoot":"","sources":["../../../src/auth/AuthInterceptor.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,42 @@
1
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
2
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
3
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
4
+ 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;
5
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
6
+ };
7
+ var __metadata = (this && this.__metadata) || function (k, v) {
8
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
9
+ };
10
+ var __param = (this && this.__param) || function (paramIndex, decorator) {
11
+ return function (target, key) { decorator(target, key, paramIndex); }
12
+ };
13
+ import { Inject, Injectable, Optional, Scope, } from "@nestjs/common";
14
+ import { AUTH_HANDLER } from "./constants.js";
15
+ import { DecafRequestContext } from "./../request/DecafRequestContext.js";
16
+ import { contextualizeRequestContext } from "./../request/contextualize.js";
17
+ let AuthMiddleware = class AuthMiddleware {
18
+ constructor(authHandler, requestContext) {
19
+ this.authHandler = authHandler;
20
+ this.requestContext = requestContext;
21
+ }
22
+ async use(req, _res, next) {
23
+ contextualizeRequestContext(this.requestContext, req);
24
+ if (this.authHandler) {
25
+ try {
26
+ await this.authHandler.prime(req, this.requestContext);
27
+ }
28
+ catch {
29
+ // Priming is best-effort. The interceptor will still perform validation.
30
+ }
31
+ }
32
+ await next();
33
+ }
34
+ };
35
+ AuthMiddleware = __decorate([
36
+ Injectable({ scope: Scope.REQUEST }),
37
+ __param(0, Optional()),
38
+ __param(0, Inject(AUTH_HANDLER)),
39
+ __metadata("design:paramtypes", [Object, DecafRequestContext])
40
+ ], AuthMiddleware);
41
+ export { AuthMiddleware };
42
+ //# sourceMappingURL=AuthMiddleware.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AuthMiddleware.js","sourceRoot":"","sources":["../../../src/auth/AuthMiddleware.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,OAAO,EACL,MAAM,EACN,UAAU,EAEV,QAAQ,EACR,KAAK,GACN,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAE,YAAY,EAAE,uBAAoB;AAE3C,OAAO,EAAE,mBAAmB,EAAE,4CAAuC;AACrE,OAAO,EAAE,2BAA2B,EAAE,sCAAiC;AAGhE,IAAM,cAAc,GAApB,MAAM,cAAc;IACzB,YAGmB,WAAoC,EACpC,cAAmC;QADnC,gBAAW,GAAX,WAAW,CAAyB;QACpC,mBAAc,GAAd,cAAc,CAAqB;IACnD,CAAC;IAEJ,KAAK,CAAC,GAAG,CAAC,GAAQ,EAAE,IAAS,EAAE,IAAgC;QAC7D,2BAA2B,CAAC,IAAI,CAAC,cAAc,EAAE,GAAG,CAAC,CAAC;QACtD,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC;YACrB,IAAI,CAAC;gBACH,MAAM,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,GAAG,EAAE,IAAI,CAAC,cAAqB,CAAC,CAAC;YAChE,CAAC;YAAC,MAAM,CAAC;gBACP,yEAAyE;YAC3E,CAAC;QACH,CAAC;QACD,MAAM,IAAI,EAAE,CAAC;IACf,CAAC;CACF,CAAA;AAnBY,cAAc;IAD1B,UAAU,CAAC,EAAE,KAAK,EAAE,KAAK,CAAC,OAAO,EAAE,CAAC;IAGhC,WAAA,QAAQ,EAAE,CAAA;IACV,WAAA,MAAM,CAAC,YAAY,CAAC,CAAA;6CAEY,mBAAmB;GAL3C,cAAc,CAmB1B"}
@@ -3,18 +3,23 @@ import { AuthHandler } from "@decaf-ts/for-http/server";
3
3
  /**
4
4
  * Simple auth handler that reads a role string from the `Authorization: Bearer <role>` header.
5
5
  *
6
- * Only overrides {@link AuthHandler.extractFromAuth} to return the bearer token as
6
+ * Only overrides {@link AuthHandler.extractFromRequest} to return the bearer token as
7
7
  * both the user identifier and the single role. The base class `bindToContext`
8
8
  * (`ctx.accumulate(data)`) is sufficient — the transformer/adapter is responsible
9
9
  * for mapping context fields to adapter-specific keys like `UUID`.
10
10
  */
11
11
  export class DecafAuthHandler extends AuthHandler {
12
+ isPublicRequest(_request) {
13
+ return false;
14
+ }
12
15
  parseRequest(req) {
13
16
  const userRole = req.headers.authorization?.split(" ")[1];
14
17
  return userRole;
15
18
  }
16
- extractFromAuth(ctx) {
17
- const req = ctx.switchToHttp().getRequest();
19
+ requestFromContext(ctx) {
20
+ return ctx.switchToHttp().getRequest();
21
+ }
22
+ extractFromRequest(req) {
18
23
  const userRole = this.parseRequest(req);
19
24
  if (!userRole)
20
25
  throw new AuthorizationError("Unauthenticated");
@@ -1 +1 @@
1
- {"version":3,"file":"DecafAuthHandler.js","sourceRoot":"","sources":["../../../src/auth/DecafAuthHandler.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAC;AACpD,OAAO,EAAE,WAAW,EAAY,MAAM,2BAA2B,CAAC;AAGlE;;;;;;;GAOG;AACH,MAAM,OAAO,gBAAiB,SAAQ,WAIrC;IACW,YAAY,CAAC,GAAQ;QAC7B,MAAM,QAAQ,GAAG,GAAG,CAAC,OAAO,CAAC,aAAa,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAW,CAAC;QACpE,OAAO,QAAQ,CAAC;IAClB,CAAC;IAES,eAAe,CAAC,GAAqB;QAC7C,MAAM,GAAG,GAAG,GAAG,CAAC,YAAY,EAAE,CAAC,UAAU,EAAE,CAAC;QAC5C,MAAM,QAAQ,GAAG,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC;QACxC,IAAI,CAAC,QAAQ;YAAE,MAAM,IAAI,kBAAkB,CAAC,iBAAiB,CAAC,CAAC;QAC/D,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC;IAC/C,CAAC;CACF;AAED;;;;GAIG;AACH,MAAM,OAAO,oBAAqB,SAAQ,gBAAgB;CAAG"}
1
+ {"version":3,"file":"DecafAuthHandler.js","sourceRoot":"","sources":["../../../src/auth/DecafAuthHandler.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAC;AACpD,OAAO,EAAE,WAAW,EAA6B,MAAM,2BAA2B,CAAC;AAGnF;;;;;;;GAOG;AACH,MAAM,OAAO,gBAAiB,SAAQ,WAIrC;IACoB,eAAe,CAAC,QAAyB;QAC1D,OAAO,KAAK,CAAC;IACf,CAAC;IAES,YAAY,CAAC,GAAQ;QAC7B,MAAM,QAAQ,GAAG,GAAG,CAAC,OAAO,CAAC,aAAa,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAW,CAAC;QACpE,OAAO,QAAQ,CAAC;IAClB,CAAC;IAES,kBAAkB,CAAC,GAAqB;QAChD,OAAO,GAAG,CAAC,YAAY,EAAE,CAAC,UAAU,EAAE,CAAC;IACzC,CAAC;IAES,kBAAkB,CAAC,GAAQ;QACnC,MAAM,QAAQ,GAAG,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC;QACxC,IAAI,CAAC,QAAQ;YAAE,MAAM,IAAI,kBAAkB,CAAC,iBAAiB,CAAC,CAAC;QAC/D,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC;IAC/C,CAAC;CACF;AAED;;;;GAIG;AACH,MAAM,OAAO,oBAAqB,SAAQ,gBAAgB;CAAG"}
@@ -5,14 +5,16 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
5
5
  return c > 3 && r && Object.defineProperty(target, key, r), r;
6
6
  };
7
7
  var DecafAuthModule_1;
8
- import { Module } from "@nestjs/common";
8
+ import { Module, RequestMethod } from "@nestjs/common";
9
9
  import { APP_INTERCEPTOR } from "@nestjs/core";
10
10
  import { AuthInterceptor } from "./AuthInterceptor.js";
11
+ import { AuthMiddleware } from "./AuthMiddleware.js";
11
12
  import { AUTH_HANDLER } from "./constants.js";
12
13
  let DecafAuthModule = DecafAuthModule_1 = class DecafAuthModule {
13
14
  static forRoot(options = {}) {
14
15
  const providers = [
15
16
  AuthInterceptor,
17
+ AuthMiddleware,
16
18
  ];
17
19
  if (options.handler) {
18
20
  providers.push(options.handler);
@@ -31,9 +33,12 @@ let DecafAuthModule = DecafAuthModule_1 = class DecafAuthModule {
31
33
  module: DecafAuthModule_1,
32
34
  global: options.global ?? false,
33
35
  providers,
34
- exports: [AuthInterceptor, AUTH_HANDLER],
36
+ exports: [AuthInterceptor, AuthMiddleware, AUTH_HANDLER],
35
37
  };
36
38
  }
39
+ configure(consumer) {
40
+ consumer.apply(AuthMiddleware).forRoutes({ path: "*", method: RequestMethod.ALL });
41
+ }
37
42
  };
38
43
  DecafAuthModule = DecafAuthModule_1 = __decorate([
39
44
  Module({})
@@ -1 +1 @@
1
- {"version":3,"file":"DecafAuthModule.js","sourceRoot":"","sources":["../../../src/auth/DecafAuthModule.ts"],"names":[],"mappings":";;;;;;;AAAA,OAAO,EAAiB,MAAM,EAAQ,MAAM,gBAAgB,CAAC;AAC7D,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAE/C,OAAO,EAAE,eAAe,EAAE,6BAA0B;AACpD,OAAO,EAAE,YAAY,EAAE,uBAAoB;AASpC,IAAM,eAAe,uBAArB,MAAM,eAAe;IAC1B,MAAM,CAAC,OAAO,CACZ,UAAkC,EAAE;QAEpC,MAAM,SAAS,GAA+B;YAC5C,eAAe;SAChB,CAAC;QAEF,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC;YACpB,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;YAChC,SAAS,CAAC,IAAI,CAAC;gBACb,OAAO,EAAE,YAAY;gBACrB,QAAQ,EAAE,OAAO,CAAC,OAAO;aAC1B,CAAC,CAAC;QACL,CAAC;QAED,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;YAClB,SAAmB,CAAC,IAAI,CAAC;gBACxB,OAAO,EAAE,eAAe;gBACxB,WAAW,EAAE,eAAe;aAC7B,CAAC,CAAC;QACL,CAAC;QAED,OAAO;YACL,MAAM,EAAE,iBAAe;YACvB,MAAM,EAAE,OAAO,CAAC,MAAM,IAAI,KAAK;YAC/B,SAAS;YACT,OAAO,EAAE,CAAC,eAAe,EAAE,YAAY,CAAC;SACzC,CAAC;IACJ,CAAC;CACF,CAAA;AA9BY,eAAe;IAD3B,MAAM,CAAC,EAAE,CAAC;GACE,eAAe,CA8B3B"}
1
+ {"version":3,"file":"DecafAuthModule.js","sourceRoot":"","sources":["../../../src/auth/DecafAuthModule.ts"],"names":[],"mappings":";;;;;;;AAAA,OAAO,EAAqC,MAAM,EAAc,aAAa,EAAQ,MAAM,gBAAgB,CAAC;AAC5G,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAE/C,OAAO,EAAE,eAAe,EAAE,6BAA0B;AACpD,OAAO,EAAE,cAAc,EAAE,4BAAyB;AAClD,OAAO,EAAE,YAAY,EAAE,uBAAoB;AASpC,IAAM,eAAe,uBAArB,MAAM,eAAe;IAC1B,MAAM,CAAC,OAAO,CACZ,UAAkC,EAAE;QAEpC,MAAM,SAAS,GAA+B;YAC5C,eAAe;YACf,cAAc;SACf,CAAC;QAEF,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC;YACpB,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;YAChC,SAAS,CAAC,IAAI,CAAC;gBACb,OAAO,EAAE,YAAY;gBACrB,QAAQ,EAAE,OAAO,CAAC,OAAO;aAC1B,CAAC,CAAC;QACL,CAAC;QAED,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;YAClB,SAAmB,CAAC,IAAI,CAAC;gBACxB,OAAO,EAAE,eAAe;gBACxB,WAAW,EAAE,eAAe;aAC7B,CAAC,CAAC;QACL,CAAC;QAED,OAAO;YACL,MAAM,EAAE,iBAAe;YACvB,MAAM,EAAE,OAAO,CAAC,MAAM,IAAI,KAAK;YAC/B,SAAS;YACT,OAAO,EAAE,CAAC,eAAe,EAAE,cAAc,EAAE,YAAY,CAAC;SACzD,CAAC;IACJ,CAAC;IAED,SAAS,CAAC,QAA4B;QACpC,QAAQ,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC,SAAS,CAAC,EAAE,IAAI,EAAE,GAAG,EAAE,MAAM,EAAE,aAAa,CAAC,GAAG,EAAE,CAAC,CAAC;IACrF,CAAC;CACF,CAAA;AAnCY,eAAe;IAD3B,MAAM,CAAC,EAAE,CAAC;GACE,eAAe,CAmC3B"}
@@ -2,5 +2,7 @@ export const AUTH_HANDLER = Symbol("AUTH_HANDLER");
2
2
  export const AUTH_META_KEY = "auth:meta";
3
3
  export const IS_PUBLIC_KEY = "isPublic";
4
4
  export const REQUIRED_ROLES_KEY = "requiredRoles";
5
+ export const REQUIRED_NAMESPACES_KEY = "requiredNamespaces";
5
6
  export const SKIP_MODEL_ROLES_KEY = "skipModelRoles";
7
+ export const SKIP_MODEL_NAMESPACES_KEY = "skipModelNamespaces";
6
8
  //# sourceMappingURL=constants.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"constants.js","sourceRoot":"","sources":["../../../src/auth/constants.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,YAAY,GAAG,MAAM,CAAC,cAAc,CAAC,CAAC;AACnD,MAAM,CAAC,MAAM,aAAa,GAAG,WAAW,CAAC;AACzC,MAAM,CAAC,MAAM,aAAa,GAAG,UAAU,CAAC;AACxC,MAAM,CAAC,MAAM,kBAAkB,GAAG,eAAe,CAAC;AAClD,MAAM,CAAC,MAAM,oBAAoB,GAAG,gBAAgB,CAAC"}
1
+ {"version":3,"file":"constants.js","sourceRoot":"","sources":["../../../src/auth/constants.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,YAAY,GAAG,MAAM,CAAC,cAAc,CAAC,CAAC;AACnD,MAAM,CAAC,MAAM,aAAa,GAAG,WAAW,CAAC;AACzC,MAAM,CAAC,MAAM,aAAa,GAAG,UAAU,CAAC;AACxC,MAAM,CAAC,MAAM,kBAAkB,GAAG,eAAe,CAAC;AAClD,MAAM,CAAC,MAAM,uBAAuB,GAAG,oBAAoB,CAAC;AAC5D,MAAM,CAAC,MAAM,oBAAoB,GAAG,gBAAgB,CAAC;AACrD,MAAM,CAAC,MAAM,yBAAyB,GAAG,qBAAqB,CAAC"}
@@ -1,6 +1,6 @@
1
1
  import { applyDecorators, SetMetadata, UseInterceptors } from "@nestjs/common";
2
2
  import { ApiBearerAuth, ApiSecurity } from "@nestjs/swagger";
3
- import { AUTH_META_KEY, IS_PUBLIC_KEY, REQUIRED_ROLES_KEY } from "./constants.js";
3
+ import { AUTH_META_KEY, IS_PUBLIC_KEY, REQUIRED_NAMESPACES_KEY, REQUIRED_ROLES_KEY, } from "./constants.js";
4
4
  import { AuthInterceptor } from "./AuthInterceptor.js";
5
5
  export function Auth(model) {
6
6
  const resource = model
@@ -19,4 +19,7 @@ export function Public() {
19
19
  export function RequireRoles(...roles) {
20
20
  return applyDecorators(ApiSecurity("bearer"), SetMetadata(REQUIRED_ROLES_KEY, roles), UseInterceptors(AuthInterceptor));
21
21
  }
22
+ export function RequireNamespaces(...namespaces) {
23
+ return applyDecorators(ApiSecurity("bearer"), SetMetadata(REQUIRED_NAMESPACES_KEY, namespaces), UseInterceptors(AuthInterceptor));
24
+ }
22
25
  //# sourceMappingURL=decorators.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"decorators.js","sourceRoot":"","sources":["../../../src/auth/decorators.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,WAAW,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AAC/E,OAAO,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAG7D,OAAO,EAAE,aAAa,EAAE,aAAa,EAAE,kBAAkB,EAAE,uBAAoB;AAC/E,OAAO,EAAE,eAAe,EAAE,6BAA0B;AAEpD,MAAM,UAAU,IAAI,CAAC,KAA4B;IAC/C,MAAM,QAAQ,GAAG,KAAK;QACpB,CAAC,CAAC,OAAO,KAAK,KAAK,QAAQ;YACzB,CAAC,CAAC,KAAK;YACP,CAAC,CAAC,KAAK,CAAC,IAAI;QACd,CAAC,CAAC,SAAS,CAAC;IACd,MAAM,IAAI,GAAG,CAAC,aAAa,EAAE,EAAE,eAAe,CAAC,eAAe,CAAC,CAAC,CAAC;IACjE,IAAI,QAAQ;QAAE,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,aAAa,EAAE,QAAQ,CAAC,CAAC,CAAC;IAC9D,OAAO,eAAe,CAAC,GAAG,IAAI,CAAC,CAAC;AAClC,CAAC;AAED,MAAM,UAAU,MAAM;IACpB,OAAO,eAAe,CAAC,WAAW,CAAC,aAAa,EAAE,IAAI,CAAC,CAAC,CAAC;AAC3D,CAAC;AAED,MAAM,UAAU,YAAY,CAAC,GAAG,KAAe;IAC7C,OAAO,eAAe,CACpB,WAAW,CAAC,QAAQ,CAAC,EACrB,WAAW,CAAC,kBAAkB,EAAE,KAAK,CAAC,EACtC,eAAe,CAAC,eAAe,CAAC,CACjC,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"decorators.js","sourceRoot":"","sources":["../../../src/auth/decorators.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,WAAW,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AAC/E,OAAO,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAG7D,OAAO,EACL,aAAa,EACb,aAAa,EACb,uBAAuB,EACvB,kBAAkB,GACnB,uBAAoB;AACrB,OAAO,EAAE,eAAe,EAAE,6BAA0B;AAEpD,MAAM,UAAU,IAAI,CAAC,KAA4B;IAC/C,MAAM,QAAQ,GAAG,KAAK;QACpB,CAAC,CAAC,OAAO,KAAK,KAAK,QAAQ;YACzB,CAAC,CAAC,KAAK;YACP,CAAC,CAAC,KAAK,CAAC,IAAI;QACd,CAAC,CAAC,SAAS,CAAC;IACd,MAAM,IAAI,GAAG,CAAC,aAAa,EAAE,EAAE,eAAe,CAAC,eAAe,CAAC,CAAC,CAAC;IACjE,IAAI,QAAQ;QAAE,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,aAAa,EAAE,QAAQ,CAAC,CAAC,CAAC;IAC9D,OAAO,eAAe,CAAC,GAAG,IAAI,CAAC,CAAC;AAClC,CAAC;AAED,MAAM,UAAU,MAAM;IACpB,OAAO,eAAe,CAAC,WAAW,CAAC,aAAa,EAAE,IAAI,CAAC,CAAC,CAAC;AAC3D,CAAC;AAED,MAAM,UAAU,YAAY,CAAC,GAAG,KAAe;IAC7C,OAAO,eAAe,CACpB,WAAW,CAAC,QAAQ,CAAC,EACrB,WAAW,CAAC,kBAAkB,EAAE,KAAK,CAAC,EACtC,eAAe,CAAC,eAAe,CAAC,CACjC,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,iBAAiB,CAAC,GAAG,UAAoB;IACvD,OAAO,eAAe,CACpB,WAAW,CAAC,QAAQ,CAAC,EACrB,WAAW,CAAC,uBAAuB,EAAE,UAAU,CAAC,EAChD,eAAe,CAAC,eAAe,CAAC,CACjC,CAAC;AACJ,CAAC"}
@@ -1,5 +1,6 @@
1
1
  export * from "./constants.js";
2
2
  export * from "./AuthInterceptor.js";
3
+ export * from "./AuthMiddleware.js";
3
4
  export * from "./DecafAuthHandler.js";
4
5
  export * from "./decorators.js";
5
6
  export * from "./DecafAuthModule.js";
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/auth/index.ts"],"names":[],"mappings":"AAAA,+BAA4B;AAC5B,qCAAkC;AAClC,sCAAmC;AACnC,gCAA6B;AAC7B,qCAAkC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/auth/index.ts"],"names":[],"mappings":"AAAA,+BAA4B;AAC5B,qCAAkC;AAClC,oCAAiC;AACjC,sCAAmC;AACnC,gCAA6B;AAC7B,qCAAkC"}