@getcommunity/gc-validators 0.0.232 → 0.0.234

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/types.d.cts CHANGED
@@ -1,2 +1,2 @@
1
- import { $a as SlideshowComponentSlideSettings, $i as BlogPageDocument, $o as RichTextBlock, Aa as ClientMediaPlatformDocument, Ai as TeamworkUserAccount, Ao as ComponentBlockVideo, As as StrapiTextColorOptions, Ba as TrendDocument, Bi as TeamworkCurrency, Bo as ComponentBlockBrandLogos, Ca as UserAccountDocument, Ci as TeamworkTaskUserPermissions, Co as ComponentBlockPullQuote, Cs as StrapiGapSizes, Da as ClientStyleguideDocument, Di as TeamworkProjectResponseMeta, Do as BlockFullscreenContentType, Ds as StrapiLinkRel, Ea as PermissionDocument, Ei as TeamworkProjectResponse, Eo as BlockFullscreenContent, Es as StrapiLinkReferrerPolicy, Fa as BlogPostBlock, Fi as TeamworkProjectUpdate, Fo as BlockContact, Ga as UtmOption, Gi as TeamworkResponseMeta, Go as ComponentSeoMeta, Ha as CategoryDocument, Hi as TeamworkActivePages, Ho as ComponentBlockAnnouncementBar, Ia as BlogPostDocument, Ii as TeamworkProjectTaskStat, Io as ComponentBlockContact, Ja as Slideshow, Ji as TeamPageDocument, Jo as OpenGraph, Ka as UtmSourceKey, Ki as TeamworkResponseMetaPagination, Ko as MetaSocial, La as TeamMemberDocument, Li as TeamworkProjectCustomField, Lo as BlockButtonGroup, Ma as MediaMediumDocument, Mi as TeamworkTagResponse, Mo as ComponentBlockFaq, Ms as BaseDocument, Na as MediaContentTypeDocument, Ni as TeamworkTagResponseMeta, No as BlockCtaLink, Oa as ClientReportDocument, Oi as TeamworkProjectsResponse, Oo as ComponentBlockFullscreenContent, Os as StrapiLinkTarget, Pa as MediaCreativeFormatDocument, Pi as TeamworkTagsResponse, Po as ComponentBlockCtaLink, Qa as SlideshowComponentProps, Qi as CareersPageDocument, Qo as ComponentSharedRichTextBlock, Ra as TeamMemberGroup, Ri as TeamworkProjectCategory, Ro as ComponentBlockButtonGroup, Sa as UtmTrackingLinkDocument, Si as TeamworkTaskResponseMeta, So as BlockPullQuote, Ss as StrapiDirection, Ta as RoleType, Ti as TeamworkProject, To as ComponentBlockGraphicImage, Ts as StrapiIconPosition, Ua as ComponentUtmOption, Ui as TeamworkLockdown, Uo as ComponentMetaSocial, Va as TagDocument, Vi as TeamworkCompany, Vo as BlockAnnouncementBar, Wa as UtmClassificationKey, Wi as TeamworkRelatedMeta, Wo as ComponentOpenGraph, Xa as SlideContent, Xi as LandingPageDocument, Xo as ComponentSharedQuestionAnswer, Ya as ComponentSlideContent, Yi as PolicyPageDocument, Yo as SeoMeta, Za as SlideType, Zi as FAQPageDocument, Zo as SharedQuestionAnswer, _a as ClientUserDocumentStatus, _i as TeamworkTasklistResponseMeta, _o as ComponentBrandStyleguideColor, _s as MediaFormat, aa as LeadDocument, ao as SliderOrigin, as as SharedLink, ba as UserAuthorizationSuccessResponse, bi as TeamworkTaskCard, bo as BlockSectionTitle, bs as FormSelectInputOption, ca as ClientContentPillarDocument, co as ComponentFormSelect, cs as StrapiAttributeErrorResponse, da as ProductHighlightDocument, do as ComponentFormDownload, ds as StrapiErrorResult, ea as UrlRedirectDocument, eo as ComponentSlideshowSettings, es as RichTextBlockChildren, fa as ProductDocument, fo as FormDownload, fs as StrapiListResponse, ga as ClientUserDocument, gi as TeamworkTasklistResponse, go as BrandStyleguideColor, gs as StrapiSingleResponse, ha as GCFlyTourSnapDocument, hi as TeamworkTasklist, ho as ComponentBrandStyleguideFont, hs as StrapiResponseMetaWithPagination, ia as NewsletterSignupDocument, io as SliderBreakpoint, is as ComponentSharedLink, ja as MediaPlatformDocument, ji as TeamworkTag, jo as BlockFaq, js as StrapiThemeOptions, ka as ClientProjectDocument, ki as TeamworkResponseMetaProjectStats, ko as BlockVideoEmbed, ks as StrapiLinkType, la as ContentPillarDocument, lo as FormSelect, ls as StrapiErrorDetail, ma as GCFlyTourDocument, mo as BrandStyleguideFont, ms as StrapiResponseMeta, na as UrlRedirectStatusCode, no as SlideshowSettings, ns as ComponentSharedButton, oa as CommentDocument, oo as SliderSettings, os as StrapiAttributeErrorDetail, pa as MondayWorkspaceDocument, po as FormDownloadKeys, ps as StrapiPagination, qa as ComponentSlideshow, qi as UtmMetaPageDocument, qo as MetaSocialNetwork, ra as ResumeDocument, ro as ComponentSliderSettings, rs as SharedButton, sa as CommentReportDocument, so as SliderSpacing, ss as StrapiAttributeErrorKey, ta as UrlRedirectQueryParams, to as SlideshowMode, ts as SharedRichTextBlock, ua as ClientDocument, uo as FormUID, us as StrapiErrorResponse, va as AuthorizedUserDocument, vi as TeamworkTasklistsResponse, vo as BlockTextDetails, vs as MediaFormats, wa as RoleDocument, wi as TeamworkTasksResponse, wo as BlockGraphicImage, ws as StrapiIconName, xa as UserDocument, xi as TeamworkTaskResponse, xo as ComponentBlockSectionTitle, xs as StrapiBgColorOptions, ya as UserAuthorizationLoginResponse, yi as TeamworkTask, yo as ComponentBlockTextDetails, ys as MediaUploadDocument, za as TeamMemberTier, zi as TeamworkCustomField, zo as BlockBrandLogos } from "./index-CztHvKgd.cjs";
1
+ import { $a as SlideshowComponentSlideSettings, $i as BlogPageDocument, $o as RichTextBlock, Aa as ClientMediaPlatformDocument, Ai as TeamworkUserAccount, Ao as ComponentBlockVideo, As as StrapiTextColorOptions, Ba as TrendDocument, Bi as TeamworkCurrency, Bo as ComponentBlockBrandLogos, Ca as UserAccountDocument, Ci as TeamworkTaskUserPermissions, Co as ComponentBlockPullQuote, Cs as StrapiGapSizes, Da as ClientStyleguideDocument, Di as TeamworkProjectResponseMeta, Do as BlockFullscreenContentType, Ds as StrapiLinkRel, Ea as PermissionDocument, Ei as TeamworkProjectResponse, Eo as BlockFullscreenContent, Es as StrapiLinkReferrerPolicy, Fa as BlogPostBlock, Fi as TeamworkProjectUpdate, Fo as BlockContact, Ga as UtmOption, Gi as TeamworkResponseMeta, Go as ComponentSeoMeta, Ha as CategoryDocument, Hi as TeamworkActivePages, Ho as ComponentBlockAnnouncementBar, Ia as BlogPostDocument, Ii as TeamworkProjectTaskStat, Io as ComponentBlockContact, Ja as Slideshow, Ji as TeamPageDocument, Jo as OpenGraph, Ka as UtmSourceKey, Ki as TeamworkResponseMetaPagination, Ko as MetaSocial, La as TeamMemberDocument, Li as TeamworkProjectCustomField, Lo as BlockButtonGroup, Ma as MediaMediumDocument, Mi as TeamworkTagResponse, Mo as ComponentBlockFaq, Ms as BaseDocument, Na as MediaContentTypeDocument, Ni as TeamworkTagResponseMeta, No as BlockCtaLink, Oa as ClientReportDocument, Oi as TeamworkProjectsResponse, Oo as ComponentBlockFullscreenContent, Os as StrapiLinkTarget, Pa as MediaCreativeFormatDocument, Pi as TeamworkTagsResponse, Po as ComponentBlockCtaLink, Qa as SlideshowComponentProps, Qi as CareersPageDocument, Qo as ComponentSharedRichTextBlock, Ra as TeamMemberGroup, Ri as TeamworkProjectCategory, Ro as ComponentBlockButtonGroup, Sa as UtmTrackingLinkDocument, Si as TeamworkTaskResponseMeta, So as BlockPullQuote, Ss as StrapiDirection, Ta as RoleType, Ti as TeamworkProject, To as ComponentBlockGraphicImage, Ts as StrapiIconPosition, Ua as ComponentUtmOption, Ui as TeamworkLockdown, Uo as ComponentMetaSocial, Va as TagDocument, Vi as TeamworkCompany, Vo as BlockAnnouncementBar, Wa as UtmClassificationKey, Wi as TeamworkRelatedMeta, Wo as ComponentOpenGraph, Xa as SlideContent, Xi as LandingPageDocument, Xo as ComponentSharedQuestionAnswer, Ya as ComponentSlideContent, Yi as PolicyPageDocument, Yo as SeoMeta, Za as SlideType, Zi as FAQPageDocument, Zo as SharedQuestionAnswer, _a as ClientUserDocumentStatus, _i as TeamworkTasklistResponseMeta, _o as ComponentBrandStyleguideColor, _s as MediaFormat, aa as LeadDocument, ao as SliderOrigin, as as SharedLink, ba as UserAuthorizationSuccessResponse, bi as TeamworkTaskCard, bo as BlockSectionTitle, bs as FormSelectInputOption, ca as ClientContentPillarDocument, co as ComponentFormSelect, cs as StrapiAttributeErrorResponse, da as ProductHighlightDocument, do as ComponentFormDownload, ds as StrapiErrorResult, ea as UrlRedirectDocument, eo as ComponentSlideshowSettings, es as RichTextBlockChildren, fa as ProductDocument, fo as FormDownload, fs as StrapiListResponse, ga as ClientUserDocument, gi as TeamworkTasklistResponse, go as BrandStyleguideColor, gs as StrapiSingleResponse, ha as GCFlyTourSnapDocument, hi as TeamworkTasklist, ho as ComponentBrandStyleguideFont, hs as StrapiResponseMetaWithPagination, ia as NewsletterSignupDocument, io as SliderBreakpoint, is as ComponentSharedLink, ja as MediaPlatformDocument, ji as TeamworkTag, jo as BlockFaq, js as StrapiThemeOptions, ka as ClientProjectDocument, ki as TeamworkResponseMetaProjectStats, ko as BlockVideoEmbed, ks as StrapiLinkType, la as ContentPillarDocument, lo as FormSelect, ls as StrapiErrorDetail, ma as GCFlyTourDocument, mo as BrandStyleguideFont, ms as StrapiResponseMeta, na as UrlRedirectStatusCode, no as SlideshowSettings, ns as ComponentSharedButton, oa as CommentDocument, oo as SliderSettings, os as StrapiAttributeErrorDetail, pa as MondayWorkspaceDocument, po as FormDownloadKeys, ps as StrapiPagination, qa as ComponentSlideshow, qi as UtmMetaPageDocument, qo as MetaSocialNetwork, ra as ResumeDocument, ro as ComponentSliderSettings, rs as SharedButton, sa as CommentReportDocument, so as SliderSpacing, ss as StrapiAttributeErrorKey, ta as UrlRedirectQueryParams, to as SlideshowMode, ts as SharedRichTextBlock, ua as ClientDocument, uo as FormUID, us as StrapiErrorResponse, va as AuthorizedUserDocument, vi as TeamworkTasklistsResponse, vo as BlockTextDetails, vs as MediaFormats, wa as RoleDocument, wi as TeamworkTasksResponse, wo as BlockGraphicImage, ws as StrapiIconName, xa as UserDocument, xi as TeamworkTaskResponse, xo as ComponentBlockSectionTitle, xs as StrapiBgColorOptions, ya as UserAuthorizationLoginResponse, yi as TeamworkTask, yo as ComponentBlockTextDetails, ys as MediaUploadDocument, za as TeamMemberTier, zi as TeamworkCustomField, zo as BlockBrandLogos } from "./index-CB2QzJmg.cjs";
2
2
  export { AuthorizedUserDocument, BaseDocument, BlockAnnouncementBar, BlockBrandLogos, BlockButtonGroup, BlockContact, BlockCtaLink, BlockFaq, BlockFullscreenContent, BlockFullscreenContentType, BlockGraphicImage, BlockPullQuote, BlockSectionTitle, BlockTextDetails, BlockVideoEmbed, BlogPageDocument, BlogPostBlock, BlogPostDocument, BrandStyleguideColor, BrandStyleguideFont, CareersPageDocument, CategoryDocument, ClientContentPillarDocument, ClientDocument, ClientMediaPlatformDocument, ClientProjectDocument, ClientReportDocument, ClientStyleguideDocument, ClientUserDocument, ClientUserDocumentStatus, CommentDocument, CommentReportDocument, ComponentBlockAnnouncementBar, ComponentBlockBrandLogos, ComponentBlockButtonGroup, ComponentBlockContact, ComponentBlockCtaLink, ComponentBlockFaq, ComponentBlockFullscreenContent, ComponentBlockGraphicImage, ComponentBlockPullQuote, ComponentBlockSectionTitle, ComponentBlockTextDetails, ComponentBlockVideo, ComponentBrandStyleguideColor, ComponentBrandStyleguideFont, ComponentFormDownload, ComponentFormSelect, ComponentMetaSocial, ComponentOpenGraph, ComponentSeoMeta, ComponentSharedButton, ComponentSharedLink, ComponentSharedQuestionAnswer, ComponentSharedRichTextBlock, ComponentSlideContent, ComponentSliderSettings, ComponentSlideshow, ComponentSlideshowSettings, ComponentUtmOption, ContentPillarDocument, FAQPageDocument, FormDownload, FormDownloadKeys, FormSelect, FormSelectInputOption, FormUID, GCFlyTourDocument, GCFlyTourSnapDocument, LandingPageDocument, LeadDocument, MediaContentTypeDocument, MediaCreativeFormatDocument, MediaFormat, MediaFormats, MediaMediumDocument, MediaPlatformDocument, MediaUploadDocument, MetaSocial, MetaSocialNetwork, MondayWorkspaceDocument, NewsletterSignupDocument, OpenGraph, PermissionDocument, PolicyPageDocument, ProductDocument, ProductHighlightDocument, ResumeDocument, RichTextBlock, RichTextBlockChildren, RoleDocument, RoleType, SeoMeta, SharedButton, SharedLink, SharedQuestionAnswer, SharedRichTextBlock, SlideContent, SlideType, SliderBreakpoint, SliderOrigin, SliderSettings, SliderSpacing, Slideshow, SlideshowComponentProps, SlideshowComponentSlideSettings, SlideshowMode, SlideshowSettings, StrapiAttributeErrorDetail, StrapiAttributeErrorKey, StrapiAttributeErrorResponse, StrapiBgColorOptions, StrapiDirection, StrapiErrorDetail, StrapiErrorResponse, StrapiErrorResult, StrapiGapSizes, StrapiIconName, StrapiIconPosition, StrapiLinkReferrerPolicy, StrapiLinkRel, StrapiLinkTarget, StrapiLinkType, StrapiListResponse, StrapiPagination, StrapiResponseMeta, StrapiResponseMetaWithPagination, StrapiSingleResponse, StrapiTextColorOptions, StrapiThemeOptions, TagDocument, TeamMemberDocument, TeamMemberGroup, TeamMemberTier, TeamPageDocument, TeamworkActivePages, TeamworkCompany, TeamworkCurrency, TeamworkCustomField, TeamworkLockdown, TeamworkProject, TeamworkProjectCategory, TeamworkProjectCustomField, TeamworkProjectResponse, TeamworkProjectResponseMeta, TeamworkProjectTaskStat, TeamworkProjectUpdate, TeamworkProjectsResponse, TeamworkRelatedMeta, TeamworkResponseMeta, TeamworkResponseMetaPagination, TeamworkResponseMetaProjectStats, TeamworkTag, TeamworkTagResponse, TeamworkTagResponseMeta, TeamworkTagsResponse, TeamworkTask, TeamworkTaskCard, TeamworkTaskResponse, TeamworkTaskResponseMeta, TeamworkTaskUserPermissions, TeamworkTasklist, TeamworkTasklistResponse, TeamworkTasklistResponseMeta, TeamworkTasklistsResponse, TeamworkTasksResponse, TeamworkUserAccount, TrendDocument, UrlRedirectDocument, UrlRedirectQueryParams, UrlRedirectStatusCode, UserAccountDocument, UserAuthorizationLoginResponse, UserAuthorizationSuccessResponse, UserDocument, UtmClassificationKey, UtmMetaPageDocument, UtmOption, UtmSourceKey, UtmTrackingLinkDocument };
