permissions-contractx 1.0.2 → 1.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (87) hide show
  1. package/LICENSE +1 -1
  2. package/README.md +53 -1346
  3. package/dist/constants/contractx-permissions.constants.d.ts +84 -92
  4. package/dist/constants/contractx-permissions.constants.d.ts.map +1 -1
  5. package/dist/constants/contractx-permissions.constants.js +2 -2
  6. package/dist/constants/contractx-roles.constants.d.ts +150 -254
  7. package/dist/constants/contractx-roles.constants.d.ts.map +1 -1
  8. package/dist/constants/contractx-roles.constants.js +2 -2
  9. package/dist/constants/index.d.ts +1 -0
  10. package/dist/constants/index.d.ts.map +1 -1
  11. package/dist/constants/index.js +1 -0
  12. package/dist/constants/permission-names.constants.d.ts +432 -0
  13. package/dist/constants/permission-names.constants.d.ts.map +1 -0
  14. package/dist/constants/permission-names.constants.js +304 -0
  15. package/dist/constants/security.constants.d.ts +49 -49
  16. package/dist/constants/security.constants.d.ts.map +1 -1
  17. package/dist/constants/security.constants.js +2 -2
  18. package/dist/decorators/current-user.decorator.d.ts +5 -53
  19. package/dist/decorators/current-user.decorator.d.ts.map +1 -1
  20. package/dist/decorators/current-user.decorator.js +4 -51
  21. package/dist/decorators/index.d.ts +1 -0
  22. package/dist/decorators/index.d.ts.map +1 -1
  23. package/dist/decorators/index.js +1 -0
  24. package/dist/decorators/permission-writes.decorator.d.ts +14 -0
  25. package/dist/decorators/permission-writes.decorator.d.ts.map +1 -0
  26. package/dist/decorators/permission-writes.decorator.js +18 -0
  27. package/dist/decorators/permissions.decorator.d.ts +0 -58
  28. package/dist/decorators/permissions.decorator.d.ts.map +1 -1
  29. package/dist/decorators/permissions.decorator.js +0 -58
  30. package/dist/decorators/public.decorator.d.ts +0 -0
  31. package/dist/decorators/public.decorator.d.ts.map +0 -0
  32. package/dist/decorators/public.decorator.js +0 -0
  33. package/dist/decorators/roles.decorator.d.ts +4 -57
  34. package/dist/decorators/roles.decorator.d.ts.map +1 -1
  35. package/dist/decorators/roles.decorator.js +6 -57
  36. package/dist/guards/authorization.guard.d.ts +37 -0
  37. package/dist/guards/authorization.guard.d.ts.map +1 -0
  38. package/dist/guards/authorization.guard.js +150 -0
  39. package/dist/guards/index.d.ts +1 -0
  40. package/dist/guards/index.d.ts.map +1 -1
  41. package/dist/guards/index.js +1 -0
  42. package/dist/guards/jwt-auth.guard.d.ts +0 -0
  43. package/dist/guards/jwt-auth.guard.d.ts.map +1 -1
  44. package/dist/guards/jwt-auth.guard.js +0 -0
  45. package/dist/guards/permissions.guard.d.ts +0 -0
  46. package/dist/guards/permissions.guard.d.ts.map +1 -1
  47. package/dist/guards/permissions.guard.js +8 -2
  48. package/dist/guards/roles.guard.d.ts +0 -0
  49. package/dist/guards/roles.guard.d.ts.map +1 -1
  50. package/dist/guards/roles.guard.js +1 -1
  51. package/dist/index.d.ts +0 -0
  52. package/dist/index.d.ts.map +1 -1
  53. package/dist/index.js +0 -6
  54. package/dist/interfaces/index.d.ts +1 -0
  55. package/dist/interfaces/index.d.ts.map +1 -1
  56. package/dist/interfaces/index.js +1 -0
  57. package/dist/interfaces/jwt-payload.interface.d.ts +46 -9
  58. package/dist/interfaces/jwt-payload.interface.d.ts.map +1 -1
  59. package/dist/interfaces/jwt-payload.interface.js +19 -0
  60. package/dist/interfaces/permission-mode.enum.d.ts +22 -0
  61. package/dist/interfaces/permission-mode.enum.d.ts.map +1 -0
  62. package/dist/interfaces/permission-mode.enum.js +25 -0
  63. package/dist/modules/index.d.ts +0 -0
  64. package/dist/modules/index.d.ts.map +0 -0
  65. package/dist/modules/index.js +0 -0
  66. package/dist/modules/permissions-contractx.module.d.ts +0 -0
  67. package/dist/modules/permissions-contractx.module.d.ts.map +1 -1
  68. package/dist/modules/permissions-contractx.module.js +4 -2
  69. package/dist/services/contractx-authorization.service.d.ts +198 -27
  70. package/dist/services/contractx-authorization.service.d.ts.map +1 -1
  71. package/dist/services/contractx-authorization.service.js +2 -0
  72. package/dist/services/contractx-validation.service.d.ts +93 -12
  73. package/dist/services/contractx-validation.service.d.ts.map +1 -1
  74. package/dist/services/contractx-validation.service.js +1 -0
  75. package/dist/services/index.d.ts +0 -2
  76. package/dist/services/index.d.ts.map +1 -1
  77. package/dist/services/index.js +2 -0
  78. package/dist/services/user-context.service.d.ts +29 -34
  79. package/dist/services/user-context.service.d.ts.map +1 -1
  80. package/dist/services/user-context.service.js +65 -44
  81. package/package.json +5 -24
  82. package/dist/services/contractx-document-compliance.service.d.ts +0 -85
  83. package/dist/services/contractx-document-compliance.service.d.ts.map +0 -1
  84. package/dist/services/contractx-document-compliance.service.js +0 -536
  85. package/dist/test-document-compliance.d.ts +0 -7
  86. package/dist/test-document-compliance.d.ts.map +0 -1
  87. package/dist/test-document-compliance.js +0 -118
