@flusys/nestjs-iam 7.1.0 → 8.0.0-beta.1

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 (173) hide show
  1. package/config/index.d.ts +3 -3
  2. package/controllers/action.controller.d.ts +4 -4
  3. package/controllers/company-action-permission.controller.d.ts +2 -2
  4. package/controllers/index.d.ts +6 -6
  5. package/controllers/my-permission.controller.d.ts +3 -3
  6. package/controllers/role-permission.controller.d.ts +4 -4
  7. package/controllers/role.controller.d.ts +2 -2
  8. package/controllers/user-action-permission.controller.d.ts +4 -4
  9. package/docs/iam-swagger.config.d.ts +2 -2
  10. package/docs/index.d.ts +1 -1
  11. package/dtos/action.dto.d.ts +2 -2
  12. package/dtos/index.d.ts +3 -3
  13. package/entities/action.entity.d.ts +2 -2
  14. package/entities/index.d.ts +11 -11
  15. package/entities/permission-with-company.entity.d.ts +1 -1
  16. package/entities/role-with-company.entity.d.ts +1 -1
  17. package/entities/role.entity.d.ts +1 -1
  18. package/entities/user-iam-permission.entity.d.ts +1 -1
  19. package/enums/index.d.ts +4 -4
  20. package/fesm/284.js +1262 -0
  21. package/fesm/867.js +3699 -0
  22. package/fesm/chunks/364.js +86 -0
  23. package/fesm/config/index.js +133 -3
  24. package/fesm/controllers/index.js +18 -7
  25. package/fesm/docs/index.js +240 -1
  26. package/fesm/dtos/index.js +1090 -3
  27. package/fesm/entities/index.js +670 -31
  28. package/fesm/enums/index.js +97 -4
  29. package/fesm/helpers/index.js +125 -2
  30. package/fesm/index.js +806 -11
  31. package/fesm/interfaces/index.js +17 -3
  32. package/fesm/modules/index.js +259 -1
  33. package/fesm/runtime.js +134 -0
  34. package/fesm/services/index.js +43 -6
  35. package/fesm/types/index.js +15 -1
  36. package/helpers/company-access.helper.d.ts +2 -2
  37. package/helpers/index.d.ts +2 -2
  38. package/helpers/permission-mode.helper.d.ts +1 -1
  39. package/index.d.ts +11 -11
  40. package/interfaces/action.interface.d.ts +2 -2
  41. package/interfaces/iam-module-options.interface.d.ts +3 -3
  42. package/interfaces/index.d.ts +3 -3
  43. package/modules/iam.module.d.ts +2 -2
  44. package/modules/index.d.ts +1 -1
  45. package/package.json +30 -37
  46. package/services/action.service.d.ts +9 -9
  47. package/services/iam-config.service.d.ts +4 -4
  48. package/services/iam-datasource.service.d.ts +3 -3
  49. package/services/index.d.ts +6 -6
  50. package/services/permission-cache.service.d.ts +5 -5
  51. package/services/permission.service.d.ts +4 -4
  52. package/services/role.service.d.ts +8 -8
  53. package/types/index.d.ts +1 -1
  54. package/cjs/config/event-actions.js +0 -36
  55. package/cjs/config/iam.constants.js +0 -11
  56. package/cjs/config/index.js +0 -20
  57. package/cjs/config/message-keys.js +0 -71
  58. package/cjs/controllers/action.controller.js +0 -174
  59. package/cjs/controllers/action.controller.spec.js +0 -79
  60. package/cjs/controllers/company-action-permission.controller.js +0 -119
  61. package/cjs/controllers/company-action-permission.controller.spec.js +0 -65
  62. package/cjs/controllers/index.js +0 -23
  63. package/cjs/controllers/my-permission.controller.js +0 -147
  64. package/cjs/controllers/my-permission.controller.spec.js +0 -128
  65. package/cjs/controllers/role-permission.controller.js +0 -191
  66. package/cjs/controllers/role-permission.controller.spec.js +0 -140
  67. package/cjs/controllers/role.controller.js +0 -102
  68. package/cjs/controllers/role.controller.spec.js +0 -86
  69. package/cjs/controllers/user-action-permission.controller.js +0 -129
  70. package/cjs/controllers/user-action-permission.controller.spec.js +0 -68
  71. package/cjs/docs/iam-swagger.config.js +0 -209
  72. package/cjs/docs/iam-swagger.config.spec.js +0 -99
  73. package/cjs/docs/index.js +0 -18
  74. package/cjs/dtos/action.dto.js +0 -282
  75. package/cjs/dtos/index.js +0 -21
  76. package/cjs/dtos/permission.dto.js +0 -637
  77. package/cjs/dtos/role.dto.js +0 -155
  78. package/cjs/entities/action.entity.js +0 -138
  79. package/cjs/entities/index.js +0 -80
  80. package/cjs/entities/index.spec.js +0 -56
  81. package/cjs/entities/permission-base.entity.js +0 -107
  82. package/cjs/entities/permission-with-company.entity.js +0 -100
  83. package/cjs/entities/role-base.entity.js +0 -80
  84. package/cjs/entities/role-with-company.entity.js +0 -55
  85. package/cjs/entities/role.entity.js +0 -25
  86. package/cjs/entities/user-iam-permission.entity.js +0 -43
  87. package/cjs/enums/action-type.enum.js +0 -22
  88. package/cjs/enums/iam-entity-type.enum.js +0 -17
  89. package/cjs/enums/iam-permission-type.enum.js +0 -17
  90. package/cjs/enums/index.js +0 -21
  91. package/cjs/enums/permission-type.enum.js +0 -16
  92. package/cjs/helpers/company-access.helper.js +0 -23
  93. package/cjs/helpers/company-access.helper.spec.js +0 -68
  94. package/cjs/helpers/index.js +0 -19
  95. package/cjs/helpers/permission-mode.helper.js +0 -49
  96. package/cjs/helpers/permission-mode.helper.spec.js +0 -54
  97. package/cjs/index.js +0 -28
  98. package/cjs/interfaces/action.interface.js +0 -4
  99. package/cjs/interfaces/iam-module-options.interface.js +0 -4
  100. package/cjs/interfaces/index.js +0 -20
  101. package/cjs/interfaces/role.interface.js +0 -7
  102. package/cjs/modules/iam.module.js +0 -186
  103. package/cjs/modules/iam.module.spec.js +0 -282
  104. package/cjs/modules/index.js +0 -18
  105. package/cjs/services/action.service.js +0 -337
  106. package/cjs/services/action.service.spec.js +0 -351
  107. package/cjs/services/iam-config.service.js +0 -87
  108. package/cjs/services/iam-config.service.spec.js +0 -110
  109. package/cjs/services/iam-datasource.service.js +0 -129
  110. package/cjs/services/iam-datasource.service.spec.js +0 -110
  111. package/cjs/services/index.js +0 -23
  112. package/cjs/services/permission-cache.service.js +0 -544
  113. package/cjs/services/permission-cache.service.spec.js +0 -718
  114. package/cjs/services/permission.service.js +0 -914
  115. package/cjs/services/permission.service.spec.js +0 -918
  116. package/cjs/services/role.service.js +0 -224
  117. package/cjs/services/role.service.spec.js +0 -347
  118. package/cjs/types/index.js +0 -18
  119. package/cjs/types/logic-node.type.js +0 -30
  120. package/fesm/config/event-actions.js +0 -15
  121. package/fesm/config/iam.constants.js +0 -1
  122. package/fesm/config/message-keys.js +0 -35
  123. package/fesm/controllers/action.controller.js +0 -164
  124. package/fesm/controllers/action.controller.spec.js +0 -75
  125. package/fesm/controllers/company-action-permission.controller.js +0 -109
  126. package/fesm/controllers/company-action-permission.controller.spec.js +0 -61
  127. package/fesm/controllers/my-permission.controller.js +0 -137
  128. package/fesm/controllers/my-permission.controller.spec.js +0 -124
  129. package/fesm/controllers/role-permission.controller.js +0 -181
  130. package/fesm/controllers/role-permission.controller.spec.js +0 -136
  131. package/fesm/controllers/role.controller.js +0 -92
  132. package/fesm/controllers/role.controller.spec.js +0 -82
  133. package/fesm/controllers/user-action-permission.controller.js +0 -119
  134. package/fesm/controllers/user-action-permission.controller.spec.js +0 -64
  135. package/fesm/docs/iam-swagger.config.js +0 -199
  136. package/fesm/docs/iam-swagger.config.spec.js +0 -95
  137. package/fesm/dtos/action.dto.js +0 -252
  138. package/fesm/dtos/permission.dto.js +0 -571
  139. package/fesm/dtos/role.dto.js +0 -134
  140. package/fesm/entities/action.entity.js +0 -128
  141. package/fesm/entities/index.spec.js +0 -52
  142. package/fesm/entities/permission-base.entity.js +0 -100
  143. package/fesm/entities/permission-with-company.entity.js +0 -90
  144. package/fesm/entities/role-base.entity.js +0 -70
  145. package/fesm/entities/role-with-company.entity.js +0 -45
  146. package/fesm/entities/role.entity.js +0 -15
  147. package/fesm/entities/user-iam-permission.entity.js +0 -33
  148. package/fesm/enums/action-type.enum.js +0 -12
  149. package/fesm/enums/iam-entity-type.enum.js +0 -7
  150. package/fesm/enums/iam-permission-type.enum.js +0 -7
  151. package/fesm/enums/permission-type.enum.js +0 -6
  152. package/fesm/helpers/company-access.helper.js +0 -18
  153. package/fesm/helpers/company-access.helper.spec.js +0 -64
  154. package/fesm/helpers/permission-mode.helper.js +0 -49
  155. package/fesm/helpers/permission-mode.helper.spec.js +0 -50
  156. package/fesm/interfaces/action.interface.js +0 -3
  157. package/fesm/interfaces/iam-module-options.interface.js +0 -3
  158. package/fesm/interfaces/role.interface.js +0 -4
  159. package/fesm/modules/iam.module.js +0 -176
  160. package/fesm/modules/iam.module.spec.js +0 -278
  161. package/fesm/services/action.service.js +0 -327
  162. package/fesm/services/action.service.spec.js +0 -347
  163. package/fesm/services/iam-config.service.js +0 -77
  164. package/fesm/services/iam-config.service.spec.js +0 -106
  165. package/fesm/services/iam-datasource.service.js +0 -78
  166. package/fesm/services/iam-datasource.service.spec.js +0 -106
  167. package/fesm/services/permission-cache.service.js +0 -527
  168. package/fesm/services/permission-cache.service.spec.js +0 -714
  169. package/fesm/services/permission.service.js +0 -904
  170. package/fesm/services/permission.service.spec.js +0 -914
  171. package/fesm/services/role.service.js +0 -214
  172. package/fesm/services/role.service.spec.js +0 -343
  173. package/fesm/types/logic-node.type.js +0 -27