package/dist/types.d.mts CHANGED
@@ -1,2 +1,2 @@
1
- import { $a as SlideshowComponentSlideSettings, $i as BlogPageDocument, $o as RichTextBlock, Aa as ClientMediaPlatformDocument, Ai as TeamworkUserAccount, Ao as ComponentBlockVideo, As as StrapiTextColorOptions, Ba as TrendDocument, Bi as TeamworkCurrency, Bo as ComponentBlockBrandLogos, Ca as UserAccountDocument, Ci as TeamworkTaskUserPermissions, Co as ComponentBlockPullQuote, Cs as StrapiGapSizes, Da as ClientStyleguideDocument, Di as TeamworkProjectResponseMeta, Do as BlockFullscreenContentType, Ds as StrapiLinkRel, Ea as PermissionDocument, Ei as TeamworkProjectResponse, Eo as BlockFullscreenContent, Es as StrapiLinkReferrerPolicy, Fa as BlogPostBlock, Fi as TeamworkProjectUpdate, Fo as BlockContact, Ga as UtmOption, Gi as TeamworkResponseMeta, Go as ComponentSeoMeta, Ha as CategoryDocument, Hi as TeamworkActivePages, Ho as ComponentBlockAnnouncementBar, Ia as BlogPostDocument, Ii as TeamworkProjectTaskStat, Io as ComponentBlockContact, Ja as Slideshow, Ji as TeamPageDocument, Jo as OpenGraph, Ka as UtmSourceKey, Ki as TeamworkResponseMetaPagination, Ko as MetaSocial, La as TeamMemberDocument, Li as TeamworkProjectCustomField, Lo as BlockButtonGroup, Ma as MediaMediumDocument, Mi as TeamworkTagResponse, Mo as ComponentBlockFaq, Ms as BaseDocument, Na as MediaContentTypeDocument, Ni as TeamworkTagResponseMeta, No as BlockCtaLink, Oa as ClientReportDocument, Oi as TeamworkProjectsResponse, Oo as ComponentBlockFullscreenContent, Os as StrapiLinkTarget, Pa as MediaCreativeFormatDocument, Pi as TeamworkTagsResponse, Po as ComponentBlockCtaLink, Qa as SlideshowComponentProps, Qi as CareersPageDocument, Qo as ComponentSharedRichTextBlock, Ra as TeamMemberGroup, Ri as TeamworkProjectCategory, Ro as ComponentBlockButtonGroup, Sa as UtmTrackingLinkDocument, Si as TeamworkTaskResponseMeta, So as BlockPullQuote, Ss as StrapiDirection, Ta as RoleType, Ti as TeamworkProject, To as ComponentBlockGraphicImage, Ts as StrapiIconPosition, Ua as ComponentUtmOption, Ui as TeamworkLockdown, Uo as ComponentMetaSocial, Va as TagDocument, Vi as TeamworkCompany, Vo as BlockAnnouncementBar, Wa as UtmClassificationKey, Wi as TeamworkRelatedMeta, Wo as ComponentOpenGraph, Xa as SlideContent, Xi as LandingPageDocument, Xo as ComponentSharedQuestionAnswer, Ya as ComponentSlideContent, Yi as PolicyPageDocument, Yo as SeoMeta, Za as SlideType, Zi as FAQPageDocument, Zo as SharedQuestionAnswer, _a as ClientUserDocumentStatus, _i as TeamworkTasklistResponseMeta, _o as ComponentBrandStyleguideColor, _s as MediaFormat, aa as LeadDocument, ao as SliderOrigin, as as SharedLink, ba as UserAuthorizationSuccessResponse, bi as TeamworkTaskCard, bo as BlockSectionTitle, bs as FormSelectInputOption, ca as ClientContentPillarDocument, co as ComponentFormSelect, cs as StrapiAttributeErrorResponse, da as ProductHighlightDocument, do as ComponentFormDownload, ds as StrapiErrorResult, ea as UrlRedirectDocument, eo as ComponentSlideshowSettings, es as RichTextBlockChildren, fa as ProductDocument, fo as FormDownload, fs as StrapiListResponse, ga as ClientUserDocument, gi as TeamworkTasklistResponse, go as BrandStyleguideColor, gs as StrapiSingleResponse, ha as GCFlyTourSnapDocument, hi as TeamworkTasklist, ho as ComponentBrandStyleguideFont, hs as StrapiResponseMetaWithPagination, ia as NewsletterSignupDocument, io as SliderBreakpoint, is as ComponentSharedLink, ja as MediaPlatformDocument, ji as TeamworkTag, jo as BlockFaq, js as StrapiThemeOptions, ka as ClientProjectDocument, ki as TeamworkResponseMetaProjectStats, ko as BlockVideoEmbed, ks as StrapiLinkType, la as ContentPillarDocument, lo as FormSelect, ls as StrapiErrorDetail, ma as GCFlyTourDocument, mo as BrandStyleguideFont, ms as StrapiResponseMeta, na as UrlRedirectStatusCode, no as SlideshowSettings, ns as ComponentSharedButton, oa as CommentDocument, oo as SliderSettings, os as StrapiAttributeErrorDetail, pa as MondayWorkspaceDocument, po as FormDownloadKeys, ps as StrapiPagination, qa as ComponentSlideshow, qi as UtmMetaPageDocument, qo as MetaSocialNetwork, ra as ResumeDocument, ro as ComponentSliderSettings, rs as SharedButton, sa as CommentReportDocument, so as SliderSpacing, ss as StrapiAttributeErrorKey, ta as UrlRedirectQueryParams, to as SlideshowMode, ts as SharedRichTextBlock, ua as ClientDocument, uo as FormUID, us as StrapiErrorResponse, va as AuthorizedUserDocument, vi as TeamworkTasklistsResponse, vo as BlockTextDetails, vs as MediaFormats, wa as RoleDocument, wi as TeamworkTasksResponse, wo as BlockGraphicImage, ws as StrapiIconName, xa as UserDocument, xi as TeamworkTaskResponse, xo as ComponentBlockSectionTitle, xs as StrapiBgColorOptions, ya as UserAuthorizationLoginResponse, yi as TeamworkTask, yo as ComponentBlockTextDetails, ys as MediaUploadDocument, za as TeamMemberTier, zi as TeamworkCustomField, zo as BlockBrandLogos } from "./index-DnB7WzlI.mjs";
1
+ import { $a as SlideshowComponentSlideSettings, $i as BlogPageDocument, $o as RichTextBlock, Aa as ClientMediaPlatformDocument, Ai as TeamworkUserAccount, Ao as ComponentBlockVideo, As as StrapiTextColorOptions, Ba as TrendDocument, Bi as TeamworkCurrency, Bo as ComponentBlockBrandLogos, Ca as UserAccountDocument, Ci as TeamworkTaskUserPermissions, Co as ComponentBlockPullQuote, Cs as StrapiGapSizes, Da as ClientStyleguideDocument, Di as TeamworkProjectResponseMeta, Do as BlockFullscreenContentType, Ds as StrapiLinkRel, Ea as PermissionDocument, Ei as TeamworkProjectResponse, Eo as BlockFullscreenContent, Es as StrapiLinkReferrerPolicy, Fa as BlogPostBlock, Fi as TeamworkProjectUpdate, Fo as BlockContact, Ga as UtmOption, Gi as TeamworkResponseMeta, Go as ComponentSeoMeta, Ha as CategoryDocument, Hi as TeamworkActivePages, Ho as ComponentBlockAnnouncementBar, Ia as BlogPostDocument, Ii as TeamworkProjectTaskStat, Io as ComponentBlockContact, Ja as Slideshow, Ji as TeamPageDocument, Jo as OpenGraph, Ka as UtmSourceKey, Ki as TeamworkResponseMetaPagination, Ko as MetaSocial, La as TeamMemberDocument, Li as TeamworkProjectCustomField, Lo as BlockButtonGroup, Ma as MediaMediumDocument, Mi as TeamworkTagResponse, Mo as ComponentBlockFaq, Ms as BaseDocument, Na as MediaContentTypeDocument, Ni as TeamworkTagResponseMeta, No as BlockCtaLink, Oa as ClientReportDocument, Oi as TeamworkProjectsResponse, Oo as ComponentBlockFullscreenContent, Os as StrapiLinkTarget, Pa as MediaCreativeFormatDocument, Pi as TeamworkTagsResponse, Po as ComponentBlockCtaLink, Qa as SlideshowComponentProps, Qi as CareersPageDocument, Qo as ComponentSharedRichTextBlock, Ra as TeamMemberGroup, Ri as TeamworkProjectCategory, Ro as ComponentBlockButtonGroup, Sa as UtmTrackingLinkDocument, Si as TeamworkTaskResponseMeta, So as BlockPullQuote, Ss as StrapiDirection, Ta as RoleType, Ti as TeamworkProject, To as ComponentBlockGraphicImage, Ts as StrapiIconPosition, Ua as ComponentUtmOption, Ui as TeamworkLockdown, Uo as ComponentMetaSocial, Va as TagDocument, Vi as TeamworkCompany, Vo as BlockAnnouncementBar, Wa as UtmClassificationKey, Wi as TeamworkRelatedMeta, Wo as ComponentOpenGraph, Xa as SlideContent, Xi as LandingPageDocument, Xo as ComponentSharedQuestionAnswer, Ya as ComponentSlideContent, Yi as PolicyPageDocument, Yo as SeoMeta, Za as SlideType, Zi as FAQPageDocument, Zo as SharedQuestionAnswer, _a as ClientUserDocumentStatus, _i as TeamworkTasklistResponseMeta, _o as ComponentBrandStyleguideColor, _s as MediaFormat, aa as LeadDocument, ao as SliderOrigin, as as SharedLink, ba as UserAuthorizationSuccessResponse, bi as TeamworkTaskCard, bo as BlockSectionTitle, bs as FormSelectInputOption, ca as ClientContentPillarDocument, co as ComponentFormSelect, cs as StrapiAttributeErrorResponse, da as ProductHighlightDocument, do as ComponentFormDownload, ds as StrapiErrorResult, ea as UrlRedirectDocument, eo as ComponentSlideshowSettings, es as RichTextBlockChildren, fa as ProductDocument, fo as FormDownload, fs as StrapiListResponse, ga as ClientUserDocument, gi as TeamworkTasklistResponse, go as BrandStyleguideColor, gs as StrapiSingleResponse, ha as GCFlyTourSnapDocument, hi as TeamworkTasklist, ho as ComponentBrandStyleguideFont, hs as StrapiResponseMetaWithPagination, ia as NewsletterSignupDocument, io as SliderBreakpoint, is as ComponentSharedLink, ja as MediaPlatformDocument, ji as TeamworkTag, jo as BlockFaq, js as StrapiThemeOptions, ka as ClientProjectDocument, ki as TeamworkResponseMetaProjectStats, ko as BlockVideoEmbed, ks as StrapiLinkType, la as ContentPillarDocument, lo as FormSelect, ls as StrapiErrorDetail, ma as GCFlyTourDocument, mo as BrandStyleguideFont, ms as StrapiResponseMeta, na as UrlRedirectStatusCode, no as SlideshowSettings, ns as ComponentSharedButton, oa as CommentDocument, oo as SliderSettings, os as StrapiAttributeErrorDetail, pa as MondayWorkspaceDocument, po as FormDownloadKeys, ps as StrapiPagination, qa as ComponentSlideshow, qi as UtmMetaPageDocument, qo as MetaSocialNetwork, ra as ResumeDocument, ro as ComponentSliderSettings, rs as SharedButton, sa as CommentReportDocument, so as SliderSpacing, ss as StrapiAttributeErrorKey, ta as UrlRedirectQueryParams, to as SlideshowMode, ts as SharedRichTextBlock, ua as ClientDocument, uo as FormUID, us as StrapiErrorResponse, va as AuthorizedUserDocument, vi as TeamworkTasklistsResponse, vo as BlockTextDetails, vs as MediaFormats, wa as RoleDocument, wi as TeamworkTasksResponse, wo as BlockGraphicImage, ws as StrapiIconName, xa as UserDocument, xi as TeamworkTaskResponse, xo as ComponentBlockSectionTitle, xs as StrapiBgColorOptions, ya as UserAuthorizationLoginResponse, yi as TeamworkTask, yo as ComponentBlockTextDetails, ys as MediaUploadDocument, za as TeamMemberTier, zi as TeamworkCustomField, zo as BlockBrandLogos } from "./index-C7BMdD00.mjs";
2
2
  export { AuthorizedUserDocument, BaseDocument, BlockAnnouncementBar, BlockBrandLogos, BlockButtonGroup, BlockContact, BlockCtaLink, BlockFaq, BlockFullscreenContent, BlockFullscreenContentType, BlockGraphicImage, BlockPullQuote, BlockSectionTitle, BlockTextDetails, BlockVideoEmbed, BlogPageDocument, BlogPostBlock, BlogPostDocument, BrandStyleguideColor, BrandStyleguideFont, CareersPageDocument, CategoryDocument, ClientContentPillarDocument, ClientDocument, ClientMediaPlatformDocument, ClientProjectDocument, ClientReportDocument, ClientStyleguideDocument, ClientUserDocument, ClientUserDocumentStatus, CommentDocument, CommentReportDocument, ComponentBlockAnnouncementBar, ComponentBlockBrandLogos, ComponentBlockButtonGroup, ComponentBlockContact, ComponentBlockCtaLink, ComponentBlockFaq, ComponentBlockFullscreenContent, ComponentBlockGraphicImage, ComponentBlockPullQuote, ComponentBlockSectionTitle, ComponentBlockTextDetails, ComponentBlockVideo, ComponentBrandStyleguideColor, ComponentBrandStyleguideFont, ComponentFormDownload, ComponentFormSelect, ComponentMetaSocial, ComponentOpenGraph, ComponentSeoMeta, ComponentSharedButton, ComponentSharedLink, ComponentSharedQuestionAnswer, ComponentSharedRichTextBlock, ComponentSlideContent, ComponentSliderSettings, ComponentSlideshow, ComponentSlideshowSettings, ComponentUtmOption, ContentPillarDocument, FAQPageDocument, FormDownload, FormDownloadKeys, FormSelect, FormSelectInputOption, FormUID, GCFlyTourDocument, GCFlyTourSnapDocument, LandingPageDocument, LeadDocument, MediaContentTypeDocument, MediaCreativeFormatDocument, MediaFormat, MediaFormats, MediaMediumDocument, MediaPlatformDocument, MediaUploadDocument, MetaSocial, MetaSocialNetwork, MondayWorkspaceDocument, NewsletterSignupDocument, OpenGraph, PermissionDocument, PolicyPageDocument, ProductDocument, ProductHighlightDocument, ResumeDocument, RichTextBlock, RichTextBlockChildren, RoleDocument, RoleType, SeoMeta, SharedButton, SharedLink, SharedQuestionAnswer, SharedRichTextBlock, SlideContent, SlideType, SliderBreakpoint, SliderOrigin, SliderSettings, SliderSpacing, Slideshow, SlideshowComponentProps, SlideshowComponentSlideSettings, SlideshowMode, SlideshowSettings, StrapiAttributeErrorDetail, StrapiAttributeErrorKey, StrapiAttributeErrorResponse, StrapiBgColorOptions, StrapiDirection, StrapiErrorDetail, StrapiErrorResponse, StrapiErrorResult, StrapiGapSizes, StrapiIconName, StrapiIconPosition, StrapiLinkReferrerPolicy, StrapiLinkRel, StrapiLinkTarget, StrapiLinkType, StrapiListResponse, StrapiPagination, StrapiResponseMeta, StrapiResponseMetaWithPagination, StrapiSingleResponse, StrapiTextColorOptions, StrapiThemeOptions, TagDocument, TeamMemberDocument, TeamMemberGroup, TeamMemberTier, TeamPageDocument, TeamworkActivePages, TeamworkCompany, TeamworkCurrency, TeamworkCustomField, TeamworkLockdown, TeamworkProject, TeamworkProjectCategory, TeamworkProjectCustomField, TeamworkProjectResponse, TeamworkProjectResponseMeta, TeamworkProjectTaskStat, TeamworkProjectUpdate, TeamworkProjectsResponse, TeamworkRelatedMeta, TeamworkResponseMeta, TeamworkResponseMetaPagination, TeamworkResponseMetaProjectStats, TeamworkTag, TeamworkTagResponse, TeamworkTagResponseMeta, TeamworkTagsResponse, TeamworkTask, TeamworkTaskCard, TeamworkTaskResponse, TeamworkTaskResponseMeta, TeamworkTaskUserPermissions, TeamworkTasklist, TeamworkTasklistResponse, TeamworkTasklistResponseMeta, TeamworkTasklistsResponse, TeamworkTasksResponse, TeamworkUserAccount, TrendDocument, UrlRedirectDocument, UrlRedirectQueryParams, UrlRedirectStatusCode, UserAccountDocument, UserAuthorizationLoginResponse, UserAuthorizationSuccessResponse, UserDocument, UtmClassificationKey, UtmMetaPageDocument, UtmOption, UtmSourceKey, UtmTrackingLinkDocument };