@@ -0,0 +1,304 @@
1
+ "use strict";
2
+ /**
3
+ * permission-names.constants.ts
4
+ * ------------------------------------------------------------------------
5
+ * Constantes de NOMBRES (codes) de los 169 permisos de dominio de ContractX.
6
+ * Derivadas del catálogo de Auth (domain-permissions.catalog.ts, ADR-004 Fase 1/2),
7
+ * tomando SOLO el campo `code` — SIN la metadata de seeding (rolesGranted,
8
+ * rolesReadOnly, approvalCategory, side, requiresHuman), que vive solo en Auth.
9
+ *
10
+ * Fuente única de NOMBRES: este archivo (en el paquete permissions-contractx).
11
+ * La metadata se cuelga encima, en Auth. Un test en Auth valida que todo `code`
12
+ * del catálogo existe como constante aquí (sincronización — Fase 6/8 del porte).
13
+ *
14
+ * Agrupación por microservicio: Auth(12) Contratos(28) Entregables(27)
15
+ * Facturación(27) SLAs(36) Proveedores(39) = 169.
16
+ *
17
+ * Convención de claves: reflejan el recurso completo del code, en
18
+ * SCREAMING_SNAKE_CASE (recurso + acción). Esto evita colisiones entre dominios
19
+ * (p.ej. los reports de Entregables / Facturación / SLAs quedan distinguibles).
20
+ *
21
+ * NO editar a mano para "arreglar" un nombre: si cambia el catálogo, regenerar.
22
+ * ------------------------------------------------------------------------
23
+ */
24
+ Object.defineProperty(exports, "__esModule", { value: true });
25
+ exports.ALL_PERMISSION_CODES = exports.PERMISSIONS_BY_DOMAIN = exports.PROVEEDORES_PERMISSIONS = exports.PROVIDERS_REPORTS_VIEW = exports.PROVIDERS_REPORTS_INCIDENTS = exports.PROVIDERS_REPORTS_SURVEYS = exports.PROVIDERS_REPORTS_RISKS = exports.PROVIDERS_REPORTS_EVALUATIONS = exports.PROVIDERS_REPORTS_GENERATE = exports.PROVIDERS_INCIDENTS_VIEW = exports.PROVIDERS_INCIDENTS_REOPEN = exports.PROVIDERS_INCIDENTS_CLOSE = exports.PROVIDERS_INCIDENTS_MANAGE = exports.PROVIDERS_INCIDENTS_ASSIGN = exports.PROVIDERS_INCIDENTS_REGISTER = exports.PROVIDERS_SURVEYS_VIEW = exports.PROVIDERS_SURVEYS_RESPOND = exports.PROVIDERS_SURVEYS_MANAGE_LIFECYCLE = exports.PROVIDERS_SURVEYS_EDIT_QUESTIONS = exports.PROVIDERS_SURVEYS_CREATE = exports.PROVIDERS_RISKS_VIEW_PLANS = exports.PROVIDERS_RISKS_EXECUTE_ACTION = exports.PROVIDERS_RISKS_CREATE_PLAN = exports.PROVIDERS_RISKS_VIEW_MATRIX = exports.PROVIDERS_RISKS_EDIT = exports.PROVIDERS_RISKS_REGISTER = exports.PROVIDERS_EVALS_VIEW = exports.PROVIDERS_EVALS_CANCEL = exports.PROVIDERS_EVALS_EXECUTE = exports.PROVIDERS_EVALS_SCHEDULE = exports.PROVIDERS_DEPS_VIEW = exports.PROVIDERS_DEPS_MANAGE = exports.PROVIDERS_CONTACTS_SET_PRIMARY = exports.PROVIDERS_CONTACTS_VIEW = exports.PROVIDERS_CONTACTS_MANAGE = exports.PROVIDERS_PROFILE_CHANGE_RISK = exports.PROVIDERS_PROFILE_VIEW_BANK_INFO = exports.PROVIDERS_PROFILE_VIEW = exports.PROVIDERS_PROFILE_BLACKLIST = exports.PROVIDERS_PROFILE_CHANGE_STATUS = exports.PROVIDERS_PROFILE_EDIT = exports.PROVIDERS_PROFILE_CREATE = exports.SLAS_PERMISSIONS = exports.FACTURACION_PERMISSIONS = exports.ENTREGABLES_PERMISSIONS = exports.CONTRATOS_PERMISSIONS = exports.AUTH_PERMISSIONS = void 0;
26
+ // ======================= AUTH (12) =======================
27
+ exports.AUTH_PERMISSIONS = {
28
+ ADMIN_USERS_CREATE_ANY_TENANT: 'admin.users.create_any_tenant',
29
+ ADMIN_USERS_CREATE_OWN_TENANT: 'admin.users.create_own_tenant',
30
+ ADMIN_USERS_TOGGLE_USERS: 'admin.users.toggle_users',
31
+ ADMIN_USERS_ASSIGN_ROLES: 'admin.users.assign_roles',
32
+ ADMIN_RBAC_CREATE_ROLES: 'admin.rbac.create_roles',
33
+ ADMIN_RBAC_CREATE_PERMISSIONS: 'admin.rbac.create_permissions',
34
+ ADMIN_CLIENTS_MANAGE_ORGS: 'admin.clients.manage_orgs',
35
+ ADMIN_CLIENTS_MANAGE_USER_CLIENT: 'admin.clients.manage_user_client',
36
+ ADMIN_SESSIONS_VIEW_ALL: 'admin.sessions.view_all',
37
+ ADMIN_SESSIONS_VIEW_REVOKE_OWN: 'admin.sessions.view_revoke_own',
38
+ ADMIN_SESSIONS_VIEW_ME: 'admin.sessions.view_me',
39
+ ADMIN_DELEGATION_MANAGE_DELEGATE: 'admin.delegation.manage_delegate',
40
+ };
41
+ // ======================= CONTRATOS (28) =======================
42
+ exports.CONTRATOS_PERMISSIONS = {
43
+ // contracts.*
44
+ CONTRACTS_CREATE: 'contracts.create',
45
+ CONTRACTS_UPDATE: 'contracts.update',
46
+ CONTRACTS_SUBMIT_REVIEW: 'contracts.submit_review',
47
+ CONTRACTS_APPROVE: 'contracts.approve',
48
+ CONTRACTS_SIGN: 'contracts.sign',
49
+ CONTRACTS_UPLOAD_LEGACY: 'contracts.upload_legacy',
50
+ CONTRACTS_CLOSE: 'contracts.close',
51
+ CONTRACTS_VIEW_DETAIL: 'contracts.view_detail',
52
+ CONTRACTS_VIEW_LIST: 'contracts.view_list',
53
+ // contract_clauses.*
54
+ CONTRACT_CLAUSES_CREATE_SECTIONS: 'contract_clauses.create_sections',
55
+ CONTRACT_CLAUSES_CREATE_CLAUSES: 'contract_clauses.create_clauses',
56
+ CONTRACT_CLAUSES_MANAGE: 'contract_clauses.manage',
57
+ CONTRACT_CLAUSES_VIEW: 'contract_clauses.view',
58
+ // contract_services.*
59
+ CONTRACT_SERVICES_DEFINE_SERVICES: 'contract_services.define_services',
60
+ CONTRACT_SERVICES_VIEW_TRIPLE_MATCH: 'contract_services.view_triple_match',
61
+ CONTRACT_SERVICES_VIEW: 'contract_services.view',
62
+ // change_requests.*
63
+ CHANGE_REQUESTS_CREATE_OPERATIONAL: 'change_requests.create_operational',
64
+ CHANGE_REQUESTS_CREATE_ECONOMIC: 'change_requests.create_economic',
65
+ CHANGE_REQUESTS_APPROVE: 'change_requests.approve',
66
+ CHANGE_REQUESTS_CREATE_AMENDMENT: 'change_requests.create_amendment',
67
+ CHANGE_REQUESTS_VIEW: 'change_requests.view',
68
+ // contract_documents.*
69
+ CONTRACT_DOCUMENTS_UPLOAD: 'contract_documents.upload',
70
+ CONTRACT_DOCUMENTS_APPROVE: 'contract_documents.approve',
71
+ CONTRACT_DOCUMENTS_REJECT: 'contract_documents.reject',
72
+ CONTRACT_DOCUMENTS_UPLOAD_VERSION: 'contract_documents.upload_version',
73
+ CONTRACT_DOCUMENTS_VIEW_VERSIONS: 'contract_documents.view_versions',
74
+ CONTRACT_DOCUMENTS_CONFIGURE_PERIODIC_REVIEW: 'contract_documents.configure_periodic_review',
75
+ CONTRACT_DOCUMENTS_DOWNLOAD: 'contract_documents.download',
76
+ };
77
+ // ======================= ENTREGABLES (27) =======================
78
+ exports.ENTREGABLES_PERMISSIONS = {
79
+ // deliverables.*
80
+ DELIVERABLES_CREATE: 'deliverables.create',
81
+ DELIVERABLES_UPDATE: 'deliverables.update',
82
+ DELIVERABLES_DESACTIVAR_ENTREGABLES: 'deliverables.desactivar_entregables',
83
+ DELIVERABLES_CONFIGURE_PENALTY: 'deliverables.configure_penalty',
84
+ DELIVERABLES_ASSIGN_RESPONSIBLES: 'deliverables.assign_responsibles',
85
+ DELIVERABLES_MANAGE_TEMPLATES: 'deliverables.manage_templates',
86
+ DELIVERABLES_DEFINE_SCHEDULE: 'deliverables.define_schedule',
87
+ DELIVERABLES_RESCHEDULE: 'deliverables.reschedule',
88
+ DELIVERABLES_MARK_UNCONTROLLED: 'deliverables.mark_uncontrolled',
89
+ DELIVERABLES_CREATE_SUB: 'deliverables.create_sub',
90
+ // deliverable_evidence.*
91
+ DELIVERABLE_EVIDENCE_UPLOAD: 'deliverable_evidence.upload',
92
+ DELIVERABLE_EVIDENCE_REUPLOAD: 'deliverable_evidence.reupload',
93
+ DELIVERABLE_EVIDENCE_VIEW: 'deliverable_evidence.view',
94
+ DELIVERABLE_EVIDENCE_DOWNLOAD: 'deliverable_evidence.download',
95
+ DELIVERABLE_EVIDENCE_VIEW_REJECTION_REASON: 'deliverable_evidence.view_rejection_reason',
96
+ // deliverable_review.*
97
+ DELIVERABLE_REVIEW_VIEW_QUEUE: 'deliverable_review.view_queue',
98
+ DELIVERABLE_REVIEW_APPROVE: 'deliverable_review.approve',
99
+ DELIVERABLE_REVIEW_REJECT: 'deliverable_review.reject',
100
+ DELIVERABLE_REVIEW_WRITE_REJECTION_REASON: 'deliverable_review.write_rejection_reason',
101
+ // deliverable_penalties.*
102
+ DELIVERABLE_PENALTIES_VIEW_SUMMARY: 'deliverable_penalties.view_summary',
103
+ DELIVERABLE_PENALTIES_VIEW_DETAIL: 'deliverable_penalties.view_detail',
104
+ DELIVERABLE_PENALTIES_EXPORT: 'deliverable_penalties.export',
105
+ // deliverable_reports.*
106
+ DELIVERABLE_REPORTS_REPORT_COMPLIANCE: 'deliverable_reports.report_compliance',
107
+ DELIVERABLE_REPORTS_REPORT_PUNCTUALITY: 'deliverable_reports.report_punctuality',
108
+ DELIVERABLE_REPORTS_REPORT_HISTORY: 'deliverable_reports.report_history',
109
+ DELIVERABLE_REPORTS_EXPORT: 'deliverable_reports.export',
110
+ DELIVERABLE_REPORTS_ALERTS: 'deliverable_reports.alerts',
111
+ };
112
+ // ======================= FACTURACIÓN (27) =======================
113
+ exports.FACTURACION_PERMISSIONS = {
114
+ // invoices.*
115
+ INVOICES_REGISTER: 'invoices.register',
116
+ INVOICES_UPLOAD_SUPPORT: 'invoices.upload_support',
117
+ INVOICES_UPLOAD_BACKUP: 'invoices.upload_backup',
118
+ INVOICES_UPDATE: 'invoices.update',
119
+ INVOICES_RESUBMIT: 'invoices.resubmit',
120
+ INVOICES_VIEW_QUEUE: 'invoices.view_queue',
121
+ INVOICES_START_REVIEW: 'invoices.start_review',
122
+ INVOICES_VALIDATE: 'invoices.validate',
123
+ INVOICES_RETURN: 'invoices.return',
124
+ INVOICES_APPROVE: 'invoices.approve',
125
+ INVOICES_REJECT: 'invoices.reject',
126
+ INVOICES_CANCEL: 'invoices.cancel',
127
+ INVOICES_VIEW_DETAIL: 'invoices.view_detail',
128
+ INVOICES_VIEW_OWN: 'invoices.view_own',
129
+ INVOICES_VIEW_APPROVED: 'invoices.view_approved',
130
+ INVOICES_DOWNLOAD: 'invoices.download',
131
+ // invoice_adjustments.*
132
+ INVOICE_ADJUSTMENTS_VIEW_ADJUSTMENTS: 'invoice_adjustments.view_adjustments',
133
+ INVOICE_ADJUSTMENTS_APPLY_SLA: 'invoice_adjustments.apply_sla',
134
+ // invoice_payments.*
135
+ INVOICE_PAYMENTS_REGISTER: 'invoice_payments.register',
136
+ INVOICE_PAYMENTS_REGISTER_PARTIAL: 'invoice_payments.register_partial',
137
+ INVOICE_PAYMENTS_SET_EXCHANGE_RATE: 'invoice_payments.set_exchange_rate',
138
+ INVOICE_PAYMENTS_GENERATE_ERP_TOKEN: 'invoice_payments.generate_erp_token',
139
+ // invoice_reports.*
140
+ INVOICE_REPORTS_REPORT_FINANCIAL: 'invoice_reports.report_financial',
141
+ INVOICE_REPORTS_REPORT_HISTORY: 'invoice_reports.report_history',
142
+ INVOICE_REPORTS_EXPORT: 'invoice_reports.export',
143
+ // invoice_config.* / invoice_audit.*
144
+ INVOICE_CONFIG_CONFIGURE_PARAMS: 'invoice_config.configure_params',
145
+ INVOICE_AUDIT_VIEW_AUDIT: 'invoice_audit.view_audit',
146
+ };
147
+ // ======================= SLAs (36) =======================
148
+ exports.SLAS_PERMISSIONS = {
149
+ // slas.*
150
+ SLAS_CREATE: 'slas.create',
151
+ SLAS_UPDATE: 'slas.update',
152
+ SLAS_ASSOCIATE_AMOUNT: 'slas.associate_amount',
153
+ SLAS_TOGGLE_ACTIVE: 'slas.toggle_active',
154
+ SLAS_VIEW_DETAIL: 'slas.view_detail',
155
+ SLAS_DEFINE_ANNUAL_TARGETS: 'slas.define_annual_targets',
156
+ SLAS_ADJUST_TARGETS: 'slas.adjust_targets',
157
+ SLAS_CONFIGURE_WINDOW: 'slas.configure_window',
158
+ SLAS_CONFIGURE_PARAMS: 'slas.configure_params',
159
+ // sla_measurements.*
160
+ SLA_MEASUREMENTS_UPLOAD: 'sla_measurements.upload',
161
+ SLA_MEASUREMENTS_VIEW_COMPLIANCE: 'sla_measurements.view_compliance',
162
+ SLA_MEASUREMENTS_SUBMIT: 'sla_measurements.submit',
163
+ SLA_MEASUREMENTS_APPROVE: 'sla_measurements.approve',
164
+ SLA_MEASUREMENTS_REJECT: 'sla_measurements.reject',
165
+ SLA_MEASUREMENTS_RESUBMIT: 'sla_measurements.resubmit',
166
+ SLA_MEASUREMENTS_VIEW_HISTORY: 'sla_measurements.view_history',
167
+ SLA_MEASUREMENTS_UPLOAD_ACTION_PLAN: 'sla_measurements.upload_action_plan',
168
+ // sla_credits.*
169
+ SLA_CREDITS_VIEW_PENDING: 'sla_credits.view_pending',
170
+ SLA_CREDITS_APPLY: 'sla_credits.apply',
171
+ SLA_CREDITS_APPLY_PARTIAL: 'sla_credits.apply_partial',
172
+ SLA_CREDITS_APPROVE_EXPIRATION: 'sla_credits.approve_expiration',
173
+ SLA_CREDITS_VIEW_HISTORY: 'sla_credits.view_history',
174
+ // sla_exceptions.*
175
+ SLA_EXCEPTIONS_REQUEST: 'sla_exceptions.request',
176
+ SLA_EXCEPTIONS_APPROVE_TOTAL: 'sla_exceptions.approve_total',
177
+ SLA_EXCEPTIONS_APPROVE_PARTIAL: 'sla_exceptions.approve_partial',
178
+ SLA_EXCEPTIONS_REJECT: 'sla_exceptions.reject',
179
+ SLA_EXCEPTIONS_ESCALATE_GOVERNANCE: 'sla_exceptions.escalate_governance',
180
+ SLA_EXCEPTIONS_VIEW_PENDING: 'sla_exceptions.view_pending',
181
+ // sla_disputes.*
182
+ SLA_DISPUTES_CREATE: 'sla_disputes.create',
183
+ SLA_DISPUTES_LINK_GOVERNANCE: 'sla_disputes.link_governance',
184
+ SLA_DISPUTES_CLOSE: 'sla_disputes.close',
185
+ SLA_DISPUTES_VIEW_ACTIVE: 'sla_disputes.view_active',
186
+ // sla_recovery.*
187
+ SLA_RECOVERY_VIEW_RECOVERY_INPROGRESS: 'sla_recovery.view_recovery_inprogress',
188
+ SLA_RECOVERY_VIEW_RECOVERY_FAILED: 'sla_recovery.view_recovery_failed',
189
+ // sla_reports.*
190
+ SLA_REPORTS_VIEW_DASHBOARD: 'sla_reports.view_dashboard',
191
+ SLA_REPORTS_EXPORT_MONTHLY: 'sla_reports.export_monthly',
192
+ };
193
+ // ======================= PROVEEDORES (39) =======================
194
+ // [ADR-004 Fase 2 / RA-02] Exportadas también como constantes individuales
195
+ // (además del objeto de dominio) para consumo directo desde guards/decoradores.
196
+ // ── Proveedores ──
197
+ exports.PROVIDERS_PROFILE_CREATE = 'providers.profile.create';
198
+ exports.PROVIDERS_PROFILE_EDIT = 'providers.profile.edit';
199
+ exports.PROVIDERS_PROFILE_CHANGE_STATUS = 'providers.profile.change_status';
200
+ exports.PROVIDERS_PROFILE_BLACKLIST = 'providers.profile.blacklist';
201
+ exports.PROVIDERS_PROFILE_VIEW = 'providers.profile.view';
202
+ exports.PROVIDERS_PROFILE_VIEW_BANK_INFO = 'providers.profile.view_bank_info';
203
+ exports.PROVIDERS_PROFILE_CHANGE_RISK = 'providers.profile.change_risk';
204
+ exports.PROVIDERS_CONTACTS_MANAGE = 'providers.contacts.manage';
205
+ exports.PROVIDERS_CONTACTS_VIEW = 'providers.contacts.view';
206
+ exports.PROVIDERS_CONTACTS_SET_PRIMARY = 'providers.contacts.set_primary';
207
+ exports.PROVIDERS_DEPS_MANAGE = 'providers.deps.manage';
208
+ exports.PROVIDERS_DEPS_VIEW = 'providers.deps.view';
209
+ exports.PROVIDERS_EVALS_SCHEDULE = 'providers.evals.schedule';
210
+ exports.PROVIDERS_EVALS_EXECUTE = 'providers.evals.execute';
211
+ exports.PROVIDERS_EVALS_CANCEL = 'providers.evals.cancel';
212
+ exports.PROVIDERS_EVALS_VIEW = 'providers.evals.view';
213
+ exports.PROVIDERS_RISKS_REGISTER = 'providers.risks.register';
214
+ exports.PROVIDERS_RISKS_EDIT = 'providers.risks.edit';
215
+ exports.PROVIDERS_RISKS_VIEW_MATRIX = 'providers.risks.view_matrix';
216
+ exports.PROVIDERS_RISKS_CREATE_PLAN = 'providers.risks.create_plan';
217
+ exports.PROVIDERS_RISKS_EXECUTE_ACTION = 'providers.risks.execute_action';
218
+ exports.PROVIDERS_RISKS_VIEW_PLANS = 'providers.risks.view_plans';
219
+ exports.PROVIDERS_SURVEYS_CREATE = 'providers.surveys.create';
220
+ exports.PROVIDERS_SURVEYS_EDIT_QUESTIONS = 'providers.surveys.edit_questions';
221
+ exports.PROVIDERS_SURVEYS_MANAGE_LIFECYCLE = 'providers.surveys.manage_lifecycle';
222
+ exports.PROVIDERS_SURVEYS_RESPOND = 'providers.surveys.respond';
223
+ exports.PROVIDERS_SURVEYS_VIEW = 'providers.surveys.view';
224
+ exports.PROVIDERS_INCIDENTS_REGISTER = 'providers.incidents.register';
225
+ exports.PROVIDERS_INCIDENTS_ASSIGN = 'providers.incidents.assign';
226
+ exports.PROVIDERS_INCIDENTS_MANAGE = 'providers.incidents.manage';
227
+ exports.PROVIDERS_INCIDENTS_CLOSE = 'providers.incidents.close';
228
+ exports.PROVIDERS_INCIDENTS_REOPEN = 'providers.incidents.reopen';
229
+ exports.PROVIDERS_INCIDENTS_VIEW = 'providers.incidents.view';
230
+ exports.PROVIDERS_REPORTS_GENERATE = 'providers.reports.generate';
231
+ exports.PROVIDERS_REPORTS_EVALUATIONS = 'providers.reports.evaluations';
232
+ exports.PROVIDERS_REPORTS_RISKS = 'providers.reports.risks';
233
+ exports.PROVIDERS_REPORTS_SURVEYS = 'providers.reports.surveys';
234
+ exports.PROVIDERS_REPORTS_INCIDENTS = 'providers.reports.incidents';
235
+ exports.PROVIDERS_REPORTS_VIEW = 'providers.reports.view';
236
+ /** Objeto de dominio Proveedores (agrupación, igual que los demás microservicios). */
237
+ exports.PROVEEDORES_PERMISSIONS = {
238
+ // providers.profile.*
239
+ PROVIDERS_PROFILE_CREATE: exports.PROVIDERS_PROFILE_CREATE,
240
+ PROVIDERS_PROFILE_EDIT: exports.PROVIDERS_PROFILE_EDIT,
241
+ PROVIDERS_PROFILE_CHANGE_STATUS: exports.PROVIDERS_PROFILE_CHANGE_STATUS,
242
+ PROVIDERS_PROFILE_BLACKLIST: exports.PROVIDERS_PROFILE_BLACKLIST,
243
+ PROVIDERS_PROFILE_VIEW: exports.PROVIDERS_PROFILE_VIEW,
244
+ PROVIDERS_PROFILE_VIEW_BANK_INFO: exports.PROVIDERS_PROFILE_VIEW_BANK_INFO,
245
+ PROVIDERS_PROFILE_CHANGE_RISK: exports.PROVIDERS_PROFILE_CHANGE_RISK,
246
+ // providers.contacts.*
247
+ PROVIDERS_CONTACTS_MANAGE: exports.PROVIDERS_CONTACTS_MANAGE,
248
+ PROVIDERS_CONTACTS_VIEW: exports.PROVIDERS_CONTACTS_VIEW,
249
+ PROVIDERS_CONTACTS_SET_PRIMARY: exports.PROVIDERS_CONTACTS_SET_PRIMARY,
250
+ // providers.deps.*
251
+ PROVIDERS_DEPS_MANAGE: exports.PROVIDERS_DEPS_MANAGE,
252
+ PROVIDERS_DEPS_VIEW: exports.PROVIDERS_DEPS_VIEW,
253
+ // providers.evals.*
254
+ PROVIDERS_EVALS_SCHEDULE: exports.PROVIDERS_EVALS_SCHEDULE,
255
+ PROVIDERS_EVALS_EXECUTE: exports.PROVIDERS_EVALS_EXECUTE,
256
+ PROVIDERS_EVALS_CANCEL: exports.PROVIDERS_EVALS_CANCEL,
257
+ PROVIDERS_EVALS_VIEW: exports.PROVIDERS_EVALS_VIEW,
258
+ // providers.risks.*
259
+ PROVIDERS_RISKS_REGISTER: exports.PROVIDERS_RISKS_REGISTER,
260
+ PROVIDERS_RISKS_EDIT: exports.PROVIDERS_RISKS_EDIT,
261
+ PROVIDERS_RISKS_VIEW_MATRIX: exports.PROVIDERS_RISKS_VIEW_MATRIX,
262
+ PROVIDERS_RISKS_CREATE_PLAN: exports.PROVIDERS_RISKS_CREATE_PLAN,
263
+ PROVIDERS_RISKS_EXECUTE_ACTION: exports.PROVIDERS_RISKS_EXECUTE_ACTION,
264
+ PROVIDERS_RISKS_VIEW_PLANS: exports.PROVIDERS_RISKS_VIEW_PLANS,
265
+ // providers.surveys.*
266
+ PROVIDERS_SURVEYS_CREATE: exports.PROVIDERS_SURVEYS_CREATE,
267
+ PROVIDERS_SURVEYS_EDIT_QUESTIONS: exports.PROVIDERS_SURVEYS_EDIT_QUESTIONS,
268
+ PROVIDERS_SURVEYS_MANAGE_LIFECYCLE: exports.PROVIDERS_SURVEYS_MANAGE_LIFECYCLE,
269
+ PROVIDERS_SURVEYS_RESPOND: exports.PROVIDERS_SURVEYS_RESPOND,
270
+ PROVIDERS_SURVEYS_VIEW: exports.PROVIDERS_SURVEYS_VIEW,
271
+ // providers.incidents.*
272
+ PROVIDERS_INCIDENTS_REGISTER: exports.PROVIDERS_INCIDENTS_REGISTER,
273
+ PROVIDERS_INCIDENTS_ASSIGN: exports.PROVIDERS_INCIDENTS_ASSIGN,
274
+ PROVIDERS_INCIDENTS_MANAGE: exports.PROVIDERS_INCIDENTS_MANAGE,
275
+ PROVIDERS_INCIDENTS_CLOSE: exports.PROVIDERS_INCIDENTS_CLOSE,
276
+ PROVIDERS_INCIDENTS_REOPEN: exports.PROVIDERS_INCIDENTS_REOPEN,
277
+ PROVIDERS_INCIDENTS_VIEW: exports.PROVIDERS_INCIDENTS_VIEW,
278
+ // providers.reports.*
279
+ PROVIDERS_REPORTS_GENERATE: exports.PROVIDERS_REPORTS_GENERATE,
280
+ PROVIDERS_REPORTS_EVALUATIONS: exports.PROVIDERS_REPORTS_EVALUATIONS,
281
+ PROVIDERS_REPORTS_RISKS: exports.PROVIDERS_REPORTS_RISKS,
282
+ PROVIDERS_REPORTS_SURVEYS: exports.PROVIDERS_REPORTS_SURVEYS,
283
+ PROVIDERS_REPORTS_INCIDENTS: exports.PROVIDERS_REPORTS_INCIDENTS,
284
+ PROVIDERS_REPORTS_VIEW: exports.PROVIDERS_REPORTS_VIEW,
285
+ };
286
+ // ======================= AGREGADOS Y TIPOS =======================
287
+ /** Todas las constantes agrupadas por dominio. */
288
+ exports.PERMISSIONS_BY_DOMAIN = {
289
+ Auth: exports.AUTH_PERMISSIONS,
290
+ Contratos: exports.CONTRATOS_PERMISSIONS,
291
+ Entregables: exports.ENTREGABLES_PERMISSIONS,
292
+ Facturacion: exports.FACTURACION_PERMISSIONS,
293
+ SLAs: exports.SLAS_PERMISSIONS,
294
+ Proveedores: exports.PROVEEDORES_PERMISSIONS,
295
+ };
296
+ /** Lista plana de los 169 codes (para validación de sincronización con Auth). */
297
+ exports.ALL_PERMISSION_CODES = [
298
+ ...Object.values(exports.AUTH_PERMISSIONS),
299
+ ...Object.values(exports.CONTRATOS_PERMISSIONS),
300
+ ...Object.values(exports.ENTREGABLES_PERMISSIONS),
301
+ ...Object.values(exports.FACTURACION_PERMISSIONS),
302
+ ...Object.values(exports.SLAS_PERMISSIONS),
303
+ ...Object.values(exports.PROVEEDORES_PERMISSIONS),
304
+ ];
@@ -3,75 +3,75 @@
3
3
  * Implements complete role hierarchy for client/provider contract management
