@flusys/nestjs-shared 9.1.1 → 9.2.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 (46) hide show
  1. package/README.md +119 -18
  2. package/classes/api-controller.class.d.ts +1 -0
  3. package/classes/api-service.class.d.ts +7 -2
  4. package/classes/hybrid-cache.class.d.ts +17 -4
  5. package/constants/index.d.ts +1 -0
  6. package/constants/permissions.d.ts +9 -0
  7. package/fesm/183.js +7 -7
  8. package/fesm/47.js +1520 -0
  9. package/fesm/470.js +333 -382
  10. package/fesm/667.js +17 -17
  11. package/fesm/681.js +326 -129
  12. package/fesm/{948.js → 997.js} +45 -23
  13. package/fesm/chunks/123.js +17 -9
  14. package/fesm/chunks/37.js +5 -5
  15. package/fesm/classes/index.js +4 -3
  16. package/fesm/constants/index.js +18 -7
  17. package/fesm/decorators/index.js +120 -39
  18. package/fesm/dtos/index.js +1 -1
  19. package/fesm/entities/index.js +8 -8
  20. package/fesm/enums/index.js +2 -2
  21. package/fesm/exceptions/index.js +12 -12
  22. package/fesm/guards/index.js +201 -68
  23. package/fesm/index.js +95 -42
  24. package/fesm/interceptors/index.js +290 -590
  25. package/fesm/interfaces/index.js +97 -8
  26. package/fesm/middlewares/index.js +4 -4
  27. package/fesm/modules/index.js +2 -2
  28. package/fesm/pipes/index.js +8 -8
  29. package/fesm/utils/index.js +150 -478
  30. package/interceptors/idempotency.interceptor.d.ts +14 -2
  31. package/interceptors/slug.interceptor.d.ts +1 -0
  32. package/interfaces/expression.interface.d.ts +45 -0
  33. package/interfaces/index.d.ts +1 -0
  34. package/interfaces/permission-action-registry.interface.d.ts +1 -0
  35. package/interfaces/permission.interface.d.ts +1 -0
  36. package/modules/shared-permission-cache/shared-permission-cache.service.d.ts +3 -1
  37. package/modules/utils/utils.service.d.ts +6 -6
  38. package/package.json +3 -2
  39. package/utils/date-time.util.d.ts +0 -1
  40. package/utils/event-pattern.util.d.ts +1 -0
  41. package/utils/expression.util.d.ts +35 -0
  42. package/utils/index.d.ts +2 -0
  43. package/utils/permission-cache-key.util.d.ts +3 -0
  44. package/utils/query-helpers.util.d.ts +2 -2
  45. package/utils/safe-regex.util.d.ts +10 -0
  46. package/fesm/270.js +0 -659
@@ -2,15 +2,15 @@ import * as __rspack_external_winston_daily_rotate_file_d74f2d27 from "winston-d
2
2
  import * as __rspack_external_winston_transport_f7e85261 from "winston-transport";
3
3
  import * as __rspack_external__flusys_nestjs_core_config_197fa0a9 from "@flusys/nestjs-core/config";
4
4
  import * as __rspack_external__nestjs_common_a04939da from "@nestjs/common";
5
+ import * as __rspack_external_node_crypto_2e7c4b46 from "node:crypto";
5
6
  import * as __rspack_external_fs from "fs";
6
7
  import * as __rspack_external_path from "path";
7
8
  import * as __rspack_external_winston from "winston";
8
9
  import * as __rspack_external_async_hooks from "async_hooks";
