@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
@@ -39,29 +39,21 @@ let AuthInterceptor = class AuthInterceptor {
39
39
  const modelName = this.reflector.get(constants_js_1.AUTH_META_KEY, ctx.getHandler()) ??
40
40
  this.reflector.get(constants_js_1.AUTH_META_KEY, ctx.getClass());
41
41
  const requiredRoles = this.reflector.getAllAndOverride(constants_js_1.REQUIRED_ROLES_KEY, [ctx.getHandler(), ctx.getClass()]);
42
+ const requiredNamespaces = this.reflector.getAllAndOverride(constants_js_1.REQUIRED_NAMESPACES_KEY, [ctx.getHandler(), ctx.getClass()]);
42
43
  const skipModelRoles = this.reflector.getAllAndOverride(constants_js_1.SKIP_MODEL_ROLES_KEY, [ctx.getHandler(), ctx.getClass()]);
44
+ const skipModelNamespaces = this.reflector.getAllAndOverride(constants_js_1.SKIP_MODEL_NAMESPACES_KEY, [ctx.getHandler(), ctx.getClass()]);
43
45
  const effectiveModel = skipModelRoles ? undefined : modelName;
44
46
  log.verbose(`Intercepted request${modelName ? ` for ${modelName}` : ""}`);
45
47
  if (isPublic) {
46
48
  log.debug(`Public route — skipping auth`);
47
49
  }
48
50
  else if (this.authHandler) {
49
- await this.authHandler.authorize(ctx, effectiveModel, requiredRoles, this.requestContext);
51
+ await this.authHandler.authorize(ctx, effectiveModel, requiredRoles, requiredNamespaces, skipModelNamespaces, this.requestContext);
50
52
  }
51
53
  else {
52
54
  log.debug(`No auth handler registered`);
53
55
  }
54
- // Transformers run AFTER auth so they can read auth-populated fields
55
- // (e.g. `user`) from the context and map them to adapter-specific keys
56
- // (e.g. `UUID` for RamAdapter's @createdBy/@updatedBy handlers).
57
56
  await this.applyTransformers();
58
- const user = this.requestContext.getOrUndefined("user");
59
- const organization = this.requestContext.getOrUndefined("organization");
60
- if (user || organization) {
61
- const currentLog = this.requestContext.get("logger");
62
- const childLog = currentLog.for({ user, organization });
63
- this.requestContext.accumulate({ logger: childLog });
64
- }
65
57
  return next.handle();
66
58
  }
