@getcommunity/gc-validators 0.0.195 → 0.0.196

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 (65) hide show
  1. package/dist/chunk-6QXOUWYU.js +640 -0
  2. package/dist/chunk-6QXOUWYU.js.map +1 -0
  3. package/dist/chunk-7WQ6RNXX.js +188 -0
  4. package/dist/chunk-7WQ6RNXX.js.map +1 -0
  5. package/dist/chunk-D6QV7LBY.cjs +2508 -0
  6. package/dist/chunk-D6QV7LBY.cjs.map +1 -0
  7. package/dist/chunk-HX7LBH7I.cjs +80 -0
  8. package/dist/chunk-HX7LBH7I.cjs.map +1 -0
  9. package/dist/chunk-MJPGUX4T.cjs +288 -0
  10. package/dist/chunk-MJPGUX4T.cjs.map +1 -0
  11. package/dist/chunk-NNLSUHMQ.js +63 -0
  12. package/dist/chunk-NNLSUHMQ.js.map +1 -0
  13. package/dist/chunk-OY5E6YKO.js +2320 -0
  14. package/dist/chunk-OY5E6YKO.js.map +1 -0
  15. package/dist/chunk-UAQWYRXG.cjs +92 -0
  16. package/dist/chunk-UAQWYRXG.cjs.map +1 -0
  17. package/dist/chunk-UJQSM7DK.js +72 -0
  18. package/dist/chunk-UJQSM7DK.js.map +1 -0
  19. package/dist/chunk-YT4F4B55.cjs +646 -0
  20. package/dist/chunk-YT4F4B55.cjs.map +1 -0
  21. package/dist/comment.document-C-LqvG8c.d.ts +479 -0
  22. package/dist/comment.document-DFTbLUjg.d.cts +479 -0
  23. package/dist/constants.cjs +404 -0
  24. package/dist/constants.cjs.map +1 -0
  25. package/dist/constants.d.cts +231 -0
  26. package/dist/constants.d.ts +231 -0
  27. package/dist/constants.js +3 -0
  28. package/dist/constants.js.map +1 -0
  29. package/dist/font.constants-DyF4szgM.d.cts +7 -0
  30. package/dist/font.constants-DyF4szgM.d.ts +7 -0
  31. package/dist/index.cjs +1147 -3609
  32. package/dist/index.cjs.map +1 -1
  33. package/dist/index.d.cts +10 -4145
  34. package/dist/index.d.ts +10 -4145
  35. package/dist/index.js +5 -3309
  36. package/dist/index.js.map +1 -1
  37. package/dist/permission.constants-Chqmz1hY.d.cts +29 -0
  38. package/dist/permission.constants-Chqmz1hY.d.ts +29 -0
  39. package/dist/permissions.cjs +28 -0
  40. package/dist/permissions.cjs.map +1 -0
  41. package/dist/permissions.d.cts +707 -0
  42. package/dist/permissions.d.ts +707 -0
  43. package/dist/permissions.js +3 -0
  44. package/dist/permissions.js.map +1 -0
  45. package/dist/response-8Bkawql4.d.cts +56 -0
  46. package/dist/response-8Bkawql4.d.ts +56 -0
  47. package/dist/schemas.cjs +679 -0
  48. package/dist/schemas.cjs.map +1 -0
  49. package/dist/schemas.d.cts +1866 -0
  50. package/dist/schemas.d.ts +1866 -0
  51. package/dist/schemas.js +6 -0
  52. package/dist/schemas.js.map +1 -0
  53. package/dist/types.cjs +36 -0
  54. package/dist/types.cjs.map +1 -0
  55. package/dist/types.d.cts +772 -0
  56. package/dist/types.d.ts +772 -0
  57. package/dist/types.js +3 -0
  58. package/dist/types.js.map +1 -0
  59. package/dist/utilities.cjs +40 -0
  60. package/dist/utilities.cjs.map +1 -0
  61. package/dist/utilities.d.cts +26 -0
  62. package/dist/utilities.d.ts +26 -0
  63. package/dist/utilities.js +3 -0
  64. package/dist/utilities.js.map +1 -0
  65. package/package.json +64 -6
