@getcommunity/gc-validators 0.0.192 → 0.0.193

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 (73) hide show
  1. package/dist/constants/index.d.cts +14 -1
  2. package/dist/constants/index.d.ts +14 -1
  3. package/dist/constants/permission.constants.cjs.map +1 -1
  4. package/dist/constants/permission.constants.d.cts +17 -29
  5. package/dist/constants/permission.constants.d.ts +17 -29
  6. package/dist/constants/permission.constants.js.map +1 -1
  7. package/dist/index.d.cts +2 -4
  8. package/dist/index.d.ts +2 -4
  9. package/dist/{client-content-pillar.document-BmtrCuzt.d.cts → permission.constants-Cz0fuVJx.d.cts} +118 -4
  10. package/dist/{client-content-pillar.document-XoX1rNnY.d.ts → permission.constants-DVf4IlLp.d.ts} +118 -4
  11. package/dist/schemas/client-user.schemas.d.cts +17 -1
  12. package/dist/schemas/client-user.schemas.d.ts +17 -1
  13. package/dist/schemas/index.d.cts +17 -1
  14. package/dist/schemas/index.d.ts +17 -1
  15. package/dist/types/documents/blog-post.document.d.cts +2 -2
  16. package/dist/types/documents/blog-post.document.d.ts +2 -2
  17. package/dist/types/documents/category.document.d.cts +2 -2
  18. package/dist/types/documents/category.document.d.ts +2 -2
  19. package/dist/types/documents/client-content-pillar.document.d.cts +5 -4
  20. package/dist/types/documents/client-content-pillar.document.d.ts +5 -4
  21. package/dist/types/documents/client-media-platform-content-type.document.d.cts +5 -4
  22. package/dist/types/documents/client-media-platform-content-type.document.d.ts +5 -4
  23. package/dist/types/documents/client-media-platform.document.d.cts +5 -4
  24. package/dist/types/documents/client-media-platform.document.d.ts +5 -4
  25. package/dist/types/documents/client-project.document.d.cts +5 -4
  26. package/dist/types/documents/client-project.document.d.ts +5 -4
  27. package/dist/types/documents/client-report.document.d.cts +5 -4
  28. package/dist/types/documents/client-report.document.d.ts +5 -4
  29. package/dist/types/documents/client-styleguide.document.d.cts +5 -4
  30. package/dist/types/documents/client-styleguide.document.d.ts +5 -4
  31. package/dist/types/documents/client-user.document.d.cts +5 -4
  32. package/dist/types/documents/client-user.document.d.ts +5 -4
  33. package/dist/types/documents/client.document.d.cts +4 -3
  34. package/dist/types/documents/client.document.d.ts +4 -3
  35. package/dist/types/documents/content-pillar.document.d.cts +5 -4
  36. package/dist/types/documents/content-pillar.document.d.ts +5 -4
  37. package/dist/types/documents/gcflytour-snap.document.d.cts +5 -4
  38. package/dist/types/documents/gcflytour-snap.document.d.ts +5 -4
  39. package/dist/types/documents/gcflytour.document.d.cts +5 -4
  40. package/dist/types/documents/gcflytour.document.d.ts +5 -4
  41. package/dist/types/documents/index.d.cts +3 -4
  42. package/dist/types/documents/index.d.ts +3 -4
  43. package/dist/types/documents/media-content-type.document.d.cts +5 -4
  44. package/dist/types/documents/media-content-type.document.d.ts +5 -4
  45. package/dist/types/documents/media-platform.document.d.cts +5 -4
  46. package/dist/types/documents/media-platform.document.d.ts +5 -4
  47. package/dist/types/documents/permission.document.d.cts +5 -4
  48. package/dist/types/documents/permission.document.d.ts +5 -4
  49. package/dist/types/documents/product-highlight.document.d.cts +5 -4
  50. package/dist/types/documents/product-highlight.document.d.ts +5 -4
  51. package/dist/types/documents/role.document.d.cts +5 -4
  52. package/dist/types/documents/role.document.d.ts +5 -4
  53. package/dist/types/documents/team-member.document.d.cts +2 -2
  54. package/dist/types/documents/team-member.document.d.ts +2 -2
  55. package/dist/types/documents/trend.document.d.cts +2 -2
  56. package/dist/types/documents/trend.document.d.ts +2 -2
  57. package/dist/types/documents/user-account.document.d.cts +5 -4
  58. package/dist/types/documents/user-account.document.d.ts +5 -4
  59. package/dist/types/documents/user.document.d.cts +5 -4
  60. package/dist/types/documents/user.document.d.ts +5 -4
  61. package/dist/types/documents/utm-tracking-link.document.d.cts +5 -4
  62. package/dist/types/documents/utm-tracking-link.document.d.ts +5 -4
  63. package/dist/types/index.d.cts +2 -4
  64. package/dist/types/index.d.ts +2 -4
  65. package/dist/types/permissions/index.d.cts +3 -5
  66. package/dist/types/permissions/index.d.ts +3 -5
  67. package/dist/types/permissions/permission.types.d.cts +4 -89
  68. package/dist/types/permissions/permission.types.d.ts +4 -89
  69. package/dist/utilities/permission.utilities.d.cts +3 -5
  70. package/dist/utilities/permission.utilities.d.ts +3 -5
  71. package/package.json +1 -1
  72. package/dist/{blog-post.document-sRpXgwmw.d.ts → blog-post.document-DuONcTyz.d.ts} +1 -1
  73. package/dist/{blog-post.document-D-xEXtLS.d.cts → blog-post.document-psR2l_yP.d.cts} +1 -1
