@getcommunity/gc-validators 0.0.216 → 0.0.218

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 (86) hide show
  1. package/dist/chunk-CKQMccvm.cjs +28 -0
  2. package/dist/constants.cjs +461 -438
  3. package/dist/constants.cjs.map +1 -1
  4. package/dist/constants.d.cts +2 -233
  5. package/dist/constants.d.mts +2 -0
  6. package/dist/constants.mjs +355 -0
  7. package/dist/constants.mjs.map +1 -0
  8. package/dist/index-B6pNPQrV.d.mts +4192 -0
  9. package/dist/index-CQtazKyX.d.cts +4192 -0
  10. package/dist/index-CiWVYf_f.d.cts +292 -0
  11. package/dist/index-DOR_It7I.d.mts +292 -0
  12. package/dist/index.cjs +350 -1388
  13. package/dist/index.d.cts +3 -10
  14. package/dist/index.d.mts +3 -0
  15. package/dist/index.mjs +6 -0
  16. package/dist/permissions.cjs +757 -30
  17. package/dist/permissions.cjs.map +1 -1
  18. package/dist/permissions.d.cts +2 -747
  19. package/dist/permissions.d.mts +2 -0
  20. package/dist/permissions.mjs +753 -0
  21. package/dist/permissions.mjs.map +1 -0
  22. package/dist/schemas.cjs +1781 -896
  23. package/dist/schemas.cjs.map +1 -1
  24. package/dist/schemas.d.cts +2 -1935
  25. package/dist/schemas.d.mts +2 -0
  26. package/dist/schemas.mjs +1559 -0
  27. package/dist/schemas.mjs.map +1 -0
  28. package/dist/types.cjs +0 -6
  29. package/dist/types.d.cts +2 -851
  30. package/dist/types.d.mts +2 -0
  31. package/dist/types.mjs +1 -0
  32. package/dist/utilities.cjs +76 -38
  33. package/dist/utilities.cjs.map +1 -1
  34. package/dist/utilities.d.cts +2 -26
  35. package/dist/utilities.d.mts +2 -0
  36. package/dist/utilities.mjs +68 -0
  37. package/dist/utilities.mjs.map +1 -0
  38. package/package.json +4 -4
  39. package/dist/chunk-57PRSDKM.cjs +0 -368
  40. package/dist/chunk-57PRSDKM.cjs.map +0 -1
  41. package/dist/chunk-7CI3M2JM.js +0 -3
  42. package/dist/chunk-7CI3M2JM.js.map +0 -1
  43. package/dist/chunk-ABPKJ5AP.js +0 -259
  44. package/dist/chunk-ABPKJ5AP.js.map +0 -1
  45. package/dist/chunk-BYTL5J7D.js +0 -2606
  46. package/dist/chunk-BYTL5J7D.js.map +0 -1
  47. package/dist/chunk-CDBT3J75.cjs +0 -4
  48. package/dist/chunk-CDBT3J75.cjs.map +0 -1
  49. package/dist/chunk-DU5WCXJJ.js +0 -685
  50. package/dist/chunk-DU5WCXJJ.js.map +0 -1
  51. package/dist/chunk-IMI6XEMX.cjs +0 -2849
  52. package/dist/chunk-IMI6XEMX.cjs.map +0 -1
  53. package/dist/chunk-NMDMJZPF.cjs +0 -692
  54. package/dist/chunk-NMDMJZPF.cjs.map +0 -1
  55. package/dist/chunk-NNLSUHMQ.js +0 -63
  56. package/dist/chunk-NNLSUHMQ.js.map +0 -1
  57. package/dist/chunk-UAQWYRXG.cjs +0 -92
  58. package/dist/chunk-UAQWYRXG.cjs.map +0 -1
  59. package/dist/comment.document-HT6qJLh5.d.cts +0 -468
  60. package/dist/comment.document-xCsfHOer.d.ts +0 -468
  61. package/dist/constants.d.ts +0 -233
  62. package/dist/constants.js +0 -3
  63. package/dist/constants.js.map +0 -1
  64. package/dist/font.constants-BVwxlH3J.d.cts +0 -52
  65. package/dist/font.constants-BVwxlH3J.d.ts +0 -52
  66. package/dist/index.cjs.map +0 -1
  67. package/dist/index.d.ts +0 -10
  68. package/dist/index.js +0 -7
  69. package/dist/index.js.map +0 -1
  70. package/dist/permission.constants-B99nobws.d.cts +0 -30
  71. package/dist/permission.constants-B99nobws.d.ts +0 -30
  72. package/dist/permissions.d.ts +0 -747
  73. package/dist/permissions.js +0 -3
  74. package/dist/permissions.js.map +0 -1
  75. package/dist/response-8Bkawql4.d.cts +0 -56
  76. package/dist/response-8Bkawql4.d.ts +0 -56
  77. package/dist/schemas.d.ts +0 -1935
  78. package/dist/schemas.js +0 -5
  79. package/dist/schemas.js.map +0 -1
  80. package/dist/types.cjs.map +0 -1
  81. package/dist/types.d.ts +0 -851
  82. package/dist/types.js +0 -3
  83. package/dist/types.js.map +0 -1
  84. package/dist/utilities.d.ts +0 -26
  85. package/dist/utilities.js +0 -3
  86. package/dist/utilities.js.map +0 -1
