@flusys/nestjs-shared 8.1.5 → 9.1.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 (39) hide show
  1. package/README.md +48 -2
  2. package/classes/api-service.class.d.ts +3 -0
  3. package/constants/permissions.d.ts +46 -0
  4. package/exceptions/base-app.exception.d.ts +3 -2
  5. package/fesm/{509.js → 183.js} +43 -37
  6. package/fesm/470.js +228 -105
  7. package/fesm/667.js +28 -10
  8. package/fesm/{67.js → 681.js} +97 -19
  9. package/fesm/{720.js → 948.js} +60 -7
  10. package/fesm/chunks/123.js +9 -10
  11. package/fesm/chunks/37.js +7 -8
  12. package/fesm/classes/index.js +10 -4
  13. package/fesm/constants/index.js +53 -1
  14. package/fesm/decorators/index.js +4 -4
  15. package/fesm/dtos/index.js +2 -2
  16. package/fesm/guards/index.js +48 -426
  17. package/fesm/index.js +422 -341
  18. package/fesm/interceptors/index.js +62 -23
  19. package/fesm/interfaces/index.js +16 -3
  20. package/fesm/middlewares/index.js +5 -3
  21. package/fesm/modules/index.js +6 -414
  22. package/fesm/pipes/index.js +196 -0
  23. package/fesm/utils/index.js +125 -10
  24. package/index.d.ts +1 -0
  25. package/interfaces/datasource.interface.d.ts +2 -0
  26. package/interfaces/index.d.ts +3 -0
  27. package/interfaces/message-ref.interface.d.ts +4 -0
  28. package/interfaces/permission-action-registry.interface.d.ts +12 -0
  29. package/interfaces/permission-resolver.interface.d.ts +9 -0
  30. package/middlewares/logger.middleware.d.ts +4 -0
  31. package/modules/shared-permission-cache/shared-permission-cache.service.d.ts +5 -0
  32. package/package.json +8 -2
  33. package/pipes/dto-body-validation.pipe.d.ts +18 -0
  34. package/pipes/index.d.ts +1 -0
  35. package/utils/cache-tenant.util.d.ts +2 -0
  36. package/utils/index.d.ts +3 -0
  37. package/utils/message-ref.util.d.ts +2 -0
  38. package/utils/permission-match.util.d.ts +1 -0
  39. package/utils/query-helpers.util.d.ts +2 -1
