mongodb-dynamic-api 4.22.0 → 4.23.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 (75) hide show
  1. package/CHANGELOG.md +24 -0
  2. package/package.json +1 -1
  3. package/src/dynamic-api.module.js +6 -3
  4. package/src/dynamic-api.module.js.map +1 -1
  5. package/src/guards/base-policies.guard.d.ts +1 -0
  6. package/src/guards/base-policies.guard.js +3 -2
  7. package/src/guards/base-policies.guard.js.map +1 -1
  8. package/src/helpers/cache-path-registry.store.d.ts +13 -0
  9. package/src/helpers/cache-path-registry.store.js +45 -0
  10. package/src/helpers/cache-path-registry.store.js.map +1 -0
  11. package/src/helpers/mixin-data.helper.js +19 -0
  12. package/src/helpers/mixin-data.helper.js.map +1 -1
  13. package/src/interceptors/dynamic-api-cache.interceptor.d.ts +5 -1
  14. package/src/interceptors/dynamic-api-cache.interceptor.js +18 -3
  15. package/src/interceptors/dynamic-api-cache.interceptor.js.map +1 -1
  16. package/src/interfaces/dynamic-api-cache-options.interface.d.ts +1 -0
  17. package/src/interfaces/dynamic-api-custom-route.interface.d.ts +4 -1
  18. package/src/interfaces/dynamic-api-global-state.interface.d.ts +1 -0
  19. package/src/interfaces/dynamic-api-service-callback.interface.d.ts +1 -0
  20. package/src/mixins/policies-guard.mixin.d.ts +6 -1
  21. package/src/mixins/policies-guard.mixin.js +3 -1
  22. package/src/mixins/policies-guard.mixin.js.map +1 -1
  23. package/src/modules/dynamic-api-config/dynamic-api-config.module.js +8 -1
  24. package/src/modules/dynamic-api-config/dynamic-api-config.module.js.map +1 -1
  25. package/src/routes/aggregate/aggregate-controller.mixin.js +1 -1
  26. package/src/routes/aggregate/aggregate-controller.mixin.js.map +1 -1
  27. package/src/routes/cache-purge/cache-purge.helper.js +5 -9
  28. package/src/routes/cache-purge/cache-purge.helper.js.map +1 -1
  29. package/src/routes/custom/create-custom-route-controller.js +79 -40
  30. package/src/routes/custom/create-custom-route-controller.js.map +1 -1
  31. package/src/routes/custom/create-custom-route-gateway.js +8 -4
  32. package/src/routes/custom/create-custom-route-gateway.js.map +1 -1
  33. package/src/routes/get-many/get-many-controller.mixin.js +1 -1
  34. package/src/routes/get-many/get-many-controller.mixin.js.map +1 -1
  35. package/src/services/base/base.service.d.ts +3 -0
  36. package/src/services/base/base.service.js +49 -4
  37. package/src/services/base/base.service.js.map +1 -1
  38. package/src/services/dynamic-api-cache/dynamic-api-cache.service.d.ts +13 -0
  39. package/src/services/dynamic-api-cache/dynamic-api-cache.service.js +84 -0
  40. package/src/services/dynamic-api-cache/dynamic-api-cache.service.js.map +1 -0
  41. package/src/services/dynamic-api-global-state/dynamic-api-global-state.service.d.ts +1 -0
  42. package/src/services/dynamic-api-global-state/dynamic-api-global-state.service.js +4 -0
  43. package/src/services/dynamic-api-global-state/dynamic-api-global-state.service.js.map +1 -1
  44. package/src/services/index.d.ts +1 -0
  45. package/src/services/index.js +1 -0
  46. package/src/services/index.js.map +1 -1
  47. package/src/version.json +1 -1
  48. package/test/for-feature/cache-identity-key.e2e-spec.d.ts +1 -0
  49. package/test/for-feature/cache-identity-key.e2e-spec.js +120 -0
  50. package/test/for-feature/cache-identity-key.e2e-spec.js.map +1 -0
  51. package/test/for-feature/cache-scoped-invalidation.e2e-spec.d.ts +1 -0
  52. package/test/for-feature/cache-scoped-invalidation.e2e-spec.js +136 -0
  53. package/test/for-feature/cache-scoped-invalidation.e2e-spec.js.map +1 -0
  54. package/test/for-feature/custom-route-inject.e2e-spec.d.ts +1 -0
  55. package/test/for-feature/custom-route-inject.e2e-spec.js +101 -0
  56. package/test/for-feature/custom-route-inject.e2e-spec.js.map +1 -0
  57. package/test/for-feature/custom-route-params-openapi.e2e-spec.d.ts +1 -0
  58. package/test/for-feature/custom-route-params-openapi.e2e-spec.js +77 -0
  59. package/test/for-feature/custom-route-params-openapi.e2e-spec.js.map +1 -0
  60. package/test/for-feature/custom-route-target-param.e2e-spec.d.ts +1 -0
  61. package/test/for-feature/custom-route-target-param.e2e-spec.js +102 -0
  62. package/test/for-feature/custom-route-target-param.e2e-spec.js.map +1 -0
  63. package/test/for-feature/derived-fields-raw-write-recompute.e2e-spec.d.ts +1 -0
  64. package/test/for-feature/derived-fields-raw-write-recompute.e2e-spec.js +128 -0
  65. package/test/for-feature/derived-fields-raw-write-recompute.e2e-spec.js.map +1 -0
  66. package/test/for-feature/exclude-from-response.e2e-spec.d.ts +1 -0
  67. package/test/for-feature/exclude-from-response.e2e-spec.js +93 -0
  68. package/test/for-feature/exclude-from-response.e2e-spec.js.map +1 -0
  69. package/test/for-root/auth-api-basic.e2e-spec.js +2 -0
  70. package/test/for-root/auth-api-basic.e2e-spec.js.map +1 -1
  71. package/test/for-root/initialization.e2e-spec.js +2 -0
  72. package/test/for-root/initialization.e2e-spec.js.map +1 -1
  73. package/test/for-root/websockets-auth-basic.e2e-spec.js +1 -0
  74. package/test/for-root/websockets-auth-basic.e2e-spec.js.map +1 -1
  75. package/tsconfig.tsbuildinfo +1 -1
package/CHANGELOG.md CHANGED
@@ -1,5 +1,29 @@
1
1
  Changelog
2
2
 