@@ -6,5 +6,18 @@ export { ValidGcDesiredContentOptions, ValidGcServiceOptions, ValidGcVideoServic
6
6
  export { LIMIT_LONG_STRING_MAX_LENGTH, LIMIT_MAX_DESTINATION, LIMIT_MAX_DOMAIN, LIMIT_MAX_EMAIL, LIMIT_MAX_FRAGMENT, LIMIT_MAX_PASSWORD, LIMIT_MAX_PATH, LIMIT_MAX_PHONE, LIMIT_MAX_PROVIDER, LIMIT_MAX_QUERY, LIMIT_MAX_USERNAME, LIMIT_MAX_UTM_CAMPAIGN, LIMIT_MAX_UTM_CONTENT, LIMIT_MAX_UTM_CREATIVE_FORMAT, LIMIT_MAX_UTM_ID, LIMIT_MAX_UTM_KEY, LIMIT_MAX_UTM_MEDIUM, LIMIT_MAX_UTM_SOURCE, LIMIT_MAX_UTM_TERM, LIMIT_MEDIUM_STRING_MAX_LENGTH, LIMIT_MIN_DESTINATION, LIMIT_MIN_DOMAIN, LIMIT_MIN_EMAIL, LIMIT_MIN_FRAGMENT, LIMIT_MIN_PASSWORD, LIMIT_MIN_PATH, LIMIT_MIN_PHONE, LIMIT_MIN_QUERY, LIMIT_MIN_USERNAME, LIMIT_MIN_UTM_CAMPAIGN, LIMIT_MIN_UTM_CONTENT, LIMIT_MIN_UTM_CREATIVE_FORMAT, LIMIT_MIN_UTM_ID, LIMIT_MIN_UTM_KEY, LIMIT_MIN_UTM_MEDIUM, LIMIT_MIN_UTM_SOURCE, LIMIT_MIN_UTM_TERM, LIMIT_MIN_VALUE, LIMIT_SHORT_STRING_MAX_LENGTH, LIMIT_VAL_10, LIMIT_VAL_100 } from './limits.constants.cjs';
7
7
  export { ERROR_MESSAGE_COMMA_SEPPARATED_URLS, ERROR_MESSAGE_INVALID_URL, ERROR_MESSAGE_ONE_PROJECT_STATUS, ERROR_MESSAGE_ROBOT, ERROR_MESSAGE_URL_NO_QUERY_PARAMS, ERROR_MESSAGE_URL_PREFIX, ERROR_MESSAGE_UTM_URL } from './message-response.constants.cjs';
8
8
  export { LIMIT_BLOG_POST_PAGINATION_DEFAULT_SIZE, LIMIT_BLOG_POST_PAGINATION_MAX_SIZE, LIMIT_CATEGORIES_DEFAULT_SIZE, LIMIT_CATEGORIES_MAX_SIZE, LIMIT_CLIENT_CONTENT_PILLAR_PAGINATION_DEFAULT_SIZE, LIMIT_CLIENT_CONTENT_PILLAR_PAGINATION_MAX_SIZE, LIMIT_CLIENT_MEDIA_PLATFORM_PAGINATION_DEFAULT_SIZE, LIMIT_CLIENT_MEDIA_PLATFORM_PAGINATION_MAX_SIZE, LIMIT_CLIENT_PAGINATION_DEFAULT_SIZE, LIMIT_CLIENT_PAGINATION_MAX_SIZE, LIMIT_CLIENT_PROJECT_PAGINATION_DEFAULT_SIZE, LIMIT_CLIENT_PROJECT_PAGINATION_MAX_SIZE, LIMIT_CLIENT_REPORT_PAGINATION_DEFAULT_SIZE, LIMIT_CLIENT_REPORT_PAGINATION_MAX_SIZE, LIMIT_CLIENT_STYLEGUIDE_PAGINATION_DEFAULT_SIZE, LIMIT_CLIENT_STYLEGUIDE_PAGINATION_MAX_SIZE, LIMIT_CLIENT_USER_PAGINATION_DEFAULT_SIZE_LIMIT, LIMIT_CLIENT_USER_PAGINATION_MAX_SIZE_LIMIT, LIMIT_PAGINATION_DEFAULT_SIZE, LIMIT_PAGINATION_MAX_SIZE, LIMIT_PRODUCT_HIGHLIGHT_PAGINATION_DEFAULT_SIZE, LIMIT_PRODUCT_HIGHLIGHT_PAGINATION_MAX_SIZE, LIMIT_PRODUCT_PAGINATION_DEFAULT_SIZE, LIMIT_PRODUCT_PAGINATION_MAX_SIZE, LIMIT_REDIRECT_PAGINATION_DEFAULT_SIZE, LIMIT_REDIRECT_PAGINATION_MAX_SIZE, LIMIT_TABLE_PAGINATION_DEFAULT_SIZE, LIMIT_TAGS_DEFAULT_SIZE, LIMIT_TAGS_MAX_SIZE, LIMIT_TEAM_MEMBER_PAGINATION_DEFAULT_SIZE, LIMIT_TEAM_MEMBER_PAGINATION_MAX_SIZE, LIMIT_TREND_PAGINATION_DEFAULT_SIZE, LIMIT_TREND_PAGINATION_MAX_SIZE, LIMIT_USER_PAGINATION_DEFAULT_SIZE, LIMIT_USER_PAGINATION_MAX_SIZE, LIMIT_UTM_TRACKING_LINK_PAGINATION_DEFAULT_SIZE, LIMIT_UTM_TRACKING_LINK_PAGINATION_MAX_SIZE } from './pagination.constants.cjs';
9
- export { CLIENT_ENTITY_KEYS, CLIENT_ENTITY_PERMISSIONS, CLIENT_ENTITY_SCOPES, ClientEntityActions, ClientEntityKey, ClientEntityScope } from './permission.constants.cjs';
9
+ export { a as CLIENT_ENTITY_KEYS, C as CLIENT_ENTITY_PERMISSIONS, b as CLIENT_ENTITY_SCOPES } from '../permission.constants-Cz0fuVJx.cjs';
10
10
  export { ERROR_MESSAGE_REGEX_PHONE, ERROR_MESSAGE_REGEX_URL_SLUG, ERROR_MESSAGE_REGEX_UTM_VALUE, REGEX_BRAND_COLOR_SLUG, REGEX_NANP_PHONE, REGEX_URL_SLUG, REGEX_UTM_VALUE } from './regex.constants.cjs';
11
+ import '../types/core/document.cjs';
12
+ import '../types/components/blocks/brand-logos.cjs';
13
+ import '../types/core/media.cjs';
14
+ import '../types/components/shared/rich-text-block.cjs';
15
+ import '../types/components/brand/styleguide-color.cjs';
16
+ import '../types/components/brand/styleguide-font.cjs';
17
+ import '../types/components/blocks/fullscreen-content.cjs';
18
+ import '../types/components/blocks/video.cjs';
19
+ import '../types/documents/tag.document.cjs';
20
+ import '../types/documents/product.document.cjs';
21
+ import '../types/components/shared/seo.cjs';
22
+ import '../types/components/utm/utm-option.cjs';
23
+ import '../types/documents/comment.document.cjs';
@@ -6,5 +6,18 @@ export { ValidGcDesiredContentOptions, ValidGcServiceOptions, ValidGcVideoServic
6
6
  export { LIMIT_LONG_STRING_MAX_LENGTH, LIMIT_MAX_DESTINATION, LIMIT_MAX_DOMAIN, LIMIT_MAX_EMAIL, LIMIT_MAX_FRAGMENT, LIMIT_MAX_PASSWORD, LIMIT_MAX_PATH, LIMIT_MAX_PHONE, LIMIT_MAX_PROVIDER, LIMIT_MAX_QUERY, LIMIT_MAX_USERNAME, LIMIT_MAX_UTM_CAMPAIGN, LIMIT_MAX_UTM_CONTENT, LIMIT_MAX_UTM_CREATIVE_FORMAT, LIMIT_MAX_UTM_ID, LIMIT_MAX_UTM_KEY, LIMIT_MAX_UTM_MEDIUM, LIMIT_MAX_UTM_SOURCE, LIMIT_MAX_UTM_TERM, LIMIT_MEDIUM_STRING_MAX_LENGTH, LIMIT_MIN_DESTINATION, LIMIT_MIN_DOMAIN, LIMIT_MIN_EMAIL, LIMIT_MIN_FRAGMENT, LIMIT_MIN_PASSWORD, LIMIT_MIN_PATH, LIMIT_MIN_PHONE, LIMIT_MIN_QUERY, LIMIT_MIN_USERNAME, LIMIT_MIN_UTM_CAMPAIGN, LIMIT_MIN_UTM_CONTENT, LIMIT_MIN_UTM_CREATIVE_FORMAT, LIMIT_MIN_UTM_ID, LIMIT_MIN_UTM_KEY, LIMIT_MIN_UTM_MEDIUM, LIMIT_MIN_UTM_SOURCE, LIMIT_MIN_UTM_TERM, LIMIT_MIN_VALUE, LIMIT_SHORT_STRING_MAX_LENGTH, LIMIT_VAL_10, LIMIT_VAL_100 } from './limits.constants.js';
7
7
  export { ERROR_MESSAGE_COMMA_SEPPARATED_URLS, ERROR_MESSAGE_INVALID_URL, ERROR_MESSAGE_ONE_PROJECT_STATUS, ERROR_MESSAGE_ROBOT, ERROR_MESSAGE_URL_NO_QUERY_PARAMS, ERROR_MESSAGE_URL_PREFIX, ERROR_MESSAGE_UTM_URL } from './message-response.constants.js';
8
8
  export { LIMIT_BLOG_POST_PAGINATION_DEFAULT_SIZE, LIMIT_BLOG_POST_PAGINATION_MAX_SIZE, LIMIT_CATEGORIES_DEFAULT_SIZE, LIMIT_CATEGORIES_MAX_SIZE, LIMIT_CLIENT_CONTENT_PILLAR_PAGINATION_DEFAULT_SIZE, LIMIT_CLIENT_CONTENT_PILLAR_PAGINATION_MAX_SIZE, LIMIT_CLIENT_MEDIA_PLATFORM_PAGINATION_DEFAULT_SIZE, LIMIT_CLIENT_MEDIA_PLATFORM_PAGINATION_MAX_SIZE, LIMIT_CLIENT_PAGINATION_DEFAULT_SIZE, LIMIT_CLIENT_PAGINATION_MAX_SIZE, LIMIT_CLIENT_PROJECT_PAGINATION_DEFAULT_SIZE, LIMIT_CLIENT_PROJECT_PAGINATION_MAX_SIZE, LIMIT_CLIENT_REPORT_PAGINATION_DEFAULT_SIZE, LIMIT_CLIENT_REPORT_PAGINATION_MAX_SIZE, LIMIT_CLIENT_STYLEGUIDE_PAGINATION_DEFAULT_SIZE, LIMIT_CLIENT_STYLEGUIDE_PAGINATION_MAX_SIZE, LIMIT_CLIENT_USER_PAGINATION_DEFAULT_SIZE_LIMIT, LIMIT_CLIENT_USER_PAGINATION_MAX_SIZE_LIMIT, LIMIT_PAGINATION_DEFAULT_SIZE, LIMIT_PAGINATION_MAX_SIZE, LIMIT_PRODUCT_HIGHLIGHT_PAGINATION_DEFAULT_SIZE, LIMIT_PRODUCT_HIGHLIGHT_PAGINATION_MAX_SIZE, LIMIT_PRODUCT_PAGINATION_DEFAULT_SIZE, LIMIT_PRODUCT_PAGINATION_MAX_SIZE, LIMIT_REDIRECT_PAGINATION_DEFAULT_SIZE, LIMIT_REDIRECT_PAGINATION_MAX_SIZE, LIMIT_TABLE_PAGINATION_DEFAULT_SIZE, LIMIT_TAGS_DEFAULT_SIZE, LIMIT_TAGS_MAX_SIZE, LIMIT_TEAM_MEMBER_PAGINATION_DEFAULT_SIZE, LIMIT_TEAM_MEMBER_PAGINATION_MAX_SIZE, LIMIT_TREND_PAGINATION_DEFAULT_SIZE, LIMIT_TREND_PAGINATION_MAX_SIZE, LIMIT_USER_PAGINATION_DEFAULT_SIZE, LIMIT_USER_PAGINATION_MAX_SIZE, LIMIT_UTM_TRACKING_LINK_PAGINATION_DEFAULT_SIZE, LIMIT_UTM_TRACKING_LINK_PAGINATION_MAX_SIZE } from './pagination.constants.js';
9
- export { CLIENT_ENTITY_KEYS, CLIENT_ENTITY_PERMISSIONS, CLIENT_ENTITY_SCOPES, ClientEntityActions, ClientEntityKey, ClientEntityScope } from './permission.constants.js';
9
+ export { a as CLIENT_ENTITY_KEYS, C as CLIENT_ENTITY_PERMISSIONS, b as CLIENT_ENTITY_SCOPES } from '../permission.constants-DVf4IlLp.js';
10
10
  export { ERROR_MESSAGE_REGEX_PHONE, ERROR_MESSAGE_REGEX_URL_SLUG, ERROR_MESSAGE_REGEX_UTM_VALUE, REGEX_BRAND_COLOR_SLUG, REGEX_NANP_PHONE, REGEX_URL_SLUG, REGEX_UTM_VALUE } from './regex.constants.js';
11
+ import '../types/core/document.js';
12
+ import '../types/components/blocks/brand-logos.js';
13
+ import '../types/core/media.js';
14
+ import '../types/components/shared/rich-text-block.js';
15
+ import '../types/components/brand/styleguide-color.js';
16
+ import '../types/components/brand/styleguide-font.js';
17
+ import '../types/components/blocks/fullscreen-content.js';
18
+ import '../types/components/blocks/video.js';
19
+ import '../types/documents/tag.document.js';
20
+ import '../types/documents/product.document.js';
21
+ import '../types/components/shared/seo.js';
22
+ import '../types/components/utm/utm-option.js';
23
+ import '../types/documents/comment.document.js';
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/constants/permission.constants.ts"],"names":[],"mappings":";;AAQO,MAAM,yBAAA,GAA4B;AAAA,EACvC,QAAQ,CAAC,OAAA,EAAS,OAAA,EAAS,SAAA,EAAW,WAAW,QAAQ,CAAA;AAAA,EACzD,kBAAkB,CAAC,MAAA,EAAQ,UAAU,MAAA,EAAQ,QAAA,EAAU,UAAU,QAAQ,CAAA;AAAA,EACzE,yBAAyB,CAAC,MAAA,EAAQ,QAAA,EAAU,MAAA,EAAQ,UAAU,QAAQ,CAAA;AAAA,EACtE,sCAAsC,CAAC,MAAA,EAAQ,QAAA,EAAU,MAAA,EAAQ,UAAU,QAAQ,CAAA;AAAA,EACnF,yBAAyB,CAAC,MAAA,EAAQ,QAAA,EAAU,MAAA,EAAQ,UAAU,QAAQ,CAAA;AAAA,EACtE,iBAAiB,CAAC,MAAA,EAAQ,QAAA,EAAU,MAAA,EAAQ,UAAU,QAAQ,CAAA;AAAA,EAC9D,qBAAqB,CAAC,MAAA,EAAQ,QAAA,EAAU,MAAA,EAAQ,UAAU,QAAQ,CAAA;AAAA,EAClE,qBAAqB,CAAC,MAAA,EAAQ,QAAA,EAAU,MAAA,EAAQ,UAAU,QAAQ,CAAA;AAAA,EAClE,WAAW,CAAC,MAAA,EAAQ,QAAA,EAAU,MAAA,EAAQ,UAAU,QAAQ,CAAA;AAAA,EACxD,kBAAkB,CAAC,MAAA,EAAQ,QAAA,EAAU,MAAA,EAAQ,UAAU,QAAQ;AACjE;AAgBO,MAAM,qBAAqB,MAAA,CAAO,IAAA;AAAA,EACvC;AACF;AAEO,MAAM,uBAA4C,MAAA,CAAO,OAAA;AAAA,EAC9D;AACF,CAAA,CAAE,OAAA;AAAA,EAAQ,CAAC,CAAC,MAAA,EAAQ,OAAO,CAAA,KACzB,OAAA,CAAQ,GAAA,CAAI,CAAC,MAAA,KAAW,CAAA,EAAG,MAAM,CAAA,CAAA,EAAI,MAAM,CAAA,CAAuB;AACpE","file":"permission.constants.cjs","sourcesContent":["/**\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 \"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"]}
1
+ {"version":3,"sources":["../../src/constants/permission.constants.ts"],"names":[],"mappings":";;AAUO,MAAM,yBAAA,GAA4B;AAAA,EACvC,QAAQ,CAAC,OAAA,EAAS,OAAA,EAAS,SAAA,EAAW,WAAW,QAAQ,CAAA;AAAA,EACzD,kBAAkB,CAAC,MAAA,EAAQ,UAAU,MAAA,EAAQ,QAAA,EAAU,UAAU,QAAQ,CAAA;AAAA,EACzE,yBAAyB,CAAC,MAAA,EAAQ,QAAA,EAAU,MAAA,EAAQ,UAAU,QAAQ,CAAA;AAAA,EACtE,sCAAsC,CAAC,MAAA,EAAQ,QAAA,EAAU,MAAA,EAAQ,UAAU,QAAQ,CAAA;AAAA,EACnF,yBAAyB,CAAC,MAAA,EAAQ,QAAA,EAAU,MAAA,EAAQ,UAAU,QAAQ,CAAA;AAAA,EACtE,iBAAiB,CAAC,MAAA,EAAQ,QAAA,EAAU,MAAA,EAAQ,UAAU,QAAQ,CAAA;AAAA,EAC9D,qBAAqB,CAAC,MAAA,EAAQ,QAAA,EAAU,MAAA,EAAQ,UAAU,QAAQ,CAAA;AAAA,EAClE,qBAAqB,CAAC,MAAA,EAAQ,QAAA,EAAU,MAAA,EAAQ,UAAU,QAAQ,CAAA;AAAA,EAClE,WAAW,CAAC,MAAA,EAAQ,QAAA,EAAU,MAAA,EAAQ,UAAU,QAAQ,CAAA;AAAA,EACxD,kBAAkB,CAAC,MAAA,EAAQ,QAAA,EAAU,MAAA,EAAQ,UAAU,QAAQ;AACjE;AAEO,MAAM,qBAAqB,MAAA,CAAO,IAAA;AAAA,EACvC;AACF;AAEO,MAAM,uBAA4C,MAAA,CAAO,OAAA;AAAA,EAC9D;AACF,CAAA,CAAE,OAAA;AAAA,EAAQ,CAAC,CAAC,MAAA,EAAQ,OAAO,CAAA,KACzB,OAAA,CAAQ,GAAA,CAAI,CAAC,MAAA,KAAW,CAAA,EAAG,MAAM,CAAA,CAAA,EAAI,MAAM,CAAA,CAAuB;AACpE","file":"permission.constants.cjs","sourcesContent":["/**\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\nimport { ClientEntityKey, ClientEntityScope } from \"../types\"\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 \"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 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"]}
@@ -1,29 +1,17 @@
1
- /**
2
- * Example usage of ClientEntityScope type
3
- * @reference https://youtube.com/shorts/zOseJFD447U?si=xX8DYEHdl9YtN7S4
4
- *
5
- * > const validScope: ClientEntityScope = "utm-tracking-link:list"; // ✅
6
- * > const invalidScope: ClientEntityScope = "blog-post:import"; // ❌ Type error!
7
- */
8
- declare const CLIENT_ENTITY_PERMISSIONS: {
9
- readonly client: readonly ["admin", "owner", "manager", "billing", "access"];
10
- readonly "client-project": readonly ["list", "create", "read", "update", "delete", "assign"];
11
- readonly "client-media-platform": readonly ["list", "create", "read", "update", "delete"];
12
- readonly "client-media-platform-content-type": readonly ["list", "create", "read", "update", "delete"];
13
- readonly "client-content-pillar": readonly ["list", "create", "read", "update", "delete"];
14
- readonly "client-report": readonly ["list", "create", "read", "update", "delete"];
15
- readonly "client-styleguide": readonly ["list", "create", "read", "update", "delete"];
16
- readonly "utm-tracking-link": readonly ["list", "create", "read", "update", "delete"];
17
- readonly gcflytour: readonly ["list", "create", "read", "update", "delete"];
18
- readonly "gcflytour-snap": readonly ["list", "create", "read", "update", "delete"];
19
- };
20
- type ClientEntityKey = keyof typeof CLIENT_ENTITY_PERMISSIONS;
21
- type ClientEntityActions<K extends ClientEntityKey = ClientEntityKey> = (typeof CLIENT_ENTITY_PERMISSIONS)[K][number];
22
- type EntityActionJoin<K extends string, V extends string> = `${K}:${V}`;
23
- type ClientEntityScope = {
24
- [K in ClientEntityKey]: EntityActionJoin<K, (typeof CLIENT_ENTITY_PERMISSIONS)[K][number]>;
25
- }[ClientEntityKey];
26
- declare const CLIENT_ENTITY_KEYS: ClientEntityKey[];
27
- declare const CLIENT_ENTITY_SCOPES: ClientEntityScope[];
28
-
29
- export { CLIENT_ENTITY_KEYS, CLIENT_ENTITY_PERMISSIONS, CLIENT_ENTITY_SCOPES, type ClientEntityActions, type ClientEntityKey, type ClientEntityScope };
1
+ export { a as CLIENT_ENTITY_KEYS, C as CLIENT_ENTITY_PERMISSIONS, b as CLIENT_ENTITY_SCOPES } from '../permission.constants-Cz0fuVJx.cjs';
2
+ import '../types/core/document.cjs';
3
+ import '../types/components/blocks/brand-logos.cjs';
4
+ import '../types/core/media.cjs';
5
+ import '../types/components/shared/rich-text-block.cjs';
6
+ import './client-project.constants.cjs';
7
+ import '../types/components/brand/styleguide-color.cjs';
8
+ import '../types/components/brand/styleguide-font.cjs';
9
+ import './font.constants.cjs';
10
+ import '../types/components/blocks/fullscreen-content.cjs';
11
+ import '../types/components/blocks/video.cjs';
12
+ import '../types/documents/tag.document.cjs';
13
+ import '../types/documents/product.document.cjs';
14
+ import '../types/components/shared/seo.cjs';
15
+ import '../types/components/utm/utm-option.cjs';
16
+ import '../types/documents/comment.document.cjs';
17
+ import './comment.constants.cjs';
@@ -1,29 +1,17 @@
1
- /**
2
- * Example usage of ClientEntityScope type
3
- * @reference https://youtube.com/shorts/zOseJFD447U?si=xX8DYEHdl9YtN7S4
4
- *
5
- * > const validScope: ClientEntityScope = "utm-tracking-link:list"; // ✅
6
- * > const invalidScope: ClientEntityScope = "blog-post:import"; // ❌ Type error!
7
- */
8
- declare const CLIENT_ENTITY_PERMISSIONS: {
9
- readonly client: readonly ["admin", "owner", "manager", "billing", "access"];
10
- readonly "client-project": readonly ["list", "create", "read", "update", "delete", "assign"];
11
- readonly "client-media-platform": readonly ["list", "create", "read", "update", "delete"];
12
- readonly "client-media-platform-content-type": readonly ["list", "create", "read", "update", "delete"];
13
- readonly "client-content-pillar": readonly ["list", "create", "read", "update", "delete"];
14
- readonly "client-report": readonly ["list", "create", "read", "update", "delete"];
15
- readonly "client-styleguide": readonly ["list", "create", "read", "update", "delete"];
16
- readonly "utm-tracking-link": readonly ["list", "create", "read", "update", "delete"];
17
- readonly gcflytour: readonly ["list", "create", "read", "update", "delete"];
18
- readonly "gcflytour-snap": readonly ["list", "create", "read", "update", "delete"];
19
- };
20
- type ClientEntityKey = keyof typeof CLIENT_ENTITY_PERMISSIONS;
21
- type ClientEntityActions<K extends ClientEntityKey = ClientEntityKey> = (typeof CLIENT_ENTITY_PERMISSIONS)[K][number];
22
- type EntityActionJoin<K extends string, V extends string> = `${K}:${V}`;
23
- type ClientEntityScope = {
24
- [K in ClientEntityKey]: EntityActionJoin<K, (typeof CLIENT_ENTITY_PERMISSIONS)[K][number]>;
25
- }[ClientEntityKey];
26
- declare const CLIENT_ENTITY_KEYS: ClientEntityKey[];
27
- declare const CLIENT_ENTITY_SCOPES: ClientEntityScope[];
28
-
29
- export { CLIENT_ENTITY_KEYS, CLIENT_ENTITY_PERMISSIONS, CLIENT_ENTITY_SCOPES, type ClientEntityActions, type ClientEntityKey, type ClientEntityScope };
1
+ export { a as CLIENT_ENTITY_KEYS, C as CLIENT_ENTITY_PERMISSIONS, b as CLIENT_ENTITY_SCOPES } from '../permission.constants-DVf4IlLp.js';
2
+ import '../types/core/document.js';
3
+ import '../types/components/blocks/brand-logos.js';
4
+ import '../types/core/media.js';
5
+ import '../types/components/shared/rich-text-block.js';
6
+ import './client-project.constants.js';
7
+ import '../types/components/brand/styleguide-color.js';
8
+ import '../types/components/brand/styleguide-font.js';
9
+ import './font.constants.js';
10
+ import '../types/components/blocks/fullscreen-content.js';
11
+ import '../types/components/blocks/video.js';
12
+ import '../types/documents/tag.document.js';
13
+ import '../types/documents/product.document.js';
14
+ import '../types/components/shared/seo.js';
15
+ import '../types/components/utm/utm-option.js';
16
+ import '../types/documents/comment.document.js';
17
+ import './comment.constants.js';
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/constants/permission.constants.ts"],"names":[],"mappings":"AAQO,MAAM,yBAAA,GAA4B;AAAA,EACvC,QAAQ,CAAC,OAAA,EAAS,OAAA,EAAS,SAAA,EAAW,WAAW,QAAQ,CAAA;AAAA,EACzD,kBAAkB,CAAC,MAAA,EAAQ,UAAU,MAAA,EAAQ,QAAA,EAAU,UAAU,QAAQ,CAAA;AAAA,EACzE,yBAAyB,CAAC,MAAA,EAAQ,QAAA,EAAU,MAAA,EAAQ,UAAU,QAAQ,CAAA;AAAA,EACtE,sCAAsC,CAAC,MAAA,EAAQ,QAAA,EAAU,MAAA,EAAQ,UAAU,QAAQ,CAAA;AAAA,EACnF,yBAAyB,CAAC,MAAA,EAAQ,QAAA,EAAU,MAAA,EAAQ,UAAU,QAAQ,CAAA;AAAA,EACtE,iBAAiB,CAAC,MAAA,EAAQ,QAAA,EAAU,MAAA,EAAQ,UAAU,QAAQ,CAAA;AAAA,EAC9D,qBAAqB,CAAC,MAAA,EAAQ,QAAA,EAAU,MAAA,EAAQ,UAAU,QAAQ,CAAA;AAAA,EAClE,qBAAqB,CAAC,MAAA,EAAQ,QAAA,EAAU,MAAA,EAAQ,UAAU,QAAQ,CAAA;AAAA,EAClE,WAAW,CAAC,MAAA,EAAQ,QAAA,EAAU,MAAA,EAAQ,UAAU,QAAQ,CAAA;AAAA,EACxD,kBAAkB,CAAC,MAAA,EAAQ,QAAA,EAAU,MAAA,EAAQ,UAAU,QAAQ;AACjE;AAgBO,MAAM,qBAAqB,MAAA,CAAO,IAAA;AAAA,EACvC;AACF;AAEO,MAAM,uBAA4C,MAAA,CAAO,OAAA;AAAA,EAC9D;AACF,CAAA,CAAE,OAAA;AAAA,EAAQ,CAAC,CAAC,MAAA,EAAQ,OAAO,CAAA,KACzB,OAAA,CAAQ,GAAA,CAAI,CAAC,MAAA,KAAW,CAAA,EAAG,MAAM,CAAA,CAAA,EAAI,MAAM,CAAA,CAAuB;AACpE","file":"permission.constants.js","sourcesContent":["/**\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 \"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"]}
1
+ {"version":3,"sources":["../../src/constants/permission.constants.ts"],"names":[],"mappings":"AAUO,MAAM,yBAAA,GAA4B;AAAA,EACvC,QAAQ,CAAC,OAAA,EAAS,OAAA,EAAS,SAAA,EAAW,WAAW,QAAQ,CAAA;AAAA,EACzD,kBAAkB,CAAC,MAAA,EAAQ,UAAU,MAAA,EAAQ,QAAA,EAAU,UAAU,QAAQ,CAAA;AAAA,EACzE,yBAAyB,CAAC,MAAA,EAAQ,QAAA,EAAU,MAAA,EAAQ,UAAU,QAAQ,CAAA;AAAA,EACtE,sCAAsC,CAAC,MAAA,EAAQ,QAAA,EAAU,MAAA,EAAQ,UAAU,QAAQ,CAAA;AAAA,EACnF,yBAAyB,CAAC,MAAA,EAAQ,QAAA,EAAU,MAAA,EAAQ,UAAU,QAAQ,CAAA;AAAA,EACtE,iBAAiB,CAAC,MAAA,EAAQ,QAAA,EAAU,MAAA,EAAQ,UAAU,QAAQ,CAAA;AAAA,EAC9D,qBAAqB,CAAC,MAAA,EAAQ,QAAA,EAAU,MAAA,EAAQ,UAAU,QAAQ,CAAA;AAAA,EAClE,qBAAqB,CAAC,MAAA,EAAQ,QAAA,EAAU,MAAA,EAAQ,UAAU,QAAQ,CAAA;AAAA,EAClE,WAAW,CAAC,MAAA,EAAQ,QAAA,EAAU,MAAA,EAAQ,UAAU,QAAQ,CAAA;AAAA,EACxD,kBAAkB,CAAC,MAAA,EAAQ,QAAA,EAAU,MAAA,EAAQ,UAAU,QAAQ;AACjE;AAEO,MAAM,qBAAqB,MAAA,CAAO,IAAA;AAAA,EACvC;AACF;AAEO,MAAM,uBAA4C,MAAA,CAAO,OAAA;AAAA,EAC9D;AACF,CAAA,CAAE,OAAA;AAAA,EAAQ,CAAC,CAAC,MAAA,EAAQ,OAAO,CAAA,KACzB,OAAA,CAAQ,GAAA,CAAI,CAAC,MAAA,KAAW,CAAA,EAAG,MAAM,CAAA,CAAA,EAAI,MAAM,CAAA,CAAuB;AACpE","file":"permission.constants.js","sourcesContent":["/**\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\nimport { ClientEntityKey, ClientEntityScope } from \"../types\"\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 \"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 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"]}
package/dist/index.d.cts CHANGED
@@ -6,7 +6,7 @@ export { ValidGcDesiredContentOptions, ValidGcServiceOptions, ValidGcVideoServic
6
6
  export { LIMIT_LONG_STRING_MAX_LENGTH, LIMIT_MAX_DESTINATION, LIMIT_MAX_DOMAIN, LIMIT_MAX_EMAIL, LIMIT_MAX_FRAGMENT, LIMIT_MAX_PASSWORD, LIMIT_MAX_PATH, LIMIT_MAX_PHONE, LIMIT_MAX_PROVIDER, LIMIT_MAX_QUERY, LIMIT_MAX_USERNAME, LIMIT_MAX_UTM_CAMPAIGN, LIMIT_MAX_UTM_CONTENT, LIMIT_MAX_UTM_CREATIVE_FORMAT, LIMIT_MAX_UTM_ID, LIMIT_MAX_UTM_KEY, LIMIT_MAX_UTM_MEDIUM, LIMIT_MAX_UTM_SOURCE, LIMIT_MAX_UTM_TERM, LIMIT_MEDIUM_STRING_MAX_LENGTH, LIMIT_MIN_DESTINATION, LIMIT_MIN_DOMAIN, LIMIT_MIN_EMAIL, LIMIT_MIN_FRAGMENT, LIMIT_MIN_PASSWORD, LIMIT_MIN_PATH, LIMIT_MIN_PHONE, LIMIT_MIN_QUERY, LIMIT_MIN_USERNAME, LIMIT_MIN_UTM_CAMPAIGN, LIMIT_MIN_UTM_CONTENT, LIMIT_MIN_UTM_CREATIVE_FORMAT, LIMIT_MIN_UTM_ID, LIMIT_MIN_UTM_KEY, LIMIT_MIN_UTM_MEDIUM, LIMIT_MIN_UTM_SOURCE, LIMIT_MIN_UTM_TERM, LIMIT_MIN_VALUE, LIMIT_SHORT_STRING_MAX_LENGTH, LIMIT_VAL_10, LIMIT_VAL_100 } from './constants/limits.constants.cjs';
7
7
  export { ERROR_MESSAGE_COMMA_SEPPARATED_URLS, ERROR_MESSAGE_INVALID_URL, ERROR_MESSAGE_ONE_PROJECT_STATUS, ERROR_MESSAGE_ROBOT, ERROR_MESSAGE_URL_NO_QUERY_PARAMS, ERROR_MESSAGE_URL_PREFIX, ERROR_MESSAGE_UTM_URL } from './constants/message-response.constants.cjs';
8
8
  export { LIMIT_BLOG_POST_PAGINATION_DEFAULT_SIZE, LIMIT_BLOG_POST_PAGINATION_MAX_SIZE, LIMIT_CATEGORIES_DEFAULT_SIZE, LIMIT_CATEGORIES_MAX_SIZE, LIMIT_CLIENT_CONTENT_PILLAR_PAGINATION_DEFAULT_SIZE, LIMIT_CLIENT_CONTENT_PILLAR_PAGINATION_MAX_SIZE, LIMIT_CLIENT_MEDIA_PLATFORM_PAGINATION_DEFAULT_SIZE, LIMIT_CLIENT_MEDIA_PLATFORM_PAGINATION_MAX_SIZE, LIMIT_CLIENT_PAGINATION_DEFAULT_SIZE, LIMIT_CLIENT_PAGINATION_MAX_SIZE, LIMIT_CLIENT_PROJECT_PAGINATION_DEFAULT_SIZE, LIMIT_CLIENT_PROJECT_PAGINATION_MAX_SIZE, LIMIT_CLIENT_REPORT_PAGINATION_DEFAULT_SIZE, LIMIT_CLIENT_REPORT_PAGINATION_MAX_SIZE, LIMIT_CLIENT_STYLEGUIDE_PAGINATION_DEFAULT_SIZE, LIMIT_CLIENT_STYLEGUIDE_PAGINATION_MAX_SIZE, LIMIT_CLIENT_USER_PAGINATION_DEFAULT_SIZE_LIMIT, LIMIT_CLIENT_USER_PAGINATION_MAX_SIZE_LIMIT, LIMIT_PAGINATION_DEFAULT_SIZE, LIMIT_PAGINATION_MAX_SIZE, LIMIT_PRODUCT_HIGHLIGHT_PAGINATION_DEFAULT_SIZE, LIMIT_PRODUCT_HIGHLIGHT_PAGINATION_MAX_SIZE, LIMIT_PRODUCT_PAGINATION_DEFAULT_SIZE, LIMIT_PRODUCT_PAGINATION_MAX_SIZE, LIMIT_REDIRECT_PAGINATION_DEFAULT_SIZE, LIMIT_REDIRECT_PAGINATION_MAX_SIZE, LIMIT_TABLE_PAGINATION_DEFAULT_SIZE, LIMIT_TAGS_DEFAULT_SIZE, LIMIT_TAGS_MAX_SIZE, LIMIT_TEAM_MEMBER_PAGINATION_DEFAULT_SIZE, LIMIT_TEAM_MEMBER_PAGINATION_MAX_SIZE, LIMIT_TREND_PAGINATION_DEFAULT_SIZE, LIMIT_TREND_PAGINATION_MAX_SIZE, LIMIT_USER_PAGINATION_DEFAULT_SIZE, LIMIT_USER_PAGINATION_MAX_SIZE, LIMIT_UTM_TRACKING_LINK_PAGINATION_DEFAULT_SIZE, LIMIT_UTM_TRACKING_LINK_PAGINATION_MAX_SIZE } from './constants/pagination.constants.cjs';
9
- export { CLIENT_ENTITY_KEYS, CLIENT_ENTITY_PERMISSIONS, CLIENT_ENTITY_SCOPES, ClientEntityActions, ClientEntityKey, ClientEntityScope } from './constants/permission.constants.cjs';
9
+ export { A as AuthorizedUserDocument, a as CLIENT_ENTITY_KEYS, C as CLIENT_ENTITY_PERMISSIONS, b as CLIENT_ENTITY_SCOPES, c as ClientContentPillarDocument, k as ClientDocument, x as ClientEntityActions, w as ClientEntityKey, y as ClientEntityScope, d as ClientMediaPlatformContentTypeDocument, e as ClientMediaPlatformDocument, f as ClientProjectDocument, g as ClientReportDocument, h as ClientStyleguideDocument, i as ClientUserDocument, j as ClientUserDocumentStatus, l as ContentPillarDocument, m as GCFlyTourDocument, G as GCFlyTourSnapDocument, L as LCRUDActions, M as MediaContentTypeDocument, n as MediaPlatformDocument, P as PermissionDocument, v as Permissions, o as ProductHighlightDocument, p as RoleDocument, R as RoleType, u as RolesWithPermissions, U as UserAccountDocument, r as UserAuthorizationLoginResponse, s as UserAuthorizationSuccessResponse, q as UserDocument, t as UtmTrackingLinkDocument } from './permission.constants-Cz0fuVJx.cjs';
10
10
  export { ERROR_MESSAGE_REGEX_PHONE, ERROR_MESSAGE_REGEX_URL_SLUG, ERROR_MESSAGE_REGEX_UTM_VALUE, REGEX_BRAND_COLOR_SLUG, REGEX_NANP_PHONE, REGEX_URL_SLUG, REGEX_UTM_VALUE } from './constants/regex.constants.cjs';
11
11
  export { QuerySortBlogPosts, QueryStrapiSearchBlogPosts, QueryStrapiSearchBlogPostsBySlug } from './schemas/blog.schemas.cjs';
12
12
  export { QuerySortCategories, QueryStrapiSearchCategories, SCreateCategoryDocument, SUpdateCategoryDocument, SUpdateCategoryDocumentRequest } from './schemas/category.schemas.cjs';
@@ -72,8 +72,7 @@ export { StrapiBgColorOptions, StrapiDirection, StrapiGapSizes, StrapiIconName,
72
72
  export { FormSelectInputOption } from './types/core/forms.cjs';
73
73
  export { MediaFormat, MediaFormats, MediaUploadDocument } from './types/core/media.cjs';
74
74
  export { StrapiAttributeErrorDetail, StrapiAttributeErrorKey, StrapiAttributeErrorResponse, StrapiErrorDetail, StrapiErrorResponse, StrapiErrorResult, StrapiListResponse, StrapiPagination, StrapiResponseMeta, StrapiResponseMetaWithPagination, StrapiSingleResponse } from './types/core/response.cjs';
75
- export { B as BlogPostBlock, a as BlogPostDocument, C as CategoryDocument, c as TeamMemberDocument, b as TeamMemberGroup, T as TeamMemberTier, d as TrendDocument } from './blog-post.document-D-xEXtLS.cjs';
76
- export { A as AuthorizedUserDocument, C as ClientContentPillarDocument, h as ClientDocument, a as ClientMediaPlatformContentTypeDocument, b as ClientMediaPlatformDocument, c as ClientProjectDocument, d as ClientReportDocument, e as ClientStyleguideDocument, f as ClientUserDocument, g as ClientUserDocumentStatus, i as ContentPillarDocument, j as GCFlyTourDocument, G as GCFlyTourSnapDocument, M as MediaContentTypeDocument, k as MediaPlatformDocument, P as PermissionDocument, l as ProductHighlightDocument, m as RoleDocument, R as RoleType, U as UserAccountDocument, o as UserAuthorizationLoginResponse, p as UserAuthorizationSuccessResponse, n as UserDocument, q as UtmTrackingLinkDocument } from './client-content-pillar.document-BmtrCuzt.cjs';
75
+ export { B as BlogPostBlock, a as BlogPostDocument, C as CategoryDocument, c as TeamMemberDocument, b as TeamMemberGroup, T as TeamMemberTier, d as TrendDocument } from './blog-post.document-psR2l_yP.cjs';
77
76
  export { CommentDocument, CommentReportDocument } from './types/documents/comment.document.cjs';
78
77
  export { LeadDocument } from './types/documents/lead.document.cjs';
79
78
  export { NewsletterSignupDocument } from './types/documents/newsletter-signup.document.cjs';
@@ -81,7 +80,6 @@ export { ProductDocument } from './types/documents/product.document.cjs';
81
80
  export { ResumeDocument } from './types/documents/resume.document.cjs';
82
81
  export { TagDocument } from './types/documents/tag.document.cjs';
83
82
  export { UrlRedirectDocument, UrlRedirectQueryParams, UrlRedirectStatusCode } from './types/documents/url-redirect.document.cjs';
84
- export { LCRUDActions, Permissions, RolesWithPermissions } from './types/permissions/permission.types.cjs';
85
83
  export { BlogPageDocument } from './types/singles/blog-page.cjs';
86
84
  export { CareersPageDocument } from './types/singles/careers-page.cjs';
87
85
  export { FAQPageDocument } from './types/singles/faq-page.cjs';
package/dist/index.d.ts CHANGED
@@ -6,7 +6,7 @@ export { ValidGcDesiredContentOptions, ValidGcServiceOptions, ValidGcVideoServic
6
6
  export { LIMIT_LONG_STRING_MAX_LENGTH, LIMIT_MAX_DESTINATION, LIMIT_MAX_DOMAIN, LIMIT_MAX_EMAIL, LIMIT_MAX_FRAGMENT, LIMIT_MAX_PASSWORD, LIMIT_MAX_PATH, LIMIT_MAX_PHONE, LIMIT_MAX_PROVIDER, LIMIT_MAX_QUERY, LIMIT_MAX_USERNAME, LIMIT_MAX_UTM_CAMPAIGN, LIMIT_MAX_UTM_CONTENT, LIMIT_MAX_UTM_CREATIVE_FORMAT, LIMIT_MAX_UTM_ID, LIMIT_MAX_UTM_KEY, LIMIT_MAX_UTM_MEDIUM, LIMIT_MAX_UTM_SOURCE, LIMIT_MAX_UTM_TERM, LIMIT_MEDIUM_STRING_MAX_LENGTH, LIMIT_MIN_DESTINATION, LIMIT_MIN_DOMAIN, LIMIT_MIN_EMAIL, LIMIT_MIN_FRAGMENT, LIMIT_MIN_PASSWORD, LIMIT_MIN_PATH, LIMIT_MIN_PHONE, LIMIT_MIN_QUERY, LIMIT_MIN_USERNAME, LIMIT_MIN_UTM_CAMPAIGN, LIMIT_MIN_UTM_CONTENT, LIMIT_MIN_UTM_CREATIVE_FORMAT, LIMIT_MIN_UTM_ID, LIMIT_MIN_UTM_KEY, LIMIT_MIN_UTM_MEDIUM, LIMIT_MIN_UTM_SOURCE, LIMIT_MIN_UTM_TERM, LIMIT_MIN_VALUE, LIMIT_SHORT_STRING_MAX_LENGTH, LIMIT_VAL_10, LIMIT_VAL_100 } from './constants/limits.constants.js';
7
7
  export { ERROR_MESSAGE_COMMA_SEPPARATED_URLS, ERROR_MESSAGE_INVALID_URL, ERROR_MESSAGE_ONE_PROJECT_STATUS, ERROR_MESSAGE_ROBOT, ERROR_MESSAGE_URL_NO_QUERY_PARAMS, ERROR_MESSAGE_URL_PREFIX, ERROR_MESSAGE_UTM_URL } from './constants/message-response.constants.js';
8
8
  export { LIMIT_BLOG_POST_PAGINATION_DEFAULT_SIZE, LIMIT_BLOG_POST_PAGINATION_MAX_SIZE, LIMIT_CATEGORIES_DEFAULT_SIZE, LIMIT_CATEGORIES_MAX_SIZE, LIMIT_CLIENT_CONTENT_PILLAR_PAGINATION_DEFAULT_SIZE, LIMIT_CLIENT_CONTENT_PILLAR_PAGINATION_MAX_SIZE, LIMIT_CLIENT_MEDIA_PLATFORM_PAGINATION_DEFAULT_SIZE, LIMIT_CLIENT_MEDIA_PLATFORM_PAGINATION_MAX_SIZE, LIMIT_CLIENT_PAGINATION_DEFAULT_SIZE, LIMIT_CLIENT_PAGINATION_MAX_SIZE, LIMIT_CLIENT_PROJECT_PAGINATION_DEFAULT_SIZE, LIMIT_CLIENT_PROJECT_PAGINATION_MAX_SIZE, LIMIT_CLIENT_REPORT_PAGINATION_DEFAULT_SIZE, LIMIT_CLIENT_REPORT_PAGINATION_MAX_SIZE, LIMIT_CLIENT_STYLEGUIDE_PAGINATION_DEFAULT_SIZE, LIMIT_CLIENT_STYLEGUIDE_PAGINATION_MAX_SIZE, LIMIT_CLIENT_USER_PAGINATION_DEFAULT_SIZE_LIMIT, LIMIT_CLIENT_USER_PAGINATION_MAX_SIZE_LIMIT, LIMIT_PAGINATION_DEFAULT_SIZE, LIMIT_PAGINATION_MAX_SIZE, LIMIT_PRODUCT_HIGHLIGHT_PAGINATION_DEFAULT_SIZE, LIMIT_PRODUCT_HIGHLIGHT_PAGINATION_MAX_SIZE, LIMIT_PRODUCT_PAGINATION_DEFAULT_SIZE, LIMIT_PRODUCT_PAGINATION_MAX_SIZE, LIMIT_REDIRECT_PAGINATION_DEFAULT_SIZE, LIMIT_REDIRECT_PAGINATION_MAX_SIZE, LIMIT_TABLE_PAGINATION_DEFAULT_SIZE, LIMIT_TAGS_DEFAULT_SIZE, LIMIT_TAGS_MAX_SIZE, LIMIT_TEAM_MEMBER_PAGINATION_DEFAULT_SIZE, LIMIT_TEAM_MEMBER_PAGINATION_MAX_SIZE, LIMIT_TREND_PAGINATION_DEFAULT_SIZE, LIMIT_TREND_PAGINATION_MAX_SIZE, LIMIT_USER_PAGINATION_DEFAULT_SIZE, LIMIT_USER_PAGINATION_MAX_SIZE, LIMIT_UTM_TRACKING_LINK_PAGINATION_DEFAULT_SIZE, LIMIT_UTM_TRACKING_LINK_PAGINATION_MAX_SIZE } from './constants/pagination.constants.js';
9
- export { CLIENT_ENTITY_KEYS, CLIENT_ENTITY_PERMISSIONS, CLIENT_ENTITY_SCOPES, ClientEntityActions, ClientEntityKey, ClientEntityScope } from './constants/permission.constants.js';
9
+ export { A as AuthorizedUserDocument, a as CLIENT_ENTITY_KEYS, C as CLIENT_ENTITY_PERMISSIONS, b as CLIENT_ENTITY_SCOPES, c as ClientContentPillarDocument, k as ClientDocument, x as ClientEntityActions, w as ClientEntityKey, y as ClientEntityScope, d as ClientMediaPlatformContentTypeDocument, e as ClientMediaPlatformDocument, f as ClientProjectDocument, g as ClientReportDocument, h as ClientStyleguideDocument, i as ClientUserDocument, j as ClientUserDocumentStatus, l as ContentPillarDocument, m as GCFlyTourDocument, G as GCFlyTourSnapDocument, L as LCRUDActions, M as MediaContentTypeDocument, n as MediaPlatformDocument, P as PermissionDocument, v as Permissions, o as ProductHighlightDocument, p as RoleDocument, R as RoleType, u as RolesWithPermissions, U as UserAccountDocument, r as UserAuthorizationLoginResponse, s as UserAuthorizationSuccessResponse, q as UserDocument, t as UtmTrackingLinkDocument } from './permission.constants-DVf4IlLp.js';
10
10
  export { ERROR_MESSAGE_REGEX_PHONE, ERROR_MESSAGE_REGEX_URL_SLUG, ERROR_MESSAGE_REGEX_UTM_VALUE, REGEX_BRAND_COLOR_SLUG, REGEX_NANP_PHONE, REGEX_URL_SLUG, REGEX_UTM_VALUE } from './constants/regex.constants.js';
11
11
  export { QuerySortBlogPosts, QueryStrapiSearchBlogPosts, QueryStrapiSearchBlogPostsBySlug } from './schemas/blog.schemas.js';
12
12
  export { QuerySortCategories, QueryStrapiSearchCategories, SCreateCategoryDocument, SUpdateCategoryDocument, SUpdateCategoryDocumentRequest } from './schemas/category.schemas.js';
@@ -72,8 +72,7 @@ export { StrapiBgColorOptions, StrapiDirection, StrapiGapSizes, StrapiIconName,
72
72
  export { FormSelectInputOption } from './types/core/forms.js';
73
73
  export { MediaFormat, MediaFormats, MediaUploadDocument } from './types/core/media.js';
74
74
  export { StrapiAttributeErrorDetail, StrapiAttributeErrorKey, StrapiAttributeErrorResponse, StrapiErrorDetail, StrapiErrorResponse, StrapiErrorResult, StrapiListResponse, StrapiPagination, StrapiResponseMeta, StrapiResponseMetaWithPagination, StrapiSingleResponse } from './types/core/response.js';
75
- export { B as BlogPostBlock, a as BlogPostDocument, C as CategoryDocument, c as TeamMemberDocument, b as TeamMemberGroup, T as TeamMemberTier, d as TrendDocument } from './blog-post.document-sRpXgwmw.js';
76
- export { A as AuthorizedUserDocument, C as ClientContentPillarDocument, h as ClientDocument, a as ClientMediaPlatformContentTypeDocument, b as ClientMediaPlatformDocument, c as ClientProjectDocument, d as ClientReportDocument, e as ClientStyleguideDocument, f as ClientUserDocument, g as ClientUserDocumentStatus, i as ContentPillarDocument, j as GCFlyTourDocument, G as GCFlyTourSnapDocument, M as MediaContentTypeDocument, k as MediaPlatformDocument, P as PermissionDocument, l as ProductHighlightDocument, m as RoleDocument, R as RoleType, U as UserAccountDocument, o as UserAuthorizationLoginResponse, p as UserAuthorizationSuccessResponse, n as UserDocument, q as UtmTrackingLinkDocument } from './client-content-pillar.document-XoX1rNnY.js';
75
+ export { B as BlogPostBlock, a as BlogPostDocument, C as CategoryDocument, c as TeamMemberDocument, b as TeamMemberGroup, T as TeamMemberTier, d as TrendDocument } from './blog-post.document-DuONcTyz.js';
77
76
  export { CommentDocument, CommentReportDocument } from './types/documents/comment.document.js';
78
77
  export { LeadDocument } from './types/documents/lead.document.js';
79
78
  export { NewsletterSignupDocument } from './types/documents/newsletter-signup.document.js';
@@ -81,7 +80,6 @@ export { ProductDocument } from './types/documents/product.document.js';
81
80
  export { ResumeDocument } from './types/documents/resume.document.js';
82
81
  export { TagDocument } from './types/documents/tag.document.js';
83
82
  export { UrlRedirectDocument, UrlRedirectQueryParams, UrlRedirectStatusCode } from './types/documents/url-redirect.document.js';
84
- export { LCRUDActions, Permissions, RolesWithPermissions } from './types/permissions/permission.types.js';
85
83
  export { BlogPageDocument } from './types/singles/blog-page.js';
86
84
  export { CareersPageDocument } from './types/singles/careers-page.js';
87
85
  export { FAQPageDocument } from './types/singles/faq-page.js';
@@ -1,15 +1,15 @@
1
1
  import { BaseDocument } from './types/core/document.cjs';
2
2
  import { BlockBrandLogos } from './types/components/blocks/brand-logos.cjs';
3
- import { UtmClassificationKey } from './types/components/utm/utm-option.cjs';
4
3
  import { RichTextBlock } from './types/components/shared/rich-text-block.cjs';
5
4
  import { ClientProjectStatus, ClientProjectPhase } from './constants/client-project.constants.cjs';
6
5
  import { MediaUploadDocument } from './types/core/media.cjs';
7
6
  import { ComponentBrandStyleguideColor } from './types/components/brand/styleguide-color.cjs';
8
7
  import { ComponentBrandStyleguideFont } from './types/components/brand/styleguide-font.cjs';
9
- import { ClientEntityScope } from './constants/permission.constants.cjs';
10
8
  import { BlockFullscreenContent } from './types/components/blocks/fullscreen-content.cjs';
11
- import { ProductDocument } from './types/documents/product.document.cjs';
12
9
  import { TagDocument } from './types/documents/tag.document.cjs';
10
+ import { ProductDocument } from './types/documents/product.document.cjs';
11
+ import { UtmClassificationKey } from './types/components/utm/utm-option.cjs';
12
+ import { CommentDocument } from './types/documents/comment.document.cjs';
13
13
 
14
14
  type ClientMediaPlatformContentTypeDocument = {
15
15
  is_active: boolean;
@@ -245,4 +245,118 @@ type ClientContentPillarDocument = {
245
245
  is_active: boolean;
246
246
  } & BaseDocument;
247
247
 
248
- export type { AuthorizedUserDocument as A, ClientContentPillarDocument as C, GCFlyTourSnapDocument as G, MediaContentTypeDocument as M, PermissionDocument as P, RoleType as R, UserAccountDocument as U, ClientMediaPlatformContentTypeDocument as a, ClientMediaPlatformDocument as b, ClientProjectDocument as c, ClientReportDocument as d, ClientStyleguideDocument as e, ClientUserDocument as f, ClientUserDocumentStatus as g, ClientDocument as h, ContentPillarDocument as i, GCFlyTourDocument as j, MediaPlatformDocument as k, ProductHighlightDocument as l, RoleDocument as m, UserDocument as n, UserAuthorizationLoginResponse as o, UserAuthorizationSuccessResponse as p, UtmTrackingLinkDocument as q };
248
+ /**
249
+ * Attribute-based access control (ABAC) permissions
250
+ *
251
+ * @reference https://github.com/WebDevSimplified/permission-system/blob/main/auth-abac.ts
252
+ */
253
+
254
+ type LCRUDActions = "list" | "create" | "read" | "update" | "delete";
255
+ type PermissionCheck<Key extends keyof Permissions> = boolean | ((user: AuthorizedUserDocument, permissions: ClientUserDocumentStatus, data?: Permissions[Key]["dataType"]) => boolean);
256
+ type RolesWithPermissions = {
257
+ [R in RoleType]: Partial<{
258
+ [Key in keyof Permissions]: Partial<{
259
+ [Action in Permissions[Key]["action"]]: PermissionCheck<Key>;
260
+ }>;
261
+ }>;
262
+ };
263
+ type Permissions = {
264
+ "user-account": {
265
+ dataType: UserAccountDocument;
266
+ action: LCRUDActions;
267
+ };
268
+ comment: {
269
+ dataType: CommentDocument;
270
+ action: "list" | "create" | "update" | "delete" | "report";
271
+ };
272
+ client: {
273
+ dataType: ClientDocument;
274
+ action: (typeof CLIENT_ENTITY_PERMISSIONS)["client"][number] | LCRUDActions;
275
+ };
276
+ "client-user": {
277
+ dataType: ClientUserDocument;
278
+ action: LCRUDActions | "verify";
279
+ };
280
+ "client-content-pillar": {
281
+ dataType: ClientContentPillarDocument;
282
+ action: (typeof CLIENT_ENTITY_PERMISSIONS)["client-content-pillar"][number];
283
+ };
284
+ "client-media-platform": {
285
+ dataType: ClientMediaPlatformDocument;
286
+ action: (typeof CLIENT_ENTITY_PERMISSIONS)["client-media-platform"][number];
287
+ };
288
+ "client-media-platform-content-type": {
289
+ dataType: ClientMediaPlatformContentTypeDocument;
290
+ action: (typeof CLIENT_ENTITY_PERMISSIONS)["client-media-platform-content-type"][number];
291
+ };
292
+ "client-project": {
293
+ dataType: ClientProjectDocument;
294
+ action: (typeof CLIENT_ENTITY_PERMISSIONS)["client-project"][number];
295
+ };
296
+ "client-report": {
297
+ dataType: ClientReportDocument;
298
+ action: (typeof CLIENT_ENTITY_PERMISSIONS)["client-report"][number];
299
+ };
300
+ "client-styleguide": {
301
+ dataType: ClientStyleguideDocument;
302
+ action: (typeof CLIENT_ENTITY_PERMISSIONS)["client-styleguide"][number];
303
+ };
304
+ "content-pillar": {
305
+ dataType: ContentPillarDocument;
306
+ action: LCRUDActions;
307
+ };
308
+ "media-platform": {
309
+ dataType: MediaPlatformDocument;
310
+ action: LCRUDActions;
311
+ };
312
+ "media-content-type": {
313
+ dataType: MediaContentTypeDocument;
314
+ action: LCRUDActions;
315
+ };
316
+ "utm-tracking-link": {
317
+ dataType: UtmTrackingLinkDocument;
318
+ action: (typeof CLIENT_ENTITY_PERMISSIONS)["utm-tracking-link"][number];
319
+ };
320
+ gcflytour: {
321
+ dataType: GCFlyTourDocument;
322
+ action: (typeof CLIENT_ENTITY_PERMISSIONS)["gcflytour"][number];
323
+ };
324
+ "gcflytour-snap": {
325
+ dataType: GCFlyTourSnapDocument;
326
+ action: (typeof CLIENT_ENTITY_PERMISSIONS)["gcflytour-snap"][number];
327
+ };
328
+ };
329
+ /**
330
+ * Example usage of ClientEntityScope type
331
+ */
332
+ type ClientEntityKey = keyof typeof CLIENT_ENTITY_PERMISSIONS;
333
+ type ClientEntityActions<K extends ClientEntityKey = ClientEntityKey> = (typeof CLIENT_ENTITY_PERMISSIONS)[K][number];
334
+ type EntityActionJoin<K extends string, V extends string> = `${K}:${V}`;
335
+ type ClientEntityScope = {
336
+ [K in ClientEntityKey]: EntityActionJoin<K, (typeof CLIENT_ENTITY_PERMISSIONS)[K][number]>;
337
+ }[ClientEntityKey];
338
+
339
+ /**
340
+ * Example usage of ClientEntityScope type
341
+ * @reference https://youtube.com/shorts/zOseJFD447U?si=xX8DYEHdl9YtN7S4
342
+ *
343
+ * > const validScope: ClientEntityScope = "utm-tracking-link:list"; // ✅
344
+ * > const invalidScope: ClientEntityScope = "blog-post:import"; // ❌ Type error!
345
+ */
346
+
347
+ declare const CLIENT_ENTITY_PERMISSIONS: {
348
+ readonly client: readonly ["admin", "owner", "manager", "billing", "access"];
349
+ readonly "client-project": readonly ["list", "create", "read", "update", "delete", "assign"];
350
+ readonly "client-media-platform": readonly ["list", "create", "read", "update", "delete"];
351
+ readonly "client-media-platform-content-type": readonly ["list", "create", "read", "update", "delete"];
352
+ readonly "client-content-pillar": readonly ["list", "create", "read", "update", "delete"];
353
+ readonly "client-report": readonly ["list", "create", "read", "update", "delete"];
354
+ readonly "client-styleguide": readonly ["list", "create", "read", "update", "delete"];
355
+ readonly "utm-tracking-link": readonly ["list", "create", "read", "update", "delete"];
356
+ readonly gcflytour: readonly ["list", "create", "read", "update", "delete"];
357
+ readonly "gcflytour-snap": readonly ["list", "create", "read", "update", "delete"];
358
+ };
359
+ declare const CLIENT_ENTITY_KEYS: ClientEntityKey[];
360
+ declare const CLIENT_ENTITY_SCOPES: ClientEntityScope[];
361
+
362
+ export { type AuthorizedUserDocument as A, CLIENT_ENTITY_PERMISSIONS as C, type GCFlyTourSnapDocument as G, type LCRUDActions as L, type MediaContentTypeDocument as M, type PermissionDocument as P, type RoleType as R, type UserAccountDocument as U, CLIENT_ENTITY_KEYS as a, CLIENT_ENTITY_SCOPES as b, type ClientContentPillarDocument as c, type ClientMediaPlatformContentTypeDocument as d, type ClientMediaPlatformDocument as e, type ClientProjectDocument as f, type ClientReportDocument as g, type ClientStyleguideDocument as h, type ClientUserDocument as i, type ClientUserDocumentStatus as j, type ClientDocument as k, type ContentPillarDocument as l, type GCFlyTourDocument as m, type MediaPlatformDocument as n, type ProductHighlightDocument as o, type RoleDocument as p, type UserDocument as q, type UserAuthorizationLoginResponse as r, type UserAuthorizationSuccessResponse as s, type UtmTrackingLinkDocument as t, type RolesWithPermissions as u, type Permissions as v, type ClientEntityKey as w, type ClientEntityActions as x, type ClientEntityScope as y };
@@ -1,15 +1,15 @@
1
1
  import { BaseDocument } from './types/core/document.js';
2
2
  import { BlockBrandLogos } from './types/components/blocks/brand-logos.js';
3
- import { UtmClassificationKey } from './types/components/utm/utm-option.js';
4
3
  import { RichTextBlock } from './types/components/shared/rich-text-block.js';
5
4
  import { ClientProjectStatus, ClientProjectPhase } from './constants/client-project.constants.js';
6
5
  import { MediaUploadDocument } from './types/core/media.js';
7
6
  import { ComponentBrandStyleguideColor } from './types/components/brand/styleguide-color.js';
8
7
  import { ComponentBrandStyleguideFont } from './types/components/brand/styleguide-font.js';
9
- import { ClientEntityScope } from './constants/permission.constants.js';
10
8
  import { BlockFullscreenContent } from './types/components/blocks/fullscreen-content.js';
11
- import { ProductDocument } from './types/documents/product.document.js';
12
9
  import { TagDocument } from './types/documents/tag.document.js';
10
+ import { ProductDocument } from './types/documents/product.document.js';
11
+ import { UtmClassificationKey } from './types/components/utm/utm-option.js';
12
+ import { CommentDocument } from './types/documents/comment.document.js';
13
13
 
14
14
  type ClientMediaPlatformContentTypeDocument = {
15
15
  is_active: boolean;
@@ -245,4 +245,118 @@ type ClientContentPillarDocument = {
245
245
  is_active: boolean;
246
246
  } & BaseDocument;
247
247
 
248
- export type { AuthorizedUserDocument as A, ClientContentPillarDocument as C, GCFlyTourSnapDocument as G, MediaContentTypeDocument as M, PermissionDocument as P, RoleType as R, UserAccountDocument as U, ClientMediaPlatformContentTypeDocument as a, ClientMediaPlatformDocument as b, ClientProjectDocument as c, ClientReportDocument as d, ClientStyleguideDocument as e, ClientUserDocument as f, ClientUserDocumentStatus as g, ClientDocument as h, ContentPillarDocument as i, GCFlyTourDocument as j, MediaPlatformDocument as k, ProductHighlightDocument as l, RoleDocument as m, UserDocument as n, UserAuthorizationLoginResponse as o, UserAuthorizationSuccessResponse as p, UtmTrackingLinkDocument as q };
248
+ /**
249
+ * Attribute-based access control (ABAC) permissions
250
+ *
251
+ * @reference https://github.com/WebDevSimplified/permission-system/blob/main/auth-abac.ts
252
+ */
253
+
254
+ type LCRUDActions = "list" | "create" | "read" | "update" | "delete";
255
+ type PermissionCheck<Key extends keyof Permissions> = boolean | ((user: AuthorizedUserDocument, permissions: ClientUserDocumentStatus, data?: Permissions[Key]["dataType"]) => boolean);
256
+ type RolesWithPermissions = {
257
+ [R in RoleType]: Partial<{
258
+ [Key in keyof Permissions]: Partial<{
259
+ [Action in Permissions[Key]["action"]]: PermissionCheck<Key>;
260
+ }>;
261
+ }>;
262
+ };
263
+ type Permissions = {
264
+ "user-account": {
265
+ dataType: UserAccountDocument;
266
+ action: LCRUDActions;
267
+ };
268
+ comment: {
269
+ dataType: CommentDocument;
270
+ action: "list" | "create" | "update" | "delete" | "report";
271
+ };
272
+ client: {
273
+ dataType: ClientDocument;
274
+ action: (typeof CLIENT_ENTITY_PERMISSIONS)["client"][number] | LCRUDActions;
275
+ };
276
+ "client-user": {
277
+ dataType: ClientUserDocument;
278
+ action: LCRUDActions | "verify";
279
+ };
280
+ "client-content-pillar": {
281
+ dataType: ClientContentPillarDocument;
282
+ action: (typeof CLIENT_ENTITY_PERMISSIONS)["client-content-pillar"][number];
283
+ };
284
+ "client-media-platform": {
285
+ dataType: ClientMediaPlatformDocument;
286
+ action: (typeof CLIENT_ENTITY_PERMISSIONS)["client-media-platform"][number];
287
+ };
288
+ "client-media-platform-content-type": {
289
+ dataType: ClientMediaPlatformContentTypeDocument;
290
+ action: (typeof CLIENT_ENTITY_PERMISSIONS)["client-media-platform-content-type"][number];
291
+ };
292
+ "client-project": {
293
+ dataType: ClientProjectDocument;
294
+ action: (typeof CLIENT_ENTITY_PERMISSIONS)["client-project"][number];
295
+ };
296
+ "client-report": {
297
+ dataType: ClientReportDocument;
298
+ action: (typeof CLIENT_ENTITY_PERMISSIONS)["client-report"][number];
299
+ };
300
+ "client-styleguide": {
301
+ dataType: ClientStyleguideDocument;
302
+ action: (typeof CLIENT_ENTITY_PERMISSIONS)["client-styleguide"][number];
303
+ };
304
+ "content-pillar": {
305
+ dataType: ContentPillarDocument;
306
+ action: LCRUDActions;
307
+ };
308
+ "media-platform": {
309
+ dataType: MediaPlatformDocument;
310
+ action: LCRUDActions;
311
+ };
312
+ "media-content-type": {
313
+ dataType: MediaContentTypeDocument;
314
+ action: LCRUDActions;
315
+ };
316
+ "utm-tracking-link": {
317
+ dataType: UtmTrackingLinkDocument;
318
+ action: (typeof CLIENT_ENTITY_PERMISSIONS)["utm-tracking-link"][number];
319
+ };
320
+ gcflytour: {
321
+ dataType: GCFlyTourDocument;
322
+ action: (typeof CLIENT_ENTITY_PERMISSIONS)["gcflytour"][number];
323
+ };
324
+ "gcflytour-snap": {
325
+ dataType: GCFlyTourSnapDocument;
326
+ action: (typeof CLIENT_ENTITY_PERMISSIONS)["gcflytour-snap"][number];
327
+ };
328
+ };
329
+ /**
330
+ * Example usage of ClientEntityScope type
331
+ */
332
+ type ClientEntityKey = keyof typeof CLIENT_ENTITY_PERMISSIONS;
333
+ type ClientEntityActions<K extends ClientEntityKey = ClientEntityKey> = (typeof CLIENT_ENTITY_PERMISSIONS)[K][number];
334
+ type EntityActionJoin<K extends string, V extends string> = `${K}:${V}`;
335
+ type ClientEntityScope = {
336
+ [K in ClientEntityKey]: EntityActionJoin<K, (typeof CLIENT_ENTITY_PERMISSIONS)[K][number]>;
337
+ }[ClientEntityKey];
338
+
339
+ /**
340
+ * Example usage of ClientEntityScope type
341
+ * @reference https://youtube.com/shorts/zOseJFD447U?si=xX8DYEHdl9YtN7S4
342
+ *
343
+ * > const validScope: ClientEntityScope = "utm-tracking-link:list"; // ✅
344
+ * > const invalidScope: ClientEntityScope = "blog-post:import"; // ❌ Type error!
345
+ */
346
+
347
+ declare const CLIENT_ENTITY_PERMISSIONS: {
348
+ readonly client: readonly ["admin", "owner", "manager", "billing", "access"];
349
+ readonly "client-project": readonly ["list", "create", "read", "update", "delete", "assign"];
350
+ readonly "client-media-platform": readonly ["list", "create", "read", "update", "delete"];
351
+ readonly "client-media-platform-content-type": readonly ["list", "create", "read", "update", "delete"];
352
+ readonly "client-content-pillar": readonly ["list", "create", "read", "update", "delete"];
353
+ readonly "client-report": readonly ["list", "create", "read", "update", "delete"];
354
+ readonly "client-styleguide": readonly ["list", "create", "read", "update", "delete"];
355
+ readonly "utm-tracking-link": readonly ["list", "create", "read", "update", "delete"];
356
+ readonly gcflytour: readonly ["list", "create", "read", "update", "delete"];
357
+ readonly "gcflytour-snap": readonly ["list", "create", "read", "update", "delete"];
358
+ };
359
+ declare const CLIENT_ENTITY_KEYS: ClientEntityKey[];
360
+ declare const CLIENT_ENTITY_SCOPES: ClientEntityScope[];
361
+
362
+ export { type AuthorizedUserDocument as A, CLIENT_ENTITY_PERMISSIONS as C, type GCFlyTourSnapDocument as G, type LCRUDActions as L, type MediaContentTypeDocument as M, type PermissionDocument as P, type RoleType as R, type UserAccountDocument as U, CLIENT_ENTITY_KEYS as a, CLIENT_ENTITY_SCOPES as b, type ClientContentPillarDocument as c, type ClientMediaPlatformContentTypeDocument as d, type ClientMediaPlatformDocument as e, type ClientProjectDocument as f, type ClientReportDocument as g, type ClientStyleguideDocument as h, type ClientUserDocument as i, type ClientUserDocumentStatus as j, type ClientDocument as k, type ContentPillarDocument as l, type GCFlyTourDocument as m, type MediaPlatformDocument as n, type ProductHighlightDocument as o, type RoleDocument as p, type UserDocument as q, type UserAuthorizationLoginResponse as r, type UserAuthorizationSuccessResponse as s, type UtmTrackingLinkDocument as t, type RolesWithPermissions as u, type Permissions as v, type ClientEntityKey as w, type ClientEntityActions as x, type ClientEntityScope as y };
@@ -1,5 +1,21 @@
1
- import { ClientEntityScope } from '../constants/permission.constants.cjs';
1
+ import { y as ClientEntityScope } from '../permission.constants-Cz0fuVJx.cjs';
2
2
  import * as v from 'valibot';
3
+ import '../types/core/document.cjs';
4
+ import '../types/components/blocks/brand-logos.cjs';
5
+ import '../types/core/media.cjs';
6
+ import '../types/components/shared/rich-text-block.cjs';
7
+ import '../constants/client-project.constants.cjs';
8
+ import '../types/components/brand/styleguide-color.cjs';
9
+ import '../types/components/brand/styleguide-font.cjs';
10
+ import '../constants/font.constants.cjs';
11
+ import '../types/components/blocks/fullscreen-content.cjs';
12
+ import '../types/components/blocks/video.cjs';
13
+ import '../types/documents/tag.document.cjs';
14
+ import '../types/documents/product.document.cjs';
15
+ import '../types/components/shared/seo.cjs';
16
+ import '../types/components/utm/utm-option.cjs';
17
+ import '../types/documents/comment.document.cjs';
18
+ import '../constants/comment.constants.cjs';
3
19
 
4
20
  declare const QuerySortClientUsers: v.OptionalSchema<v.ObjectSchema<{
5
21
  readonly key: v.PicklistSchema<["id", "createdAt", "updatedAt"], undefined>;
@@ -1,5 +1,21 @@
1
- import { ClientEntityScope } from '../constants/permission.constants.js';
1
+ import { y as ClientEntityScope } from '../permission.constants-DVf4IlLp.js';
2
2
  import * as v from 'valibot';
3
+ import '../types/core/document.js';
4
+ import '../types/components/blocks/brand-logos.js';
5
+ import '../types/core/media.js';
6
+ import '../types/components/shared/rich-text-block.js';
7
+ import '../constants/client-project.constants.js';
8
+ import '../types/components/brand/styleguide-color.js';
9
+ import '../types/components/brand/styleguide-font.js';
10
+ import '../constants/font.constants.js';
11
+ import '../types/components/blocks/fullscreen-content.js';
12
+ import '../types/components/blocks/video.js';
13
+ import '../types/documents/tag.document.js';
14
+ import '../types/documents/product.document.js';
15
+ import '../types/components/shared/seo.js';
16
+ import '../types/components/utm/utm-option.js';
17
+ import '../types/documents/comment.document.js';
18
+ import '../constants/comment.constants.js';
3
19
 
4
20
  declare const QuerySortClientUsers: v.OptionalSchema<v.ObjectSchema<{
5
21
  readonly key: v.PicklistSchema<["id", "createdAt", "updatedAt"], undefined>;
@@ -31,4 +31,20 @@ export { QuerySortUsers, QueryStrapiUsers, QueryStrapiUsersByIdentifier, SCreate
31
31
  export { SUtmLinkBuilderPartCampaignDateOptions, SUtmLinkBuilderPartCampaignDateValue, SUtmLinkBuilderTableForm, SUtmLinkBuilderTableFormInput } from './utm-link-builder.schemas.cjs';
32
32
  export { QuerySortUtmTrackingLinks, QueryStrapiSearchUtmTrackingLinks, SCreateUtmTrackingLinkDocument, SCreateUtmTrackingLinkDocumentRequest, SCreateUtmTrackingLinkParts, SFormCreateMultipleUtmTrackingLinkDocuments, SReadUtmTrackingLinkDocumentByUrl, SUpdateUtmTrackingLinkDocument, SUpdateUtmTrackingLinkDocumentRequest } from './utm-tracking-link.schemas.cjs';
33
33
  import 'valibot';
34
- import '../constants/permission.constants.cjs';
34
+ import '../permission.constants-Cz0fuVJx.cjs';
35
+ import '../types/core/document.cjs';
36
+ import '../types/components/blocks/brand-logos.cjs';
37
+ import '../types/core/media.cjs';
38
+ import '../types/components/shared/rich-text-block.cjs';
39
+ import '../constants/client-project.constants.cjs';
40
+ import '../types/components/brand/styleguide-color.cjs';
41
+ import '../types/components/brand/styleguide-font.cjs';
42
+ import '../constants/font.constants.cjs';
43
+ import '../types/components/blocks/fullscreen-content.cjs';
44
+ import '../types/components/blocks/video.cjs';
45
+ import '../types/documents/tag.document.cjs';
46
+ import '../types/documents/product.document.cjs';
47
+ import '../types/components/shared/seo.cjs';
48
+ import '../types/components/utm/utm-option.cjs';
49
+ import '../types/documents/comment.document.cjs';
50
+ import '../constants/comment.constants.cjs';