@@ -17,10 +17,10 @@ function datePlusDays(today, days = 30) {
17
17
  //#endregion
18
18
  //#region src/utilities/strapi-responses.ts
19
19
  function isStrapiAttributeError(result) {
20
- 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);
20
+ return typeof result === "object" && result !== null && "error" in result && typeof result.error === "object" && result.error !== null && "details" in result.error && typeof result.error.details === "object" && result.error.details !== null && "errors" in result.error.details && Array.isArray(result.error.details.errors);
21
21
  }
22
22
  function isStrapiStandardError(result) {
23
- return "error" in result && "details" in result.error && typeof result.error.details === "object" && result.error.details !== null && "errors" in result.error.details === false;
23
+ return typeof result === "object" && result !== null && "error" in result && typeof result.error === "object" && result.error !== null && "details" in result.error && typeof result.error.details === "object" && result.error.details !== null && "errors" in result.error.details === false;
24
24
  }
25
25
  //#endregion
26
26
  //#region src/utilities/validation.ts
@@ -74,5 +74,3 @@ exports.isValidationFailure = isValidationFailure;
74
74
  exports.isValidationSuccess = isValidationSuccess;
75
75
  exports.omitUndefined = omitUndefined;
76
76
  exports.validateAndClean = validateAndClean;