@@ -127,7 +127,10 @@ const DEFAULT_EVENT_SERVICE_NAME = 'flusys';
127
127
  __webpack_require__.d(__webpack_exports__, {
128
128
  BC: () => (/* reexport safe */ _permissions_js__rspack_import_0.BC),
129
129
  Bz: () => (/* reexport safe */ _permissions_js__rspack_import_0.Bz),
130
+ DP: () => (/* reexport safe */ _permissions_js__rspack_import_0.DP),
130
131
  Em: () => (/* reexport safe */ _permissions_js__rspack_import_0.Em),
132
+ G0: () => (/* reexport safe */ _permissions_js__rspack_import_0.G0),
133
+ GH: () => (/* reexport safe */ _permissions_js__rspack_import_0.GH),
131
134
  GT: () => (/* reexport safe */ _permissions_js__rspack_import_0.GT),
132
135
  Jj: () => (/* reexport safe */ _permissions_js__rspack_import_0.Jj),
133
136
  N3: () => (/* reexport safe */ _permissions_js__rspack_import_0.N3),
@@ -146,8 +149,11 @@ __webpack_require__.d(__webpack_exports__, {
146
149
  Y7: () => (/* reexport safe */ _permissions_js__rspack_import_0.Y7),
147
150
  _X: () => (/* reexport safe */ _permissions_js__rspack_import_0._X),
148
151
  aO: () => (/* reexport safe */ _permissions_js__rspack_import_0.aO),
152
+ aT: () => (/* reexport safe */ _permissions_js__rspack_import_0.aT),
149
153
  fS: () => (/* reexport safe */ _permissions_js__rspack_import_0.fS),
150
154
  hg: () => (/* reexport safe */ _message_keys_js__rspack_import_1.hg),
155
+ kA: () => (/* reexport safe */ _permissions_js__rspack_import_0.kA),
156
+ kd: () => (/* reexport safe */ _permissions_js__rspack_import_0.kd),
151
157
  l3: () => (/* reexport safe */ _permissions_js__rspack_import_0.l3),
152
158
  mK: () => (/* reexport safe */ _message_keys_js__rspack_import_1.mK),
153
159
  mV: () => (/* reexport safe */ _permissions_js__rspack_import_0.mV),
@@ -342,6 +348,35 @@ const FORM_RESULT_PERMISSIONS = {
342
348
  UPDATE: 'form-result.update',
343
349
  DELETE: 'form-result.delete'
344
350
  };
351
+ // ==================== ENTITY BUILDER MODULE ====================
352
+ // Static metadata permissions only. Per-dynamic-entity record permissions
353
+ // (`entity_builder.entity.<entityCode>.<action>`) are checked by flows running as the caller;
354
+ // ENTITY_BUILDER_ALL_DYNAMIC is the wildcard that grants all of them (and nothing else).
355
+ const ENTITY_DEFINITION_PERMISSIONS = {
356
+ CREATE: 'entity_builder.entity_definition.create',
357
+ READ: 'entity_builder.entity_definition.read',
358
+ UPDATE: 'entity_builder.entity_definition.update',
359
+ DELETE: 'entity_builder.entity_definition.delete'
360
+ };
361
+ const FIELD_DEFINITION_PERMISSIONS = {
362
+ READ: 'entity_builder.field_definition.read',
363
+ UPDATE: 'entity_builder.field_definition.update'
364
+ };
365
+ const FLOW_DEFINITION_PERMISSIONS = {
366
+ CREATE: 'entity_builder.flow_definition.create',
367
+ READ: 'entity_builder.flow_definition.read',
368
+ UPDATE: 'entity_builder.flow_definition.update',
369
+ DELETE: 'entity_builder.flow_definition.delete',
370
+ TEST: 'entity_builder.flow_definition.test',
371
+ /** Needed to save a flow that runs as the system (bypassing per-entity permissions). */ SYSTEM: 'entity_builder.flow_definition.system',
372
+ /** Needed to save a flow containing a code node (sandboxed JavaScript). */ CODE: 'entity_builder.flow_definition.code'
373
+ };
374
+ const ENTITY_BUILDER_DYNAMIC_PREFIX = 'entity_builder.entity';
375
+ const ENTITY_BUILDER_ALL_DYNAMIC = {
376
+ ALL: `${ENTITY_BUILDER_DYNAMIC_PREFIX}.*`
377
+ };
378
+ const dynamicEntityPermissionParent = (entityCode)=>`${ENTITY_BUILDER_DYNAMIC_PREFIX}.${entityCode}`;
379
+ const dynamicEntityPermission = (entityCode, action)=>`${dynamicEntityPermissionParent(entityCode)}.${action}`;
345
380
  // ==================== EVENT MANAGER MODULE ====================
346
381
  const EVENT_PERMISSIONS = {
347
382
  CREATE: 'event.create',
@@ -436,6 +471,11 @@ const PERMISSIONS = {
436
471
  // Form Builder
437
472
  FORM: FORM_PERMISSIONS,
438
473
  FORM_RESULT: FORM_RESULT_PERMISSIONS,
474
+ // Entity Builder
475
+ ENTITY_DEFINITION: ENTITY_DEFINITION_PERMISSIONS,
476
+ FIELD_DEFINITION: FIELD_DEFINITION_PERMISSIONS,
477
+ FLOW_DEFINITION: FLOW_DEFINITION_PERMISSIONS,
478
+ ENTITY_BUILDER_ALL_DYNAMIC: ENTITY_BUILDER_ALL_DYNAMIC,
439
479
  // Event Manager
440
480
  EVENT: EVENT_PERMISSIONS,
441
481
  // Notification
@@ -458,7 +498,10 @@ __webpack_require__.d(__webpack_exports__, {
458
498
  }, {
459
499
  BC: USER_PERMISSIONS,
460
500
  Bz: AI_ASSISTANT_PERMISSIONS,
501
+ DP: ENTITY_DEFINITION_PERMISSIONS,
461
502
  Em: STORAGE_CONFIG_PERMISSIONS,
503
+ G0: ENTITY_BUILDER_ALL_DYNAMIC,
504
+ GH: dynamicEntityPermissionParent,
462
505
  GT: FORM_RESULT_PERMISSIONS,
463
506
  Jj: PERMISSIONS,
464
507
  N3: TRANSLATION_KEY_PERMISSIONS,
@@ -476,7 +519,10 @@ __webpack_require__.d(__webpack_exports__, {
476
519
  Y7: ACTION_PERMISSIONS,
477
520
  _X: USER_ACTION_PERMISSIONS,
478
521
  aO: COMPANY_ACTION_PERMISSIONS,
522
+ aT: dynamicEntityPermission,
479
523
  fS: TRANSLATION_PERMISSIONS,
524
+ kA: FIELD_DEFINITION_PERMISSIONS,
525
+ kd: FLOW_DEFINITION_PERMISSIONS,
480
526
  l3: SOCIAL_AUTH_CONFIG_PERMISSIONS,
481
527
  mV: ROLE_PERMISSIONS,
482
528
  rH: NOTIFICATION_PERMISSIONS,
@@ -553,8 +599,6 @@ DeleteEmptyIdFromBodyInterceptor = _ts_decorate([
553
599
  var hybrid_cache_class = __webpack_require__(375);
554
600
  // EXTERNAL MODULE: ./projects/nestjs-shared/src/constants/index.ts
555
601
  var constants = __webpack_require__(43);
556
- // EXTERNAL MODULE: ./projects/nestjs-shared/src/constants/message-keys.ts
557
- var message_keys = __webpack_require__(389);
558
602
  ;// CONCATENATED MODULE: ./projects/nestjs-shared/src/interceptors/idempotency.interceptor.ts
559
603
  function idempotency_interceptor_ts_decorate(decorators, target, key, desc) {
560
604
  var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
@@ -611,7 +655,7 @@ class IdempotencyInterceptor {
611
655
  throw new common_.ConflictException({
612
656
  success: false,
613
657
  message: 'Request is already being processed',
614
- messageKey: message_keys/* .SYSTEM_MESSAGES.DUPLICATE_REQUEST */.hg.DUPLICATE_REQUEST
658
+ messageKey: constants/* .SYSTEM_MESSAGES.DUPLICATE_REQUEST */.hg.DUPLICATE_REQUEST
615
659
  });
616
660
  }
617
661
  // Return cached response
@@ -700,26 +744,21 @@ function set_user_field_on_body_interceptor_ts_decorate(decorators, target, key,
700
744
  return c > 3 && r && Object.defineProperty(target, key, r), r;
701
745
  }
702
746
 
703
- /**
704
- * Factory function to create interceptors that set user ID fields on request body
705
- * @param fieldName - The field name to set (e.g., 'createdById', 'updatedById', 'deletedById')
706
- */ function createSetUserFieldInterceptor(fieldName) {
747
+ /** Stamps `fieldName` on the body from the authenticated user; a client-sent value is always dropped. */ function createSetUserFieldInterceptor(fieldName) {
707
748
  let SetUserFieldOnBody = class SetUserFieldOnBody {
708
749
  intercept(context, next) {
709
750
  const request = context.switchToHttp().getRequest();
710
- const user = request?.user;
711
- if (user) {
712
- if (Array.isArray(request.body)) {
713
- request.body = request.body.map((item)=>({
714
- ...item,
715
- [fieldName]: user.id
716
- }));
717
- } else if (typeof request.body === 'object' && request.body !== null) {
718
- request.body = {
719
- ...request.body,
720
- [fieldName]: user.id
721
- };
722
- }
751
+ const userId = request?.user?.id;
752
+ const stamp = (item)=>{
753
+ if (typeof item !== 'object' || item === null || Array.isArray(item)) return item;
754
+ const { [fieldName]: _clientValue, ...rest } = item;
755
+ return userId ? {
756
+ ...rest,
757
+ [fieldName]: userId
758
+ } : rest;
759
+ };
760
+ if (request) {
761
+ request.body = Array.isArray(request.body) ? request.body.map(stamp) : stamp(request.body);
723
762
  }
724
763
  return next.handle();
725
764
  }
@@ -729,9 +768,9 @@ function set_user_field_on_body_interceptor_ts_decorate(decorators, target, key,
729
768
  ], SetUserFieldOnBody);
730
769
  return SetUserFieldOnBody;
731
770
  }
732
- /** Sets createdById field on request body from authenticated user */ const SetCreatedByOnBody = createSetUserFieldInterceptor('createdById');
733
- /** Sets updatedById field on request body from authenticated user */ const SetUpdateByOnBody = createSetUserFieldInterceptor('updatedById');
734
- /** Sets deletedById field on request body from authenticated user */ const SetDeletedByOnBody = createSetUserFieldInterceptor('deletedById');
771
+ const SetCreatedByOnBody = createSetUserFieldInterceptor('createdById');
772
+ const SetUpdateByOnBody = createSetUserFieldInterceptor('updatedById');
773
+ const SetDeletedByOnBody = createSetUserFieldInterceptor('deletedById');
735
774
 
736
775
  // EXTERNAL MODULE: ./projects/nestjs-shared/src/modules/utils/utils.service.ts
737
776
  var utils_service = __webpack_require__(169);
@@ -1,7 +1,7 @@
1
1
  export const __rspack_esm_id = 471;
2
2
  export const __rspack_esm_ids = [471];
3
3
  export const __webpack_modules__ = {
4
- 473(__unused_rspack_module, __webpack_exports__, __webpack_require__) {
4
+ 74(__unused_rspack_module, __webpack_exports__, __webpack_require__) {
5
5
 
6
6
  // EXPORTS
7
7
  __webpack_require__.d(__webpack_exports__, {
@@ -10,6 +10,8 @@ __webpack_require__.d(__webpack_exports__, {
10
10
  T4: () => (/* reexport */ AI_ASSISTANT_USER_LOOKUP_PROVIDER),
11
11
  LO: () => (/* reexport */ EVENT_MANAGER_ADAPTER),
12
12
  KR: () => (/* reexport */ NOTIFICATION_ADAPTER),
13
+ VG: () => (/* reexport */ PERMISSION_ACTION_REGISTRY),
14
+ jd: () => (/* reexport */ PERMISSION_RESOLVER),
13
15
  kF: () => (/* reexport */ PERMISSION_SYNC_ADAPTER)
14
16
  });
15
17
 
@@ -24,6 +26,12 @@ const EVENT_MANAGER_ADAPTER = 'EVENT_MANAGER_ADAPTER';
24
26
  ;// CONCATENATED MODULE: ./projects/nestjs-shared/src/interfaces/notification-adapter.interface.ts
25
27
  const NOTIFICATION_ADAPTER = 'NOTIFICATION_ADAPTER';
26
28
 
29
+ ;// CONCATENATED MODULE: ./projects/nestjs-shared/src/interfaces/permission-action-registry.interface.ts
30
+ const PERMISSION_ACTION_REGISTRY = 'PERMISSION_ACTION_REGISTRY';
31
+
32
+ ;// CONCATENATED MODULE: ./projects/nestjs-shared/src/interfaces/permission-resolver.interface.ts
33
+ const PERMISSION_RESOLVER = 'PERMISSION_RESOLVER';
34
+
27
35
  ;// CONCATENATED MODULE: ./projects/nestjs-shared/src/interfaces/permission-sync-adapter.interface.ts
28
36
  const PERMISSION_SYNC_ADAPTER = 'PERMISSION_SYNC_ADAPTER';
29
37
 
@@ -41,6 +49,9 @@ const PERMISSION_SYNC_ADAPTER = 'PERMISSION_SYNC_ADAPTER';
41
49
 
42
50
 
43
51
 
52
+
53
+
54
+
44
55
  },
45
56
 
46
57
  };
@@ -48,10 +59,12 @@ import { __webpack_require__ } from '../runtime.js';
48
59
  var __webpack_exec__ = function(moduleId) { return __webpack_require__(__webpack_require__.s = moduleId); }
49
60
  import * as __rspack_chunk_1 from './index.js';
50
61
  __webpack_require__.C(__rspack_chunk_1);
51
- var __webpack_exports__ = __webpack_exec__(473);var __webpack_exports__AI_ASSISTANT_AUTH_PROVIDER = __webpack_exports__.Fi;
62
+ var __webpack_exports__ = __webpack_exec__(74);var __webpack_exports__AI_ASSISTANT_AUTH_PROVIDER = __webpack_exports__.Fi;
52
63
  var __webpack_exports__AI_ASSISTANT_TOOL_PROVIDER = __webpack_exports__.Hb;
53
64
  var __webpack_exports__AI_ASSISTANT_USER_LOOKUP_PROVIDER = __webpack_exports__.T4;
54
65
  var __webpack_exports__EVENT_MANAGER_ADAPTER = __webpack_exports__.LO;
55
66
  var __webpack_exports__NOTIFICATION_ADAPTER = __webpack_exports__.KR;
67
+ var __webpack_exports__PERMISSION_ACTION_REGISTRY = __webpack_exports__.VG;
68
+ var __webpack_exports__PERMISSION_RESOLVER = __webpack_exports__.jd;
56
69
  var __webpack_exports__PERMISSION_SYNC_ADAPTER = __webpack_exports__.kF;
57
- export { __webpack_exports__AI_ASSISTANT_AUTH_PROVIDER as AI_ASSISTANT_AUTH_PROVIDER, __webpack_exports__AI_ASSISTANT_TOOL_PROVIDER as AI_ASSISTANT_TOOL_PROVIDER, __webpack_exports__AI_ASSISTANT_USER_LOOKUP_PROVIDER as AI_ASSISTANT_USER_LOOKUP_PROVIDER, __webpack_exports__EVENT_MANAGER_ADAPTER as EVENT_MANAGER_ADAPTER, __webpack_exports__NOTIFICATION_ADAPTER as NOTIFICATION_ADAPTER, __webpack_exports__PERMISSION_SYNC_ADAPTER as PERMISSION_SYNC_ADAPTER };
70
+ export { __webpack_exports__AI_ASSISTANT_AUTH_PROVIDER as AI_ASSISTANT_AUTH_PROVIDER, __webpack_exports__AI_ASSISTANT_TOOL_PROVIDER as AI_ASSISTANT_TOOL_PROVIDER, __webpack_exports__AI_ASSISTANT_USER_LOOKUP_PROVIDER as AI_ASSISTANT_USER_LOOKUP_PROVIDER, __webpack_exports__EVENT_MANAGER_ADAPTER as EVENT_MANAGER_ADAPTER, __webpack_exports__NOTIFICATION_ADAPTER as NOTIFICATION_ADAPTER, __webpack_exports__PERMISSION_ACTION_REGISTRY as PERMISSION_ACTION_REGISTRY, __webpack_exports__PERMISSION_RESOLVER as PERMISSION_RESOLVER, __webpack_exports__PERMISSION_SYNC_ADAPTER as PERMISSION_SYNC_ADAPTER };
@@ -2,7 +2,7 @@ export const __rspack_esm_id = 548;
2
2
  export const __rspack_esm_ids = [548];
3
3
  export const __webpack_modules__ = {
4
4
  799(__unused_rspack_module, __webpack_exports__, __webpack_require__) {
5
- /* import */ var _logger_middleware_js__rspack_import_0 = __webpack_require__(419);
5
+ /* import */ var _logger_middleware_js__rspack_import_0 = __webpack_require__(591);
6
6
 
7
7
 
8
8
  __webpack_require__.d(__webpack_exports__, {
@@ -10,6 +10,7 @@ __webpack_require__.d(__webpack_exports__, {
10
10
  F6: () => (/* reexport safe */ _logger_middleware_js__rspack_import_0.F6),
11
11
  RE: () => (/* reexport safe */ _logger_middleware_js__rspack_import_0.RE),
12
12
  V8: () => (/* reexport safe */ _logger_middleware_js__rspack_import_0.V8),
13
+ ZV: () => (/* reexport safe */ _logger_middleware_js__rspack_import_0.ZV),
13
14
  pq: () => (/* reexport safe */ _logger_middleware_js__rspack_import_0.pq),
14
15
  xR: () => (/* reexport safe */ _logger_middleware_js__rspack_import_0.xR)
15
16
  });
@@ -20,7 +21,7 @@ __webpack_require__.d(__webpack_exports__, {
20
21
  };
21
22
  import { __webpack_require__ } from '../runtime.js';
22
23
  var __webpack_exec__ = function(moduleId) { return __webpack_require__(__webpack_require__.s = moduleId); }
23
- import * as __rspack_chunk_1 from '../720.js';
24
+ import * as __rspack_chunk_1 from '../948.js';
24
25
  __webpack_require__.C(__rspack_chunk_1);
25
26
  import * as __rspack_chunk_2 from './index.js';
26
27
  __webpack_require__.C(__rspack_chunk_2);
@@ -30,4 +31,5 @@ var __webpack_exports__getRequestId = __webpack_exports__.RE;
30
31
  var __webpack_exports__getTenantId = __webpack_exports__.EO;
31
32
  var __webpack_exports__getUserId = __webpack_exports__.F6;
32
33
  var __webpack_exports__requestContext = __webpack_exports__.V8;
33
- export { __webpack_exports__LoggerMiddleware as LoggerMiddleware, __webpack_exports__getCompanyId as getCompanyId, __webpack_exports__getRequestId as getRequestId, __webpack_exports__getTenantId as getTenantId, __webpack_exports__getUserId as getUserId, __webpack_exports__requestContext as requestContext };
34
+ var __webpack_exports__setRequestUser = __webpack_exports__.ZV;
35
+ export { __webpack_exports__LoggerMiddleware as LoggerMiddleware, __webpack_exports__getCompanyId as getCompanyId, __webpack_exports__getRequestId as getRequestId, __webpack_exports__getTenantId as getTenantId, __webpack_exports__getUserId as getUserId, __webpack_exports__requestContext as requestContext, __webpack_exports__setRequestUser as setRequestUser };
@@ -1,424 +1,16 @@
1
- import * as __rspack_external__flusys_nestjs_core_config_197fa0a9 from "@flusys/nestjs-core/config";
2
- import * as __rspack_external__nestjs_common_a04939da from "@nestjs/common";
3
1
  export const __rspack_esm_id = 900;
4
2
  export const __rspack_esm_ids = [900];
5
- export const __webpack_modules__ = {
6
- 43(__unused_rspack_module, __webpack_exports__, __webpack_require__) {
7
- /* import */ var _permissions_js__rspack_import_0 = __webpack_require__(975);
8
- /* import */ var _message_keys_js__rspack_import_1 = __webpack_require__(389);
9
- // Metadata keys
10
- const IS_PUBLIC_KEY = 'isPublic';
11
- const PERMISSIONS_KEY = 'permissions';
12
- const DOMAIN_EVENT_HANDLER_KEY = 'domainEventHandler';
13
- // Injection tokens
14
- const CACHE_INSTANCE = 'CACHE_INSTANCE';
15
- const PERMISSION_GUARD_CONFIG = 'PERMISSION_GUARD_CONFIG';
16
- const EVENT_BUS_INSTANCE = 'EVENT_BUS_INSTANCE';
17
- const EVENT_BUS_MODULE_OPTIONS = 'EVENT_BUS_MODULE_OPTIONS';
18
- // Header names
19
- const IDEMPOTENCY_KEY_HEADER = 'x-idempotency-key';
20
- const REQUEST_ID_HEADER = 'x-request-id';
21
- const CLIENT_TYPE_HEADER = 'x-client-type';
22
- // Cache key prefixes
23
- const PERMISSIONS_CACHE_PREFIX = 'my-permissions';
24
- const IDEMPOTENCY_CACHE_PREFIX = 'idempotency';
25
- // Event bus defaults
26
- const DEFAULT_EVENT_EXCHANGE = 'flusys.events';
27
- const DEFAULT_EVENT_TOPIC = 'flusys.domain-events';
28
- const DEFAULT_EVENT_SERVICE_NAME = 'flusys';
29
- // Permission codes
30
-
31
- // Message keys for localization
32
-
33
-
34
- __webpack_require__.d(__webpack_exports__, {
35
- BC: () => (/* reexport safe */ _permissions_js__rspack_import_0.BC),
36
- Bz: () => (/* reexport safe */ _permissions_js__rspack_import_0.Bz),
37
- Em: () => (/* reexport safe */ _permissions_js__rspack_import_0.Em),
38
- GT: () => (/* reexport safe */ _permissions_js__rspack_import_0.GT),
39
- Jj: () => (/* reexport safe */ _permissions_js__rspack_import_0.Jj),
40
- N3: () => (/* reexport safe */ _permissions_js__rspack_import_0.N3),
41
- ON: () => (/* reexport safe */ _permissions_js__rspack_import_0.ON),
42
- P0: () => (/* reexport safe */ _permissions_js__rspack_import_0.P0),
43
- Q5: () => (/* reexport safe */ _permissions_js__rspack_import_0.Q5),
44
- S6: () => (/* reexport safe */ _permissions_js__rspack_import_0.S6),
45
- T: () => (/* reexport safe */ _permissions_js__rspack_import_0.T),
46
- UB: () => (/* reexport safe */ _permissions_js__rspack_import_0.UB),
47
- UG: () => (/* reexport safe */ _permissions_js__rspack_import_0.UG),
48
- UU: () => (/* reexport safe */ _message_keys_js__rspack_import_1.UU),
49
- Ub: () => (/* reexport safe */ _permissions_js__rspack_import_0.Ub),
50
- V0: () => (/* reexport safe */ _permissions_js__rspack_import_0.V0),
51
- Wc: () => (/* reexport safe */ _permissions_js__rspack_import_0.Wc),
52
- Y3: () => (/* reexport safe */ _permissions_js__rspack_import_0.Y3),
53
- Y7: () => (/* reexport safe */ _permissions_js__rspack_import_0.Y7),
54
- _X: () => (/* reexport safe */ _permissions_js__rspack_import_0._X),
55
- aO: () => (/* reexport safe */ _permissions_js__rspack_import_0.aO),
56
- fS: () => (/* reexport safe */ _permissions_js__rspack_import_0.fS),
57
- hg: () => (/* reexport safe */ _message_keys_js__rspack_import_1.hg),
58
- l3: () => (/* reexport safe */ _permissions_js__rspack_import_0.l3),
59
- mK: () => (/* reexport safe */ _message_keys_js__rspack_import_1.mK),
60
- mV: () => (/* reexport safe */ _permissions_js__rspack_import_0.mV),
61
- rH: () => (/* reexport safe */ _permissions_js__rspack_import_0.rH),
62
- t$: () => (/* reexport safe */ _permissions_js__rspack_import_0.t$),
63
- w7: () => (/* reexport safe */ _permissions_js__rspack_import_0.w7),
64
- wA: () => (/* reexport safe */ _permissions_js__rspack_import_0.wA),
65
- wM: () => (/* reexport safe */ _permissions_js__rspack_import_0.wM),
66
- z$: () => (/* reexport safe */ _permissions_js__rspack_import_0.z$),
67
- zd: () => (/* reexport safe */ _permissions_js__rspack_import_0.zd)
68
- }, {
69
- Hq: DEFAULT_EVENT_EXCHANGE,
70
- Lw: PERMISSION_GUARD_CONFIG,
71
- N7: PERMISSIONS_KEY,
72
- PT: DOMAIN_EVENT_HANDLER_KEY,
73
- Qj: EVENT_BUS_INSTANCE,
74
- SL: EVENT_BUS_MODULE_OPTIONS,
75
- fG: PERMISSIONS_CACHE_PREFIX,
76
- iH: IDEMPOTENCY_KEY_HEADER,
77
- jA: IS_PUBLIC_KEY,
78
- kC: REQUEST_ID_HEADER,
79
- mg: IDEMPOTENCY_CACHE_PREFIX,
80
- nx: DEFAULT_EVENT_TOPIC,
81
- xw: CLIENT_TYPE_HEADER,
82
- zl: CACHE_INSTANCE
83
- });
84
-
85
-
86
- },
87
- 389(__unused_rspack_module, __webpack_exports__, __webpack_require__) {
88
- // ==================== AUTH (Shared across guards/interceptors) ====================
89
- // These are duplicated in nestjs-auth but needed here to avoid circular dependencies
90
- const AUTH_MESSAGES = {
91
- TOKEN_REQUIRED: 'auth.token.required',
92
- TOKEN_INVALID: 'auth.token.invalid',
93
- ENTITY_BELOG_ANOTHER_COMPANY: 'entity.belongs.another.company',
94
- COMPANY_NO_ACCESS: 'auth.company.no.access'
95
- };
96
- // ==================== ERROR (HTTP Exceptions) ====================
97
- const ERROR_MESSAGES = {
98
- NOT_FOUND: 'error.not.found',
99
- VALIDATION: 'error.validation',
100
- UNAUTHORIZED: 'error.unauthorized',
101
- FORBIDDEN: 'error.forbidden',
102
- CONFLICT: 'error.conflict',
103
- DB_FOREIGN_KEY: 'error.db.foreign.key',
104
- DB_NOT_NULL: 'error.db.not.null',
105
- DB_INVALID_INPUT: 'error.db.invalid.input',
106
- DB_VALUE_TOO_LONG: 'error.db.value.too.long',
107
- DB_CHECK_CONSTRAINT: 'error.db.check.constraint',
108
- DB_DEADLOCK: 'error.db.deadlock',
109
- INTERNAL: 'error.internal',
110
- SERVICE_UNAVAILABLE: 'error.service.unavailable',
111
- UNKNOWN: 'error.unknown',
112
- HTTP: 'error.http',
113
- GENERIC: 'error.generic',
114
- PERMISSION_SYSTEM_UNAVAILABLE: 'error.permission.system.unavailable',
115
- INSUFFICIENT_PERMISSIONS: 'error.insufficient.permissions',
116
- INSUFFICIENT_PERMISSIONS_OR: 'error.insufficient.permissions.or',
117
- NO_PERMISSIONS_FOUND: 'error.no.permissions.found',
118
- ENDPOINT_DISABLED: 'error.endpoint.disabled'
119
- };
120
- // ==================== SYSTEM (Infrastructure) ====================
121
- const SYSTEM_MESSAGES = {
122
- REPOSITORY_NOT_AVAILABLE: 'system.repository.not.available',
123
- DATASOURCE_NOT_AVAILABLE: 'system.datasource.not.available',
124
- DATABASE_CONFIG_NOT_AVAILABLE: 'system.database.config.not.available',
125
- SERVICE_NOT_AVAILABLE: 'system.service.not.available',
126
- CONFIG_REQUIRED: 'system.config.required',
127
- INTERNAL_ERROR: 'system.internal.error',
128
- DUPLICATE_REQUEST: 'system.duplicate.request',
129
- INVALID_TENANT_ID: 'system.invalid.tenant.id',
130
- TENANT_NOT_FOUND: 'system.tenant.not.found',
131
- TENANT_HEADER_REQUIRED: 'system.tenant.header.required',
132
- MISSING_PARAMETER: 'system.missing.parameter',
133
- SDK_NOT_INSTALLED: 'system.sdk.not.installed',
134
- PATH_TRAVERSAL_DETECTED: 'system.path.traversal.detected',
135
- INVALID_FILE_KEY: 'system.invalid.file.key'
136
- };
137
-
138
- __webpack_require__.d(__webpack_exports__, {
139
- }, {
140
- UU: ERROR_MESSAGES,
141
- hg: SYSTEM_MESSAGES,
142
- mK: AUTH_MESSAGES
143
- });
144
-
145
-
146
- },
147
- 975(__unused_rspack_module, __webpack_exports__, __webpack_require__) {
148
- // ==================== AUTH MODULE ====================
149
- const USER_PERMISSIONS = {
150
- CREATE: 'user.create',
151
- READ: 'user.read',
152
- UPDATE: 'user.update',
153
- DELETE: 'user.delete',
154
- LOOKUP: 'user.lookup'
155
- };
156
- const COMPANY_PERMISSIONS = {
157
- CREATE: 'company.create',
158
- READ: 'company.read',
159
- UPDATE: 'company.update',
160
- DELETE: 'company.delete'
161
- };
162
- const BRANCH_PERMISSIONS = {
163
- CREATE: 'branch.create',
164
- READ: 'branch.read',
165
- UPDATE: 'branch.update',
166
- DELETE: 'branch.delete'
167
- };
168
- const SOCIAL_AUTH_CONFIG_PERMISSIONS = {
169
- CREATE: 'social-config.create',
170
- READ: 'social-config.read',
171
- UPDATE: 'social-config.update',
172
- DELETE: 'social-config.delete'
173
- };
174
- // ==================== IAM MODULE ====================
175
- const ACTION_PERMISSIONS = {
176
- CREATE: 'action.create',
177
- READ: 'action.read',
178
- UPDATE: 'action.update',
179
- DELETE: 'action.delete'
180
- };
181
- const ROLE_PERMISSIONS = {
182
- CREATE: 'role.create',
183
- READ: 'role.read',
184
- UPDATE: 'role.update',
185
- DELETE: 'role.delete'
186
- };
187
- const ROLE_ACTION_PERMISSIONS = {
188
- READ: 'role-action.read',
189
- ASSIGN: 'role-action.assign'
190
- };
191
- const USER_ROLE_PERMISSIONS = {
192
- READ: 'user-role.read',
193
- ASSIGN: 'user-role.assign'
194
- };
195
- const USER_ACTION_PERMISSIONS = {
196
- READ: 'user-action.read',
197
- ASSIGN: 'user-action.assign'
198
- };
199
- const COMPANY_ACTION_PERMISSIONS = {
200
- READ: 'company-action.read',
201
- ASSIGN: 'company-action.assign'
202
- };
203
- // ==================== STORAGE MODULE ====================
204
- const FILE_PERMISSIONS = {
205
- CREATE: 'file.create',
206
- READ: 'file.read',
207
- UPDATE: 'file.update',
208
- DELETE: 'file.delete',
209
- VIEW_PRIVATE_ACTION: 'file.view.private'
210
- };
211
- const FOLDER_PERMISSIONS = {
212
- CREATE: 'folder.create',
213
- READ: 'folder.read',
214
- UPDATE: 'folder.update',
215
- DELETE: 'folder.delete'
216
- };
217
- const STORAGE_CONFIG_PERMISSIONS = {
218
- CREATE: 'storage-config.create',
219
- READ: 'storage-config.read',
220
- UPDATE: 'storage-config.update',
221
- DELETE: 'storage-config.delete'
222
- };
223
- const UPLOAD_CONFIG_PERMISSIONS = {
224
- DELETE: 'upload-config.delete'
225
- };
226
- // ==================== EMAIL MODULE ====================
227
- const EMAIL_CONFIG_PERMISSIONS = {
228
- CREATE: 'email-config.create',
229
- READ: 'email-config.read',
230
- UPDATE: 'email-config.update',
231
- DELETE: 'email-config.delete'
232
- };
233
- const EMAIL_TEMPLATE_PERMISSIONS = {
234
- CREATE: 'email-template.create',
235
- READ: 'email-template.read',
236
- UPDATE: 'email-template.update',
237
- DELETE: 'email-template.delete'
238
- };
239
- // ==================== FORM BUILDER MODULE ====================
240
- const FORM_PERMISSIONS = {
241
- CREATE: 'form.create',
242
- READ: 'form.read',
243
- UPDATE: 'form.update',
244
- DELETE: 'form.delete'
245
- };
246
- const FORM_RESULT_PERMISSIONS = {
247
- CREATE: 'form-result.create',
248
- READ: 'form-result.read',
249
- UPDATE: 'form-result.update',
250
- DELETE: 'form-result.delete'
251
- };
252
- // ==================== EVENT MANAGER MODULE ====================
253
- const EVENT_PERMISSIONS = {
254
- CREATE: 'event.create',
255
- READ: 'event.read',
256
- UPDATE: 'event.update',
257
- DELETE: 'event.delete'
258
- };
259
- // ==================== NOTIFICATION MODULE ====================
260
- const NOTIFICATION_PERMISSIONS = {
261
- CREATE: 'notification.create',
262
- READ: 'notification.read',
263
- UPDATE: 'notification.update',
264
- DELETE: 'notification.delete'
265
- };
266
- // ==================== LOCALIZATION MODULE ====================
267
- const LANGUAGE_PERMISSIONS = {
268
- CREATE: 'language.create',
269
- READ: 'language.read',
270
- UPDATE: 'language.update',
271
- DELETE: 'language.delete'
272
- };
273
- const TRANSLATION_KEY_PERMISSIONS = {
274
- CREATE: 'translation-key.create',
275
- READ: 'translation-key.read',
276
- UPDATE: 'translation-key.update',
277
- DELETE: 'translation-key.delete'
278
- };
279
- const TRANSLATION_PERMISSIONS = {
280
- CREATE: 'translation.create',
281
- READ: 'translation.read',
282
- UPDATE: 'translation.update',
283
- DELETE: 'translation.delete'
284
- };
285
- // ==================== TASK MANAGER MODULE ====================
286
- const TASK_BOARD_PERMISSIONS = {
287
- CREATE: 'task-board.create',
288
- READ: 'task-board.read',
289
- UPDATE: 'task-board.update',
290
- DELETE: 'task-board.delete',
291
- MANAGE_MEMBERS: 'task-board.manage-members'
292
- };
293
- const TASK_LIST_PERMISSIONS = {
294
- CREATE: 'task-list.create',
295
- READ: 'task-list.read',
296
- UPDATE: 'task-list.update',
297
- DELETE: 'task-list.delete'
298
- };
299
- const TASK_PERMISSIONS = {
300
- CREATE: 'task.create',
301
- READ: 'task.read',
302
- UPDATE: 'task.update',
303
- DELETE: 'task.delete',
304
- MOVE: 'task.move',
305
- ASSIGN: 'task.assign'
306
- };
307
- const TASK_LABEL_PERMISSIONS = {
308
- CREATE: 'task-label.create',
309
- READ: 'task-label.read',
310
- UPDATE: 'task-label.update',
311
- DELETE: 'task-label.delete'
312
- };
313
- const TASK_COMMENT_PERMISSIONS = {
314
- CREATE: 'task-comment.create',
315
- READ: 'task-comment.read',
316
- DELETE: 'task-comment.delete'
317
- };
318
- // ==================== AI ASSISTANT MODULE ====================
319
- const AI_ASSISTANT_PERMISSIONS = {
320
- VIEW_ALL_HISTORY: 'ai-assistant.view-all-history'
321
- };
322
- // ==================== AGGREGATED EXPORTS ====================
323
- const PERMISSIONS = {
324
- // Auth
325
- USER: USER_PERMISSIONS,
326
- COMPANY: COMPANY_PERMISSIONS,
327
- BRANCH: BRANCH_PERMISSIONS,
328
- SOCIAL_AUTH_CONFIG: SOCIAL_AUTH_CONFIG_PERMISSIONS,
329
- // IAM
330
- ACTION: ACTION_PERMISSIONS,
331
- ROLE: ROLE_PERMISSIONS,
332
- ROLE_ACTION: ROLE_ACTION_PERMISSIONS,
333
- USER_ROLE: USER_ROLE_PERMISSIONS,
334
- USER_ACTION: USER_ACTION_PERMISSIONS,
335
- COMPANY_ACTION: COMPANY_ACTION_PERMISSIONS,
336
- // Storage
337
- FILE: FILE_PERMISSIONS,
338
- FOLDER: FOLDER_PERMISSIONS,
339
- STORAGE_CONFIG: STORAGE_CONFIG_PERMISSIONS,
340
- // Email
341
- EMAIL_CONFIG: EMAIL_CONFIG_PERMISSIONS,
342
- EMAIL_TEMPLATE: EMAIL_TEMPLATE_PERMISSIONS,
343
- // Form Builder
344
- FORM: FORM_PERMISSIONS,
345
- FORM_RESULT: FORM_RESULT_PERMISSIONS,
346
- // Event Manager
347
- EVENT: EVENT_PERMISSIONS,
348
- // Notification
349
- NOTIFICATION: NOTIFICATION_PERMISSIONS,
350
- // Localization
351
- LANGUAGE: LANGUAGE_PERMISSIONS,
352
- TRANSLATION_KEY: TRANSLATION_KEY_PERMISSIONS,
353
- TRANSLATION: TRANSLATION_PERMISSIONS,
354
- // Task Manager
355
- TASK_BOARD: TASK_BOARD_PERMISSIONS,
356
- TASK_LIST: TASK_LIST_PERMISSIONS,
357
- TASK: TASK_PERMISSIONS,
358
- TASK_LABEL: TASK_LABEL_PERMISSIONS,
359
- TASK_COMMENT: TASK_COMMENT_PERMISSIONS,
360
- // AI Assistant
361
- AI_ASSISTANT: AI_ASSISTANT_PERMISSIONS
362
- };
363
-
364
- __webpack_require__.d(__webpack_exports__, {
365
- }, {
366
- BC: USER_PERMISSIONS,
367
- Bz: AI_ASSISTANT_PERMISSIONS,
368
- Em: STORAGE_CONFIG_PERMISSIONS,
369
- GT: FORM_RESULT_PERMISSIONS,
370
- Jj: PERMISSIONS,
371
- N3: TRANSLATION_KEY_PERMISSIONS,
372
- ON: TASK_LIST_PERMISSIONS,
373
- P0: ROLE_ACTION_PERMISSIONS,
374
- Q5: LANGUAGE_PERMISSIONS,
375
- S6: FILE_PERMISSIONS,
376
- T: TASK_PERMISSIONS,
377
- UB: UPLOAD_CONFIG_PERMISSIONS,
378
- UG: TASK_LABEL_PERMISSIONS,
379
- Ub: EVENT_PERMISSIONS,
380
- V0: EMAIL_CONFIG_PERMISSIONS,
381
- Wc: FORM_PERMISSIONS,
382
- Y3: TASK_BOARD_PERMISSIONS,
383
- Y7: ACTION_PERMISSIONS,
384
- _X: USER_ACTION_PERMISSIONS,
385
- aO: COMPANY_ACTION_PERMISSIONS,
386
- fS: TRANSLATION_PERMISSIONS,
387
- l3: SOCIAL_AUTH_CONFIG_PERMISSIONS,
388
- mV: ROLE_PERMISSIONS,
389
- rH: NOTIFICATION_PERMISSIONS,
390
- t$: COMPANY_PERMISSIONS,
391
- w7: USER_ROLE_PERMISSIONS,
392
- wA: BRANCH_PERMISSIONS,
393
- wM: FOLDER_PERMISSIONS,
394
- z$: EMAIL_TEMPLATE_PERMISSIONS,
395
- zd: TASK_COMMENT_PERMISSIONS
396
- });
397
-
398
-
399
- },
400
- 307(module) {
401
-
402
- module.exports = __rspack_external__flusys_nestjs_core_config_197fa0a9;
403
-
404
-
405
- },
406
- 157(module) {
407
-
408
- module.exports = __rspack_external__nestjs_common_a04939da;
409
-
410
-
411
- },
412
-
413
- };
3
+ export const __webpack_modules__ = {};
414
4
  import { __webpack_require__ } from '../runtime.js';
415
5
  var __webpack_exec__ = function(moduleId) { return __webpack_require__(__webpack_require__.s = moduleId); }
416
- import * as __rspack_chunk_1 from '../67.js';
6
+ import * as __rspack_chunk_1 from '../948.js';
417
7
  __webpack_require__.C(__rspack_chunk_1);
418
- import * as __rspack_chunk_2 from '../667.js';
8
+ import * as __rspack_chunk_2 from '../681.js';
419
9
  __webpack_require__.C(__rspack_chunk_2);
420
- import * as __rspack_chunk_3 from './index.js';
10
+ import * as __rspack_chunk_3 from '../667.js';
421
11
  __webpack_require__.C(__rspack_chunk_3);
12
+ import * as __rspack_chunk_4 from './index.js';
13
+ __webpack_require__.C(__rspack_chunk_4);
422
14
  var __webpack_exports__ = __webpack_exec__(686);var __webpack_exports__CacheModule = __webpack_exports__.vd;
423
15
  var __webpack_exports__EventBusExplorer = __webpack_exports__.K6;
424
16
  var __webpack_exports__EventBusModule = __webpack_exports__.Zv;