4
4
  */
5
5
  export declare const CONTRACTX_ROLES: {
6
- readonly SUPERADMIN: "superadmin";
7
- readonly CLIENT_CONTRACT_ADMIN: "client_contract_admin";
8
- readonly CLIENT_PERFORMANCE_RESP: "client_performance_resp";
9
- readonly CLIENT_FINANCE_RESP: "client_finance_resp";
10
- readonly CLIENT_REPORTS_RESP: "client_reports_resp";
11
- readonly CLIENT_RELATIONSHIP_RESP: "client_relationship_resp";
12
- readonly CLIENT_RISK_RESP: "client_risk_resp";
13
- readonly PROVIDER_CONTRACT_ADMIN: "provider_contract_admin";
14
- readonly PROVIDER_PERFORMANCE_RESP: "provider_performance_resp";
15
- readonly PROVIDER_FINANCE_RESP: "provider_finance_resp";
16
- readonly PROVIDER_REPORTS_RESP: "provider_reports_resp";
17
- readonly PROVIDER_RELATIONSHIP_RESP: "provider_relationship_resp";
18
- readonly PROVIDER_RISK_RESP: "provider_risk_resp";
19
- readonly SUPPORT: "support";
6
+ SUPERADMIN: string;
7
+ CLIENT_CONTRACT_ADMIN: string;
8
+ CLIENT_PERFORMANCE_RESP: string;
9
+ CLIENT_FINANCE_RESP: string;
10
+ CLIENT_REPORTS_RESP: string;
11
+ CLIENT_RELATIONSHIP_RESP: string;
12
+ CLIENT_RISK_RESP: string;
13
+ PROVIDER_CONTRACT_ADMIN: string;
14
+ PROVIDER_PERFORMANCE_RESP: string;
15
+ PROVIDER_FINANCE_RESP: string;
16
+ PROVIDER_REPORTS_RESP: string;
17
+ PROVIDER_RELATIONSHIP_RESP: string;
18
+ PROVIDER_RISK_RESP: string;
19
+ SUPPORT: string;
20
20
  };