77
-
78
- //# sourceMappingURL=utilities.cjs.map
@@ -1,2 +1,2 @@
1
- import { a as isStrapiAttributeError, c as dateToday, i as validateAndClean, n as isValidationSuccess, o as isStrapiStandardError, r as omitUndefined, s as datePlusDays, t as isValidationFailure } from "./index-CztHvKgd.cjs";
1
+ import { a as isStrapiAttributeError, c as dateToday, i as validateAndClean, n as isValidationSuccess, o as isStrapiStandardError, r as omitUndefined, s as datePlusDays, t as isValidationFailure } from "./index-CB2QzJmg.cjs";
2
2
  export { datePlusDays, dateToday, isStrapiAttributeError, isStrapiStandardError, isValidationFailure, isValidationSuccess, omitUndefined, validateAndClean };
@@ -1,2 +1,2 @@
1
- import { a as isStrapiAttributeError, c as dateToday, i as validateAndClean, n as isValidationSuccess, o as isStrapiStandardError, r as omitUndefined, s as datePlusDays, t as isValidationFailure } from "./index-DnB7WzlI.mjs";
1
+ import { a as isStrapiAttributeError, c as dateToday, i as validateAndClean, n as isValidationSuccess, o as isStrapiStandardError, r as omitUndefined, s as datePlusDays, t as isValidationFailure } from "./index-C7BMdD00.mjs";
2
2
  export { datePlusDays, dateToday, isStrapiAttributeError, isStrapiStandardError, isValidationFailure, isValidationSuccess, omitUndefined, validateAndClean };
