@flusys/nestjs-iam 7.0.2 → 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
@@ -0,0 +1,86 @@
1
+ export const __rspack_esm_id = 364;
2
+ export const __rspack_esm_ids = [364];
3
+ export const __webpack_modules__ = {
4
+ 743(__unused_rspack_module, __webpack_exports__, __webpack_require__) {
5
+ /* import */ var _action_entity_js__rspack_import_0 = __webpack_require__(864);
6
+ /* import */ var _permission_base_entity_js__rspack_import_1 = __webpack_require__(423);
7
+ /* import */ var _role_base_entity_js__rspack_import_2 = __webpack_require__(784);
8
+ /* import */ var _permission_with_company_entity_js__rspack_import_3 = __webpack_require__(746);
9
+ /* import */ var _role_with_company_entity_js__rspack_import_4 = __webpack_require__(353);
10
+ /* import */ var _role_entity_js__rspack_import_5 = __webpack_require__(326);
11
+ /* import */ var _user_iam_permission_entity_js__rspack_import_6 = __webpack_require__(489);
12
+
13
+
14
+
15
+
16
+
17
+
18
+
19
+
20
+
21
+
22
+
23
+
24
+ // Core entities (no company feature)
25
+ const IAMCoreEntities = [
26
+ _action_entity_js__rspack_import_0/* .Action */.r,
27
+ _role_entity_js__rspack_import_5/* .Role */.X,
28
+ _user_iam_permission_entity_js__rspack_import_6/* .UserIamPermission */.y
29
+ ];
30
+ // Company-specific entities
31
+ const IAMCompanyEntities = [
32
+ _role_with_company_entity_js__rspack_import_4/* .RoleWithCompany */.g,
33
+ _permission_with_company_entity_js__rspack_import_3/* .UserIamPermissionWithCompany */.t
34
+ ];
35
+ // All entities
36
+ const IAMAllEntities = [
37
+ _action_entity_js__rspack_import_0/* .Action */.r,
38
+ _role_entity_js__rspack_import_5/* .Role */.X,
39
+ _role_with_company_entity_js__rspack_import_4/* .RoleWithCompany */.g,
40
+ _user_iam_permission_entity_js__rspack_import_6/* .UserIamPermission */.y,
41
+ _permission_with_company_entity_js__rspack_import_3/* .UserIamPermissionWithCompany */.t
42
+ ];
43
+ /**
44
+ * Get IAM entities based on configuration
45
+ * @param enableCompanyFeature - Whether company feature is enabled
46
+ * @param permissionMode - Permission mode: 'FULL' | 'RBAC' | 'DIRECT' (default: 'FULL')
47
+ */ function getIAMEntitiesByConfig(enableCompanyFeature, permissionMode = 'FULL') {
48
+ const entities = [
49
+ _action_entity_js__rspack_import_0/* .Action */.r
50
+ ];
51
+ // Permission entity - always included
52
+ if (enableCompanyFeature) {
53
+ entities.push(_permission_with_company_entity_js__rspack_import_3/* .UserIamPermissionWithCompany */.t);
54
+ } else {
55
+ entities.push(_user_iam_permission_entity_js__rspack_import_6/* .UserIamPermission */.y);
56
+ }
57
+ // Role entity - Only for RBAC or FULL mode (not DIRECT)
58
+ if (permissionMode === 'RBAC' || permissionMode === 'FULL') {
59
+ if (enableCompanyFeature) {
60
+ entities.push(_role_with_company_entity_js__rspack_import_4/* .RoleWithCompany */.g);
61
+ } else {
62
+ entities.push(_role_entity_js__rspack_import_5/* .Role */.X);
63
+ }
64
+ }
65
+ return entities;
66
+ }
67
+
68
+ __webpack_require__.d(__webpack_exports__, {
69
+ $m: () => (/* reexport safe */ _permission_base_entity_js__rspack_import_1.$),
70
+ Xh: () => (/* reexport safe */ _role_entity_js__rspack_import_5.X),
71
+ gP: () => (/* reexport safe */ _role_with_company_entity_js__rspack_import_4.g),
72
+ getIAMEntitiesByConfig: () => (getIAMEntitiesByConfig),
73
+ rc: () => (/* reexport safe */ _action_entity_js__rspack_import_0.r),
74
+ tt: () => (/* reexport safe */ _permission_with_company_entity_js__rspack_import_3.t),
75
+ um: () => (/* reexport safe */ _role_base_entity_js__rspack_import_2.u),
76
+ yi: () => (/* reexport safe */ _user_iam_permission_entity_js__rspack_import_6.y)
77
+ }, {
78
+ Gr: IAMCompanyEntities,
79
+ SB: IAMAllEntities,
80
+ aZ: IAMCoreEntities
81
+ });
82
+
83
+
84
+ },
85
+
86
+ };
@@ -1,3 +1,133 @@
1
- export * from './event-actions';
2
- export * from './iam.constants';
3
- export * from './message-keys';
1
+ export const __rspack_esm_id = 565;
2
+ export const __rspack_esm_ids = [565];
3
+ export const __webpack_modules__ = {
4
+ 916(__unused_rspack_module, __webpack_exports__, __webpack_require__) {
5
+ /**
6
+ * Domain event actions published by the IAM module, alongside the CRUD
7
+ * lifecycle actions every ApiService emits.
8
+ */ const IAM_EVENT_ACTIONS = {
9
+ PERMISSIONS_ASSIGNED: 'permissions-assigned'
10
+ };
11
+ /** Every entity the IAM module publishes under, ApiService backed or not */ const IAM_EVENT_ENTITIES = {
12
+ ACTION: 'action',
13
+ ROLE: 'role',
14
+ USER_ACTION: 'user_action',
15
+ ROLE_ACTION: 'role_action',
16
+ COMPANY_ACTION: 'company_action',
17
+ USER_ROLE: 'user_role'
18
+ };
19
+ const IAM_EVENT_MODULE = 'iam';
20
+
21
+ __webpack_require__.d(__webpack_exports__, {
22
+ }, {
23
+ H: IAM_EVENT_ENTITIES,
24
+ X: IAM_EVENT_ACTIONS
25
+ });
26
+
27
+
28
+ },
29
+ 180(__unused_rspack_module, __webpack_exports__, __webpack_require__) {
30
+ const IAM_MODULE_OPTIONS = 'IAM_MODULE_OPTIONS';
31
+
32
+ __webpack_require__.d(__webpack_exports__, {
33
+ }, {
34
+ G: IAM_MODULE_OPTIONS
35
+ });
36
+
37
+
38
+ },
39
+ 434(__unused_rspack_module, __webpack_exports__, __webpack_require__) {
40
+ /* import */ var _event_actions_js__rspack_import_0 = __webpack_require__(916);
41
+ /* import */ var _iam_constants_js__rspack_import_1 = __webpack_require__(180);
42
+ /* import */ var _message_keys_js__rspack_import_2 = __webpack_require__(490);
43
+
44
+
45
+
46
+
47
+ __webpack_require__.d(__webpack_exports__, {
48
+ G7: () => (/* reexport safe */ _iam_constants_js__rspack_import_1.G),
49
+ GG: () => (/* reexport safe */ _message_keys_js__rspack_import_2.GG),
50
+ HP: () => (/* reexport safe */ _event_actions_js__rspack_import_0.H),
51
+ M_: () => (/* reexport safe */ (/* inlined export _event_actions_js__rspack_import_0 */"iam")),
52
+ P3: () => (/* reexport safe */ _message_keys_js__rspack_import_2.P3),
53
+ Q$: () => (/* reexport safe */ _message_keys_js__rspack_import_2.Q$),
54
+ QW: () => (/* reexport safe */ _message_keys_js__rspack_import_2.QW),
55
+ XV: () => (/* reexport safe */ _event_actions_js__rspack_import_0.X),
56
+ eh: () => (/* reexport safe */ _message_keys_js__rspack_import_2.eh),
57
+ k: () => (/* reexport safe */ _message_keys_js__rspack_import_2.k),
58
+ sb: () => (/* reexport safe */ _message_keys_js__rspack_import_2.sb),
59
+ xI: () => (/* reexport safe */ _message_keys_js__rspack_import_2.xI)
60
+ });
61
+
62
+
63
+ },
64
+ 490(__unused_rspack_module, __webpack_exports__, __webpack_require__) {
65
+ // ==================== IAM MODULE MESSAGE KEYS ====================
66
+ const ACTION_MESSAGES = {
67
+ GET_ALL_SUCCESS: 'action.get.all.success',
68
+ READONLY_UPDATE_FORBIDDEN: 'action.readonly.update.forbidden',
69
+ READONLY_DELETE_FORBIDDEN: 'action.readonly.delete.forbidden'
70
+ };
71
+ const ROLE_MESSAGES = {
72
+ READONLY_UPDATE_FORBIDDEN: 'role.readonly.update.forbidden',
73
+ READONLY_DELETE_FORBIDDEN: 'role.readonly.delete.forbidden'
74
+ };
75
+ const PERMISSION_OPERATION_MESSAGES = {
76
+ PROCESS_SUCCESS: 'permission.process.success',
77
+ ALREADY_EXISTS: 'permission.already.exists',
78
+ USER_REQUIRED: 'permission.user.required'
79
+ };
80
+ const ROLE_PERMISSION_MESSAGES = {
81
+ ACTIONS_SUCCESS: 'role.permission.actions.success',
82
+ USER_ROLES_SUCCESS: 'role.permission.user.roles.success'
83
+ };
84
+ const USER_ACTION_PERMISSION_MESSAGES = {
85
+ GET_SUCCESS: 'user.action.permission.get.success'
86
+ };
87
+ const COMPANY_ACTION_PERMISSION_MESSAGES = {
88
+ GET_SUCCESS: 'company.action.permission.get.success'
89
+ };
90
+ const MY_PERMISSION_MESSAGES = {
91
+ GET_SUCCESS: 'my.permission.get.success',
92
+ MY_ROLES_SUCCESS: 'my.permission.roles.success',
93
+ MY_ACTIONS_SUCCESS: 'my.permission.actions.success'
94
+ };
95
+ const IAM_MODE_MESSAGES = {
96
+ DIRECT_MODE_UNAVAILABLE: 'iam.direct.mode.unavailable',
97
+ RBAC_MODE_UNAVAILABLE: 'iam.rbac.mode.unavailable',
98
+ ROLE_ASSIGNMENT_UNAVAILABLE: 'iam.role.assignment.unavailable'
99
+ };
100
+
101
+ __webpack_require__.d(__webpack_exports__, {
102
+ }, {
103
+ GG: COMPANY_ACTION_PERMISSION_MESSAGES,
104
+ P3: PERMISSION_OPERATION_MESSAGES,
105
+ Q$: ACTION_MESSAGES,
106
+ QW: ROLE_MESSAGES,
107
+ eh: ROLE_PERMISSION_MESSAGES,
108
+ k: USER_ACTION_PERMISSION_MESSAGES,
109
+ sb: MY_PERMISSION_MESSAGES,
110
+ xI: IAM_MODE_MESSAGES
111
+ });
112
+
113
+
114
+ },
115
+
116
+ };
117
+ import { __webpack_require__ } from '../runtime.js';
118
+ var __webpack_exec__ = function(moduleId) { return __webpack_require__(__webpack_require__.s = moduleId); }
119
+ import * as __rspack_chunk_1 from './index.js';
120
+ __webpack_require__.C(__rspack_chunk_1);
121
+ var __webpack_exports__ = __webpack_exec__(434);var __webpack_exports__ACTION_MESSAGES = __webpack_exports__.Q$;
122
+ var __webpack_exports__COMPANY_ACTION_PERMISSION_MESSAGES = __webpack_exports__.GG;
123
+ var __webpack_exports__IAM_EVENT_ACTIONS = __webpack_exports__.XV;
124
+ var __webpack_exports__IAM_EVENT_ENTITIES = __webpack_exports__.HP;
125
+ var __webpack_exports__IAM_EVENT_MODULE = __webpack_exports__.M_;
126
+ var __webpack_exports__IAM_MODE_MESSAGES = __webpack_exports__.xI;
127
+ var __webpack_exports__IAM_MODULE_OPTIONS = __webpack_exports__.G7;
128
+ var __webpack_exports__MY_PERMISSION_MESSAGES = __webpack_exports__.sb;
129
+ var __webpack_exports__PERMISSION_OPERATION_MESSAGES = __webpack_exports__.P3;
130
+ var __webpack_exports__ROLE_MESSAGES = __webpack_exports__.QW;
131
+ var __webpack_exports__ROLE_PERMISSION_MESSAGES = __webpack_exports__.eh;
132
+ var __webpack_exports__USER_ACTION_PERMISSION_MESSAGES = __webpack_exports__.k;
133
+ export { __webpack_exports__ACTION_MESSAGES as ACTION_MESSAGES, __webpack_exports__COMPANY_ACTION_PERMISSION_MESSAGES as COMPANY_ACTION_PERMISSION_MESSAGES, __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__MY_PERMISSION_MESSAGES as MY_PERMISSION_MESSAGES, __webpack_exports__PERMISSION_OPERATION_MESSAGES as PERMISSION_OPERATION_MESSAGES, __webpack_exports__ROLE_MESSAGES as ROLE_MESSAGES, __webpack_exports__ROLE_PERMISSION_MESSAGES as ROLE_PERMISSION_MESSAGES, __webpack_exports__USER_ACTION_PERMISSION_MESSAGES as USER_ACTION_PERMISSION_MESSAGES };
@@ -1,7 +1,18 @@
1
- export * from './action.controller';
2
- export * from './role.controller';
3
- // Permission controllers (conditionally registered based on permission mode)
4
- export * from './company-action-permission.controller';
5
- export * from './my-permission.controller';
6
- export * from './role-permission.controller';
7
- export * from './user-action-permission.controller';
1
+ export const __rspack_esm_id = 24;
2
+ export const __rspack_esm_ids = [24];
3
+ export const __webpack_modules__ = {};
4
+ import { __webpack_require__ } from '../runtime.js';
5
+ var __webpack_exec__ = function(moduleId) { return __webpack_require__(__webpack_require__.s = moduleId); }
6
+ import * as __rspack_chunk_1 from '../867.js';
7
+ __webpack_require__.C(__rspack_chunk_1);
8
+ import * as __rspack_chunk_2 from '../284.js';
9
+ __webpack_require__.C(__rspack_chunk_2);
10
+ import * as __rspack_chunk_3 from './index.js';
11
+ __webpack_require__.C(__rspack_chunk_3);
12
+ var __webpack_exports__ = __webpack_exec__(575);var __webpack_exports__ActionController = __webpack_exports__.ZX;
13
+ var __webpack_exports__CompanyActionPermissionController = __webpack_exports__.jj;
14
+ var __webpack_exports__MyPermissionController = __webpack_exports__.ig;
15
+ var __webpack_exports__RoleController = __webpack_exports__.lk;
16
+ var __webpack_exports__RolePermissionController = __webpack_exports__.uv;
17
+ var __webpack_exports__UserActionPermissionController = __webpack_exports__.NF;
18
+ export { __webpack_exports__ActionController as ActionController, __webpack_exports__CompanyActionPermissionController as CompanyActionPermissionController, __webpack_exports__MyPermissionController as MyPermissionController, __webpack_exports__RoleController as RoleController, __webpack_exports__RolePermissionController as RolePermissionController, __webpack_exports__UserActionPermissionController as UserActionPermissionController };
@@ -1 +1,240 @@
1
- export * from './iam-swagger.config';
1
+ export const __rspack_esm_id = 428;
2
+ export const __rspack_esm_ids = [428];
3
+ export const __webpack_modules__ = {
4
+ 438(__unused_rspack_module, __webpack_exports__, __webpack_require__) {
5
+
6
+ // EXPORTS
7
+ __webpack_require__.d(__webpack_exports__, {
8
+ s: () => (/* reexport */ iamSwaggerConfig)
9
+ });
10
+
11
+ // EXTERNAL MODULE: ./projects/nestjs-iam/src/enums/permission-type.enum.ts
12
+ var permission_type_enum = __webpack_require__(841);
13
+ ;// CONCATENATED MODULE: ./projects/nestjs-iam/src/docs/iam-swagger.config.ts
14
+
15
+ /** Auth-related tags that should always be excluded from IAM API docs */ const AUTH_RELATED_TAGS = [
16
+ 'Authentication',
17
+ 'Users',
18
+ 'Companies',
19
+ 'Branches',
20
+ 'User Permissions',
21
+ 'Company Selection'
22
+ ];
23
+ function iamSwaggerConfig(enableCompanyFeature = false, permissionMode = permission_type_enum/* .IAMPermissionMode.FULL */.w.FULL, databaseMode = 'single') {
24
+ const multiTenantNote = databaseMode === 'multi-tenant' ? `\n> **Multi-Tenant Mode**: Include \`x-tenant-id\` header to target a specific tenant database.\n` : '';
25
+ const excludeSchemaProperties = enableCompanyFeature ? [] : [
26
+ // DTOs with companyId and branchId
27
+ {
28
+ schemaName: 'AssignUserActionsDto',
29
+ properties: [
30
+ 'companyId',
31
+ 'branchId'
32
+ ]
33
+ },
34
+ {
35
+ schemaName: 'AssignUserRolesDto',
36
+ properties: [
37
+ 'companyId',
38
+ 'branchId'
39
+ ]
40
+ },
41
+ {
42
+ schemaName: 'GetUserActionsDto',
43
+ properties: [
44
+ 'companyId',
45
+ 'branchId'
46
+ ]
47
+ },
48
+ {
49
+ schemaName: 'GetUserRolesDto',
50
+ properties: [
51
+ 'companyId',
52
+ 'branchId'
53
+ ]
54
+ },
55
+ {
56
+ schemaName: 'ActionTreeForPermissionDto',
57
+ properties: [
58
+ 'companyId'
59
+ ]
60
+ },
61
+ // Response DTOs with branchId
62
+ {
63
+ schemaName: 'UserActionResponseDto',
64
+ properties: [
65
+ 'branchId'
66
+ ]
67
+ },
68
+ {
69
+ schemaName: 'UserRoleResponseDto',
70
+ properties: [
71
+ 'branchId'
72
+ ]
73
+ },
74
+ // Company-related DTOs (entire schemas hidden via tag exclusion, but just in case)
75
+ {
76
+ schemaName: 'AssignCompanyActionsDto',
77
+ properties: [
78
+ 'companyId'
79
+ ]
80
+ },
81
+ {
82
+ schemaName: 'CompanyActionResponseDto',
83
+ properties: [
84
+ 'companyId'
85
+ ]
86
+ }
87
+ ];
88
+ // Hide query parameters for GET endpoints when company feature is disabled
89
+ const excludeQueryParameters = enableCompanyFeature ? [] : [
90
+ {
91
+ pathPattern: '/iam/permissions/user-actions/*',
92
+ method: 'get',
93
+ parameters: [
94
+ 'companyId',
95
+ 'branchId'
96
+ ]
97
+ },
98
+ {
99
+ pathPattern: '/iam/permissions/user-roles/*',
100
+ method: 'get',
101
+ parameters: [
102
+ 'companyId',
103
+ 'branchId'
104
+ ]
105
+ }
106
+ ];
107
+ // Build exclude tags list: always exclude Auth tags + conditionally exclude based on permission mode
108
+ const excludeTags = [
109
+ ...AUTH_RELATED_TAGS
110
+ ];
111
+ // Hide company-related IAM endpoints when company feature is disabled
112
+ if (!enableCompanyFeature) {
113
+ excludeTags.push('IAM - Company Action Permissions');
114
+ }
115
+ // Conditionally exclude endpoints based on permission mode
116
+ if (permissionMode === permission_type_enum/* .IAMPermissionMode.RBAC */.w.RBAC) {
117
+ // RBAC only - hide direct user action endpoints
118
+ excludeTags.push('IAM - Permissions (Direct)');
119
+ } else if (permissionMode === permission_type_enum/* .IAMPermissionMode.DIRECT */.w.DIRECT) {
120
+ // Direct only - hide RBAC endpoints
121
+ excludeTags.push('IAM - Permissions (RBAC)');
122
+ excludeTags.push('IAM - Roles'); // Roles are only used in RBAC
123
+ }
124
+ return {
125
+ title: 'IAM API',
126
+ description: `
127
+ ## Identity & Access Management API
128
+ ${multiTenantNote}
129
+ Advanced permission system with flexible modes: RBAC, Direct Permissions, or both.
130
+
131
+ ### Current Configuration
132
+ - **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'}
133
+
134
+ ### Features Based on Mode
135
+
136
+ ${permissionMode === permission_type_enum/* .IAMPermissionMode.RBAC */.w.RBAC || permissionMode === permission_type_enum/* .IAMPermissionMode.FULL */.w.FULL ? `#### RBAC Features (Active)
137
+ - **Roles**: Create company-scoped roles${enableCompanyFeature ? ' (auto-filtered by user company)' : ''}
138
+ - **Role-Actions**: Assign actions to roles
139
+ - **User-Roles**: Assign roles to users${enableCompanyFeature ? ' at branch level' : ''}
140
+ ` : ''}${permissionMode === permission_type_enum/* .IAMPermissionMode.DIRECT */.w.DIRECT || permissionMode === permission_type_enum/* .IAMPermissionMode.FULL */.w.FULL ? `#### Direct Permission Features (Active)
141
+ - **User-Actions**: Direct action assignment to users${enableCompanyFeature ? ' at branch level' : ''}
142
+ ` : ''}${enableCompanyFeature ? `#### Company Features (Active)
143
+ - **Company-Action Whitelist**: Control which actions are available per company
144
+ - **Branch-Based Scoping**: Permissions scoped to specific branches
145
+ - **Auto-Filtering**: Roles automatically filtered by user's company
146
+ - **Action Tree Filtering**: Available actions filtered by company whitelist
147
+ ` : ''}
148
+ ### Core Concepts
149
+
150
+ #### Actions
151
+ Represent permissions in the system. Can be hierarchical.
152
+
153
+ **Action Types:**
154
+ - \`menu\` - Menu visibility (actions with type='menu' are used as menus)
155
+ - \`endpoint\` - API endpoint access
156
+ - \`frontend\` - Frontend feature toggles
157
+ ${permissionMode === permission_type_enum/* .IAMPermissionMode.RBAC */.w.RBAC || permissionMode === permission_type_enum/* .IAMPermissionMode.FULL */.w.FULL ? `
158
+ #### Roles
159
+ Collections of actions that can be assigned to users.${enableCompanyFeature ? ' Scoped to companies.' : ' Global across the system.'}
160
+ ` : ''}${enableCompanyFeature ? `
161
+ #### Company-Action Whitelist
162
+ Controls which actions are available to a company. Users/roles can only use whitelisted actions.
163
+
164
+ **Flow:**
165
+ 1. Admin assigns actions to company (whitelist)
166
+ 2. Only whitelisted actions appear in permission assignment UIs
167
+ 3. Users/roles cannot be assigned non-whitelisted actions
168
+ ` : ''}
169
+ ### Permission Resolution
170
+
171
+ ${permissionMode === permission_type_enum/* .IAMPermissionMode.FULL */.w.FULL ? `1. **Company-Action Whitelist** - Filter by company (if enabled)
172
+ 2. **UserAction (DENY)** - Explicit denials take precedence
173
+ 3. **UserAction (GRANT)** - Direct user grants
174
+ 4. **UserRole → RoleAction** - Inherited from assigned roles
175
+ 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)
176
+ 2. **UserRole → RoleAction** - Actions inherited from roles
177
+ 3. **Action Permission Logic** - Complex AND/OR rules` : `1. **Company-Action Whitelist** - Filter by company (if enabled)
178
+ 2. **UserAction (DENY)** - Explicit denials take precedence
179
+ 3. **UserAction (GRANT)** - Direct user grants
180
+ 4. **Action Permission Logic** - Complex AND/OR rules`}
181
+
182
+ ### API Endpoints Summary
183
+
184
+ #### Available Endpoints
185
+ - ✅ **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 ? `
186
+ - ✅ **Roles**: CRUD operations${enableCompanyFeature ? ' (auto-filtered by company)' : ''}
187
+ - ✅ **Role-Actions**: Assign actions to roles, get role actions
188
+ - ✅ **User-Roles**: Assign roles to users, get user roles` : `
189
+ - ❌ **Roles**: Disabled (RBAC mode not active)`}${permissionMode === permission_type_enum/* .IAMPermissionMode.DIRECT */.w.DIRECT || permissionMode === permission_type_enum/* .IAMPermissionMode.FULL */.w.FULL ? `
190
+ - ✅ **User-Actions**: Direct action assignment to users` : `
191
+ - ❌ **User-Actions**: Disabled (DIRECT mode not active)`}${enableCompanyFeature ? `
192
+ - ✅ **Company-Actions**: Whitelist actions for companies` : `
193
+ - ❌ **Company-Actions**: Disabled (company feature not enabled)`}
194
+ - ✅ **My Permissions**: Get current user's complete permissions (includes menu-type actions)
195
+
196
+ ### Best Practices
197
+
198
+ 1. **Action Codes**: Use meaningful codes like \`user.create\`, \`order.view\`
199
+ 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 ? `
200
+ 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 ? `
201
+ ${permissionMode === permission_type_enum/* .IAMPermissionMode.FULL */.w.FULL ? '4' : '3'}. **Direct Actions**: Use sparingly for exceptions` : ''}${enableCompanyFeature ? `
202
+ ${permissionMode === permission_type_enum/* .IAMPermissionMode.FULL */.w.FULL ? '5' : '4'}. **Company Whitelisting**: Set up action whitelist before assigning permissions
203
+ ${permissionMode === permission_type_enum/* .IAMPermissionMode.FULL */.w.FULL ? '6' : '5'}. **Branch Scoping**: Use branches for location-based access control` : ''}
204
+ `,
205
+ version: '1.0',
206
+ path: 'api/docs/iam',
207
+ bearerAuth: true,
208
+ excludeSchemaProperties,
209
+ excludeTags,
210
+ excludeQueryParameters
211
+ };
212
+ }
213
+
214
+ ;// CONCATENATED MODULE: ./projects/nestjs-iam/src/docs/index.ts
215
+
216
+
217
+
218
+ },
219
+ 841(__unused_rspack_module, __webpack_exports__, __webpack_require__) {
220
+ var IAMPermissionMode = /*#__PURE__*/ function(IAMPermissionMode) {
221
+ IAMPermissionMode[IAMPermissionMode["RBAC"] = 1] = "RBAC";
222
+ IAMPermissionMode[IAMPermissionMode["DIRECT"] = 2] = "DIRECT";
223
+ IAMPermissionMode[IAMPermissionMode["FULL"] = 3] = "FULL";
224
+ return IAMPermissionMode;
225
+ }({});
226
+
227
+ __webpack_require__.d(__webpack_exports__, {
228
+ w: () => (IAMPermissionMode)
229
+ });
230
+
231
+
232
+ },
233
+
234
+ };
235
+ import { __webpack_require__ } from '../runtime.js';
236
+ var __webpack_exec__ = function(moduleId) { return __webpack_require__(__webpack_require__.s = moduleId); }
237
+ import * as __rspack_chunk_1 from './index.js';
238
+ __webpack_require__.C(__rspack_chunk_1);
239
+ var __webpack_exports__ = __webpack_exec__(438);var __webpack_exports__iamSwaggerConfig = __webpack_exports__.s;
240
+ export { __webpack_exports__iamSwaggerConfig as iamSwaggerConfig };