@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.
- package/config/index.d.ts +3 -3
- package/controllers/action.controller.d.ts +4 -4
- package/controllers/company-action-permission.controller.d.ts +2 -2
- package/controllers/index.d.ts +6 -6
- package/controllers/my-permission.controller.d.ts +3 -3
- package/controllers/role-permission.controller.d.ts +4 -4
- package/controllers/role.controller.d.ts +2 -2
- package/controllers/user-action-permission.controller.d.ts +4 -4
- package/docs/iam-swagger.config.d.ts +2 -2
- package/docs/index.d.ts +1 -1
- package/dtos/action.dto.d.ts +2 -2
- package/dtos/index.d.ts +3 -3
- package/entities/action.entity.d.ts +2 -2
- package/entities/index.d.ts +11 -11
- package/entities/permission-with-company.entity.d.ts +1 -1
- package/entities/role-with-company.entity.d.ts +1 -1
- package/entities/role.entity.d.ts +1 -1
- package/entities/user-iam-permission.entity.d.ts +1 -1
- package/enums/index.d.ts +4 -4
- package/fesm/284.js +1262 -0
- package/fesm/867.js +3699 -0
- package/fesm/chunks/364.js +86 -0
- package/fesm/config/index.js +133 -3
- package/fesm/controllers/index.js +18 -7
- package/fesm/docs/index.js +240 -1
- package/fesm/dtos/index.js +1090 -3
- package/fesm/entities/index.js +670 -31
- package/fesm/enums/index.js +97 -4
- package/fesm/helpers/index.js +125 -2
- package/fesm/index.js +806 -11
- package/fesm/interfaces/index.js +17 -3
- package/fesm/modules/index.js +259 -1
- package/fesm/runtime.js +134 -0
- package/fesm/services/index.js +43 -6
- package/fesm/types/index.js +15 -1
- package/helpers/company-access.helper.d.ts +2 -2
- package/helpers/index.d.ts +2 -2
- package/helpers/permission-mode.helper.d.ts +1 -1
- package/index.d.ts +11 -11
- package/interfaces/action.interface.d.ts +2 -2
- package/interfaces/iam-module-options.interface.d.ts +3 -3
- package/interfaces/index.d.ts +3 -3
- package/modules/iam.module.d.ts +2 -2
- package/modules/index.d.ts +1 -1
- package/package.json +30 -37
- package/services/action.service.d.ts +9 -9
- package/services/iam-config.service.d.ts +4 -4
- package/services/iam-datasource.service.d.ts +3 -3
- package/services/index.d.ts +6 -6
- package/services/permission-cache.service.d.ts +5 -5
- package/services/permission.service.d.ts +4 -4
- package/services/role.service.d.ts +8 -8
- package/types/index.d.ts +1 -1
- package/cjs/config/event-actions.js +0 -36
- package/cjs/config/iam.constants.js +0 -11
- package/cjs/config/index.js +0 -20
- package/cjs/config/message-keys.js +0 -71
- package/cjs/controllers/action.controller.js +0 -174
- package/cjs/controllers/action.controller.spec.js +0 -79
- package/cjs/controllers/company-action-permission.controller.js +0 -119
- package/cjs/controllers/company-action-permission.controller.spec.js +0 -65
- package/cjs/controllers/index.js +0 -23
- package/cjs/controllers/my-permission.controller.js +0 -147
- package/cjs/controllers/my-permission.controller.spec.js +0 -128
- package/cjs/controllers/role-permission.controller.js +0 -191
- package/cjs/controllers/role-permission.controller.spec.js +0 -140
- package/cjs/controllers/role.controller.js +0 -102
- package/cjs/controllers/role.controller.spec.js +0 -86
- package/cjs/controllers/user-action-permission.controller.js +0 -129
- package/cjs/controllers/user-action-permission.controller.spec.js +0 -68
- package/cjs/docs/iam-swagger.config.js +0 -209
- package/cjs/docs/iam-swagger.config.spec.js +0 -99
- package/cjs/docs/index.js +0 -18
- package/cjs/dtos/action.dto.js +0 -282
- package/cjs/dtos/index.js +0 -21
- package/cjs/dtos/permission.dto.js +0 -637
- package/cjs/dtos/role.dto.js +0 -155
- package/cjs/entities/action.entity.js +0 -138
- package/cjs/entities/index.js +0 -80
- package/cjs/entities/index.spec.js +0 -56
- package/cjs/entities/permission-base.entity.js +0 -107
- package/cjs/entities/permission-with-company.entity.js +0 -100
- package/cjs/entities/role-base.entity.js +0 -80
- package/cjs/entities/role-with-company.entity.js +0 -55
- package/cjs/entities/role.entity.js +0 -25
- package/cjs/entities/user-iam-permission.entity.js +0 -43
- package/cjs/enums/action-type.enum.js +0 -22
- package/cjs/enums/iam-entity-type.enum.js +0 -17
- package/cjs/enums/iam-permission-type.enum.js +0 -17
- package/cjs/enums/index.js +0 -21
- package/cjs/enums/permission-type.enum.js +0 -16
- package/cjs/helpers/company-access.helper.js +0 -23
- package/cjs/helpers/company-access.helper.spec.js +0 -68
- package/cjs/helpers/index.js +0 -19
- package/cjs/helpers/permission-mode.helper.js +0 -49
- package/cjs/helpers/permission-mode.helper.spec.js +0 -54
- package/cjs/index.js +0 -28
- package/cjs/interfaces/action.interface.js +0 -4
- package/cjs/interfaces/iam-module-options.interface.js +0 -4
- package/cjs/interfaces/index.js +0 -20
- package/cjs/interfaces/role.interface.js +0 -7
- package/cjs/modules/iam.module.js +0 -186
- package/cjs/modules/iam.module.spec.js +0 -282
- package/cjs/modules/index.js +0 -18
- package/cjs/services/action.service.js +0 -337
- package/cjs/services/action.service.spec.js +0 -351
- package/cjs/services/iam-config.service.js +0 -87
- package/cjs/services/iam-config.service.spec.js +0 -110
- package/cjs/services/iam-datasource.service.js +0 -129
- package/cjs/services/iam-datasource.service.spec.js +0 -110
- package/cjs/services/index.js +0 -23
- package/cjs/services/permission-cache.service.js +0 -544
- package/cjs/services/permission-cache.service.spec.js +0 -718
- package/cjs/services/permission.service.js +0 -914
- package/cjs/services/permission.service.spec.js +0 -918
- package/cjs/services/role.service.js +0 -224
- package/cjs/services/role.service.spec.js +0 -347
- package/cjs/types/index.js +0 -18
- package/cjs/types/logic-node.type.js +0 -30
- package/fesm/config/event-actions.js +0 -15
- package/fesm/config/iam.constants.js +0 -1
- package/fesm/config/message-keys.js +0 -35
- package/fesm/controllers/action.controller.js +0 -164
- package/fesm/controllers/action.controller.spec.js +0 -75
- package/fesm/controllers/company-action-permission.controller.js +0 -109
- package/fesm/controllers/company-action-permission.controller.spec.js +0 -61
- package/fesm/controllers/my-permission.controller.js +0 -137
- package/fesm/controllers/my-permission.controller.spec.js +0 -124
- package/fesm/controllers/role-permission.controller.js +0 -181
- package/fesm/controllers/role-permission.controller.spec.js +0 -136
- package/fesm/controllers/role.controller.js +0 -92
- package/fesm/controllers/role.controller.spec.js +0 -82
- package/fesm/controllers/user-action-permission.controller.js +0 -119
- package/fesm/controllers/user-action-permission.controller.spec.js +0 -64
- package/fesm/docs/iam-swagger.config.js +0 -199
- package/fesm/docs/iam-swagger.config.spec.js +0 -95
- package/fesm/dtos/action.dto.js +0 -252
- package/fesm/dtos/permission.dto.js +0 -571
- package/fesm/dtos/role.dto.js +0 -134
- package/fesm/entities/action.entity.js +0 -128
- package/fesm/entities/index.spec.js +0 -52
- package/fesm/entities/permission-base.entity.js +0 -100
- package/fesm/entities/permission-with-company.entity.js +0 -90
- package/fesm/entities/role-base.entity.js +0 -70
- package/fesm/entities/role-with-company.entity.js +0 -45
- package/fesm/entities/role.entity.js +0 -15
- package/fesm/entities/user-iam-permission.entity.js +0 -33
- package/fesm/enums/action-type.enum.js +0 -12
- package/fesm/enums/iam-entity-type.enum.js +0 -7
- package/fesm/enums/iam-permission-type.enum.js +0 -7
- package/fesm/enums/permission-type.enum.js +0 -6
- package/fesm/helpers/company-access.helper.js +0 -18
- package/fesm/helpers/company-access.helper.spec.js +0 -64
- package/fesm/helpers/permission-mode.helper.js +0 -49
- package/fesm/helpers/permission-mode.helper.spec.js +0 -50
- package/fesm/interfaces/action.interface.js +0 -3
- package/fesm/interfaces/iam-module-options.interface.js +0 -3
- package/fesm/interfaces/role.interface.js +0 -4
- package/fesm/modules/iam.module.js +0 -176
- package/fesm/modules/iam.module.spec.js +0 -278
- package/fesm/services/action.service.js +0 -327
- package/fesm/services/action.service.spec.js +0 -347
- package/fesm/services/iam-config.service.js +0 -77
- package/fesm/services/iam-config.service.spec.js +0 -106
- package/fesm/services/iam-datasource.service.js +0 -78
- package/fesm/services/iam-datasource.service.spec.js +0 -106
- package/fesm/services/permission-cache.service.js +0 -527
- package/fesm/services/permission-cache.service.spec.js +0 -714
- package/fesm/services/permission.service.js +0 -904
- package/fesm/services/permission.service.spec.js +0 -914
- package/fesm/services/role.service.js +0 -214
- package/fesm/services/role.service.spec.js +0 -343
- package/fesm/types/logic-node.type.js +0 -27
package/fesm/enums/index.js
CHANGED
|
@@ -1,4 +1,97 @@
|
|
|
1
|
-
export
|
|
2
|
-
export
|
|
3
|
-
export
|
|
4
|
-
|
|
1
|
+
export const __rspack_esm_id = 743;
|
|
2
|
+
export const __rspack_esm_ids = [743];
|
|
3
|
+
export const __webpack_modules__ = {
|
|
4
|
+
560(__unused_rspack_module, __webpack_exports__, __webpack_require__) {
|
|
5
|
+
/**
|
|
6
|
+
* ActionType Enum - Categorizes actions by their usage context
|
|
7
|
+
*
|
|
8
|
+
* - BACKEND: Actions for API endpoint permissions (cached for PermissionGuard)
|
|
9
|
+
* - FRONTEND: Actions for frontend features (returned in my-permissions API)
|
|
10
|
+
* - BOTH: Actions used for both backend and frontend (cached + returned)
|
|
11
|
+
*/ var ActionType = /*#__PURE__*/ function(ActionType) {
|
|
12
|
+
ActionType["BACKEND"] = "backend";
|
|
13
|
+
ActionType["FRONTEND"] = "frontend";
|
|
14
|
+
ActionType["BOTH"] = "both";
|
|
15
|
+
return ActionType;
|
|
16
|
+
}({});
|
|
17
|
+
|
|
18
|
+
__webpack_require__.d(__webpack_exports__, {
|
|
19
|
+
X: () => (ActionType)
|
|
20
|
+
});
|
|
21
|
+
|
|
22
|
+
|
|
23
|
+
},
|
|
24
|
+
85(__unused_rspack_module, __webpack_exports__, __webpack_require__) {
|
|
25
|
+
var IamEntityType = /*#__PURE__*/ function(IamEntityType) {
|
|
26
|
+
IamEntityType["USER"] = "user";
|
|
27
|
+
IamEntityType["ROLE"] = "role";
|
|
28
|
+
IamEntityType["ACTION"] = "action";
|
|
29
|
+
IamEntityType["COMPANY"] = "company";
|
|
30
|
+
return IamEntityType;
|
|
31
|
+
}({});
|
|
32
|
+
|
|
33
|
+
__webpack_require__.d(__webpack_exports__, {
|
|
34
|
+
n: () => (IamEntityType)
|
|
35
|
+
});
|
|
36
|
+
|
|
37
|
+
|
|
38
|
+
},
|
|
39
|
+
517(__unused_rspack_module, __webpack_exports__, __webpack_require__) {
|
|
40
|
+
var IamPermissionType = /*#__PURE__*/ function(IamPermissionType) {
|
|
41
|
+
IamPermissionType["USER_ROLE"] = "user_role";
|
|
42
|
+
IamPermissionType["ROLE_ACTION"] = "role_action";
|
|
43
|
+
IamPermissionType["USER_ACTION"] = "user_action";
|
|
44
|
+
IamPermissionType["COMPANY_ACTION"] = "company_action";
|
|
45
|
+
return IamPermissionType;
|
|
46
|
+
}({});
|
|
47
|
+
|
|
48
|
+
__webpack_require__.d(__webpack_exports__, {
|
|
49
|
+
V: () => (IamPermissionType)
|
|
50
|
+
});
|
|
51
|
+
|
|
52
|
+
|
|
53
|
+
},
|
|
54
|
+
518(__unused_rspack_module, __webpack_exports__, __webpack_require__) {
|
|
55
|
+
/* import */ var _action_type_enum_js__rspack_import_0 = __webpack_require__(560);
|
|
56
|
+
/* import */ var _iam_entity_type_enum_js__rspack_import_1 = __webpack_require__(85);
|
|
57
|
+
/* import */ var _iam_permission_type_enum_js__rspack_import_2 = __webpack_require__(517);
|
|
58
|
+
/* import */ var _permission_type_enum_js__rspack_import_3 = __webpack_require__(841);
|
|
59
|
+
|
|
60
|
+
|
|
61
|
+
|
|
62
|
+
|
|
63
|
+
|
|
64
|
+
__webpack_require__.d(__webpack_exports__, {
|
|
65
|
+
Vw: () => (/* reexport safe */ _iam_permission_type_enum_js__rspack_import_2.V),
|
|
66
|
+
X2: () => (/* reexport safe */ _action_type_enum_js__rspack_import_0.X),
|
|
67
|
+
nh: () => (/* reexport safe */ _iam_entity_type_enum_js__rspack_import_1.n),
|
|
68
|
+
w6: () => (/* reexport safe */ _permission_type_enum_js__rspack_import_3.w)
|
|
69
|
+
});
|
|
70
|
+
|
|
71
|
+
|
|
72
|
+
},
|
|
73
|
+
841(__unused_rspack_module, __webpack_exports__, __webpack_require__) {
|
|
74
|
+
var IAMPermissionMode = /*#__PURE__*/ function(IAMPermissionMode) {
|
|
75
|
+
IAMPermissionMode[IAMPermissionMode["RBAC"] = 1] = "RBAC";
|
|
76
|
+
IAMPermissionMode[IAMPermissionMode["DIRECT"] = 2] = "DIRECT";
|
|
77
|
+
IAMPermissionMode[IAMPermissionMode["FULL"] = 3] = "FULL";
|
|
78
|
+
return IAMPermissionMode;
|
|
79
|
+
}({});
|
|
80
|
+
|
|
81
|
+
__webpack_require__.d(__webpack_exports__, {
|
|
82
|
+
w: () => (IAMPermissionMode)
|
|
83
|
+
});
|
|
84
|
+
|
|
85
|
+
|
|
86
|
+
},
|
|
87
|
+
|
|
88
|
+
};
|
|
89
|
+
import { __webpack_require__ } from '../runtime.js';
|
|
90
|
+
var __webpack_exec__ = function(moduleId) { return __webpack_require__(__webpack_require__.s = moduleId); }
|
|
91
|
+
import * as __rspack_chunk_1 from './index.js';
|
|
92
|
+
__webpack_require__.C(__rspack_chunk_1);
|
|
93
|
+
var __webpack_exports__ = __webpack_exec__(518);var __webpack_exports__ActionType = __webpack_exports__.X2;
|
|
94
|
+
var __webpack_exports__IAMPermissionMode = __webpack_exports__.w6;
|
|
95
|
+
var __webpack_exports__IamEntityType = __webpack_exports__.nh;
|
|
96
|
+
var __webpack_exports__IamPermissionType = __webpack_exports__.Vw;
|
|
97
|
+
export { __webpack_exports__ActionType as ActionType, __webpack_exports__IAMPermissionMode as IAMPermissionMode, __webpack_exports__IamEntityType as IamEntityType, __webpack_exports__IamPermissionType as IamPermissionType };
|
package/fesm/helpers/index.js
CHANGED
|
@@ -1,2 +1,125 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
1
|
+
import { AUTH_MESSAGES } from "@flusys/nestjs-shared/constants";
|
|
2
|
+
import * as __rspack_external__nestjs_common_a04939da from "@nestjs/common";
|
|
3
|
+
export const __rspack_esm_id = 468;
|
|
4
|
+
export const __rspack_esm_ids = [468];
|
|
5
|
+
export const __webpack_modules__ = {
|
|
6
|
+
841(__unused_rspack_module, __webpack_exports__, __webpack_require__) {
|
|
7
|
+
var IAMPermissionMode = /*#__PURE__*/ function(IAMPermissionMode) {
|
|
8
|
+
IAMPermissionMode[IAMPermissionMode["RBAC"] = 1] = "RBAC";
|
|
9
|
+
IAMPermissionMode[IAMPermissionMode["DIRECT"] = 2] = "DIRECT";
|
|
10
|
+
IAMPermissionMode[IAMPermissionMode["FULL"] = 3] = "FULL";
|
|
11
|
+
return IAMPermissionMode;
|
|
12
|
+
}({});
|
|
13
|
+
|
|
14
|
+
__webpack_require__.d(__webpack_exports__, {
|
|
15
|
+
w: () => (IAMPermissionMode)
|
|
16
|
+
});
|
|
17
|
+
|
|
18
|
+
|
|
19
|
+
},
|
|
20
|
+
674(__unused_rspack_module, __webpack_exports__, __webpack_require__) {
|
|
21
|
+
|
|
22
|
+
// EXPORTS
|
|
23
|
+
__webpack_require__.d(__webpack_exports__, {
|
|
24
|
+
T: () => (/* reexport */ PermissionModeHelper),
|
|
25
|
+
u: () => (/* reexport */ validateCompanyAccess)
|
|
26
|
+
});
|
|
27
|
+
|
|
28
|
+
// EXTERNAL MODULE: external "@nestjs/common"
|
|
29
|
+
var common_ = __webpack_require__(157);
|
|
30
|
+
;// CONCATENATED MODULE: external "@flusys/nestjs-shared/constants"
|
|
31
|
+
|
|
32
|
+
;// CONCATENATED MODULE: ./projects/nestjs-iam/src/helpers/company-access.helper.ts
|
|
33
|
+
|
|
34
|
+
|
|
35
|
+
/**
|
|
36
|
+
* Validates that user has access to the specified company.
|
|
37
|
+
* Used for user-action and role-permission operations when company feature is enabled.
|
|
38
|
+
*
|
|
39
|
+
* @throws ForbiddenException if user doesn't have access to the company
|
|
40
|
+
*/ function validateCompanyAccess(config, companyId, user, errorMessage = 'You do not have access to this company', messageKey = AUTH_MESSAGES.COMPANY_NO_ACCESS) {
|
|
41
|
+
if (!config.isCompanyFeatureEnabled() || !companyId) {
|
|
42
|
+
return;
|
|
43
|
+
}
|
|
44
|
+
if (user.companyId !== companyId) {
|
|
45
|
+
throw new common_.ForbiddenException({
|
|
46
|
+
message: errorMessage,
|
|
47
|
+
messageKey
|
|
48
|
+
});
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
// EXTERNAL MODULE: ./projects/nestjs-iam/src/enums/permission-type.enum.ts
|
|
53
|
+
var permission_type_enum = __webpack_require__(841);
|
|
54
|
+
;// CONCATENATED MODULE: ./projects/nestjs-iam/src/helpers/permission-mode.helper.ts
|
|
55
|
+
|
|
56
|
+
/**
|
|
57
|
+
* Helper for converting permission mode strings to enum values
|
|
58
|
+
*
|
|
59
|
+
* **Purpose:** Centralize the conversion logic from IBootstrapAppConfig.permissionMode
|
|
60
|
+
* (string) to IAMPermissionMode enum to prevent duplication and sync issues.
|
|
61
|
+
*
|
|
62
|
+
* **Used by:**
|
|
63
|
+
* - iam.module.ts (forRoot, forRootAsync)
|
|
64
|
+
* - iam-config.service.ts (getPermissionMode)
|
|
65
|
+
* - main.ts (Swagger setup)
|
|
66
|
+
*/ class PermissionModeHelper {
|
|
67
|
+
/**
|
|
68
|
+
* Convert permission mode string to enum value
|
|
69
|
+
*
|
|
70
|
+
* @param modeStr - Permission mode string ('FULL', 'RBAC', 'DIRECT')
|
|
71
|
+
* @returns IAMPermissionMode enum value
|
|
72
|
+
* @default IAMPermissionMode.FULL if invalid/missing
|
|
73
|
+
*
|
|
74
|
+
* @example
|
|
75
|
+
* ```typescript
|
|
76
|
+
* const mode = PermissionModeHelper.fromString('RBAC');
|
|
77
|
+
* // Returns: IAMPermissionMode.RBAC
|
|
78
|
+
*
|
|
79
|
+
* const mode = PermissionModeHelper.fromString(undefined);
|
|
80
|
+
* // Returns: IAMPermissionMode.FULL (default)
|
|
81
|
+
* ```
|
|
82
|
+
*/ static fromString(modeStr) {
|
|
83
|
+
if (!modeStr) {
|
|
84
|
+
return permission_type_enum/* .IAMPermissionMode.FULL */.w.FULL;
|
|
85
|
+
}
|
|
86
|
+
const mode = permission_type_enum/* .IAMPermissionMode */.w[modeStr];
|
|
87
|
+
return mode ?? permission_type_enum/* .IAMPermissionMode.FULL */.w.FULL;
|
|
88
|
+
}
|
|
89
|
+
/**
|
|
90
|
+
* Convert enum value to string (for serialization/logging)
|
|
91
|
+
*
|
|
92
|
+
* @param mode - IAMPermissionMode enum value
|
|
93
|
+
* @returns String representation
|
|
94
|
+
*
|
|
95
|
+
* @example
|
|
96
|
+
* ```typescript
|
|
97
|
+
* const str = PermissionModeHelper.toString(IAMPermissionMode.RBAC);
|
|
98
|
+
* // Returns: 'RBAC'
|
|
99
|
+
* ```
|
|
100
|
+
*/ static toString(mode) {
|
|
101
|
+
return permission_type_enum/* .IAMPermissionMode */.w[mode];
|
|
102
|
+
}
|
|
103
|
+
}
|
|
104
|
+
|
|
105
|
+
;// CONCATENATED MODULE: ./projects/nestjs-iam/src/helpers/index.ts
|
|
106
|
+
|
|
107
|
+
|
|
108
|
+
|
|
109
|
+
|
|
110
|
+
},
|
|
111
|
+
157(module) {
|
|
112
|
+
|
|
113
|
+
module.exports = __rspack_external__nestjs_common_a04939da;
|
|
114
|
+
|
|
115
|
+
|
|
116
|
+
},
|
|
117
|
+
|
|
118
|
+
};
|
|
119
|
+
import { __webpack_require__ } from '../runtime.js';
|
|
120
|
+
var __webpack_exec__ = function(moduleId) { return __webpack_require__(__webpack_require__.s = moduleId); }
|
|
121
|
+
import * as __rspack_chunk_1 from './index.js';
|
|
122
|
+
__webpack_require__.C(__rspack_chunk_1);
|
|
123
|
+
var __webpack_exports__ = __webpack_exec__(674);var __webpack_exports__PermissionModeHelper = __webpack_exports__.T;
|
|
124
|
+
var __webpack_exports__validateCompanyAccess = __webpack_exports__.u;
|
|
125
|
+
export { __webpack_exports__PermissionModeHelper as PermissionModeHelper, __webpack_exports__validateCompanyAccess as validateCompanyAccess };
|