67
59
  async applyTransformers() {
@@ -1 +1 @@
1
- {"version":3,"file":"auth/AuthInterceptor.cjs","sourceRoot":"","sources":["auth/AuthInterceptor.js"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"auth/AuthInterceptor.cjs","sourceRoot":"","sources":["auth/AuthInterceptor.js"],"names":[],"mappings":"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"}
@@ -0,0 +1,51 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.AuthMiddleware = 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
+ const common_1 = require("@nestjs/common");
22
+ const constants_js_1 = require("./constants.cjs");
23
+ const DecafRequestContext_js_1 = require("./../request/DecafRequestContext.cjs");
24
+ const contextualize_js_1 = require("./../request/contextualize.cjs");
25
+ let AuthMiddleware = class AuthMiddleware {
26
+ constructor(authHandler, requestContext) {
27
+ this.authHandler = authHandler;
28
+ this.requestContext = requestContext;
29
+ }
30
+ async use(req, _res, next) {
31
+ (0, contextualize_js_1.contextualizeRequestContext)(this.requestContext, req);
32
+ if (this.authHandler) {
33
+ try {
34
+ await this.authHandler.prime(req, this.requestContext);
35
+ }
36
+ catch {
37
+ // Priming is best-effort. The interceptor will still perform validation.
38
+ }
39
+ }
40
+ await next();
41
+ }
42
+ };
43
+ exports.AuthMiddleware = AuthMiddleware;
44
+ exports.AuthMiddleware = AuthMiddleware = __decorate([
45
+ (0, common_1.Injectable)({ scope: common_1.Scope.REQUEST }),
46
+ __param(0, (0, common_1.Optional)()),
47
+ __param(0, (0, common_1.Inject)(constants_js_1.AUTH_HANDLER)),
48
+ __metadata("design:paramtypes", [Object, DecafRequestContext_js_1.DecafRequestContext])
49
+ ], AuthMiddleware);
50
+ //# sourceMappingURL=AuthMiddleware.js.map
51
+ //# sourceMappingURL=AuthMiddleware.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"auth/AuthMiddleware.cjs","sourceRoot":"","sources":["auth/AuthMiddleware.js"],"names":[],"mappings":"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"}
@@ -6,18 +6,23 @@ const server_1 = require("@decaf-ts/for-http/server");
6
6
  /**
7
7
  * Simple auth handler that reads a role string from the `Authorization: Bearer <role>` header.
8
8
  *
9
- * Only overrides {@link AuthHandler.extractFromAuth} to return the bearer token as
9
+ * Only overrides {@link AuthHandler.extractFromRequest} to return the bearer token as
10
10
  * both the user identifier and the single role. The base class `bindToContext`
11
11
  * (`ctx.accumulate(data)`) is sufficient — the transformer/adapter is responsible
12
12
  * for mapping context fields to adapter-specific keys like `UUID`.
13
13
  */
14
14
  class DecafAuthHandler extends server_1.AuthHandler {
15
+ isPublicRequest(_request) {
16
+ return false;
17
+ }
15
18
  parseRequest(req) {
16
19
  const userRole = req.headers.authorization?.split(" ")[1];
17
20
  return userRole;
18
21
  }
19
- extractFromAuth(ctx) {
20
- const req = ctx.switchToHttp().getRequest();
22
+ requestFromContext(ctx) {
23
+ return ctx.switchToHttp().getRequest();
24
+ }
25
+ extractFromRequest(req) {
21
26
  const userRole = this.parseRequest(req);
22
27
  if (!userRole)
23
28
  throw new core_1.AuthorizationError("Unauthenticated");
@@ -1 +1 @@
1
- {"version":3,"file":"auth/DecafAuthHandler.cjs","sourceRoot":"","sources":["auth/DecafAuthHandler.js"],"names":[],"mappings":";;;AAAA,yCAAoD;AACpD,sDAAwD;AACxD;;;;;;;GAOG;AACH,MAAa,gBAAiB,SAAQ,oBAAW;IAC7C,YAAY,CAAC,GAAG;QACZ,MAAM,QAAQ,GAAG,GAAG,CAAC,OAAO,CAAC,aAAa,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;QAC1D,OAAO,QAAQ,CAAC;IACpB,CAAC;IACD,eAAe,CAAC,GAAG;QACf,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;YACT,MAAM,IAAI,yBAAkB,CAAC,iBAAiB,CAAC,CAAC;QACpD,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC;IACjD,CAAC;CACJ;AAZD,4CAYC;AACD;;;;GAIG;AACH,MAAa,oBAAqB,SAAQ,gBAAgB;CACzD;AADD,oDACC;AACD,4CAA4C"}
1
+ {"version":3,"file":"auth/DecafAuthHandler.cjs","sourceRoot":"","sources":["auth/DecafAuthHandler.js"],"names":[],"mappings":";;;AAAA,yCAAoD;AACpD,sDAAwD;AACxD;;;;;;;GAOG;AACH,MAAa,gBAAiB,SAAQ,oBAAW;IAC7C,eAAe,CAAC,QAAQ;QACpB,OAAO,KAAK,CAAC;IACjB,CAAC;IACD,YAAY,CAAC,GAAG;QACZ,MAAM,QAAQ,GAAG,GAAG,CAAC,OAAO,CAAC,aAAa,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;QAC1D,OAAO,QAAQ,CAAC;IACpB,CAAC;IACD,kBAAkB,CAAC,GAAG;QAClB,OAAO,GAAG,CAAC,YAAY,EAAE,CAAC,UAAU,EAAE,CAAC;IAC3C,CAAC;IACD,kBAAkB,CAAC,GAAG;QAClB,MAAM,QAAQ,GAAG,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC;QACxC,IAAI,CAAC,QAAQ;YACT,MAAM,IAAI,yBAAkB,CAAC,iBAAiB,CAAC,CAAC;QACpD,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC;IACjD,CAAC;CACJ;AAjBD,4CAiBC;AACD;;;;GAIG;AACH,MAAa,oBAAqB,SAAQ,gBAAgB;CACzD;AADD,oDACC;AACD,4CAA4C"}
@@ -15,11 +15,13 @@ var DecafAuthModule_1;
15
15
  const common_1 = require("@nestjs/common");
16
16
  const core_1 = require("@nestjs/core");
17
17
  const AuthInterceptor_js_1 = require("./AuthInterceptor.cjs");
18
+ const AuthMiddleware_js_1 = require("./AuthMiddleware.cjs");
18
19
  const constants_js_1 = require("./constants.cjs");
19
20
  let DecafAuthModule = DecafAuthModule_1 = class DecafAuthModule {
20
21
  static forRoot(options = {}) {
21
22
  const providers = [
22
23
  AuthInterceptor_js_1.AuthInterceptor,
24
+ AuthMiddleware_js_1.AuthMiddleware,
23
25
  ];
24
26
  if (options.handler) {
25
27
  providers.push(options.handler);
@@ -38,9 +40,12 @@ let DecafAuthModule = DecafAuthModule_1 = class DecafAuthModule {
38
40
  module: DecafAuthModule_1,
39
41
  global: options.global ?? false,
40
42
  providers,
41
- exports: [AuthInterceptor_js_1.AuthInterceptor, constants_js_1.AUTH_HANDLER],
43
+ exports: [AuthInterceptor_js_1.AuthInterceptor, AuthMiddleware_js_1.AuthMiddleware, constants_js_1.AUTH_HANDLER],
42
44
  };
43
45
  }
46
+ configure(consumer) {
47
+ consumer.apply(AuthMiddleware_js_1.AuthMiddleware).forRoutes({ path: "*", method: common_1.RequestMethod.ALL });
48
+ }
44
49
  };
45
50
  exports.DecafAuthModule = DecafAuthModule;
46
51
  exports.DecafAuthModule = DecafAuthModule = DecafAuthModule_1 = __decorate([
@@ -1 +1 @@
1
- {"version":3,"file":"auth/DecafAuthModule.cjs","sourceRoot":"","sources":["auth/DecafAuthModule.js"],"names":[],"mappings":";;;AAAA,IAAI,UAAU,GAAG,CAAC,IAAI,IAAI,IAAI,CAAC,UAAU,CAAC,IAAI,UAAU,UAAU,EAAE,MAAM,EAAE,GAAG,EAAE,IAAI;IACjF,IAAI,CAAC,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,CAAC,CAAC,IAAI,GAAG,MAAM,CAAC,wBAAwB,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;IAC7H,IAAI,OAAO,OAAO,KAAK,QAAQ,IAAI,OAAO,OAAO,CAAC,QAAQ,KAAK,UAAU;QAAE,CAAC,GAAG,OAAO,CAAC,QAAQ,CAAC,UAAU,EAAE,MAAM,EAAE,GAAG,EAAE,IAAI,CAAC,CAAC;;QAC1H,KAAK,IAAI,CAAC,GAAG,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE;YAAE,IAAI,CAAC,GAAG,UAAU,CAAC,CAAC,CAAC;gBAAE,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC;IAClJ,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,MAAM,CAAC,cAAc,CAAC,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC;AAClE,CAAC,CAAC;AACF,IAAI,iBAAiB,CAAC;AACtB,2CAAwC;AACxC,uCAA+C;AAC/C,6DAAuD;AACvD,iDAA8C;AAC9C,IAAI,eAAe,GAAG,iBAAiB,GAAG,MAAM,eAAe;IAC3D,MAAM,CAAC,OAAO,CAAC,OAAO,GAAG,EAAE;QACvB,MAAM,SAAS,GAAG;YACd,oCAAe;SAClB,CAAC;QACF,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC;YAClB,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;YAChC,SAAS,CAAC,IAAI,CAAC;gBACX,OAAO,EAAE,2BAAY;gBACrB,QAAQ,EAAE,OAAO,CAAC,OAAO;aAC5B,CAAC,CAAC;QACP,CAAC;QACD,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;YACjB,SAAS,CAAC,IAAI,CAAC;gBACX,OAAO,EAAE,sBAAe;gBACxB,WAAW,EAAE,oCAAe;aAC/B,CAAC,CAAC;QACP,CAAC;QACD,OAAO;YACH,MAAM,EAAE,iBAAiB;YACzB,MAAM,EAAE,OAAO,CAAC,MAAM,IAAI,KAAK;YAC/B,SAAS;YACT,OAAO,EAAE,CAAC,oCAAe,EAAE,2BAAY,CAAC;SAC3C,CAAC;IACN,CAAC;CACJ,CAAC;AAIO,0CAAe;AAHxB,0BAAA,eAAe,GAAG,iBAAiB,GAAG,UAAU,CAAC;IAC7C,IAAA,eAAM,EAAC,EAAE,CAAC;CACb,EAAE,eAAe,CAAC,CAAC;AAEpB,2CAA2C"}
1
+ {"version":3,"file":"auth/DecafAuthModule.cjs","sourceRoot":"","sources":["auth/DecafAuthModule.js"],"names":[],"mappings":";;;AAAA,IAAI,UAAU,GAAG,CAAC,IAAI,IAAI,IAAI,CAAC,UAAU,CAAC,IAAI,UAAU,UAAU,EAAE,MAAM,EAAE,GAAG,EAAE,IAAI;IACjF,IAAI,CAAC,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,CAAC,CAAC,IAAI,GAAG,MAAM,CAAC,wBAAwB,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;IAC7H,IAAI,OAAO,OAAO,KAAK,QAAQ,IAAI,OAAO,OAAO,CAAC,QAAQ,KAAK,UAAU;QAAE,CAAC,GAAG,OAAO,CAAC,QAAQ,CAAC,UAAU,EAAE,MAAM,EAAE,GAAG,EAAE,IAAI,CAAC,CAAC;;QAC1H,KAAK,IAAI,CAAC,GAAG,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE;YAAE,IAAI,CAAC,GAAG,UAAU,CAAC,CAAC,CAAC;gBAAE,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC;IAClJ,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,MAAM,CAAC,cAAc,CAAC,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC;AAClE,CAAC,CAAC;AACF,IAAI,iBAAiB,CAAC;AACtB,2CAAuD;AACvD,uCAA+C;AAC/C,6DAAuD;AACvD,2DAAqD;AACrD,iDAA8C;AAC9C,IAAI,eAAe,GAAG,iBAAiB,GAAG,MAAM,eAAe;IAC3D,MAAM,CAAC,OAAO,CAAC,OAAO,GAAG,EAAE;QACvB,MAAM,SAAS,GAAG;YACd,oCAAe;YACf,kCAAc;SACjB,CAAC;QACF,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC;YAClB,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;YAChC,SAAS,CAAC,IAAI,CAAC;gBACX,OAAO,EAAE,2BAAY;gBACrB,QAAQ,EAAE,OAAO,CAAC,OAAO;aAC5B,CAAC,CAAC;QACP,CAAC;QACD,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;YACjB,SAAS,CAAC,IAAI,CAAC;gBACX,OAAO,EAAE,sBAAe;gBACxB,WAAW,EAAE,oCAAe;aAC/B,CAAC,CAAC;QACP,CAAC;QACD,OAAO;YACH,MAAM,EAAE,iBAAiB;YACzB,MAAM,EAAE,OAAO,CAAC,MAAM,IAAI,KAAK;YAC/B,SAAS;YACT,OAAO,EAAE,CAAC,oCAAe,EAAE,kCAAc,EAAE,2BAAY,CAAC;SAC3D,CAAC;IACN,CAAC;IACD,SAAS,CAAC,QAAQ;QACd,QAAQ,CAAC,KAAK,CAAC,kCAAc,CAAC,CAAC,SAAS,CAAC,EAAE,IAAI,EAAE,GAAG,EAAE,MAAM,EAAE,sBAAa,CAAC,GAAG,EAAE,CAAC,CAAC;IACvF,CAAC;CACJ,CAAC;AAIO,0CAAe;AAHxB,0BAAA,eAAe,GAAG,iBAAiB,GAAG,UAAU,CAAC;IAC7C,IAAA,eAAM,EAAC,EAAE,CAAC;CACb,EAAE,eAAe,CAAC,CAAC;AAEpB,2CAA2C"}
@@ -1,10 +1,12 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.SKIP_MODEL_ROLES_KEY = exports.REQUIRED_ROLES_KEY = exports.IS_PUBLIC_KEY = exports.AUTH_META_KEY = exports.AUTH_HANDLER = void 0;
3
+ exports.SKIP_MODEL_NAMESPACES_KEY = exports.SKIP_MODEL_ROLES_KEY = exports.REQUIRED_NAMESPACES_KEY = exports.REQUIRED_ROLES_KEY = exports.IS_PUBLIC_KEY = exports.AUTH_META_KEY = exports.AUTH_HANDLER = void 0;
4
4
  exports.AUTH_HANDLER = Symbol("AUTH_HANDLER");
5
5
  exports.AUTH_META_KEY = "auth:meta";
6
6
  exports.IS_PUBLIC_KEY = "isPublic";
7
7
  exports.REQUIRED_ROLES_KEY = "requiredRoles";
8
+ exports.REQUIRED_NAMESPACES_KEY = "requiredNamespaces";
8
9
  exports.SKIP_MODEL_ROLES_KEY = "skipModelRoles";
10
+ exports.SKIP_MODEL_NAMESPACES_KEY = "skipModelNamespaces";
9
11
  //# sourceMappingURL=constants.js.map
10
12
  //# sourceMappingURL=constants.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"auth/constants.cjs","sourceRoot":"","sources":["auth/constants.js"],"names":[],"mappings":";;;AAAa,QAAA,YAAY,GAAG,MAAM,CAAC,cAAc,CAAC,CAAC;AACtC,QAAA,aAAa,GAAG,WAAW,CAAC;AAC5B,QAAA,aAAa,GAAG,UAAU,CAAC;AAC3B,QAAA,kBAAkB,GAAG,eAAe,CAAC;AACrC,QAAA,oBAAoB,GAAG,gBAAgB,CAAC;AACrD,qCAAqC"}
1
+ {"version":3,"file":"auth/constants.cjs","sourceRoot":"","sources":["auth/constants.js"],"names":[],"mappings":";;;AAAa,QAAA,YAAY,GAAG,MAAM,CAAC,cAAc,CAAC,CAAC;AACtC,QAAA,aAAa,GAAG,WAAW,CAAC;AAC5B,QAAA,aAAa,GAAG,UAAU,CAAC;AAC3B,QAAA,kBAAkB,GAAG,eAAe,CAAC;AACrC,QAAA,uBAAuB,GAAG,oBAAoB,CAAC;AAC/C,QAAA,oBAAoB,GAAG,gBAAgB,CAAC;AACxC,QAAA,yBAAyB,GAAG,qBAAqB,CAAC;AAC/D,qCAAqC"}
@@ -3,6 +3,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.Auth = Auth;
4
4
  exports.Public = Public;
5
5
  exports.RequireRoles = RequireRoles;
6
+ exports.RequireNamespaces = RequireNamespaces;
6
7
  const common_1 = require("@nestjs/common");
7
8
  const swagger_1 = require("@nestjs/swagger");
8
9
  const constants_js_1 = require("./constants.cjs");
@@ -24,5 +25,8 @@ function Public() {
24
25
  function RequireRoles(...roles) {
25
26
  return (0, common_1.applyDecorators)((0, swagger_1.ApiSecurity)("bearer"), (0, common_1.SetMetadata)(constants_js_1.REQUIRED_ROLES_KEY, roles), (0, common_1.UseInterceptors)(AuthInterceptor_js_1.AuthInterceptor));
26
27
  }
28
+ function RequireNamespaces(...namespaces) {
29
+ return (0, common_1.applyDecorators)((0, swagger_1.ApiSecurity)("bearer"), (0, common_1.SetMetadata)(constants_js_1.REQUIRED_NAMESPACES_KEY, namespaces), (0, common_1.UseInterceptors)(AuthInterceptor_js_1.AuthInterceptor));
30
+ }
27
31
  //# sourceMappingURL=decorators.js.map
28
32
  //# sourceMappingURL=decorators.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"auth/decorators.cjs","sourceRoot":"","sources":["auth/decorators.js"],"names":[],"mappings":";;AAIA,oBAUC;AACD,wBAEC;AACD,oCAEC;AApBD,2CAA+E;AAC/E,6CAA6D;AAC7D,iDAAkF;AAClF,6DAAuD;AACvD,SAAgB,IAAI,CAAC,KAAK;IACtB,MAAM,QAAQ,GAAG,KAAK;QAClB,CAAC,CAAC,OAAO,KAAK,KAAK,QAAQ;YACvB,CAAC,CAAC,KAAK;YACP,CAAC,CAAC,KAAK,CAAC,IAAI;QAChB,CAAC,CAAC,SAAS,CAAC;IAChB,MAAM,IAAI,GAAG,CAAC,IAAA,uBAAa,GAAE,EAAE,IAAA,wBAAe,EAAC,oCAAe,CAAC,CAAC,CAAC;IACjE,IAAI,QAAQ;QACR,IAAI,CAAC,IAAI,CAAC,IAAA,oBAAW,EAAC,4BAAa,EAAE,QAAQ,CAAC,CAAC,CAAC;IACpD,OAAO,IAAA,wBAAe,EAAC,GAAG,IAAI,CAAC,CAAC;AACpC,CAAC;AACD,SAAgB,MAAM;IAClB,OAAO,IAAA,wBAAe,EAAC,IAAA,oBAAW,EAAC,4BAAa,EAAE,IAAI,CAAC,CAAC,CAAC;AAC7D,CAAC;AACD,SAAgB,YAAY,CAAC,GAAG,KAAK;IACjC,OAAO,IAAA,wBAAe,EAAC,IAAA,qBAAW,EAAC,QAAQ,CAAC,EAAE,IAAA,oBAAW,EAAC,iCAAkB,EAAE,KAAK,CAAC,EAAE,IAAA,wBAAe,EAAC,oCAAe,CAAC,CAAC,CAAC;AAC5H,CAAC;AACD,sCAAsC"}
1
+ {"version":3,"file":"auth/decorators.cjs","sourceRoot":"","sources":["auth/decorators.js"],"names":[],"mappings":";;AAIA,oBAUC;AACD,wBAEC;AACD,oCAEC;AACD,8CAEC;AAvBD,2CAA+E;AAC/E,6CAA6D;AAC7D,iDAA4G;AAC5G,6DAAuD;AACvD,SAAgB,IAAI,CAAC,KAAK;IACtB,MAAM,QAAQ,GAAG,KAAK;QAClB,CAAC,CAAC,OAAO,KAAK,KAAK,QAAQ;YACvB,CAAC,CAAC,KAAK;YACP,CAAC,CAAC,KAAK,CAAC,IAAI;QAChB,CAAC,CAAC,SAAS,CAAC;IAChB,MAAM,IAAI,GAAG,CAAC,IAAA,uBAAa,GAAE,EAAE,IAAA,wBAAe,EAAC,oCAAe,CAAC,CAAC,CAAC;IACjE,IAAI,QAAQ;QACR,IAAI,CAAC,IAAI,CAAC,IAAA,oBAAW,EAAC,4BAAa,EAAE,QAAQ,CAAC,CAAC,CAAC;IACpD,OAAO,IAAA,wBAAe,EAAC,GAAG,IAAI,CAAC,CAAC;AACpC,CAAC;AACD,SAAgB,MAAM;IAClB,OAAO,IAAA,wBAAe,EAAC,IAAA,oBAAW,EAAC,4BAAa,EAAE,IAAI,CAAC,CAAC,CAAC;AAC7D,CAAC;AACD,SAAgB,YAAY,CAAC,GAAG,KAAK;IACjC,OAAO,IAAA,wBAAe,EAAC,IAAA,qBAAW,EAAC,QAAQ,CAAC,EAAE,IAAA,oBAAW,EAAC,iCAAkB,EAAE,KAAK,CAAC,EAAE,IAAA,wBAAe,EAAC,oCAAe,CAAC,CAAC,CAAC;AAC5H,CAAC;AACD,SAAgB,iBAAiB,CAAC,GAAG,UAAU;IAC3C,OAAO,IAAA,wBAAe,EAAC,IAAA,qBAAW,EAAC,QAAQ,CAAC,EAAE,IAAA,oBAAW,EAAC,sCAAuB,EAAE,UAAU,CAAC,EAAE,IAAA,wBAAe,EAAC,oCAAe,CAAC,CAAC,CAAC;AACtI,CAAC;AACD,sCAAsC"}
@@ -16,6 +16,7 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
16
16
  Object.defineProperty(exports, "__esModule", { value: true });
17
17
  __exportStar(require("./constants.cjs"), exports);
18
18
  __exportStar(require("./AuthInterceptor.cjs"), exports);
19
+ __exportStar(require("./AuthMiddleware.cjs"), exports);
19
20
  __exportStar(require("./DecafAuthHandler.cjs"), exports);
20
21
  __exportStar(require("./decorators.cjs"), exports);
21
22
  __exportStar(require("./DecafAuthModule.cjs"), exports);
@@ -1 +1 @@
1
- {"version":3,"file":"auth/index.cjs","sourceRoot":"","sources":["auth/index.js"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,iDAA+B;AAC/B,uDAAqC;AACrC,wDAAsC;AACtC,kDAAgC;AAChC,uDAAqC;AACrC,iCAAiC"}
1
+ {"version":3,"file":"auth/index.cjs","sourceRoot":"","sources":["auth/index.js"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,iDAA+B;AAC/B,uDAAqC;AACrC,sDAAoC;AACpC,wDAAsC;AACtC,kDAAgC;AAChC,uDAAqC;AACrC,iCAAiC"}
@@ -128,9 +128,15 @@ class FromModelController {
128
128
  else {
129
129
  (0, decorators_js_1.Auth)(ModelConstr)(target);
130
130
  }
131
+ if (authConfig?.namespaces?.length) {
132
+ (0, decorators_js_1.RequireNamespaces)(...authConfig.namespaces)(target);
133
+ }
131
134
  if (authConfig?.skipModelRoles) {
132
135
  (0, common_1.SetMetadata)(constants_js_2.SKIP_MODEL_ROLES_KEY, true)(target);
133
136
  }
137
+ if (authConfig?.skipModelNamespaces) {
138
+ (0, common_1.SetMetadata)(constants_js_2.SKIP_MODEL_NAMESPACES_KEY, true)(target);
139
+ }
134
140
  }
135
141
  let DynamicModelController = DynamicModelController_1 = class DynamicModelController extends controllers_js_1.DecafModelController {
136
142
  static get class() {
@@ -1 +1 @@
1
- {"version":3,"file":"decaf-model/FromModelController.cjs","sourceRoot":"","sources":["decaf-model/FromModelController.js"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"decaf-model/FromModelController.cjs","sourceRoot":"","sources":["decaf-model/FromModelController.js"],"names":[],"mappings":"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"}
@@ -17,11 +17,17 @@ const EventsController_js_1 = require("./EventsController.cjs");
17
17
  const core_1 = require("@nestjs/core");
18
18
  const constant_js_1 = require("./constant.cjs");
19
19
  const index_js_1 = require("./../request/index.cjs");
20
+ const ObserverSubscriptionRegistry_js_1 = require("./ObserverSubscriptionRegistry.cjs");
21
+ const EventsSubscriptionController_js_1 = require("./EventsSubscriptionController.cjs");
20
22
  let DecafStreamModule = DecafStreamModule_1 = class DecafStreamModule {
21
- static forFlavours(flavours, path = "events") {
23
+ static forFlavours(flavours, path = "events", options = {}) {
24
+ const controllers = [EventsController_js_1.EventsController];
25
+ if (options.subscriptionMode) {
26
+ controllers.push(EventsSubscriptionController_js_1.EventsSubscriptionController);
27
+ }
22
28
  return {
23
29
  module: DecafStreamModule_1,
24
- controllers: [EventsController_js_1.EventsController],
30
+ controllers,
25
31
  imports: [
26
32
  core_1.RouterModule.register([
27
33
  {
@@ -32,10 +38,15 @@ let DecafStreamModule = DecafStreamModule_1 = class DecafStreamModule {
32
38
  ],
33
39
  providers: [
34
40
  index_js_1.DecafRequestContext,
41
+ ObserverSubscriptionRegistry_js_1.ObserverSubscriptionRegistry,
35
42
  {
36
43
  provide: constant_js_1.LISTENING_ADAPTERS_FLAVOURS,
37
44
  useValue: flavours ?? [],
38
45
  },
46
+ {
47
+ provide: constant_js_1.OBSERVER_EVENTS_OPTIONS,
48
+ useValue: options ?? {},
49
+ },
39
50
  ],
40
51
  };
41
52
  }
@@ -1 +1 @@
1
- {"version":3,"file":"events-module/DecafStreamModule.cjs","sourceRoot":"","sources":["events-module/DecafStreamModule.js"],"names":[],"mappings":";;;AAAA,IAAI,UAAU,GAAG,CAAC,IAAI,IAAI,IAAI,CAAC,UAAU,CAAC,IAAI,UAAU,UAAU,EAAE,MAAM,EAAE,GAAG,EAAE,IAAI;IACjF,IAAI,CAAC,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,CAAC,CAAC,IAAI,GAAG,MAAM,CAAC,wBAAwB,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;IAC7H,IAAI,OAAO,OAAO,KAAK,QAAQ,IAAI,OAAO,OAAO,CAAC,QAAQ,KAAK,UAAU;QAAE,CAAC,GAAG,OAAO,CAAC,QAAQ,CAAC,UAAU,EAAE,MAAM,EAAE,GAAG,EAAE,IAAI,CAAC,CAAC;;QAC1H,KAAK,IAAI,CAAC,GAAG,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE;YAAE,IAAI,CAAC,GAAG,UAAU,CAAC,CAAC,CAAC;gBAAE,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC;IAClJ,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,MAAM,CAAC,cAAc,CAAC,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC;AAClE,CAAC,CAAC;AACF,IAAI,mBAAmB,CAAC;AACxB,2CAAwC;AACxC,+DAAyD;AACzD,uCAA4C;AAC5C,+CAA4D;AAC5D,oDAA4D;AAC5D,IAAI,iBAAiB,GAAG,mBAAmB,GAAG,MAAM,iBAAiB;IACjE,MAAM,CAAC,WAAW,CAAC,QAAQ,EAAE,IAAI,GAAG,QAAQ;QACxC,OAAO;YACH,MAAM,EAAE,mBAAmB;YAC3B,WAAW,EAAE,CAAC,sCAAgB,CAAC;YAC/B,OAAO,EAAE;gBACL,mBAAY,CAAC,QAAQ,CAAC;oBAClB;wBACI,IAAI,EAAE,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC;wBAC7B,MAAM,EAAE,mBAAmB;qBAC9B;iBACJ,CAAC;aACL;YACD,SAAS,EAAE;gBACP,8BAAmB;gBACnB;oBACI,OAAO,EAAE,yCAA2B;oBACpC,QAAQ,EAAE,QAAQ,IAAI,EAAE;iBAC3B;aACJ;SACJ,CAAC;IACN,CAAC;CACJ,CAAC;AAIO,8CAAiB;AAH1B,4BAAA,iBAAiB,GAAG,mBAAmB,GAAG,UAAU,CAAC;IACjD,IAAA,eAAM,EAAC,EAAE,CAAC;CACb,EAAE,iBAAiB,CAAC,CAAC;AAEtB,6CAA6C"}
1
+ {"version":3,"file":"events-module/DecafStreamModule.cjs","sourceRoot":"","sources":["events-module/DecafStreamModule.js"],"names":[],"mappings":";;;AAAA,IAAI,UAAU,GAAG,CAAC,IAAI,IAAI,IAAI,CAAC,UAAU,CAAC,IAAI,UAAU,UAAU,EAAE,MAAM,EAAE,GAAG,EAAE,IAAI;IACjF,IAAI,CAAC,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,CAAC,CAAC,IAAI,GAAG,MAAM,CAAC,wBAAwB,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;IAC7H,IAAI,OAAO,OAAO,KAAK,QAAQ,IAAI,OAAO,OAAO,CAAC,QAAQ,KAAK,UAAU;QAAE,CAAC,GAAG,OAAO,CAAC,QAAQ,CAAC,UAAU,EAAE,MAAM,EAAE,GAAG,EAAE,IAAI,CAAC,CAAC;;QAC1H,KAAK,IAAI,CAAC,GAAG,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE;YAAE,IAAI,CAAC,GAAG,UAAU,CAAC,CAAC,CAAC;gBAAE,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC;IAClJ,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,MAAM,CAAC,cAAc,CAAC,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC;AAClE,CAAC,CAAC;AACF,IAAI,mBAAmB,CAAC;AACxB,2CAAwC;AACxC,+DAAyD;AACzD,uCAA4C;AAC5C,+CAAsF;AACtF,oDAA4D;AAC5D,uFAAiF;AACjF,uFAAiF;AACjF,IAAI,iBAAiB,GAAG,mBAAmB,GAAG,MAAM,iBAAiB;IACjE,MAAM,CAAC,WAAW,CAAC,QAAQ,EAAE,IAAI,GAAG,QAAQ,EAAE,OAAO,GAAG,EAAE;QACtD,MAAM,WAAW,GAAG,CAAC,sCAAgB,CAAC,CAAC;QACvC,IAAI,OAAO,CAAC,gBAAgB,EAAE,CAAC;YAC3B,WAAW,CAAC,IAAI,CAAC,8DAA4B,CAAC,CAAC;QACnD,CAAC;QACD,OAAO;YACH,MAAM,EAAE,mBAAmB;YAC3B,WAAW;YACX,OAAO,EAAE;gBACL,mBAAY,CAAC,QAAQ,CAAC;oBAClB;wBACI,IAAI,EAAE,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC;wBAC7B,MAAM,EAAE,mBAAmB;qBAC9B;iBACJ,CAAC;aACL;YACD,SAAS,EAAE;gBACP,8BAAmB;gBACnB,8DAA4B;gBAC5B;oBACI,OAAO,EAAE,yCAA2B;oBACpC,QAAQ,EAAE,QAAQ,IAAI,EAAE;iBAC3B;gBACD;oBACI,OAAO,EAAE,qCAAuB;oBAChC,QAAQ,EAAE,OAAO,IAAI,EAAE;iBAC1B;aACJ;SACJ,CAAC;IACN,CAAC;CACJ,CAAC;AAIO,8CAAiB;AAH1B,4BAAA,iBAAiB,GAAG,mBAAmB,GAAG,UAAU,CAAC;IACjD,IAAA,eAAM,EAAC,EAAE,CAAC;CACb,EAAE,iBAAiB,CAAC,CAAC;AAEtB,6CAA6C"}
@@ -28,13 +28,21 @@ const logging_1 = require("@decaf-ts/logging");
28
28
  const constant_js_1 = require("./constant.cjs");
29
29
  const utils_js_1 = require("./utils.cjs");
30
30
  const operators_1 = require("rxjs/operators");
31
+ const ObserverSubscriptionRegistry_js_1 = require("./ObserverSubscriptionRegistry.cjs");
31
32
  let EventsController = EventsController_1 = class EventsController extends controllers_js_1.DecafController {
32
- constructor(clientContext, flavours) {
33
+ constructor(clientContext, flavours, options, registry) {
33
34
  super(clientContext, EventsController_1.name);
35
+ this.options = options;
36
+ this.registry = registry;
34
37
  this.adapters = flavours.map((flavour) => core_1.Adapter.get(flavour)); // change to Adapter.cache("")
35
38
  }
36
- listen() {
39
+ listen(subscriberId) {
37
40
  const logger = logging_1.Logging.for(EventsController_1.name);
41
+ const subscriptionMode = Boolean(this.options.subscriptionMode);
42
+ if (subscriptionMode && !subscriberId) {
43
+ throw new common_1.BadRequestException("subscriberId is required when subscriptionMode is enabled");
44
+ }
45
+ const activeSubscriberId = subscriberId ?? "";
38
46
  const events$ = new rxjs_1.Observable((observer) => {
39
47
  const observerId = `B-${Math.random().toString(36).slice(2, 8)}`.toUpperCase();
40
48
  logger.info(`Creating SSE observer: ${observerId} for client ${this.clientContext.uuid}`);
@@ -51,12 +59,22 @@ let EventsController = EventsController_1 = class EventsController extends contr
51
59
  });
52
60
  }
53
61
  })();
62
+ const filter = subscriptionMode
63
+ ? (model, ..._args) => {
64
+ const topic = typeof model === "string"
65
+ ? model
66
+ : model?.name ?? model?.constructor?.name;
67
+ if (!topic)
68
+ return false;
69
+ return this.registry.matches(activeSubscriberId, topic);
70
+ }
71
+ : undefined;
54
72
  logger.verbose(`Registering observer ${observerId} across ${this.adapters.length} adapter(s)`);
55
73
  for (const adapter of this.adapters) {
56
74
  const adapterName = adapter?.constructor?.name ?? "UnknownAdapter";
57
75
  try {
58
76
  logger.debug(`Registering observer ${observerId} in adapter ${adapterName}`);
59
- adapter.observe(cb);
77
+ adapter.observe(cb, filter);
60
78
  }
61
79
  catch (e) {
62
80
  logger.debug(`Failed to register observer ${observerId} in adapter ${adapterName}: ${e?.message || e}`);
@@ -76,6 +94,9 @@ let EventsController = EventsController_1 = class EventsController extends contr
76
94
  logger.error(e);
77
95
  }
78
96
  }
97
+ if (subscriptionMode) {
98
+ this.registry.remove(activeSubscriberId);
99
+ }
79
100
  };
80
101
  });
81
102
  const HEARTBEAT_INTERVAL_MS = 15000;
@@ -124,8 +145,9 @@ let EventsController = EventsController_1 = class EventsController extends contr
124
145
  exports.EventsController = EventsController;
125
146
  __decorate([
126
147
  (0, common_1.Sse)(),
148
+ __param(0, (0, common_1.Query)("subscriberId")),
127
149
  __metadata("design:type", Function),
128
- __metadata("design:paramtypes", []),
150
+ __metadata("design:paramtypes", [String]),
129
151
  __metadata("design:returntype", rxjs_1.Observable)
130
152
  ], EventsController.prototype, "listen", null);
131
153
  __decorate([
@@ -140,7 +162,8 @@ __decorate([
140
162
  exports.EventsController = EventsController = EventsController_1 = __decorate([
141
163
  (0, common_1.Controller)(),
142
164
  __param(1, (0, common_1.Inject)(constant_js_1.LISTENING_ADAPTERS_FLAVOURS)),
143
- __metadata("design:paramtypes", [index_js_1.DecafRequestContext, Array])
165
+ __param(2, (0, common_1.Inject)(constant_js_1.OBSERVER_EVENTS_OPTIONS)),
166
+ __metadata("design:paramtypes", [index_js_1.DecafRequestContext, Array, Object, ObserverSubscriptionRegistry_js_1.ObserverSubscriptionRegistry])
144
167
  ], EventsController);
145
168
  //# sourceMappingURL=EventsController.js.map
146
169
  //# sourceMappingURL=EventsController.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"events-module/EventsController.cjs","sourceRoot":"","sources":["events-module/EventsController.js"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"events-module/EventsController.cjs","sourceRoot":"","sources":["events-module/EventsController.js"],"names":[],"mappings":"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"}