@@ -14,10 +14,10 @@ function datePlusDays(today, days = 30) {
14
14
  //#endregion
15
15
  //#region src/utilities/strapi-responses.ts
16
16
  function isStrapiAttributeError(result) {
17
- 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);
17
+ return typeof result === "object" && result !== null && "error" in result && typeof result.error === "object" && result.error !== null && "details" in result.error && typeof result.error.details === "object" && result.error.details !== null && "errors" in result.error.details && Array.isArray(result.error.details.errors);
18
18
  }
19
19
  function isStrapiStandardError(result) {
20
- return "error" in result && "details" in result.error && typeof result.error.details === "object" && result.error.details !== null && "errors" in result.error.details === false;
20
+ return typeof result === "object" && result !== null && "error" in result && typeof result.error === "object" && result.error !== null && "details" in result.error && typeof result.error.details === "object" && result.error.details !== null && "errors" in result.error.details === false;
21
21
  }
22
22
  //#endregion
23
23
  //#region src/utilities/validation.ts
@@ -64,5 +64,3 @@ function omitUndefined(obj) {
64
64
  }
65
65
  //#endregion
66
66
  export { datePlusDays, dateToday, isStrapiAttributeError, isStrapiStandardError, isValidationFailure, isValidationSuccess, omitUndefined, validateAndClean };
67
-
68
- //# sourceMappingURL=utilities.mjs.map
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@getcommunity/gc-validators",
3
3
  "description": "Schema Validator for GetCommunity web-stack types",
4
- "version": "0.0.232",
4
+ "version": "0.0.234",
5
5
  "author": "Joey Grable <joey@getcommunity.com> (https://joeygrable.com)",
6
6
  "contributors": [],
7
7
  "type": "module",
@@ -101,7 +101,7 @@
101
101
  "prettier": "^3.8.1",
102
102
  "prettier-plugin-organize-imports": "^4.3.0",
103
103
  "tsdown": "^0.21.7",
104
- "typescript": "^5.9.3"
104
+ "typescript": "^6.0.2"
105
105
  },
