permissions-contractx 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (75) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +1397 -0
  3. package/dist/constants/contractx-permissions.constants.d.ts +310 -0
  4. package/dist/constants/contractx-permissions.constants.d.ts.map +1 -0
  5. package/dist/constants/contractx-permissions.constants.js +1061 -0
  6. package/dist/constants/contractx-roles.constants.d.ts +295 -0
  7. package/dist/constants/contractx-roles.constants.d.ts.map +1 -0
  8. package/dist/constants/contractx-roles.constants.js +238 -0
  9. package/dist/constants/index.d.ts +3 -0
  10. package/dist/constants/index.d.ts.map +1 -0
  11. package/dist/constants/index.js +18 -0
  12. package/dist/constants/security.constants.d.ts +77 -0
  13. package/dist/constants/security.constants.d.ts.map +1 -0
  14. package/dist/constants/security.constants.js +139 -0
  15. package/dist/decorators/current-user.decorator.d.ts +73 -0
  16. package/dist/decorators/current-user.decorator.d.ts.map +1 -0
  17. package/dist/decorators/current-user.decorator.js +91 -0
  18. package/dist/decorators/index.d.ts +5 -0
  19. package/dist/decorators/index.d.ts.map +1 -0
  20. package/dist/decorators/index.js +20 -0
  21. package/dist/decorators/permissions.decorator.d.ts +97 -0
  22. package/dist/decorators/permissions.decorator.d.ts.map +1 -0
  23. package/dist/decorators/permissions.decorator.js +106 -0
  24. package/dist/decorators/public.decorator.d.ts +18 -0
  25. package/dist/decorators/public.decorator.d.ts.map +1 -0
  26. package/dist/decorators/public.decorator.js +22 -0
  27. package/dist/decorators/roles.decorator.d.ts +79 -0
  28. package/dist/decorators/roles.decorator.d.ts.map +1 -0
  29. package/dist/decorators/roles.decorator.js +87 -0
  30. package/dist/guards/index.d.ts +4 -0
  31. package/dist/guards/index.d.ts.map +1 -0
  32. package/dist/guards/index.js +19 -0
  33. package/dist/guards/jwt-auth.guard.d.ts +21 -0
  34. package/dist/guards/jwt-auth.guard.d.ts.map +1 -0
  35. package/dist/guards/jwt-auth.guard.js +115 -0
  36. package/dist/guards/permissions.guard.d.ts +14 -0
  37. package/dist/guards/permissions.guard.d.ts.map +1 -0
  38. package/dist/guards/permissions.guard.js +77 -0
  39. package/dist/guards/roles.guard.d.ts +13 -0
  40. package/dist/guards/roles.guard.d.ts.map +1 -0
  41. package/dist/guards/roles.guard.js +59 -0
  42. package/dist/index.d.ts +8 -0
  43. package/dist/index.d.ts.map +1 -0
  44. package/dist/index.js +28 -0
  45. package/dist/interfaces/index.d.ts +2 -0
  46. package/dist/interfaces/index.d.ts.map +1 -0
  47. package/dist/interfaces/index.js +17 -0
  48. package/dist/interfaces/jwt-payload.interface.d.ts +93 -0
  49. package/dist/interfaces/jwt-payload.interface.d.ts.map +1 -0
  50. package/dist/interfaces/jwt-payload.interface.js +2 -0
  51. package/dist/modules/index.d.ts +2 -0
  52. package/dist/modules/index.d.ts.map +1 -0
  53. package/dist/modules/index.js +17 -0
  54. package/dist/modules/permissions-contractx.module.d.ts +41 -0
  55. package/dist/modules/permissions-contractx.module.d.ts.map +1 -0
  56. package/dist/modules/permissions-contractx.module.js +215 -0
  57. package/dist/services/contractx-authorization.service.d.ts +107 -0
  58. package/dist/services/contractx-authorization.service.d.ts.map +1 -0
  59. package/dist/services/contractx-authorization.service.js +362 -0
  60. package/dist/services/contractx-document-compliance.service.d.ts +85 -0
  61. package/dist/services/contractx-document-compliance.service.d.ts.map +1 -0
  62. package/dist/services/contractx-document-compliance.service.js +536 -0
  63. package/dist/services/contractx-validation.service.d.ts +76 -0
  64. package/dist/services/contractx-validation.service.d.ts.map +1 -0
  65. package/dist/services/contractx-validation.service.js +305 -0
  66. package/dist/services/index.d.ts +6 -0
  67. package/dist/services/index.d.ts.map +1 -0
  68. package/dist/services/index.js +20 -0
  69. package/dist/services/user-context.service.d.ts +114 -0
  70. package/dist/services/user-context.service.d.ts.map +1 -0
  71. package/dist/services/user-context.service.js +199 -0
  72. package/dist/test-document-compliance.d.ts +7 -0
  73. package/dist/test-document-compliance.d.ts.map +1 -0
  74. package/dist/test-document-compliance.js +118 -0
  75. package/package.json +405 -0