@@ -0,0 +1,707 @@
1
+ import { aa as AuthorizedUserDocument, N as ClientUserDocumentStatus, Y as CommentDocument, a8 as UserAccountDocument, P as ClientDocument, x as ClientContentPillarDocument, z as ClientMediaPlatformDocument, y as ClientMediaPlatformContentTypeDocument, I as ClientProjectDocument, J as ClientReportDocument, K as ClientStyleguideDocument, ad as UtmTrackingLinkDocument, $ as GCFlyTourDocument, _ as GCFlyTourSnapDocument, a5 as RoleType, L as ClientUserDocument, Z as ContentPillarDocument, a1 as MediaPlatformDocument, a0 as MediaContentTypeDocument } from './comment.document-C-LqvG8c.js';
2
+ import { C as CLIENT_ENTITY_PERMISSIONS } from './permission.constants-Chqmz1hY.js';
3
+ export { d as CLIENT_ENTITY_KEYS, e as CLIENT_ENTITY_SCOPES, b as ClientEntityActions, a as ClientEntityKey, c as ClientEntityScope } from './permission.constants-Chqmz1hY.js';
4
+ import './font.constants-DyF4szgM.js';
5
+
6
+ /**
7
+ * Attribute-based access control (ABAC) permissions
8
+ *
9
+ * @reference https://github.com/WebDevSimplified/permission-system/blob/main/auth-abac.ts
10
+ */
11
+ declare const ROLE_PERMISSIONS: {
12
+ readonly authenticated: {
13
+ readonly "user-account": {
14
+ readonly list: false;
15
+ readonly create: false;
16
+ readonly read: false;
17
+ readonly update: false;
18
+ readonly delete: false;
19
+ };
20
+ readonly comment: {
21
+ readonly list: true;
22
+ readonly create: true;
23
+ readonly update: (u: AuthorizedUserDocument, p: ClientUserDocumentStatus, d: CommentDocument | undefined) => boolean;
24
+ readonly delete: (u: AuthorizedUserDocument, p: ClientUserDocumentStatus, d: CommentDocument | undefined) => boolean;
25
+ readonly report: true;
26
+ };
27
+ readonly client: {
28
+ readonly access: false;
29
+ readonly billing: false;
30
+ readonly owner: false;
31
+ readonly manager: false;
32
+ readonly admin: false;
33
+ readonly list: false;
34
+ readonly create: false;
35
+ readonly read: false;
36
+ readonly update: false;
37
+ readonly delete: false;
38
+ };
39
+ readonly "client-user": {
40
+ readonly list: false;
41
+ readonly create: false;
42
+ readonly read: false;
43
+ readonly update: false;
44
+ readonly delete: false;
45
+ };
46
+ readonly "client-content-pillar": {
47
+ readonly list: false;
48
+ readonly create: false;
49
+ readonly read: false;
50
+ readonly update: false;
51
+ readonly delete: false;
52
+ };
53
+ readonly "client-media-platform": {
54
+ readonly list: false;
55
+ readonly create: false;
56
+ readonly read: false;
57
+ readonly update: false;
58
+ readonly delete: false;
59
+ };
60
+ readonly "client-media-platform-content-type": {
61
+ readonly list: false;
62
+ readonly create: false;
63
+ readonly read: false;
64
+ readonly update: false;
65
+ readonly delete: false;
66
+ };
67
+ readonly "client-project": {
68
+ readonly list: false;
69
+ readonly create: false;
70
+ readonly read: false;
71
+ readonly update: false;
72
+ readonly delete: false;
73
+ readonly assign: false;
74
+ };
75
+ readonly "client-report": {
76
+ readonly list: false;
77
+ readonly create: false;
78
+ readonly read: false;
79
+ readonly update: false;
80
+ readonly delete: false;
81
+ };
82
+ readonly "client-styleguide": {
83
+ readonly list: false;
84
+ readonly create: false;
85
+ readonly read: false;
86
+ readonly update: false;
87
+ readonly delete: false;
88
+ };
89
+ readonly "content-pillar": {
90
+ readonly list: false;
91
+ readonly create: false;
92
+ readonly read: false;
93
+ readonly update: false;
94
+ readonly delete: false;
95
+ };
96
+ readonly "media-platform": {
97
+ readonly list: false;
98
+ readonly create: false;
99
+ readonly read: false;
100
+ readonly update: false;
101
+ readonly delete: false;
102
+ };
103
+ readonly "media-content-type": {
104
+ readonly list: false;
105
+ readonly create: false;
106
+ readonly read: false;
107
+ readonly update: false;
108
+ readonly delete: false;
109
+ };
110
+ readonly "utm-tracking-link": {
111
+ readonly list: false;
112
+ readonly create: false;
113
+ readonly read: false;
114
+ readonly update: false;
115
+ readonly delete: false;
116
+ };
117
+ readonly gcflytour: {
118
+ readonly list: true;
119
+ readonly create: false;
120
+ readonly read: true;
121
+ readonly update: false;
122
+ readonly delete: false;
123
+ };
124
+ readonly "gcflytour-snap": {
125
+ readonly list: true;
126
+ readonly create: false;
127
+ readonly read: true;
128
+ readonly update: false;
129
+ readonly delete: false;
130
+ };
131
+ };
132
+ readonly public: {
133
+ readonly "user-account": {
134
+ readonly list: false;
135
+ readonly create: false;
136
+ readonly read: false;
137
+ readonly update: false;
138
+ readonly delete: false;
139
+ };
140
+ readonly comment: {
141
+ readonly list: true;
142
+ readonly create: false;
143
+ readonly update: false;
144
+ readonly delete: false;
145
+ readonly report: false;
146
+ };
147
+ readonly client: {
148
+ readonly access: false;
149
+ readonly billing: false;
150
+ readonly owner: false;
151
+ readonly manager: false;
152
+ readonly admin: false;
153
+ readonly list: false;
154
+ readonly create: false;
155
+ readonly read: false;
156
+ readonly update: false;
157
+ readonly delete: false;
158
+ };
159
+ readonly "client-user": {
160
+ readonly list: false;
161
+ readonly create: false;
162
+ readonly read: false;
163
+ readonly update: false;
164
+ readonly delete: false;
165
+ };
166
+ readonly "client-content-pillar": {
167
+ readonly list: false;
168
+ readonly create: false;
169
+ readonly read: false;
170
+ readonly update: false;
171
+ readonly delete: false;
172
+ };
173
+ readonly "client-media-platform": {
174
+ readonly list: false;
175
+ readonly create: false;
176
+ readonly read: false;
177
+ readonly update: false;
178
+ readonly delete: false;
179
+ };
180
+ readonly "client-media-platform-content-type": {
181
+ readonly list: false;
182
+ readonly create: false;
183
+ readonly read: false;
184
+ readonly update: false;
185
+ readonly delete: false;
186
+ };
187
+ readonly "client-project": {
188
+ readonly list: false;
189
+ readonly create: false;
190
+ readonly read: false;
191
+ readonly update: false;
192
+ readonly delete: false;
193
+ readonly assign: false;
194
+ };
195
+ readonly "client-report": {
196
+ readonly list: false;
197
+ readonly create: false;
198
+ readonly read: false;
199
+ readonly update: false;
200
+ readonly delete: false;
201
+ };
202
+ readonly "client-styleguide": {
203
+ readonly list: false;
204
+ readonly create: false;
205
+ readonly read: false;
206
+ readonly update: false;
207
+ readonly delete: false;
208
+ };
209
+ readonly "content-pillar": {
210
+ readonly list: false;
211
+ readonly create: false;
212
+ readonly read: false;
213
+ readonly update: false;
214
+ readonly delete: false;
215
+ };
216
+ readonly "media-platform": {
217
+ readonly list: false;
218
+ readonly create: false;
219
+ readonly read: false;
220
+ readonly update: false;
221
+ readonly delete: false;
222
+ };
223
+ readonly "media-content-type": {
224
+ readonly list: false;
225
+ readonly create: false;
226
+ readonly read: false;
227
+ readonly update: false;
228
+ readonly delete: false;
229
+ };
230
+ readonly "utm-tracking-link": {
231
+ readonly list: false;
232
+ readonly create: false;
233
+ readonly read: false;
234
+ readonly update: false;
235
+ readonly delete: false;
236
+ };
237
+ readonly gcflytour: {
238
+ readonly list: true;
239
+ readonly create: false;
240
+ readonly read: true;
241
+ readonly update: false;
242
+ readonly delete: false;
243
+ };
244
+ readonly "gcflytour-snap": {
245
+ readonly list: true;
246
+ readonly create: false;
247
+ readonly read: true;
248
+ readonly update: false;
249
+ readonly delete: false;
250
+ };
251
+ };
252
+ readonly employee: {
253
+ readonly "user-account": {
254
+ readonly list: true;
255
+ readonly create: false;
256
+ readonly read: true;
257
+ readonly update: (u: AuthorizedUserDocument, p: ClientUserDocumentStatus, d: UserAccountDocument | undefined) => boolean;
258
+ readonly delete: false;
259
+ };
260
+ readonly comment: {
261
+ readonly list: true;
262
+ readonly create: true;
263
+ readonly update: (u: AuthorizedUserDocument, p: ClientUserDocumentStatus, d: CommentDocument | undefined) => boolean;
264
+ readonly delete: (u: AuthorizedUserDocument, p: ClientUserDocumentStatus, d: CommentDocument | undefined) => boolean;
265
+ readonly report: true;
266
+ };
267
+ readonly client: {
268
+ readonly access: (u: AuthorizedUserDocument, p: ClientUserDocumentStatus, d: ClientDocument | undefined) => boolean;
269
+ readonly billing: (u: AuthorizedUserDocument, p: ClientUserDocumentStatus, d: ClientDocument | undefined) => boolean;
270
+ readonly owner: (u: AuthorizedUserDocument, p: ClientUserDocumentStatus, d: ClientDocument | undefined) => boolean;
271
+ readonly manager: (u: AuthorizedUserDocument, p: ClientUserDocumentStatus, d: ClientDocument | undefined) => boolean;
272
+ readonly admin: (u: AuthorizedUserDocument, p: ClientUserDocumentStatus, d: ClientDocument | undefined) => boolean;
273
+ readonly list: (u: AuthorizedUserDocument, p: ClientUserDocumentStatus, d: ClientDocument | undefined) => boolean;
274
+ readonly create: false;
275
+ readonly read: (u: AuthorizedUserDocument, p: ClientUserDocumentStatus, d: ClientDocument | undefined) => boolean;
276
+ readonly update: (u: AuthorizedUserDocument, p: ClientUserDocumentStatus, d: ClientDocument | undefined) => boolean;
277
+ readonly delete: false;
278
+ };
279
+ readonly "client-user": {
280
+ readonly list: true;
281
+ readonly create: false;
282
+ readonly read: true;
283
+ readonly update: false;
284
+ readonly delete: false;
285
+ readonly verify: true;
286
+ };
287
+ readonly "client-content-pillar": {
288
+ readonly list: (u: AuthorizedUserDocument, p: ClientUserDocumentStatus, d: ClientContentPillarDocument | undefined) => boolean;
289
+ readonly create: (u: AuthorizedUserDocument, p: ClientUserDocumentStatus) => boolean;
290
+ readonly read: (u: AuthorizedUserDocument, p: ClientUserDocumentStatus, d: ClientContentPillarDocument | undefined) => boolean;
291
+ readonly update: (u: AuthorizedUserDocument, p: ClientUserDocumentStatus, d: ClientContentPillarDocument | undefined) => boolean;
292
+ readonly delete: false;
293
+ };
294
+ readonly "client-media-platform": {
295
+ readonly list: (u: AuthorizedUserDocument, p: ClientUserDocumentStatus, d: ClientMediaPlatformDocument | undefined) => boolean;
296
+ readonly create: (u: AuthorizedUserDocument, p: ClientUserDocumentStatus) => boolean;
297
+ readonly read: (u: AuthorizedUserDocument, p: ClientUserDocumentStatus, d: ClientMediaPlatformDocument | undefined) => boolean;
298
+ readonly update: (u: AuthorizedUserDocument, p: ClientUserDocumentStatus, d: ClientMediaPlatformDocument | undefined) => boolean;
299
+ readonly delete: false;
300
+ };
301
+ readonly "client-media-platform-content-type": {
302
+ readonly list: (u: AuthorizedUserDocument, p: ClientUserDocumentStatus, d: ClientMediaPlatformContentTypeDocument | undefined) => boolean;
303
+ readonly create: (u: AuthorizedUserDocument, p: ClientUserDocumentStatus) => boolean;
304
+ readonly read: (u: AuthorizedUserDocument, p: ClientUserDocumentStatus, d: ClientMediaPlatformContentTypeDocument | undefined) => boolean;
305
+ readonly update: (u: AuthorizedUserDocument, p: ClientUserDocumentStatus, d: ClientMediaPlatformContentTypeDocument | undefined) => boolean;
306
+ readonly delete: false;
307
+ };
308
+ readonly "client-project": {
309
+ readonly list: (u: AuthorizedUserDocument, p: ClientUserDocumentStatus, d: ClientProjectDocument | undefined) => boolean;
310
+ readonly create: (u: AuthorizedUserDocument, p: ClientUserDocumentStatus) => boolean;
311
+ readonly read: (u: AuthorizedUserDocument, p: ClientUserDocumentStatus, d: ClientProjectDocument | undefined) => boolean;
312
+ readonly update: (u: AuthorizedUserDocument, p: ClientUserDocumentStatus, d: ClientProjectDocument | undefined) => boolean;
313
+ readonly delete: false;
314
+ readonly assign: (u: AuthorizedUserDocument, p: ClientUserDocumentStatus, d: ClientProjectDocument | undefined) => boolean;
315
+ };
316
+ readonly "client-report": {
317
+ readonly list: (u: AuthorizedUserDocument, p: ClientUserDocumentStatus, d: ClientReportDocument | undefined) => boolean;
318
+ readonly create: (u: AuthorizedUserDocument, p: ClientUserDocumentStatus) => boolean;
319
+ readonly read: (u: AuthorizedUserDocument, p: ClientUserDocumentStatus, d: ClientReportDocument | undefined) => boolean;
320
+ readonly update: (u: AuthorizedUserDocument, p: ClientUserDocumentStatus, d: ClientReportDocument | undefined) => boolean;
321
+ readonly delete: false;
322
+ };
323
+ readonly "client-styleguide": {
324
+ readonly list: (u: AuthorizedUserDocument, p: ClientUserDocumentStatus, d: ClientStyleguideDocument | undefined) => boolean;
325
+ readonly create: false;
326
+ readonly read: (u: AuthorizedUserDocument, p: ClientUserDocumentStatus, d: ClientStyleguideDocument | undefined) => boolean;
327
+ readonly update: false;
328
+ readonly delete: false;
329
+ };
330
+ readonly "content-pillar": {
331
+ readonly list: true;
332
+ readonly create: false;
333
+ readonly read: true;
334
+ readonly update: false;
335
+ readonly delete: false;
336
+ };
337
+ readonly "media-platform": {
338
+ readonly list: true;
339
+ readonly create: false;
340
+ readonly read: true;
341
+ readonly update: false;
342
+ readonly delete: false;
343
+ };
344
+ readonly "media-content-type": {
345
+ readonly list: true;
346
+ readonly create: false;
347
+ readonly read: true;
348
+ readonly update: false;
349
+ readonly delete: false;
350
+ };
351
+ readonly "utm-tracking-link": {
352
+ readonly list: (u: AuthorizedUserDocument, p: ClientUserDocumentStatus, d: UtmTrackingLinkDocument | undefined) => boolean;
353
+ readonly create: (u: AuthorizedUserDocument, p: ClientUserDocumentStatus) => boolean;
354
+ readonly read: (u: AuthorizedUserDocument, p: ClientUserDocumentStatus, d: UtmTrackingLinkDocument | undefined) => boolean;
355
+ readonly update: (u: AuthorizedUserDocument, p: ClientUserDocumentStatus, d: UtmTrackingLinkDocument | undefined) => boolean;
356
+ readonly delete: (u: AuthorizedUserDocument, p: ClientUserDocumentStatus, d: UtmTrackingLinkDocument | undefined) => boolean;
357
+ };
358
+ readonly gcflytour: {
359
+ readonly list: true;
360
+ readonly create: (u: AuthorizedUserDocument, p: ClientUserDocumentStatus) => boolean;
361
+ readonly read: true;
362
+ readonly update: (u: AuthorizedUserDocument, p: ClientUserDocumentStatus, d: GCFlyTourDocument | undefined) => boolean;
363
+ readonly delete: (u: AuthorizedUserDocument, p: ClientUserDocumentStatus, d: GCFlyTourDocument | undefined) => boolean;
364
+ };
365
+ readonly "gcflytour-snap": {
366
+ readonly list: true;
367
+ readonly create: (u: AuthorizedUserDocument, p: ClientUserDocumentStatus) => boolean;
368
+ readonly read: true;
369
+ readonly update: (u: AuthorizedUserDocument, p: ClientUserDocumentStatus, d: GCFlyTourSnapDocument | undefined) => boolean;
370
+ readonly delete: (u: AuthorizedUserDocument, p: ClientUserDocumentStatus, d: GCFlyTourSnapDocument | undefined) => boolean;
371
+ };
372
+ };
373
+ readonly manager: {
374
+ readonly "user-account": {
375
+ readonly list: true;
376
+ readonly create: false;
377
+ readonly read: true;
378
+ readonly update: (u: AuthorizedUserDocument, p: ClientUserDocumentStatus, d: UserAccountDocument | undefined) => boolean;
379
+ readonly delete: false;
380
+ };
381
+ readonly comment: {
382
+ readonly list: true;
383
+ readonly create: true;
384
+ readonly update: (u: AuthorizedUserDocument, p: ClientUserDocumentStatus, d: CommentDocument | undefined) => boolean;
385
+ readonly delete: (u: AuthorizedUserDocument, p: ClientUserDocumentStatus, d: CommentDocument | undefined) => boolean;
386
+ readonly report: true;
387
+ };
388
+ readonly client: {
389
+ readonly access: true;
390
+ readonly billing: true;
391
+ readonly owner: true;
392
+ readonly manager: true;
393
+ readonly admin: true;
394
+ readonly list: true;
395
+ readonly create: true;
396
+ readonly read: true;
397
+ readonly update: true;
398
+ readonly delete: false;
399
+ };
400
+ readonly "client-user": {
401
+ readonly list: true;
402
+ readonly create: true;
403
+ readonly read: true;
404
+ readonly update: true;
405
+ readonly delete: true;
406
+ readonly verify: true;
407
+ };
408
+ readonly "client-content-pillar": {
409
+ readonly list: true;
410
+ readonly create: true;
411
+ readonly read: true;
412
+ readonly update: true;
413
+ readonly delete: true;
414
+ };
415
+ readonly "client-media-platform": {
416
+ readonly list: true;
417
+ readonly create: true;
418
+ readonly read: true;
419
+ readonly update: true;
420
+ readonly delete: true;
421
+ };
422
+ readonly "client-media-platform-content-type": {
423
+ readonly list: true;
424
+ readonly create: true;
425
+ readonly read: true;
426
+ readonly update: true;
427
+ readonly delete: true;
428
+ };
429
+ readonly "client-project": {
430
+ readonly list: true;
431
+ readonly create: true;
432
+ readonly read: true;
433
+ readonly update: true;
434
+ readonly delete: true;
435
+ readonly assign: true;
436
+ };
437
+ readonly "client-report": {
438
+ readonly list: true;
439
+ readonly create: true;
440
+ readonly read: true;
441
+ readonly update: true;
442
+ readonly delete: true;
443
+ };
444
+ readonly "client-styleguide": {
445
+ readonly list: true;
446
+ readonly create: true;
447
+ readonly read: true;
448
+ readonly update: true;
449
+ readonly delete: true;
450
+ };
451
+ readonly "content-pillar": {
452
+ readonly list: true;
453
+ readonly create: true;
454
+ readonly read: true;
455
+ readonly update: true;
456
+ readonly delete: true;
457
+ };
458
+ readonly "media-platform": {
459
+ readonly list: true;
460
+ readonly create: true;
461
+ readonly read: true;
462
+ readonly update: true;
463
+ readonly delete: true;
464
+ };
465
+ readonly "media-content-type": {
466
+ readonly list: true;
467
+ readonly create: true;
468
+ readonly read: true;
469
+ readonly update: true;
470
+ readonly delete: true;
471
+ };
472
+ readonly "utm-tracking-link": {
473
+ readonly list: true;
474
+ readonly create: true;
475
+ readonly read: true;
476
+ readonly update: true;
477
+ readonly delete: true;
478
+ };
479
+ readonly gcflytour: {
480
+ readonly list: true;
481
+ readonly create: true;
482
+ readonly read: true;
483
+ readonly update: true;
484
+ readonly delete: true;
485
+ };
486
+ readonly "gcflytour-snap": {
487
+ readonly list: true;
488
+ readonly create: true;
489
+ readonly read: true;
490
+ readonly update: true;
491
+ readonly delete: true;
492
+ };
493
+ };
494
+ readonly client: {
495
+ readonly "user-account": {
496
+ readonly list: true;
497
+ readonly create: false;
498
+ readonly read: true;
499
+ readonly update: (u: AuthorizedUserDocument, p: ClientUserDocumentStatus, d: UserAccountDocument | undefined) => boolean;
500
+ readonly delete: false;
501
+ };
502
+ readonly comment: {
503
+ readonly list: true;
504
+ readonly create: true;
505
+ readonly update: (u: AuthorizedUserDocument, p: ClientUserDocumentStatus, d: CommentDocument | undefined) => boolean;
506
+ readonly delete: (u: AuthorizedUserDocument, p: ClientUserDocumentStatus, d: CommentDocument | undefined) => boolean;
507
+ readonly report: true;
508
+ };
509
+ readonly client: {
510
+ readonly access: (u: AuthorizedUserDocument, p: ClientUserDocumentStatus, d: ClientDocument | undefined) => boolean;
511
+ readonly billing: (u: AuthorizedUserDocument, p: ClientUserDocumentStatus, d: ClientDocument | undefined) => boolean;
512
+ readonly owner: (u: AuthorizedUserDocument, p: ClientUserDocumentStatus, d: ClientDocument | undefined) => boolean;
513
+ readonly manager: (u: AuthorizedUserDocument, p: ClientUserDocumentStatus, d: ClientDocument | undefined) => boolean;
514
+ readonly admin: (u: AuthorizedUserDocument, p: ClientUserDocumentStatus, d: ClientDocument | undefined) => boolean;
515
+ readonly list: (u: AuthorizedUserDocument, p: ClientUserDocumentStatus, d: ClientDocument | undefined) => boolean;
516
+ readonly create: false;
517
+ readonly read: (u: AuthorizedUserDocument, p: ClientUserDocumentStatus, d: ClientDocument | undefined) => boolean;
518
+ readonly update: (u: AuthorizedUserDocument, p: ClientUserDocumentStatus, d: ClientDocument | undefined) => boolean;
519
+ readonly delete: false;
520
+ };
521
+ readonly "client-user": {
522
+ readonly list: true;
523
+ readonly create: false;
524
+ readonly read: true;
525
+ readonly update: false;
526
+ readonly delete: false;
527
+ readonly verify: true;
528
+ };
529
+ readonly "client-content-pillar": {
530
+ readonly list: (u: AuthorizedUserDocument, p: ClientUserDocumentStatus, d: ClientContentPillarDocument | undefined) => boolean;
531
+ readonly create: (u: AuthorizedUserDocument, p: ClientUserDocumentStatus) => boolean;
532
+ readonly read: (u: AuthorizedUserDocument, p: ClientUserDocumentStatus, d: ClientContentPillarDocument | undefined) => boolean;
533
+ readonly update: (u: AuthorizedUserDocument, p: ClientUserDocumentStatus, d: ClientContentPillarDocument | undefined) => boolean;
534
+ readonly delete: false;
535
+ };
536
+ readonly "client-media-platform": {
537
+ readonly list: (u: AuthorizedUserDocument, p: ClientUserDocumentStatus, d: ClientMediaPlatformDocument | undefined) => boolean;
538
+ readonly create: (u: AuthorizedUserDocument, p: ClientUserDocumentStatus) => boolean;
539
+ readonly read: (u: AuthorizedUserDocument, p: ClientUserDocumentStatus, d: ClientMediaPlatformDocument | undefined) => boolean;
540
+ readonly update: (u: AuthorizedUserDocument, p: ClientUserDocumentStatus, d: ClientMediaPlatformDocument | undefined) => boolean;
541
+ readonly delete: false;
542
+ };
543
+ readonly "client-media-platform-content-type": {
544
+ readonly list: (u: AuthorizedUserDocument, p: ClientUserDocumentStatus, d: ClientMediaPlatformContentTypeDocument | undefined) => boolean;
545
+ readonly create: (u: AuthorizedUserDocument, p: ClientUserDocumentStatus) => boolean;
546
+ readonly read: (u: AuthorizedUserDocument, p: ClientUserDocumentStatus, d: ClientMediaPlatformContentTypeDocument | undefined) => boolean;
547
+ readonly update: (u: AuthorizedUserDocument, p: ClientUserDocumentStatus, d: ClientMediaPlatformContentTypeDocument | undefined) => boolean;
548
+ readonly delete: false;
549
+ };
550
+ readonly "client-project": {
551
+ readonly list: (u: AuthorizedUserDocument, p: ClientUserDocumentStatus, d: ClientProjectDocument | undefined) => boolean;
552
+ readonly create: (u: AuthorizedUserDocument, p: ClientUserDocumentStatus) => boolean;
553
+ readonly read: (u: AuthorizedUserDocument, p: ClientUserDocumentStatus, d: ClientProjectDocument | undefined) => boolean;
554
+ readonly update: (u: AuthorizedUserDocument, p: ClientUserDocumentStatus, d: ClientProjectDocument | undefined) => boolean;
555
+ readonly delete: false;
556
+ readonly assign: (u: AuthorizedUserDocument, p: ClientUserDocumentStatus, d: ClientProjectDocument | undefined) => boolean;
557
+ };
558
+ readonly "client-report": {
559
+ readonly list: (u: AuthorizedUserDocument, p: ClientUserDocumentStatus, d: ClientReportDocument | undefined) => boolean;
560
+ readonly create: (u: AuthorizedUserDocument, p: ClientUserDocumentStatus) => boolean;
561
+ readonly read: (u: AuthorizedUserDocument, p: ClientUserDocumentStatus, d: ClientReportDocument | undefined) => boolean;
562
+ readonly update: (u: AuthorizedUserDocument, p: ClientUserDocumentStatus, d: ClientReportDocument | undefined) => boolean;
563
+ readonly delete: false;
564
+ };
565
+ readonly "client-styleguide": {
566
+ readonly list: (u: AuthorizedUserDocument, p: ClientUserDocumentStatus, d: ClientStyleguideDocument | undefined) => boolean;
567
+ readonly create: false;
568
+ readonly read: (u: AuthorizedUserDocument, p: ClientUserDocumentStatus, d: ClientStyleguideDocument | undefined) => boolean;
569
+ readonly update: false;
570
+ readonly delete: false;
571
+ };
572
+ readonly "content-pillar": {
573
+ readonly list: true;
574
+ readonly create: false;
575
+ readonly read: true;
576
+ readonly update: false;
577
+ readonly delete: false;
578
+ };
579
+ readonly "media-platform": {
580
+ readonly list: true;
581
+ readonly create: false;
582
+ readonly read: true;
583
+ readonly update: false;
584
+ readonly delete: false;
585
+ };
586
+ readonly "media-content-type": {
587
+ readonly list: true;
588
+ readonly create: false;
589
+ readonly read: true;
590
+ readonly update: false;
591
+ readonly delete: false;
592
+ };
593
+ readonly "utm-tracking-link": {
594
+ readonly list: (u: AuthorizedUserDocument, p: ClientUserDocumentStatus, d: UtmTrackingLinkDocument | undefined) => boolean;
595
+ readonly create: (u: AuthorizedUserDocument, p: ClientUserDocumentStatus) => boolean;
596
+ readonly read: (u: AuthorizedUserDocument, p: ClientUserDocumentStatus, d: UtmTrackingLinkDocument | undefined) => boolean;
597
+ readonly update: (u: AuthorizedUserDocument, p: ClientUserDocumentStatus, d: UtmTrackingLinkDocument | undefined) => boolean;
598
+ readonly delete: (u: AuthorizedUserDocument, p: ClientUserDocumentStatus, d: UtmTrackingLinkDocument | undefined) => boolean;
599
+ };
600
+ readonly gcflytour: {
601
+ readonly list: true;
602
+ readonly create: false;
603
+ readonly read: true;
604
+ readonly update: false;
605
+ readonly delete: false;
606
+ };
607
+ readonly "gcflytour-snap": {
608
+ readonly list: true;
609
+ readonly create: false;
610
+ readonly read: true;
611
+ readonly update: false;
612
+ readonly delete: false;
613
+ };
614
+ };
615
+ };
616
+
617
+ /**
618
+ * Attribute-based access control (ABAC) permissions
619
+ *
620
+ * @reference https://github.com/WebDevSimplified/permission-system/blob/main/auth-abac.ts
621
+ */
622
+
623
+ type LCRUDActions = "list" | "create" | "read" | "update" | "delete";
624
+ type PermissionCheck<Key extends keyof Permissions> = boolean | ((user: AuthorizedUserDocument, permissions: ClientUserDocumentStatus, data?: Permissions[Key]["dataType"]) => boolean);
625
+ type RolesWithPermissions = {
626
+ [R in RoleType]: Partial<{
627
+ [Key in keyof Permissions]: Partial<{
628
+ [Action in Permissions[Key]["action"]]: PermissionCheck<Key>;
629
+ }>;
630
+ }>;
631
+ };
632
+ type Permissions = {
633
+ "user-account": {
634
+ dataType: UserAccountDocument;
635
+ action: LCRUDActions;
636
+ };
637
+ comment: {
638
+ dataType: CommentDocument;
639
+ action: "list" | "create" | "update" | "delete" | "report";
640
+ };
641
+ client: {
642
+ dataType: ClientDocument;
643
+ action: (typeof CLIENT_ENTITY_PERMISSIONS)["client"][number] | LCRUDActions;
644
+ };
645
+ "client-user": {
646
+ dataType: ClientUserDocument;
647
+ action: LCRUDActions | "verify";
648
+ };
649
+ "client-content-pillar": {
650
+ dataType: ClientContentPillarDocument;
651
+ action: (typeof CLIENT_ENTITY_PERMISSIONS)["client-content-pillar"][number];
652
+ };
653
+ "client-media-platform": {
654
+ dataType: ClientMediaPlatformDocument;
655
+ action: (typeof CLIENT_ENTITY_PERMISSIONS)["client-media-platform"][number];
656
+ };
657
+ "client-media-platform-content-type": {
658
+ dataType: ClientMediaPlatformContentTypeDocument;
659
+ action: (typeof CLIENT_ENTITY_PERMISSIONS)["client-media-platform-content-type"][number];
660
+ };
661
+ "client-project": {
662
+ dataType: ClientProjectDocument;
663
+ action: (typeof CLIENT_ENTITY_PERMISSIONS)["client-project"][number];
664
+ };
665
+ "client-report": {
666
+ dataType: ClientReportDocument;
667
+ action: (typeof CLIENT_ENTITY_PERMISSIONS)["client-report"][number];
668
+ };
669
+ "client-styleguide": {
670
+ dataType: ClientStyleguideDocument;
671
+ action: (typeof CLIENT_ENTITY_PERMISSIONS)["client-styleguide"][number];
672
+ };
673
+ "content-pillar": {
674
+ dataType: ContentPillarDocument;
675
+ action: LCRUDActions;
676
+ };
677
+ "media-platform": {
678
+ dataType: MediaPlatformDocument;
679
+ action: LCRUDActions;
680
+ };
681
+ "media-content-type": {
682
+ dataType: MediaContentTypeDocument;
683
+ action: LCRUDActions;
684
+ };
685
+ "utm-tracking-link": {
686
+ dataType: UtmTrackingLinkDocument;
687
+ action: (typeof CLIENT_ENTITY_PERMISSIONS)["utm-tracking-link"][number];
688
+ };
689
+ gcflytour: {
690
+ dataType: GCFlyTourDocument;
691
+ action: (typeof CLIENT_ENTITY_PERMISSIONS)["gcflytour"][number];
692
+ };
693
+ "gcflytour-snap": {
694
+ dataType: GCFlyTourSnapDocument;
695
+ action: (typeof CLIENT_ENTITY_PERMISSIONS)["gcflytour-snap"][number];
696
+ };
697
+ };
698
+
699
+ /**
700
+ * Attribute-based access control (ABAC) permissions
701
+ *
702
+ * @reference https://github.com/WebDevSimplified/permission-system/blob/main/auth-abac.ts
703
+ */
704
+
705
+ declare function hasPermission<Resource extends keyof Permissions>(user: AuthorizedUserDocument, permissions: ClientUserDocumentStatus, resource: Resource, action: Permissions[Resource]["action"], data?: Permissions[Resource]["dataType"]): boolean;
706
+
707
+ export { CLIENT_ENTITY_PERMISSIONS, type LCRUDActions, type Permissions, ROLE_PERMISSIONS, type RolesWithPermissions, hasPermission };