21
21
  /**
22
22
  * ODS Role Hierarchy Levels - Exact hierarchy from Excel specification
23
23
  * Higher numbers indicate higher privileges
24
24
  */
25
25
  export declare const ROLE_HIERARCHY: {
26
- readonly superadmin: 100;
27
- readonly support: 85;
28
- readonly client_contract_admin: 80;
29
- readonly client_performance_resp: 70;
30
- readonly client_finance_resp: 70;
31
- readonly client_reports_resp: 65;
32
- readonly client_relationship_resp: 65;
33
- readonly client_risk_resp: 65;
34
- readonly provider_contract_admin: 80;
35
- readonly provider_performance_resp: 70;
36
- readonly provider_finance_resp: 70;
37
- readonly provider_reports_resp: 65;
38
- readonly provider_relationship_resp: 65;
39
- readonly provider_risk_resp: 65;
26
+ [CONTRACTX_ROLES.SUPERADMIN]: number;
27
+ [CONTRACTX_ROLES.SUPPORT]: number;
28
+ [CONTRACTX_ROLES.CLIENT_CONTRACT_ADMIN]: number;
29
+ [CONTRACTX_ROLES.CLIENT_PERFORMANCE_RESP]: number;
30
+ [CONTRACTX_ROLES.CLIENT_FINANCE_RESP]: number;
31
+ [CONTRACTX_ROLES.CLIENT_REPORTS_RESP]: number;
32
+ [CONTRACTX_ROLES.CLIENT_RELATIONSHIP_RESP]: number;
33
+ [CONTRACTX_ROLES.CLIENT_RISK_RESP]: number;
34
+ [CONTRACTX_ROLES.PROVIDER_CONTRACT_ADMIN]: number;
35
+ [CONTRACTX_ROLES.PROVIDER_PERFORMANCE_RESP]: number;
36
+ [CONTRACTX_ROLES.PROVIDER_FINANCE_RESP]: number;
37
+ [CONTRACTX_ROLES.PROVIDER_REPORTS_RESP]: number;
38
+ [CONTRACTX_ROLES.PROVIDER_RELATIONSHIP_RESP]: number;
39
+ [CONTRACTX_ROLES.PROVIDER_RISK_RESP]: number;
40
40
  };