@@ -0,0 +1,310 @@
1
+ /**
2
+ * ContractX Permissions Constants
3
+ * Based on the ODS permissions matrix and auth-service-contract module structure
4
+ */
5
+ export declare enum ContractXPermissionType {
6
+ CREATE = "create",
7
+ READ = "read",
8
+ UPDATE = "update",
9
+ DELETE = "delete",
10
+ EXECUTE = "execute",
11
+ APPROVE = "approve",
12
+ REJECT = "reject",
13
+ EXPORT = "export",
14
+ IMPORT = "import",
15
+ FILTER = "filter",
16
+ SHOW = "show",
17
+ ADMIN = "admin"
18
+ }
19
+ export declare enum ContractXPermissionScope {
20
+ GLOBAL = "global",
21
+ ORGANIZATION = "organization",
22
+ PROJECT = "project",
23
+ DEPARTMENT = "department",
24
+ TEAM = "team",
25
+ PERSONAL = "personal"
26
+ }
27
+ export declare enum ContractXPermissionCategory {
28
+ USER_MANAGEMENT = "user_management",
29
+ CONTRACT_MANAGEMENT = "contract_management",
30
+ CLIENT_MANAGEMENT = "client_management",
31
+ PROVIDER_MANAGEMENT = "provider_management",
32
+ DOCUMENT_MANAGEMENT = "document_management",
33
+ FINANCIAL = "financial",
34
+ REPORTING = "reporting",
35
+ SYSTEM_ADMIN = "system_admin",
36
+ AUDIT = "audit",
37
+ INTEGRATION = "integration"
38
+ }
39
+ export declare const CONTRACTX_MODULES: {
40
+ readonly CLIENTS: "clients";
41
+ readonly CONTRACTS: "contracts";
42
+ readonly USERS: "users";
43
+ readonly PROVIDERS: "providers";
44
+ readonly DOCUMENTS: "documents";
45
+ readonly CLAUSES: "clauses";
46
+ readonly DELIVERABLES: "deliverables";
47
+ readonly SUBDELIVERABLES: "subdeliverables";
48
+ readonly DELIVERABLE_HISTORY: "deliverable_history";
49
+ readonly SLA_SERVICES: "sla_services";
50
+ readonly MEASUREMENT_WINDOWS: "measurement_windows";
51
+ readonly CREDIT_SERVICE_LEVELS: "credit_service_levels";
52
+ readonly MEETINGS: "meetings";
53
+ readonly MEETING_PARTICIPANTS: "meeting_participants";
54
+ readonly ACTION_ITEMS: "action_items";
55
+ readonly NOTIFICATION_ESCALATIONS: "notification_escalations";
56
+ readonly INVOICE_SERVICES: "invoice_services";
57
+ readonly INVOICE_LINES: "invoice_lines";
58
+ readonly SECURITY_CONTROL: "security_control";
59
+ readonly CONFIGURATION: "configuration";
60
+ readonly WORKFLOWS: "workflows";
61
+ };
62
+ export declare const PERMISSION_ACTIONS: {
63
+ readonly c: ContractXPermissionType.CREATE;
64
+ readonly r: ContractXPermissionType.READ;
65
+ readonly u: ContractXPermissionType.UPDATE;
66
+ readonly d: ContractXPermissionType.DELETE;
67
+ readonly s: ContractXPermissionType.SHOW;
68
+ readonly f: ContractXPermissionType.FILTER;
69
+ };
70
+ export declare const CONTRACTX_PERMISSIONS: {
71
+ readonly CLIENTS: {
72
+ CREATE: string;
73
+ READ: string;
74
+ UPDATE: string;
75
+ DELETE: string;
76
+ SHOW: string;
77
+ FILTER: string;
78
+ ADMIN: string;
79
+ };
80
+ readonly CONTRACTS: {
81
+ CREATE: string;
82
+ READ: string;
83
+ UPDATE: string;
84
+ DELETE: string;
85
+ SHOW: string;
86
+ FILTER: string;
87
+ ADMIN: string;
88
+ };
89
+ readonly USERS: {
90
+ CREATE: string;
91
+ READ: string;
92
+ UPDATE: string;
93
+ DELETE: string;
94
+ SHOW: string;
95
+ FILTER: string;
96
+ ADMIN: string;
97
+ };
98
+ readonly PROVIDERS: {
99
+ CREATE: string;
100
+ READ: string;
101
+ UPDATE: string;
102
+ DELETE: string;
103
+ SHOW: string;
104
+ FILTER: string;
105
+ ADMIN: string;
106
+ };
107
+ readonly DOCUMENTS: {
108
+ CREATE: string;
109
+ READ: string;
110
+ UPDATE: string;
111
+ DELETE: string;
112
+ SHOW: string;
113
+ FILTER: string;
114
+ ADMIN: string;
115
+ };
116
+ readonly CLAUSES: {
117
+ CREATE: string;
118
+ READ: string;
119
+ UPDATE: string;
120
+ DELETE: string;
121
+ SHOW: string;
122
+ FILTER: string;
123
+ ADMIN: string;
124
+ };
125
+ readonly DELIVERABLES: {
126
+ CREATE: string;
127
+ READ: string;
128
+ UPDATE: string;
129
+ DELETE: string;
130
+ SHOW: string;
131
+ FILTER: string;
132
+ ADMIN: string;
133
+ };
134
+ readonly SUBDELIVERABLES: {
135
+ CREATE: string;
136
+ READ: string;
137
+ UPDATE: string;
138
+ DELETE: string;
139
+ SHOW: string;
140
+ FILTER: string;
141
+ ADMIN: string;
142
+ };
143
+ readonly DELIVERABLE_HISTORY: {
144
+ CREATE: string;
145
+ READ: string;
146
+ UPDATE: string;
147
+ DELETE: string;
148
+ SHOW: string;
149
+ FILTER: string;
150
+ ADMIN: string;
151
+ };
152
+ readonly SLA_SERVICES: {
153
+ CREATE: string;
154
+ READ: string;
155
+ UPDATE: string;
156
+ DELETE: string;
157
+ SHOW: string;
158
+ FILTER: string;
159
+ ADMIN: string;
160
+ };
161
+ readonly MEASUREMENT_WINDOWS: {
162
+ CREATE: string;
163
+ READ: string;
164
+ UPDATE: string;
165
+ DELETE: string;
166
+ SHOW: string;
167
+ FILTER: string;
168
+ ADMIN: string;
169
+ };
170
+ readonly CREDIT_SERVICE_LEVELS: {
171
+ CREATE: string;
172
+ READ: string;
173
+ UPDATE: string;
174
+ DELETE: string;
175
+ SHOW: string;
176
+ FILTER: string;
177
+ ADMIN: string;
178
+ };
179
+ readonly MEETINGS: {
180
+ CREATE: string;
181
+ READ: string;
182
+ UPDATE: string;
183
+ DELETE: string;
184
+ SHOW: string;
185
+ FILTER: string;
186
+ ADMIN: string;
187
+ };
188
+ readonly MEETING_PARTICIPANTS: {
189
+ CREATE: string;
190
+ READ: string;
191
+ UPDATE: string;
192
+ DELETE: string;
193
+ SHOW: string;
194
+ FILTER: string;
195
+ ADMIN: string;
196
+ };
197
+ readonly ACTION_ITEMS: {
198
+ CREATE: string;
199
+ READ: string;
200
+ UPDATE: string;
201
+ DELETE: string;
202
+ SHOW: string;
203
+ FILTER: string;
204
+ ADMIN: string;
205
+ };
206
+ readonly NOTIFICATION_ESCALATIONS: {
207
+ CREATE: string;
208
+ READ: string;
209
+ UPDATE: string;
210
+ DELETE: string;
211
+ SHOW: string;
212
+ FILTER: string;
213
+ ADMIN: string;
214
+ };
215
+ readonly INVOICE_SERVICES: {
216
+ CREATE: string;
217
+ READ: string;
218
+ UPDATE: string;
219
+ DELETE: string;
220
+ SHOW: string;
221
+ FILTER: string;
222
+ ADMIN: string;
223
+ };
224
+ readonly INVOICE_LINES: {
225
+ CREATE: string;
226
+ READ: string;
227
+ UPDATE: string;
228
+ DELETE: string;
229
+ SHOW: string;
230
+ FILTER: string;
231
+ ADMIN: string;
232
+ };
233
+ readonly SECURITY_CONTROL: {
234
+ CREATE: string;
235
+ READ: string;
236
+ UPDATE: string;
237
+ DELETE: string;
238
+ SHOW: string;
239
+ FILTER: string;
240
+ ADMIN: string;
241
+ };
242
+ readonly CONFIGURATION: {
243
+ CREATE: string;
244
+ READ: string;
245
+ UPDATE: string;
246
+ DELETE: string;
247
+ SHOW: string;
248
+ FILTER: string;
249
+ ADMIN: string;
250
+ };
251
+ readonly WORKFLOWS: {
252
+ CREATE: string;
253
+ READ: string;
254
+ UPDATE: string;
255
+ DELETE: string;
256
+ SHOW: string;
257
+ FILTER: string;
258
+ ADMIN: string;
259
+ };
260
+ };
261
+ export declare const CONTRACTX_PERMISSION_GROUPS: {
262
+ readonly SUPERADMIN_PERMISSIONS: string[];
263
+ readonly CORE_MANAGEMENT: readonly string[];
264
+ readonly PERFORMANCE_MANAGEMENT: readonly string[];
265
+ readonly FINANCIAL_MANAGEMENT: readonly string[];
266
+ readonly COLLABORATION: readonly string[];
267
+ readonly REPORTING: readonly [string, string, string, string, string, string, string, string, string];
268
+ readonly RISK_MANAGEMENT: readonly [string, string, string, string, string, string, string];
269
+ readonly SYSTEM_ADMIN: readonly string[];
270
+ readonly READ_ONLY: string[];
271
+ };
272
+ export declare const ODS_ROLE_PERMISSIONS: {
273
+ readonly superadmin: readonly [string, string, string, string, string, string, string, string, string, string, string, string, string, string, string, string, string, string, string, string, string, string, string, string, string, string, string, string, string, string, string, string, string, string, string, string, string, string, string, string, string, string, string, string, string, string, string, string, string, string, string, string, string, string, string, string, string, string, string, string, string, string, string, string, string, string, string, string, string, string, string, string, string, string, string, string, string, string, string, string, string, string, string, string, string, string, string, string, string, string, string, string, string, string, string, string, string, string, string, string, string, string, string, string, string];
274
+ readonly client_contract_admin: readonly [string, string, string, string, string, string, string, string, string, string, string, string, string, string, string, string, string, string, string, string, string, string, string, string, string, string, string, string, string, string, string, string, string, string, string, string, string, string, string, string, string, string, string, string, string, string, string, string, string, string, string, string, string, string, string, string, string, string, string, string, string, string, string, string, string, string, string, string, string, string, string, string, string, string, string, string, string, string, string, string, string, string, string, string, string, string, string, string, string, string, string, string, string, string, string, string, string, string, string, string, string];
275
+ readonly client_performance_manager: readonly [string, string, string, string, string, string, string, string, string, string, string, string, string, string, string, string, string, string, string, string, string, string, string, string, string, string, string, string, string, string, string, string, string, string, string, string, string, string, string, string, string, string, string];
276
+ readonly client_finance_manager: readonly [string, string, string, string, string, string, string, string, string, string, string, string, string, string, string, string, string, string, string, string, string, string, string, string, string, string, string];
277
+ readonly client_reports_manager: readonly [string, string, string, string, string, string, string, string, string, string, string, string];
278
+ readonly client_relationship_manager: readonly [string, string, string, string, string, string, string, string, string, string];
279
+ readonly client_risk_manager: readonly [string, string, string, string, string, string, string, string, string];
280
+ readonly provider_contract_admin: readonly [string, string, string, string, string, string, string, string, string, string, string, string, string, string, string, string, string, string, string, string, string, string, string, string, string, string, string, string, string, string, string, string, string, string, string, string, string, string, string, string, string, string, string, string, string, string, string, string, string, string, string, string, string, string, string, string, string, string, string, string, string, string, string, string, string, string, string, string, string, string, string, string, string];
281
+ readonly provider_performance_manager: readonly [string, string, string, string, string, string, string, string, string, string, string, string, string, string, string, string, string, string, string, string, string, string, string, string, string, string, string, string, string, string, string, string, string, string, string, string, string, string, string, string, string];
282
+ readonly provider_finance_manager: readonly [string, string, string, string, string, string];
283
+ readonly provider_relationship_manager: readonly [string, string, string, string, string, string, string];
284
+ readonly provider_risk_manager: readonly [string, string, string, string, string, string, string, string, string, string, string, string];
285
+ readonly provider_operator: readonly [string, string, string, string, string, string, string, string, string];
286
+ readonly auditor: readonly [string, string, string, string, string, string, string, string, string, string, string, string, string, string, string, string, string, string, string, string];
287
+ readonly guest: readonly [string, string, string, string];
288
+ readonly provider_reports_manager: readonly [string, string, string, string, string, string, string, string];
289
+ readonly support: readonly [string, string, string, string, string, string, string, string, string, string, string, string, string, string, string, string, string, string, string, string, string, string, string, string, string, string, string, string, string, string, string, string, string, string, string, string, string, string, string, string, string, string, string, string, string, string, string, string, string, string, string, string, string, string, string, string, string, string, string, string, string, string, string, string, string, string, string, string, string, string, string, string, string, string, string, string, string, string, string, string, string, string, string, string, string, string, string, string, string, string, string, string, string, string, string, string, string, string, string, string];
290
+ };
291
+ export declare const VALID_CONTRACTX_PERMISSIONS: string[];
292
+ export declare const validatePermission: (permission: string) => boolean;
293
+ export declare const getModuleFromPermission: (permission: string) => string | null;
294
+ export declare const getActionFromPermission: (permission: string) => string | null;
295
+ export declare const hasModuleAccess: (permissions: string[], module: string, action: string) => boolean;
296
+ export declare const hasAnyModuleAccess: (permissions: string[], module: string) => boolean;
297
+ export declare const getPermissionsForModule: (module: string) => {
298
+ CREATE: string;
299
+ READ: string;
300
+ UPDATE: string;
301
+ DELETE: string;
302
+ SHOW: string;
303
+ FILTER: string;
304
+ ADMIN: string;
305
+ };
306
+ export declare const parseOdsPermissions: (odsString: string) => string[];
307
+ export type ContractXPermission = typeof VALID_CONTRACTX_PERMISSIONS[number];
308
+ export type ContractXModule = typeof CONTRACTX_MODULES[keyof typeof CONTRACTX_MODULES];
309
+ export type ContractXPermissionAction = typeof PERMISSION_ACTIONS[keyof typeof PERMISSION_ACTIONS];
310
+ //# sourceMappingURL=contractx-permissions.constants.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"contractx-permissions.constants.d.ts","sourceRoot":"","sources":["../../src/constants/contractx-permissions.constants.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,oBAAY,uBAAuB;IACjC,MAAM,WAAW;IACjB,IAAI,SAAS;IACb,MAAM,WAAW;IACjB,MAAM,WAAW;IACjB,OAAO,YAAY;IACnB,OAAO,YAAY;IACnB,MAAM,WAAW;IACjB,MAAM,WAAW;IACjB,MAAM,WAAW;IACjB,MAAM,WAAW;IACjB,IAAI,SAAS;IACb,KAAK,UAAU;CAChB;AAGD,oBAAY,wBAAwB;IAClC,MAAM,WAAW;IACjB,YAAY,iBAAiB;IAC7B,OAAO,YAAY;IACnB,UAAU,eAAe;IACzB,IAAI,SAAS;IACb,QAAQ,aAAa;CACtB;AAGD,oBAAY,2BAA2B;IACrC,eAAe,oBAAoB;IACnC,mBAAmB,wBAAwB;IAC3C,iBAAiB,sBAAsB;IACvC,mBAAmB,wBAAwB;IAC3C,mBAAmB,wBAAwB;IAC3C,SAAS,cAAc;IACvB,SAAS,cAAc;IACvB,YAAY,iBAAiB;IAC7B,KAAK,UAAU;IACf,WAAW,gBAAgB;CAC5B;AAGD,eAAO,MAAM,iBAAiB;;;;;;;;;;;;;;;;;;;;;;CAqCpB,CAAC;AAGX,eAAO,MAAM,kBAAkB;;;;;;;CAOrB,CAAC;AAcX,eAAO,MAAM,qBAAqB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAqCxB,CAAC;AAOX,eAAO,MAAM,2BAA2B;;;;;;;;;;CAyE9B,CAAC;AAGX,eAAO,MAAM,oBAAoB;;;;;;;;;;;;;;;;;;CAw0BvB,CAAC;AAGX,eAAO,MAAM,2BAA2B,UACG,CAAC;AAG5C,eAAO,MAAM,kBAAkB,GAAI,YAAY,MAAM,KAAG,OAEvD,CAAC;AAEF,eAAO,MAAM,uBAAuB,GAAI,YAAY,MAAM,KAAG,MAAM,GAAG,IAGrE,CAAC;AAEF,eAAO,MAAM,uBAAuB,GAAI,YAAY,MAAM,KAAG,MAAM,GAAG,IAGrE,CAAC;AAEF,eAAO,MAAM,eAAe,GAAI,aAAa,MAAM,EAAE,EAAE,QAAQ,MAAM,EAAE,QAAQ,MAAM,KAAG,OAGvF,CAAC;AAEF,eAAO,MAAM,kBAAkB,GAAI,aAAa,MAAM,EAAE,EAAE,QAAQ,MAAM,KAAG,OAE1E,CAAC;AAEF,eAAO,MAAM,uBAAuB,GAAI,QAAQ,MAAM;;;;;;;;CAErD,CAAC;AAEF,eAAO,MAAM,mBAAmB,GAAI,WAAW,MAAM,KAAG,MAAM,EAK7D,CAAC;AAGF,MAAM,MAAM,mBAAmB,GAAG,OAAO,2BAA2B,CAAC,MAAM,CAAC,CAAC;AAC7E,MAAM,MAAM,eAAe,GAAG,OAAO,iBAAiB,CAAC,MAAM,OAAO,iBAAiB,CAAC,CAAC;AACvF,MAAM,MAAM,yBAAyB,GAAG,OAAO,kBAAkB,CAAC,MAAM,OAAO,kBAAkB,CAAC,CAAC"}