@ttt-productions/ttt-core 0.4.6 → 0.6.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.
- package/dist/constants/options.d.ts +0 -4
- package/dist/constants/options.d.ts.map +1 -1
- package/dist/constants/options.js +3 -10
- package/dist/constants/options.js.map +1 -1
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -0
- package/dist/index.js.map +1 -1
- package/dist/paths/collections.d.ts +3 -1
- package/dist/paths/collections.d.ts.map +1 -1
- package/dist/paths/collections.js +3 -1
- package/dist/paths/collections.js.map +1 -1
- package/dist/paths/path-builders.d.ts +3 -1
- package/dist/paths/path-builders.d.ts.map +1 -1
- package/dist/paths/path-builders.js +3 -1
- package/dist/paths/path-builders.js.map +1 -1
- package/dist/permissions/index.d.ts +3 -0
- package/dist/permissions/index.d.ts.map +1 -0
- package/dist/permissions/index.js +3 -0
- package/dist/permissions/index.js.map +1 -0
- package/dist/permissions/project-permissions.d.ts +264 -0
- package/dist/permissions/project-permissions.d.ts.map +1 -0
- package/dist/permissions/project-permissions.js +268 -0
- package/dist/permissions/project-permissions.js.map +1 -0
- package/dist/permissions/role-assignment-policy.d.ts +17 -0
- package/dist/permissions/role-assignment-policy.d.ts.map +1 -0
- package/dist/permissions/role-assignment-policy.js +32 -0
- package/dist/permissions/role-assignment-policy.js.map +1 -0
- package/dist/schemas/admin.d.ts.map +1 -1
- package/dist/schemas/admin.js +1 -0
- package/dist/schemas/admin.js.map +1 -1
- package/dist/schemas/project-management.d.ts +8 -3
- package/dist/schemas/project-management.d.ts.map +1 -1
- package/dist/schemas/project-management.js +4 -2
- package/dist/schemas/project-management.js.map +1 -1
- package/dist/schemas/share-operation.d.ts +60 -0
- package/dist/schemas/share-operation.d.ts.map +1 -1
- package/dist/schemas/share-operation.js +1 -0
- package/dist/schemas/share-operation.js.map +1 -1
- package/dist/schemas/users.d.ts +2 -2
- package/dist/types/admin.d.ts +1 -1
- package/dist/types/admin.d.ts.map +1 -1
- package/dist/types/audit.d.ts +1 -1
- package/dist/types/audit.d.ts.map +1 -1
- package/dist/types/content.d.ts +0 -6
- package/dist/types/content.d.ts.map +1 -1
- package/dist/types/project.d.ts +8 -29
- package/dist/types/project.d.ts.map +1 -1
- package/package.json +5 -1
|
@@ -0,0 +1,268 @@
|
|
|
1
|
+
export const PROJECT_ROLES = {
|
|
2
|
+
Owner: {
|
|
3
|
+
label: 'Owner',
|
|
4
|
+
description: 'Project owner. Holds all project actions implicitly. Assigned automatically at project creation and non-assignable via role-management UIs.',
|
|
5
|
+
},
|
|
6
|
+
ProjectManager: {
|
|
7
|
+
label: 'Project Manager',
|
|
8
|
+
description: 'Can perform every project action except granting Owner, ProjectManager, RoleManager, or ShareManager.',
|
|
9
|
+
},
|
|
10
|
+
PublicProjectEditor: {
|
|
11
|
+
label: 'Public Project Editor',
|
|
12
|
+
description: 'Can edit public-facing project title, description, and copy.',
|
|
13
|
+
},
|
|
14
|
+
RoleManager: {
|
|
15
|
+
label: 'Role Manager',
|
|
16
|
+
description: 'Can assign and remove ordinary project roles without escalating manager or share authority.',
|
|
17
|
+
},
|
|
18
|
+
ShareManager: {
|
|
19
|
+
label: 'Share Manager',
|
|
20
|
+
description: 'Can adjust active member shares and pending invite share offers.',
|
|
21
|
+
},
|
|
22
|
+
InviteManager: {
|
|
23
|
+
label: 'Invite Manager',
|
|
24
|
+
description: 'Can send project invites, view invite state, and cancel or revoke pending invites.',
|
|
25
|
+
},
|
|
26
|
+
FileViewer: {
|
|
27
|
+
label: 'File Viewer',
|
|
28
|
+
description: 'Can view project files stored in the project files subcollection.',
|
|
29
|
+
},
|
|
30
|
+
FileManager: {
|
|
31
|
+
label: 'File Manager',
|
|
32
|
+
description: 'Can upload and delete project files.',
|
|
33
|
+
},
|
|
34
|
+
JobManager: {
|
|
35
|
+
label: 'Job Manager',
|
|
36
|
+
description: 'Can open, close, and delete project jobs and manage applicants without starting invite conversations.',
|
|
37
|
+
},
|
|
38
|
+
OpportunityManager: {
|
|
39
|
+
label: 'Opportunity Manager',
|
|
40
|
+
description: 'Can open, edit, and close project opportunities and manage respondents without starting invite conversations.',
|
|
41
|
+
},
|
|
42
|
+
LibraryEditor: {
|
|
43
|
+
label: 'Library Editor',
|
|
44
|
+
description: 'Can create and edit Tales, Tunes, Television content, categories, and media assets.',
|
|
45
|
+
},
|
|
46
|
+
LibrarySubmitter: {
|
|
47
|
+
label: 'Library Submitter',
|
|
48
|
+
description: 'Can submit project library content for admin/library review.',
|
|
49
|
+
},
|
|
50
|
+
ChatChannelManager: {
|
|
51
|
+
label: 'Chat Channel Manager',
|
|
52
|
+
description: 'Can create, update, archive, and moderate project chat channels.',
|
|
53
|
+
},
|
|
54
|
+
};
|
|
55
|
+
export const PROJECT_ROLE_IDS = Object.keys(PROJECT_ROLES);
|
|
56
|
+
export const PROJECT_ACTIONS = {
|
|
57
|
+
'project.read': {
|
|
58
|
+
label: 'Read project',
|
|
59
|
+
description: 'Baseline active-member read floor for internal project state.',
|
|
60
|
+
grantedTo: PROJECT_ROLE_IDS,
|
|
61
|
+
},
|
|
62
|
+
'project.metadata.update': {
|
|
63
|
+
label: 'Update project metadata',
|
|
64
|
+
description: 'Edit working title, description, and public project copy.',
|
|
65
|
+
grantedTo: ['Owner', 'ProjectManager', 'PublicProjectEditor'],
|
|
66
|
+
},
|
|
67
|
+
'member.role.update': {
|
|
68
|
+
label: 'Update member roles',
|
|
69
|
+
description: 'Assign or remove project roles on active members.',
|
|
70
|
+
grantedTo: ['Owner', 'ProjectManager', 'RoleManager'],
|
|
71
|
+
},
|
|
72
|
+
'member.profession.update': {
|
|
73
|
+
label: 'Update member professions',
|
|
74
|
+
description: 'Assign or remove member professions/staffing labels.',
|
|
75
|
+
grantedTo: ['Owner', 'ProjectManager', 'RoleManager'],
|
|
76
|
+
},
|
|
77
|
+
'project.shares.manage': {
|
|
78
|
+
label: 'Manage project shares',
|
|
79
|
+
description: 'Run project share operations under the 1000-share cap.',
|
|
80
|
+
grantedTo: ['Owner', 'ProjectManager', 'ShareManager'],
|
|
81
|
+
},
|
|
82
|
+
'project.memberShares.addActive': {
|
|
83
|
+
label: 'Add active member shares',
|
|
84
|
+
description: 'Increase shares for an existing active project member.',
|
|
85
|
+
grantedTo: ['Owner', 'ProjectManager', 'ShareManager'],
|
|
86
|
+
},
|
|
87
|
+
'invite.send': {
|
|
88
|
+
label: 'Send invites',
|
|
89
|
+
description: 'Start a project invite conversation and reserve pending shares.',
|
|
90
|
+
grantedTo: ['Owner', 'ProjectManager', 'InviteManager'],
|
|
91
|
+
},
|
|
92
|
+
'invite.list': {
|
|
93
|
+
label: 'List invites',
|
|
94
|
+
description: 'View project invite conversation state.',
|
|
95
|
+
grantedTo: ['Owner', 'ProjectManager', 'InviteManager'],
|
|
96
|
+
},
|
|
97
|
+
'invite.revokeAny': {
|
|
98
|
+
label: 'Revoke pending invites',
|
|
99
|
+
description: 'Cancel or revoke pending project invites.',
|
|
100
|
+
grantedTo: ['Owner', 'ProjectManager', 'InviteManager'],
|
|
101
|
+
},
|
|
102
|
+
'invite.shares.update': {
|
|
103
|
+
label: 'Update invite shares',
|
|
104
|
+
description: 'Increase shares offered on a pending invite.',
|
|
105
|
+
grantedTo: ['Owner', 'ProjectManager', 'ShareManager'],
|
|
106
|
+
},
|
|
107
|
+
'file.view': {
|
|
108
|
+
label: 'View project files',
|
|
109
|
+
description: 'Read project file metadata from the file subcollection.',
|
|
110
|
+
grantedTo: ['Owner', 'ProjectManager', 'FileViewer', 'FileManager'],
|
|
111
|
+
},
|
|
112
|
+
'file.upload': {
|
|
113
|
+
label: 'Upload project files',
|
|
114
|
+
description: 'Upload shared project files.',
|
|
115
|
+
grantedTo: ['Owner', 'ProjectManager', 'FileManager'],
|
|
116
|
+
},
|
|
117
|
+
'file.delete': {
|
|
118
|
+
label: 'Delete project files',
|
|
119
|
+
description: 'Delete shared project files.',
|
|
120
|
+
grantedTo: ['Owner', 'ProjectManager', 'FileManager'],
|
|
121
|
+
},
|
|
122
|
+
'job.open': {
|
|
123
|
+
label: 'Open jobs',
|
|
124
|
+
description: 'Create project job postings.',
|
|
125
|
+
grantedTo: ['Owner', 'ProjectManager', 'JobManager'],
|
|
126
|
+
},
|
|
127
|
+
'job.close': {
|
|
128
|
+
label: 'Close jobs',
|
|
129
|
+
description: 'Close project job postings.',
|
|
130
|
+
grantedTo: ['Owner', 'ProjectManager', 'JobManager'],
|
|
131
|
+
},
|
|
132
|
+
'job.delete': {
|
|
133
|
+
label: 'Delete jobs',
|
|
134
|
+
description: 'Delete project job postings.',
|
|
135
|
+
grantedTo: ['Owner', 'ProjectManager', 'JobManager'],
|
|
136
|
+
},
|
|
137
|
+
'job.applicant.save': {
|
|
138
|
+
label: 'Save job applicants',
|
|
139
|
+
description: 'Save or unsave project job applicants.',
|
|
140
|
+
grantedTo: ['Owner', 'ProjectManager', 'JobManager'],
|
|
141
|
+
},
|
|
142
|
+
'job.applicant.reject': {
|
|
143
|
+
label: 'Reject job applicants',
|
|
144
|
+
description: 'Reject project job applicants.',
|
|
145
|
+
grantedTo: ['Owner', 'ProjectManager', 'JobManager'],
|
|
146
|
+
},
|
|
147
|
+
'opportunity.open': {
|
|
148
|
+
label: 'Open opportunities',
|
|
149
|
+
description: 'Create project opportunity prompts.',
|
|
150
|
+
grantedTo: ['Owner', 'ProjectManager', 'OpportunityManager'],
|
|
151
|
+
},
|
|
152
|
+
'opportunity.edit': {
|
|
153
|
+
label: 'Edit opportunities',
|
|
154
|
+
description: 'Edit project opportunity prompts.',
|
|
155
|
+
grantedTo: ['Owner', 'ProjectManager', 'OpportunityManager'],
|
|
156
|
+
},
|
|
157
|
+
'opportunity.close': {
|
|
158
|
+
label: 'Close opportunities',
|
|
159
|
+
description: 'Close project opportunities.',
|
|
160
|
+
grantedTo: ['Owner', 'ProjectManager', 'OpportunityManager'],
|
|
161
|
+
},
|
|
162
|
+
'opportunity.respondent.manage': {
|
|
163
|
+
label: 'Manage opportunity respondents',
|
|
164
|
+
description: 'Manage project opportunity respondents without starting invite conversations.',
|
|
165
|
+
grantedTo: ['Owner', 'ProjectManager', 'OpportunityManager'],
|
|
166
|
+
},
|
|
167
|
+
'library.chapter.create': {
|
|
168
|
+
label: 'Create Tale chapters',
|
|
169
|
+
description: 'Create Tale chapter content.',
|
|
170
|
+
grantedTo: ['Owner', 'ProjectManager', 'LibraryEditor'],
|
|
171
|
+
},
|
|
172
|
+
'library.song.create': {
|
|
173
|
+
label: 'Create Tune songs',
|
|
174
|
+
description: 'Create Tune song content.',
|
|
175
|
+
grantedTo: ['Owner', 'ProjectManager', 'LibraryEditor'],
|
|
176
|
+
},
|
|
177
|
+
'library.show.create': {
|
|
178
|
+
label: 'Create Television shows',
|
|
179
|
+
description: 'Create Television show content.',
|
|
180
|
+
grantedTo: ['Owner', 'ProjectManager', 'LibraryEditor'],
|
|
181
|
+
},
|
|
182
|
+
'library.tale.details.update': {
|
|
183
|
+
label: 'Update Tale details',
|
|
184
|
+
description: 'Edit Tale details and public copy.',
|
|
185
|
+
grantedTo: ['Owner', 'ProjectManager', 'LibraryEditor'],
|
|
186
|
+
},
|
|
187
|
+
'library.tune.details.update': {
|
|
188
|
+
label: 'Update Tune details',
|
|
189
|
+
description: 'Edit Tune details and public copy.',
|
|
190
|
+
grantedTo: ['Owner', 'ProjectManager', 'LibraryEditor'],
|
|
191
|
+
},
|
|
192
|
+
'library.television.details.update': {
|
|
193
|
+
label: 'Update Television details',
|
|
194
|
+
description: 'Edit Television details and public copy.',
|
|
195
|
+
grantedTo: ['Owner', 'ProjectManager', 'LibraryEditor'],
|
|
196
|
+
},
|
|
197
|
+
'library.chapter.details.update': {
|
|
198
|
+
label: 'Update chapter details',
|
|
199
|
+
description: 'Edit chapter details and body fields.',
|
|
200
|
+
grantedTo: ['Owner', 'ProjectManager', 'LibraryEditor'],
|
|
201
|
+
},
|
|
202
|
+
'library.song.details.update': {
|
|
203
|
+
label: 'Update song details',
|
|
204
|
+
description: 'Edit song details and media metadata.',
|
|
205
|
+
grantedTo: ['Owner', 'ProjectManager', 'LibraryEditor'],
|
|
206
|
+
},
|
|
207
|
+
'library.show.details.update': {
|
|
208
|
+
label: 'Update show details',
|
|
209
|
+
description: 'Edit show details and media metadata.',
|
|
210
|
+
grantedTo: ['Owner', 'ProjectManager', 'LibraryEditor'],
|
|
211
|
+
},
|
|
212
|
+
'library.tale.categories.update': {
|
|
213
|
+
label: 'Update Tale categories',
|
|
214
|
+
description: 'Edit Tale category assignments.',
|
|
215
|
+
grantedTo: ['Owner', 'ProjectManager', 'LibraryEditor'],
|
|
216
|
+
},
|
|
217
|
+
'library.tune.categories.update': {
|
|
218
|
+
label: 'Update Tune categories',
|
|
219
|
+
description: 'Edit Tune category assignments.',
|
|
220
|
+
grantedTo: ['Owner', 'ProjectManager', 'LibraryEditor'],
|
|
221
|
+
},
|
|
222
|
+
'library.television.categories.update': {
|
|
223
|
+
label: 'Update Television categories',
|
|
224
|
+
description: 'Edit Television category assignments.',
|
|
225
|
+
grantedTo: ['Owner', 'ProjectManager', 'LibraryEditor'],
|
|
226
|
+
},
|
|
227
|
+
'library.asset.upload': {
|
|
228
|
+
label: 'Upload library assets',
|
|
229
|
+
description: 'Upload or replace covers and sub-item media assets.',
|
|
230
|
+
grantedTo: ['Owner', 'ProjectManager', 'LibraryEditor'],
|
|
231
|
+
},
|
|
232
|
+
'library.review.submit': {
|
|
233
|
+
label: 'Submit library review',
|
|
234
|
+
description: 'Submit project content for admin/library review.',
|
|
235
|
+
grantedTo: ['Owner', 'ProjectManager', 'LibrarySubmitter'],
|
|
236
|
+
},
|
|
237
|
+
'chat.channel.create': {
|
|
238
|
+
label: 'Create chat channels',
|
|
239
|
+
description: 'Create project chat channels.',
|
|
240
|
+
grantedTo: ['Owner', 'ProjectManager', 'ChatChannelManager'],
|
|
241
|
+
},
|
|
242
|
+
'chat.channel.update': {
|
|
243
|
+
label: 'Update chat channels',
|
|
244
|
+
description: 'Update project chat channel settings and access policy.',
|
|
245
|
+
grantedTo: ['Owner', 'ProjectManager', 'ChatChannelManager'],
|
|
246
|
+
},
|
|
247
|
+
'chat.channel.archive': {
|
|
248
|
+
label: 'Archive chat channels',
|
|
249
|
+
description: 'Archive project chat channels.',
|
|
250
|
+
grantedTo: ['Owner', 'ProjectManager', 'ChatChannelManager'],
|
|
251
|
+
},
|
|
252
|
+
'chat.message.moderate': {
|
|
253
|
+
label: 'Moderate chat messages',
|
|
254
|
+
description: 'Update or delete project channel messages for moderation.',
|
|
255
|
+
grantedTo: ['Owner', 'ProjectManager', 'ChatChannelManager'],
|
|
256
|
+
},
|
|
257
|
+
};
|
|
258
|
+
export const PROJECT_ACTION_IDS = Object.keys(PROJECT_ACTIONS);
|
|
259
|
+
export function isProjectRoleId(value) {
|
|
260
|
+
return typeof value === 'string' && Object.prototype.hasOwnProperty.call(PROJECT_ROLES, value);
|
|
261
|
+
}
|
|
262
|
+
export function isProjectActionId(value) {
|
|
263
|
+
return typeof value === 'string' && Object.prototype.hasOwnProperty.call(PROJECT_ACTIONS, value);
|
|
264
|
+
}
|
|
265
|
+
export function getActionsForProjectRole(role) {
|
|
266
|
+
return PROJECT_ACTION_IDS.filter((action) => PROJECT_ACTIONS[action].grantedTo.includes(role));
|
|
267
|
+
}
|
|
268
|
+
//# sourceMappingURL=project-permissions.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"project-permissions.js","sourceRoot":"","sources":["../../src/permissions/project-permissions.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,aAAa,GAAG;IAC3B,KAAK,EAAE;QACL,KAAK,EAAE,OAAO;QACd,WAAW,EAAE,6IAA6I;KAC3J;IACD,cAAc,EAAE;QACd,KAAK,EAAE,iBAAiB;QACxB,WAAW,EAAE,uGAAuG;KACrH;IACD,mBAAmB,EAAE;QACnB,KAAK,EAAE,uBAAuB;QAC9B,WAAW,EAAE,8DAA8D;KAC5E;IACD,WAAW,EAAE;QACX,KAAK,EAAE,cAAc;QACrB,WAAW,EAAE,6FAA6F;KAC3G;IACD,YAAY,EAAE;QACZ,KAAK,EAAE,eAAe;QACtB,WAAW,EAAE,kEAAkE;KAChF;IACD,aAAa,EAAE;QACb,KAAK,EAAE,gBAAgB;QACvB,WAAW,EAAE,oFAAoF;KAClG;IACD,UAAU,EAAE;QACV,KAAK,EAAE,aAAa;QACpB,WAAW,EAAE,mEAAmE;KACjF;IACD,WAAW,EAAE;QACX,KAAK,EAAE,cAAc;QACrB,WAAW,EAAE,sCAAsC;KACpD;IACD,UAAU,EAAE;QACV,KAAK,EAAE,aAAa;QACpB,WAAW,EAAE,uGAAuG;KACrH;IACD,kBAAkB,EAAE;QAClB,KAAK,EAAE,qBAAqB;QAC5B,WAAW,EAAE,+GAA+G;KAC7H;IACD,aAAa,EAAE;QACb,KAAK,EAAE,gBAAgB;QACvB,WAAW,EAAE,qFAAqF;KACnG;IACD,gBAAgB,EAAE;QAChB,KAAK,EAAE,mBAAmB;QAC1B,WAAW,EAAE,8DAA8D;KAC5E;IACD,kBAAkB,EAAE;QAClB,KAAK,EAAE,sBAAsB;QAC7B,WAAW,EAAE,kEAAkE;KAChF;CACO,CAAC;AAGX,MAAM,CAAC,MAAM,gBAAgB,GAAG,MAAM,CAAC,IAAI,CAAC,aAAa,CAAoB,CAAC;AAE9E,MAAM,CAAC,MAAM,eAAe,GAAG;IAC7B,cAAc,EAAE;QACd,KAAK,EAAE,cAAc;QACrB,WAAW,EAAE,+DAA+D;QAC5E,SAAS,EAAE,gBAAgB;KAC5B;IACD,yBAAyB,EAAE;QACzB,KAAK,EAAE,yBAAyB;QAChC,WAAW,EAAE,2DAA2D;QACxE,SAAS,EAAE,CAAC,OAAO,EAAE,gBAAgB,EAAE,qBAAqB,CAAC;KAC9D;IACD,oBAAoB,EAAE;QACpB,KAAK,EAAE,qBAAqB;QAC5B,WAAW,EAAE,mDAAmD;QAChE,SAAS,EAAE,CAAC,OAAO,EAAE,gBAAgB,EAAE,aAAa,CAAC;KACtD;IACD,0BAA0B,EAAE;QAC1B,KAAK,EAAE,2BAA2B;QAClC,WAAW,EAAE,sDAAsD;QACnE,SAAS,EAAE,CAAC,OAAO,EAAE,gBAAgB,EAAE,aAAa,CAAC;KACtD;IACD,uBAAuB,EAAE;QACvB,KAAK,EAAE,uBAAuB;QAC9B,WAAW,EAAE,wDAAwD;QACrE,SAAS,EAAE,CAAC,OAAO,EAAE,gBAAgB,EAAE,cAAc,CAAC;KACvD;IACD,gCAAgC,EAAE;QAChC,KAAK,EAAE,0BAA0B;QACjC,WAAW,EAAE,wDAAwD;QACrE,SAAS,EAAE,CAAC,OAAO,EAAE,gBAAgB,EAAE,cAAc,CAAC;KACvD;IACD,aAAa,EAAE;QACb,KAAK,EAAE,cAAc;QACrB,WAAW,EAAE,iEAAiE;QAC9E,SAAS,EAAE,CAAC,OAAO,EAAE,gBAAgB,EAAE,eAAe,CAAC;KACxD;IACD,aAAa,EAAE;QACb,KAAK,EAAE,cAAc;QACrB,WAAW,EAAE,yCAAyC;QACtD,SAAS,EAAE,CAAC,OAAO,EAAE,gBAAgB,EAAE,eAAe,CAAC;KACxD;IACD,kBAAkB,EAAE;QAClB,KAAK,EAAE,wBAAwB;QAC/B,WAAW,EAAE,2CAA2C;QACxD,SAAS,EAAE,CAAC,OAAO,EAAE,gBAAgB,EAAE,eAAe,CAAC;KACxD;IACD,sBAAsB,EAAE;QACtB,KAAK,EAAE,sBAAsB;QAC7B,WAAW,EAAE,8CAA8C;QAC3D,SAAS,EAAE,CAAC,OAAO,EAAE,gBAAgB,EAAE,cAAc,CAAC;KACvD;IACD,WAAW,EAAE;QACX,KAAK,EAAE,oBAAoB;QAC3B,WAAW,EAAE,yDAAyD;QACtE,SAAS,EAAE,CAAC,OAAO,EAAE,gBAAgB,EAAE,YAAY,EAAE,aAAa,CAAC;KACpE;IACD,aAAa,EAAE;QACb,KAAK,EAAE,sBAAsB;QAC7B,WAAW,EAAE,8BAA8B;QAC3C,SAAS,EAAE,CAAC,OAAO,EAAE,gBAAgB,EAAE,aAAa,CAAC;KACtD;IACD,aAAa,EAAE;QACb,KAAK,EAAE,sBAAsB;QAC7B,WAAW,EAAE,8BAA8B;QAC3C,SAAS,EAAE,CAAC,OAAO,EAAE,gBAAgB,EAAE,aAAa,CAAC;KACtD;IACD,UAAU,EAAE;QACV,KAAK,EAAE,WAAW;QAClB,WAAW,EAAE,8BAA8B;QAC3C,SAAS,EAAE,CAAC,OAAO,EAAE,gBAAgB,EAAE,YAAY,CAAC;KACrD;IACD,WAAW,EAAE;QACX,KAAK,EAAE,YAAY;QACnB,WAAW,EAAE,6BAA6B;QAC1C,SAAS,EAAE,CAAC,OAAO,EAAE,gBAAgB,EAAE,YAAY,CAAC;KACrD;IACD,YAAY,EAAE;QACZ,KAAK,EAAE,aAAa;QACpB,WAAW,EAAE,8BAA8B;QAC3C,SAAS,EAAE,CAAC,OAAO,EAAE,gBAAgB,EAAE,YAAY,CAAC;KACrD;IACD,oBAAoB,EAAE;QACpB,KAAK,EAAE,qBAAqB;QAC5B,WAAW,EAAE,wCAAwC;QACrD,SAAS,EAAE,CAAC,OAAO,EAAE,gBAAgB,EAAE,YAAY,CAAC;KACrD;IACD,sBAAsB,EAAE;QACtB,KAAK,EAAE,uBAAuB;QAC9B,WAAW,EAAE,gCAAgC;QAC7C,SAAS,EAAE,CAAC,OAAO,EAAE,gBAAgB,EAAE,YAAY,CAAC;KACrD;IACD,kBAAkB,EAAE;QAClB,KAAK,EAAE,oBAAoB;QAC3B,WAAW,EAAE,qCAAqC;QAClD,SAAS,EAAE,CAAC,OAAO,EAAE,gBAAgB,EAAE,oBAAoB,CAAC;KAC7D;IACD,kBAAkB,EAAE;QAClB,KAAK,EAAE,oBAAoB;QAC3B,WAAW,EAAE,mCAAmC;QAChD,SAAS,EAAE,CAAC,OAAO,EAAE,gBAAgB,EAAE,oBAAoB,CAAC;KAC7D;IACD,mBAAmB,EAAE;QACnB,KAAK,EAAE,qBAAqB;QAC5B,WAAW,EAAE,8BAA8B;QAC3C,SAAS,EAAE,CAAC,OAAO,EAAE,gBAAgB,EAAE,oBAAoB,CAAC;KAC7D;IACD,+BAA+B,EAAE;QAC/B,KAAK,EAAE,gCAAgC;QACvC,WAAW,EAAE,+EAA+E;QAC5F,SAAS,EAAE,CAAC,OAAO,EAAE,gBAAgB,EAAE,oBAAoB,CAAC;KAC7D;IACD,wBAAwB,EAAE;QACxB,KAAK,EAAE,sBAAsB;QAC7B,WAAW,EAAE,8BAA8B;QAC3C,SAAS,EAAE,CAAC,OAAO,EAAE,gBAAgB,EAAE,eAAe,CAAC;KACxD;IACD,qBAAqB,EAAE;QACrB,KAAK,EAAE,mBAAmB;QAC1B,WAAW,EAAE,2BAA2B;QACxC,SAAS,EAAE,CAAC,OAAO,EAAE,gBAAgB,EAAE,eAAe,CAAC;KACxD;IACD,qBAAqB,EAAE;QACrB,KAAK,EAAE,yBAAyB;QAChC,WAAW,EAAE,iCAAiC;QAC9C,SAAS,EAAE,CAAC,OAAO,EAAE,gBAAgB,EAAE,eAAe,CAAC;KACxD;IACD,6BAA6B,EAAE;QAC7B,KAAK,EAAE,qBAAqB;QAC5B,WAAW,EAAE,oCAAoC;QACjD,SAAS,EAAE,CAAC,OAAO,EAAE,gBAAgB,EAAE,eAAe,CAAC;KACxD;IACD,6BAA6B,EAAE;QAC7B,KAAK,EAAE,qBAAqB;QAC5B,WAAW,EAAE,oCAAoC;QACjD,SAAS,EAAE,CAAC,OAAO,EAAE,gBAAgB,EAAE,eAAe,CAAC;KACxD;IACD,mCAAmC,EAAE;QACnC,KAAK,EAAE,2BAA2B;QAClC,WAAW,EAAE,0CAA0C;QACvD,SAAS,EAAE,CAAC,OAAO,EAAE,gBAAgB,EAAE,eAAe,CAAC;KACxD;IACD,gCAAgC,EAAE;QAChC,KAAK,EAAE,wBAAwB;QAC/B,WAAW,EAAE,uCAAuC;QACpD,SAAS,EAAE,CAAC,OAAO,EAAE,gBAAgB,EAAE,eAAe,CAAC;KACxD;IACD,6BAA6B,EAAE;QAC7B,KAAK,EAAE,qBAAqB;QAC5B,WAAW,EAAE,uCAAuC;QACpD,SAAS,EAAE,CAAC,OAAO,EAAE,gBAAgB,EAAE,eAAe,CAAC;KACxD;IACD,6BAA6B,EAAE;QAC7B,KAAK,EAAE,qBAAqB;QAC5B,WAAW,EAAE,uCAAuC;QACpD,SAAS,EAAE,CAAC,OAAO,EAAE,gBAAgB,EAAE,eAAe,CAAC;KACxD;IACD,gCAAgC,EAAE;QAChC,KAAK,EAAE,wBAAwB;QAC/B,WAAW,EAAE,iCAAiC;QAC9C,SAAS,EAAE,CAAC,OAAO,EAAE,gBAAgB,EAAE,eAAe,CAAC;KACxD;IACD,gCAAgC,EAAE;QAChC,KAAK,EAAE,wBAAwB;QAC/B,WAAW,EAAE,iCAAiC;QAC9C,SAAS,EAAE,CAAC,OAAO,EAAE,gBAAgB,EAAE,eAAe,CAAC;KACxD;IACD,sCAAsC,EAAE;QACtC,KAAK,EAAE,8BAA8B;QACrC,WAAW,EAAE,uCAAuC;QACpD,SAAS,EAAE,CAAC,OAAO,EAAE,gBAAgB,EAAE,eAAe,CAAC;KACxD;IACD,sBAAsB,EAAE;QACtB,KAAK,EAAE,uBAAuB;QAC9B,WAAW,EAAE,qDAAqD;QAClE,SAAS,EAAE,CAAC,OAAO,EAAE,gBAAgB,EAAE,eAAe,CAAC;KACxD;IACD,uBAAuB,EAAE;QACvB,KAAK,EAAE,uBAAuB;QAC9B,WAAW,EAAE,kDAAkD;QAC/D,SAAS,EAAE,CAAC,OAAO,EAAE,gBAAgB,EAAE,kBAAkB,CAAC;KAC3D;IACD,qBAAqB,EAAE;QACrB,KAAK,EAAE,sBAAsB;QAC7B,WAAW,EAAE,+BAA+B;QAC5C,SAAS,EAAE,CAAC,OAAO,EAAE,gBAAgB,EAAE,oBAAoB,CAAC;KAC7D;IACD,qBAAqB,EAAE;QACrB,KAAK,EAAE,sBAAsB;QAC7B,WAAW,EAAE,yDAAyD;QACtE,SAAS,EAAE,CAAC,OAAO,EAAE,gBAAgB,EAAE,oBAAoB,CAAC;KAC7D;IACD,sBAAsB,EAAE;QACtB,KAAK,EAAE,uBAAuB;QAC9B,WAAW,EAAE,gCAAgC;QAC7C,SAAS,EAAE,CAAC,OAAO,EAAE,gBAAgB,EAAE,oBAAoB,CAAC;KAC7D;IACD,uBAAuB,EAAE;QACvB,KAAK,EAAE,wBAAwB;QAC/B,WAAW,EAAE,2DAA2D;QACxE,SAAS,EAAE,CAAC,OAAO,EAAE,gBAAgB,EAAE,oBAAoB,CAAC;KAC7D;CAKD,CAAC;AAGH,MAAM,CAAC,MAAM,kBAAkB,GAAG,MAAM,CAAC,IAAI,CAAC,eAAe,CAAsB,CAAC;AAEpF,MAAM,UAAU,eAAe,CAAC,KAAc;IAC5C,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,aAAa,EAAE,KAAK,CAAC,CAAC;AACjG,CAAC;AAED,MAAM,UAAU,iBAAiB,CAAC,KAAc;IAC9C,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,eAAe,EAAE,KAAK,CAAC,CAAC;AACnG,CAAC;AAED,MAAM,UAAU,wBAAwB,CAAC,IAAmB;IAC1D,OAAO,kBAAkB,CAAC,MAAM,CAAC,CAAC,MAAM,EAAE,EAAE,CACzC,eAAe,CAAC,MAAM,CAAC,CAAC,SAAsC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAC/E,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
export type ProjectRoleAssignmentAction = 'add' | 'remove';
|
|
2
|
+
export declare const NON_ASSIGNABLE_PROJECT_ROLES: readonly ["Owner"];
|
|
3
|
+
export declare const OWNER_ONLY_ASSIGNABLE_PROJECT_ROLES: readonly ["ProjectManager", "RoleManager", "ShareManager"];
|
|
4
|
+
export interface CanAssignProjectRoleArgs {
|
|
5
|
+
actorIsOwner: boolean;
|
|
6
|
+
actorRoles: readonly string[];
|
|
7
|
+
targetRole: string;
|
|
8
|
+
action: ProjectRoleAssignmentAction;
|
|
9
|
+
actorUid?: string;
|
|
10
|
+
targetUid?: string;
|
|
11
|
+
}
|
|
12
|
+
export interface CanAssignProjectRoleResult {
|
|
13
|
+
allowed: boolean;
|
|
14
|
+
reason?: string;
|
|
15
|
+
}
|
|
16
|
+
export declare function canAssignProjectRole({ actorIsOwner, actorRoles, targetRole, actorUid, targetUid, }: CanAssignProjectRoleArgs): CanAssignProjectRoleResult;
|
|
17
|
+
//# sourceMappingURL=role-assignment-policy.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"role-assignment-policy.d.ts","sourceRoot":"","sources":["../../src/permissions/role-assignment-policy.ts"],"names":[],"mappings":"AAGA,MAAM,MAAM,2BAA2B,GAAG,KAAK,GAAG,QAAQ,CAAC;AAE3D,eAAO,MAAM,4BAA4B,oBAAwD,CAAC;AAClG,eAAO,MAAM,mCAAmC,4DAIH,CAAC;AAI9C,MAAM,WAAW,wBAAwB;IACvC,YAAY,EAAE,OAAO,CAAC;IACtB,UAAU,EAAE,SAAS,MAAM,EAAE,CAAC;IAC9B,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,EAAE,2BAA2B,CAAC;IACpC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,0BAA0B;IACzC,OAAO,EAAE,OAAO,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,wBAAgB,oBAAoB,CAAC,EACnC,YAAY,EACZ,UAAU,EACV,UAAU,EACV,QAAQ,EACR,SAAS,GACV,EAAE,wBAAwB,GAAG,0BAA0B,CA8BvD"}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import { isProjectRoleId } from './project-permissions.js';
|
|
2
|
+
export const NON_ASSIGNABLE_PROJECT_ROLES = ['Owner'];
|
|
3
|
+
export const OWNER_ONLY_ASSIGNABLE_PROJECT_ROLES = [
|
|
4
|
+
'ProjectManager',
|
|
5
|
+
'RoleManager',
|
|
6
|
+
'ShareManager',
|
|
7
|
+
];
|
|
8
|
+
const ownerOnlyAssignable = new Set(OWNER_ONLY_ASSIGNABLE_PROJECT_ROLES);
|
|
9
|
+
export function canAssignProjectRole({ actorIsOwner, actorRoles, targetRole, actorUid, targetUid, }) {
|
|
10
|
+
if (targetRole === 'Owner') {
|
|
11
|
+
return { allowed: false, reason: 'Owner is not an assignable project role.' };
|
|
12
|
+
}
|
|
13
|
+
if (!isProjectRoleId(targetRole)) {
|
|
14
|
+
return { allowed: false, reason: `Unknown project role: ${targetRole}` };
|
|
15
|
+
}
|
|
16
|
+
if (actorUid && targetUid && actorUid === targetUid && !actorIsOwner) {
|
|
17
|
+
return { allowed: false, reason: 'Only the project owner can edit their own roles.' };
|
|
18
|
+
}
|
|
19
|
+
if (actorIsOwner) {
|
|
20
|
+
return { allowed: true };
|
|
21
|
+
}
|
|
22
|
+
const normalizedActorRoles = actorRoles.filter(isProjectRoleId);
|
|
23
|
+
const actorCanManageRoles = normalizedActorRoles.includes('ProjectManager') || normalizedActorRoles.includes('RoleManager');
|
|
24
|
+
if (!actorCanManageRoles) {
|
|
25
|
+
return { allowed: false, reason: 'ProjectManager or RoleManager role is required.' };
|
|
26
|
+
}
|
|
27
|
+
if (ownerOnlyAssignable.has(targetRole)) {
|
|
28
|
+
return { allowed: false, reason: `${targetRole} can only be assigned or removed by the project owner.` };
|
|
29
|
+
}
|
|
30
|
+
return { allowed: true };
|
|
31
|
+
}
|
|
32
|
+
//# sourceMappingURL=role-assignment-policy.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"role-assignment-policy.js","sourceRoot":"","sources":["../../src/permissions/role-assignment-policy.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAC;AAI3D,MAAM,CAAC,MAAM,4BAA4B,GAAG,CAAC,OAAO,CAA6C,CAAC;AAClG,MAAM,CAAC,MAAM,mCAAmC,GAAG;IACjD,gBAAgB;IAChB,aAAa;IACb,cAAc;CAC6B,CAAC;AAE9C,MAAM,mBAAmB,GAAG,IAAI,GAAG,CAAgB,mCAAmC,CAAC,CAAC;AAgBxF,MAAM,UAAU,oBAAoB,CAAC,EACnC,YAAY,EACZ,UAAU,EACV,UAAU,EACV,QAAQ,EACR,SAAS,GACgB;IACzB,IAAI,UAAU,KAAK,OAAO,EAAE,CAAC;QAC3B,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,0CAA0C,EAAE,CAAC;IAChF,CAAC;IAED,IAAI,CAAC,eAAe,CAAC,UAAU,CAAC,EAAE,CAAC;QACjC,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,yBAAyB,UAAU,EAAE,EAAE,CAAC;IAC3E,CAAC;IAED,IAAI,QAAQ,IAAI,SAAS,IAAI,QAAQ,KAAK,SAAS,IAAI,CAAC,YAAY,EAAE,CAAC;QACrE,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,kDAAkD,EAAE,CAAC;IACxF,CAAC;IAED,IAAI,YAAY,EAAE,CAAC;QACjB,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;IAC3B,CAAC;IAED,MAAM,oBAAoB,GAAG,UAAU,CAAC,MAAM,CAAC,eAAe,CAAC,CAAC;IAChE,MAAM,mBAAmB,GACvB,oBAAoB,CAAC,QAAQ,CAAC,gBAAgB,CAAC,IAAI,oBAAoB,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC;IAElG,IAAI,CAAC,mBAAmB,EAAE,CAAC;QACzB,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,iDAAiD,EAAE,CAAC;IACvF,CAAC;IAED,IAAI,mBAAmB,CAAC,GAAG,CAAC,UAAU,CAAC,EAAE,CAAC;QACxC,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,UAAU,wDAAwD,EAAE,CAAC;IAC3G,CAAC;IAED,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;AAC3B,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"admin.d.ts","sourceRoot":"","sources":["../../src/schemas/admin.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"admin.d.ts","sourceRoot":"","sources":["../../src/schemas/admin.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAUvD,eAAO,MAAM,oCAAoC,iDAAwB,CAAC;AAC1E,MAAM,MAAM,8BAA8B,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,oCAAoC,CAAC,CAAC;AAElG,eAAO,MAAM,8BAA8B;;;;;;EAEhC,CAAC;AACZ,MAAM,MAAM,wBAAwB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,8BAA8B,CAAC,CAAC;AAEtF,eAAO,MAAM,wBAAwB;;;;;;;;;;;;EAI1B,CAAC;AACZ,MAAM,MAAM,kBAAkB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,wBAAwB,CAAC,CAAC;AAE1E,eAAO,MAAM,8BAA8B;;;;;;;;;;;;;;;EAKhC,CAAC;AACZ,MAAM,MAAM,wBAAwB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,8BAA8B,CAAC,CAAC;AAatF,eAAO,MAAM,4BAA4B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAE9B,CAAC;AACZ,MAAM,MAAM,sBAAsB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,4BAA4B,CAAC,CAAC;AAyBlF,eAAO,MAAM,mCAAmC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAM/C,CAAC;AACF,MAAM,MAAM,6BAA6B,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,mCAAmC,CAAC,CAAC;AAIhG,eAAO,MAAM,0BAA0B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAW5B,CAAC;AACZ,MAAM,MAAM,oBAAoB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,0BAA0B,CAAC,CAAC;AAM9E;;;;;;;GAOG;AACH,eAAO,MAAM,0BAA0B;;;;;;;;;;;;;;;;;;;;;;;;;EAepC,CAAC;AAEJ,MAAM,MAAM,oBAAoB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,0BAA0B,CAAC,CAAC"}
|
package/dist/schemas/admin.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"admin.js","sourceRoot":"","sources":["../../src/schemas/admin.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,iBAAiB,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAG7D,MAAM,gBAAgB,GAAwC;IAC5D,eAAe;IACf,eAAe;IACf,YAAY;IACZ,gBAAgB;
|
|
1
|
+
{"version":3,"file":"admin.js","sourceRoot":"","sources":["../../src/schemas/admin.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,iBAAiB,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAG7D,MAAM,gBAAgB,GAAwC;IAC5D,eAAe;IACf,eAAe;IACf,YAAY;IACZ,gBAAgB;IAChB,cAAc;CACf,CAAC;AAEF,MAAM,CAAC,MAAM,oCAAoC,GAAG,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC;AAG1E,MAAM,CAAC,MAAM,8BAA8B,GAAG,CAAC,CAAC,MAAM,CAAC;IACrD,WAAW,EAAE,iBAAiB;CAC/B,CAAC,CAAC,MAAM,EAAE,CAAC;AAGZ,MAAM,CAAC,MAAM,wBAAwB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC/C,MAAM,EAAE,YAAY;IACpB,QAAQ,EAAE,CAAC,CAAC,IAAI,CAAC,gBAAgB,CAAC;IAClC,WAAW,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC;CACrD,CAAC,CAAC,MAAM,EAAE,CAAC;AAGZ,MAAM,CAAC,MAAM,8BAA8B,GAAG,CAAC,CAAC,MAAM,CAAC;IACrD,WAAW,EAAE,iBAAiB;IAC9B,MAAM,EAAE,YAAY;IACpB,QAAQ,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC;IACxC,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC;CACjC,CAAC,CAAC,MAAM,EAAE,CAAC;AAGZ,mCAAmC;AAEnC,MAAM,oBAAoB,GAAG,CAAC,CAAC,MAAM,CAAC;IACpC,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC;IAC9B,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC;IACjC,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC;IACxC,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IAC9B,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE;IAC/C,SAAS,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC,QAAQ,EAAE;CACnE,CAAC,CAAC,MAAM,EAAE,CAAC;AAEZ,MAAM,CAAC,MAAM,4BAA4B,GAAG,CAAC,CAAC,MAAM,CAAC;IACnD,KAAK,EAAE,CAAC,CAAC,KAAK,CAAC,oBAAoB,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC;CAC9C,CAAC,CAAC,MAAM,EAAE,CAAC;AAGZ,MAAM,UAAU,GAAG,CAAC,CAAC,MAAM,CAAC;IAC1B,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC;IAC9B,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC;IACjC,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC;IACxC,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE;IAC/C,KAAK,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,SAAS,EAAE,aAAa,EAAE,aAAa,EAAE,UAAU,EAAE,eAAe,CAAC,CAAC,CAAC,QAAQ,EAAE;IAChG,QAAQ,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,OAAO,EAAE,YAAY,EAAE,eAAe,EAAE,aAAa,EAAE,eAAe,CAAC,CAAC,CAAC,QAAQ,EAAE;IAC9G,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;CAC/B,CAAC,CAAC,MAAM,EAAE,CAAC;AAEZ,MAAM,uBAAuB,GAAG,CAAC,CAAC,MAAM,CAAC;IACvC,MAAM,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC;IACrD,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE;CAChD,CAAC,CAAC,MAAM,EAAE,CAAC;AAEZ,MAAM,gBAAgB,GAAG,CAAC,CAAC,MAAM,CAAC;IAChC,KAAK,EAAE,uBAAuB,CAAC,QAAQ,EAAE;IACzC,KAAK,EAAE,uBAAuB,CAAC,QAAQ,EAAE;IACzC,UAAU,EAAE,uBAAuB,CAAC,QAAQ,EAAE;CAC/C,CAAC,CAAC,MAAM,EAAE,CAAC;AAEZ,wEAAwE;AACxE,qDAAqD;AACrD,MAAM,CAAC,MAAM,mCAAmC,GAAG,CAAC,CAAC,MAAM,CAAC;IAC1D,KAAK,EAAE,CAAC,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE;IAC9C,UAAU,EAAE,gBAAgB,CAAC,QAAQ,EAAE;CACxC,CAAC,CAAC,MAAM,EAAE,CAAC,MAAM,CAChB,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,KAAK,KAAK,SAAS,IAAI,IAAI,CAAC,UAAU,KAAK,SAAS,EACnE,EAAE,OAAO,EAAE,2DAA2D,EAAE,CACzE,CAAC;AAGF,MAAM,oBAAoB,GAAG,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;AAE9C,MAAM,CAAC,MAAM,0BAA0B,GAAG,CAAC,CAAC,MAAM,CAAC;IACjD,KAAK,EAAE,oBAAoB;IAC3B,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC;QACb,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,QAAQ,EAAE;QAChD,eAAe,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE;QACvC,kBAAkB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE;QACnD,mBAAmB,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE;KAC5C,CAAC,CAAC,MAAM,EAAE,CAAC,MAAM,CAChB,CAAC,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,EAChC,EAAE,OAAO,EAAE,mCAAmC,EAAE,CACjD;CACF,CAAC,CAAC,MAAM,EAAE,CAAC;AAGZ,+BAA+B;AAE/B,MAAM,SAAS,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;AAE7C;;;;;;;GAOG;AACH,MAAM,CAAC,MAAM,0BAA0B,GAAG,CAAC,CAAC,MAAM,CAAC;IACjD,SAAS,EAAE,CAAC,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,QAAQ,EAAE;IACxC,YAAY,EAAE,CAAC,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,QAAQ,EAAE;IAC3C,WAAW,EAAE,CAAC,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,QAAQ,EAAE;IAC1C,cAAc,EAAE,CAAC,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,QAAQ,EAAE;CAC9C,CAAC;KACC,MAAM,EAAE;KACR,MAAM,CACL,CAAC,IAAI,EAAE,EAAE,CACP,CAAC,IAAI,CAAC,SAAS,EAAE,MAAM,IAAI,CAAC,CAAC;IAC3B,CAAC,IAAI,CAAC,YAAY,EAAE,MAAM,IAAI,CAAC,CAAC;IAChC,CAAC,IAAI,CAAC,WAAW,EAAE,MAAM,IAAI,CAAC,CAAC;IAC/B,CAAC,IAAI,CAAC,cAAc,EAAE,MAAM,IAAI,CAAC,CAAC;IACpC,CAAC,EACH,EAAE,OAAO,EAAE,sFAAsF,EAAE,CACpG,CAAC"}
|
|
@@ -61,25 +61,30 @@ export type CreateProjectInput = z.infer<typeof CreateProjectInputSchema>;
|
|
|
61
61
|
export declare const DeleteProjectFileInputSchema: z.ZodObject<{
|
|
62
62
|
projectId: z.ZodString;
|
|
63
63
|
file: z.ZodObject<{
|
|
64
|
+
id: z.ZodOptional<z.ZodString>;
|
|
64
65
|
url: z.ZodString;
|
|
65
66
|
name: z.ZodOptional<z.ZodString>;
|
|
66
67
|
}, "strip", z.ZodTypeAny, {
|
|
67
68
|
url: string;
|
|
69
|
+
id?: string | undefined;
|
|
68
70
|
name?: string | undefined;
|
|
69
71
|
}, {
|
|
70
72
|
url: string;
|
|
73
|
+
id?: string | undefined;
|
|
71
74
|
name?: string | undefined;
|
|
72
75
|
}>;
|
|
73
76
|
}, "strict", z.ZodTypeAny, {
|
|
74
77
|
projectId: string;
|
|
75
78
|
file: {
|
|
76
79
|
url: string;
|
|
80
|
+
id?: string | undefined;
|
|
77
81
|
name?: string | undefined;
|
|
78
82
|
};
|
|
79
83
|
}, {
|
|
80
84
|
projectId: string;
|
|
81
85
|
file: {
|
|
82
86
|
url: string;
|
|
87
|
+
id?: string | undefined;
|
|
83
88
|
name?: string | undefined;
|
|
84
89
|
};
|
|
85
90
|
}>;
|
|
@@ -418,18 +423,18 @@ export type UpdateProjectMemberProfessionsInput = z.infer<typeof UpdateProjectMe
|
|
|
418
423
|
export declare const UpdateProjectMemberRoleInputSchema: z.ZodObject<{
|
|
419
424
|
projectId: z.ZodString;
|
|
420
425
|
userId: z.ZodString;
|
|
421
|
-
role: z.ZodEnum<[
|
|
426
|
+
role: z.ZodEnum<["Owner" | "ProjectManager" | "PublicProjectEditor" | "RoleManager" | "ShareManager" | "InviteManager" | "FileViewer" | "FileManager" | "JobManager" | "OpportunityManager" | "LibraryEditor" | "LibrarySubmitter" | "ChatChannelManager", ...("Owner" | "ProjectManager" | "PublicProjectEditor" | "RoleManager" | "ShareManager" | "InviteManager" | "FileViewer" | "FileManager" | "JobManager" | "OpportunityManager" | "LibraryEditor" | "LibrarySubmitter" | "ChatChannelManager")[]]>;
|
|
422
427
|
action: z.ZodEnum<["add", "remove"]>;
|
|
423
428
|
}, "strict", z.ZodTypeAny, {
|
|
424
429
|
projectId: string;
|
|
425
430
|
userId: string;
|
|
426
431
|
action: "add" | "remove";
|
|
427
|
-
role:
|
|
432
|
+
role: "Owner" | "ProjectManager" | "PublicProjectEditor" | "RoleManager" | "ShareManager" | "InviteManager" | "FileViewer" | "FileManager" | "JobManager" | "OpportunityManager" | "LibraryEditor" | "LibrarySubmitter" | "ChatChannelManager";
|
|
428
433
|
}, {
|
|
429
434
|
projectId: string;
|
|
430
435
|
userId: string;
|
|
431
436
|
action: "add" | "remove";
|
|
432
|
-
role:
|
|
437
|
+
role: "Owner" | "ProjectManager" | "PublicProjectEditor" | "RoleManager" | "ShareManager" | "InviteManager" | "FileViewer" | "FileManager" | "JobManager" | "OpportunityManager" | "LibraryEditor" | "LibrarySubmitter" | "ChatChannelManager";
|
|
433
438
|
}>;
|
|
434
439
|
export type UpdateProjectMemberRoleInput = z.infer<typeof UpdateProjectMemberRoleInputSchema>;
|
|
435
440
|
export declare const UpdatePublicProjectDetailsInputSchema: z.ZodObject<{
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"project-management.d.ts","sourceRoot":"","sources":["../../src/schemas/project-management.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;
|
|
1
|
+
{"version":3,"file":"project-management.d.ts","sourceRoot":"","sources":["../../src/schemas/project-management.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAsBxB,eAAO,MAAM,wBAAwB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAcnC,CAAC;AACH,MAAM,MAAM,kBAAkB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,wBAAwB,CAAC,CAAC;AAE1E,eAAO,MAAM,4BAA4B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAO9B,CAAC;AACZ,MAAM,MAAM,sBAAsB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,4BAA4B,CAAC,CAAC;AAElF,eAAO,MAAM,kBAAkB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAgC7B,CAAC;AACH,MAAM,MAAM,YAAY,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,kBAAkB,CAAC,CAAC;AAC9D,MAAM,MAAM,gBAAgB,GAAG,YAAY,CAAC,MAAM,CAAC,CAAC;AAEpD,eAAO,MAAM,8BAA8B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAMhC,CAAC;AACZ,MAAM,MAAM,wBAAwB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,8BAA8B,CAAC,CAAC;AAEtF,eAAO,MAAM,6BAA6B;;;;;;;;;EAG/B,CAAC;AACZ,MAAM,MAAM,uBAAuB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,6BAA6B,CAAC,CAAC;AAIpF,eAAO,MAAM,yCAAyC;;;;;;;;;;;;;;;EAK3C,CAAC;AACZ,MAAM,MAAM,mCAAmC,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,yCAAyC,CAAC,CAAC;AAI5G,eAAO,MAAM,kCAAkC;;;;;;;;;;;;;;;EAKpC,CAAC;AACZ,MAAM,MAAM,4BAA4B,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,kCAAkC,CAAC,CAAC;AAE9F,eAAO,MAAM,qCAAqC;;;;;;;;;;;;EAIvC,CAAC;AACZ,MAAM,MAAM,+BAA+B,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,qCAAqC,CAAC,CAAC"}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { z } from 'zod';
|
|
2
2
|
import { projectIdSchema, userIdSchema, addRemoveActionSchema, projectTypeSchema, jobIdSchema, opportunityIdSchema, replyIdSchema, skillIdSchema, } from './atoms.js';
|
|
3
|
-
import { PROFESSION_OPTIONS
|
|
3
|
+
import { PROFESSION_OPTIONS } from '../constants/options.js';
|
|
4
|
+
import { PROJECT_ROLE_IDS } from '../permissions/index.js';
|
|
4
5
|
import { MAX_INVITE_MESSAGE_LENGTH } from '../constants/business.js';
|
|
5
6
|
const baseFields = {
|
|
6
7
|
workingTitle: z.string().min(1).max(200),
|
|
@@ -26,6 +27,7 @@ export const CreateProjectInputSchema = z.discriminatedUnion('origin', [
|
|
|
26
27
|
export const DeleteProjectFileInputSchema = z.object({
|
|
27
28
|
projectId: projectIdSchema,
|
|
28
29
|
file: z.object({
|
|
30
|
+
id: z.string().optional(),
|
|
29
31
|
url: z.string().min(1),
|
|
30
32
|
name: z.string().optional(),
|
|
31
33
|
}),
|
|
@@ -81,7 +83,7 @@ export const UpdateProjectMemberProfessionsInputSchema = z.object({
|
|
|
81
83
|
profession: z.enum(PROFESSION_VALUES),
|
|
82
84
|
action: addRemoveActionSchema,
|
|
83
85
|
}).strict();
|
|
84
|
-
const ROLE_VALUES =
|
|
86
|
+
const ROLE_VALUES = PROJECT_ROLE_IDS;
|
|
85
87
|
export const UpdateProjectMemberRoleInputSchema = z.object({
|
|
86
88
|
projectId: projectIdSchema,
|
|
87
89
|
userId: userIdSchema,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"project-management.js","sourceRoot":"","sources":["../../src/schemas/project-management.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EACL,eAAe,EACf,YAAY,EACZ,qBAAqB,EACrB,iBAAiB,EACjB,WAAW,EACX,mBAAmB,EACnB,aAAa,EACb,aAAa,GACd,MAAM,YAAY,CAAC;AACpB,OAAO,EAAE,kBAAkB,EAAE,
|
|
1
|
+
{"version":3,"file":"project-management.js","sourceRoot":"","sources":["../../src/schemas/project-management.ts"],"names":[],"mappings":"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"}
|