41
41
  /**
42
42
  * Permission Categories for organization
43
43
  */
44
44
  export declare const PERMISSION_CATEGORIES: {
45
- readonly USER_MANAGEMENT: "User Management";
46
- readonly ROLE_MANAGEMENT: "Role Management";
47
- readonly PERMISSION_MANAGEMENT: "Permission Management";
48
- readonly CLIENT_MANAGEMENT: "Client Management";
49
- readonly PROVIDER_MANAGEMENT: "Provider Management";
50
- readonly CONTRACT_MANAGEMENT: "Contract Management";
51
- readonly DOCUMENT_MANAGEMENT: "Document Management";
52
- readonly DELIVERABLE_MANAGEMENT: "Deliverable Management";
53
- readonly PERFORMANCE_MANAGEMENT: "Performance Management";
54
- readonly FINANCIAL_MANAGEMENT: "Financial Management";
55
- readonly COMMUNICATION_MANAGEMENT: "Communication Management";
56
- readonly SYSTEM_ADMINISTRATION: "System Administration";
45
+ USER_MANAGEMENT: string;
46
+ ROLE_MANAGEMENT: string;
47
+ PERMISSION_MANAGEMENT: string;
48
+ CLIENT_MANAGEMENT: string;
49
+ PROVIDER_MANAGEMENT: string;
50
+ CONTRACT_MANAGEMENT: string;
51
+ DOCUMENT_MANAGEMENT: string;
52
+ DELIVERABLE_MANAGEMENT: string;
53
+ PERFORMANCE_MANAGEMENT: string;
54
+ FINANCIAL_MANAGEMENT: string;
55
+ COMMUNICATION_MANAGEMENT: string;
56
+ SYSTEM_ADMINISTRATION: string;
57
57
  };