@@ -1,32 +1,759 @@
1
- 'use strict';
1
+ Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
2
+ //#region src/permissions/permission.abac.ts
3
+ const ROLE_PERMISSIONS = {
4
+ authenticated: {
5
+ "user-account": {
6
+ list: false,
7
+ create: false,
8
+ read: false,
9
+ update: false,
10
+ delete: false
11
+ },
12
+ comment: {
13
+ list: true,
14
+ create: true,
15
+ update: (u, p, d) => u.id === Number(d?.author?.id),
16
+ delete: (u, p, d) => u.id === Number(d?.author?.id),
17
+ report: true
18
+ },
19
+ client: {
20
+ access: false,
21
+ billing: false,
22
+ owner: false,
23
+ manager: false,
24
+ admin: false,
25
+ list: false,
26
+ create: false,
27
+ read: false,
28
+ update: false,
29
+ delete: false
30
+ },
31
+ "client-user": {
32
+ list: false,
33
+ create: false,
34
+ read: false,
35
+ update: false,
36
+ delete: false
37
+ },
38
+ "client-content-pillar": {
39
+ list: false,
40
+ create: false,
41
+ read: false,
42
+ update: false,
43
+ delete: false
44
+ },
45
+ "client-media-platform": {
46
+ list: false,
47
+ create: false,
48
+ read: false,
49
+ update: false,
50
+ delete: false
51
+ },
52
+ "client-media-platform-content-type": {
53
+ list: false,
54
+ create: false,
55
+ read: false,
56
+ update: false,
57
+ delete: false
58
+ },
59
+ "client-project": {
60
+ list: false,
61
+ create: false,
62
+ read: false,
63
+ update: false,
64
+ delete: false,
65
+ assign: false
66
+ },
67
+ "client-report": {
68
+ list: false,
69
+ create: false,
70
+ read: false,
71
+ update: false,
72
+ delete: false
73
+ },
74
+ "client-styleguide": {
75
+ list: false,
76
+ create: false,
77
+ read: false,
78
+ update: false,
79
+ delete: false
80
+ },
81
+ "content-pillar": {
82
+ list: false,
83
+ create: false,
84
+ read: false,
85
+ update: false,
86
+ delete: false
87
+ },
88
+ "media-platform": {
89
+ list: false,
90
+ create: false,
91
+ read: false,
92
+ update: false,
93
+ delete: false
94
+ },
95
+ "media-content-type": {
96
+ list: false,
97
+ create: false,
98
+ read: false,
99
+ update: false,
100
+ delete: false
101
+ },
102
+ "monday-workspace": {
103
+ list: false,
104
+ create: false,
105
+ read: false,
106
+ update: false,
107
+ delete: false
108
+ },
109
+ "utm-tracking-link": {
110
+ list: false,
111
+ create: false,
112
+ read: false,
113
+ update: false,
114
+ delete: false
115
+ },
116
+ gcflytour: {
117
+ list: true,
118
+ create: false,
119
+ read: true,
120
+ update: false,
121
+ delete: false
122
+ },
123
+ "gcflytour-snap": {
124
+ list: true,
125
+ create: false,
126
+ read: true,
127
+ update: false,
128
+ delete: false
129
+ }
130
+ },
131
+ public: {
132
+ "user-account": {
133
+ list: false,
134
+ create: false,
135
+ read: false,
136
+ update: false,
137
+ delete: false
138
+ },
139
+ comment: {
140
+ list: true,
141
+ create: false,
142
+ update: false,
143
+ delete: false,
144
+ report: false
145
+ },
146
+ client: {
147
+ access: false,
148
+ billing: false,
149
+ owner: false,
150
+ manager: false,
151
+ admin: false,
152
+ list: false,
153
+ create: false,
154
+ read: false,
155
+ update: false,
156
+ delete: false
157
+ },
158
+ "client-user": {
159
+ list: false,
160
+ create: false,
161
+ read: false,
162
+ update: false,
163
+ delete: false
164
+ },
165
+ "client-content-pillar": {
166
+ list: false,
167
+ create: false,
168
+ read: false,
169
+ update: false,
170
+ delete: false
171
+ },
172
+ "client-media-platform": {
173
+ list: false,
174
+ create: false,
175
+ read: false,
176
+ update: false,
177
+ delete: false
178
+ },
179
+ "client-media-platform-content-type": {
180
+ list: false,
181
+ create: false,
182
+ read: false,
183
+ update: false,
184
+ delete: false
185
+ },
186
+ "client-project": {
187
+ list: false,
188
+ create: false,
189
+ read: false,
190
+ update: false,
191
+ delete: false,
192
+ assign: false
193
+ },
194
+ "client-report": {
195
+ list: false,
196
+ create: false,
197
+ read: false,
198
+ update: false,
199
+ delete: false
200
+ },
201
+ "client-styleguide": {
202
+ list: false,
203
+ create: false,
204
+ read: false,
205
+ update: false,
206
+ delete: false
207
+ },
208
+ "content-pillar": {
209
+ list: false,
210
+ create: false,
211
+ read: false,
212
+ update: false,
213
+ delete: false
214
+ },
215
+ "media-platform": {
216
+ list: false,
217
+ create: false,
218
+ read: false,
219
+ update: false,
220
+ delete: false
221
+ },
222
+ "media-content-type": {
223
+ list: false,
224
+ create: false,
225
+ read: false,
226
+ update: false,
227
+ delete: false
228
+ },
229
+ "monday-workspace": {
230
+ list: false,
231
+ create: false,
232
+ read: false,
233
+ update: false,
234
+ delete: false
235
+ },
236
+ "utm-tracking-link": {
237
+ list: false,
238
+ create: false,
239
+ read: false,
240
+ update: false,
241
+ delete: false
242
+ },
243
+ gcflytour: {
244
+ list: true,
245
+ create: false,
246
+ read: true,
247
+ update: false,
248
+ delete: false
249
+ },
250
+ "gcflytour-snap": {
251
+ list: true,
252
+ create: false,
253
+ read: true,
254
+ update: false,
255
+ delete: false
256
+ }
257
+ },
258
+ employee: {
259
+ "user-account": {
260
+ list: true,
261
+ create: false,
262
+ read: true,
263
+ update: (u, p, d) => u.account.documentId === d?.documentId,
264
+ delete: false
265
+ },
266
+ comment: {
267
+ list: true,
268
+ create: true,
269
+ update: (u, p, d) => u.id === Number(d?.author?.id),
270
+ delete: (u, p, d) => u.id === Number(d?.author?.id),
271
+ report: true
272
+ },
273
+ client: {
274
+ access: (u, p, d) => p.scopes.includes("client:access"),
275
+ billing: (u, p, d) => p.scopes.includes("client:billing"),
276
+ owner: (u, p, d) => p.scopes.includes("client:owner"),
277
+ manager: (u, p, d) => p.scopes.includes("client:manager"),
278
+ admin: (u, p, d) => p.scopes.includes("client:admin"),
279
+ list: (u, p, d) => p.scopes.includes("client:access"),
280
+ create: false,
281
+ read: (u, p, d) => p.scopes.includes("client:access"),
282
+ update: (u, p, d) => p.scopes.includes("client:manager"),
283
+ delete: false
284
+ },
285
+ "client-user": {
286
+ list: true,
287
+ create: false,
288
+ read: true,
289
+ update: false,
290
+ delete: false,
291
+ verify: true
292
+ },
293
+ "client-content-pillar": {
294
+ list: (u, p, d) => p.scopes.includes("client-content-pillar:list"),
295
+ create: (u, p) => p.scopes.includes("client-content-pillar:create"),
296
+ read: (u, p, d) => p.scopes.includes("client-content-pillar:read"),
297
+ update: (u, p, d) => p.scopes.includes("client-content-pillar:update"),
298
+ delete: false
299
+ },
300
+ "client-media-platform": {
301
+ list: (u, p, d) => p.scopes.includes("client-media-platform:list"),
302
+ create: (u, p) => p.scopes.includes("client-media-platform:create"),
303
+ read: (u, p, d) => p.scopes.includes("client-media-platform:read"),
304
+ update: (u, p, d) => p.scopes.includes("client-media-platform:update"),
305
+ delete: false
306
+ },
307
+ "client-media-platform-content-type": {
308
+ list: (u, p, d) => p.scopes.includes("client-media-platform-content-type:list"),
309
+ create: (u, p) => p.scopes.includes("client-media-platform-content-type:create"),
310
+ read: (u, p, d) => p.scopes.includes("client-media-platform-content-type:read"),
311
+ update: (u, p, d) => p.scopes.includes("client-media-platform-content-type:update"),
312
+ delete: false
313
+ },
314
+ "client-project": {
315
+ list: (u, p, d) => p.scopes.includes("client-project:list"),
316
+ create: (u, p) => p.scopes.includes("client-project:create"),
317
+ read: (u, p, d) => p.scopes.includes("client-project:read"),
318
+ update: (u, p, d) => p.scopes.includes("client-project:update"),
319
+ delete: false,
320
+ assign: (u, p, d) => p.scopes.includes("client-project:assign")
321
+ },
322
+ "client-report": {
323
+ list: (u, p, d) => p.scopes.includes("client-report:list"),
324
+ create: (u, p) => p.scopes.includes("client-report:create"),
325
+ read: (u, p, d) => p.scopes.includes("client-report:read"),
326
+ update: (u, p, d) => p.scopes.includes("client-report:update"),
327
+ delete: false
328
+ },
329
+ "client-styleguide": {
330
+ list: (u, p, d) => p.scopes.includes("client-styleguide:list"),
331
+ create: false,
332
+ read: (u, p, d) => p.scopes.includes("client-styleguide:read"),
333
+ update: false,
334
+ delete: false
335
+ },
336
+ "content-pillar": {
337
+ list: true,
338
+ create: false,
339
+ read: true,
340
+ update: false,
341
+ delete: false
342
+ },
343
+ "media-platform": {
344
+ list: true,
345
+ create: false,
346
+ read: true,
347
+ update: false,
348
+ delete: false
349
+ },
350
+ "media-content-type": {
351
+ list: true,
352
+ create: false,
353
+ read: true,
354
+ update: false,
355
+ delete: false
356
+ },
357
+ "monday-workspace": {
358
+ list: (u, p, d) => p.scopes.includes("monday-workspace:list"),
359
+ create: (u, p) => p.scopes.includes("monday-workspace:create"),
360
+ read: (u, p, d) => p.scopes.includes("monday-workspace:read"),
361
+ update: (u, p, d) => p.scopes.includes("monday-workspace:update"),
362
+ delete: (u, p, d) => p.scopes.includes("monday-workspace:delete")
363
+ },
364
+ "utm-tracking-link": {
365
+ list: (u, p, d) => p.scopes.includes("utm-tracking-link:list"),
366
+ create: (u, p) => p.scopes.includes("utm-tracking-link:create"),
367
+ read: (u, p, d) => d?.creator?.documentId === u.documentId || p.scopes.includes("utm-tracking-link:read"),
368
+ update: (u, p, d) => d?.creator?.documentId === u.documentId || p.scopes.includes("utm-tracking-link:update"),
369
+ delete: (u, p, d) => d?.creator?.documentId === u.documentId || p.scopes.includes("utm-tracking-link:delete")
370
+ },
371
+ gcflytour: {
372
+ list: true,
373
+ create: (u, p) => p.scopes.includes("gcflytour:create"),
374
+ read: true,
375
+ update: (u, p, d) => p.scopes.includes("gcflytour:update"),
376
+ delete: (u, p, d) => p.scopes.includes("gcflytour:delete")
377
+ },
378
+ "gcflytour-snap": {
379
+ list: true,
380
+ create: (u, p) => p.scopes.includes("gcflytour-snap:create"),
381
+ read: true,
382
+ update: (u, p, d) => p.scopes.includes("gcflytour-snap:update"),
383
+ delete: (u, p, d) => p.scopes.includes("gcflytour-snap:delete")
384
+ }
385
+ },
386
+ manager: {
387
+ "user-account": {
388
+ list: true,
389
+ create: false,
390
+ read: true,
391
+ update: (u, p, d) => u.account.documentId === d?.documentId,
392
+ delete: false
393
+ },
394
+ comment: {
395
+ list: true,
396
+ create: true,
397
+ update: (u, p, d) => u.id === Number(d?.author?.id),
398
+ delete: (u, p, d) => u.id === Number(d?.author?.id),
399
+ report: true
400
+ },
401
+ client: {
402
+ access: true,
403
+ billing: true,
404
+ owner: true,
405
+ manager: true,
406
+ admin: true,
407
+ list: true,
408
+ create: true,
409
+ read: true,
410
+ update: true,
411
+ delete: false
412
+ },
413
+ "client-user": {
414
+ list: true,
415
+ create: true,
416
+ read: true,
417
+ update: true,
418
+ delete: true,
419
+ verify: true
420
+ },
421
+ "client-content-pillar": {
422
+ list: true,
423
+ create: true,
424
+ read: true,
425
+ update: true,
426
+ delete: true
427
+ },
428
+ "client-media-platform": {
429
+ list: true,
430
+ create: true,
431
+ read: true,
432
+ update: true,
433
+ delete: true
434
+ },
435
+ "client-media-platform-content-type": {
436
+ list: true,
437
+ create: true,
438
+ read: true,
439
+ update: true,
440
+ delete: true
441
+ },
442
+ "client-project": {
443
+ list: true,
444
+ create: true,
445
+ read: true,
446
+ update: true,
447
+ delete: true,
448
+ assign: true
449
+ },
450
+ "client-report": {
451
+ list: true,
452
+ create: true,
453
+ read: true,
454
+ update: true,
455
+ delete: true
456
+ },
457
+ "client-styleguide": {
458
+ list: true,
459
+ create: true,
460
+ read: true,
461
+ update: true,
462
+ delete: true
463
+ },
464
+ "content-pillar": {
465
+ list: true,
466
+ create: true,
467
+ read: true,
468
+ update: true,
469
+ delete: true
470
+ },
471
+ "media-platform": {
472
+ list: true,
473
+ create: true,
474
+ read: true,
475
+ update: true,
476
+ delete: true
477
+ },
478
+ "media-content-type": {
479
+ list: true,
480
+ create: true,
481
+ read: true,
482
+ update: true,
483
+ delete: true
484
+ },
485
+ "monday-workspace": {
486
+ list: true,
487
+ create: true,
488
+ read: true,
489
+ update: true,
490
+ delete: true
491
+ },
492
+ "utm-tracking-link": {
493
+ list: true,
494
+ create: true,
495
+ read: true,
496
+ update: true,
497
+ delete: true
498
+ },
499
+ gcflytour: {
500
+ list: true,
501
+ create: true,
502
+ read: true,
503
+ update: true,
504
+ delete: true
505
+ },
506
+ "gcflytour-snap": {
507
+ list: true,
508
+ create: true,
509
+ read: true,
510
+ update: true,
511
+ delete: true
512
+ }
513
+ },
514
+ client: {
515
+ "user-account": {
516
+ list: true,
517
+ create: false,
518
+ read: true,
519
+ update: (u, p, d) => u.account.documentId === d?.documentId,
520
+ delete: false
521
+ },
522
+ comment: {
523
+ list: true,
524
+ create: true,
525
+ update: (u, p, d) => u.id === Number(d?.author?.id),
526
+ delete: (u, p, d) => u.id === Number(d?.author?.id),
527
+ report: true
528
+ },
529
+ client: {
530
+ access: (u, p, d) => p.scopes.includes("client:access"),
531
+ billing: (u, p, d) => p.scopes.includes("client:billing"),
532
+ owner: (u, p, d) => p.scopes.includes("client:owner"),
533
+ manager: (u, p, d) => p.scopes.includes("client:manager"),
534
+ admin: (u, p, d) => p.scopes.includes("client:admin"),
535
+ list: (u, p, d) => p.scopes.includes("client:access"),
536
+ create: false,
537
+ read: (u, p, d) => p.scopes.includes("client:access"),
538
+ update: (u, p, d) => p.scopes.includes("client:manager"),
539
+ delete: false
540
+ },
541
+ "client-user": {
542
+ list: true,
543
+ create: false,
544
+ read: true,
545
+ update: false,
546
+ delete: false,
547
+ verify: true
548
+ },
549
+ "client-content-pillar": {
550
+ list: (u, p, d) => p.scopes.includes("client-content-pillar:list"),
551
+ create: (u, p) => p.scopes.includes("client-content-pillar:create"),
552
+ read: (u, p, d) => p.scopes.includes("client-content-pillar:read"),
553
+ update: (u, p, d) => p.scopes.includes("client-content-pillar:update"),
554
+ delete: false
555
+ },
556
+ "client-media-platform": {
557
+ list: (u, p, d) => p.scopes.includes("client-media-platform:list"),
558
+ create: (u, p) => p.scopes.includes("client-media-platform:create"),
559
+ read: (u, p, d) => p.scopes.includes("client-media-platform:read"),
560
+ update: (u, p, d) => p.scopes.includes("client-media-platform:update"),
561
+ delete: false
562
+ },
563
+ "client-media-platform-content-type": {
564
+ list: (u, p, d) => p.scopes.includes("client-media-platform-content-type:list"),
565
+ create: (u, p) => p.scopes.includes("client-media-platform-content-type:create"),
566
+ read: (u, p, d) => p.scopes.includes("client-media-platform-content-type:read"),
567
+ update: (u, p, d) => p.scopes.includes("client-media-platform-content-type:update"),
568
+ delete: false
569
+ },
570
+ "client-project": {
571
+ list: (u, p, d) => p.scopes.includes("client-project:list"),
572
+ create: (u, p) => p.scopes.includes("client-project:create"),
573
+ read: (u, p, d) => p.scopes.includes("client-project:read"),
574
+ update: (u, p, d) => p.scopes.includes("client-project:update"),
575
+ delete: false,
576
+ assign: (u, p, d) => p.scopes.includes("client-project:assign")
577
+ },
578
+ "client-report": {
579
+ list: (u, p, d) => p.scopes.includes("client-report:list"),
580
+ create: (u, p) => p.scopes.includes("client-report:create"),
581
+ read: (u, p, d) => p.scopes.includes("client-report:read"),
582
+ update: (u, p, d) => p.scopes.includes("client-report:update"),
583
+ delete: false
584
+ },
585
+ "client-styleguide": {
586
+ list: (u, p, d) => p.scopes.includes("client-styleguide:list"),
587
+ create: false,
588
+ read: (u, p, d) => p.scopes.includes("client-styleguide:read"),
589
+ update: false,
590
+ delete: false
591
+ },
592
+ "content-pillar": {
593
+ list: true,
594
+ create: false,
595
+ read: true,
596
+ update: false,
597
+ delete: false
598
+ },
599
+ "media-platform": {
600
+ list: true,
601
+ create: false,
602
+ read: true,
603
+ update: false,
604
+ delete: false
605
+ },
606
+ "media-content-type": {
607
+ list: true,
608
+ create: false,
609
+ read: true,
610
+ update: false,
611
+ delete: false
612
+ },
613
+ "monday-workspace": {
614
+ list: (u, p, d) => p.scopes.includes("monday-workspace:list"),
615
+ create: false,
616
+ read: (u, p, d) => p.scopes.includes("monday-workspace:read"),
617
+ update: false,
618
+ delete: false
619
+ },
620
+ "utm-tracking-link": {
621
+ list: (u, p, d) => p.scopes.includes("utm-tracking-link:list"),
622
+ create: (u, p) => p.scopes.includes("utm-tracking-link:create"),
623
+ read: (u, p, d) => d?.creator?.documentId === u.documentId || p.scopes.includes("utm-tracking-link:read"),
624
+ update: (u, p, d) => d?.creator?.documentId === u.documentId || p.scopes.includes("utm-tracking-link:update"),
625
+ delete: (u, p, d) => d?.creator?.documentId === u.documentId || p.scopes.includes("utm-tracking-link:delete")
626
+ },
627
+ gcflytour: {
628
+ list: true,
629
+ create: false,
630
+ read: true,
631
+ update: false,
632
+ delete: false
633
+ },
634
+ "gcflytour-snap": {
635
+ list: true,
636
+ create: false,
637
+ read: true,
638
+ update: false,
639
+ delete: false
640
+ }
641
+ }
642
+ };
643
+ //#endregion
644
+ //#region src/permissions/permission.constants.ts
645
+ /**
646
+ * Example usage of ClientEntityScope type
647
+ * @reference https://youtube.com/shorts/zOseJFD447U?si=xX8DYEHdl9YtN7S4
648
+ *
649
+ * > const validScope: ClientEntityScope = "utm-tracking-link:list"; // ✅
650
+ * > const invalidScope: ClientEntityScope = "blog-post:import"; // ❌ Type error!
651
+ */
652
+ const CLIENT_ENTITY_PERMISSIONS = {
653
+ client: [
654
+ "admin",
655
+ "owner",
656
+ "manager",
657
+ "billing",
658
+ "access"
659
+ ],
660
+ "client-project": [
661
+ "list",
662
+ "create",
663
+ "read",
664
+ "update",
665
+ "delete",
666
+ "assign"
667
+ ],
668
+ "client-media-platform": [
669
+ "list",
670
+ "create",
671
+ "read",
672
+ "update",
673
+ "delete"
674
+ ],
675
+ "client-media-platform-content-type": [
676
+ "list",
677
+ "create",
678
+ "read",
679
+ "update",
680
+ "delete"
681
+ ],
682
+ "client-content-pillar": [
683
+ "list",
684
+ "create",
685
+ "read",
686
+ "update",
687
+ "delete"
688
+ ],
689
+ "client-report": [
690
+ "list",
691
+ "create",
692
+ "read",
693
+ "update",
694
+ "delete"
695
+ ],
696
+ "client-styleguide": [
697
+ "list",
698
+ "create",
699
+ "read",
700
+ "update",
701
+ "delete"
702
+ ],
703
+ "monday-workspace": [
704
+ "list",
705
+ "create",
706
+ "read",
707
+ "update",
708
+ "delete"
709
+ ],
710
+ "utm-tracking-link": [
711
+ "list",
712
+ "create",
713
+ "read",
714
+ "update",
715
+ "delete"
716
+ ],
717
+ gcflytour: [
718
+ "list",
719
+ "create",
720
+ "read",
721
+ "update",
722
+ "delete"
723
+ ],
724
+ "gcflytour-snap": [
725
+ "list",
726
+ "create",
727
+ "read",
728
+ "update",
729
+ "delete"
730
+ ]
731
+ };
732
+ const CLIENT_ENTITY_KEYS = Object.keys(CLIENT_ENTITY_PERMISSIONS);
733
+ const CLIENT_ENTITY_SCOPES = Object.entries(CLIENT_ENTITY_PERMISSIONS).flatMap(([entity, actions]) => actions.map((action) => `${entity}:${action}`));
734
+ //#endregion
735
+ //#region src/permissions/permission.utilities.ts
736
+ function hasPermission(user, permissions, resource, action, data) {
737
+ if (!user) return false;
738
+ const permission = ROLE_PERMISSIONS[user.role.type][resource]?.[action];
739
+ if (permission == null) return false;
740
+ if (typeof permission === "boolean") return permission;
741
+ return permission(user, permissions, data);
742
+ }
743
+ function canAssignPermission(user, resource, action) {
744
+ if (!user) return false;
745
+ const permission = ROLE_PERMISSIONS[user.role.type][resource]?.[action];
746
+ if (permission == null) return false;
747
+ if (typeof permission === "boolean") return permission;
748
+ if (typeof permission === "function") return true;
749
+ return false;
750
+ }
751
+ //#endregion
752
+ exports.CLIENT_ENTITY_KEYS = CLIENT_ENTITY_KEYS;
753
+ exports.CLIENT_ENTITY_PERMISSIONS = CLIENT_ENTITY_PERMISSIONS;
754
+ exports.CLIENT_ENTITY_SCOPES = CLIENT_ENTITY_SCOPES;
755
+ exports.ROLE_PERMISSIONS = ROLE_PERMISSIONS;
756
+ exports.canAssignPermission = canAssignPermission;
757
+ exports.hasPermission = hasPermission;
2
758
 