9
- import * as __rspack_external_node_crypto_2e7c4b46 from "node:crypto";
10
- export const __rspack_esm_id = 948;
11
- export const __rspack_esm_ids = [948];
10
+ export const __rspack_esm_id = 997;
11
+ export const __rspack_esm_ids = [997];
12
12
  export const __webpack_modules__ = {
13
- 245(__unused_rspack_module, __webpack_exports__, __webpack_require__) {
13
+ 6245(__unused_rspack_module, __webpack_exports__, __webpack_require__) {
14
14
 
15
15
  // EXPORTS
16
16
  __webpack_require__.d(__webpack_exports__, {
@@ -19,13 +19,15 @@ __webpack_require__.d(__webpack_exports__, {
19
19
  });
20
20
 
21
21
  // EXTERNAL MODULE: external "@flusys/nestjs-core/config"
22
- var config_ = __webpack_require__(307);
22
+ var config_ = __webpack_require__(8307);
23
23
  ;// CONCATENATED MODULE: external "fs"
24
24
 
25
25
  ;// CONCATENATED MODULE: external "path"
26
26
 
27
27
  ;// CONCATENATED MODULE: external "winston"
28
28
 
29
+ // EXTERNAL MODULE: ./projects/nestjs-shared/src/constants/index.ts
30
+ var constants = __webpack_require__(6043);
29
31
  ;// CONCATENATED MODULE: external "winston-daily-rotate-file"
30
32
 
31
33
  ;// CONCATENATED MODULE: external "winston-transport"
@@ -35,6 +37,7 @@ var config_ = __webpack_require__(307);
35
37
 
36
38
 
37
39
 
40
+
38
41
  // Handle both webpack (no default export) and esbuild (default export)
39
42
 
40
43
 
@@ -142,8 +145,11 @@ function getCachedTransport(cache, name) {
142
145
  cache.set(name, transport);
143
146
  return transport;
144
147
  }
148
+ // The tenant id comes from a request header that is only format-checked here, so cap how many
149
+ // per-tenant files a client can open by cycling made-up ids; the rest go to the combined log.
150
+ const MAX_TENANT_TRANSPORTS = 100;
145
151
  const getModuleTransport = (name)=>getCachedTransport(moduleTransportCache, name);
146
- const getTenantTransport = (name)=>getCachedTransport(tenantTransportCache, name);
152
+ const getTenantTransport = (name)=>tenantTransportCache.has(name) || tenantTransportCache.size < MAX_TENANT_TRANSPORTS ? getCachedTransport(tenantTransportCache, name) : undefined;
147
153
  let winston_logger_class_TenantAwareTransport = class TenantAwareTransport extends Transport {
148
154
  defaultTransport;
149
155
  constructor(defaultTransport){
@@ -152,7 +158,7 @@ let winston_logger_class_TenantAwareTransport = class TenantAwareTransport exten
152
158
  log(info, callback) {
153
159
  setImmediate(()=>this.emit('logged', info));
154
160
  const tenantId = info.tenantId || info.metadata?.tenantId;
155
- const transport = USE_TENANT_MODE && tenantId ? getTenantTransport(tenantId) : this.defaultTransport;
161
+ const transport = (USE_TENANT_MODE && typeof tenantId === 'string' && constants/* .TENANT_ID_PATTERN.test */.uD.test(tenantId) ? getTenantTransport(tenantId) : undefined) ?? this.defaultTransport;
156
162
  transport.log(info, callback);
157
163
  }
158
164
  };
@@ -250,9 +256,9 @@ const consoleTransport = new __rspack_external_winston.transports.Console({
250
256
 
251
257
 
252
258
  },
253
- 43(__unused_rspack_module, __webpack_exports__, __webpack_require__) {
254
- /* import */ var _permissions_js__rspack_import_0 = __webpack_require__(975);
255
- /* import */ var _message_keys_js__rspack_import_1 = __webpack_require__(389);
259
+ 6043(__unused_rspack_module, __webpack_exports__, __webpack_require__) {
260
+ /* import */ var _permissions_js__rspack_import_0 = __webpack_require__(8975);
261
+ /* import */ var _message_keys_js__rspack_import_1 = __webpack_require__(4389);
256
262
  // Metadata keys
257
263
  const IS_PUBLIC_KEY = 'isPublic';
258
264
  const PERMISSIONS_KEY = 'permissions';
@@ -266,6 +272,7 @@ const EVENT_BUS_MODULE_OPTIONS = 'EVENT_BUS_MODULE_OPTIONS';
266
272
  const IDEMPOTENCY_KEY_HEADER = 'x-idempotency-key';
267
273
  const REQUEST_ID_HEADER = 'x-request-id';
268
274
  const CLIENT_TYPE_HEADER = 'x-client-type';
275
+ /** A tenant id names a database and a log folder, so it is limited to these characters. */ const TENANT_ID_PATTERN = /^[a-zA-Z0-9_-]{1,64}$/;
269
276
  // Cache key prefixes
270
277
  const PERMISSIONS_CACHE_PREFIX = 'my-permissions';
271
278
  const IDEMPOTENCY_CACHE_PREFIX = 'idempotency';
@@ -286,6 +293,7 @@ __webpack_require__.d(__webpack_exports__, {
286
293
  G0: () => (/* reexport safe */ _permissions_js__rspack_import_0.G0),
287
294
  GH: () => (/* reexport safe */ _permissions_js__rspack_import_0.GH),
288
295
  GT: () => (/* reexport safe */ _permissions_js__rspack_import_0.GT),
296
+ IX: () => (/* reexport safe */ _permissions_js__rspack_import_0.IX),
289
297
  Jj: () => (/* reexport safe */ _permissions_js__rspack_import_0.Jj),
290
298
  N3: () => (/* reexport safe */ _permissions_js__rspack_import_0.N3),
291
299
  ON: () => (/* reexport safe */ _permissions_js__rspack_import_0.ON),
@@ -331,13 +339,14 @@ __webpack_require__.d(__webpack_exports__, {
331
339
  kC: REQUEST_ID_HEADER,
332
340
  mg: IDEMPOTENCY_CACHE_PREFIX,
333
341
  nx: DEFAULT_EVENT_TOPIC,
342
+ uD: TENANT_ID_PATTERN,
334
343
  xw: CLIENT_TYPE_HEADER,
335
344
  zl: CACHE_INSTANCE
336
345
  });
337
346
 
338
347
 
339
348
  },
340
- 389(__unused_rspack_module, __webpack_exports__, __webpack_require__) {
349
+ 4389(__unused_rspack_module, __webpack_exports__, __webpack_require__) {
341
350
  // ==================== AUTH (Shared across guards/interceptors) ====================
342
351
  // These are duplicated in nestjs-auth but needed here to avoid circular dependencies
343
352
  const AUTH_MESSAGES = {
@@ -397,7 +406,7 @@ __webpack_require__.d(__webpack_exports__, {
397
406
 
398
407
 
399
408
  },
400
- 975(__unused_rspack_module, __webpack_exports__, __webpack_require__) {
409
+ 8975(__unused_rspack_module, __webpack_exports__, __webpack_require__) {
401
410
  // ==================== AUTH MODULE ====================
402
411
  const USER_PERMISSIONS = {
403
412
  CREATE: 'user.create',
@@ -453,6 +462,9 @@ const COMPANY_ACTION_PERMISSIONS = {
453
462
  READ: 'company-action.read',
454
463
  ASSIGN: 'company-action.assign'
455
464
  };
465
+ /** Lets an actor assign user roles/actions in a company other than their session company (e.g. onboarding). Never satisfied by a wildcard. */ const CROSS_COMPANY_PERMISSIONS = {
466
+ ASSIGN: 'cross-company.assign'
467
+ };
456
468
  // ==================== STORAGE MODULE ====================
457
469
  const FILE_PERMISSIONS = {
458
470
  CREATE: 'file.create',
@@ -614,10 +626,12 @@ const PERMISSIONS = {
614
626
  USER_ROLE: USER_ROLE_PERMISSIONS,
615
627
  USER_ACTION: USER_ACTION_PERMISSIONS,
616
628
  COMPANY_ACTION: COMPANY_ACTION_PERMISSIONS,
629
+ CROSS_COMPANY: CROSS_COMPANY_PERMISSIONS,
617
630
  // Storage
618
631
  FILE: FILE_PERMISSIONS,
619
632
  FOLDER: FOLDER_PERMISSIONS,
620
633
  STORAGE_CONFIG: STORAGE_CONFIG_PERMISSIONS,
634
+ UPLOAD_CONFIG: UPLOAD_CONFIG_PERMISSIONS,
621
635
  // Email
622
636
  EMAIL_CONFIG: EMAIL_CONFIG_PERMISSIONS,
623
637
  EMAIL_TEMPLATE: EMAIL_TEMPLATE_PERMISSIONS,
@@ -656,6 +670,7 @@ __webpack_require__.d(__webpack_exports__, {
656
670
  G0: ENTITY_BUILDER_ALL_DYNAMIC,
657
671
  GH: dynamicEntityPermissionParent,
658
672
  GT: FORM_RESULT_PERMISSIONS,
673
+ IX: CROSS_COMPANY_PERMISSIONS,
659
674
  Jj: PERMISSIONS,
660
675
  N3: TRANSLATION_KEY_PERMISSIONS,
661
676
  ON: TASK_LIST_PERMISSIONS,
@@ -689,7 +704,7 @@ __webpack_require__.d(__webpack_exports__, {
689
704
 
690
705
 
691
706
  },
692
- 591(__unused_rspack_module, __webpack_exports__, __webpack_require__) {
707
+ 8244(__unused_rspack_module, __webpack_exports__, __webpack_require__) {
693
708
 
694
709
  // EXPORTS
695
710
  __webpack_require__.d(__webpack_exports__, {
@@ -703,17 +718,17 @@ __webpack_require__.d(__webpack_exports__, {
703
718
  });
704
719
 
705
720
  // EXTERNAL MODULE: external "@flusys/nestjs-core/config"
706
- var config_ = __webpack_require__(307);
721
+ var config_ = __webpack_require__(8307);
707
722
  // EXTERNAL MODULE: external "@nestjs/common"
708
- var common_ = __webpack_require__(157);
723
+ var common_ = __webpack_require__(6157);
709
724
  ;// CONCATENATED MODULE: external "async_hooks"
710
725
 
711
- ;// CONCATENATED MODULE: external "node:crypto"
712
-
726
+ // EXTERNAL MODULE: external "node:crypto"
727
+ var external_node_crypto_ = __webpack_require__(2561);
713
728
  // EXTERNAL MODULE: ./projects/nestjs-shared/src/classes/winston.logger.class.ts + 5 modules
714
- var winston_logger_class = __webpack_require__(245);
729
+ var winston_logger_class = __webpack_require__(6245);
715
730
  // EXTERNAL MODULE: ./projects/nestjs-shared/src/constants/index.ts
716
- var constants = __webpack_require__(43);
731
+ var constants = __webpack_require__(6043);
717
732
  ;// CONCATENATED MODULE: ./projects/nestjs-shared/src/middlewares/logger.middleware.ts
718
733
  function _ts_decorate(decorators, target, key, desc) {
719
734
  var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
@@ -830,8 +845,9 @@ function getClientIp(req) {
830
845
  class LoggerMiddleware {
831
846
  logger = winston_logger_class/* .instance */.K;
832
847
  use(req, res, next) {
833
- const requestId = req.headers[constants/* .REQUEST_ID_HEADER */.kC] || (0,__rspack_external_node_crypto_2e7c4b46.randomUUID)();
834
- const tenantId = req.headers[TENANT_ID_HEADER];
848
+ const requestId = req.headers[constants/* .REQUEST_ID_HEADER */.kC] || (0,external_node_crypto_.randomUUID)();
849
+ const tenantHeader = req.headers[TENANT_ID_HEADER];
850
+ const tenantId = typeof tenantHeader === 'string' && constants/* .TENANT_ID_PATTERN.test */.uD.test(tenantHeader) ? tenantHeader : undefined;
835
851
  const startTime = Date.now();
836
852
  res.setHeader(constants/* .REQUEST_ID_HEADER */.kC, requestId);
837
853
  const context = {
@@ -950,17 +966,23 @@ LoggerMiddleware = _ts_decorate([
950
966
 
951
967
 
952
968
  },
953
- 307(module) {
969
+ 8307(module) {
954
970
 
955
971
  module.exports = __rspack_external__flusys_nestjs_core_config_197fa0a9;
956
972
 
957
973
 
958
974
  },
959
- 157(module) {
975
+ 6157(module) {
960
976
 
961
977
  module.exports = __rspack_external__nestjs_common_a04939da;
962
978
 
963
979
 
980
+ },
981
+ 2561(module) {
982
+
983
+ module.exports = __rspack_external_node_crypto_2e7c4b46;
984
+
985
+
964
986
  },
965
987
 
966
988
  };
@@ -1,12 +1,12 @@
1
1
  export const __rspack_esm_id = 123;
2
2
  export const __rspack_esm_ids = [123];
3
3
  export const __webpack_modules__ = {
4
- 46(__unused_rspack_module, __webpack_exports__, __webpack_require__) {
5
- /* import */ var _nestjs_common__rspack_import_0 = __webpack_require__(157);
6
- /* import */ var _constants_index_js__rspack_import_1 = __webpack_require__(43);
7
- /* import */ var _utils_event_pattern_util_js__rspack_import_4 = __webpack_require__(456);
8
- /* import */ var _utils_optional_module_util_js__rspack_import_3 = __webpack_require__(368);
9
- /* import */ var _event_transport_registry_js__rspack_import_2 = __webpack_require__(149);
4
+ 2046(__unused_rspack_module, __webpack_exports__, __webpack_require__) {
5
+ /* import */ var _nestjs_common__rspack_import_0 = __webpack_require__(6157);
6
+ /* import */ var _constants_index_js__rspack_import_1 = __webpack_require__(6043);
7
+ /* import */ var _utils_event_pattern_util_js__rspack_import_4 = __webpack_require__(8456);
8
+ /* import */ var _utils_optional_module_util_js__rspack_import_3 = __webpack_require__(8368);
9
+ /* import */ var _event_transport_registry_js__rspack_import_2 = __webpack_require__(7149);
10
10
  /**
11
11
  * Optional RabbitMQ event transport
12
12
  * Requires: npm install amqplib
@@ -118,13 +118,21 @@ class RabbitMqTransport {
118
118
  try {
119
119
  await channel.consume(this.queue, async (message)=>{
120
120
  if (!message) return;
121
+ let handled = false;
121
122
  try {
122
123
  const event = JSON.parse(message.content.toString());
123
124
  await Promise.all(this.handlers.map((handler)=>handler(event)));
124
- channel.ack(message);
125
+ handled = true;
125
126
  } catch (error) {
126
127
  this.logger.error(error instanceof Error ? error.message : 'Failed to handle event');
127
- channel.nack(message, false, false);
128
+ }
129
+ // The channel may have closed while the handlers ran; settling on it then throws, and an
130
+ // error escaping this callback is an unhandled rejection that takes the process down.
131
+ try {
132
+ if (handled) channel.ack(message);
133
+ else channel.nack(message, false, false);
134
+ } catch (error) {
135
+ this.logger.warn(`Could not settle delivery: ${error instanceof Error ? error.message : 'channel closed'}`);
128
136
  }
129
137
  });
130
138
  } catch (error) {
@@ -169,7 +177,7 @@ __webpack_require__.d(__webpack_exports__, {
169
177
 
170
178
 
171
179
  },
172
- 368(__unused_rspack_module, __webpack_exports__, __webpack_require__) {
180
+ 8368(__unused_rspack_module, __webpack_exports__, __webpack_require__) {
173
181
  /**
174
182
  * Loads an optional peer dependency at runtime.
175
183
  *
package/fesm/chunks/37.js CHANGED
@@ -2,10 +2,10 @@ export const __rspack_esm_id = 37;
2
2
  export const __rspack_esm_ids = [37];
3
3
  export const __webpack_modules__ = {
4
4
  20(__unused_rspack_module, __webpack_exports__, __webpack_require__) {
5
- /* import */ var _nestjs_common__rspack_import_0 = __webpack_require__(157);
6
- /* import */ var _constants_index_js__rspack_import_1 = __webpack_require__(43);
7
- /* import */ var _utils_optional_module_util_js__rspack_import_3 = __webpack_require__(368);
8
- /* import */ var _event_transport_registry_js__rspack_import_2 = __webpack_require__(149);
5
+ /* import */ var _nestjs_common__rspack_import_0 = __webpack_require__(6157);
6
+ /* import */ var _constants_index_js__rspack_import_1 = __webpack_require__(6043);
7
+ /* import */ var _utils_optional_module_util_js__rspack_import_3 = __webpack_require__(8368);
8
+ /* import */ var _event_transport_registry_js__rspack_import_2 = __webpack_require__(7149);
9
9
  /**
10
10
  * Optional Kafka event transport
11
11
  * Requires: npm install kafkajs
@@ -139,7 +139,7 @@ __webpack_require__.d(__webpack_exports__, {
139
139
 
140
140
 
141
141
  },
142
- 368(__unused_rspack_module, __webpack_exports__, __webpack_require__) {
142
+ 8368(__unused_rspack_module, __webpack_exports__, __webpack_require__) {
143
143
  /**
144
144
  * Loads an optional peer dependency at runtime.
145
145
  *
@@ -3,7 +3,7 @@ export const __rspack_esm_ids = [29];
3
3
  export const __webpack_modules__ = {};
4
4
  import { __webpack_require__ } from '../runtime.js';
5
5
  var __webpack_exec__ = function(moduleId) { return __webpack_require__(__webpack_require__.s = moduleId); }
6
- import * as __rspack_chunk_1 from '../948.js';
6
+ import * as __rspack_chunk_1 from '../997.js';
7
7
  __webpack_require__.C(__rspack_chunk_1);
8
8
  import * as __rspack_chunk_2 from '../183.js';
9
9
  __webpack_require__.C(__rspack_chunk_2);
@@ -13,12 +13,13 @@ import * as __rspack_chunk_4 from '../470.js';
13
13
  __webpack_require__.C(__rspack_chunk_4);
14
14
  import * as __rspack_chunk_5 from './index.js';
15
15
  __webpack_require__.C(__rspack_chunk_5);
16
- var __webpack_exports__ = __webpack_exec__(405);var __webpack_exports__ACTION_PERMISSIONS = __webpack_exports__.Y7;
16
+ var __webpack_exports__ = __webpack_exec__(9405);var __webpack_exports__ACTION_PERMISSIONS = __webpack_exports__.Y7;
17
17
  var __webpack_exports__AI_ASSISTANT_PERMISSIONS = __webpack_exports__.Bz;
18
18
  var __webpack_exports__ApiService = __webpack_exports__.Gf;
19
19
  var __webpack_exports__BRANCH_PERMISSIONS = __webpack_exports__.wA;
20
20
  var __webpack_exports__COMPANY_ACTION_PERMISSIONS = __webpack_exports__.aO;
21
21
  var __webpack_exports__COMPANY_PERMISSIONS = __webpack_exports__.t$;
22
+ var __webpack_exports__CROSS_COMPANY_PERMISSIONS = __webpack_exports__.IX;
22
23
  var __webpack_exports__DOMAIN_EVENT_VERSION = __webpack_exports__.xC;
23
24
  var __webpack_exports__DisabledEventBus = __webpack_exports__.XI;
24
25
  var __webpack_exports__EMAIL_CONFIG_PERMISSIONS = __webpack_exports__.V0;
@@ -65,4 +66,4 @@ var __webpack_exports__getCastIntType = __webpack_exports__.Tj;
65
66
  var __webpack_exports__getJsonColumnType = __webpack_exports__.pf;
66
67
  var __webpack_exports__instance = __webpack_exports__.KJ;
67
68
  var __webpack_exports__publishDomainEvent = __webpack_exports__.wT;
68
- export { __webpack_exports__ACTION_PERMISSIONS as ACTION_PERMISSIONS, __webpack_exports__AI_ASSISTANT_PERMISSIONS as AI_ASSISTANT_PERMISSIONS, __webpack_exports__ApiService as ApiService, __webpack_exports__BRANCH_PERMISSIONS as BRANCH_PERMISSIONS, __webpack_exports__COMPANY_ACTION_PERMISSIONS as COMPANY_ACTION_PERMISSIONS, __webpack_exports__COMPANY_PERMISSIONS as COMPANY_PERMISSIONS, __webpack_exports__DOMAIN_EVENT_VERSION as DOMAIN_EVENT_VERSION, __webpack_exports__DisabledEventBus as DisabledEventBus, __webpack_exports__EMAIL_CONFIG_PERMISSIONS as EMAIL_CONFIG_PERMISSIONS, __webpack_exports__EMAIL_TEMPLATE_PERMISSIONS as EMAIL_TEMPLATE_PERMISSIONS, __webpack_exports__ENTITY_BUILDER_ALL_DYNAMIC as ENTITY_BUILDER_ALL_DYNAMIC, __webpack_exports__ENTITY_DEFINITION_PERMISSIONS as ENTITY_DEFINITION_PERMISSIONS, __webpack_exports__EVENT_PERMISSIONS as EVENT_PERMISSIONS, __webpack_exports__EventBusRegistry as EventBusRegistry, __webpack_exports__EventTransportRegistry as EventTransportRegistry, __webpack_exports__FIELD_DEFINITION_PERMISSIONS as FIELD_DEFINITION_PERMISSIONS, __webpack_exports__FILE_PERMISSIONS as FILE_PERMISSIONS, __webpack_exports__FLOW_DEFINITION_PERMISSIONS as FLOW_DEFINITION_PERMISSIONS, __webpack_exports__FOLDER_PERMISSIONS as FOLDER_PERMISSIONS, __webpack_exports__FORM_PERMISSIONS as FORM_PERMISSIONS, __webpack_exports__FORM_RESULT_PERMISSIONS as FORM_RESULT_PERMISSIONS, __webpack_exports__HybridCache as HybridCache, __webpack_exports__HybridEventBus as HybridEventBus, __webpack_exports__LANGUAGE_PERMISSIONS as LANGUAGE_PERMISSIONS, __webpack_exports__MemoryTransport as MemoryTransport, __webpack_exports__NOTIFICATION_PERMISSIONS as NOTIFICATION_PERMISSIONS, __webpack_exports__PERMISSIONS as PERMISSIONS, __webpack_exports__ROLE_ACTION_PERMISSIONS as ROLE_ACTION_PERMISSIONS, __webpack_exports__ROLE_PERMISSIONS as ROLE_PERMISSIONS, __webpack_exports__SOCIAL_AUTH_CONFIG_PERMISSIONS as SOCIAL_AUTH_CONFIG_PERMISSIONS, __webpack_exports__STORAGE_CONFIG_PERMISSIONS as STORAGE_CONFIG_PERMISSIONS, __webpack_exports__TASK_BOARD_PERMISSIONS as TASK_BOARD_PERMISSIONS, __webpack_exports__TASK_COMMENT_PERMISSIONS as TASK_COMMENT_PERMISSIONS, __webpack_exports__TASK_LABEL_PERMISSIONS as TASK_LABEL_PERMISSIONS, __webpack_exports__TASK_LIST_PERMISSIONS as TASK_LIST_PERMISSIONS, __webpack_exports__TASK_PERMISSIONS as TASK_PERMISSIONS, __webpack_exports__TRANSLATION_KEY_PERMISSIONS as TRANSLATION_KEY_PERMISSIONS, __webpack_exports__TRANSLATION_PERMISSIONS as TRANSLATION_PERMISSIONS, __webpack_exports__UPLOAD_CONFIG_PERMISSIONS as UPLOAD_CONFIG_PERMISSIONS, __webpack_exports__USER_ACTION_PERMISSIONS as USER_ACTION_PERMISSIONS, __webpack_exports__USER_PERMISSIONS as USER_PERMISSIONS, __webpack_exports__USER_ROLE_PERMISSIONS as USER_ROLE_PERMISSIONS, __webpack_exports__buildDomainEvent as buildDomainEvent, __webpack_exports__buildQuery as buildQuery, __webpack_exports__createApiController as createApiController, __webpack_exports__createModuleLogger as createModuleLogger, __webpack_exports__dynamicEntityPermission as dynamicEntityPermission, __webpack_exports__dynamicEntityPermissionParent as dynamicEntityPermissionParent, __webpack_exports__getCastIntType as getCastIntType, __webpack_exports__getJsonColumnType as getJsonColumnType, __webpack_exports__instance as instance, __webpack_exports__publishDomainEvent as publishDomainEvent };
69
+ export { __webpack_exports__ACTION_PERMISSIONS as ACTION_PERMISSIONS, __webpack_exports__AI_ASSISTANT_PERMISSIONS as AI_ASSISTANT_PERMISSIONS, __webpack_exports__ApiService as ApiService, __webpack_exports__BRANCH_PERMISSIONS as BRANCH_PERMISSIONS, __webpack_exports__COMPANY_ACTION_PERMISSIONS as COMPANY_ACTION_PERMISSIONS, __webpack_exports__COMPANY_PERMISSIONS as COMPANY_PERMISSIONS, __webpack_exports__CROSS_COMPANY_PERMISSIONS as CROSS_COMPANY_PERMISSIONS, __webpack_exports__DOMAIN_EVENT_VERSION as DOMAIN_EVENT_VERSION, __webpack_exports__DisabledEventBus as DisabledEventBus, __webpack_exports__EMAIL_CONFIG_PERMISSIONS as EMAIL_CONFIG_PERMISSIONS, __webpack_exports__EMAIL_TEMPLATE_PERMISSIONS as EMAIL_TEMPLATE_PERMISSIONS, __webpack_exports__ENTITY_BUILDER_ALL_DYNAMIC as ENTITY_BUILDER_ALL_DYNAMIC, __webpack_exports__ENTITY_DEFINITION_PERMISSIONS as ENTITY_DEFINITION_PERMISSIONS, __webpack_exports__EVENT_PERMISSIONS as EVENT_PERMISSIONS, __webpack_exports__EventBusRegistry as EventBusRegistry, __webpack_exports__EventTransportRegistry as EventTransportRegistry, __webpack_exports__FIELD_DEFINITION_PERMISSIONS as FIELD_DEFINITION_PERMISSIONS, __webpack_exports__FILE_PERMISSIONS as FILE_PERMISSIONS, __webpack_exports__FLOW_DEFINITION_PERMISSIONS as FLOW_DEFINITION_PERMISSIONS, __webpack_exports__FOLDER_PERMISSIONS as FOLDER_PERMISSIONS, __webpack_exports__FORM_PERMISSIONS as FORM_PERMISSIONS, __webpack_exports__FORM_RESULT_PERMISSIONS as FORM_RESULT_PERMISSIONS, __webpack_exports__HybridCache as HybridCache, __webpack_exports__HybridEventBus as HybridEventBus, __webpack_exports__LANGUAGE_PERMISSIONS as LANGUAGE_PERMISSIONS, __webpack_exports__MemoryTransport as MemoryTransport, __webpack_exports__NOTIFICATION_PERMISSIONS as NOTIFICATION_PERMISSIONS, __webpack_exports__PERMISSIONS as PERMISSIONS, __webpack_exports__ROLE_ACTION_PERMISSIONS as ROLE_ACTION_PERMISSIONS, __webpack_exports__ROLE_PERMISSIONS as ROLE_PERMISSIONS, __webpack_exports__SOCIAL_AUTH_CONFIG_PERMISSIONS as SOCIAL_AUTH_CONFIG_PERMISSIONS, __webpack_exports__STORAGE_CONFIG_PERMISSIONS as STORAGE_CONFIG_PERMISSIONS, __webpack_exports__TASK_BOARD_PERMISSIONS as TASK_BOARD_PERMISSIONS, __webpack_exports__TASK_COMMENT_PERMISSIONS as TASK_COMMENT_PERMISSIONS, __webpack_exports__TASK_LABEL_PERMISSIONS as TASK_LABEL_PERMISSIONS, __webpack_exports__TASK_LIST_PERMISSIONS as TASK_LIST_PERMISSIONS, __webpack_exports__TASK_PERMISSIONS as TASK_PERMISSIONS, __webpack_exports__TRANSLATION_KEY_PERMISSIONS as TRANSLATION_KEY_PERMISSIONS, __webpack_exports__TRANSLATION_PERMISSIONS as TRANSLATION_PERMISSIONS, __webpack_exports__UPLOAD_CONFIG_PERMISSIONS as UPLOAD_CONFIG_PERMISSIONS, __webpack_exports__USER_ACTION_PERMISSIONS as USER_ACTION_PERMISSIONS, __webpack_exports__USER_PERMISSIONS as USER_PERMISSIONS, __webpack_exports__USER_ROLE_PERMISSIONS as USER_ROLE_PERMISSIONS, __webpack_exports__buildDomainEvent as buildDomainEvent, __webpack_exports__buildQuery as buildQuery, __webpack_exports__createApiController as createApiController, __webpack_exports__createModuleLogger as createModuleLogger, __webpack_exports__dynamicEntityPermission as dynamicEntityPermission, __webpack_exports__dynamicEntityPermissionParent as dynamicEntityPermissionParent, __webpack_exports__getCastIntType as getCastIntType, __webpack_exports__getJsonColumnType as getJsonColumnType, __webpack_exports__instance as instance, __webpack_exports__publishDomainEvent as publishDomainEvent };
@@ -1,9 +1,9 @@
1
1
  export const __rspack_esm_id = 268;
2
2
  export const __rspack_esm_ids = [268];
3
3
  export const __webpack_modules__ = {
4
- 43(__unused_rspack_module, __webpack_exports__, __webpack_require__) {
5
- /* import */ var _permissions_js__rspack_import_0 = __webpack_require__(975);
6
- /* import */ var _message_keys_js__rspack_import_1 = __webpack_require__(389);
4
+ 6043(__unused_rspack_module, __webpack_exports__, __webpack_require__) {
5
+ /* import */ var _permissions_js__rspack_import_0 = __webpack_require__(8975);
6
+ /* import */ var _message_keys_js__rspack_import_1 = __webpack_require__(4389);
7
7
  // Metadata keys
8
8
  const IS_PUBLIC_KEY = 'isPublic';
9
9
  const PERMISSIONS_KEY = 'permissions';
@@ -17,6 +17,7 @@ const EVENT_BUS_MODULE_OPTIONS = 'EVENT_BUS_MODULE_OPTIONS';
17
17
  const IDEMPOTENCY_KEY_HEADER = 'x-idempotency-key';
18
18
  const REQUEST_ID_HEADER = 'x-request-id';
19
19
  const CLIENT_TYPE_HEADER = 'x-client-type';
20
+ /** A tenant id names a database and a log folder, so it is limited to these characters. */ const TENANT_ID_PATTERN = /^[a-zA-Z0-9_-]{1,64}$/;
20
21
  // Cache key prefixes
21
22
  const PERMISSIONS_CACHE_PREFIX = 'my-permissions';
22
23
  const IDEMPOTENCY_CACHE_PREFIX = 'idempotency';
@@ -37,6 +38,7 @@ __webpack_require__.d(__webpack_exports__, {
37
38
  G0: () => (/* reexport safe */ _permissions_js__rspack_import_0.G0),
38
39
  GH: () => (/* reexport safe */ _permissions_js__rspack_import_0.GH),
39
40
  GT: () => (/* reexport safe */ _permissions_js__rspack_import_0.GT),
41
+ IX: () => (/* reexport safe */ _permissions_js__rspack_import_0.IX),
40
42
  Jj: () => (/* reexport safe */ _permissions_js__rspack_import_0.Jj),
41
43
  N3: () => (/* reexport safe */ _permissions_js__rspack_import_0.N3),
42
44
  ON: () => (/* reexport safe */ _permissions_js__rspack_import_0.ON),
@@ -82,13 +84,14 @@ __webpack_require__.d(__webpack_exports__, {
82
84
  kC: REQUEST_ID_HEADER,
83
85
  mg: IDEMPOTENCY_CACHE_PREFIX,
84
86
  nx: DEFAULT_EVENT_TOPIC,
87
+ uD: TENANT_ID_PATTERN,
85
88
  xw: CLIENT_TYPE_HEADER,
86
89
  zl: CACHE_INSTANCE
87
90
  });
88
91
 
89
92
 
90
93
  },
91
- 389(__unused_rspack_module, __webpack_exports__, __webpack_require__) {
94
+ 4389(__unused_rspack_module, __webpack_exports__, __webpack_require__) {
92
95
  // ==================== AUTH (Shared across guards/interceptors) ====================
93
96
  // These are duplicated in nestjs-auth but needed here to avoid circular dependencies
94
97
  const AUTH_MESSAGES = {
@@ -148,7 +151,7 @@ __webpack_require__.d(__webpack_exports__, {
148
151
 
149
152
 
150
153
  },
151
- 975(__unused_rspack_module, __webpack_exports__, __webpack_require__) {
154
+ 8975(__unused_rspack_module, __webpack_exports__, __webpack_require__) {
152
155
  // ==================== AUTH MODULE ====================
153
156
  const USER_PERMISSIONS = {
154
157
  CREATE: 'user.create',
@@ -204,6 +207,9 @@ const COMPANY_ACTION_PERMISSIONS = {
204
207
  READ: 'company-action.read',
205
208
  ASSIGN: 'company-action.assign'
206
209
  };
210
+ /** Lets an actor assign user roles/actions in a company other than their session company (e.g. onboarding). Never satisfied by a wildcard. */ const CROSS_COMPANY_PERMISSIONS = {
211
+ ASSIGN: 'cross-company.assign'
212
+ };
207
213
  // ==================== STORAGE MODULE ====================
208
214
  const FILE_PERMISSIONS = {
209
215
  CREATE: 'file.create',
@@ -365,10 +371,12 @@ const PERMISSIONS = {
365
371
  USER_ROLE: USER_ROLE_PERMISSIONS,
366
372
  USER_ACTION: USER_ACTION_PERMISSIONS,
367
373
  COMPANY_ACTION: COMPANY_ACTION_PERMISSIONS,
374
+ CROSS_COMPANY: CROSS_COMPANY_PERMISSIONS,
368
375
  // Storage
369
376
  FILE: FILE_PERMISSIONS,
370
377
  FOLDER: FOLDER_PERMISSIONS,
371
378
  STORAGE_CONFIG: STORAGE_CONFIG_PERMISSIONS,
379
+ UPLOAD_CONFIG: UPLOAD_CONFIG_PERMISSIONS,
372
380
  // Email
373
381
  EMAIL_CONFIG: EMAIL_CONFIG_PERMISSIONS,
374
382
  EMAIL_TEMPLATE: EMAIL_TEMPLATE_PERMISSIONS,
@@ -407,6 +415,7 @@ __webpack_require__.d(__webpack_exports__, {
407
415
  G0: ENTITY_BUILDER_ALL_DYNAMIC,
408
416
  GH: dynamicEntityPermissionParent,
409
417
  GT: FORM_RESULT_PERMISSIONS,
418
+ IX: CROSS_COMPANY_PERMISSIONS,
410
419
  Jj: PERMISSIONS,
411
420
  N3: TRANSLATION_KEY_PERMISSIONS,
412
421
  ON: TASK_LIST_PERMISSIONS,
@@ -446,7 +455,7 @@ import { __webpack_require__ } from '../runtime.js';
446
455
  var __webpack_exec__ = function(moduleId) { return __webpack_require__(__webpack_require__.s = moduleId); }
447
456
  import * as __rspack_chunk_1 from './index.js';
448
457
  __webpack_require__.C(__rspack_chunk_1);
449
- var __webpack_exports__ = __webpack_exec__(43);var __webpack_exports__ACTION_PERMISSIONS = __webpack_exports__.Y7;
458
+ var __webpack_exports__ = __webpack_exec__(6043);var __webpack_exports__ACTION_PERMISSIONS = __webpack_exports__.Y7;
450
459
  var __webpack_exports__AI_ASSISTANT_PERMISSIONS = __webpack_exports__.Bz;
451
460
  var __webpack_exports__AUTH_MESSAGES = __webpack_exports__.mK;
452
461
  var __webpack_exports__BRANCH_PERMISSIONS = __webpack_exports__.wA;
@@ -454,6 +463,7 @@ var __webpack_exports__CACHE_INSTANCE = __webpack_exports__.zl;
454
463
  var __webpack_exports__CLIENT_TYPE_HEADER = __webpack_exports__.xw;
455
464
  var __webpack_exports__COMPANY_ACTION_PERMISSIONS = __webpack_exports__.aO;
456
465
  var __webpack_exports__COMPANY_PERMISSIONS = __webpack_exports__.t$;
466
+ var __webpack_exports__CROSS_COMPANY_PERMISSIONS = __webpack_exports__.IX;
457
467
  var __webpack_exports__DEFAULT_EVENT_EXCHANGE = __webpack_exports__.Hq;
458
468
  var __webpack_exports__DEFAULT_EVENT_SERVICE_NAME = ("flusys");
459
469
  var __webpack_exports__DEFAULT_EVENT_TOPIC = __webpack_exports__.nx;
@@ -492,6 +502,7 @@ var __webpack_exports__TASK_COMMENT_PERMISSIONS = __webpack_exports__.zd;
492
502
  var __webpack_exports__TASK_LABEL_PERMISSIONS = __webpack_exports__.UG;
493
503
  var __webpack_exports__TASK_LIST_PERMISSIONS = __webpack_exports__.ON;
494
504
  var __webpack_exports__TASK_PERMISSIONS = __webpack_exports__.T;
505
+ var __webpack_exports__TENANT_ID_PATTERN = __webpack_exports__.uD;
495
506
  var __webpack_exports__TRANSLATION_KEY_PERMISSIONS = __webpack_exports__.N3;
496
507
  var __webpack_exports__TRANSLATION_PERMISSIONS = __webpack_exports__.fS;
497
508
  var __webpack_exports__UPLOAD_CONFIG_PERMISSIONS = __webpack_exports__.UB;
@@ -500,4 +511,4 @@ var __webpack_exports__USER_PERMISSIONS = __webpack_exports__.BC;
500
511
  var __webpack_exports__USER_ROLE_PERMISSIONS = __webpack_exports__.w7;
501
512
  var __webpack_exports__dynamicEntityPermission = __webpack_exports__.aT;
502
513
  var __webpack_exports__dynamicEntityPermissionParent = __webpack_exports__.GH;
503
- export { __webpack_exports__ACTION_PERMISSIONS as ACTION_PERMISSIONS, __webpack_exports__AI_ASSISTANT_PERMISSIONS as AI_ASSISTANT_PERMISSIONS, __webpack_exports__AUTH_MESSAGES as AUTH_MESSAGES, __webpack_exports__BRANCH_PERMISSIONS as BRANCH_PERMISSIONS, __webpack_exports__CACHE_INSTANCE as CACHE_INSTANCE, __webpack_exports__CLIENT_TYPE_HEADER as CLIENT_TYPE_HEADER, __webpack_exports__COMPANY_ACTION_PERMISSIONS as COMPANY_ACTION_PERMISSIONS, __webpack_exports__COMPANY_PERMISSIONS as COMPANY_PERMISSIONS, __webpack_exports__DEFAULT_EVENT_EXCHANGE as DEFAULT_EVENT_EXCHANGE, __webpack_exports__DEFAULT_EVENT_SERVICE_NAME as DEFAULT_EVENT_SERVICE_NAME, __webpack_exports__DEFAULT_EVENT_TOPIC as DEFAULT_EVENT_TOPIC, __webpack_exports__DOMAIN_EVENT_HANDLER_KEY as DOMAIN_EVENT_HANDLER_KEY, __webpack_exports__EMAIL_CONFIG_PERMISSIONS as EMAIL_CONFIG_PERMISSIONS, __webpack_exports__EMAIL_TEMPLATE_PERMISSIONS as EMAIL_TEMPLATE_PERMISSIONS, __webpack_exports__ENTITY_BUILDER_ALL_DYNAMIC as ENTITY_BUILDER_ALL_DYNAMIC, __webpack_exports__ENTITY_DEFINITION_PERMISSIONS as ENTITY_DEFINITION_PERMISSIONS, __webpack_exports__ERROR_MESSAGES as ERROR_MESSAGES, __webpack_exports__EVENT_BUS_INSTANCE as EVENT_BUS_INSTANCE, __webpack_exports__EVENT_BUS_MODULE_OPTIONS as EVENT_BUS_MODULE_OPTIONS, __webpack_exports__EVENT_PERMISSIONS as EVENT_PERMISSIONS, __webpack_exports__FIELD_DEFINITION_PERMISSIONS as FIELD_DEFINITION_PERMISSIONS, __webpack_exports__FILE_PERMISSIONS as FILE_PERMISSIONS, __webpack_exports__FLOW_DEFINITION_PERMISSIONS as FLOW_DEFINITION_PERMISSIONS, __webpack_exports__FOLDER_PERMISSIONS as FOLDER_PERMISSIONS, __webpack_exports__FORM_PERMISSIONS as FORM_PERMISSIONS, __webpack_exports__FORM_RESULT_PERMISSIONS as FORM_RESULT_PERMISSIONS, __webpack_exports__IDEMPOTENCY_CACHE_PREFIX as IDEMPOTENCY_CACHE_PREFIX, __webpack_exports__IDEMPOTENCY_KEY_HEADER as IDEMPOTENCY_KEY_HEADER, __webpack_exports__IS_PUBLIC_KEY as IS_PUBLIC_KEY, __webpack_exports__LANGUAGE_PERMISSIONS as LANGUAGE_PERMISSIONS, __webpack_exports__NOTIFICATION_PERMISSIONS as NOTIFICATION_PERMISSIONS, __webpack_exports__PERMISSIONS as PERMISSIONS, __webpack_exports__PERMISSIONS_CACHE_PREFIX as PERMISSIONS_CACHE_PREFIX, __webpack_exports__PERMISSIONS_KEY as PERMISSIONS_KEY, __webpack_exports__PERMISSION_GUARD_CONFIG as PERMISSION_GUARD_CONFIG, __webpack_exports__REQUEST_ID_HEADER as REQUEST_ID_HEADER, __webpack_exports__ROLE_ACTION_PERMISSIONS as ROLE_ACTION_PERMISSIONS, __webpack_exports__ROLE_PERMISSIONS as ROLE_PERMISSIONS, __webpack_exports__SOCIAL_AUTH_CONFIG_PERMISSIONS as SOCIAL_AUTH_CONFIG_PERMISSIONS, __webpack_exports__STORAGE_CONFIG_PERMISSIONS as STORAGE_CONFIG_PERMISSIONS, __webpack_exports__SYSTEM_MESSAGES as SYSTEM_MESSAGES, __webpack_exports__TASK_BOARD_PERMISSIONS as TASK_BOARD_PERMISSIONS, __webpack_exports__TASK_COMMENT_PERMISSIONS as TASK_COMMENT_PERMISSIONS, __webpack_exports__TASK_LABEL_PERMISSIONS as TASK_LABEL_PERMISSIONS, __webpack_exports__TASK_LIST_PERMISSIONS as TASK_LIST_PERMISSIONS, __webpack_exports__TASK_PERMISSIONS as TASK_PERMISSIONS, __webpack_exports__TRANSLATION_KEY_PERMISSIONS as TRANSLATION_KEY_PERMISSIONS, __webpack_exports__TRANSLATION_PERMISSIONS as TRANSLATION_PERMISSIONS, __webpack_exports__UPLOAD_CONFIG_PERMISSIONS as UPLOAD_CONFIG_PERMISSIONS, __webpack_exports__USER_ACTION_PERMISSIONS as USER_ACTION_PERMISSIONS, __webpack_exports__USER_PERMISSIONS as USER_PERMISSIONS, __webpack_exports__USER_ROLE_PERMISSIONS as USER_ROLE_PERMISSIONS, __webpack_exports__dynamicEntityPermission as dynamicEntityPermission, __webpack_exports__dynamicEntityPermissionParent as dynamicEntityPermissionParent };
514
+ export { __webpack_exports__ACTION_PERMISSIONS as ACTION_PERMISSIONS, __webpack_exports__AI_ASSISTANT_PERMISSIONS as AI_ASSISTANT_PERMISSIONS, __webpack_exports__AUTH_MESSAGES as AUTH_MESSAGES, __webpack_exports__BRANCH_PERMISSIONS as BRANCH_PERMISSIONS, __webpack_exports__CACHE_INSTANCE as CACHE_INSTANCE, __webpack_exports__CLIENT_TYPE_HEADER as CLIENT_TYPE_HEADER, __webpack_exports__COMPANY_ACTION_PERMISSIONS as COMPANY_ACTION_PERMISSIONS, __webpack_exports__COMPANY_PERMISSIONS as COMPANY_PERMISSIONS, __webpack_exports__CROSS_COMPANY_PERMISSIONS as CROSS_COMPANY_PERMISSIONS, __webpack_exports__DEFAULT_EVENT_EXCHANGE as DEFAULT_EVENT_EXCHANGE, __webpack_exports__DEFAULT_EVENT_SERVICE_NAME as DEFAULT_EVENT_SERVICE_NAME, __webpack_exports__DEFAULT_EVENT_TOPIC as DEFAULT_EVENT_TOPIC, __webpack_exports__DOMAIN_EVENT_HANDLER_KEY as DOMAIN_EVENT_HANDLER_KEY, __webpack_exports__EMAIL_CONFIG_PERMISSIONS as EMAIL_CONFIG_PERMISSIONS, __webpack_exports__EMAIL_TEMPLATE_PERMISSIONS as EMAIL_TEMPLATE_PERMISSIONS, __webpack_exports__ENTITY_BUILDER_ALL_DYNAMIC as ENTITY_BUILDER_ALL_DYNAMIC, __webpack_exports__ENTITY_DEFINITION_PERMISSIONS as ENTITY_DEFINITION_PERMISSIONS, __webpack_exports__ERROR_MESSAGES as ERROR_MESSAGES, __webpack_exports__EVENT_BUS_INSTANCE as EVENT_BUS_INSTANCE, __webpack_exports__EVENT_BUS_MODULE_OPTIONS as EVENT_BUS_MODULE_OPTIONS, __webpack_exports__EVENT_PERMISSIONS as EVENT_PERMISSIONS, __webpack_exports__FIELD_DEFINITION_PERMISSIONS as FIELD_DEFINITION_PERMISSIONS, __webpack_exports__FILE_PERMISSIONS as FILE_PERMISSIONS, __webpack_exports__FLOW_DEFINITION_PERMISSIONS as FLOW_DEFINITION_PERMISSIONS, __webpack_exports__FOLDER_PERMISSIONS as FOLDER_PERMISSIONS, __webpack_exports__FORM_PERMISSIONS as FORM_PERMISSIONS, __webpack_exports__FORM_RESULT_PERMISSIONS as FORM_RESULT_PERMISSIONS, __webpack_exports__IDEMPOTENCY_CACHE_PREFIX as IDEMPOTENCY_CACHE_PREFIX, __webpack_exports__IDEMPOTENCY_KEY_HEADER as IDEMPOTENCY_KEY_HEADER, __webpack_exports__IS_PUBLIC_KEY as IS_PUBLIC_KEY, __webpack_exports__LANGUAGE_PERMISSIONS as LANGUAGE_PERMISSIONS, __webpack_exports__NOTIFICATION_PERMISSIONS as NOTIFICATION_PERMISSIONS, __webpack_exports__PERMISSIONS as PERMISSIONS, __webpack_exports__PERMISSIONS_CACHE_PREFIX as PERMISSIONS_CACHE_PREFIX, __webpack_exports__PERMISSIONS_KEY as PERMISSIONS_KEY, __webpack_exports__PERMISSION_GUARD_CONFIG as PERMISSION_GUARD_CONFIG, __webpack_exports__REQUEST_ID_HEADER as REQUEST_ID_HEADER, __webpack_exports__ROLE_ACTION_PERMISSIONS as ROLE_ACTION_PERMISSIONS, __webpack_exports__ROLE_PERMISSIONS as ROLE_PERMISSIONS, __webpack_exports__SOCIAL_AUTH_CONFIG_PERMISSIONS as SOCIAL_AUTH_CONFIG_PERMISSIONS, __webpack_exports__STORAGE_CONFIG_PERMISSIONS as STORAGE_CONFIG_PERMISSIONS, __webpack_exports__SYSTEM_MESSAGES as SYSTEM_MESSAGES, __webpack_exports__TASK_BOARD_PERMISSIONS as TASK_BOARD_PERMISSIONS, __webpack_exports__TASK_COMMENT_PERMISSIONS as TASK_COMMENT_PERMISSIONS, __webpack_exports__TASK_LABEL_PERMISSIONS as TASK_LABEL_PERMISSIONS, __webpack_exports__TASK_LIST_PERMISSIONS as TASK_LIST_PERMISSIONS, __webpack_exports__TASK_PERMISSIONS as TASK_PERMISSIONS, __webpack_exports__TENANT_ID_PATTERN as TENANT_ID_PATTERN, __webpack_exports__TRANSLATION_KEY_PERMISSIONS as TRANSLATION_KEY_PERMISSIONS, __webpack_exports__TRANSLATION_PERMISSIONS as TRANSLATION_PERMISSIONS, __webpack_exports__UPLOAD_CONFIG_PERMISSIONS as UPLOAD_CONFIG_PERMISSIONS, __webpack_exports__USER_ACTION_PERMISSIONS as USER_ACTION_PERMISSIONS, __webpack_exports__USER_PERMISSIONS as USER_PERMISSIONS, __webpack_exports__USER_ROLE_PERMISSIONS as USER_ROLE_PERMISSIONS, __webpack_exports__dynamicEntityPermission as dynamicEntityPermission, __webpack_exports__dynamicEntityPermissionParent as dynamicEntityPermissionParent };