58
58
  /**
59
59
  * ODS Role Groups for easy assignment and management
60
60
  */
61
61
  export declare const ROLE_GROUPS: {
62
- readonly ADMIN_ROLES: readonly ["superadmin", "client_contract_admin", "provider_contract_admin"];
63
- readonly CLIENT_ROLES: readonly ["client_contract_admin", "client_performance_resp", "client_finance_resp", "client_reports_resp", "client_relationship_resp", "client_risk_resp"];
64
- readonly PROVIDER_ROLES: readonly ["provider_contract_admin", "provider_performance_resp", "provider_finance_resp", "provider_reports_resp", "provider_relationship_resp", "provider_risk_resp"];
65
- readonly MANAGER_ROLES: readonly ["client_contract_admin", "provider_contract_admin", "client_performance_resp", "provider_performance_resp", "client_finance_resp", "provider_finance_resp"];
66
- readonly VIEWER_ROLES: readonly ["client_reports_resp", "provider_reports_resp"];
67
- readonly RESPONSIBILITY_ROLES: readonly ["client_performance_resp", "client_finance_resp", "client_reports_resp", "client_relationship_resp", "client_risk_resp", "provider_performance_resp", "provider_finance_resp", "provider_reports_resp", "provider_relationship_resp", "provider_risk_resp"];
68
- readonly SYSTEM_ROLES: readonly ["superadmin", "support"];
62
+ ADMIN_ROLES: string[];
63
+ CLIENT_ROLES: string[];
64
+ PROVIDER_ROLES: string[];
65
+ MANAGER_ROLES: string[];
66
+ VIEWER_ROLES: string[];
67
+ RESPONSIBILITY_ROLES: string[];
68
+ SYSTEM_ROLES: string[];
69
69
  };