3
- var chunkNMDMJZPF_cjs = require('./chunk-NMDMJZPF.cjs');
4
-
5
-
6
-
7
- Object.defineProperty(exports, "CLIENT_ENTITY_KEYS", {
8
- enumerable: true,
9
- get: function () { return chunkNMDMJZPF_cjs.CLIENT_ENTITY_KEYS; }
10
- });
11
- Object.defineProperty(exports, "CLIENT_ENTITY_PERMISSIONS", {
12
- enumerable: true,
13
- get: function () { return chunkNMDMJZPF_cjs.CLIENT_ENTITY_PERMISSIONS; }
14
- });
15
- Object.defineProperty(exports, "CLIENT_ENTITY_SCOPES", {
16
- enumerable: true,
17
- get: function () { return chunkNMDMJZPF_cjs.CLIENT_ENTITY_SCOPES; }
18
- });
19
- Object.defineProperty(exports, "ROLE_PERMISSIONS", {
20
- enumerable: true,
21
- get: function () { return chunkNMDMJZPF_cjs.ROLE_PERMISSIONS; }
22
- });
23
- Object.defineProperty(exports, "canAssignPermission", {
24
- enumerable: true,
25
- get: function () { return chunkNMDMJZPF_cjs.canAssignPermission; }
26
- });
27
- Object.defineProperty(exports, "hasPermission", {
28
- enumerable: true,
29
- get: function () { return chunkNMDMJZPF_cjs.hasPermission; }
30
- });
31
- //# sourceMappingURL=permissions.cjs.map
32
759
  //# sourceMappingURL=permissions.cjs.map