3
+ ## [4.23.0](https://github.com/MikeDev75015/mongodb-dynamic-api/compare/v4.22.0...v4.23.0) (2026-08-23)
4
+
5
+ ### quality
6
+
7
+ * **quality:** resolve 6 SonarCloud leak-period issues on develop ([43e51fb](https://github.com/MikeDev75015/mongodb-dynamic-api/commit/43e51fb1281d5896d2a6bbf714386b10661f43f4))
8
+
9
+ ### custom-routes
10
+
11
+ * **custom-routes:** DI resolution via inject (F8) ([8bc60af](https://github.com/MikeDev75015/mongodb-dynamic-api/commit/8bc60af727152da8eb1b41a27c301aa17bf459c5))
12
+ * **custom-routes:** dTOs.params for OpenAPI path param docs (F9) ([e42449f](https://github.com/MikeDev75015/mongodb-dynamic-api/commit/e42449f9d49d7a2ceecb3b57f3cf25663c92c32c))
13
+
14
+ ### entities
15
+
16
+ * **entities:** recompute @DerivedField on single-document raw writes (F5) ([411222a](https://github.com/MikeDev75015/mongodb-dynamic-api/commit/411222ae703558dfe1836280baac70dc8dde0f4e))
17
+
18
+ ### cache
19
+
20
+ * **cache:** identity-aware cache key + filter-mode safety warning (F1, F2) ([4641906](https://github.com/MikeDev75015/mongodb-dynamic-api/commit/464190614571e323d37c704ebca7537395277229))
21
+ * **cache:** scoped invalidation via DynamicApiCacheService (F3, F4) ([c1c701d](https://github.com/MikeDev75015/mongodb-dynamic-api/commit/c1c701d1cf4986655f270284e6ada94923c589ce))
22
+
23
+ ### guards
24
+
25
+ * **guards:** targetParam for custom routes with a non-id path param (F7) ([977de6d](https://github.com/MikeDev75015/mongodb-dynamic-api/commit/977de6d292af965f639c9749fd4b7973bd14373b))
26
+
3
27
  ## [4.22.0](https://github.com/MikeDev75015/mongodb-dynamic-api/compare/v4.21.0...v4.22.0) (2026-08-16)
4
28
 
5
29
  ### ci
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "mongodb-dynamic-api",
3
- "version": "4.22.0",
3
+ "version": "4.23.0",
4
4
  "description": "Auto generated CRUD API for MongoDB using NestJS",
5
5
  "readmeFilename": "README.md",
6
6
  "main": "index.js",
@@ -16,6 +16,7 @@ const mongoose_1 = require("@nestjs/mongoose");
16
16
  const gateways_1 = require("./gateways");
17
17
  const guards_1 = require("./guards");
18
18
  const helpers_1 = require("./helpers");
19
+ const cache_path_registry_store_1 = require("./helpers/cache-path-registry.store");
19
20
  const interceptors_1 = require("./interceptors");
20
21
  const interfaces_1 = require("./interfaces");
21
22
  const modules_1 = require("./modules");
@@ -56,6 +57,7 @@ let DynamicApiModule = DynamicApiModule_1 = class DynamicApiModule {
56
57
  const schema = (0, helpers_1.buildSchemaFromEntity)(entity);
57
58
  const databaseModule = mongoose_1.MongooseModule.forFeature([{ name: entity.name, schema }], this.state.get('connectionName'));
58
59
  services_1.DynamicApiGlobalStateService.addEntitySchema(entity, schema);
60
+ cache_path_registry_store_1.DynamicApiCachePathRegistryStore.register(entity.name, controllerOptions.path);
59
61
  return new Promise((resolve, reject) => {
60
62
  const waitForState = setTimeout(() => {
61
63
  reject(new Error('Dynamic API state could not be initialized. Please check your configuration.'));
@@ -123,9 +125,9 @@ let DynamicApiModule = DynamicApiModule_1 = class DynamicApiModule {
123
125
  providers: [
124
126
  {
125
127
  provide: core_1.APP_INTERCEPTOR,
126
- inject: [cache_manager_1.CACHE_MANAGER, core_1.Reflector, http_adapter_host_1.HttpAdapterHost, interfaces_1.DYNAMIC_API_GLOBAL_STATE],
127
- useFactory: (cacheManager, reflector, httpAdapterHost, state) => {
128
- return new interceptors_1.DynamicApiCacheInterceptor(cacheManager, reflector, httpAdapterHost, state);
128
+ inject: [cache_manager_1.CACHE_MANAGER, core_1.Reflector, http_adapter_host_1.HttpAdapterHost, interfaces_1.DYNAMIC_API_GLOBAL_STATE, services_1.DynamicApiCacheService],
129
+ useFactory: (cacheManager, reflector, httpAdapterHost, state, cacheService) => {
130
+ return new interceptors_1.DynamicApiCacheInterceptor(cacheManager, reflector, httpAdapterHost, state, cacheService);
129
131
  },
130
132
  },
131
133
  ...(routes.some((r) => r.broadcast) ? [
@@ -149,6 +151,7 @@ let DynamicApiModule = DynamicApiModule_1 = class DynamicApiModule {
149
151
  isGlobalCacheEnabled: useGlobalCache,
150
152
  ...(onAfterSaveError ? { onAfterSaveError } : {}),
151
153
  ...(cacheOptions?.excludePaths ? { cacheExcludedPaths: cacheOptions?.excludePaths } : {}),
154
+ ...(cacheOptions?.keyBy ? { cacheKeyBy: cacheOptions.keyBy } : {}),
152
155
  ...(useAuth?.userEntity ? {
153
156
  isAuthEnabled: true,
154
157
  credentials: {
@@ -1 +1 @@
1
- {"version":3,"file":"dynamic-api.module.js","sourceRoot":"","sources":["../../libs/dynamic-api/src/dynamic-api.module.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"dynamic-api.module.js","sourceRoot":"","sources":["../../libs/dynamic-api/src/dynamic-api.module.ts"],"names":[],"mappings":"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"}
@@ -11,6 +11,7 @@ declare abstract class BasePoliciesGuard<Entity extends BaseEntity> extends Base
11
11
  protected abilityPredicate: AbilityPredicate<Entity> | undefined;
12
12
  protected predicateBehavior: PredicateBehavior | undefined;
13
13
  protected queryToPipeline?: (query: unknown) => PipelineStage[];
14
+ protected targetParam: string | undefined;
14
15
  protected constructor(model: Model<Entity>);
15
16
  canActivate(context: ExecutionContext): Promise<boolean>;
16
17
  }
@@ -17,8 +17,9 @@ class BasePoliciesGuard extends services_1.BaseService {
17
17
  throw new common_1.ForbiddenException('Access Denied');
18
18
  }
19
19
  this.user = user;
20
- if (params?.id) {
21
- await this.findOneDocumentWithAbilityPredicate(params.id, query);
20
+ const targetId = params?.[this.targetParam ?? 'id'];
21
+ if (targetId) {
22
+ await this.findOneDocumentWithAbilityPredicate(targetId, query);
22
23
  }
23
24
  else if (this.routeType === 'Aggregate' && query && this.queryToPipeline) {
24
25
  await this.aggregateDocumentsWithAbilityPredicate(this.queryToPipeline(query));
@@ -1 +1 @@
1
- {"version":3,"file":"base-policies.guard.js","sourceRoot":"","sources":["../../../libs/dynamic-api/src/guards/base-policies.guard.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"base-policies.guard.js","sourceRoot":"","sources":["../../../libs/dynamic-api/src/guards/base-policies.guard.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,13 @@
1
+ interface CachePathEntry {
2
+ entityName: string;
3
+ path: string;
4
+ }
5
+ declare class DynamicApiCachePathRegistryStore {
6
+ private static readonly entries;
7
+ static register(entityName: string, path: string): void;
8
+ static getAll(): CachePathEntry[];
9
+ static getPath(entityName: string): string | undefined;
10
+ static findPrefixForUrl(url: string): string | undefined;
11
+ static reset(): void;
12
+ }
13
+ export { DynamicApiCachePathRegistryStore, CachePathEntry };
@@ -0,0 +1,45 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.DynamicApiCachePathRegistryStore = void 0;
4
+ class DynamicApiCachePathRegistryStore {
5
+ static register(entityName, path) {
6
+ DynamicApiCachePathRegistryStore.entries.set(entityName, { entityName, path });
7
+ }
8
+ static getAll() {
9
+ return Array.from(DynamicApiCachePathRegistryStore.entries.values());
10
+ }
11
+ static getPath(entityName) {
12
+ return DynamicApiCachePathRegistryStore.entries.get(entityName)?.path;
13
+ }
14
+ static findPrefixForUrl(url) {
15
+ const [pathname] = url.split('?');
16
+ const urlSegments = pathname.split('/').filter(Boolean);
17
+ let best;
18
+ for (const { path } of DynamicApiCachePathRegistryStore.entries.values()) {
19
+ const pathSegments = path.split('/').filter(Boolean);
20
+ if (pathSegments.length === 0) {
21
+ continue;
22
+ }
23
+ for (let start = 0; start <= urlSegments.length - pathSegments.length; start++) {
24
+ const matches = pathSegments.every((segment, i) => urlSegments[start + i] === segment);
25
+ if (!matches) {
26
+ continue;
27
+ }
28
+ if (!best || pathSegments.length > best.segmentCount) {
29
+ best = {
30
+ prefix: `/${urlSegments.slice(0, start + pathSegments.length).join('/')}`,
31
+ segmentCount: pathSegments.length,
32
+ };
33
+ }
34
+ break;
35
+ }
36
+ }
37
+ return best?.prefix;
38
+ }
39
+ static reset() {
40
+ DynamicApiCachePathRegistryStore.entries.clear();
41
+ }
42
+ }
43
+ exports.DynamicApiCachePathRegistryStore = DynamicApiCachePathRegistryStore;
44
+ DynamicApiCachePathRegistryStore.entries = new Map();
45
+ //# sourceMappingURL=cache-path-registry.store.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cache-path-registry.store.js","sourceRoot":"","sources":["../../../libs/dynamic-api/src/helpers/cache-path-registry.store.ts"],"names":[],"mappings":";;;AAeA,MAAM,gCAAgC;IAGpC,MAAM,CAAC,QAAQ,CAAC,UAAkB,EAAE,IAAY;QAE9C,gCAAgC,CAAC,OAAO,CAAC,GAAG,CAAC,UAAU,EAAE,EAAE,UAAU,EAAE,IAAI,EAAE,CAAC,CAAC;IACjF,CAAC;IAED,MAAM,CAAC,MAAM;QACX,OAAO,KAAK,CAAC,IAAI,CAAC,gCAAgC,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;IACvE,CAAC;IAED,MAAM,CAAC,OAAO,CAAC,UAAkB;QAC/B,OAAO,gCAAgC,CAAC,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC,EAAE,IAAI,CAAC;IACxE,CAAC;IAUD,MAAM,CAAC,gBAAgB,CAAC,GAAW;QACjC,MAAM,CAAC,QAAQ,CAAC,GAAG,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QAClC,MAAM,WAAW,GAAG,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;QAExD,IAAI,IAA0D,CAAC;QAE/D,KAAK,MAAM,EAAE,IAAI,EAAE,IAAI,gCAAgC,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC;YACzE,MAAM,YAAY,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;YACrD,IAAI,YAAY,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBAC9B,SAAS;YACX,CAAC;YAED,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,IAAI,WAAW,CAAC,MAAM,GAAG,YAAY,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE,CAAC;gBAC/E,MAAM,OAAO,GAAG,YAAY,CAAC,KAAK,CAAC,CAAC,OAAO,EAAE,CAAC,EAAE,EAAE,CAAC,WAAW,CAAC,KAAK,GAAG,CAAC,CAAC,KAAK,OAAO,CAAC,CAAC;gBACvF,IAAI,CAAC,OAAO,EAAE,CAAC;oBACb,SAAS;gBACX,CAAC;gBAED,IAAI,CAAC,IAAI,IAAI,YAAY,CAAC,MAAM,GAAG,IAAI,CAAC,YAAY,EAAE,CAAC;oBACrD,IAAI,GAAG;wBACL,MAAM,EAAE,IAAI,WAAW,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,GAAG,YAAY,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE;wBACzE,YAAY,EAAE,YAAY,CAAC,MAAM;qBAClC,CAAC;gBACJ,CAAC;gBACD,MAAM;YACR,CAAC;QACH,CAAC;QAED,OAAO,IAAI,EAAE,MAAM,CAAC;IACtB,CAAC;IAGD,MAAM,CAAC,KAAK;QACV,gCAAgC,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;IACnD,CAAC;;AAGM,4EAAgC;AA5Df,wCAAO,GAAG,IAAI,GAAG,EAA0B,CAAC"}
@@ -3,8 +3,12 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.getMixinData = getMixinData;
4
4
  const lodash_helper_1 = require("./lodash.helper");
5
5
  const event_registry_store_1 = require("./event-registry.store");
6
+ const logger_1 = require("../logger");
7
+ const dynamic_api_global_state_service_1 = require("../services/dynamic-api-global-state/dynamic-api-global-state.service");
6
8
  const controller_ability_predicates_helper_1 = require("./controller-ability-predicates.helper");
7
9
  const format_helper_1 = require("./format.helper");
10
+ const FILTER_MODE_ROUTE_TYPES = new Set(['GetMany', 'Aggregate']);
11
+ const logger = new logger_1.MongoDBDynamicApiLogger('DynamicApiModule');
8
12
  function getMixinData(entity, { apiTag, isPublic: isPublicController, disableCache: disableCacheController, abilityPredicates: controllerAbilityPredicates, }, { type: routeType, subPath, description, isPublic: isPublicRoute, disableCache: disableCacheRoute, abilityPredicate: routeAbilityPredicate, predicateBehavior, eventName, }, isGateway = false, broadcastConfig) {
9
13
  const displayedName = (0, format_helper_1.getDisplayedName)(apiTag, entity.name, subPath);
10
14
  let isPublic;
@@ -28,6 +32,21 @@ function getMixinData(entity, { apiTag, isPublic: isPublicController, disableCac
28
32
  disableCache = false;
29
33
  }
30
34
  const abilityPredicate = routeAbilityPredicate ?? (0, controller_ability_predicates_helper_1.getPredicateFromControllerAbilityPredicates)(controllerAbilityPredicates, routeType);
35
+ if (!isGateway &&
36
+ !isPublic &&
37
+ abilityPredicate &&
38
+ predicateBehavior === 'filter' &&
39
+ !disableCache &&
40
+ FILTER_MODE_ROUTE_TYPES.has(routeType) &&
41
+ dynamic_api_global_state_service_1.DynamicApiGlobalStateService.getValue('isGlobalCacheEnabled')) {
42
+ logger.warn(`[Cache Safety] Route ${routeType} on ${entity.name}: predicateBehavior 'filter' combined with an `
43
+ + `active response cache. In 'filter' mode the Guard performs no per-request check, so if the cache's `
44
+ + `key doesn't vary per caller (see cacheOptions.keyBy), the response computed for the first caller `
45
+ + `could be served as-is to a later caller with different permissions. Safe by default when `
46
+ + `cacheOptions.keyBy is 'url+identity' (the default) and every caller is authenticated. Otherwise, `
47
+ + `set disableCache: true on this route, use a predicateBehavior other than 'filter', or mark the `
48
+ + `route isPublic: true if its filtered response is genuinely identical for every caller.`);
49
+ }
31
50
  const event = eventName ?? (0, lodash_helper_1.kebabCase)(`${routeType}/${displayedName}`);
32
51
  if (broadcastConfig) {
33
52
  event_registry_store_1.DynamicApiEventRegistryStore.register({
@@ -1 +1 @@
1
- {"version":3,"file":"mixin-data.helper.js","sourceRoot":"","sources":["../../../libs/dynamic-api/src/helpers/mixin-data.helper.ts"],"names":[],"mappings":";;AAkGS,oCAAY;AAjGrB,mDAA4C;AAC5C,iEAAsE;AAUtE,iGAAqG;AACrG,mDAAmD;AAGnD,SAAS,YAAY,CACnB,MAAoB,EACpB,EACE,MAAM,EACN,QAAQ,EAAE,kBAAkB,EAC5B,YAAY,EAAE,sBAAsB,EACpC,iBAAiB,EAAE,2BAA2B,GACV,EACtC,EACE,IAAI,EAAE,SAAS,EACf,OAAO,EACP,WAAW,EACX,QAAQ,EAAE,aAAa,EACvB,YAAY,EAAE,iBAAiB,EAC/B,gBAAgB,EAAE,qBAAqB,EACvC,iBAAiB,EACjB,SAAS,GACqB,EAChC,SAAS,GAAG,KAAK,EACjB,eAAyC;IAWzC,MAAM,aAAa,GAAG,IAAA,gCAAgB,EAAC,MAAM,EAAG,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;IAEtE,IAAI,QAAiB,CAAC;IACtB,IAAI,OAAO,aAAa,KAAK,SAAS,EAAE,CAAC;QACvC,QAAQ,GAAG,aAAa,CAAC;IAC3B,CAAC;SAAM,IAAI,OAAO,kBAAkB,KAAK,SAAS,EAAE,CAAC;QACnD,QAAQ,GAAG,kBAAkB,CAAC;IAChC,CAAC;SAAM,CAAC;QACN,QAAQ,GAAG,KAAK,CAAC;IACnB,CAAC;IAED,IAAI,YAAqB,CAAC;IAC1B,IAAI,OAAO,iBAAiB,KAAK,SAAS,EAAE,CAAC;QAC3C,YAAY,GAAG,iBAAiB,CAAC;IACnC,CAAC;SAAM,IAAI,OAAO,sBAAsB,KAAK,SAAS,EAAE,CAAC;QACvD,YAAY,GAAG,sBAAsB,CAAC;IACxC,CAAC;SAAM,CAAC;QACN,YAAY,GAAG,KAAK,CAAC;IACvB,CAAC;IAED,MAAM,gBAAgB,GAAG,qBAAqB,IAAI,IAAA,kFAA2C,EAC3F,2BAA2B,EAC3B,SAAS,CACV,CAAC;IAEF,MAAM,KAAK,GAAG,SAAS,IAAI,IAAA,yBAAS,EAAC,GAAG,SAAS,IAAI,aAAa,EAAE,CAAC,CAAC;IAEtE,IAAI,eAAe,EAAE,CAAC;QACpB,mDAA4B,CAAC,QAAQ,CAAC;YACpC,KAAK,EAAE,eAAe,CAAC,SAAS,IAAI,KAAK;YACzC,SAAS;YACT,UAAU,EAAE,MAAM,CAAC,IAAI;YACvB,aAAa;YACb,OAAO,EAAE,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM;YAClC,gBAAgB,EAAE,CAAC,CAAC,eAAe,CAAC,KAAK;YACzC,mBAAmB,EAAE,OAAO,eAAe,CAAC,OAAO,KAAK,UAAU;YAClE,iBAAiB,EAAE,CAAC,CAAC,eAAe,CAAC,SAAS;SAC/C,CAAC,CAAC;IACL,CAAC;IAED,OAAO;QACL,SAAS;QACT,aAAa;QACb,WAAW;QACX,QAAQ;QACR,YAAY;QACZ,gBAAgB;QAChB,iBAAiB;QACjB,KAAK;KACN,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"mixin-data.helper.js","sourceRoot":"","sources":["../../../libs/dynamic-api/src/helpers/mixin-data.helper.ts"],"names":[],"mappings":"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"}
@@ -5,14 +5,18 @@ import { HttpAdapterHost } from '@nestjs/core/helpers/http-adapter-host';
5
5
  import { Cache } from 'cache-manager';
6
6
  import { Observable } from 'rxjs';
7
7
  import { DynamicApiGlobalState } from '../interfaces';
8
+ import { DynamicApiCacheService } from '../services/dynamic-api-cache/dynamic-api-cache.service';
8
9
  export declare class DynamicApiCacheInterceptor extends CacheInterceptor {
9
10
  protected readonly cacheManager: Cache;
10
11
  protected readonly reflector: Reflector;
11
12
  protected readonly httpAdapterHost: HttpAdapterHost;
12
13
  private readonly state;
14
+ private readonly cacheService;
13
15
  private readonly excludePaths;
14
- constructor(cacheManager: Cache, reflector: Reflector, httpAdapterHost: HttpAdapterHost, state: DynamicApiGlobalState);
16
+ constructor(cacheManager: Cache, reflector: Reflector, httpAdapterHost: HttpAdapterHost, state: DynamicApiGlobalState, cacheService: DynamicApiCacheService);
15
17
  intercept(context: ExecutionContext, next: CallHandler): Promise<Observable<any>>;
16
18
  private static readonly AUTH_PATH_PATTERN;
19
+ protected trackBy(context: ExecutionContext): string | undefined;
20
+ private static extractIdentity;
17
21
  isRequestCacheable(context: ExecutionContext): boolean;
18
22
  }
@@ -20,13 +20,15 @@ const core_1 = require("@nestjs/core");
20
20
  const http_adapter_host_1 = require("@nestjs/core/helpers/http-adapter-host");
21
21
  const rxjs_1 = require("rxjs");
22
22
  const decorators_1 = require("../decorators");
23
+ const dynamic_api_cache_service_1 = require("../services/dynamic-api-cache/dynamic-api-cache.service");
23
24
  let DynamicApiCacheInterceptor = DynamicApiCacheInterceptor_1 = class DynamicApiCacheInterceptor extends cache_manager_1.CacheInterceptor {
24
- constructor(cacheManager, reflector, httpAdapterHost, state) {
25
+ constructor(cacheManager, reflector, httpAdapterHost, state, cacheService) {
25
26
  super(cacheManager, reflector);
26
27
  this.cacheManager = cacheManager;
27
28
  this.reflector = reflector;
28
29
  this.httpAdapterHost = httpAdapterHost;
29
30
  this.state = state;
31
+ this.cacheService = cacheService;
30
32
  this.excludePaths = [
31
33
  '/',
32
34
  ...this.state.cacheExcludedPaths,
@@ -40,13 +42,26 @@ let DynamicApiCacheInterceptor = DynamicApiCacheInterceptor_1 = class DynamicApi
40
42
  const req = context.switchToHttp().getRequest();
41
43
  const isWriteOperation = !this.allowedMethods.includes(req.method);
42
44
  if (isWriteOperation) {
43
- return Promise.resolve(next.handle().pipe((0, rxjs_1.tap)(() => { this.cacheManager.clear(); })));
45
+ return Promise.resolve(next.handle().pipe((0, rxjs_1.tap)(() => { this.cacheService.invalidateForUrl(req.url); })));
44
46
  }
45
47
  if (!this.isRequestCacheable(context)) {
46
48
  return Promise.resolve(next.handle());
47
49
  }
48
50
  return super.intercept(context, next);
49
51
  }
52
+ trackBy(context) {
53
+ const req = context.switchToHttp().getRequest();
54
+ const url = req?.url;
55
+ if (!url || this.state.cacheKeyBy !== 'url+identity') {
56
+ return url;
57
+ }
58
+ const identity = DynamicApiCacheInterceptor_1.extractIdentity(req);
59
+ return identity ? `${url}::${identity}` : url;
60
+ }
61
+ static extractIdentity(req) {
62
+ const id = req?.user?._id ?? req?.user?.id;
63
+ return id !== undefined && id !== null ? id.toString() : undefined;
64
+ }
50
65
  isRequestCacheable(context) {
51
66
  const disableCache = this.reflector.get(decorators_1.DISABLE_CACHE_KEY, context.getHandler());
52
67
  if (disableCache === true) {
@@ -65,6 +80,6 @@ exports.DynamicApiCacheInterceptor = DynamicApiCacheInterceptor = DynamicApiCach
65
80
  (0, common_1.Injectable)(),
66
81
  __param(0, (0, common_1.Inject)(cache_manager_1.CACHE_MANAGER)),
67
82
  __metadata("design:paramtypes", [Object, core_1.Reflector,
68
- http_adapter_host_1.HttpAdapterHost, Object])
83
+ http_adapter_host_1.HttpAdapterHost, Object, dynamic_api_cache_service_1.DynamicApiCacheService])
69
84
  ], DynamicApiCacheInterceptor);
70
85
  //# sourceMappingURL=dynamic-api-cache.interceptor.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"dynamic-api-cache.interceptor.js","sourceRoot":"","sources":["../../../libs/dynamic-api/src/interceptors/dynamic-api-cache.interceptor.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,yDAAwE;AACxE,2CAAmF;AACnF,uCAAyC;AACzC,8EAAyE;AAEzE,+BAAuC;AACvC,8CAAkD;AAK3C,IAAM,0BAA0B,kCAAhC,MAAM,0BAA2B,SAAQ,gCAAgB;IAM9D,YACyB,YAAsC,EAC1C,SAAoB,EACpB,eAAgC,EAClC,KAA4B;QAE7C,KAAK,CAAC,YAAY,EAAE,SAAS,CAAC,CAAC;QALW,iBAAY,GAAZ,YAAY,CAAO;QAC1C,cAAS,GAAT,SAAS,CAAW;QACpB,oBAAe,GAAf,eAAe,CAAiB;QAClC,UAAK,GAAL,KAAK,CAAuB;QAT9B,iBAAY,GAAG;YAC9B,GAAG;YACH,GAAG,IAAI,CAAC,KAAK,CAAC,kBAAkB;SACjC,CAAC;QASA,IAAI,CAAC,eAAe,GAAG,eAAe,CAAC;IACzC,CAAC;IAEM,SAAS,CAAC,OAAyB,EAAE,IAAiB;QAC3D,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,oBAAoB,EAAE,CAAC;YACrC,OAAO,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC;QACxC,CAAC;QAED,MAAM,GAAG,GAAG,OAAO,CAAC,YAAY,EAAE,CAAC,UAAU,EAAE,CAAC;QAChD,MAAM,gBAAgB,GAAG,CAAC,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QAEnE,IAAI,gBAAgB,EAAE,CAAC;YACrB,OAAO,OAAO,CAAC,OAAO,CACpB,IAAI,CAAC,MAAM,EAAE,CAAC,IAAI,CAChB,IAAA,UAAG,EAAC,GAAG,EAAE,GAAG,IAAI,CAAC,YAAY,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC,CAC1C,CACF,CAAC;QACJ,CAAC;QAED,IAAI,CAAC,IAAI,CAAC,kBAAkB,CAAC,OAAO,CAAC,EAAE,CAAC;YACtC,OAAO,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC;QACxC,CAAC;QAED,OAAO,KAAK,CAAC,SAAS,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;IACxC,CAAC;IAID,kBAAkB,CAAC,OAAyB;QAC1C,MAAM,YAAY,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAU,8BAAiB,EAAE,OAAO,CAAC,UAAU,EAAE,CAAC,CAAC;QAC1F,IAAI,YAAY,KAAK,IAAI,EAAE,CAAC;YAC1B,OAAO,KAAK,CAAC;QACf,CAAC;QAED,MAAM,GAAG,GAAG,OAAO,CAAC,YAAY,EAAE,CAAC,UAAU,EAAE,CAAC;QAChD,OAAO,CACL,IAAI,CAAC,KAAK,CAAC,oBAAoB;YAC/B,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC;YACxC,CAAC,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC;YACpC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,aAAa,IAAI,4BAA0B,CAAC,iBAAiB,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAC1F,CAAC;IACJ,CAAC;;AAtDU,gEAA0B;AAuCb,4CAAiB,GAAG,iBAAiB,AAApB,CAAqB;qCAvCnD,0BAA0B;IAFtC,IAAA,mBAAU,GAAE;IASR,WAAA,IAAA,eAAM,EAAC,6BAAa,CAAC,CAAA;6CACQ,gBAAS;QACH,mCAAe;GAT1C,0BAA0B,CAuDtC"}
1
+ {"version":3,"file":"dynamic-api-cache.interceptor.js","sourceRoot":"","sources":["../../../libs/dynamic-api/src/interceptors/dynamic-api-cache.interceptor.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,yDAAwE;AACxE,2CAAmF;AACnF,uCAAyC;AACzC,8EAAyE;AAEzE,+BAAuC;AACvC,8CAAkD;AAKlD,uGAAiG;AAI1F,IAAM,0BAA0B,kCAAhC,MAAM,0BAA2B,SAAQ,gCAAgB;IAM9D,YACyB,YAAsC,EAC1C,SAAoB,EACpB,eAAgC,EAClC,KAA4B,EAC5B,YAAoC;QAErD,KAAK,CAAC,YAAY,EAAE,SAAS,CAAC,CAAC;QANW,iBAAY,GAAZ,YAAY,CAAO;QAC1C,cAAS,GAAT,SAAS,CAAW;QACpB,oBAAe,GAAf,eAAe,CAAiB;QAClC,UAAK,GAAL,KAAK,CAAuB;QAC5B,iBAAY,GAAZ,YAAY,CAAwB;QAVtC,iBAAY,GAAG;YAC9B,GAAG;YACH,GAAG,IAAI,CAAC,KAAK,CAAC,kBAAkB;SACjC,CAAC;QAUA,IAAI,CAAC,eAAe,GAAG,eAAe,CAAC;IACzC,CAAC;IAEM,SAAS,CAAC,OAAyB,EAAE,IAAiB;QAC3D,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,oBAAoB,EAAE,CAAC;YACrC,OAAO,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC;QACxC,CAAC;QAED,MAAM,GAAG,GAAG,OAAO,CAAC,YAAY,EAAE,CAAC,UAAU,EAAE,CAAC;QAChD,MAAM,gBAAgB,GAAG,CAAC,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QAEnE,IAAI,gBAAgB,EAAE,CAAC;YACrB,OAAO,OAAO,CAAC,OAAO,CACpB,IAAI,CAAC,MAAM,EAAE,CAAC,IAAI,CAChB,IAAA,UAAG,EAAC,GAAG,EAAE,GAAG,IAAI,CAAC,YAAY,CAAC,gBAAgB,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAC5D,CACF,CAAC;QACJ,CAAC;QAED,IAAI,CAAC,IAAI,CAAC,kBAAkB,CAAC,OAAO,CAAC,EAAE,CAAC;YACtC,OAAO,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC;QACxC,CAAC;QAED,OAAO,KAAK,CAAC,SAAS,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;IACxC,CAAC;IAUS,OAAO,CAAC,OAAyB;QACzC,MAAM,GAAG,GAAG,OAAO,CAAC,YAAY,EAAE,CAAC,UAAU,EAAE,CAAC;QAChD,MAAM,GAAG,GAAuB,GAAG,EAAE,GAAG,CAAC;QAEzC,IAAI,CAAC,GAAG,IAAI,IAAI,CAAC,KAAK,CAAC,UAAU,KAAK,cAAc,EAAE,CAAC;YACrD,OAAO,GAAG,CAAC;QACb,CAAC;QAED,MAAM,QAAQ,GAAG,4BAA0B,CAAC,eAAe,CAAC,GAAG,CAAC,CAAC;QACjE,OAAO,QAAQ,CAAC,CAAC,CAAC,GAAG,GAAG,KAAK,QAAQ,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC;IAChD,CAAC;IAEO,MAAM,CAAC,eAAe,CAAC,GAA+C;QAC5E,MAAM,EAAE,GAAG,GAAG,EAAE,IAAI,EAAE,GAAG,IAAI,GAAG,EAAE,IAAI,EAAE,EAAE,CAAC;QAC3C,OAAO,EAAE,KAAK,SAAS,IAAI,EAAE,KAAK,IAAI,CAAC,CAAC,CAAE,EAA6B,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC;IACjG,CAAC;IAED,kBAAkB,CAAC,OAAyB;QAC1C,MAAM,YAAY,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAU,8BAAiB,EAAE,OAAO,CAAC,UAAU,EAAE,CAAC,CAAC;QAC1F,IAAI,YAAY,KAAK,IAAI,EAAE,CAAC;YAC1B,OAAO,KAAK,CAAC;QACf,CAAC;QAED,MAAM,GAAG,GAAG,OAAO,CAAC,YAAY,EAAE,CAAC,UAAU,EAAE,CAAC;QAChD,OAAO,CACL,IAAI,CAAC,KAAK,CAAC,oBAAoB;YAC/B,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC;YACxC,CAAC,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC;YACpC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,aAAa,IAAI,4BAA0B,CAAC,iBAAiB,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAC1F,CAAC;IACJ,CAAC;;AA9EU,gEAA0B;AAwCb,4CAAiB,GAAG,iBAAiB,AAApB,CAAqB;qCAxCnD,0BAA0B;IAFtC,IAAA,mBAAU,GAAE;IASR,WAAA,IAAA,eAAM,EAAC,6BAAa,CAAC,CAAA;6CACQ,gBAAS;QACH,mCAAe,UAEpB,kDAAsB;GAX5C,0BAA0B,CA+EtC"}
@@ -5,5 +5,6 @@ interface DynamicApiCacheOptions {
5
5
  store?: string | Keyv | Keyv[];
6
6
  isCacheableValue?: (value: any) => boolean;
7
7
  excludePaths?: string[];
8
+ keyBy?: 'url' | 'url+identity';
8
9
  }
9
10
  export { DynamicApiCacheOptions };
@@ -17,19 +17,22 @@ interface CustomRouteContext<Entity extends BaseEntity, Body = unknown, Query =
17
17
  interface CustomRouteConfig<Entity extends BaseEntity, Body = unknown, Query = unknown, Params extends Record<string, string> = Record<string, string>, Response = unknown> {
18
18
  path: string;
19
19
  method: HttpMethod;
20
- handler: (ctx: CustomRouteContext<Entity, Body, Query, Params>) => Promise<Response>;
20
+ handler: (ctx: CustomRouteContext<Entity, Body, Query, Params>, injected: unknown[]) => Promise<Response>;
21
+ inject?: Array<Type<unknown> | string | symbol>;
21
22
  version?: string;
22
23
  isPublic?: boolean;
23
24
  description?: string;
24
25
  guards?: Type<CanActivate>[];
25
26
  abilityPredicate?: AbilityPredicate<Entity>;
26
27
  predicateBehavior?: PredicateBehavior;
28
+ targetParam?: Extract<keyof Params, string>;
27
29
  validationPipeOptions?: ValidationPipeOptions;
28
30
  webSocket?: DynamicApiWebSocketOptions;
29
31
  eventName?: string;
30
32
  dTOs?: {
31
33
  body?: Type;
32
34
  query?: Type;
35
+ params?: Type;
33
36
  presenter?: Type & Partial<Mappable<Entity>>;
34
37
  };
35
38
  useInterceptors?: Type<NestInterceptor>[];
@@ -19,6 +19,7 @@ interface DynamicApiGlobalState {
19
19
  connectionName: string;
20
20
  isGlobalCacheEnabled: boolean;
21
21
  cacheExcludedPaths: string[];
22
+ cacheKeyBy: 'url' | 'url+identity';
22
23
  isAuthEnabled: boolean;
23
24
  credentials: Credentials;
24
25
  jwtSecret: string | undefined;
@@ -38,6 +38,7 @@ type CallbackMethods = {
38
38
  deleteManyDocuments<T>(entity: Type<T>, ids: string[]): Promise<DeleteResult>;
39
39
  deleteOneDocument<T>(entity: Type<T>, id: string): Promise<DeleteResult>;
40
40
  aggregateDocuments<T>(entity: Type<T>, pipeline: PipelineStage[]): Promise<T[]>;
41
+ recomputeDerivedFields<T>(entity: Type<T>, id: string): Promise<void>;
41
42
  };
42
43
  type DynamicApiCallbackMethods = CallbackMethods;
43
44
  type AfterSaveCallback<Entity extends BaseEntity, User = unknown> = (entity: Entity, methods: CallbackMethods, user?: User) => Promise<void>;
@@ -2,7 +2,12 @@ import { Type } from '@nestjs/common';
2
2
  import { PipelineStage } from 'mongodb-pipeline-builder';
3
3
  import { AbilityPredicate, AuthAbilityPredicate, PoliciesGuardConstructor, PredicateBehavior, RouteType } from '../interfaces';
4
4
  import { BaseEntity } from '../models';
5
- declare function RoutePoliciesGuardMixin<Entity extends BaseEntity>(entity: Type<Entity>, routeType: RouteType, displayedName: string, version: string | undefined, abilityPredicate: AbilityPredicate<Entity> | undefined, queryToPipeline?: (query: unknown) => PipelineStage[], predicateBehavior?: PredicateBehavior): PoliciesGuardConstructor<Entity>;
5
+ interface RoutePoliciesGuardMixinOptions {
6
+ queryToPipeline?: (query: unknown) => PipelineStage[];
7
+ predicateBehavior?: PredicateBehavior;
8
+ targetParam?: string;
9
+ }
10
+ declare function RoutePoliciesGuardMixin<Entity extends BaseEntity>(entity: Type<Entity>, routeType: RouteType, displayedName: string, version: string | undefined, abilityPredicate: AbilityPredicate<Entity> | undefined, options?: RoutePoliciesGuardMixinOptions): PoliciesGuardConstructor<Entity>;
6
11
  interface SocketPoliciesGuardMixinOptions {
7
12
  abilityPredicate?: AuthAbilityPredicate;
8
13
  isPublic?: boolean;
@@ -20,7 +20,8 @@ const mongoose_2 = require("mongoose");
20
20
  const dynamic_api_module_1 = require("../dynamic-api.module");
21
21
  const guards_1 = require("../guards");
22
22
  const helpers_1 = require("../helpers");
23
- function RoutePoliciesGuardMixin(entity, routeType, displayedName, version, abilityPredicate, queryToPipeline, predicateBehavior) {
23
+ function RoutePoliciesGuardMixin(entity, routeType, displayedName, version, abilityPredicate, options = {}) {
24
+ const { queryToPipeline, predicateBehavior, targetParam } = options;
24
25
  let RoutePoliciesGuard = class RoutePoliciesGuard extends guards_1.BasePoliciesGuard {
25
26
  constructor(model) {
26
27
  super(model);
@@ -30,6 +31,7 @@ function RoutePoliciesGuardMixin(entity, routeType, displayedName, version, abil
30
31
  this.abilityPredicate = abilityPredicate;
31
32
  this.predicateBehavior = predicateBehavior;
32
33
  this.queryToPipeline = queryToPipeline;
34
+ this.targetParam = targetParam;
33
35
  }
34
36
  };
35
37
  RoutePoliciesGuard = __decorate([
@@ -1 +1 @@
1
- {"version":3,"file":"policies-guard.mixin.js","sourceRoot":"","sources":["../../../libs/dynamic-api/src/mixins/policies-guard.mixin.ts"],"names":[],"mappings":";;;;;;;;;;;;;;AAkGS,0DAAuB;AAAE,4DAAwB;AAlG1D,2CAAkD;AAClD,+CAA+C;AAE/C,uCAAiC;AACjC,8DAAyD;AACzD,sCAAuE;AACvE,wCAAqD;AAWrD,SAAS,uBAAuB,CAC9B,MAAoB,EACpB,SAAoB,EACpB,aAAqB,EACrB,OAA2B,EAC3B,gBAAsD,EACtD,eAAqD,EACrD,iBAAqC;IAErC,IACM,kBAAkB,GADxB,MACM,kBAAmB,SAAQ,0BAAyB;QAOxD,YAKE,KAAuC;YAEvC,KAAK,CAAC,KAAK,CAAC,CAAC;YAFM,UAAK,GAAL,KAAK,CAAe;YAX/B,cAAS,GAAG,SAAS,CAAC;YACtB,WAAM,GAAG,MAAM,CAAC;YAChB,qBAAgB,GAAyC,gBAAgB,CAAC;YAC1E,sBAAiB,GAAkC,iBAAiB,CAAC;YACrE,oBAAe,GAAG,eAAe,CAAC;QAU5C,CAAC;KACF,CAAA;IAhBK,kBAAkB;QADvB,IAAA,mBAAU,GAAE;QASR,WAAA,IAAA,sBAAW,EACV,MAAM,CAAC,IAAI,EACX,qCAAgB,CAAC,KAAK,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAC7C,CAAA;yCACyB,gBAAK;OAZ7B,kBAAkB,CAgBvB;IAED,MAAM,CAAC,cAAc,CAAC,kBAAkB,EAAE,MAAM,EAAE;QAChD,KAAK,EAAE,GAAG,IAAA,qBAAW,EAAC,SAAS,EAAE,aAAa,EAAE,OAAO,EAAE,eAAe,CAAC,EAAE;QAC3E,QAAQ,EAAE,KAAK;KAChB,CAAC,CAAC;IAEH,OAAO,kBAAkB,CAAC;AAC5B,CAAC;AAUD,SAAS,wBAAwB,CAC/B,MAAoB,EACpB,SAAoB,EACpB,KAAa,EACb,OAA2B,EAC3B,UAA2C,EAAE;IAE7C,MAAM,EAAE,gBAAgB,EAAE,QAAQ,EAAE,eAAe,EAAE,iBAAiB,EAAE,GAAG,OAAO,CAAC;IAEnF,IACM,mBAAmB,GADzB,MACM,mBAAoB,SAAQ,gCAA+B;QAQ/D,YAKE,KAAuC;YAEvC,KAAK,CAAC,KAAK,CAAC,CAAC;YAFM,UAAK,GAAL,KAAK,CAAe;YAZ/B,cAAS,GAAG,SAAS,CAAC;YACtB,WAAM,GAAG,MAAM,CAAC;YAChB,qBAAgB,GAAG,gBAAgB,CAAC;YACpC,sBAAiB,GAAkC,iBAAiB,CAAC;YACrE,oBAAe,GAAG,eAAe,CAAC;YAClC,aAAQ,GAAG,QAAQ,CAAC;QAU9B,CAAC;KACF,CAAA;IAjBK,mBAAmB;QADxB,IAAA,mBAAU,GAAE;QAUR,WAAA,IAAA,sBAAW,EACV,MAAM,CAAC,IAAI,EACX,qCAAgB,CAAC,KAAK,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAC7C,CAAA;yCACyB,gBAAK;OAb7B,mBAAmB,CAiBxB;IAED,MAAM,CAAC,cAAc,CAAC,mBAAmB,EAAE,MAAM,EAAE;QACjD,KAAK,EAAE,GAAG,IAAA,qBAAW,EAAC,SAAS,EAAE,IAAA,oBAAU,EAAC,KAAK,CAAC,EAAE,OAAO,EAAE,qBAAqB,CAAC,EAAE;QACrF,QAAQ,EAAE,KAAK;KAChB,CAAC,CAAC;IAEH,OAAO,mBAAmB,CAAC;AAC7B,CAAC"}
1
+ {"version":3,"file":"policies-guard.mixin.js","sourceRoot":"","sources":["../../../libs/dynamic-api/src/mixins/policies-guard.mixin.ts"],"names":[],"mappings":";;;;;;;;;;;;;;AA2GS,0DAAuB;AAAE,4DAAwB;AA3G1D,2CAAkD;AAClD,+CAA+C;AAE/C,uCAAiC;AACjC,8DAAyD;AACzD,sCAAuE;AACvE,wCAAqD;AAkBrD,SAAS,uBAAuB,CAC9B,MAAoB,EACpB,SAAoB,EACpB,aAAqB,EACrB,OAA2B,EAC3B,gBAAsD,EACtD,UAA0C,EAAE;IAE5C,MAAM,EAAE,eAAe,EAAE,iBAAiB,EAAE,WAAW,EAAE,GAAG,OAAO,CAAC;IAEpE,IACM,kBAAkB,GADxB,MACM,kBAAmB,SAAQ,0BAAyB;QAQxD,YAKE,KAAuC;YAEvC,KAAK,CAAC,KAAK,CAAC,CAAC;YAFM,UAAK,GAAL,KAAK,CAAe;YAZ/B,cAAS,GAAG,SAAS,CAAC;YACtB,WAAM,GAAG,MAAM,CAAC;YAChB,qBAAgB,GAAyC,gBAAgB,CAAC;YAC1E,sBAAiB,GAAkC,iBAAiB,CAAC;YACrE,oBAAe,GAAG,eAAe,CAAC;YAClC,gBAAW,GAAG,WAAW,CAAC;QAUpC,CAAC;KACF,CAAA;IAjBK,kBAAkB;QADvB,IAAA,mBAAU,GAAE;QAUR,WAAA,IAAA,sBAAW,EACV,MAAM,CAAC,IAAI,EACX,qCAAgB,CAAC,KAAK,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAC7C,CAAA;yCACyB,gBAAK;OAb7B,kBAAkB,CAiBvB;IAED,MAAM,CAAC,cAAc,CAAC,kBAAkB,EAAE,MAAM,EAAE;QAChD,KAAK,EAAE,GAAG,IAAA,qBAAW,EAAC,SAAS,EAAE,aAAa,EAAE,OAAO,EAAE,eAAe,CAAC,EAAE;QAC3E,QAAQ,EAAE,KAAK;KAChB,CAAC,CAAC;IAEH,OAAO,kBAAkB,CAAC;AAC5B,CAAC;AAUD,SAAS,wBAAwB,CAC/B,MAAoB,EACpB,SAAoB,EACpB,KAAa,EACb,OAA2B,EAC3B,UAA2C,EAAE;IAE7C,MAAM,EAAE,gBAAgB,EAAE,QAAQ,EAAE,eAAe,EAAE,iBAAiB,EAAE,GAAG,OAAO,CAAC;IAEnF,IACM,mBAAmB,GADzB,MACM,mBAAoB,SAAQ,gCAA+B;QAQ/D,YAKE,KAAuC;YAEvC,KAAK,CAAC,KAAK,CAAC,CAAC;YAFM,UAAK,GAAL,KAAK,CAAe;YAZ/B,cAAS,GAAG,SAAS,CAAC;YACtB,WAAM,GAAG,MAAM,CAAC;YAChB,qBAAgB,GAAG,gBAAgB,CAAC;YACpC,sBAAiB,GAAkC,iBAAiB,CAAC;YACrE,oBAAe,GAAG,eAAe,CAAC;YAClC,aAAQ,GAAG,QAAQ,CAAC;QAU9B,CAAC;KACF,CAAA;IAjBK,mBAAmB;QADxB,IAAA,mBAAU,GAAE;QAUR,WAAA,IAAA,sBAAW,EACV,MAAM,CAAC,IAAI,EACX,qCAAgB,CAAC,KAAK,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAC7C,CAAA;yCACyB,gBAAK;OAb7B,mBAAmB,CAiBxB;IAED,MAAM,CAAC,cAAc,CAAC,mBAAmB,EAAE,MAAM,EAAE;QACjD,KAAK,EAAE,GAAG,IAAA,qBAAW,EAAC,SAAS,EAAE,IAAA,oBAAU,EAAC,KAAK,CAAC,EAAE,OAAO,EAAE,qBAAqB,CAAC,EAAE;QACrF,QAAQ,EAAE,KAAK;KAChB,CAAC,CAAC;IAEH,OAAO,mBAAmB,CAAC;AAC7B,CAAC"}
@@ -8,8 +8,10 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
8
8
  var DynamicApiConfigModule_1;
9
9
  Object.defineProperty(exports, "__esModule", { value: true });
10
10
  exports.DynamicApiConfigModule = void 0;
11
+ const cache_manager_1 = require("@nestjs/cache-manager");
11
12
  const common_1 = require("@nestjs/common");
12
13
  const interfaces_1 = require("../../interfaces");
14
+ const dynamic_api_cache_service_1 = require("../../services/dynamic-api-cache/dynamic-api-cache.service");
13
15
  let DynamicApiConfigModule = DynamicApiConfigModule_1 = class DynamicApiConfigModule {
14
16
  static register(config) {
15
17
  return {
@@ -20,8 +22,13 @@ let DynamicApiConfigModule = DynamicApiConfigModule_1 = class DynamicApiConfigMo
20
22
  provide: interfaces_1.DYNAMIC_API_GLOBAL_STATE,
21
23
  useValue: config,
22
24
  },
25
+ {
26
+ provide: dynamic_api_cache_service_1.DynamicApiCacheService,
27
+ inject: [cache_manager_1.CACHE_MANAGER],
28
+ useFactory: (cacheManager) => new dynamic_api_cache_service_1.DynamicApiCacheService(cacheManager),
29
+ },
23
30
  ],
24
- exports: [interfaces_1.DYNAMIC_API_GLOBAL_STATE],
31
+ exports: [interfaces_1.DYNAMIC_API_GLOBAL_STATE, dynamic_api_cache_service_1.DynamicApiCacheService],
25
32
  };
26
33
  }
27
34
  };
@@ -1 +1 @@
1
- {"version":3,"file":"dynamic-api-config.module.js","sourceRoot":"","sources":["../../../../libs/dynamic-api/src/modules/dynamic-api-config/dynamic-api-config.module.ts"],"names":[],"mappings":";;;;;;;;;;AAAA,2CAAuD;AACvD,iDAAmF;AAG5E,IAAM,sBAAsB,8BAA5B,MAAM,sBAAsB;IACjC,MAAM,CAAC,QAAQ,CAAC,MAA6B;QAC3C,OAAO;YACL,MAAM,EAAE,IAAI;YACZ,MAAM,EAAE,wBAAsB;YAC9B,SAAS,EAAE;gBACT;oBACE,OAAO,EAAE,qCAAwB;oBACjC,QAAQ,EAAE,MAAM;iBACjB;aACF;YACD,OAAO,EAAE,CAAC,qCAAwB,CAAC;SACpC,CAAC;IACJ,CAAC;CACF,CAAA;AAdY,wDAAsB;iCAAtB,sBAAsB;IADlC,IAAA,eAAM,EAAC,EAAE,CAAC;GACE,sBAAsB,CAclC"}
1
+ {"version":3,"file":"dynamic-api-config.module.js","sourceRoot":"","sources":["../../../../libs/dynamic-api/src/modules/dynamic-api-config/dynamic-api-config.module.ts"],"names":[],"mappings":";;;;;;;;;;AAAA,yDAAsD;AACtD,2CAAuD;AAEvD,iDAAmF;AAInF,0GAAoG;AAG7F,IAAM,sBAAsB,8BAA5B,MAAM,sBAAsB;IACjC,MAAM,CAAC,QAAQ,CAAC,MAA6B;QAC3C,OAAO;YACL,MAAM,EAAE,IAAI;YACZ,MAAM,EAAE,wBAAsB;YAC9B,SAAS,EAAE;gBACT;oBACE,OAAO,EAAE,qCAAwB;oBACjC,QAAQ,EAAE,MAAM;iBACjB;gBACD;oBACE,OAAO,EAAE,kDAAsB;oBAC/B,MAAM,EAAE,CAAC,6BAAa,CAAC;oBACvB,UAAU,EAAE,CAAC,YAAmB,EAAE,EAAE,CAAC,IAAI,kDAAsB,CAAC,YAAY,CAAC;iBAC9E;aACF;YACD,OAAO,EAAE,CAAC,qCAAwB,EAAE,kDAAsB,CAAC;SAC5D,CAAC;IACJ,CAAC;CACF,CAAA;AAnBY,wDAAsB;iCAAtB,sBAAsB;IADlC,IAAA,eAAM,EAAC,EAAE,CAAC;GACE,sBAAsB,CAmBlC"}
@@ -43,7 +43,7 @@ function AggregateControllerMixin(entity, controllerOptions, { dTOs, useIntercep
43
43
  presenter: AggregatePresenter,
44
44
  }, isArrayResponse);
45
45
  const toPipeline = AggregateQuery.toPipeline;
46
- class AggregatePoliciesGuard extends (0, mixins_1.RoutePoliciesGuardMixin)(entity, routeType, displayedName, version, abilityPredicate, toPipeline, predicateBehavior) {
46
+ class AggregatePoliciesGuard extends (0, mixins_1.RoutePoliciesGuardMixin)(entity, routeType, displayedName, version, abilityPredicate, { queryToPipeline: toPipeline, predicateBehavior }) {
47
47
  }
48
48
  class BaseAggregateController {
49
49
  constructor(service) {
@@ -1 +1 @@
1
- {"version":3,"file":"aggregate-controller.mixin.js","sourceRoot":"","sources":["../../../../libs/dynamic-api/src/routes/aggregate/aggregate-controller.mixin.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"aggregate-controller.mixin.js","sourceRoot":"","sources":["../../../../libs/dynamic-api/src/routes/aggregate/aggregate-controller.mixin.ts"],"names":[],"mappings":"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"}
@@ -8,17 +8,14 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
8
8
  var __metadata = (this && this.__metadata) || function (k, v) {
9
9
  if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
10
10
  };
11
- var __param = (this && this.__param) || function (paramIndex, decorator) {
12
- return function (target, key) { decorator(target, key, paramIndex); }
13
- };
14
11
  Object.defineProperty(exports, "__esModule", { value: true });
15
12
  exports.CachePurgePresenter = void 0;
16
13
  exports.createCachePurgeController = createCachePurgeController;
17
- const cache_manager_1 = require("@nestjs/cache-manager");
18
14
  const common_1 = require("@nestjs/common");
19
15
  const swagger_1 = require("@nestjs/swagger");
20
16
  const decorators_1 = require("../../decorators");
21
17
  const dynamic_api_module_1 = require("../../dynamic-api.module");
18
+ const dynamic_api_cache_service_1 = require("../../services/dynamic-api-cache/dynamic-api-cache.service");
22
19
  class CachePurgePresenter {
23
20
  }
24
21
  exports.CachePurgePresenter = CachePurgePresenter;
@@ -30,11 +27,11 @@ function createCachePurgeController(entity, { path, apiTag, version, isPublic })
30
27
  const tag = apiTag || entity.name;
31
28
  const isAuthEnabled = dynamic_api_module_1.DynamicApiModule.state.get('isAuthEnabled');
32
29
  let CachePurgeController = class CachePurgeController {
33
- constructor(cacheManager) {
34
- this.cacheManager = cacheManager;
30
+ constructor(cacheService) {
31
+ this.cacheService = cacheService;
35
32
  }
36
33
  async purgeCache() {
37
- await this.cacheManager.clear();
34
+ await this.cacheService.invalidate(entity);
38
35
  return { purged: true };
39
36
  }
40
37
  };
@@ -48,8 +45,7 @@ function createCachePurgeController(entity, { path, apiTag, version, isPublic })
48
45
  (0, common_1.Controller)({ path, version }),
49
46
  (0, swagger_1.ApiTags)(tag),
50
47
  (0, common_1.UseInterceptors)(common_1.ClassSerializerInterceptor),
51
- __param(0, (0, common_1.Inject)(cache_manager_1.CACHE_MANAGER)),
52
- __metadata("design:paramtypes", [Object])
48
+ __metadata("design:paramtypes", [dynamic_api_cache_service_1.DynamicApiCacheService])
53
49
  ], CachePurgeController);
54
50
  const descriptor = Object.getOwnPropertyDescriptor(CachePurgeController.prototype, 'purgeCache');
55
51
  (0, swagger_1.ApiOperation)({
@@ -1 +1 @@
1
- {"version":3,"file":"cache-purge.helper.js","sourceRoot":"","sources":["../../../../libs/dynamic-api/src/routes/cache-purge/cache-purge.helper.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAoE8B,gEAA0B;AApExD,yDAAsD;AACtD,2CAOwB;AACxB,6CAAiG;AAEjG,iDAA0C;AAC1C,iEAA4D;AAI5D,MAAM,mBAAmB;CAGxB;AAiDQ,kDAAmB;AAlD1B;IADC,IAAA,qBAAW,EAAC,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;;mDACf;AAGlB,SAAS,0BAA0B,CACjC,MAAoB,EACpB,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAuC;IAExE,MAAM,GAAG,GAAG,MAAM,IAAI,MAAM,CAAC,IAAI,CAAC;IAClC,MAAM,aAAa,GAAG,qCAAgB,CAAC,KAAK,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC;IAElE,IAGM,oBAAoB,GAH1B,MAGM,oBAAoB;QACxB,YAC0C,YAAmB;YAAnB,iBAAY,GAAZ,YAAY,CAAO;QAC1D,CAAC;QAGE,AAAN,KAAK,CAAC,UAAU;YACd,MAAM,IAAI,CAAC,YAAY,CAAC,KAAK,EAAE,CAAC;YAChC,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC;QAC1B,CAAC;KACF,CAAA;IAJO;QADL,IAAA,eAAM,EAAC,OAAO,CAAC;;;;0DAIf;IATG,oBAAoB;QAHzB,IAAA,mBAAU,EAAC,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;QAC7B,IAAA,iBAAO,EAAC,GAAG,CAAC;QACZ,IAAA,wBAAe,EAAC,mCAA0B,CAAC;QAGvC,WAAA,IAAA,eAAM,EAAC,6BAAa,CAAC,CAAA;;OAFpB,oBAAoB,CAUzB;IAED,MAAM,UAAU,GAAG,MAAM,CAAC,wBAAwB,CAAC,oBAAoB,CAAC,SAAS,EAAE,YAAY,CAAC,CAAC;IAEjG,IAAA,sBAAY,EAAC;QACX,WAAW,EAAE,aAAa,GAAG,GAAG,OAAO,CAAC,CAAC,CAAC,GAAG,GAAG,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE;QAC9D,OAAO,EAAE,mBAAmB,GAAG,EAAE;KAClC,CAAC,CAAC,oBAAoB,CAAC,SAAS,EAAE,YAAY,EAAE,UAAU,CAAC,CAAC;IAE7D,IAAA,qBAAW,EAAC;QACV,IAAI,EAAE,mBAAmB;KAC1B,CAAC,CAAC,oBAAoB,CAAC,SAAS,EAAE,YAAY,EAAE,UAAU,CAAC,CAAC;IAE7D,IAAI,QAAQ,EAAE,CAAC;QACb,IAAA,mBAAM,GAAE,CAAC,oBAAoB,CAAC,SAAS,EAAE,YAAY,EAAE,UAAU,CAAC,CAAC;IACrE,CAAC;SAAM,IAAI,aAAa,EAAE,CAAC;QACzB,IAAA,uBAAa,GAAE,CAAC,oBAAoB,CAAC,SAAS,EAAE,YAAY,EAAE,UAAU,CAAC,CAAC;IAC5E,CAAC;IAED,MAAM,CAAC,cAAc,CAAC,oBAAoB,EAAE,MAAM,EAAE;QAClD,KAAK,EAAE,aAAa,GAAG,GAAG,OAAO,CAAC,CAAC,CAAC,GAAG,GAAG,OAAO,CAAC,CAAC,CAAC,EAAE,YAAY;QAClE,QAAQ,EAAE,KAAK;KAChB,CAAC,CAAC;IAEH,OAAO,oBAAoB,CAAC;AAC9B,CAAC"}
1
+ {"version":3,"file":"cache-purge.helper.js","sourceRoot":"","sources":["../../../../libs/dynamic-api/src/routes/cache-purge/cache-purge.helper.ts"],"names":[],"mappings":";;;;;;;;;;;;AAiE8B,gEAA0B;AAjExD,2CAMwB;AACxB,6CAAiG;AACjG,iDAA0C;AAC1C,iEAA4D;AAI5D,0GAAoG;AAEpG,MAAM,mBAAmB;CAGxB;AA+CQ,kDAAmB;AAhD1B;IADC,IAAA,qBAAW,EAAC,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;;mDACf;AAGlB,SAAS,0BAA0B,CACjC,MAAoB,EACpB,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAuC;IAExE,MAAM,GAAG,GAAG,MAAM,IAAI,MAAM,CAAC,IAAI,CAAC;IAClC,MAAM,aAAa,GAAG,qCAAgB,CAAC,KAAK,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC;IAElE,IAGM,oBAAoB,GAH1B,MAGM,oBAAoB;QACxB,YAA6B,YAAoC;YAApC,iBAAY,GAAZ,YAAY,CAAwB;QAAG,CAAC;QAG/D,AAAN,KAAK,CAAC,UAAU;YACd,MAAM,IAAI,CAAC,YAAY,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;YAC3C,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC;QAC1B,CAAC;KACF,CAAA;IAJO;QADL,IAAA,eAAM,EAAC,OAAO,CAAC;;;;0DAIf;IAPG,oBAAoB;QAHzB,IAAA,mBAAU,EAAC,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;QAC7B,IAAA,iBAAO,EAAC,GAAG,CAAC;QACZ,IAAA,wBAAe,EAAC,mCAA0B,CAAC;yCAEC,kDAAsB;OAD7D,oBAAoB,CAQzB;IAED,MAAM,UAAU,GAAG,MAAM,CAAC,wBAAwB,CAAC,oBAAoB,CAAC,SAAS,EAAE,YAAY,CAAC,CAAC;IAEjG,IAAA,sBAAY,EAAC;QACX,WAAW,EAAE,aAAa,GAAG,GAAG,OAAO,CAAC,CAAC,CAAC,GAAG,GAAG,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE;QAC9D,OAAO,EAAE,mBAAmB,GAAG,EAAE;KAClC,CAAC,CAAC,oBAAoB,CAAC,SAAS,EAAE,YAAY,EAAE,UAAU,CAAC,CAAC;IAE7D,IAAA,qBAAW,EAAC;QACV,IAAI,EAAE,mBAAmB;KAC1B,CAAC,CAAC,oBAAoB,CAAC,SAAS,EAAE,YAAY,EAAE,UAAU,CAAC,CAAC;IAE7D,IAAI,QAAQ,EAAE,CAAC;QACb,IAAA,mBAAM,GAAE,CAAC,oBAAoB,CAAC,SAAS,EAAE,YAAY,EAAE,UAAU,CAAC,CAAC;IACrE,CAAC;SAAM,IAAI,aAAa,EAAE,CAAC;QACzB,IAAA,uBAAa,GAAE,CAAC,oBAAoB,CAAC,SAAS,EAAE,YAAY,EAAE,UAAU,CAAC,CAAC;IAC5E,CAAC;IAED,MAAM,CAAC,cAAc,CAAC,oBAAoB,EAAE,MAAM,EAAE;QAClD,KAAK,EAAE,aAAa,GAAG,GAAG,OAAO,CAAC,CAAC,CAAC,GAAG,GAAG,OAAO,CAAC,CAAC,CAAC,EAAE,YAAY;QAClE,QAAQ,EAAE,KAAK;KAChB,CAAC,CAAC;IAEH,OAAO,oBAAoB,CAAC;AAC9B,CAAC"}