70
70
  /**
71
71
  * Module constants for metadata
72
72
  */
73
73
  export declare const MODULE_CONSTANTS: {
74
- readonly MODULE_OPTIONS_TOKEN: "PERMISSIONS_CONTRACTX_MODULE_OPTIONS";
75
- readonly JWT_CONFIG_TOKEN: "PERMISSIONS_CONTRACTX_JWT_CONFIG";
74
+ MODULE_OPTIONS_TOKEN: string;
75
+ JWT_CONFIG_TOKEN: string;
76
76
  };
77
77
  //# sourceMappingURL=security.constants.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"security.constants.d.ts","sourceRoot":"","sources":["../../src/constants/security.constants.ts"],"names":[],"mappings":"AAaA;;;GAGG;AACH,eAAO,MAAM,eAAe;;;;;;;;;;;;;;;CAsBlB,CAAC;AAEX;;;GAGG;AACH,eAAO,MAAM,cAAc;;;;;;;;;;;;;;;CAmBjB,CAAC;AAEX;;GAEG;AACH,eAAO,MAAM,qBAAqB;;;;;;;;;;;;;CAaxB,CAAC;AAEX;;GAEG;AACH,eAAO,MAAM,WAAW;;;;;;;;CAwDd,CAAC;AAEX;;GAEG;AACH,eAAO,MAAM,gBAAgB;;;CAGnB,CAAC"}
1
+ {"version":3,"file":"security.constants.d.ts","sourceRoot":"","sources":["../../src/constants/security.constants.ts"],"names":[],"mappings":"AAYA;;;GAGG;AACH,eAAO,MAAM,eAAe;;;;;;;;;;;;;;;CAmB3B,CAAC;AACF;;;GAGG;AACH,eAAO,MAAM,cAAc;IACvB,CAAC,eAAe,CAAC,UAAU,CAAC,SAAK;IACjC,CAAC,eAAe,CAAC,OAAO,CAAC,SAAI;IAE7B,CAAC,eAAe,CAAC,qBAAqB,CAAC,SAAI;IAC3C,CAAC,eAAe,CAAC,uBAAuB,CAAC,SAAI;IAC7C,CAAC,eAAe,CAAC,mBAAmB,CAAC,SAAI;IACzC,CAAC,eAAe,CAAC,mBAAmB,CAAC,SAAI;IACzC,CAAC,eAAe,CAAC,wBAAwB,CAAC,SAAI;IAC9C,CAAC,eAAe,CAAC,gBAAgB,CAAC,SAAI;IAEtC,CAAC,eAAe,CAAC,uBAAuB,CAAC,SAAI;IAC7C,CAAC,eAAe,CAAC,yBAAyB,CAAC,SAAI;IAC/C,CAAC,eAAe,CAAC,qBAAqB,CAAC,SAAI;IAC3C,CAAC,eAAe,CAAC,qBAAqB,CAAC,SAAI;IAC3C,CAAC,eAAe,CAAC,0BAA0B,CAAC,SAAI;IAChD,CAAC,eAAe,CAAC,kBAAkB,CAAC,SAAI;CAC3C,CAAC;AACF;;GAEG;AACH,eAAO,MAAM,qBAAqB;;;;;;;;;;;;;CAajC,CAAC;AACF;;GAEG;AACH,eAAO,MAAM,WAAW;;;;;;;;CAkDvB,CAAC;AACF;;GAEG;AACH,eAAO,MAAM,gBAAgB;;;CAG5B,CAAC"}
@@ -1,4 +1,6 @@
1
1
  "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.MODULE_CONSTANTS = exports.ROLE_GROUPS = exports.PERMISSION_CATEGORIES = exports.ROLE_HIERARCHY = exports.CONTRACTX_ROLES = void 0;
2
4
  // ===================================================================
3
5
  // ContractX ODS (Operational Data Store) Security Constants
4
6
  // ===================================================================
@@ -11,8 +13,6 @@
11
13
  //
12
14
  // Version: 2.0.0 - ODS Complete Implementation
13
15
  // ===================================================================
14
- Object.defineProperty(exports, "__esModule", { value: true });
15
- exports.MODULE_CONSTANTS = exports.ROLE_GROUPS = exports.PERMISSION_CATEGORIES = exports.ROLE_HIERARCHY = exports.CONTRACTX_ROLES = void 0;
16
16
  /**
17
17
  * ODS Roles - Exact 16 roles from Excel specification
18
18
  * Implements complete role hierarchy for client/provider contract management
@@ -1,4 +1,3 @@
1
- import { JwtPayload } from '../interfaces';
2
1
  /**
3
2
  * Parameter decorator to inject the current authenticated user into a route handler
4
3
  *
@@ -8,66 +7,19 @@ import { JwtPayload } from '../interfaces';
8
7
  *
9
8
  * @example
10
9
  * ```typescript
11
- * // Get full user object
12
10
  * @Get('profile')
13
11
  * getProfile(@CurrentUser() user: JwtPayload) {
14
12
  * return user;
15
13
  * }
16
- *
17
- * // Get specific user property
18
- * @Post('action')
19
- * performAction(@CurrentUser('sub') userId: string) {
20
- * // Only gets the user ID
21
- * }
22
- * ```
23
- */
24
- export declare const CurrentUser: (...dataOrPipes: (keyof JwtPayload | import("@nestjs/common").PipeTransform<any, any> | import("@nestjs/common").Type<import("@nestjs/common").PipeTransform<any, any>> | undefined)[]) => ParameterDecorator;
25
- /**
26
- * Decorator to get current user's ID
27
- *
28
- * @example
29
- * ```typescript
30
- * @Post('create')
31
- * createResource(@UserId() userId: string) {
32
- * // Gets user.sub as userId
33
- * }
34
14
  * ```
35
15
  */
16
+ export declare const CurrentUser: (...dataOrPipes: (string | import("@nestjs/common").PipeTransform<any, any> | import("@nestjs/common").Type<import("@nestjs/common").PipeTransform<any, any>>)[]) => ParameterDecorator;
17
+ /** Decorator to get current user's ID */
36
18
  export declare const UserId: (...dataOrPipes: unknown[]) => ParameterDecorator;