package/fesm/index.js CHANGED
@@ -1,11 +1,806 @@
1
- export * from './config';
2
- export * from './controllers';
3
- export * from './docs';
4
- export * from './dtos';
5
- export * from './entities';
6
- export * from './enums';
7
- export * from './helpers';
8
- export * from './interfaces';
9
- export * from './modules';
10
- export * from './services';
11
- export * from './types';
1
+ export const __rspack_esm_id = 410;
2
+ export const __rspack_esm_ids = [410];
3
+ export const __webpack_modules__ = {
4
+ 434(__unused_rspack_module, __webpack_exports__, __webpack_require__) {
5
+ /* import */ var _event_actions_js__rspack_import_0 = __webpack_require__(916);
6
+ /* import */ var _iam_constants_js__rspack_import_1 = __webpack_require__(180);
7
+ /* import */ var _message_keys_js__rspack_import_2 = __webpack_require__(490);
8
+
9
+
10
+
11
+
12
+ __webpack_require__.d(__webpack_exports__, {
13
+ G7: () => (/* reexport safe */ _iam_constants_js__rspack_import_1.G),
14
+ GG: () => (/* reexport safe */ _message_keys_js__rspack_import_2.GG),
15
+ HP: () => (/* reexport safe */ _event_actions_js__rspack_import_0.H),
16
+ M_: () => (/* reexport safe */ (/* inlined export _event_actions_js__rspack_import_0 */"iam")),
17
+ P3: () => (/* reexport safe */ _message_keys_js__rspack_import_2.P3),
18
+ Q$: () => (/* reexport safe */ _message_keys_js__rspack_import_2.Q$),
19
+ QW: () => (/* reexport safe */ _message_keys_js__rspack_import_2.QW),
20
+ XV: () => (/* reexport safe */ _event_actions_js__rspack_import_0.X),
21
+ eh: () => (/* reexport safe */ _message_keys_js__rspack_import_2.eh),
22
+ k: () => (/* reexport safe */ _message_keys_js__rspack_import_2.k),
23
+ sb: () => (/* reexport safe */ _message_keys_js__rspack_import_2.sb),
24
+ xI: () => (/* reexport safe */ _message_keys_js__rspack_import_2.xI)
25
+ });
26
+
27
+
28
+ },
29
+ 438(__unused_rspack_module, __webpack_exports__, __webpack_require__) {
30
+
31
+ // EXPORTS
32
+ __webpack_require__.d(__webpack_exports__, {
33
+ s: () => (/* reexport */ iamSwaggerConfig)
34
+ });
35
+
36
+ // EXTERNAL MODULE: ./projects/nestjs-iam/src/enums/permission-type.enum.ts
37
+ var permission_type_enum = __webpack_require__(841);
38
+ ;// CONCATENATED MODULE: ./projects/nestjs-iam/src/docs/iam-swagger.config.ts
39
+
40
+ /** Auth-related tags that should always be excluded from IAM API docs */ const AUTH_RELATED_TAGS = [
41
+ 'Authentication',
42
+ 'Users',
43
+ 'Companies',
44
+ 'Branches',
45
+ 'User Permissions',
46
+ 'Company Selection'
47
+ ];
48
+ function iamSwaggerConfig(enableCompanyFeature = false, permissionMode = permission_type_enum/* .IAMPermissionMode.FULL */.w.FULL, databaseMode = 'single') {
49
+ const multiTenantNote = databaseMode === 'multi-tenant' ? `\n> **Multi-Tenant Mode**: Include \`x-tenant-id\` header to target a specific tenant database.\n` : '';
50
+ const excludeSchemaProperties = enableCompanyFeature ? [] : [
51
+ // DTOs with companyId and branchId
52
+ {
53
+ schemaName: 'AssignUserActionsDto',
54
+ properties: [
55
+ 'companyId',
56
+ 'branchId'
57
+ ]
58
+ },
59
+ {
60
+ schemaName: 'AssignUserRolesDto',
61
+ properties: [
62
+ 'companyId',
63
+ 'branchId'
64
+ ]
65
+ },
66
+ {
67
+ schemaName: 'GetUserActionsDto',
68
+ properties: [
69
+ 'companyId',
70
+ 'branchId'
71
+ ]
72
+ },
73
+ {
74
+ schemaName: 'GetUserRolesDto',
75
+ properties: [
76
+ 'companyId',
77
+ 'branchId'
78
+ ]
79
+ },
80
+ {
81
+ schemaName: 'ActionTreeForPermissionDto',
82
+ properties: [
83
+ 'companyId'
84
+ ]
85
+ },
86
+ // Response DTOs with branchId
87
+ {
88
+ schemaName: 'UserActionResponseDto',
89
+ properties: [
90
+ 'branchId'
91
+ ]
92
+ },
93
+ {
94
+ schemaName: 'UserRoleResponseDto',
95
+ properties: [
96
+ 'branchId'
97
+ ]
98
+ },
99
+ // Company-related DTOs (entire schemas hidden via tag exclusion, but just in case)
100
+ {
101
+ schemaName: 'AssignCompanyActionsDto',
102
+ properties: [
103
+ 'companyId'
104
+ ]
105
+ },
106
+ {
107
+ schemaName: 'CompanyActionResponseDto',
108
+ properties: [
109
+ 'companyId'
110
+ ]
111
+ }
112
+ ];
113
+ // Hide query parameters for GET endpoints when company feature is disabled
114
+ const excludeQueryParameters = enableCompanyFeature ? [] : [
115
+ {
116
+ pathPattern: '/iam/permissions/user-actions/*',
117
+ method: 'get',
118
+ parameters: [
119
+ 'companyId',
120
+ 'branchId'
121
+ ]
122
+ },
123
+ {
124
+ pathPattern: '/iam/permissions/user-roles/*',
125
+ method: 'get',
126
+ parameters: [
127
+ 'companyId',
128
+ 'branchId'
129
+ ]
130
+ }
131
+ ];
132
+ // Build exclude tags list: always exclude Auth tags + conditionally exclude based on permission mode
133
+ const excludeTags = [
134
+ ...AUTH_RELATED_TAGS
135
+ ];
136
+ // Hide company-related IAM endpoints when company feature is disabled
137
+ if (!enableCompanyFeature) {
138
+ excludeTags.push('IAM - Company Action Permissions');
139
+ }
140
+ // Conditionally exclude endpoints based on permission mode
141
+ if (permissionMode === permission_type_enum/* .IAMPermissionMode.RBAC */.w.RBAC) {
142
+ // RBAC only - hide direct user action endpoints
143
+ excludeTags.push('IAM - Permissions (Direct)');
144
+ } else if (permissionMode === permission_type_enum/* .IAMPermissionMode.DIRECT */.w.DIRECT) {
145
+ // Direct only - hide RBAC endpoints
146
+ excludeTags.push('IAM - Permissions (RBAC)');
147
+ excludeTags.push('IAM - Roles'); // Roles are only used in RBAC
148
+ }
149
+ return {
150
+ title: 'IAM API',
151
+ description: `
152
+ ## Identity & Access Management API
153
+ ${multiTenantNote}
154
+ Advanced permission system with flexible modes: RBAC, Direct Permissions, or both.
155
+
156
+ ### Current Configuration
157
+ - **Permission Mode**: ${permissionMode === permission_type_enum/* .IAMPermissionMode.RBAC */.w.RBAC ? '**RBAC** (Role-Based Access Control)' : permissionMode === permission_type_enum/* .IAMPermissionMode.DIRECT */.w.DIRECT ? '**DIRECT** (Direct User Permissions)' : '**FULL** (RBAC + Direct)'}${enableCompanyFeature ? '\n- **Company Feature**: Enabled (Multi-tenant with company/branch scoping)' : '\n- **Company Feature**: Disabled'}
158
+
159
+ ### Features Based on Mode
160
+
161
+ ${permissionMode === permission_type_enum/* .IAMPermissionMode.RBAC */.w.RBAC || permissionMode === permission_type_enum/* .IAMPermissionMode.FULL */.w.FULL ? `#### RBAC Features (Active)
162
+ - **Roles**: Create company-scoped roles${enableCompanyFeature ? ' (auto-filtered by user company)' : ''}
163
+ - **Role-Actions**: Assign actions to roles
164
+ - **User-Roles**: Assign roles to users${enableCompanyFeature ? ' at branch level' : ''}
165
+ ` : ''}${permissionMode === permission_type_enum/* .IAMPermissionMode.DIRECT */.w.DIRECT || permissionMode === permission_type_enum/* .IAMPermissionMode.FULL */.w.FULL ? `#### Direct Permission Features (Active)
166
+ - **User-Actions**: Direct action assignment to users${enableCompanyFeature ? ' at branch level' : ''}
167
+ ` : ''}${enableCompanyFeature ? `#### Company Features (Active)
168
+ - **Company-Action Whitelist**: Control which actions are available per company
169
+ - **Branch-Based Scoping**: Permissions scoped to specific branches
170
+ - **Auto-Filtering**: Roles automatically filtered by user's company
171
+ - **Action Tree Filtering**: Available actions filtered by company whitelist
172
+ ` : ''}
173
+ ### Core Concepts
174
+
175
+ #### Actions
176
+ Represent permissions in the system. Can be hierarchical.
177
+
178
+ **Action Types:**
179
+ - \`menu\` - Menu visibility (actions with type='menu' are used as menus)
180
+ - \`endpoint\` - API endpoint access
181
+ - \`frontend\` - Frontend feature toggles
182
+ ${permissionMode === permission_type_enum/* .IAMPermissionMode.RBAC */.w.RBAC || permissionMode === permission_type_enum/* .IAMPermissionMode.FULL */.w.FULL ? `
183
+ #### Roles
184
+ Collections of actions that can be assigned to users.${enableCompanyFeature ? ' Scoped to companies.' : ' Global across the system.'}
185
+ ` : ''}${enableCompanyFeature ? `
186
+ #### Company-Action Whitelist
187
+ Controls which actions are available to a company. Users/roles can only use whitelisted actions.
188
+
189
+ **Flow:**
190
+ 1. Admin assigns actions to company (whitelist)
191
+ 2. Only whitelisted actions appear in permission assignment UIs
192
+ 3. Users/roles cannot be assigned non-whitelisted actions
193
+ ` : ''}
194
+ ### Permission Resolution
195
+
196
+ ${permissionMode === permission_type_enum/* .IAMPermissionMode.FULL */.w.FULL ? `1. **Company-Action Whitelist** - Filter by company (if enabled)
197
+ 2. **UserAction (DENY)** - Explicit denials take precedence
198
+ 3. **UserAction (GRANT)** - Direct user grants
199
+ 4. **UserRole → RoleAction** - Inherited from assigned roles
200
+ 5. **Action Permission Logic** - Complex AND/OR rules` : permissionMode === permission_type_enum/* .IAMPermissionMode.RBAC */.w.RBAC ? `1. **Company-Action Whitelist** - Filter by company (if enabled)
201
+ 2. **UserRole → RoleAction** - Actions inherited from roles
202
+ 3. **Action Permission Logic** - Complex AND/OR rules` : `1. **Company-Action Whitelist** - Filter by company (if enabled)
203
+ 2. **UserAction (DENY)** - Explicit denials take precedence
204
+ 3. **UserAction (GRANT)** - Direct user grants
205
+ 4. **Action Permission Logic** - Complex AND/OR rules`}
206
+
207
+ ### API Endpoints Summary
208
+
209
+ #### Available Endpoints
210
+ - ✅ **Actions**: CRUD operations, tree view${enableCompanyFeature ? ', filtered tree for permissions' : ''}${permissionMode === permission_type_enum/* .IAMPermissionMode.RBAC */.w.RBAC || permissionMode === permission_type_enum/* .IAMPermissionMode.FULL */.w.FULL ? `
211
+ - ✅ **Roles**: CRUD operations${enableCompanyFeature ? ' (auto-filtered by company)' : ''}
212
+ - ✅ **Role-Actions**: Assign actions to roles, get role actions
213
+ - ✅ **User-Roles**: Assign roles to users, get user roles` : `
214
+ - ❌ **Roles**: Disabled (RBAC mode not active)`}${permissionMode === permission_type_enum/* .IAMPermissionMode.DIRECT */.w.DIRECT || permissionMode === permission_type_enum/* .IAMPermissionMode.FULL */.w.FULL ? `
215
+ - ✅ **User-Actions**: Direct action assignment to users` : `
216
+ - ❌ **User-Actions**: Disabled (DIRECT mode not active)`}${enableCompanyFeature ? `
217
+ - ✅ **Company-Actions**: Whitelist actions for companies` : `
218
+ - ❌ **Company-Actions**: Disabled (company feature not enabled)`}
219
+ - ✅ **My Permissions**: Get current user's complete permissions (includes menu-type actions)
220
+
221
+ ### Best Practices
222
+
223
+ 1. **Action Codes**: Use meaningful codes like \`user.create\`, \`order.view\`
224
+ 2. **Hierarchical Actions**: Group related actions (use parentId for hierarchy)${permissionMode === permission_type_enum/* .IAMPermissionMode.RBAC */.w.RBAC || permissionMode === permission_type_enum/* .IAMPermissionMode.FULL */.w.FULL ? `
225
+ 3. **Role Design**: Create roles for common permission patterns` : ''}${permissionMode === permission_type_enum/* .IAMPermissionMode.DIRECT */.w.DIRECT || permissionMode === permission_type_enum/* .IAMPermissionMode.FULL */.w.FULL ? `
226
+ ${permissionMode === permission_type_enum/* .IAMPermissionMode.FULL */.w.FULL ? '4' : '3'}. **Direct Actions**: Use sparingly for exceptions` : ''}${enableCompanyFeature ? `
227
+ ${permissionMode === permission_type_enum/* .IAMPermissionMode.FULL */.w.FULL ? '5' : '4'}. **Company Whitelisting**: Set up action whitelist before assigning permissions
228
+ ${permissionMode === permission_type_enum/* .IAMPermissionMode.FULL */.w.FULL ? '6' : '5'}. **Branch Scoping**: Use branches for location-based access control` : ''}
229
+ `,
230
+ version: '1.0',
231
+ path: 'api/docs/iam',
232
+ bearerAuth: true,
233
+ excludeSchemaProperties,
234
+ excludeTags,
235
+ excludeQueryParameters
236
+ };
237
+ }
238
+
239
+ ;// CONCATENATED MODULE: ./projects/nestjs-iam/src/docs/index.ts
240
+
241
+
242
+
243
+ },
244
+ 890(__unused_rspack_module, __webpack_exports__, __webpack_require__) {
245
+ /* import */ var _action_dto_js__rspack_import_0 = __webpack_require__(741);
246
+ /* import */ var _role_dto_js__rspack_import_1 = __webpack_require__(967);
247
+ /* import */ var _permission_dto_js__rspack_import_2 = __webpack_require__(296);
248
+ // Core DTOs
249
+
250
+
251
+
252
+
253
+ __webpack_require__.d(__webpack_exports__, {
254
+ $l: () => (/* reexport safe */ _permission_dto_js__rspack_import_2.$l),
255
+ $v: () => (/* reexport safe */ _role_dto_js__rspack_import_1.$v),
256
+ AU: () => (/* reexport safe */ _action_dto_js__rspack_import_0.AU),
257
+ CM: () => (/* reexport safe */ _permission_dto_js__rspack_import_2.CM),
258
+ E4: () => (/* reexport safe */ _permission_dto_js__rspack_import_2.E4),
259
+ H: () => (/* reexport safe */ _action_dto_js__rspack_import_0.H),
260
+ LK: () => (/* reexport safe */ _permission_dto_js__rspack_import_2.LK),
261
+ Nx: () => (/* reexport safe */ _permission_dto_js__rspack_import_2.Nx),
262
+ O_: () => (/* reexport safe */ _permission_dto_js__rspack_import_2.O_),
263
+ Q0: () => (/* reexport safe */ _permission_dto_js__rspack_import_2.Q0),
264
+ Sk: () => (/* reexport safe */ _action_dto_js__rspack_import_0.Sk),
265
+ St: () => (/* reexport safe */ _role_dto_js__rspack_import_1.St),
266
+ Tm: () => (/* reexport safe */ _role_dto_js__rspack_import_1.Tm),
267
+ Uu: () => (/* reexport safe */ _permission_dto_js__rspack_import_2.Uu),
268
+ Vw: () => (/* reexport safe */ _action_dto_js__rspack_import_0.Vw),
269
+ Xz: () => (/* reexport safe */ _permission_dto_js__rspack_import_2.Xz),
270
+ Yb: () => (/* reexport safe */ _permission_dto_js__rspack_import_2.Yb),
271
+ Zn: () => (/* reexport safe */ _permission_dto_js__rspack_import_2.Zn),
272
+ aG: () => (/* reexport safe */ _permission_dto_js__rspack_import_2.aG),
273
+ c8: () => (/* reexport safe */ _permission_dto_js__rspack_import_2.c8),
274
+ cv: () => (/* reexport safe */ _permission_dto_js__rspack_import_2.cv),
275
+ gF: () => (/* reexport safe */ _permission_dto_js__rspack_import_2.gF),
276
+ gb: () => (/* reexport safe */ _action_dto_js__rspack_import_0.gb),
277
+ ji: () => (/* reexport safe */ _permission_dto_js__rspack_import_2.ji),
278
+ xJ: () => (/* reexport safe */ _permission_dto_js__rspack_import_2.xJ),
279
+ y9: () => (/* reexport safe */ _action_dto_js__rspack_import_0.y9),
280
+ zs: () => (/* reexport safe */ _permission_dto_js__rspack_import_2.zs)
281
+ });
282
+
283
+
284
+ },
285
+ 743(__unused_rspack_module, __webpack_exports__, __webpack_require__) {
286
+ /* import */ var _action_entity_js__rspack_import_0 = __webpack_require__(864);
287
+ /* import */ var _permission_base_entity_js__rspack_import_1 = __webpack_require__(423);
288
+ /* import */ var _role_base_entity_js__rspack_import_2 = __webpack_require__(784);
289
+ /* import */ var _permission_with_company_entity_js__rspack_import_3 = __webpack_require__(746);
290
+ /* import */ var _role_with_company_entity_js__rspack_import_4 = __webpack_require__(353);
291
+ /* import */ var _role_entity_js__rspack_import_5 = __webpack_require__(326);
292
+ /* import */ var _user_iam_permission_entity_js__rspack_import_6 = __webpack_require__(489);
293
+
294
+
295
+
296
+
297
+
298
+
299
+
300
+
301
+
302
+
303
+
304
+
305
+ // Core entities (no company feature)
306
+ const IAMCoreEntities = [
307
+ _action_entity_js__rspack_import_0/* .Action */.r,
308
+ _role_entity_js__rspack_import_5/* .Role */.X,
309
+ _user_iam_permission_entity_js__rspack_import_6/* .UserIamPermission */.y
310
+ ];
311
+ // Company-specific entities
312
+ const IAMCompanyEntities = [
313
+ _role_with_company_entity_js__rspack_import_4/* .RoleWithCompany */.g,
314
+ _permission_with_company_entity_js__rspack_import_3/* .UserIamPermissionWithCompany */.t
315
+ ];
316
+ // All entities
317
+ const IAMAllEntities = [
318
+ _action_entity_js__rspack_import_0/* .Action */.r,
319
+ _role_entity_js__rspack_import_5/* .Role */.X,
320
+ _role_with_company_entity_js__rspack_import_4/* .RoleWithCompany */.g,
321
+ _user_iam_permission_entity_js__rspack_import_6/* .UserIamPermission */.y,
322
+ _permission_with_company_entity_js__rspack_import_3/* .UserIamPermissionWithCompany */.t
323
+ ];
324
+ /**
325
+ * Get IAM entities based on configuration
326
+ * @param enableCompanyFeature - Whether company feature is enabled
327
+ * @param permissionMode - Permission mode: 'FULL' | 'RBAC' | 'DIRECT' (default: 'FULL')
328
+ */ function getIAMEntitiesByConfig(enableCompanyFeature, permissionMode = 'FULL') {
329
+ const entities = [
330
+ _action_entity_js__rspack_import_0/* .Action */.r
331
+ ];
332
+ // Permission entity - always included
333
+ if (enableCompanyFeature) {
334
+ entities.push(_permission_with_company_entity_js__rspack_import_3/* .UserIamPermissionWithCompany */.t);
335
+ } else {
336
+ entities.push(_user_iam_permission_entity_js__rspack_import_6/* .UserIamPermission */.y);
337
+ }
338
+ // Role entity - Only for RBAC or FULL mode (not DIRECT)
339
+ if (permissionMode === 'RBAC' || permissionMode === 'FULL') {
340
+ if (enableCompanyFeature) {
341
+ entities.push(_role_with_company_entity_js__rspack_import_4/* .RoleWithCompany */.g);
342
+ } else {
343
+ entities.push(_role_entity_js__rspack_import_5/* .Role */.X);
344
+ }
345
+ }
346
+ return entities;
347
+ }
348
+
349
+ __webpack_require__.d(__webpack_exports__, {
350
+ $m: () => (/* reexport safe */ _permission_base_entity_js__rspack_import_1.$),
351
+ Xh: () => (/* reexport safe */ _role_entity_js__rspack_import_5.X),
352
+ gP: () => (/* reexport safe */ _role_with_company_entity_js__rspack_import_4.g),
353
+ getIAMEntitiesByConfig: () => (getIAMEntitiesByConfig),
354
+ rc: () => (/* reexport safe */ _action_entity_js__rspack_import_0.r),
355
+ tt: () => (/* reexport safe */ _permission_with_company_entity_js__rspack_import_3.t),
356
+ um: () => (/* reexport safe */ _role_base_entity_js__rspack_import_2.u),
357
+ yi: () => (/* reexport safe */ _user_iam_permission_entity_js__rspack_import_6.y)
358
+ }, {
359
+ Gr: IAMCompanyEntities,
360
+ SB: IAMAllEntities,
361
+ aZ: IAMCoreEntities
362
+ });
363
+
364
+
365
+ },
366
+ 518(__unused_rspack_module, __webpack_exports__, __webpack_require__) {
367
+ /* import */ var _action_type_enum_js__rspack_import_0 = __webpack_require__(560);
368
+ /* import */ var _iam_entity_type_enum_js__rspack_import_1 = __webpack_require__(85);
369
+ /* import */ var _iam_permission_type_enum_js__rspack_import_2 = __webpack_require__(517);
370
+ /* import */ var _permission_type_enum_js__rspack_import_3 = __webpack_require__(841);
371
+
372
+
373
+
374
+
375
+
376
+ __webpack_require__.d(__webpack_exports__, {
377
+ Vw: () => (/* reexport safe */ _iam_permission_type_enum_js__rspack_import_2.V),
378
+ X2: () => (/* reexport safe */ _action_type_enum_js__rspack_import_0.X),
379
+ nh: () => (/* reexport safe */ _iam_entity_type_enum_js__rspack_import_1.n),
380
+ w6: () => (/* reexport safe */ _permission_type_enum_js__rspack_import_3.w)
381
+ });
382
+
383
+
384
+ },
385
+ 251(__unused_rspack_module, __webpack_exports__, __webpack_require__) {
386
+ /* import */ var _config_index_js__rspack_import_0 = __webpack_require__(434);
387
+ /* import */ var _controllers_index_js__rspack_import_1 = __webpack_require__(575);
388
+ /* import */ var _docs_index_js__rspack_import_2 = __webpack_require__(438);
389
+ /* import */ var _dtos_index_js__rspack_import_3 = __webpack_require__(890);
390
+ /* import */ var _entities_index_js__rspack_import_4 = __webpack_require__(743);
391
+ /* import */ var _enums_index_js__rspack_import_5 = __webpack_require__(518);
392
+ /* import */ var _helpers_index_js__rspack_import_6 = __webpack_require__(674);
393
+ /* import */ var _modules_index_js__rspack_import_7 = __webpack_require__(431);
394
+ /* import */ var _services_index_js__rspack_import_8 = __webpack_require__(116);
395
+
396
+
397
+
398
+
399
+
400
+
401
+
402
+
403
+
404
+
405
+
406
+
407
+ __webpack_require__.d(__webpack_exports__, {
408
+ $l: () => (/* reexport safe */ _dtos_index_js__rspack_import_3.$l),
409
+ $m: () => (/* reexport safe */ _entities_index_js__rspack_import_4.$m),
410
+ $v: () => (/* reexport safe */ _dtos_index_js__rspack_import_3.$v),
411
+ AU: () => (/* reexport safe */ _dtos_index_js__rspack_import_3.AU),
412
+ CM: () => (/* reexport safe */ _dtos_index_js__rspack_import_3.CM),
413
+ D6: () => (/* reexport safe */ _services_index_js__rspack_import_8.D6),
414
+ E0: () => (/* reexport safe */ _modules_index_js__rspack_import_7.E),
415
+ E4: () => (/* reexport safe */ _dtos_index_js__rspack_import_3.E4),
416
+ G7: () => (/* reexport safe */ _config_index_js__rspack_import_0.G7),
417
+ GG: () => (/* reexport safe */ _config_index_js__rspack_import_0.GG),
418
+ Gr: () => (/* reexport safe */ _entities_index_js__rspack_import_4.Gr),
419
+ H: () => (/* reexport safe */ _dtos_index_js__rspack_import_3.H),
420
+ HP: () => (/* reexport safe */ _config_index_js__rspack_import_0.HP),
421
+ LK: () => (/* reexport safe */ _dtos_index_js__rspack_import_3.LK),
422
+ M_: () => (/* reexport safe */ _config_index_js__rspack_import_0.M_),
423
+ NF: () => (/* reexport safe */ _controllers_index_js__rspack_import_1.NF),
424
+ Nt: () => (/* reexport safe */ _services_index_js__rspack_import_8.Nt),
425
+ Nx: () => (/* reexport safe */ _dtos_index_js__rspack_import_3.Nx),
426
+ O_: () => (/* reexport safe */ _dtos_index_js__rspack_import_3.O_),
427
+ P3: () => (/* reexport safe */ _config_index_js__rspack_import_0.P3),
428
+ Q$: () => (/* reexport safe */ _config_index_js__rspack_import_0.Q$),
429
+ Q0: () => (/* reexport safe */ _dtos_index_js__rspack_import_3.Q0),
430
+ QW: () => (/* reexport safe */ _config_index_js__rspack_import_0.QW),
431
+ SB: () => (/* reexport safe */ _entities_index_js__rspack_import_4.SB),
432
+ Sk: () => (/* reexport safe */ _dtos_index_js__rspack_import_3.Sk),
433
+ St: () => (/* reexport safe */ _dtos_index_js__rspack_import_3.St),
434
+ Tm: () => (/* reexport safe */ _dtos_index_js__rspack_import_3.Tm),
435
+ Tn: () => (/* reexport safe */ _helpers_index_js__rspack_import_6.T),
436
+ UQ: () => (/* reexport safe */ _services_index_js__rspack_import_8.UQ),
437
+ Uu: () => (/* reexport safe */ _dtos_index_js__rspack_import_3.Uu),
438
+ Vw: () => (/* reexport safe */ _dtos_index_js__rspack_import_3.Vw),
439
+ WK: () => (/* reexport safe */ _services_index_js__rspack_import_8.WK),
440
+ X2: () => (/* reexport safe */ _enums_index_js__rspack_import_5.X2),
441
+ XV: () => (/* reexport safe */ _config_index_js__rspack_import_0.XV),
442
+ Xh: () => (/* reexport safe */ _entities_index_js__rspack_import_4.Xh),
443
+ Xz: () => (/* reexport safe */ _dtos_index_js__rspack_import_3.Xz),
444
+ Yb: () => (/* reexport safe */ _dtos_index_js__rspack_import_3.Yb),
445
+ ZX: () => (/* reexport safe */ _controllers_index_js__rspack_import_1.ZX),
446
+ Zn: () => (/* reexport safe */ _dtos_index_js__rspack_import_3.Zn),
447
+ aG: () => (/* reexport safe */ _dtos_index_js__rspack_import_3.aG),
448
+ aZ: () => (/* reexport safe */ _entities_index_js__rspack_import_4.aZ),
449
+ c8: () => (/* reexport safe */ _dtos_index_js__rspack_import_3.c8),
450
+ cB: () => (/* reexport safe */ _entities_index_js__rspack_import_4.getIAMEntitiesByConfig),
451
+ cv: () => (/* reexport safe */ _dtos_index_js__rspack_import_3.cv),
452
+ eh: () => (/* reexport safe */ _config_index_js__rspack_import_0.eh),
453
+ gF: () => (/* reexport safe */ _dtos_index_js__rspack_import_3.gF),
454
+ gP: () => (/* reexport safe */ _entities_index_js__rspack_import_4.gP),
455
+ gb: () => (/* reexport safe */ _dtos_index_js__rspack_import_3.gb),
456
+ ig: () => (/* reexport safe */ _controllers_index_js__rspack_import_1.ig),
457
+ ji: () => (/* reexport safe */ _dtos_index_js__rspack_import_3.ji),
458
+ jj: () => (/* reexport safe */ _controllers_index_js__rspack_import_1.jj),
459
+ k: () => (/* reexport safe */ _config_index_js__rspack_import_0.k),
460
+ lk: () => (/* reexport safe */ _controllers_index_js__rspack_import_1.lk),
461
+ mU: () => (/* reexport safe */ _enums_index_js__rspack_import_5.Vw),
462
+ n1: () => (/* reexport safe */ _services_index_js__rspack_import_8.n1),
463
+ nh: () => (/* reexport safe */ _enums_index_js__rspack_import_5.nh),
464
+ rc: () => (/* reexport safe */ _entities_index_js__rspack_import_4.rc),
465
+ sZ: () => (/* reexport safe */ _docs_index_js__rspack_import_2.s),
466
+ sb: () => (/* reexport safe */ _config_index_js__rspack_import_0.sb),
467
+ tt: () => (/* reexport safe */ _entities_index_js__rspack_import_4.tt),
468
+ uK: () => (/* reexport safe */ _helpers_index_js__rspack_import_6.u),
469
+ um: () => (/* reexport safe */ _entities_index_js__rspack_import_4.um),
470
+ ut: () => (/* reexport safe */ _services_index_js__rspack_import_8.ut),
471
+ uv: () => (/* reexport safe */ _controllers_index_js__rspack_import_1.uv),
472
+ w6: () => (/* reexport safe */ _enums_index_js__rspack_import_5.w6),
473
+ xI: () => (/* reexport safe */ _config_index_js__rspack_import_0.xI),
474
+ xJ: () => (/* reexport safe */ _dtos_index_js__rspack_import_3.xJ),
475
+ y9: () => (/* reexport safe */ _dtos_index_js__rspack_import_3.y9),
476
+ yi: () => (/* reexport safe */ _entities_index_js__rspack_import_4.yi),
477
+ zs: () => (/* reexport safe */ _dtos_index_js__rspack_import_3.zs)
478
+ });
479
+
480
+
481
+ },
482
+ 431(__unused_rspack_module, __webpack_exports__, __webpack_require__) {
483
+
484
+ // EXPORTS
485
+ __webpack_require__.d(__webpack_exports__, {
486
+ E: () => (/* reexport */ IAMModule)
487
+ });
488
+
489
+ // EXTERNAL MODULE: external "@flusys/nestjs-shared"
490
+ var nestjs_shared_ = __webpack_require__(422);
491
+ // EXTERNAL MODULE: external "@flusys/nestjs-shared/modules"
492
+ var modules_ = __webpack_require__(236);
493
+ // EXTERNAL MODULE: external "@nestjs/common"
494
+ var common_ = __webpack_require__(157);
495
+ // EXTERNAL MODULE: ./projects/nestjs-iam/src/config/iam.constants.ts
496
+ var iam_constants = __webpack_require__(180);
497
+ // EXTERNAL MODULE: ./projects/nestjs-iam/src/controllers/index.ts + 7 modules
498
+ var src_controllers = __webpack_require__(575);
499
+ // EXTERNAL MODULE: ./projects/nestjs-iam/src/enums/permission-type.enum.ts
500
+ var permission_type_enum = __webpack_require__(841);
501
+ // EXTERNAL MODULE: ./projects/nestjs-iam/src/helpers/index.ts + 3 modules
502
+ var helpers = __webpack_require__(674);
503
+ // EXTERNAL MODULE: ./projects/nestjs-iam/src/services/index.ts
504
+ var src_services = __webpack_require__(116);
505
+ // EXTERNAL MODULE: ./projects/nestjs-iam/src/services/iam-config.service.ts
506
+ var iam_config_service = __webpack_require__(645);
507
+ // EXTERNAL MODULE: ./projects/nestjs-iam/src/services/iam-datasource.service.ts + 1 modules
508
+ var iam_datasource_service = __webpack_require__(831);
509
+ // EXTERNAL MODULE: ./projects/nestjs-iam/src/services/permission-cache.service.ts + 1 modules
510
+ var permission_cache_service = __webpack_require__(99);
511
+ ;// CONCATENATED MODULE: ./projects/nestjs-iam/src/modules/iam.module.ts
512
+ function _ts_decorate(decorators, target, key, desc) {
513
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
514
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") {
515
+ r = Reflect.decorate(decorators, target, key, desc);
516
+ } else {
517
+ for(var i = decorators.length - 1; i >= 0; i--){
518
+ if (d = decorators[i]) {
519
+ r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
520
+ }
521
+ }
522
+ }
523
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
524
+ }
525
+
526
+
527
+
528
+
529
+
530
+
531
+
532
+
533
+
534
+
535
+
536
+ class IAMModule {
537
+ static getControllers(permissionMode, enableCompanyFeature) {
538
+ const baseControllers = [
539
+ src_controllers/* .ActionController */.ZX,
540
+ src_controllers/* .MyPermissionController */.ig
541
+ ];
542
+ // Direct permission mode - user actions only
543
+ if (permissionMode === permission_type_enum/* .IAMPermissionMode.DIRECT */.w.DIRECT) {
544
+ baseControllers.push(src_controllers/* .UserActionPermissionController */.NF);
545
+ }
546
+ // RBAC mode - role actions and user roles only
547
+ if (permissionMode === permission_type_enum/* .IAMPermissionMode.RBAC */.w.RBAC) {
548
+ baseControllers.push(src_controllers/* .RoleController */.lk);
549
+ baseControllers.push(src_controllers/* .RolePermissionController */.uv);
550
+ }
551
+ // FULL mode - all permission controllers
552
+ if (permissionMode === permission_type_enum/* .IAMPermissionMode.FULL */.w.FULL) {
553
+ baseControllers.push(src_controllers/* .RoleController */.lk);
554
+ baseControllers.push(src_controllers/* .UserActionPermissionController */.NF);
555
+ baseControllers.push(src_controllers/* .RolePermissionController */.uv);
556
+ }
557
+ // Company action permissions - only if company feature enabled
558
+ if (enableCompanyFeature) {
559
+ baseControllers.push(src_controllers/* .CompanyActionPermissionController */.jj);
560
+ }
561
+ return baseControllers;
562
+ }
563
+ static getServices(permissionMode) {
564
+ const services = [
565
+ src_services/* .ActionService */.ut,
566
+ src_services/* .PermissionService */.n1,
567
+ permission_cache_service/* .PermissionCacheService */.D
568
+ ];
569
+ // RoleService - Only for RBAC or FULL mode
570
+ if (permissionMode === permission_type_enum/* .IAMPermissionMode.RBAC */.w.RBAC || permissionMode === permission_type_enum/* .IAMPermissionMode.FULL */.w.FULL) {
571
+ services.push(src_services/* .RoleService */.WK);
572
+ }
573
+ return services;
574
+ }
575
+ static getPermissionGuardConfigProvider(enableCompanyFeature) {
576
+ return {
577
+ provide: nestjs_shared_.PERMISSION_GUARD_CONFIG,
578
+ useValue: {
579
+ enableCompanyFeature,
580
+ userPermissionKeyFormat: `${nestjs_shared_.PERMISSIONS_CACHE_PREFIX}:user:{userId}`,
581
+ companyPermissionKeyFormat: `${nestjs_shared_.PERMISSIONS_CACHE_PREFIX}:company:{companyId}:branch:{branchId}:user:{userId}`
582
+ }
583
+ };
584
+ }
585
+ static getExports(permissionMode) {
586
+ const baseExports = [
587
+ iam_config_service/* .IAMConfigService */.N,
588
+ iam_datasource_service/* .IAMDataSourceService */.U,
589
+ src_services/* .ActionService */.ut,
590
+ src_services/* .PermissionService */.n1,
591
+ permission_cache_service/* .PermissionCacheService */.D,
592
+ nestjs_shared_.PERMISSION_GUARD_CONFIG
593
+ ];
594
+ if (permissionMode === permission_type_enum/* .IAMPermissionMode.RBAC */.w.RBAC || permissionMode === permission_type_enum/* .IAMPermissionMode.FULL */.w.FULL) {
595
+ baseExports.push(src_services/* .RoleService */.WK);
596
+ }
597
+ return baseExports;
598
+ }
599
+ static forRoot(options = {}) {
600
+ const { global = false, includeController = false } = options;
601
+ const enableCompanyFeature = options.bootstrapAppConfig?.enableCompanyFeature ?? false;
602
+ const permissionMode = helpers/* .PermissionModeHelper.fromString */.T.fromString(options.bootstrapAppConfig?.permissionMode);
603
+ const controllers = includeController ? this.getControllers(permissionMode, enableCompanyFeature) : [];
604
+ const providers = [
605
+ {
606
+ provide: iam_constants/* .IAM_MODULE_OPTIONS */.G,
607
+ useValue: options
608
+ },
609
+ iam_config_service/* .IAMConfigService */.N,
610
+ iam_datasource_service/* .IAMDataSourceService */.U,
611
+ ...this.getServices(permissionMode),
612
+ this.getPermissionGuardConfigProvider(enableCompanyFeature),
613
+ (0,modules_.createModuleEventsProvider)('iam', iam_constants/* .IAM_MODULE_OPTIONS */.G)
614
+ ];
615
+ const module = {
616
+ module: IAMModule,
617
+ imports: [
618
+ modules_.CacheModule,
619
+ modules_.UtilsModule
620
+ ],
621
+ controllers,
622
+ providers,
623
+ exports: this.getExports(permissionMode)
624
+ };
625
+ return global ? {
626
+ ...module,
627
+ global: true
628
+ } : module;
629
+ }
630
+ static forRootAsync(asyncOptions) {
631
+ const { global = false, includeController = false, imports: externalImports = [] } = asyncOptions;
632
+ const enableCompanyFeature = asyncOptions.bootstrapAppConfig?.enableCompanyFeature ?? false;
633
+ const permissionMode = helpers/* .PermissionModeHelper.fromString */.T.fromString(asyncOptions.bootstrapAppConfig?.permissionMode);
634
+ const controllers = includeController ? this.getControllers(permissionMode, enableCompanyFeature) : [];
635
+ const providers = [
636
+ ...this.createAsyncProviders(asyncOptions),
637
+ iam_config_service/* .IAMConfigService */.N,
638
+ iam_datasource_service/* .IAMDataSourceService */.U,
639
+ ...this.getServices(permissionMode),
640
+ this.getPermissionGuardConfigProvider(enableCompanyFeature),
641
+ (0,modules_.createModuleEventsProvider)('iam', iam_constants/* .IAM_MODULE_OPTIONS */.G)
642
+ ];
643
+ const module = {
644
+ module: IAMModule,
645
+ imports: [
646
+ ...externalImports,
647
+ modules_.CacheModule,
648
+ modules_.UtilsModule
649
+ ],
650
+ controllers,
651
+ providers,
652
+ exports: this.getExports(permissionMode)
653
+ };
654
+ return global ? {
655
+ ...module,
656
+ global: true
657
+ } : module;
658
+ }
659
+ static createAsyncProviders(options) {
660
+ if (options.useExisting || options.useFactory) {
661
+ return [
662
+ this.createAsyncOptionsProvider(options)
663
+ ];
664
+ }
665
+ const useClass = options.useClass;
666
+ return [
667
+ this.createAsyncOptionsProvider(options),
668
+ {
669
+ provide: useClass,
670
+ useClass
671
+ }
672
+ ];
673
+ }
674
+ static createAsyncOptionsProvider(options) {
675
+ if (options.useFactory) {
676
+ return {
677
+ provide: iam_constants/* .IAM_MODULE_OPTIONS */.G,
678
+ useFactory: options.useFactory,
679
+ inject: options.inject || []
680
+ };
681
+ }
682
+ const inject = [
683
+ options.useClass || options.useExisting
684
+ ];
685
+ return {
686
+ provide: iam_constants/* .IAM_MODULE_OPTIONS */.G,
687
+ useFactory: async (optionsFactory)=>optionsFactory.createIAMOptions(),
688
+ inject
689
+ };
690
+ }
691
+ }
692
+ IAMModule = _ts_decorate([
693
+ (0,common_.Module)({})
694
+ ], IAMModule);
695
+
696
+ ;// CONCATENATED MODULE: ./projects/nestjs-iam/src/modules/index.ts
697
+
698
+
699
+
700
+ },
701
+ 116(__unused_rspack_module, __webpack_exports__, __webpack_require__) {
702
+ /* import */ var _action_service_js__rspack_import_0 = __webpack_require__(713);
703
+ /* import */ var _iam_config_service_js__rspack_import_1 = __webpack_require__(645);
704
+ /* import */ var _iam_datasource_service_js__rspack_import_2 = __webpack_require__(831);
705
+ /* import */ var _permission_cache_service_js__rspack_import_3 = __webpack_require__(99);
706
+ /* import */ var _permission_service_js__rspack_import_4 = __webpack_require__(472);
707
+ /* import */ var _role_service_js__rspack_import_5 = __webpack_require__(446);
708
+
709
+
710
+
711
+
712
+
713
+
714
+
715
+ __webpack_require__.d(__webpack_exports__, {
716
+ D6: () => (/* reexport safe */ _permission_cache_service_js__rspack_import_3.D),
717
+ Nt: () => (/* reexport safe */ _iam_config_service_js__rspack_import_1.N),
718
+ UQ: () => (/* reexport safe */ _iam_datasource_service_js__rspack_import_2.U),
719
+ WK: () => (/* reexport safe */ _role_service_js__rspack_import_5.W),
720
+ n1: () => (/* reexport safe */ _permission_service_js__rspack_import_4.n),
721
+ ut: () => (/* reexport safe */ _action_service_js__rspack_import_0.u)
722
+ });
723
+
724
+
725
+ },
726
+
727
+ };
728
+ import { __webpack_require__ } from './runtime.js';
729
+ var __webpack_exec__ = function(moduleId) { return __webpack_require__(__webpack_require__.s = moduleId); }
730
+ import * as __rspack_chunk_1 from './867.js';
731
+ __webpack_require__.C(__rspack_chunk_1);
732
+ import * as __rspack_chunk_2 from './284.js';
733
+ __webpack_require__.C(__rspack_chunk_2);
734
+ import * as __rspack_chunk_3 from './index.js';
735
+ __webpack_require__.C(__rspack_chunk_3);
736
+ var __webpack_exports__ = __webpack_exec__(251);var __webpack_exports__ACTION_MESSAGES = __webpack_exports__.Q$;
737
+ var __webpack_exports__Action = __webpack_exports__.rc;
738
+ var __webpack_exports__ActionController = __webpack_exports__.ZX;
739
+ var __webpack_exports__ActionResponseDto = __webpack_exports__.Vw;
740
+ var __webpack_exports__ActionService = __webpack_exports__.ut;
741
+ var __webpack_exports__ActionTreeDto = __webpack_exports__.gb;
742
+ var __webpack_exports__ActionTreeForPermissionDto = __webpack_exports__.y9;
743
+ var __webpack_exports__ActionTreeQueryDto = __webpack_exports__.AU;
744
+ var __webpack_exports__ActionType = __webpack_exports__.X2;
745
+ var __webpack_exports__AssignCompanyActionsDto = __webpack_exports__.Nx;
746
+ var __webpack_exports__AssignRoleActionsDto = __webpack_exports__.cv;
747
+ var __webpack_exports__AssignUserActionsDto = __webpack_exports__.zs;
748
+ var __webpack_exports__AssignUserRolesDto = __webpack_exports__.Xz;
749
+ var __webpack_exports__COMPANY_ACTION_PERMISSION_MESSAGES = __webpack_exports__.GG;
750
+ var __webpack_exports__CompanyActionPermissionController = __webpack_exports__.jj;
751
+ var __webpack_exports__CompanyActionResponseDto = __webpack_exports__.E4;
752
+ var __webpack_exports__CreateActionDto = __webpack_exports__.Sk;
753
+ var __webpack_exports__CreateRoleDto = __webpack_exports__.St;
754
+ var __webpack_exports__FrontendActionDto = __webpack_exports__.Yb;
755
+ var __webpack_exports__GetCompanyActionsDto = __webpack_exports__.c8;
756
+ var __webpack_exports__GetRoleActionsDto = __webpack_exports__.Zn;
757
+ var __webpack_exports__GetUserActionsDto = __webpack_exports__.CM;
758
+ var __webpack_exports__GetUserRolesDto = __webpack_exports__.Q0;
759
+ var __webpack_exports__IAMAllEntities = __webpack_exports__.SB;
760
+ var __webpack_exports__IAMCompanyEntities = __webpack_exports__.Gr;
761
+ var __webpack_exports__IAMConfigService = __webpack_exports__.Nt;
762
+ var __webpack_exports__IAMCoreEntities = __webpack_exports__.aZ;
763
+ var __webpack_exports__IAMDataSourceService = __webpack_exports__.UQ;
764
+ var __webpack_exports__IAMModule = __webpack_exports__.E0;
765
+ var __webpack_exports__IAMPermissionMode = __webpack_exports__.w6;
766
+ var __webpack_exports__IAM_EVENT_ACTIONS = __webpack_exports__.XV;
767
+ var __webpack_exports__IAM_EVENT_ENTITIES = __webpack_exports__.HP;
768
+ var __webpack_exports__IAM_EVENT_MODULE = __webpack_exports__.M_;
769
+ var __webpack_exports__IAM_MODE_MESSAGES = __webpack_exports__.xI;
770
+ var __webpack_exports__IAM_MODULE_OPTIONS = __webpack_exports__.G7;
771
+ var __webpack_exports__IamEntityType = __webpack_exports__.nh;
772
+ var __webpack_exports__IamPermissionType = __webpack_exports__.mU;
773
+ var __webpack_exports__MY_PERMISSION_MESSAGES = __webpack_exports__.sb;
774
+ var __webpack_exports__MyPermissionController = __webpack_exports__.ig;
775
+ var __webpack_exports__MyPermissionsQueryDto = __webpack_exports__.O_;
776
+ var __webpack_exports__MyPermissionsResponseDto = __webpack_exports__.ji;
777
+ var __webpack_exports__PERMISSION_OPERATION_MESSAGES = __webpack_exports__.P3;
778
+ var __webpack_exports__PermissionAction = __webpack_exports__.aG;
779
+ var __webpack_exports__PermissionBase = __webpack_exports__.$m;
780
+ var __webpack_exports__PermissionCacheService = __webpack_exports__.D6;
781
+ var __webpack_exports__PermissionItemDto = __webpack_exports__.Uu;
782
+ var __webpack_exports__PermissionModeHelper = __webpack_exports__.Tn;
783
+ var __webpack_exports__PermissionOperationResultDto = __webpack_exports__.xJ;
784
+ var __webpack_exports__PermissionService = __webpack_exports__.n1;
785
+ var __webpack_exports__ROLE_MESSAGES = __webpack_exports__.QW;
786
+ var __webpack_exports__ROLE_PERMISSION_MESSAGES = __webpack_exports__.eh;
787
+ var __webpack_exports__Role = __webpack_exports__.Xh;
788
+ var __webpack_exports__RoleActionResponseDto = __webpack_exports__.$l;
789
+ var __webpack_exports__RoleBase = __webpack_exports__.um;
790
+ var __webpack_exports__RoleController = __webpack_exports__.lk;
791
+ var __webpack_exports__RolePermissionController = __webpack_exports__.uv;
792
+ var __webpack_exports__RoleResponseDto = __webpack_exports__.Tm;
793
+ var __webpack_exports__RoleService = __webpack_exports__.WK;
794
+ var __webpack_exports__RoleWithCompany = __webpack_exports__.gP;
795
+ var __webpack_exports__USER_ACTION_PERMISSION_MESSAGES = __webpack_exports__.k;
796
+ var __webpack_exports__UpdateActionDto = __webpack_exports__.H;
797
+ var __webpack_exports__UpdateRoleDto = __webpack_exports__.$v;
798
+ var __webpack_exports__UserActionPermissionController = __webpack_exports__.NF;
799
+ var __webpack_exports__UserActionResponseDto = __webpack_exports__.gF;
800
+ var __webpack_exports__UserIamPermission = __webpack_exports__.yi;
801
+ var __webpack_exports__UserIamPermissionWithCompany = __webpack_exports__.tt;
802
+ var __webpack_exports__UserRoleResponseDto = __webpack_exports__.LK;
803
+ var __webpack_exports__getIAMEntitiesByConfig = __webpack_exports__.cB;
804
+ var __webpack_exports__iamSwaggerConfig = __webpack_exports__.sZ;
805
+ var __webpack_exports__validateCompanyAccess = __webpack_exports__.uK;
806
+ export { __webpack_exports__ACTION_MESSAGES as ACTION_MESSAGES, __webpack_exports__Action as Action, __webpack_exports__ActionController as ActionController, __webpack_exports__ActionResponseDto as ActionResponseDto, __webpack_exports__ActionService as ActionService, __webpack_exports__ActionTreeDto as ActionTreeDto, __webpack_exports__ActionTreeForPermissionDto as ActionTreeForPermissionDto, __webpack_exports__ActionTreeQueryDto as ActionTreeQueryDto, __webpack_exports__ActionType as ActionType, __webpack_exports__AssignCompanyActionsDto as AssignCompanyActionsDto, __webpack_exports__AssignRoleActionsDto as AssignRoleActionsDto, __webpack_exports__AssignUserActionsDto as AssignUserActionsDto, __webpack_exports__AssignUserRolesDto as AssignUserRolesDto, __webpack_exports__COMPANY_ACTION_PERMISSION_MESSAGES as COMPANY_ACTION_PERMISSION_MESSAGES, __webpack_exports__CompanyActionPermissionController as CompanyActionPermissionController, __webpack_exports__CompanyActionResponseDto as CompanyActionResponseDto, __webpack_exports__CreateActionDto as CreateActionDto, __webpack_exports__CreateRoleDto as CreateRoleDto, __webpack_exports__FrontendActionDto as FrontendActionDto, __webpack_exports__GetCompanyActionsDto as GetCompanyActionsDto, __webpack_exports__GetRoleActionsDto as GetRoleActionsDto, __webpack_exports__GetUserActionsDto as GetUserActionsDto, __webpack_exports__GetUserRolesDto as GetUserRolesDto, __webpack_exports__IAMAllEntities as IAMAllEntities, __webpack_exports__IAMCompanyEntities as IAMCompanyEntities, __webpack_exports__IAMConfigService as IAMConfigService, __webpack_exports__IAMCoreEntities as IAMCoreEntities, __webpack_exports__IAMDataSourceService as IAMDataSourceService, __webpack_exports__IAMModule as IAMModule, __webpack_exports__IAMPermissionMode as IAMPermissionMode, __webpack_exports__IAM_EVENT_ACTIONS as IAM_EVENT_ACTIONS, __webpack_exports__IAM_EVENT_ENTITIES as IAM_EVENT_ENTITIES, __webpack_exports__IAM_EVENT_MODULE as IAM_EVENT_MODULE, __webpack_exports__IAM_MODE_MESSAGES as IAM_MODE_MESSAGES, __webpack_exports__IAM_MODULE_OPTIONS as IAM_MODULE_OPTIONS, __webpack_exports__IamEntityType as IamEntityType, __webpack_exports__IamPermissionType as IamPermissionType, __webpack_exports__MY_PERMISSION_MESSAGES as MY_PERMISSION_MESSAGES, __webpack_exports__MyPermissionController as MyPermissionController, __webpack_exports__MyPermissionsQueryDto as MyPermissionsQueryDto, __webpack_exports__MyPermissionsResponseDto as MyPermissionsResponseDto, __webpack_exports__PERMISSION_OPERATION_MESSAGES as PERMISSION_OPERATION_MESSAGES, __webpack_exports__PermissionAction as PermissionAction, __webpack_exports__PermissionBase as PermissionBase, __webpack_exports__PermissionCacheService as PermissionCacheService, __webpack_exports__PermissionItemDto as PermissionItemDto, __webpack_exports__PermissionModeHelper as PermissionModeHelper, __webpack_exports__PermissionOperationResultDto as PermissionOperationResultDto, __webpack_exports__PermissionService as PermissionService, __webpack_exports__ROLE_MESSAGES as ROLE_MESSAGES, __webpack_exports__ROLE_PERMISSION_MESSAGES as ROLE_PERMISSION_MESSAGES, __webpack_exports__Role as Role, __webpack_exports__RoleActionResponseDto as RoleActionResponseDto, __webpack_exports__RoleBase as RoleBase, __webpack_exports__RoleController as RoleController, __webpack_exports__RolePermissionController as RolePermissionController, __webpack_exports__RoleResponseDto as RoleResponseDto, __webpack_exports__RoleService as RoleService, __webpack_exports__RoleWithCompany as RoleWithCompany, __webpack_exports__USER_ACTION_PERMISSION_MESSAGES as USER_ACTION_PERMISSION_MESSAGES, __webpack_exports__UpdateActionDto as UpdateActionDto, __webpack_exports__UpdateRoleDto as UpdateRoleDto, __webpack_exports__UserActionPermissionController as UserActionPermissionController, __webpack_exports__UserActionResponseDto as UserActionResponseDto, __webpack_exports__UserIamPermission as UserIamPermission, __webpack_exports__UserIamPermissionWithCompany as UserIamPermissionWithCompany, __webpack_exports__UserRoleResponseDto as UserRoleResponseDto, __webpack_exports__getIAMEntitiesByConfig as getIAMEntitiesByConfig, __webpack_exports__iamSwaggerConfig as iamSwaggerConfig, __webpack_exports__validateCompanyAccess as validateCompanyAccess };