106
106
  "bugs": {
107
107
  "url": "https://github.com/getcommunity/gc-validators/issues"
@@ -1 +0,0 @@
1
- {"version":3,"file":"constants.cjs","names":[],"sources":["../src/constants/client-project.constants.ts","../src/constants/client.constants.ts","../src/constants/comment.constants.ts","../src/constants/gc-contact-form-options.constants.ts","../src/constants/limits.constants.ts","../src/constants/message-response.constants.ts","../src/constants/pagination.constants.ts","../src/constants/regex.constants.ts"],"sourcesContent":["export const ClientProjectStatusOptions = [\n \"coming-soon\",\n \"now-open\",\n \"for-sale\",\n \"sold-out\",\n \"available\"\n] as const\n\nexport const ClientProjectPhaseSelectOptions = [\n {\n label: \"Brand\",\n value: \"brand\",\n description: \"General/Company branded content\"\n },\n {\n label: \"Phase 1\",\n value: \"p1\",\n description: \"Interest list building\"\n },\n {\n label: \"Phase 2\",\n value: \"p2\",\n description: \"Pre-qualification, pre-sales\"\n },\n {\n label: \"Phase 3\",\n value: \"p3\",\n description: \"Grand opening, now open, available\"\n },\n {\n label: \"Phase 4\",\n value: \"p4\",\n description: \"For sale, maintenance period\"\n },\n {\n label: \"Phase 5\",\n value: \"p5\",\n description: \"Final sale\"\n },\n {\n label: \"Closed\",\n value: \"closed\",\n description: \"Sold out, no longer available\"\n }\n] as const\n\nexport const ClientProjectPhaseOptions = [\n \"brand\",\n \"p1\",\n \"p2\",\n \"p3\",\n \"p4\",\n \"p5\",\n \"closed\"\n] as const\n","export const IsValidClientClassificationSelectOptions = [\"organic\", \"paid\"] as const\n","// Comment Report Document\nexport const ReportCommentReason = {\n BAD_LANGUAGE: \"BAD_LANGUAGE\",\n DISCRIMINATION: \"DISCRIMINATION\",\n OTHER: \"OTHER\"\n} as const\n\nexport const ReportCommentReasonOptions = Object.values(ReportCommentReason)\n\n// Comment Document\nexport const CommentApprovalStatus = {\n PENDING: \"PENDING\",\n APPROVED: \"APPROVED\",\n REJECTED: \"REJECTED\"\n} as const\n\nexport const CommentApprovalStatusOptions = Object.values(CommentApprovalStatus)\n","export const ValidNumberOfEmployeeOptions = [\n { label: \"0-10\", value: \"0-10\" },\n { label: \"11-20\", value: \"11-20\" },\n { label: \"21-50\", value: \"21-50\" },\n { label: \"51-100\", value: \"51-100\" },\n { label: \"101-500\", value: \"101-500\" },\n { label: \"501+\", value: \"501+\" }\n] as const\n\nexport const ValidJobRoleGroup = [\n {\n label: \"Founder / Owner\",\n value: \"founder,owner\"\n },\n {\n label: \"C-suite Executive\",\n value: \"executive\"\n },\n {\n label: \"Vice President\",\n value: \"vice president\"\n },\n {\n label: \"Director\",\n value: \"director\"\n },\n {\n label: \"Manager\",\n value: \"manager\"\n },\n {\n label: \"Solo-prenour\",\n value: \"solo-prenour\"\n },\n {\n label: \"Student\",\n value: \"student\"\n }\n] as const\n\nexport const ValidGcServiceOptions = [\n { label: \"Full Marketing Services\", value: \"Full Marketing Services\" },\n {\n label: \"Graphic Design / Marketing Design\",\n value: \"Graphic Design / Marketing Design\"\n },\n { label: \"Text Message Marketing\", value: \"Text Message Marketing\" },\n { label: \"Email Marketing\", value: \"Email Marketing\" },\n { label: \"Video Production\", value: \"Video Production\" },\n { label: \"Website Production\", value: \"Website Production\" },\n { label: \"Marketing Automation Software\", value: \"Marketing Automation Software\" },\n { label: \"Online Advertising\", value: \"Online Advertising\" },\n { label: \"Influencer Marketing\", value: \"Influencer Marketing\" }\n] as const\n\nexport const ValidGcVideoServiceOptions = [\n { label: \"Storyboarding\", value: \"Storyboarding\" },\n { label: \"Voiceovers\", value: \"Voiceovers\" },\n { label: \"Video Commercials / Interviews\", value: \"Video Commercials / Interviews\" },\n {\n label: \"Short Form Video Editing (social posts/stories)\",\n value: \"Short Form Video Editing (social posts/stories)\"\n },\n { label: \"Product Tours\", value: \"Product Tours\" },\n { label: \"Model Home / Community Tours\", value: \"Model Home / Community Tours\" },\n { label: \"Matterport Interactive Tours\", value: \"Matterport Interactive Tours\" },\n { label: \"3D Flyover Videos\", value: \"3D Flyover Videos\" }\n] as const\n\nexport const ValidGcDesiredContentOptions = [\n { label: \"Blog Posts\", value: \"Blog Posts\" },\n { label: \"Podcasting\", value: \"Podcasting\" },\n { label: \"Live Streams\", value: \"Live Streams\" },\n { label: \"Newsletters\", value: \"Newsletters\" },\n { label: \"Freebies / Toolkits\", value: \"Freebies / Toolkits\" },\n { label: \"Community Updates\", value: \"Community Updates\" }\n] as const\n\nexport const ValidRatingRange5 = [\n { label: \"1\", value: \"1\" },\n { label: \"2\", value: \"2\" },\n { label: \"3\", value: \"3\" },\n { label: \"4\", value: \"4\" },\n { label: \"5\", value: \"5\" }\n] as const\n","// Generics\nexport const LIMIT_MIN_VALUE = 1\nexport const LIMIT_SHORT_STRING_MAX_LENGTH = 255\nexport const LIMIT_MEDIUM_STRING_MAX_LENGTH = 500\nexport const LIMIT_LONG_STRING_MAX_LENGTH = 5000\nexport const LIMIT_VAL_10 = 10\nexport const LIMIT_VAL_100 = 100\n// Users\nexport const LIMIT_MIN_USERNAME = 3\nexport const LIMIT_MAX_USERNAME = 255\nexport const LIMIT_MIN_EMAIL = 5\nexport const LIMIT_MAX_EMAIL = 255\nexport const LIMIT_MIN_PASSWORD = 8\nexport const LIMIT_MAX_PASSWORD = 255\nexport const LIMIT_MAX_PROVIDER = 255\nexport const LIMIT_MIN_PHONE = 7\nexport const LIMIT_MAX_PHONE = 24\n// URLs\nexport const LIMIT_MIN_DESTINATION = 10\nexport const LIMIT_MAX_DESTINATION = 2048\nexport const LIMIT_MIN_DOMAIN = 10\nexport const LIMIT_MAX_DOMAIN = 253\nexport const LIMIT_MIN_PATH = 1\nexport const LIMIT_MAX_PATH = 2038\nexport const LIMIT_MIN_QUERY = 1\nexport const LIMIT_MAX_QUERY = 2038\nexport const LIMIT_MIN_FRAGMENT = 1\nexport const LIMIT_MAX_FRAGMENT = 2038\n// UTM Parameters\nexport const LIMIT_MIN_UTM_KEY = 1\nexport const LIMIT_MAX_UTM_KEY = 255\nexport const LIMIT_MIN_UTM_SOURCE = 1\nexport const LIMIT_MAX_UTM_SOURCE = 2026\nexport const LIMIT_MIN_UTM_MEDIUM = 1\nexport const LIMIT_MAX_UTM_MEDIUM = 2026\nexport const LIMIT_MIN_UTM_CAMPAIGN = 1\nexport const LIMIT_MAX_UTM_CAMPAIGN = 2024\nexport const LIMIT_MIN_UTM_CREATIVE_FORMAT = 1\nexport const LIMIT_MAX_UTM_CREATIVE_FORMAT = 2017\nexport const LIMIT_MIN_UTM_CONTENT = 1\nexport const LIMIT_MAX_UTM_CONTENT = 2025\nexport const LIMIT_MIN_UTM_TERM = 1\nexport const LIMIT_MAX_UTM_TERM = 2028\nexport const LIMIT_MIN_UTM_ID = 1\nexport const LIMIT_MAX_UTM_ID = 2030\n","export const ERROR_MESSAGE_ROBOT = \"It appears you are a robot, please try again.\"\nexport const ERROR_MESSAGE_COMMA_SEPPARATED_URLS = `Please enter a list of URLs separated by commas.`\nexport const ERROR_MESSAGE_INVALID_URL = `Please enter a valid URL.`\nexport const ERROR_MESSAGE_UTM_URL = `Please enter a valid URL with UTM parameters.`\nexport const ERROR_MESSAGE_URL_NO_QUERY_PARAMS = `Please remove any query parameters from the URL.`\nexport const ERROR_MESSAGE_ONE_PROJECT_STATUS = `You can only select one project status.`\nexport const ERROR_MESSAGE_URL_PREFIX = `Please enter a valid URL starting with http or https.`\n","// Generics\nexport const LIMIT_TABLE_PAGINATION_DEFAULT_SIZE = 10\nexport const LIMIT_PAGINATION_DEFAULT_SIZE = 100\nexport const LIMIT_PAGINATION_MAX_SIZE = 10000\n// Entities\nexport const LIMIT_BLOG_POST_PAGINATION_DEFAULT_SIZE = 6\nexport const LIMIT_BLOG_POST_PAGINATION_MAX_SIZE = 20\nexport const LIMIT_CLIENT_PAGINATION_DEFAULT_SIZE = 20\nexport const LIMIT_CLIENT_PAGINATION_MAX_SIZE = 100\nexport const LIMIT_CLIENT_REPORT_PAGINATION_DEFAULT_SIZE = 10\nexport const LIMIT_CLIENT_REPORT_PAGINATION_MAX_SIZE = 100\nexport const LIMIT_CLIENT_MEDIA_PLATFORM_PAGINATION_DEFAULT_SIZE = 10\nexport const LIMIT_CLIENT_MEDIA_PLATFORM_PAGINATION_MAX_SIZE = 100\nexport const LIMIT_CLIENT_CONTENT_PILLAR_PAGINATION_DEFAULT_SIZE = 10\nexport const LIMIT_CLIENT_CONTENT_PILLAR_PAGINATION_MAX_SIZE = 100\nexport const LIMIT_CLIENT_PROJECT_PAGINATION_DEFAULT_SIZE = 10\nexport const LIMIT_CLIENT_PROJECT_PAGINATION_MAX_SIZE = 100\nexport const LIMIT_CLIENT_STYLEGUIDE_PAGINATION_DEFAULT_SIZE = 10\nexport const LIMIT_CLIENT_STYLEGUIDE_PAGINATION_MAX_SIZE = 100\nexport const LIMIT_CLIENT_USER_PAGINATION_DEFAULT_SIZE_LIMIT = 10\nexport const LIMIT_CLIENT_USER_PAGINATION_MAX_SIZE_LIMIT = 100\nexport const LIMIT_PRODUCT_HIGHLIGHT_PAGINATION_DEFAULT_SIZE = 10\nexport const LIMIT_PRODUCT_HIGHLIGHT_PAGINATION_MAX_SIZE = 100\nexport const LIMIT_PRODUCT_PAGINATION_DEFAULT_SIZE = 10\nexport const LIMIT_PRODUCT_PAGINATION_MAX_SIZE = 100\nexport const LIMIT_REDIRECT_PAGINATION_DEFAULT_SIZE = 1000\nexport const LIMIT_REDIRECT_PAGINATION_MAX_SIZE = 10000\nexport const LIMIT_TEAM_MEMBER_PAGINATION_DEFAULT_SIZE = 10\nexport const LIMIT_TEAM_MEMBER_PAGINATION_MAX_SIZE = 20\nexport const LIMIT_TREND_PAGINATION_DEFAULT_SIZE = 7\nexport const LIMIT_TREND_PAGINATION_MAX_SIZE = 100\nexport const LIMIT_USER_PAGINATION_DEFAULT_SIZE = 10\nexport const LIMIT_USER_PAGINATION_MAX_SIZE = 10\nexport const LIMIT_CATEGORIES_DEFAULT_SIZE = 100\nexport const LIMIT_CATEGORIES_MAX_SIZE = 1000\nexport const LIMIT_TAGS_DEFAULT_SIZE = 100\nexport const LIMIT_TAGS_MAX_SIZE = 1000\nexport const LIMIT_UTM_TRACKING_LINK_PAGINATION_DEFAULT_SIZE = 10\nexport const LIMIT_UTM_TRACKING_LINK_PAGINATION_MAX_SIZE = 1000\nexport const LIMIT_MONDAY_WORKSPACE_PAGINATION_DEFAULT_SIZE = 10\nexport const LIMIT_MONDAY_WORKSPACE_PAGINATION_MAX_SIZE = 1000\n","export const ERROR_MESSAGE_REGEX_UTM_VALUE =\n \"can only contain letters, numbers, and the special characters: - _ .\"\nexport const REGEX_UTM_VALUE = /^([a-zA-Z0-9._-]+)?$/\nexport const REGEX_BRAND_COLOR_SLUG = /^([a-zA-Z0-9_-]+)?$/\n\nexport const ERROR_MESSAGE_REGEX_PHONE = \"Please provide a valid phone number.\"\nexport const REGEX_NANP_PHONE =\n /^(?:\\+?1[\\s.-]?)?(?:\\(?([2-9]\\d{2})\\)?[\\s.-]?)(?:([2-9](?!11)\\d{2}))[\\s.-]?(\\d{4})(?:\\s*(?:#|x|ext\\.?|extension)\\s*\\d+)?$/i\n\nexport const ERROR_MESSAGE_REGEX_URL_SLUG = `can only contain letters, numbers, and the special characters: - _ .`\nexport const REGEX_URL_SLUG = /^([a-zA-Z0-9._-]+)?$/\n"],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"constants.mjs","names":[],"sources":["../src/constants/client-project.constants.ts","../src/constants/client.constants.ts","../src/constants/comment.constants.ts","../src/constants/gc-contact-form-options.constants.ts","../src/constants/limits.constants.ts","../src/constants/message-response.constants.ts","../src/constants/pagination.constants.ts","../src/constants/regex.constants.ts"],"sourcesContent":["export const ClientProjectStatusOptions = [\n \"coming-soon\",\n \"now-open\",\n \"for-sale\",\n \"sold-out\",\n \"available\"\n] as const\n\nexport const ClientProjectPhaseSelectOptions = [\n {\n label: \"Brand\",\n value: \"brand\",\n description: \"General/Company branded content\"\n },\n {\n label: \"Phase 1\",\n value: \"p1\",\n description: \"Interest list building\"\n },\n {\n label: \"Phase 2\",\n value: \"p2\",\n description: \"Pre-qualification, pre-sales\"\n },\n {\n label: \"Phase 3\",\n value: \"p3\",\n description: \"Grand opening, now open, available\"\n },\n {\n label: \"Phase 4\",\n value: \"p4\",\n description: \"For sale, maintenance period\"\n },\n {\n label: \"Phase 5\",\n value: \"p5\",\n description: \"Final sale\"\n },\n {\n label: \"Closed\",\n value: \"closed\",\n description: \"Sold out, no longer available\"\n }\n] as const\n\nexport const ClientProjectPhaseOptions = [\n \"brand\",\n \"p1\",\n \"p2\",\n \"p3\",\n \"p4\",\n \"p5\",\n \"closed\"\n] as const\n","export const IsValidClientClassificationSelectOptions = [\"organic\", \"paid\"] as const\n","// Comment Report Document\nexport const ReportCommentReason = {\n BAD_LANGUAGE: \"BAD_LANGUAGE\",\n DISCRIMINATION: \"DISCRIMINATION\",\n OTHER: \"OTHER\"\n} as const\n\nexport const ReportCommentReasonOptions = Object.values(ReportCommentReason)\n\n// Comment Document\nexport const CommentApprovalStatus = {\n PENDING: \"PENDING\",\n APPROVED: \"APPROVED\",\n REJECTED: \"REJECTED\"\n} as const\n\nexport const CommentApprovalStatusOptions = Object.values(CommentApprovalStatus)\n","export const ValidNumberOfEmployeeOptions = [\n { label: \"0-10\", value: \"0-10\" },\n { label: \"11-20\", value: \"11-20\" },\n { label: \"21-50\", value: \"21-50\" },\n { label: \"51-100\", value: \"51-100\" },\n { label: \"101-500\", value: \"101-500\" },\n { label: \"501+\", value: \"501+\" }\n] as const\n\nexport const ValidJobRoleGroup = [\n {\n label: \"Founder / Owner\",\n value: \"founder,owner\"\n },\n {\n label: \"C-suite Executive\",\n value: \"executive\"\n },\n {\n label: \"Vice President\",\n value: \"vice president\"\n },\n {\n label: \"Director\",\n value: \"director\"\n },\n {\n label: \"Manager\",\n value: \"manager\"\n },\n {\n label: \"Solo-prenour\",\n value: \"solo-prenour\"\n },\n {\n label: \"Student\",\n value: \"student\"\n }\n] as const\n\nexport const ValidGcServiceOptions = [\n { label: \"Full Marketing Services\", value: \"Full Marketing Services\" },\n {\n label: \"Graphic Design / Marketing Design\",\n value: \"Graphic Design / Marketing Design\"\n },\n { label: \"Text Message Marketing\", value: \"Text Message Marketing\" },\n { label: \"Email Marketing\", value: \"Email Marketing\" },\n { label: \"Video Production\", value: \"Video Production\" },\n { label: \"Website Production\", value: \"Website Production\" },\n { label: \"Marketing Automation Software\", value: \"Marketing Automation Software\" },\n { label: \"Online Advertising\", value: \"Online Advertising\" },\n { label: \"Influencer Marketing\", value: \"Influencer Marketing\" }\n] as const\n\nexport const ValidGcVideoServiceOptions = [\n { label: \"Storyboarding\", value: \"Storyboarding\" },\n { label: \"Voiceovers\", value: \"Voiceovers\" },\n { label: \"Video Commercials / Interviews\", value: \"Video Commercials / Interviews\" },\n {\n label: \"Short Form Video Editing (social posts/stories)\",\n value: \"Short Form Video Editing (social posts/stories)\"\n },\n { label: \"Product Tours\", value: \"Product Tours\" },\n { label: \"Model Home / Community Tours\", value: \"Model Home / Community Tours\" },\n { label: \"Matterport Interactive Tours\", value: \"Matterport Interactive Tours\" },\n { label: \"3D Flyover Videos\", value: \"3D Flyover Videos\" }\n] as const\n\nexport const ValidGcDesiredContentOptions = [\n { label: \"Blog Posts\", value: \"Blog Posts\" },\n { label: \"Podcasting\", value: \"Podcasting\" },\n { label: \"Live Streams\", value: \"Live Streams\" },\n { label: \"Newsletters\", value: \"Newsletters\" },\n { label: \"Freebies / Toolkits\", value: \"Freebies / Toolkits\" },\n { label: \"Community Updates\", value: \"Community Updates\" }\n] as const\n\nexport const ValidRatingRange5 = [\n { label: \"1\", value: \"1\" },\n { label: \"2\", value: \"2\" },\n { label: \"3\", value: \"3\" },\n { label: \"4\", value: \"4\" },\n { label: \"5\", value: \"5\" }\n] as const\n","// Generics\nexport const LIMIT_MIN_VALUE = 1\nexport const LIMIT_SHORT_STRING_MAX_LENGTH = 255\nexport const LIMIT_MEDIUM_STRING_MAX_LENGTH = 500\nexport const LIMIT_LONG_STRING_MAX_LENGTH = 5000\nexport const LIMIT_VAL_10 = 10\nexport const LIMIT_VAL_100 = 100\n// Users\nexport const LIMIT_MIN_USERNAME = 3\nexport const LIMIT_MAX_USERNAME = 255\nexport const LIMIT_MIN_EMAIL = 5\nexport const LIMIT_MAX_EMAIL = 255\nexport const LIMIT_MIN_PASSWORD = 8\nexport const LIMIT_MAX_PASSWORD = 255\nexport const LIMIT_MAX_PROVIDER = 255\nexport const LIMIT_MIN_PHONE = 7\nexport const LIMIT_MAX_PHONE = 24\n// URLs\nexport const LIMIT_MIN_DESTINATION = 10\nexport const LIMIT_MAX_DESTINATION = 2048\nexport const LIMIT_MIN_DOMAIN = 10\nexport const LIMIT_MAX_DOMAIN = 253\nexport const LIMIT_MIN_PATH = 1\nexport const LIMIT_MAX_PATH = 2038\nexport const LIMIT_MIN_QUERY = 1\nexport const LIMIT_MAX_QUERY = 2038\nexport const LIMIT_MIN_FRAGMENT = 1\nexport const LIMIT_MAX_FRAGMENT = 2038\n// UTM Parameters\nexport const LIMIT_MIN_UTM_KEY = 1\nexport const LIMIT_MAX_UTM_KEY = 255\nexport const LIMIT_MIN_UTM_SOURCE = 1\nexport const LIMIT_MAX_UTM_SOURCE = 2026\nexport const LIMIT_MIN_UTM_MEDIUM = 1\nexport const LIMIT_MAX_UTM_MEDIUM = 2026\nexport const LIMIT_MIN_UTM_CAMPAIGN = 1\nexport const LIMIT_MAX_UTM_CAMPAIGN = 2024\nexport const LIMIT_MIN_UTM_CREATIVE_FORMAT = 1\nexport const LIMIT_MAX_UTM_CREATIVE_FORMAT = 2017\nexport const LIMIT_MIN_UTM_CONTENT = 1\nexport const LIMIT_MAX_UTM_CONTENT = 2025\nexport const LIMIT_MIN_UTM_TERM = 1\nexport const LIMIT_MAX_UTM_TERM = 2028\nexport const LIMIT_MIN_UTM_ID = 1\nexport const LIMIT_MAX_UTM_ID = 2030\n","export const ERROR_MESSAGE_ROBOT = \"It appears you are a robot, please try again.\"\nexport const ERROR_MESSAGE_COMMA_SEPPARATED_URLS = `Please enter a list of URLs separated by commas.`\nexport const ERROR_MESSAGE_INVALID_URL = `Please enter a valid URL.`\nexport const ERROR_MESSAGE_UTM_URL = `Please enter a valid URL with UTM parameters.`\nexport const ERROR_MESSAGE_URL_NO_QUERY_PARAMS = `Please remove any query parameters from the URL.`\nexport const ERROR_MESSAGE_ONE_PROJECT_STATUS = `You can only select one project status.`\nexport const ERROR_MESSAGE_URL_PREFIX = `Please enter a valid URL starting with http or https.`\n","// Generics\nexport const LIMIT_TABLE_PAGINATION_DEFAULT_SIZE = 10\nexport const LIMIT_PAGINATION_DEFAULT_SIZE = 100\nexport const LIMIT_PAGINATION_MAX_SIZE = 10000\n// Entities\nexport const LIMIT_BLOG_POST_PAGINATION_DEFAULT_SIZE = 6\nexport const LIMIT_BLOG_POST_PAGINATION_MAX_SIZE = 20\nexport const LIMIT_CLIENT_PAGINATION_DEFAULT_SIZE = 20\nexport const LIMIT_CLIENT_PAGINATION_MAX_SIZE = 100\nexport const LIMIT_CLIENT_REPORT_PAGINATION_DEFAULT_SIZE = 10\nexport const LIMIT_CLIENT_REPORT_PAGINATION_MAX_SIZE = 100\nexport const LIMIT_CLIENT_MEDIA_PLATFORM_PAGINATION_DEFAULT_SIZE = 10\nexport const LIMIT_CLIENT_MEDIA_PLATFORM_PAGINATION_MAX_SIZE = 100\nexport const LIMIT_CLIENT_CONTENT_PILLAR_PAGINATION_DEFAULT_SIZE = 10\nexport const LIMIT_CLIENT_CONTENT_PILLAR_PAGINATION_MAX_SIZE = 100\nexport const LIMIT_CLIENT_PROJECT_PAGINATION_DEFAULT_SIZE = 10\nexport const LIMIT_CLIENT_PROJECT_PAGINATION_MAX_SIZE = 100\nexport const LIMIT_CLIENT_STYLEGUIDE_PAGINATION_DEFAULT_SIZE = 10\nexport const LIMIT_CLIENT_STYLEGUIDE_PAGINATION_MAX_SIZE = 100\nexport const LIMIT_CLIENT_USER_PAGINATION_DEFAULT_SIZE_LIMIT = 10\nexport const LIMIT_CLIENT_USER_PAGINATION_MAX_SIZE_LIMIT = 100\nexport const LIMIT_PRODUCT_HIGHLIGHT_PAGINATION_DEFAULT_SIZE = 10\nexport const LIMIT_PRODUCT_HIGHLIGHT_PAGINATION_MAX_SIZE = 100\nexport const LIMIT_PRODUCT_PAGINATION_DEFAULT_SIZE = 10\nexport const LIMIT_PRODUCT_PAGINATION_MAX_SIZE = 100\nexport const LIMIT_REDIRECT_PAGINATION_DEFAULT_SIZE = 1000\nexport const LIMIT_REDIRECT_PAGINATION_MAX_SIZE = 10000\nexport const LIMIT_TEAM_MEMBER_PAGINATION_DEFAULT_SIZE = 10\nexport const LIMIT_TEAM_MEMBER_PAGINATION_MAX_SIZE = 20\nexport const LIMIT_TREND_PAGINATION_DEFAULT_SIZE = 7\nexport const LIMIT_TREND_PAGINATION_MAX_SIZE = 100\nexport const LIMIT_USER_PAGINATION_DEFAULT_SIZE = 10\nexport const LIMIT_USER_PAGINATION_MAX_SIZE = 10\nexport const LIMIT_CATEGORIES_DEFAULT_SIZE = 100\nexport const LIMIT_CATEGORIES_MAX_SIZE = 1000\nexport const LIMIT_TAGS_DEFAULT_SIZE = 100\nexport const LIMIT_TAGS_MAX_SIZE = 1000\nexport const LIMIT_UTM_TRACKING_LINK_PAGINATION_DEFAULT_SIZE = 10\nexport const LIMIT_UTM_TRACKING_LINK_PAGINATION_MAX_SIZE = 1000\nexport const LIMIT_MONDAY_WORKSPACE_PAGINATION_DEFAULT_SIZE = 10\nexport const LIMIT_MONDAY_WORKSPACE_PAGINATION_MAX_SIZE = 1000\n","export const ERROR_MESSAGE_REGEX_UTM_VALUE =\n \"can only contain letters, numbers, and the special characters: - _ .\"\nexport const REGEX_UTM_VALUE = /^([a-zA-Z0-9._-]+)?$/\nexport const REGEX_BRAND_COLOR_SLUG = /^([a-zA-Z0-9_-]+)?$/\n\nexport const ERROR_MESSAGE_REGEX_PHONE = \"Please provide a valid phone number.\"\nexport const REGEX_NANP_PHONE =\n /^(?:\\+?1[\\s.-]?)?(?:\\(?([2-9]\\d{2})\\)?[\\s.-]?)(?:([2-9](?!11)\\d{2}))[\\s.-]?(\\d{4})(?:\\s*(?:#|x|ext\\.?|extension)\\s*\\d+)?$/i\n\nexport const ERROR_MESSAGE_REGEX_URL_SLUG = `can only contain letters, numbers, and the special characters: - _ .`\nexport const REGEX_URL_SLUG = /^([a-zA-Z0-9._-]+)?$/\n"],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"permissions.cjs","names":[],"sources":["../src/permissions/permission.abac.ts","../src/permissions/permission.constants.ts","../src/permissions/permission.utilities.ts"],"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-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 \"media-creative-format\": {\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-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 \"media-creative-format\": {\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-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 \"media-creative-format\": {\n list: true,\n create: true,\n read: true,\n update: true,\n delete: true\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-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 \"media-creative-format\": {\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-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 \"media-creative-format\": {\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-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 userRole: RoleType,\n resource: Resource,\n action: Permissions[Resource][\"action\"]\n): boolean {\n if (!userRole) return false\n const permission = (ROLE_PERMISSIONS as RolesWithPermissions)[userRole][resource]?.[\n action\n ]\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"],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"permissions.mjs","names":[],"sources":["../src/permissions/permission.abac.ts","../src/permissions/permission.constants.ts","../src/permissions/permission.utilities.ts"],"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-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 \"media-creative-format\": {\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-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 \"media-creative-format\": {\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-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 \"media-creative-format\": {\n list: true,\n create: true,\n read: true,\n update: true,\n delete: true\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-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 \"media-creative-format\": {\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-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 \"media-creative-format\": {\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-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 userRole: RoleType,\n resource: Resource,\n action: Permissions[Resource][\"action\"]\n): boolean {\n if (!userRole) return false\n const permission = (ROLE_PERMISSIONS as RolesWithPermissions)[userRole][resource]?.[\n action\n ]\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"],"mappings":"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"}