37
- /**
38
- * Decorator to get current user's roles
39
- *
40
- * @example
41
- * ```typescript
42
- * @Get('roles')
43
- * getUserRoles(@UserRoles() roles: string[]) {
44
- * return { roles };
45
- * }
46
- * ```
47
- */
19
+ /** Decorator to get current user's roles */
48
20
  export declare const UserRoles: (...dataOrPipes: unknown[]) => ParameterDecorator;
49
- /**
50
- * Decorator to get current user's permissions
51
- *
52
- * @example
53
- * ```typescript
54
- * @Get('permissions')
55
- * getUserPermissions(@UserPermissions() permissions: string[]) {
56
- * return { permissions };
57
- * }
58
- * ```
59
- */
21
+ /** Decorator to get current user's permissions */
60
22
  export declare const UserPermissions: (...dataOrPipes: unknown[]) => ParameterDecorator;
61
- /**
62
- * Decorator to get current user's client ID
63
- *
64
- * @example
65
- * ```typescript
66
- * @Get('client-data')
67
- * getClientData(@UserClientId() clientId: string) {
68
- * // Gets user.clientId
69
- * }
70
- * ```
71
- */
23
+ /** Decorator to get current user's client ID */
72
24
  export declare const UserClientId: (...dataOrPipes: unknown[]) => ParameterDecorator;
73
25
  //# sourceMappingURL=current-user.decorator.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"current-user.decorator.d.ts","sourceRoot":"","sources":["../../src/decorators/current-user.decorator.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAE3C;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,eAAO,MAAM,WAAW,+MAOvB,CAAC;AAEF;;;;;;;;;;GAUG;AACH,eAAO,MAAM,MAAM,mDAKlB,CAAC;AAEF;;;;;;;;;;GAUG;AACH,eAAO,MAAM,SAAS,mDAKrB,CAAC;AAEF;;;;;;;;;;GAUG;AACH,eAAO,MAAM,eAAe,mDAK3B,CAAC;AAEF;;;;;;;;;;GAUG;AACH,eAAO,MAAM,YAAY,mDAKxB,CAAC"}
1
+ {"version":3,"file":"current-user.decorator.d.ts","sourceRoot":"","sources":["../../src/decorators/current-user.decorator.ts"],"names":[],"mappings":"AAEA;;;;;;;;;;;;;;GAcG;AACH,eAAO,MAAM,WAAW,yLAItB,CAAC;AAEH,yCAAyC;AACzC,eAAO,MAAM,MAAM,mDAGjB,CAAC;AAEH,4CAA4C;AAC5C,eAAO,MAAM,SAAS,mDAGpB,CAAC;AAEH,kDAAkD;AAClD,eAAO,MAAM,eAAe,mDAG1B,CAAC;AAEH,gDAAgD;AAChD,eAAO,MAAM,YAAY,mDAGvB,CAAC"}
@@ -11,17 +11,10 @@ const common_1 = require("@nestjs/common");
11
11
  *
12
12
  * @example
13
13
  * ```typescript
14
- * // Get full user object
15
14
  * @Get('profile')
16
15
  * getProfile(@CurrentUser() user: JwtPayload) {
17
16
  * return user;
18
17
  * }
19
- *
20
- * // Get specific user property
21
- * @Post('action')
22
- * performAction(@CurrentUser('sub') userId: string) {
23
- * // Only gets the user ID
24
- * }
25
18
  * ```
26
19
  */
27
20
  exports.CurrentUser = (0, common_1.createParamDecorator)((data, ctx) => {
@@ -29,62 +22,22 @@ exports.CurrentUser = (0, common_1.createParamDecorator)((data, ctx) => {
29
22
  const user = request.user;
30
23
  return data ? user?.[data] : user;
31
24
  });
32
- /**
33
- * Decorator to get current user's ID
34
- *
35
- * @example
36
- * ```typescript
37
- * @Post('create')
38
- * createResource(@UserId() userId: string) {
39
- * // Gets user.sub as userId
40
- * }
41
- * ```
42
- */
25
+ /** Decorator to get current user's ID */
43
26
  exports.UserId = (0, common_1.createParamDecorator)((_data, ctx) => {
44
27
  const request = ctx.switchToHttp().getRequest();
45
28
  return request.user?.sub;
46
29
  });
47
- /**
48
- * Decorator to get current user's roles
49
- *
50
- * @example
51
- * ```typescript
52
- * @Get('roles')
53
- * getUserRoles(@UserRoles() roles: string[]) {
54
- * return { roles };
55
- * }
56
- * ```
57
- */
30
+ /** Decorator to get current user's roles */
58
31
  exports.UserRoles = (0, common_1.createParamDecorator)((_data, ctx) => {
59
32
  const request = ctx.switchToHttp().getRequest();
60
33
  return request.user?.role || [];
61
34
  });
62
- /**
63
- * Decorator to get current user's permissions
64
- *
65
- * @example
66
- * ```typescript
67
- * @Get('permissions')
68
- * getUserPermissions(@UserPermissions() permissions: string[]) {
69
- * return { permissions };
70
- * }
71
- * ```
72
- */
35
+ /** Decorator to get current user's permissions */
73
36
  exports.UserPermissions = (0, common_1.createParamDecorator)((_data, ctx) => {
74
37
  const request = ctx.switchToHttp().getRequest();
75
38
  return request.user?.permissions || [];
76
39
  });
77
- /**
78
- * Decorator to get current user's client ID
79
- *
80
- * @example
81
- * ```typescript
82
- * @Get('client-data')
83
- * getClientData(@UserClientId() clientId: string) {
84
- * // Gets user.clientId
85
- * }
86
- * ```
87
- */
40
+ /** Decorator to get current user's client ID */
88
41
  exports.UserClientId = (0, common_1.createParamDecorator)((_data, ctx) => {
89
42
  const request = ctx.switchToHttp().getRequest();
90
43
  return request.user?.clientId;
@@ -2,4 +2,5 @@ export * from './public.decorator';
2
2
  export * from './roles.decorator';
3
3
  export * from './permissions.decorator';
4
4
  export * from './current-user.decorator';
5
+ export * from './permission-writes.decorator';
5
6
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/decorators/index.ts"],"names":[],"mappings":"AAAA,cAAc,oBAAoB,CAAC;AACnC,cAAc,mBAAmB,CAAC;AAClC,cAAc,yBAAyB,CAAC;AACxC,cAAc,0BAA0B,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/decorators/index.ts"],"names":[],"mappings":"AAAA,cAAc,oBAAoB,CAAC;AACnC,cAAc,mBAAmB,CAAC;AAClC,cAAc,yBAAyB,CAAC;AACxC,cAAc,0BAA0B,CAAC;AACzC,cAAc,+BAA+B,CAAC"}
@@ -18,3 +18,4 @@ __exportStar(require("./public.decorator"), exports);
18
18
  __exportStar(require("./roles.decorator"), exports);
19
19
  __exportStar(require("./permissions.decorator"), exports);
20
20
  __exportStar(require("./current-user.decorator"), exports);
21
+ __exportStar(require("./permission-writes.decorator"), exports);