@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 +0,0 @@
1
- {"version":3,"sources":["../src/permissions/permission.abac.ts","../src/permissions/permission.constants.ts","../src/permissions/permission.utilities.ts"],"names":[],"mappings":"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","file":"chunk-NMDMJZPF.cjs","sourcesContent":["/**\n * Attribute-based access control (ABAC) permissions\n *\n * @reference https://github.com/WebDevSimplified/permission-system/blob/main/auth-abac.ts\n */\n\nimport { RolesWithPermissions } from \"./permission.types\"\n\nexport const ROLE_PERMISSIONS = {\n authenticated: {\n \"user-account\": {\n list: false,\n create: false,\n read: false,\n update: false,\n delete: false\n },\n comment: {\n list: true,\n create: true,\n update: (u, p, d) => u.id === Number(d?.author?.id),\n delete: (u, p, d) => u.id === Number(d?.author?.id),\n report: true\n },\n client: {\n access: false,\n billing: false,\n owner: false,\n manager: false,\n admin: false,\n list: false,\n create: false,\n read: false,\n update: false,\n delete: false\n },\n \"client-user\": {\n list: false,\n create: false,\n read: false,\n update: false,\n delete: false\n },\n \"client-content-pillar\": {\n list: false,\n create: false,\n read: false,\n update: false,\n delete: false\n },\n \"client-media-platform\": {\n list: false,\n create: false,\n read: false,\n update: false,\n delete: false\n },\n \"client-media-platform-content-type\": {\n list: false,\n create: false,\n read: false,\n update: false,\n delete: false\n },\n \"client-project\": {\n list: false,\n create: false,\n read: false,\n update: false,\n delete: false,\n assign: false\n },\n \"client-report\": {\n list: false,\n create: false,\n read: false,\n update: false,\n delete: false\n },\n \"client-styleguide\": {\n list: false,\n create: false,\n read: false,\n update: false,\n delete: false\n },\n \"content-pillar\": {\n list: false,\n create: false,\n read: false,\n update: false,\n delete: false\n },\n \"media-platform\": {\n list: false,\n create: false,\n read: false,\n update: false,\n delete: false\n },\n \"media-content-type\": {\n list: false,\n create: false,\n read: false,\n update: false,\n delete: false\n },\n \"monday-workspace\": {\n list: false,\n create: false,\n read: false,\n update: false,\n delete: false\n },\n \"utm-tracking-link\": {\n list: false,\n create: false,\n read: false,\n update: false,\n delete: false\n },\n gcflytour: {\n list: true,\n create: false,\n read: true,\n update: false,\n delete: false\n },\n \"gcflytour-snap\": {\n list: true,\n create: false,\n read: true,\n update: false,\n delete: false\n }\n },\n public: {\n \"user-account\": {\n list: false,\n create: false,\n read: false,\n update: false,\n delete: false\n },\n comment: {\n list: true,\n create: false,\n update: false,\n delete: false,\n report: false\n },\n client: {\n access: false,\n billing: false,\n owner: false,\n manager: false,\n admin: false,\n list: false,\n create: false,\n read: false,\n update: false,\n delete: false\n },\n \"client-user\": {\n list: false,\n create: false,\n read: false,\n update: false,\n delete: false\n },\n \"client-content-pillar\": {\n list: false,\n create: false,\n read: false,\n update: false,\n delete: false\n },\n \"client-media-platform\": {\n list: false,\n create: false,\n read: false,\n update: false,\n delete: false\n },\n \"client-media-platform-content-type\": {\n list: false,\n create: false,\n read: false,\n update: false,\n delete: false\n },\n \"client-project\": {\n list: false,\n create: false,\n read: false,\n update: false,\n delete: false,\n assign: false\n },\n \"client-report\": {\n list: false,\n create: false,\n read: false,\n update: false,\n delete: false\n },\n \"client-styleguide\": {\n list: false,\n create: false,\n read: false,\n update: false,\n delete: false\n },\n \"content-pillar\": {\n list: false,\n create: false,\n read: false,\n update: false,\n delete: false\n },\n \"media-platform\": {\n list: false,\n create: false,\n read: false,\n update: false,\n delete: false\n },\n \"media-content-type\": {\n list: false,\n create: false,\n read: false,\n update: false,\n delete: false\n },\n \"monday-workspace\": {\n list: false,\n create: false,\n read: false,\n update: false,\n delete: false\n },\n \"utm-tracking-link\": {\n list: false,\n create: false,\n read: false,\n update: false,\n delete: false\n },\n gcflytour: {\n list: true,\n create: false,\n read: true,\n update: false,\n delete: false\n },\n \"gcflytour-snap\": {\n list: true,\n create: false,\n read: true,\n update: false,\n delete: false\n }\n },\n employee: {\n \"user-account\": {\n list: true,\n create: false,\n read: true,\n update: (u, p, d) => u.account.documentId === d?.documentId,\n delete: false\n },\n comment: {\n list: true,\n create: true,\n update: (u, p, d) => u.id === Number(d?.author?.id),\n delete: (u, p, d) => u.id === Number(d?.author?.id),\n report: true\n },\n client: {\n access: (u, p, d) => p.scopes.includes(\"client:access\"),\n billing: (u, p, d) => p.scopes.includes(\"client:billing\"),\n owner: (u, p, d) => p.scopes.includes(\"client:owner\"),\n manager: (u, p, d) => p.scopes.includes(\"client:manager\"),\n admin: (u, p, d) => p.scopes.includes(\"client:admin\"),\n list: (u, p, d) => p.scopes.includes(\"client:access\"),\n create: false,\n read: (u, p, d) => p.scopes.includes(\"client:access\"),\n update: (u, p, d) => p.scopes.includes(\"client:manager\"),\n delete: false\n },\n \"client-user\": {\n list: true,\n create: false,\n read: true,\n update: false,\n delete: false,\n verify: true\n },\n \"client-content-pillar\": {\n list: (u, p, d) => p.scopes.includes(\"client-content-pillar:list\"),\n create: (u, p) => p.scopes.includes(\"client-content-pillar:create\"),\n read: (u, p, d) => p.scopes.includes(\"client-content-pillar:read\"),\n update: (u, p, d) => p.scopes.includes(\"client-content-pillar:update\"),\n delete: false\n },\n \"client-media-platform\": {\n list: (u, p, d) => p.scopes.includes(\"client-media-platform:list\"),\n create: (u, p) => p.scopes.includes(\"client-media-platform:create\"),\n read: (u, p, d) => p.scopes.includes(\"client-media-platform:read\"),\n update: (u, p, d) => p.scopes.includes(\"client-media-platform:update\"),\n delete: false\n },\n \"client-media-platform-content-type\": {\n list: (u, p, d) => p.scopes.includes(\"client-media-platform-content-type:list\"),\n create: (u, p) => p.scopes.includes(\"client-media-platform-content-type:create\"),\n read: (u, p, d) => p.scopes.includes(\"client-media-platform-content-type:read\"),\n update: (u, p, d) =>\n p.scopes.includes(\"client-media-platform-content-type:update\"),\n delete: false\n },\n \"client-project\": {\n list: (u, p, d) => p.scopes.includes(\"client-project:list\"),\n create: (u, p) => p.scopes.includes(\"client-project:create\"),\n read: (u, p, d) => p.scopes.includes(\"client-project:read\"),\n update: (u, p, d) => p.scopes.includes(\"client-project:update\"),\n delete: false,\n assign: (u, p, d) => p.scopes.includes(\"client-project:assign\")\n },\n \"client-report\": {\n list: (u, p, d) => p.scopes.includes(\"client-report:list\"),\n create: (u, p) => p.scopes.includes(\"client-report:create\"),\n read: (u, p, d) => p.scopes.includes(\"client-report:read\"),\n update: (u, p, d) => p.scopes.includes(\"client-report:update\"),\n delete: false\n },\n \"client-styleguide\": {\n list: (u, p, d) => p.scopes.includes(\"client-styleguide:list\"),\n create: false,\n read: (u, p, d) => p.scopes.includes(\"client-styleguide:read\"),\n update: false,\n delete: false\n },\n \"content-pillar\": {\n list: true,\n create: false,\n read: true,\n update: false,\n delete: false\n },\n \"media-platform\": {\n list: true,\n create: false,\n read: true,\n update: false,\n delete: false\n },\n \"media-content-type\": {\n list: true,\n create: false,\n read: true,\n update: false,\n delete: false\n },\n \"monday-workspace\": {\n list: (u, p, d) => p.scopes.includes(\"monday-workspace:list\"),\n create: (u, p) => p.scopes.includes(\"monday-workspace:create\"),\n read: (u, p, d) => p.scopes.includes(\"monday-workspace:read\"),\n update: (u, p, d) => p.scopes.includes(\"monday-workspace:update\"),\n delete: (u, p, d) => p.scopes.includes(\"monday-workspace:delete\")\n },\n \"utm-tracking-link\": {\n list: (u, p, d) => p.scopes.includes(\"utm-tracking-link:list\"),\n create: (u, p) => p.scopes.includes(\"utm-tracking-link:create\"),\n read: (u, p, d) =>\n d?.creator?.documentId === u.documentId ||\n p.scopes.includes(\"utm-tracking-link:read\"),\n update: (u, p, d) =>\n d?.creator?.documentId === u.documentId ||\n p.scopes.includes(\"utm-tracking-link:update\"),\n delete: (u, p, d) =>\n d?.creator?.documentId === u.documentId ||\n p.scopes.includes(\"utm-tracking-link:delete\")\n },\n gcflytour: {\n list: true,\n create: (u, p) => p.scopes.includes(\"gcflytour:create\"),\n read: true,\n update: (u, p, d) => p.scopes.includes(\"gcflytour:update\"),\n delete: (u, p, d) => p.scopes.includes(\"gcflytour:delete\")\n },\n \"gcflytour-snap\": {\n list: true,\n create: (u, p) => p.scopes.includes(\"gcflytour-snap:create\"),\n read: true,\n update: (u, p, d) => p.scopes.includes(\"gcflytour-snap:update\"),\n delete: (u, p, d) => p.scopes.includes(\"gcflytour-snap:delete\")\n }\n },\n manager: {\n \"user-account\": {\n list: true,\n create: false,\n read: true,\n update: (u, p, d) => u.account.documentId === d?.documentId,\n delete: false\n },\n comment: {\n list: true,\n create: true,\n update: (u, p, d) => u.id === Number(d?.author?.id),\n delete: (u, p, d) => u.id === Number(d?.author?.id),\n report: true\n },\n client: {\n access: true,\n billing: true,\n owner: true,\n manager: true,\n admin: true,\n list: true,\n create: true,\n read: true,\n update: true,\n delete: false\n },\n \"client-user\": {\n list: true,\n create: true,\n read: true,\n update: true,\n delete: true,\n verify: true\n },\n \"client-content-pillar\": {\n list: true,\n create: true,\n read: true,\n update: true,\n delete: true\n },\n \"client-media-platform\": {\n list: true,\n create: true,\n read: true,\n update: true,\n delete: true\n },\n \"client-media-platform-content-type\": {\n list: true,\n create: true,\n read: true,\n update: true,\n delete: true\n },\n \"client-project\": {\n list: true,\n create: true,\n read: true,\n update: true,\n delete: true,\n assign: true\n },\n \"client-report\": {\n list: true,\n create: true,\n read: true,\n update: true,\n delete: true\n },\n \"client-styleguide\": {\n list: true,\n create: true,\n read: true,\n update: true,\n delete: true\n },\n \"content-pillar\": {\n list: true,\n create: true,\n read: true,\n update: true,\n delete: true\n },\n \"media-platform\": {\n list: true,\n create: true,\n read: true,\n update: true,\n delete: true\n },\n \"media-content-type\": {\n list: true,\n create: true,\n read: true,\n update: true,\n delete: true\n },\n \"monday-workspace\": {\n list: true,\n create: true,\n read: true,\n update: true,\n delete: true\n },\n \"utm-tracking-link\": {\n list: true,\n create: true,\n read: true,\n update: true,\n delete: true\n },\n gcflytour: {\n list: true,\n create: true,\n read: true,\n update: true,\n delete: true\n },\n \"gcflytour-snap\": {\n list: true,\n create: true,\n read: true,\n update: true,\n delete: true\n }\n },\n client: {\n \"user-account\": {\n list: true,\n create: false,\n read: true,\n update: (u, p, d) => u.account.documentId === d?.documentId,\n delete: false\n },\n comment: {\n list: true,\n create: true,\n update: (u, p, d) => u.id === Number(d?.author?.id),\n delete: (u, p, d) => u.id === Number(d?.author?.id),\n report: true\n },\n client: {\n access: (u, p, d) => p.scopes.includes(\"client:access\"),\n billing: (u, p, d) => p.scopes.includes(\"client:billing\"),\n owner: (u, p, d) => p.scopes.includes(\"client:owner\"),\n manager: (u, p, d) => p.scopes.includes(\"client:manager\"),\n admin: (u, p, d) => p.scopes.includes(\"client:admin\"),\n list: (u, p, d) => p.scopes.includes(\"client:access\"),\n create: false,\n read: (u, p, d) => p.scopes.includes(\"client:access\"),\n update: (u, p, d) => p.scopes.includes(\"client:manager\"),\n delete: false\n },\n \"client-user\": {\n list: true,\n create: false,\n read: true,\n update: false,\n delete: false,\n verify: true\n },\n \"client-content-pillar\": {\n list: (u, p, d) => p.scopes.includes(\"client-content-pillar:list\"),\n create: (u, p) => p.scopes.includes(\"client-content-pillar:create\"),\n read: (u, p, d) => p.scopes.includes(\"client-content-pillar:read\"),\n update: (u, p, d) => p.scopes.includes(\"client-content-pillar:update\"),\n delete: false\n },\n \"client-media-platform\": {\n list: (u, p, d) => p.scopes.includes(\"client-media-platform:list\"),\n create: (u, p) => p.scopes.includes(\"client-media-platform:create\"),\n read: (u, p, d) => p.scopes.includes(\"client-media-platform:read\"),\n update: (u, p, d) => p.scopes.includes(\"client-media-platform:update\"),\n delete: false\n },\n \"client-media-platform-content-type\": {\n list: (u, p, d) => p.scopes.includes(\"client-media-platform-content-type:list\"),\n create: (u, p) => p.scopes.includes(\"client-media-platform-content-type:create\"),\n read: (u, p, d) => p.scopes.includes(\"client-media-platform-content-type:read\"),\n update: (u, p, d) =>\n p.scopes.includes(\"client-media-platform-content-type:update\"),\n delete: false\n },\n \"client-project\": {\n list: (u, p, d) => p.scopes.includes(\"client-project:list\"),\n create: (u, p) => p.scopes.includes(\"client-project:create\"),\n read: (u, p, d) => p.scopes.includes(\"client-project:read\"),\n update: (u, p, d) => p.scopes.includes(\"client-project:update\"),\n delete: false,\n assign: (u, p, d) => p.scopes.includes(\"client-project:assign\")\n },\n \"client-report\": {\n list: (u, p, d) => p.scopes.includes(\"client-report:list\"),\n create: (u, p) => p.scopes.includes(\"client-report:create\"),\n read: (u, p, d) => p.scopes.includes(\"client-report:read\"),\n update: (u, p, d) => p.scopes.includes(\"client-report:update\"),\n delete: false\n },\n \"client-styleguide\": {\n list: (u, p, d) => p.scopes.includes(\"client-styleguide:list\"),\n create: false,\n read: (u, p, d) => p.scopes.includes(\"client-styleguide:read\"),\n update: false,\n delete: false\n },\n \"content-pillar\": {\n list: true,\n create: false,\n read: true,\n update: false,\n delete: false\n },\n \"media-platform\": {\n list: true,\n create: false,\n read: true,\n update: false,\n delete: false\n },\n \"media-content-type\": {\n list: true,\n create: false,\n read: true,\n update: false,\n delete: false\n },\n \"monday-workspace\": {\n list: (u, p, d) => p.scopes.includes(\"monday-workspace:list\"),\n create: false,\n read: (u, p, d) => p.scopes.includes(\"monday-workspace:read\"),\n update: false,\n delete: false\n },\n \"utm-tracking-link\": {\n list: (u, p, d) => p.scopes.includes(\"utm-tracking-link:list\"),\n create: (u, p) => p.scopes.includes(\"utm-tracking-link:create\"),\n read: (u, p, d) =>\n d?.creator?.documentId === u.documentId ||\n p.scopes.includes(\"utm-tracking-link:read\"),\n update: (u, p, d) =>\n d?.creator?.documentId === u.documentId ||\n p.scopes.includes(\"utm-tracking-link:update\"),\n delete: (u, p, d) =>\n d?.creator?.documentId === u.documentId ||\n p.scopes.includes(\"utm-tracking-link:delete\")\n },\n gcflytour: {\n list: true,\n create: false,\n read: true,\n update: false,\n delete: false\n },\n \"gcflytour-snap\": {\n list: true,\n create: false,\n read: true,\n update: false,\n delete: false\n }\n }\n} as const satisfies RolesWithPermissions\n","/**\n * Example usage of ClientEntityScope type\n * @reference https://youtube.com/shorts/zOseJFD447U?si=xX8DYEHdl9YtN7S4\n *\n * > const validScope: ClientEntityScope = \"utm-tracking-link:list\"; // ✅\n * > const invalidScope: ClientEntityScope = \"blog-post:import\"; // ❌ Type error!\n */\n\nexport const CLIENT_ENTITY_PERMISSIONS = {\n client: [\"admin\", \"owner\", \"manager\", \"billing\", \"access\"],\n \"client-project\": [\"list\", \"create\", \"read\", \"update\", \"delete\", \"assign\"],\n \"client-media-platform\": [\"list\", \"create\", \"read\", \"update\", \"delete\"],\n \"client-media-platform-content-type\": [\"list\", \"create\", \"read\", \"update\", \"delete\"],\n \"client-content-pillar\": [\"list\", \"create\", \"read\", \"update\", \"delete\"],\n \"client-report\": [\"list\", \"create\", \"read\", \"update\", \"delete\"],\n \"client-styleguide\": [\"list\", \"create\", \"read\", \"update\", \"delete\"],\n \"monday-workspace\": [\"list\", \"create\", \"read\", \"update\", \"delete\"],\n \"utm-tracking-link\": [\"list\", \"create\", \"read\", \"update\", \"delete\"],\n gcflytour: [\"list\", \"create\", \"read\", \"update\", \"delete\"],\n \"gcflytour-snap\": [\"list\", \"create\", \"read\", \"update\", \"delete\"]\n} as const\n\nexport type ClientEntityKey = keyof typeof CLIENT_ENTITY_PERMISSIONS\n\nexport type ClientEntityActions<K extends ClientEntityKey = ClientEntityKey> =\n (typeof CLIENT_ENTITY_PERMISSIONS)[K][number]\n\ntype EntityActionJoin<K extends string, V extends string> = `${K}:${V}`\n\nexport type ClientEntityScope = {\n [K in ClientEntityKey]: EntityActionJoin<\n K,\n (typeof CLIENT_ENTITY_PERMISSIONS)[K][number]\n >\n}[ClientEntityKey]\n\nexport const CLIENT_ENTITY_KEYS = Object.keys(\n CLIENT_ENTITY_PERMISSIONS\n) as ClientEntityKey[]\n\nexport const CLIENT_ENTITY_SCOPES: ClientEntityScope[] = Object.entries(\n CLIENT_ENTITY_PERMISSIONS\n).flatMap(([entity, actions]) =>\n actions.map((action) => `${entity}:${action}` as ClientEntityScope)\n)\n","/**\n * Attribute-based access control (ABAC) permissions\n *\n * @reference https://github.com/WebDevSimplified/permission-system/blob/main/auth-abac.ts\n */\n\nimport { AuthorizedUserDocument, ClientUserDocumentStatus, RoleType } from \"../types\"\nimport { ROLE_PERMISSIONS } from \"./permission.abac\"\nimport { Permissions, RolesWithPermissions } from \"./permission.types\"\n\nexport function hasPermission<Resource extends keyof Permissions>(\n user: AuthorizedUserDocument | null,\n permissions: ClientUserDocumentStatus,\n resource: Resource,\n action: Permissions[Resource][\"action\"],\n data?: Permissions[Resource][\"dataType\"]\n) {\n if (!user) return false\n const permission = (ROLE_PERMISSIONS as RolesWithPermissions)[\n user.role.type as RoleType\n ][resource]?.[action]\n if (permission == null) return false\n\n if (typeof permission === \"boolean\") return permission\n return permission(user, permissions, data)\n}\n\nexport function canAssignPermission<Resource extends keyof Permissions>(\n user: AuthorizedUserDocument | null,\n resource: Resource,\n action: Permissions[Resource][\"action\"]\n): boolean {\n if (!user) return false\n const permission = (ROLE_PERMISSIONS as RolesWithPermissions)[\n user.role.type as RoleType\n ][resource]?.[action]\n if (permission == null) return false\n if (typeof permission === \"boolean\") return permission\n if (typeof permission === \"function\") return true\n return false\n}\n"]}
@@ -1,63 +0,0 @@
1
- import * as v from 'valibot';
2
-
3
- // src/utilities/datetime.ts
4
- function dateToday() {
5
- const date = /* @__PURE__ */ new Date();
6
- date.setHours(0, 0, 0, 0);
7
- return date;
8
- }
9
- function datePlusDays(today, days = 30) {
10
- const date = new Date(today);
11
- date.setDate(date.getDate() + days);
12
- date.setHours(23, 59, 59, 999);
13
- return date;
14
- }
15
-
16
- // src/utilities/strapi-responses.ts
17
- function isStrapiAttributeError(result) {
18
- return "error" in result && "details" in result.error && typeof result.error.details === "object" && result.error.details !== null && "errors" in result.error.details && Array.isArray(result.error.details.errors);
19
- }
20
- function isStrapiStandardError(result) {
21
- return "error" in result && "details" in result.error && typeof result.error.details === "object" && result.error.details !== null && "errors" in result.error.details === false;
22
- }
23
- function validateAndClean(schema, input) {
24
- try {
25
- const parsed = v.parse(schema, input);
26
- return { data: parsed, error: null, errors: null };
27
- } catch (err) {
28
- if (err instanceof v.ValiError) {
29
- const errors = {};
30
- for (const issue of err.issues) {
31
- const field = issue.path?.[0]?.key || "unknown";
32
- errors[field] = issue.message;
33
- }
34
- return { data: null, error: null, errors };
35
- }
36
- let errorMessage = "Unknown error";
37
- if (err instanceof Error) {
38
- errorMessage = err.message;
39
- } else {
40
- errorMessage = String(err);
41
- }
42
- return { data: null, error: errorMessage, errors: null };
43
- }
44
- }
45
- function isValidationSuccess(result) {
46
- return result.error === null && result.errors === null;
47
- }
48
- function isValidationFailure(result) {
49
- return result.error !== null || result.errors !== null;
50
- }
51
- function omitUndefined(obj) {
52
- const result = {};
53
- for (const key in obj) {
54
- if (obj[key] !== void 0) {
55
- result[key] = obj[key];
56
- }
57
- }
58
- return result;
59
- }
60
-
61
- export { datePlusDays, dateToday, isStrapiAttributeError, isStrapiStandardError, isValidationFailure, isValidationSuccess, omitUndefined, validateAndClean };
62
- //# sourceMappingURL=chunk-NNLSUHMQ.js.map
63
- //# sourceMappingURL=chunk-NNLSUHMQ.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/utilities/datetime.ts","../src/utilities/strapi-responses.ts","../src/utilities/validation.ts"],"names":[],"mappings":";;;AAAO,SAAS,SAAA,GAAkB;AAChC,EAAA,MAAM,IAAA,uBAAW,IAAA,EAAK;AACtB,EAAA,IAAA,CAAK,QAAA,CAAS,CAAA,EAAG,CAAA,EAAG,CAAA,EAAG,CAAC,CAAA;AACxB,EAAA,OAAO,IAAA;AACT;AAEO,SAAS,YAAA,CAAa,KAAA,EAAa,IAAA,GAAe,EAAA,EAAU;AACjE,EAAA,MAAM,IAAA,GAAO,IAAI,IAAA,CAAK,KAAK,CAAA;AAC3B,EAAA,IAAA,CAAK,OAAA,CAAQ,IAAA,CAAK,OAAA,EAAQ,GAAI,IAAI,CAAA;AAClC,EAAA,IAAA,CAAK,QAAA,CAAS,EAAA,EAAI,EAAA,EAAI,EAAA,EAAI,GAAG,CAAA;AAC7B,EAAA,OAAO,IAAA;AACT;;;ACLO,SAAS,uBACd,MAAA,EAC2C;AAC3C,EAAA,OACE,OAAA,IAAW,UACX,SAAA,IAAa,MAAA,CAAO,SACpB,OAAO,MAAA,CAAO,KAAA,CAAM,OAAA,KAAY,QAAA,IAChC,MAAA,CAAO,MAAM,OAAA,KAAY,IAAA,IACzB,QAAA,IAAY,MAAA,CAAO,KAAA,CAAM,OAAA,IACzB,MAAM,OAAA,CAAQ,MAAA,CAAO,KAAA,CAAM,OAAA,CAAQ,MAAM,CAAA;AAE7C;AAEO,SAAS,sBACd,MAAA,EACkC;AAClC,EAAA,OACE,WAAW,MAAA,IACX,SAAA,IAAa,MAAA,CAAO,KAAA,IACpB,OAAO,MAAA,CAAO,KAAA,CAAM,OAAA,KAAY,QAAA,IAChC,OAAO,KAAA,CAAM,OAAA,KAAY,QACzB,QAAA,IAAY,MAAA,CAAO,MAAM,OAAA,KAAY,KAAA;AAEzC;ACbO,SAAS,gBAAA,CACd,QACA,KAAA,EAC2B;AAC3B,EAAA,IAAI;AACF,IAAA,MAAM,MAAA,GAAW,CAAA,CAAA,KAAA,CAAM,MAAA,EAAQ,KAAK,CAAA;AACpC,IAAA,OAAO,EAAE,IAAA,EAAM,MAAA,EAAQ,KAAA,EAAO,IAAA,EAAM,QAAQ,IAAA,EAAK;AAAA,EACnD,SAAS,GAAA,EAAc;AACrB,IAAA,IAAI,eAAiB,CAAA,CAAA,SAAA,EAAW;AAC9B,MAAA,MAAM,SAAiC,EAAC;AACxC,MAAA,KAAA,MAAW,KAAA,IAAS,IAAI,MAAA,EAAQ;AAC9B,QAAA,MAAM,KAAA,GAAQ,KAAA,CAAM,IAAA,GAAO,CAAC,GAAG,GAAA,IAAO,SAAA;AACtC,QAAA,MAAA,CAAO,KAAK,IAAI,KAAA,CAAM,OAAA;AAAA,MACxB;AACA,MAAA,OAAO,EAAE,IAAA,EAAM,IAAA,EAAM,KAAA,EAAO,MAAM,MAAA,EAAO;AAAA,IAC3C;AACA,IAAA,IAAI,YAAA,GAAe,eAAA;AACnB,IAAA,IAAI,eAAe,KAAA,EAAO;AACxB,MAAA,YAAA,GAAe,GAAA,CAAI,OAAA;AAAA,IACrB,CAAA,MAAO;AACL,MAAA,YAAA,GAAe,OAAO,GAAG,CAAA;AAAA,IAC3B;AACA,IAAA,OAAO,EAAE,IAAA,EAAM,IAAA,EAAM,KAAA,EAAO,YAAA,EAAc,QAAQ,IAAA,EAAK;AAAA,EACzD;AACF;AAEO,SAAS,oBACd,MAAA,EACsC;AACtC,EAAA,OAAO,MAAA,CAAO,KAAA,KAAU,IAAA,IAAQ,MAAA,CAAO,MAAA,KAAW,IAAA;AACpD;AAEO,SAAS,oBACd,MAAA,EACmC;AACnC,EAAA,OAAO,MAAA,CAAO,KAAA,KAAU,IAAA,IAAQ,MAAA,CAAO,MAAA,KAAW,IAAA;AACpD;AAEO,SAAS,cAA6C,GAAA,EAAoB;AAC/E,EAAA,MAAM,SAAqB,EAAC;AAC5B,EAAA,KAAA,MAAW,OAAO,GAAA,EAAK;AACrB,IAAA,IAAI,GAAA,CAAI,GAAG,CAAA,KAAM,MAAA,EAAW;AAC1B,MAAA,MAAA,CAAO,GAAG,CAAA,GAAI,GAAA,CAAI,GAAG,CAAA;AAAA,IACvB;AAAA,EACF;AACA,EAAA,OAAO,MAAA;AACT","file":"chunk-NNLSUHMQ.js","sourcesContent":["export function dateToday(): Date {\n const date = new Date()\n date.setHours(0, 0, 0, 0)\n return date\n}\n\nexport function datePlusDays(today: Date, days: number = 30): Date {\n const date = new Date(today)\n date.setDate(date.getDate() + days)\n date.setHours(23, 59, 59, 999)\n return date\n}\n","import type {\n StrapiAttributeErrorResponse,\n StrapiErrorResponse,\n StrapiErrorResult\n} from \"../types\"\n\nexport function isStrapiAttributeError<T>(\n result: StrapiErrorResult<T>\n): result is StrapiAttributeErrorResponse<T> {\n return (\n \"error\" in result &&\n \"details\" in result.error &&\n typeof result.error.details === \"object\" &&\n result.error.details !== null &&\n \"errors\" in result.error.details &&\n Array.isArray(result.error.details.errors)\n )\n}\n\nexport function isStrapiStandardError<T>(\n result: StrapiErrorResult<T>\n): result is StrapiErrorResponse<T> {\n return (\n \"error\" in result &&\n \"details\" in result.error &&\n typeof result.error.details === \"object\" &&\n result.error.details !== null &&\n \"errors\" in result.error.details === false\n )\n}\n","import * as v from \"valibot\"\n\ntype ValidateAndCleanSuccess<T> = {\n data: Partial<T>\n error: null\n errors: null\n}\n\ntype ValidateAndCleanFailure = {\n data: null\n error: string | null\n errors: Record<string, string> | null\n}\n\ntype ValidateAndCleanResult<T> = ValidateAndCleanSuccess<T> | ValidateAndCleanFailure\n\nexport function validateAndClean<T>(\n schema: v.BaseSchema<T, Partial<T>, v.BaseIssue<T>>,\n input: unknown\n): ValidateAndCleanResult<T> {\n try {\n const parsed = v.parse(schema, input)\n return { data: parsed, error: null, errors: null }\n } catch (err: unknown) {\n if (err instanceof v.ValiError) {\n const errors: Record<string, string> = {}\n for (const issue of err.issues) {\n const field = issue.path?.[0]?.key || \"unknown\"\n errors[field] = issue.message\n }\n return { data: null, error: null, errors }\n }\n let errorMessage = \"Unknown error\"\n if (err instanceof Error) {\n errorMessage = err.message\n } else {\n errorMessage = String(err)\n }\n return { data: null, error: errorMessage, errors: null }\n }\n}\n\nexport function isValidationSuccess<T>(\n result: ValidateAndCleanResult<T>\n): result is ValidateAndCleanSuccess<T> {\n return result.error === null && result.errors === null\n}\n\nexport function isValidationFailure<T>(\n result: ValidateAndCleanResult<T>\n): result is ValidateAndCleanFailure {\n return result.error !== null || result.errors !== null\n}\n\nexport function omitUndefined<T extends Record<string, any>>(obj: T): Partial<T> {\n const result: Partial<T> = {}\n for (const key in obj) {\n if (obj[key] !== undefined) {\n result[key] = obj[key]\n }\n }\n return result\n}\n"]}
@@ -1,92 +0,0 @@
1
- 'use strict';
2
-
3
- var v = require('valibot');
4
-
5
- function _interopNamespace(e) {
6
- if (e && e.__esModule) return e;
7
- var n = Object.create(null);
8
- if (e) {
9
- Object.keys(e).forEach(function (k) {
10
- if (k !== 'default') {
11
- var d = Object.getOwnPropertyDescriptor(e, k);
12
- Object.defineProperty(n, k, d.get ? d : {
13
- enumerable: true,
14
- get: function () { return e[k]; }
15
- });
16
- }
17
- });
18
- }
19
- n.default = e;
20
- return Object.freeze(n);
21
- }
22
-
23
- var v__namespace = /*#__PURE__*/_interopNamespace(v);
24
-
25
- // src/utilities/datetime.ts
26
- function dateToday() {
27
- const date = /* @__PURE__ */ new Date();
28
- date.setHours(0, 0, 0, 0);
29
- return date;
30
- }
31
- function datePlusDays(today, days = 30) {
32
- const date = new Date(today);
33
- date.setDate(date.getDate() + days);
34
- date.setHours(23, 59, 59, 999);
35
- return date;
36
- }
37
-
38
- // src/utilities/strapi-responses.ts
39
- function isStrapiAttributeError(result) {
40
- return "error" in result && "details" in result.error && typeof result.error.details === "object" && result.error.details !== null && "errors" in result.error.details && Array.isArray(result.error.details.errors);
41
- }
42
- function isStrapiStandardError(result) {
43
- return "error" in result && "details" in result.error && typeof result.error.details === "object" && result.error.details !== null && "errors" in result.error.details === false;
44
- }
45
- function validateAndClean(schema, input) {
46
- try {
47
- const parsed = v__namespace.parse(schema, input);
48
- return { data: parsed, error: null, errors: null };
49
- } catch (err) {
50
- if (err instanceof v__namespace.ValiError) {
51
- const errors = {};
52
- for (const issue of err.issues) {
53
- const field = issue.path?.[0]?.key || "unknown";
54
- errors[field] = issue.message;
55
- }
56
- return { data: null, error: null, errors };
57
- }
58
- let errorMessage = "Unknown error";
59
- if (err instanceof Error) {
60
- errorMessage = err.message;
61
- } else {
62
- errorMessage = String(err);
63
- }
64
- return { data: null, error: errorMessage, errors: null };
65
- }
66
- }
67
- function isValidationSuccess(result) {
68
- return result.error === null && result.errors === null;
69
- }
70
- function isValidationFailure(result) {
71
- return result.error !== null || result.errors !== null;
72
- }
73
- function omitUndefined(obj) {
74
- const result = {};
75
- for (const key in obj) {
76
- if (obj[key] !== void 0) {
77
- result[key] = obj[key];
78
- }
79
- }
80
- return result;
81
- }
82
-
83
- exports.datePlusDays = datePlusDays;
84
- exports.dateToday = dateToday;
85
- exports.isStrapiAttributeError = isStrapiAttributeError;
86
- exports.isStrapiStandardError = isStrapiStandardError;
87
- exports.isValidationFailure = isValidationFailure;
88
- exports.isValidationSuccess = isValidationSuccess;
89
- exports.omitUndefined = omitUndefined;
90
- exports.validateAndClean = validateAndClean;
91
- //# sourceMappingURL=chunk-UAQWYRXG.cjs.map
92
- //# sourceMappingURL=chunk-UAQWYRXG.cjs.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/utilities/datetime.ts","../src/utilities/strapi-responses.ts","../src/utilities/validation.ts"],"names":["v"],"mappings":"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","file":"chunk-UAQWYRXG.cjs","sourcesContent":["export function dateToday(): Date {\n const date = new Date()\n date.setHours(0, 0, 0, 0)\n return date\n}\n\nexport function datePlusDays(today: Date, days: number = 30): Date {\n const date = new Date(today)\n date.setDate(date.getDate() + days)\n date.setHours(23, 59, 59, 999)\n return date\n}\n","import type {\n StrapiAttributeErrorResponse,\n StrapiErrorResponse,\n StrapiErrorResult\n} from \"../types\"\n\nexport function isStrapiAttributeError<T>(\n result: StrapiErrorResult<T>\n): result is StrapiAttributeErrorResponse<T> {\n return (\n \"error\" in result &&\n \"details\" in result.error &&\n typeof result.error.details === \"object\" &&\n result.error.details !== null &&\n \"errors\" in result.error.details &&\n Array.isArray(result.error.details.errors)\n )\n}\n\nexport function isStrapiStandardError<T>(\n result: StrapiErrorResult<T>\n): result is StrapiErrorResponse<T> {\n return (\n \"error\" in result &&\n \"details\" in result.error &&\n typeof result.error.details === \"object\" &&\n result.error.details !== null &&\n \"errors\" in result.error.details === false\n )\n}\n","import * as v from \"valibot\"\n\ntype ValidateAndCleanSuccess<T> = {\n data: Partial<T>\n error: null\n errors: null\n}\n\ntype ValidateAndCleanFailure = {\n data: null\n error: string | null\n errors: Record<string, string> | null\n}\n\ntype ValidateAndCleanResult<T> = ValidateAndCleanSuccess<T> | ValidateAndCleanFailure\n\nexport function validateAndClean<T>(\n schema: v.BaseSchema<T, Partial<T>, v.BaseIssue<T>>,\n input: unknown\n): ValidateAndCleanResult<T> {\n try {\n const parsed = v.parse(schema, input)\n return { data: parsed, error: null, errors: null }\n } catch (err: unknown) {\n if (err instanceof v.ValiError) {\n const errors: Record<string, string> = {}\n for (const issue of err.issues) {\n const field = issue.path?.[0]?.key || \"unknown\"\n errors[field] = issue.message\n }\n return { data: null, error: null, errors }\n }\n let errorMessage = \"Unknown error\"\n if (err instanceof Error) {\n errorMessage = err.message\n } else {\n errorMessage = String(err)\n }\n return { data: null, error: errorMessage, errors: null }\n }\n}\n\nexport function isValidationSuccess<T>(\n result: ValidateAndCleanResult<T>\n): result is ValidateAndCleanSuccess<T> {\n return result.error === null && result.errors === null\n}\n\nexport function isValidationFailure<T>(\n result: ValidateAndCleanResult<T>\n): result is ValidateAndCleanFailure {\n return result.error !== null || result.errors !== null\n}\n\nexport function omitUndefined<T extends Record<string, any>>(obj: T): Partial<T> {\n const result: Partial<T> = {}\n for (const key in obj) {\n if (obj[key] !== undefined) {\n result[key] = obj[key]\n }\n }\n return result\n}\n"]}