@getcommunity/gc-validators 0.0.223 → 0.0.225
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/{index-CFwPiPyQ.d.mts → index-BrsTvGFm.d.mts} +1810 -245
- package/dist/{index-CbEgLM4o.d.cts → index-DixG87wu.d.cts} +1810 -245
- package/dist/index.d.cts +1 -1
- package/dist/index.d.mts +1 -1
- package/dist/permissions.cjs +3 -3
- package/dist/permissions.cjs.map +1 -1
- package/dist/permissions.d.cts +1 -1
- package/dist/permissions.d.mts +1 -1
- package/dist/permissions.mjs +3 -3
- package/dist/permissions.mjs.map +1 -1
- package/dist/schemas.cjs +108 -90
- package/dist/schemas.cjs.map +1 -1
- package/dist/schemas.d.cts +1 -1
- package/dist/schemas.d.mts +1 -1
- package/dist/schemas.mjs +108 -90
- package/dist/schemas.mjs.map +1 -1
- package/dist/types.d.cts +1 -1
- package/dist/types.d.mts +1 -1
- package/dist/utilities.d.cts +1 -1
- package/dist/utilities.d.mts +1 -1
- package/package.json +1 -1
package/dist/index.d.cts
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
import { $ as ERROR_MESSAGE_UTM_URL, $t as CommentApprovalStatusOptions, A as LIMIT_PRODUCT_HIGHLIGHT_PAGINATION_DEFAULT_SIZE, At as LIMIT_MIN_UTM_CONTENT, B as LIMIT_TEAM_MEMBER_PAGINATION_MAX_SIZE, Bt as LIMIT_VAL_100, C as LIMIT_CLIENT_STYLEGUIDE_PAGINATION_MAX_SIZE, Ct as LIMIT_MIN_FRAGMENT, D as LIMIT_MONDAY_WORKSPACE_PAGINATION_MAX_SIZE, Dt as LIMIT_MIN_QUERY, E as LIMIT_MONDAY_WORKSPACE_PAGINATION_DEFAULT_SIZE, Et as LIMIT_MIN_PHONE, F as LIMIT_REDIRECT_PAGINATION_MAX_SIZE, Ft as LIMIT_MIN_UTM_SOURCE, G as LIMIT_UTM_TRACKING_LINK_PAGINATION_DEFAULT_SIZE, Gt as ValidNumberOfEmployeeOptions, H as LIMIT_TREND_PAGINATION_MAX_SIZE, Ht as ValidGcServiceOptions, I as LIMIT_TABLE_PAGINATION_DEFAULT_SIZE, It as LIMIT_MIN_UTM_TERM, J as ERROR_MESSAGE_INVALID_URL, Jt as WebSafeFontDisplay, K as LIMIT_UTM_TRACKING_LINK_PAGINATION_MAX_SIZE, Kt as ValidRatingRange5, L as LIMIT_TAGS_DEFAULT_SIZE, Lt as LIMIT_MIN_VALUE, M as LIMIT_PRODUCT_PAGINATION_DEFAULT_SIZE, Mt as LIMIT_MIN_UTM_ID, N as LIMIT_PRODUCT_PAGINATION_MAX_SIZE, Nt as LIMIT_MIN_UTM_KEY, O as LIMIT_PAGINATION_DEFAULT_SIZE, Ot as LIMIT_MIN_USERNAME, P as LIMIT_REDIRECT_PAGINATION_DEFAULT_SIZE, Pt as LIMIT_MIN_UTM_MEDIUM, Q as ERROR_MESSAGE_URL_PREFIX, Qt as CommentApprovalStatus, R as LIMIT_TAGS_MAX_SIZE, Rt as LIMIT_SHORT_STRING_MAX_LENGTH, S as LIMIT_CLIENT_STYLEGUIDE_PAGINATION_DEFAULT_SIZE, St as LIMIT_MIN_EMAIL, T as LIMIT_CLIENT_USER_PAGINATION_MAX_SIZE_LIMIT, Tt as LIMIT_MIN_PATH, U as LIMIT_USER_PAGINATION_DEFAULT_SIZE, Ut as ValidGcVideoServiceOptions, V as LIMIT_TREND_PAGINATION_DEFAULT_SIZE, Vt as ValidGcDesiredContentOptions, W as LIMIT_USER_PAGINATION_MAX_SIZE, Wt as ValidJobRoleGroup, X as ERROR_MESSAGE_ROBOT, Xt as WebSafeFontSans, Y as ERROR_MESSAGE_ONE_PROJECT_STATUS, Yt as WebSafeFontMono, Z as ERROR_MESSAGE_URL_NO_QUERY_PARAMS, Zt as WebSafeFontSerif, _ as LIMIT_CLIENT_PAGINATION_MAX_SIZE, _t as LIMIT_MAX_UTM_SOURCE, a as REGEX_NANP_PHONE, an as ClientProjectStatusOptions, at as LIMIT_MAX_PASSWORD, b as LIMIT_CLIENT_REPORT_PAGINATION_DEFAULT_SIZE, bt as LIMIT_MIN_DESTINATION, c as LIMIT_BLOG_POST_PAGINATION_DEFAULT_SIZE, ct as LIMIT_MAX_PROVIDER, d as LIMIT_CATEGORIES_MAX_SIZE, dt as LIMIT_MAX_UTM_CAMPAIGN, en as ReportCommentReason, et as LIMIT_LONG_STRING_MAX_LENGTH, f as LIMIT_CLIENT_CONTENT_PILLAR_PAGINATION_DEFAULT_SIZE, ft as LIMIT_MAX_UTM_CONTENT, g as LIMIT_CLIENT_PAGINATION_DEFAULT_SIZE, gt as LIMIT_MAX_UTM_MEDIUM, h as LIMIT_CLIENT_MEDIA_PLATFORM_PAGINATION_MAX_SIZE, ht as LIMIT_MAX_UTM_KEY, i as REGEX_BRAND_COLOR_SLUG, in as ClientProjectPhaseSelectOptions, it as LIMIT_MAX_FRAGMENT, j as LIMIT_PRODUCT_HIGHLIGHT_PAGINATION_MAX_SIZE, jt as LIMIT_MIN_UTM_CREATIVE_FORMAT, k as LIMIT_PAGINATION_MAX_SIZE, kt as LIMIT_MIN_UTM_CAMPAIGN, l as LIMIT_BLOG_POST_PAGINATION_MAX_SIZE, lt as LIMIT_MAX_QUERY, m as LIMIT_CLIENT_MEDIA_PLATFORM_PAGINATION_DEFAULT_SIZE, mt as LIMIT_MAX_UTM_ID, n as ERROR_MESSAGE_REGEX_URL_SLUG, nn as IsValidClientClassificationSelectOptions, nt as LIMIT_MAX_DOMAIN, o as REGEX_URL_SLUG, ot as LIMIT_MAX_PATH, p as LIMIT_CLIENT_CONTENT_PILLAR_PAGINATION_MAX_SIZE, pt as LIMIT_MAX_UTM_CREATIVE_FORMAT, q as ERROR_MESSAGE_COMMA_SEPPARATED_URLS, qt as WebSafeFont, r as ERROR_MESSAGE_REGEX_UTM_VALUE, rn as ClientProjectPhaseOptions, rt as LIMIT_MAX_EMAIL, s as REGEX_UTM_VALUE, st as LIMIT_MAX_PHONE, t as ERROR_MESSAGE_REGEX_PHONE, tn as ReportCommentReasonOptions, tt as LIMIT_MAX_DESTINATION, u as LIMIT_CATEGORIES_DEFAULT_SIZE, ut as LIMIT_MAX_USERNAME, v as LIMIT_CLIENT_PROJECT_PAGINATION_DEFAULT_SIZE, vt as LIMIT_MAX_UTM_TERM, w as LIMIT_CLIENT_USER_PAGINATION_DEFAULT_SIZE_LIMIT, wt as LIMIT_MIN_PASSWORD, x as LIMIT_CLIENT_REPORT_PAGINATION_MAX_SIZE, xt as LIMIT_MIN_DOMAIN, y as LIMIT_CLIENT_PROJECT_PAGINATION_MAX_SIZE, yt as LIMIT_MEDIUM_STRING_MAX_LENGTH, z as LIMIT_TEAM_MEMBER_PAGINATION_DEFAULT_SIZE, zt as LIMIT_VAL_10 } from "./index-CiWVYf_f.cjs";
|
|
2
|
-
import { $ as TeamworkProjectHealthSelectSortOptions, $a as SlideshowComponentSlideSettings, $i as CareersPageDocument, $n as SCreateContentPillarDocument, $o as RichTextBlock, $r as SUpdateClientContentPillarDocument, $t as QuerySortEntities, A as SAuthRawAccessToken, Aa as ClientProjectDocument, Ai as TeamworkResponseMetaProjectStats, An as VStringMinMaxRegex, Ao as ComponentBlockVideo, Ar as ClientReportSortKeys, As as StrapiTextColorOptions, At as SUpdateMondayWorkspaceDocumentRequest, B as SUpdateUserAccount, Ba as TrendDocument, Bi as TeamworkCustomField, Bn as SConnectManyEntityRelation, Bo as ComponentBlockBrandLogos, Br as SCreateClientProjectDocument, Bt as SCreateMediaCreativeFormatDocument, C as QuerySortUsers, Ca as UtmTrackingLinkDocument, Ci as TeamworkTaskResponseMeta, Cn as VString, Co as ComponentBlockPullQuote, Cr as SVerifyClientUserDocument, Cs as StrapiGapSizes, Ct as SUpdateNewsletterSignupDocument, D as UserSortKeys, Da as PermissionDocument, Di as TeamworkProjectResponse, Dn as VStringMax, Do as BlockFullscreenContentType, Dr as SCreateClientStyleguideDocument, Ds as StrapiLinkRel, Dt as QueryStrapiSearchMondayWorkspaces, E as SCreateUserDocument, Ea as RoleType, Ei as TeamworkProject, En as VStringLongNullable, Eo as BlockFullscreenContent, Er as QueryStrapiSearchClientStyleguide, Es as StrapiLinkReferrerPolicy, Et as QuerySortMondayWorkspaces, F as SRequestConfirmEmail, Fa as BlogPostBlock, Fi as TeamworkTagsResponse, Fn as VStringSlug, Fo as BlockContact, Fr as SUpdateClientReportDocumentRequest, Fs as CLIENT_ENTITY_SCOPES, Ft as SUpdateMediaPlatformDocument, G as QueryStrapiPaginatedUrlRedirects, Ga as UtmOption, Gi as TeamworkRelatedMeta, Gn as SSetManyEntityRelation, Go as ComponentSeoMeta, Gr as QueryStrapiSearchClientMediaPlatforms, Gt as QueryStrapiSearchMediaContentTypes, H as SUpdateUserAccountLastName, Ha as CategoryDocument, Hi as TeamworkCompany, Hn as SDisconnectManyEntityRelation, Ho as ComponentBlockAnnouncementBar, Hr as SUpdateClientProjectDocumentRequest, Ht as SUpdateMediaCreativeFormatDocumentRequest, I as SResetUserPassword, Ia as BlogPostDocument, Ii as TeamworkProjectUpdate, In as VStringUrl, Io as ComponentBlockContact, Ir as ClientProjectSortKeys, Is as ClientEntityActions, It as SUpdateMediaPlatformDocumentRequest, J as SUpdateTrendsLikes, Ja as Slideshow, Ji as UtmMetaPageDocument, Jn as VRelationManyQuery, Jo as OpenGraph, Jr as SUpdateClientMediaPlatformDocumentRequest, Jt as SUpdateMediaContentTypeDocumentRequest, K as QueryStrapiUrlRedirectsByFrom, Ka as UtmSourceKey, Ki as TeamworkResponseMeta, Kn as SSetOneEntityRelation, Ko as MetaSocial, Kr as SCreateClientMediaPlatformDocument, Kt as SCreateMediaContentTypeDocument, L as SUserToken, La as TeamMemberDocument, Li as TeamworkProjectTaskStat, Ln as VStringUrlNoUtm, Lo as BlockButtonGroup, Lr as QuerySortClientProjects, Ls as ClientEntityKey, Lt as MediaCreativeFormatSortKeys, M as SForgotUserPassword, Ma as MediaPlatformDocument, Mi as TeamworkTag, Mn as VStringPhoneNullable, Mo as ComponentBlockFaq, Mr as QueryStrapiSearchClientReports, Ms as BaseDocument, Mt as QuerySortMediaPlatforms, N as SLoginUser, Na as MediaContentTypeDocument, Ni as TeamworkTagResponse, Nn as VStringShort, No as BlockCtaLink, Nr as SCreateClientReportDocument, Ns as CLIENT_ENTITY_KEYS, Nt as QueryStrapiSearchMediaPlatforms, O as SAuthConnectProviderConfirmation, Oa as ClientStyleguideDocument, Oi as TeamworkProjectResponseMeta, On as VStringMaxRegex, Oo as ComponentBlockFullscreenContent, Or as SUpdateClientStyleguideDocument, Os as StrapiLinkTarget, Ot as SCreateMondayWorkspaceDocument, P as SRegisterUser, Pa as MediaCreativeFormatDocument, Pi as TeamworkTagResponseMeta, Pn as VStringShortNullable, Po as ComponentBlockCtaLink, Pr as SUpdateClientReportDocument, Ps as CLIENT_ENTITY_PERMISSIONS, Pt as SCreateMediaPlatformDocument, Q as TeamworkProjectHealthProjectStatusOptions, Qa as SlideshowComponentProps, Qi as FAQPageDocument, Qn as QueryStrapiSearchContentPillars, Qo as ComponentSharedRichTextBlock, Qr as SCreateClientContentPillarDocument, Qt as EntitySortKeys, R as SReadUserAccountByDocumentId, Ra as TeamMemberGroup, Ri as TeamworkProjectCustomField, Rn as VStringUrlNullable, Ro as ComponentBlockButtonGroup, Rr as QueryStrapiSearchClientProjects, Rs as ClientEntityScope, Rt as QuerySortMediaCreativeFormat, S as SUtmLinkBuilderTableFormInput, Sa as UserDocument, Si as TeamworkTaskResponse, Sn as VSize, So as BlockPullQuote, Sr as SUpdateClientUserDocumentRequest, Ss as StrapiDirection, St as SCreateNewsletterSignupDocument, T as QueryStrapiUsersByIdentifier, Ta as RoleDocument, Ti as TeamworkTasksResponse, Tn as VStringLong, To as ComponentBlockGraphicImage, Tr as QuerySortClientStyleguides, Ts as StrapiIconPosition, Tt as MondayWorkspaceSortKeys, U as SUpdateUserAccountPreferredName, Ua as ComponentUtmOption, Ui as TeamworkActivePages, Un as SDisconnectOneEntityRelation, Uo as ComponentMetaSocial, Ur as ClientMediaPlatformSortKeys, Ut as MediaContentTypeSortKeys, V as SUpdateUserAccountFirstName, Va as TagDocument, Vi as TeamworkCurrency, Vn as SConnectOneEntityRelation, Vo as BlockAnnouncementBar, Vr as SUpdateClientProjectDocument, Vt as SUpdateMediaCreativeFormatDocument, W as QuerySortUrlRedirects, Wa as UtmClassificationKey, Wi as TeamworkLockdown, Wn as SEntityRelation, Wo as ComponentOpenGraph, Wr as QuerySortClientMediaPlatforms, Wt as QuerySortMediaContentType, X as QueryStrapiSearchTeamworkProjectHealth, Xa as SlideContent, Xi as PolicyPageDocument, Xn as ContentPillarSortKeys, Xo as ComponentSharedQuestionAnswer, Xr as QuerySortClientContentPillars, Xt as SUpdateLeadDocument, Y as QuerySortTeamworkProjectHealth, Ya as ComponentSlideContent, Yi as TeamPageDocument, Yn as VRelationOne, Yo as SeoMeta, Yr as ClientContentPillarSortKeys, Yt as SCreateLeadDocument, Z as TeamworkProjectHealthProjectStatus, Za as SlideType, Zi as LandingPageDocument, Zn as QuerySortContentPillars, Zo as SharedQuestionAnswer, Zr as QueryStrapiSearchClientContentPillars, Zt as SUpdateLeadRequest, _ as SUpdateUtmTrackingLinkDocumentRequest, _a as ClientUserDocument, _i as TeamworkTasklistResponse, _n as SUpdateGCFlyTourSnapDocument, _o as ComponentBrandStyleguideColor, _r as ClientUserSortKeys, _s as MediaFormat, _t as SUpdateResumeInfo, a as isStrapiAttributeError, aa as NewsletterSignupDocument, ai as SUpdateCategoryDocument, an as QueryStrapiBySlug, ao as SliderOrigin, ar as QueryStrapiCommentsInHeirarchy, as as SharedLink, at as QueryStrapiSearchTags, b as SUtmLinkBuilderPartCampaignDateValue, ba as UserAuthorizationLoginResponse, bi as TeamworkTask, bn as VNumberNullable, bo as BlockSectionTitle, br as SQueryListClientUserDocuments, bs as FormSelectInputOption, bt as checkIsValidUrlList, c as dateToday, ca as CommentReportDocument, ci as QuerySortBlogPosts, cn as QuerySortGCFlyTours, co as ComponentFormSelect, cr as SReportCommentDocument, cs as StrapiAttributeErrorResponse, ct as SUpdateTagDocumentRequest, d as SCreateUtmTrackingLinkDocument, da as ClientDocument, di as canAssignPermission, dn as SUpdateGCFlyTourDocument, do as ComponentFormDownload, dr as ClientSortKeys, ds as StrapiErrorResult, dt as SCreateStrapiMediaUploadDocument, ea as BlogPageDocument, ei as SUpdateClientContentPillarDocumentRequest, en as QueryStrapiByDocumentId, eo as ComponentSlideshowSettings, er as SUpdateContentPillarDocument, es as RichTextBlockChildren, et as TeamworkProjectHealthSortKey, f as SCreateUtmTrackingLinkDocumentRequest, fa as ProductHighlightDocument, fi as hasPermission, fn as SUpdateGCFlyTourDocumentRequest, fo as FormDownload, fr as QuerySortClients, fs as StrapiListResponse, ft as SUpdateStrapiMediaFileInfo, g as SUpdateUtmTrackingLinkDocument, ga as GCFlyTourSnapDocument, gi as TeamworkTasklist, gn as SCreateGCFlyTourSnapDocument, go as BrandStyleguideColor, gr as SUpdateClientDocumentRequest, gs as StrapiSingleResponse, gt as SCreateResumeInfoDocument, h as SReadUtmTrackingLinkDocumentByUrl, ha as GCFlyTourDocument, hi as RolesWithPermissions, hn as QueryStrapiSearchGCFlyTourSnaps, ho as ComponentBrandStyleguideFont, hr as SUpdateClientDocument, hs as StrapiResponseMetaWithPagination, ht as SCreateResumeInfo, i as validateAndClean, ia as ResumeDocument, ii as SCreateCategoryDocument, in as QueryStrapiByPhone, io as SliderBreakpoint, ir as QueryStrapiCommentsFlat, is as ComponentSharedLink, it as QuerySortTags, j as SChangePassword, ja as ClientMediaPlatformDocument, ji as TeamworkUserAccount, jn as VStringPhone, jo as BlockFaq, jr as QuerySortClientReports, js as StrapiThemeOptions, jt as MediaPlatformSortKeys, k as SAuthConnectProviderRedirectSearch, ka as ClientReportDocument, ki as TeamworkProjectsResponse, kn as VStringMinMax, ko as BlockVideoEmbed, kr as SUpdateClientStyleguideDocumentRequest, ks as StrapiLinkType, kt as SUpdateMondayWorkspaceDocument, l as QuerySortUtmTrackingLinks, la as ClientContentPillarDocument, li as QueryStrapiSearchBlogPosts, ln as QueryStrapiSearchGCFlyTours, lo as FormSelect, lr as SUpdateCommentDocument, ls as StrapiErrorDetail, lt as TagSortKeys, m as SFormCreateMultipleUtmTrackingLinkDocuments, ma as MondayWorkspaceDocument, mi as Permissions, mn as QuerySortGCFlyTourSnaps, mo as BrandStyleguideFont, mr as SCreateClientDocument, ms as StrapiResponseMeta, mt as SCreateResume, n as isValidationSuccess, na as UrlRedirectQueryParams, ni as QuerySortCategories, nn as QueryStrapiById, no as SlideshowSettings, nr as QueryFilterStrapiComments, ns as ComponentSharedButton, nt as QueryStrapiSearchTeamMembers, o as isStrapiStandardError, oa as LeadDocument, oi as SUpdateCategoryDocumentRequest, on as QueryStrapiPaginated, oo as SliderSettings, or as SCreateCommentDocument, os as StrapiAttributeErrorDetail, ot as SCreateTagDocument, p as SCreateUtmTrackingLinkParts, pa as ProductDocument, pi as LCRUDActions, pn as GCFlyTourSnapSortKeys, po as FormDownloadKeys, pr as QueryStrapiSearchClients, ps as StrapiPagination, pt as SharpSpringSignUpToDownload, q as UrlRedirectSortKeys, qa as ComponentSlideshow, qi as TeamworkResponseMetaPagination, qn as VRelationMany, qo as MetaSocialNetwork, qr as SUpdateClientMediaPlatformDocument, qt as SUpdateMediaContentTypeDocument, r as omitUndefined, ra as UrlRedirectStatusCode, ri as QueryStrapiSearchCategories, rn as QueryStrapiByName, ro as ComponentSliderSettings, rr as QuerySortStrapiComments, rs as SharedButton, rt as TeamMemberSortKeys, s as datePlusDays, sa as CommentDocument, si as BlogPostSortKeys, sn as GCFlyTourSortKeys, so as SliderSpacing, sr as SDeleteCommentDocument, ss as StrapiAttributeErrorKey, st as SUpdateTagDocument, t as isValidationFailure, ta as UrlRedirectDocument, ti as CategorySortKeys, tn as QueryStrapiByEmail, to as SlideshowMode, tr as SUpdateContentPillarDocumentRequest, ts as SharedRichTextBlock, tt as QuerySortTeamMembers, u as QueryStrapiSearchUtmTrackingLinks, ua as ContentPillarDocument, ui as QueryStrapiSearchBlogPostsBySlug, un as SCreateGCFlyTourDocument, uo as FormUID, ur as StrapiCommentSortKeys, us as StrapiErrorResponse, ut as SCreateMultipleStrapiMediaUploadDocument, v as UtmTrackingLinkSortKeys, va as ClientUserDocumentStatus, vi as TeamworkTasklistResponseMeta, vn as SUpdateGCFlyTourSnapDocumentRequest, vo as BlockTextDetails, vr as QuerySortClientUsers, vs as MediaFormats, vt as SUpdateResumeInfoDocument, w as QueryStrapiUsers, wa as UserAccountDocument, wi as TeamworkTaskUserPermissions, wn as VStringEmail, wo as BlockGraphicImage, wr as ClientStyleguideSortKeys, ws as StrapiIconName, wt as SUpdateNewsletterSignupRequest, x as SUtmLinkBuilderTableForm, xa as UserAuthorizationSuccessResponse, xi as TeamworkTaskCard, xn as VPage, xo as ComponentBlockSectionTitle, xr as SUpdateClientUserDocument, xs as StrapiBgColorOptions, xt as SCreateNewsletterSignup, y as SUtmLinkBuilderPartCampaignDateOptions, ya as AuthorizedUserDocument, yi as TeamworkTasklistsResponse, yn as VIntegerNullable, yo as ComponentBlockTextDetails, yr as SCreateClientUserDocument, ys as MediaUploadDocument, yt as SUpdateResumeInfoRequest, z as SReadUserAccountById, za as TeamMemberTier, zi as TeamworkProjectCategory, zn as VStringUrlUtm, zo as BlockBrandLogos, zr as SAssociateClientToClientProjectDocument, zs as ROLE_PERMISSIONS, zt as QueryStrapiSearchMediaCreativeFormats } from "./index-CbEgLM4o.cjs";
|
|
2
|
+
import { $ as TeamworkProjectHealthSelectSortOptions, $a as SlideshowComponentSlideSettings, $i as CareersPageDocument, $n as SCreateContentPillarDocument, $o as RichTextBlock, $r as SUpdateClientContentPillarDocument, $t as QuerySortGCFlyTours, A as SAuthRawAccessToken, Aa as ClientProjectDocument, Ai as TeamworkResponseMetaProjectStats, An as VStringUrlUtm, Ao as ComponentBlockVideo, Ar as ClientReportSortKeys, As as StrapiTextColorOptions, At as SUpdateMondayWorkspaceDocumentRequest, B as SUpdateUserAccount, Ba as TrendDocument, Bi as TeamworkCustomField, Bn as VRelationOne, Bo as ComponentBlockBrandLogos, Br as SCreateClientProjectDocument, Bt as SCreateMediaCreativeFormatDocument, C as QuerySortUsers, Ca as UtmTrackingLinkDocument, Ci as TeamworkTaskResponseMeta, Cn as VStringPhoneNullable, Co as ComponentBlockPullQuote, Cr as SVerifyClientUserDocument, Cs as StrapiGapSizes, Ct as SUpdateNewsletterSignupDocument, D as UserSortKeys, Da as PermissionDocument, Di as TeamworkProjectResponse, Dn as VStringUrl, Do as BlockFullscreenContentType, Dr as SCreateClientStyleguideDocument, Ds as StrapiLinkRel, Dt as QueryStrapiSearchMondayWorkspaces, E as SCreateUserDocument, Ea as RoleType, Ei as TeamworkProject, En as VStringSlug, Eo as BlockFullscreenContent, Er as QueryStrapiSearchClientStyleguide, Es as StrapiLinkReferrerPolicy, Et as QuerySortMondayWorkspaces, F as SRequestConfirmEmail, Fa as BlogPostBlock, Fi as TeamworkTagsResponse, Fn as SEntityRelation, Fo as BlockContact, Fr as SUpdateClientReportDocumentRequest, Fs as CLIENT_ENTITY_SCOPES, Ft as SUpdateMediaPlatformDocument, G as QueryStrapiPaginatedUrlRedirects, Ga as UtmOption, Gi as TeamworkRelatedMeta, Gn as QueryStrapiById, Go as ComponentSeoMeta, Gr as QueryStrapiSearchClientMediaPlatforms, Gt as QueryStrapiSearchMediaContentTypes, H as SUpdateUserAccountLastName, Ha as CategoryDocument, Hi as TeamworkCompany, Hn as QuerySortEntities, Ho as ComponentBlockAnnouncementBar, Hr as SUpdateClientProjectDocumentRequest, Ht as SUpdateMediaCreativeFormatDocumentRequest, I as SResetUserPassword, Ia as BlogPostDocument, Ii as TeamworkProjectUpdate, In as SSetManyEntityRelation, Io as ComponentBlockContact, Ir as ClientProjectSortKeys, Is as ClientEntityActions, It as SUpdateMediaPlatformDocumentRequest, J as SUpdateTrendsLikes, Ja as Slideshow, Ji as UtmMetaPageDocument, Jn as QueryStrapiBySlug, Jo as OpenGraph, Jr as SUpdateClientMediaPlatformDocumentRequest, Jt as SUpdateMediaContentTypeDocumentRequest, K as QueryStrapiUrlRedirectsByFrom, Ka as UtmSourceKey, Ki as TeamworkResponseMeta, Kn as QueryStrapiByName, Ko as MetaSocial, Kr as SCreateClientMediaPlatformDocument, Kt as SCreateMediaContentTypeDocument, L as SUserToken, La as TeamMemberDocument, Li as TeamworkProjectTaskStat, Ln as SSetOneEntityRelation, Lo as BlockButtonGroup, Lr as QuerySortClientProjects, Ls as ClientEntityKey, Lt as MediaCreativeFormatSortKeys, M as SForgotUserPassword, Ma as MediaPlatformDocument, Mi as TeamworkTag, Mn as SConnectOneEntityRelation, Mo as ComponentBlockFaq, Mr as QueryStrapiSearchClientReports, Ms as BaseDocument, Mt as QuerySortMediaPlatforms, N as SLoginUser, Na as MediaContentTypeDocument, Ni as TeamworkTagResponse, Nn as SDisconnectManyEntityRelation, No as BlockCtaLink, Nr as SCreateClientReportDocument, Ns as CLIENT_ENTITY_KEYS, Nt as QueryStrapiSearchMediaPlatforms, O as SAuthConnectProviderConfirmation, Oa as ClientStyleguideDocument, Oi as TeamworkProjectResponseMeta, On as VStringUrlNoUtm, Oo as ComponentBlockFullscreenContent, Or as SUpdateClientStyleguideDocument, Os as StrapiLinkTarget, Ot as SCreateMondayWorkspaceDocument, P as SRegisterUser, Pa as MediaCreativeFormatDocument, Pi as TeamworkTagResponseMeta, Pn as SDisconnectOneEntityRelation, Po as ComponentBlockCtaLink, Pr as SUpdateClientReportDocument, Ps as CLIENT_ENTITY_PERMISSIONS, Pt as SCreateMediaPlatformDocument, Q as TeamworkProjectHealthProjectStatusOptions, Qa as SlideshowComponentProps, Qi as FAQPageDocument, Qn as QueryStrapiSearchContentPillars, Qo as ComponentSharedRichTextBlock, Qr as SCreateClientContentPillarDocument, Qt as GCFlyTourSortKeys, R as SReadUserAccountByDocumentId, Ra as TeamMemberGroup, Ri as TeamworkProjectCustomField, Rn as VRelationMany, Ro as ComponentBlockButtonGroup, Rr as QueryStrapiSearchClientProjects, Rs as ClientEntityScope, Rt as QuerySortMediaCreativeFormat, S as SUtmLinkBuilderTableFormInput, Sa as UserDocument, Si as TeamworkTaskResponse, Sn as VStringPhone, So as BlockPullQuote, Sr as SUpdateClientUserDocumentRequest, Ss as StrapiDirection, St as SCreateNewsletterSignupDocument, T as QueryStrapiUsersByIdentifier, Ta as RoleDocument, Ti as TeamworkTasksResponse, Tn as VStringShortNullable, To as ComponentBlockGraphicImage, Tr as QuerySortClientStyleguides, Ts as StrapiIconPosition, Tt as MondayWorkspaceSortKeys, U as SUpdateUserAccountPreferredName, Ua as ComponentUtmOption, Ui as TeamworkActivePages, Un as QueryStrapiByDocumentId, Uo as ComponentMetaSocial, Ur as ClientMediaPlatformSortKeys, Ut as MediaContentTypeSortKeys, V as SUpdateUserAccountFirstName, Va as TagDocument, Vi as TeamworkCurrency, Vn as EntitySortKeys, Vo as BlockAnnouncementBar, Vr as SUpdateClientProjectDocument, Vt as SUpdateMediaCreativeFormatDocument, W as QuerySortUrlRedirects, Wa as UtmClassificationKey, Wi as TeamworkLockdown, Wn as QueryStrapiByEmail, Wo as ComponentOpenGraph, Wr as QuerySortClientMediaPlatforms, Wt as QuerySortMediaContentType, X as QueryStrapiSearchTeamworkProjectHealth, Xa as SlideContent, Xi as PolicyPageDocument, Xn as ContentPillarSortKeys, Xo as ComponentSharedQuestionAnswer, Xr as QuerySortClientContentPillars, Xt as SUpdateLeadDocument, Y as QuerySortTeamworkProjectHealth, Ya as ComponentSlideContent, Yi as TeamPageDocument, Yn as QueryStrapiPaginated, Yo as SeoMeta, Yr as ClientContentPillarSortKeys, Yt as SCreateLeadDocument, Z as TeamworkProjectHealthProjectStatus, Za as SlideType, Zi as LandingPageDocument, Zn as QuerySortContentPillars, Zo as SharedQuestionAnswer, Zr as QueryStrapiSearchClientContentPillars, Zt as SUpdateLeadRequest, _ as SUpdateUtmTrackingLinkDocumentRequest, _a as ClientUserDocument, _i as TeamworkTasklistResponse, _n as VStringLongNullable, _o as ComponentBrandStyleguideColor, _r as ClientUserSortKeys, _s as MediaFormat, _t as SUpdateResumeInfo, a as isStrapiAttributeError, aa as NewsletterSignupDocument, ai as SUpdateCategoryDocument, an as QuerySortGCFlyTourSnaps, ao as SliderOrigin, ar as QueryStrapiCommentsInHeirarchy, as as SharedLink, at as QueryStrapiSearchTags, b as SUtmLinkBuilderPartCampaignDateValue, ba as UserAuthorizationLoginResponse, bi as TeamworkTask, bn as VStringMinMax, bo as BlockSectionTitle, br as SQueryListClientUserDocuments, bs as FormSelectInputOption, bt as checkIsValidUrlList, c as dateToday, ca as CommentReportDocument, ci as QuerySortBlogPosts, cn as SUpdateGCFlyTourSnapDocument, co as ComponentFormSelect, cr as SReportCommentDocument, cs as StrapiAttributeErrorResponse, ct as SUpdateTagDocumentRequest, d as SCreateUtmTrackingLinkDocument, da as ClientDocument, di as canAssignPermission, dn as VNumberNullable, do as ComponentFormDownload, dr as ClientSortKeys, ds as StrapiErrorResult, dt as SCreateStrapiMediaUploadDocument, ea as BlogPageDocument, ei as SUpdateClientContentPillarDocumentRequest, en as QueryStrapiSearchGCFlyTours, eo as ComponentSlideshowSettings, er as SUpdateContentPillarDocument, es as RichTextBlockChildren, et as TeamworkProjectHealthSortKey, f as SCreateUtmTrackingLinkDocumentRequest, fa as ProductHighlightDocument, fi as hasPermission, fn as VPage, fo as FormDownload, fr as QuerySortClients, fs as StrapiListResponse, ft as SUpdateStrapiMediaFileInfo, g as SUpdateUtmTrackingLinkDocument, ga as GCFlyTourSnapDocument, gi as TeamworkTasklist, gn as VStringLong, go as BrandStyleguideColor, gr as SUpdateClientDocumentRequest, gs as StrapiSingleResponse, gt as SCreateResumeInfoDocument, h as SReadUtmTrackingLinkDocumentByUrl, ha as GCFlyTourDocument, hi as RolesWithPermissions, hn as VStringEmail, ho as ComponentBrandStyleguideFont, hr as SUpdateClientDocument, hs as StrapiResponseMetaWithPagination, ht as SCreateResumeInfo, i as validateAndClean, ia as ResumeDocument, ii as SCreateCategoryDocument, in as GCFlyTourSnapSortKeys, io as SliderBreakpoint, ir as QueryStrapiCommentsFlat, is as ComponentSharedLink, it as QuerySortTags, j as SChangePassword, ja as ClientMediaPlatformDocument, ji as TeamworkUserAccount, jn as SConnectManyEntityRelation, jo as BlockFaq, jr as QuerySortClientReports, js as StrapiThemeOptions, jt as MediaPlatformSortKeys, k as SAuthConnectProviderRedirectSearch, ka as ClientReportDocument, ki as TeamworkProjectsResponse, kn as VStringUrlNullable, ko as BlockVideoEmbed, kr as SUpdateClientStyleguideDocumentRequest, ks as StrapiLinkType, kt as SUpdateMondayWorkspaceDocument, l as QuerySortUtmTrackingLinks, la as ClientContentPillarDocument, li as QueryStrapiSearchBlogPosts, ln as SUpdateGCFlyTourSnapDocumentRequest, lo as FormSelect, lr as SUpdateCommentDocument, ls as StrapiErrorDetail, lt as TagSortKeys, m as SFormCreateMultipleUtmTrackingLinkDocuments, ma as MondayWorkspaceDocument, mi as Permissions, mn as VString, mo as BrandStyleguideFont, mr as SCreateClientDocument, ms as StrapiResponseMeta, mt as SCreateResume, n as isValidationSuccess, na as UrlRedirectQueryParams, ni as QuerySortCategories, nn as SUpdateGCFlyTourDocument, no as SlideshowSettings, nr as QueryFilterStrapiComments, ns as ComponentSharedButton, nt as QueryStrapiSearchTeamMembers, o as isStrapiStandardError, oa as LeadDocument, oi as SUpdateCategoryDocumentRequest, on as QueryStrapiSearchGCFlyTourSnaps, oo as SliderSettings, or as SCreateCommentDocument, os as StrapiAttributeErrorDetail, ot as SCreateTagDocument, p as SCreateUtmTrackingLinkParts, pa as ProductDocument, pi as LCRUDActions, pn as VSize, po as FormDownloadKeys, pr as QueryStrapiSearchClients, ps as StrapiPagination, pt as SharpSpringSignUpToDownload, q as UrlRedirectSortKeys, qa as ComponentSlideshow, qi as TeamworkResponseMetaPagination, qn as QueryStrapiByPhone, qo as MetaSocialNetwork, qr as SUpdateClientMediaPlatformDocument, qt as SUpdateMediaContentTypeDocument, r as omitUndefined, ra as UrlRedirectStatusCode, ri as QueryStrapiSearchCategories, rn as SUpdateGCFlyTourDocumentRequest, ro as ComponentSliderSettings, rr as QuerySortStrapiComments, rs as SharedButton, rt as TeamMemberSortKeys, s as datePlusDays, sa as CommentDocument, si as BlogPostSortKeys, sn as SCreateGCFlyTourSnapDocument, so as SliderSpacing, sr as SDeleteCommentDocument, ss as StrapiAttributeErrorKey, st as SUpdateTagDocument, t as isValidationFailure, ta as UrlRedirectDocument, ti as CategorySortKeys, tn as SCreateGCFlyTourDocument, to as SlideshowMode, tr as SUpdateContentPillarDocumentRequest, ts as SharedRichTextBlock, tt as QuerySortTeamMembers, u as QueryStrapiSearchUtmTrackingLinks, ua as ContentPillarDocument, ui as QueryStrapiSearchBlogPostsBySlug, un as VIntegerNullable, uo as FormUID, ur as StrapiCommentSortKeys, us as StrapiErrorResponse, ut as SCreateMultipleStrapiMediaUploadDocument, v as UtmTrackingLinkSortKeys, va as ClientUserDocumentStatus, vi as TeamworkTasklistResponseMeta, vn as VStringMax, vo as BlockTextDetails, vr as QuerySortClientUsers, vs as MediaFormats, vt as SUpdateResumeInfoDocument, w as QueryStrapiUsers, wa as UserAccountDocument, wi as TeamworkTaskUserPermissions, wn as VStringShort, wo as BlockGraphicImage, wr as ClientStyleguideSortKeys, ws as StrapiIconName, wt as SUpdateNewsletterSignupRequest, x as SUtmLinkBuilderTableForm, xa as UserAuthorizationSuccessResponse, xi as TeamworkTaskCard, xn as VStringMinMaxRegex, xo as ComponentBlockSectionTitle, xr as SUpdateClientUserDocument, xs as StrapiBgColorOptions, xt as SCreateNewsletterSignup, y as SUtmLinkBuilderPartCampaignDateOptions, ya as AuthorizedUserDocument, yi as TeamworkTasklistsResponse, yn as VStringMaxRegex, yo as ComponentBlockTextDetails, yr as SCreateClientUserDocument, ys as MediaUploadDocument, yt as SUpdateResumeInfoRequest, z as SReadUserAccountById, za as TeamMemberTier, zi as TeamworkProjectCategory, zn as VRelationManyQuery, zo as BlockBrandLogos, zr as SAssociateClientToClientProjectDocument, zs as ROLE_PERMISSIONS, zt as QueryStrapiSearchMediaCreativeFormats } from "./index-DixG87wu.cjs";
|
|
3
3
|
export { AuthorizedUserDocument, BaseDocument, BlockAnnouncementBar, BlockBrandLogos, BlockButtonGroup, BlockContact, BlockCtaLink, BlockFaq, BlockFullscreenContent, BlockFullscreenContentType, BlockGraphicImage, BlockPullQuote, BlockSectionTitle, BlockTextDetails, BlockVideoEmbed, BlogPageDocument, BlogPostBlock, BlogPostDocument, BlogPostSortKeys, BrandStyleguideColor, BrandStyleguideFont, CLIENT_ENTITY_KEYS, CLIENT_ENTITY_PERMISSIONS, CLIENT_ENTITY_SCOPES, CareersPageDocument, CategoryDocument, CategorySortKeys, ClientContentPillarDocument, ClientContentPillarSortKeys, ClientDocument, ClientEntityActions, ClientEntityKey, ClientEntityScope, ClientMediaPlatformDocument, ClientMediaPlatformSortKeys, ClientProjectDocument, ClientProjectPhaseOptions, ClientProjectPhaseSelectOptions, ClientProjectSortKeys, ClientProjectStatusOptions, ClientReportDocument, ClientReportSortKeys, ClientSortKeys, ClientStyleguideDocument, ClientStyleguideSortKeys, ClientUserDocument, ClientUserDocumentStatus, ClientUserSortKeys, CommentApprovalStatus, CommentApprovalStatusOptions, 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, ContentPillarSortKeys, ERROR_MESSAGE_COMMA_SEPPARATED_URLS, ERROR_MESSAGE_INVALID_URL, ERROR_MESSAGE_ONE_PROJECT_STATUS, ERROR_MESSAGE_REGEX_PHONE, ERROR_MESSAGE_REGEX_URL_SLUG, ERROR_MESSAGE_REGEX_UTM_VALUE, ERROR_MESSAGE_ROBOT, ERROR_MESSAGE_URL_NO_QUERY_PARAMS, ERROR_MESSAGE_URL_PREFIX, ERROR_MESSAGE_UTM_URL, EntitySortKeys, FAQPageDocument, FormDownload, FormDownloadKeys, FormSelect, FormSelectInputOption, FormUID, GCFlyTourDocument, GCFlyTourSnapDocument, GCFlyTourSnapSortKeys, GCFlyTourSortKeys, IsValidClientClassificationSelectOptions, LCRUDActions, 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_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_MONDAY_WORKSPACE_PAGINATION_DEFAULT_SIZE, LIMIT_MONDAY_WORKSPACE_PAGINATION_MAX_SIZE, 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_SHORT_STRING_MAX_LENGTH, 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, LIMIT_VAL_10, LIMIT_VAL_100, LandingPageDocument, LeadDocument, MediaContentTypeDocument, MediaContentTypeSortKeys, MediaCreativeFormatDocument, MediaCreativeFormatSortKeys, MediaFormat, MediaFormats, MediaPlatformDocument, MediaPlatformSortKeys, MediaUploadDocument, MetaSocial, MetaSocialNetwork, MondayWorkspaceDocument, MondayWorkspaceSortKeys, NewsletterSignupDocument, OpenGraph, PermissionDocument, Permissions, PolicyPageDocument, ProductDocument, ProductHighlightDocument, QueryFilterStrapiComments, QuerySortBlogPosts, QuerySortCategories, QuerySortClientContentPillars, QuerySortClientMediaPlatforms, QuerySortClientProjects, QuerySortClientReports, QuerySortClientStyleguides, QuerySortClientUsers, QuerySortClients, QuerySortContentPillars, QuerySortEntities, QuerySortGCFlyTourSnaps, QuerySortGCFlyTours, QuerySortMediaContentType, QuerySortMediaCreativeFormat, QuerySortMediaPlatforms, QuerySortMondayWorkspaces, QuerySortStrapiComments, QuerySortTags, QuerySortTeamMembers, QuerySortTeamworkProjectHealth, QuerySortUrlRedirects, QuerySortUsers, QuerySortUtmTrackingLinks, QueryStrapiByDocumentId, QueryStrapiByEmail, QueryStrapiById, QueryStrapiByName, QueryStrapiByPhone, QueryStrapiBySlug, QueryStrapiCommentsFlat, QueryStrapiCommentsInHeirarchy, QueryStrapiPaginated, QueryStrapiPaginatedUrlRedirects, QueryStrapiSearchBlogPosts, QueryStrapiSearchBlogPostsBySlug, QueryStrapiSearchCategories, QueryStrapiSearchClientContentPillars, QueryStrapiSearchClientMediaPlatforms, QueryStrapiSearchClientProjects, QueryStrapiSearchClientReports, QueryStrapiSearchClientStyleguide, QueryStrapiSearchClients, QueryStrapiSearchContentPillars, QueryStrapiSearchGCFlyTourSnaps, QueryStrapiSearchGCFlyTours, QueryStrapiSearchMediaContentTypes, QueryStrapiSearchMediaCreativeFormats, QueryStrapiSearchMediaPlatforms, QueryStrapiSearchMondayWorkspaces, QueryStrapiSearchTags, QueryStrapiSearchTeamMembers, QueryStrapiSearchTeamworkProjectHealth, QueryStrapiSearchUtmTrackingLinks, QueryStrapiUrlRedirectsByFrom, QueryStrapiUsers, QueryStrapiUsersByIdentifier, REGEX_BRAND_COLOR_SLUG, REGEX_NANP_PHONE, REGEX_URL_SLUG, REGEX_UTM_VALUE, ROLE_PERMISSIONS, ReportCommentReason, ReportCommentReasonOptions, ResumeDocument, RichTextBlock, RichTextBlockChildren, RoleDocument, RoleType, RolesWithPermissions, SAssociateClientToClientProjectDocument, SAuthConnectProviderConfirmation, SAuthConnectProviderRedirectSearch, SAuthRawAccessToken, SChangePassword, SConnectManyEntityRelation, SConnectOneEntityRelation, SCreateCategoryDocument, SCreateClientContentPillarDocument, SCreateClientDocument, SCreateClientMediaPlatformDocument, SCreateClientProjectDocument, SCreateClientReportDocument, SCreateClientStyleguideDocument, SCreateClientUserDocument, SCreateCommentDocument, SCreateContentPillarDocument, SCreateGCFlyTourDocument, SCreateGCFlyTourSnapDocument, SCreateLeadDocument, SCreateMediaContentTypeDocument, SCreateMediaCreativeFormatDocument, SCreateMediaPlatformDocument, SCreateMondayWorkspaceDocument, SCreateMultipleStrapiMediaUploadDocument, SCreateNewsletterSignup, SCreateNewsletterSignupDocument, SCreateResume, SCreateResumeInfo, SCreateResumeInfoDocument, SCreateStrapiMediaUploadDocument, SCreateTagDocument, SCreateUserDocument, SCreateUtmTrackingLinkDocument, SCreateUtmTrackingLinkDocumentRequest, SCreateUtmTrackingLinkParts, SDeleteCommentDocument, SDisconnectManyEntityRelation, SDisconnectOneEntityRelation, SEntityRelation, SForgotUserPassword, SFormCreateMultipleUtmTrackingLinkDocuments, SLoginUser, SQueryListClientUserDocuments, SReadUserAccountByDocumentId, SReadUserAccountById, SReadUtmTrackingLinkDocumentByUrl, SRegisterUser, SReportCommentDocument, SRequestConfirmEmail, SResetUserPassword, SSetManyEntityRelation, SSetOneEntityRelation, SUpdateCategoryDocument, SUpdateCategoryDocumentRequest, SUpdateClientContentPillarDocument, SUpdateClientContentPillarDocumentRequest, SUpdateClientDocument, SUpdateClientDocumentRequest, SUpdateClientMediaPlatformDocument, SUpdateClientMediaPlatformDocumentRequest, SUpdateClientProjectDocument, SUpdateClientProjectDocumentRequest, SUpdateClientReportDocument, SUpdateClientReportDocumentRequest, SUpdateClientStyleguideDocument, SUpdateClientStyleguideDocumentRequest, SUpdateClientUserDocument, SUpdateClientUserDocumentRequest, SUpdateCommentDocument, SUpdateContentPillarDocument, SUpdateContentPillarDocumentRequest, SUpdateGCFlyTourDocument, SUpdateGCFlyTourDocumentRequest, SUpdateGCFlyTourSnapDocument, SUpdateGCFlyTourSnapDocumentRequest, SUpdateLeadDocument, SUpdateLeadRequest, SUpdateMediaContentTypeDocument, SUpdateMediaContentTypeDocumentRequest, SUpdateMediaCreativeFormatDocument, SUpdateMediaCreativeFormatDocumentRequest, SUpdateMediaPlatformDocument, SUpdateMediaPlatformDocumentRequest, SUpdateMondayWorkspaceDocument, SUpdateMondayWorkspaceDocumentRequest, SUpdateNewsletterSignupDocument, SUpdateNewsletterSignupRequest, SUpdateResumeInfo, SUpdateResumeInfoDocument, SUpdateResumeInfoRequest, SUpdateStrapiMediaFileInfo, SUpdateTagDocument, SUpdateTagDocumentRequest, SUpdateTrendsLikes, SUpdateUserAccount, SUpdateUserAccountFirstName, SUpdateUserAccountLastName, SUpdateUserAccountPreferredName, SUpdateUtmTrackingLinkDocument, SUpdateUtmTrackingLinkDocumentRequest, SUserToken, SUtmLinkBuilderPartCampaignDateOptions, SUtmLinkBuilderPartCampaignDateValue, SUtmLinkBuilderTableForm, SUtmLinkBuilderTableFormInput, SVerifyClientUserDocument, SeoMeta, SharedButton, SharedLink, SharedQuestionAnswer, SharedRichTextBlock, SharpSpringSignUpToDownload, SlideContent, SlideType, SliderBreakpoint, SliderOrigin, SliderSettings, SliderSpacing, Slideshow, SlideshowComponentProps, SlideshowComponentSlideSettings, SlideshowMode, SlideshowSettings, StrapiAttributeErrorDetail, StrapiAttributeErrorKey, StrapiAttributeErrorResponse, StrapiBgColorOptions, StrapiCommentSortKeys, StrapiDirection, StrapiErrorDetail, StrapiErrorResponse, StrapiErrorResult, StrapiGapSizes, StrapiIconName, StrapiIconPosition, StrapiLinkReferrerPolicy, StrapiLinkRel, StrapiLinkTarget, StrapiLinkType, StrapiListResponse, StrapiPagination, StrapiResponseMeta, StrapiResponseMetaWithPagination, StrapiSingleResponse, StrapiTextColorOptions, StrapiThemeOptions, TagDocument, TagSortKeys, TeamMemberDocument, TeamMemberGroup, TeamMemberSortKeys, TeamMemberTier, TeamPageDocument, TeamworkActivePages, TeamworkCompany, TeamworkCurrency, TeamworkCustomField, TeamworkLockdown, TeamworkProject, TeamworkProjectCategory, TeamworkProjectCustomField, TeamworkProjectHealthProjectStatus, TeamworkProjectHealthProjectStatusOptions, TeamworkProjectHealthSelectSortOptions, TeamworkProjectHealthSortKey, 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, UrlRedirectSortKeys, UrlRedirectStatusCode, UserAccountDocument, UserAuthorizationLoginResponse, UserAuthorizationSuccessResponse, UserDocument, UserSortKeys, UtmClassificationKey, UtmMetaPageDocument, UtmOption, UtmSourceKey, UtmTrackingLinkDocument, UtmTrackingLinkSortKeys, VIntegerNullable, VNumberNullable, VPage, VRelationMany, VRelationManyQuery, VRelationOne, VSize, VString, VStringEmail, VStringLong, VStringLongNullable, VStringMax, VStringMaxRegex, VStringMinMax, VStringMinMaxRegex, VStringPhone, VStringPhoneNullable, VStringShort, VStringShortNullable, VStringSlug, VStringUrl, VStringUrlNoUtm, VStringUrlNullable, VStringUrlUtm, ValidGcDesiredContentOptions, ValidGcServiceOptions, ValidGcVideoServiceOptions, ValidJobRoleGroup, ValidNumberOfEmployeeOptions, ValidRatingRange5, WebSafeFont, WebSafeFontDisplay, WebSafeFontMono, WebSafeFontSans, WebSafeFontSerif, canAssignPermission, checkIsValidUrlList, datePlusDays, dateToday, hasPermission, isStrapiAttributeError, isStrapiStandardError, isValidationFailure, isValidationSuccess, omitUndefined, validateAndClean };
|
package/dist/index.d.mts
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
import { $ as ERROR_MESSAGE_UTM_URL, $t as CommentApprovalStatusOptions, A as LIMIT_PRODUCT_HIGHLIGHT_PAGINATION_DEFAULT_SIZE, At as LIMIT_MIN_UTM_CONTENT, B as LIMIT_TEAM_MEMBER_PAGINATION_MAX_SIZE, Bt as LIMIT_VAL_100, C as LIMIT_CLIENT_STYLEGUIDE_PAGINATION_MAX_SIZE, Ct as LIMIT_MIN_FRAGMENT, D as LIMIT_MONDAY_WORKSPACE_PAGINATION_MAX_SIZE, Dt as LIMIT_MIN_QUERY, E as LIMIT_MONDAY_WORKSPACE_PAGINATION_DEFAULT_SIZE, Et as LIMIT_MIN_PHONE, F as LIMIT_REDIRECT_PAGINATION_MAX_SIZE, Ft as LIMIT_MIN_UTM_SOURCE, G as LIMIT_UTM_TRACKING_LINK_PAGINATION_DEFAULT_SIZE, Gt as ValidNumberOfEmployeeOptions, H as LIMIT_TREND_PAGINATION_MAX_SIZE, Ht as ValidGcServiceOptions, I as LIMIT_TABLE_PAGINATION_DEFAULT_SIZE, It as LIMIT_MIN_UTM_TERM, J as ERROR_MESSAGE_INVALID_URL, Jt as WebSafeFontDisplay, K as LIMIT_UTM_TRACKING_LINK_PAGINATION_MAX_SIZE, Kt as ValidRatingRange5, L as LIMIT_TAGS_DEFAULT_SIZE, Lt as LIMIT_MIN_VALUE, M as LIMIT_PRODUCT_PAGINATION_DEFAULT_SIZE, Mt as LIMIT_MIN_UTM_ID, N as LIMIT_PRODUCT_PAGINATION_MAX_SIZE, Nt as LIMIT_MIN_UTM_KEY, O as LIMIT_PAGINATION_DEFAULT_SIZE, Ot as LIMIT_MIN_USERNAME, P as LIMIT_REDIRECT_PAGINATION_DEFAULT_SIZE, Pt as LIMIT_MIN_UTM_MEDIUM, Q as ERROR_MESSAGE_URL_PREFIX, Qt as CommentApprovalStatus, R as LIMIT_TAGS_MAX_SIZE, Rt as LIMIT_SHORT_STRING_MAX_LENGTH, S as LIMIT_CLIENT_STYLEGUIDE_PAGINATION_DEFAULT_SIZE, St as LIMIT_MIN_EMAIL, T as LIMIT_CLIENT_USER_PAGINATION_MAX_SIZE_LIMIT, Tt as LIMIT_MIN_PATH, U as LIMIT_USER_PAGINATION_DEFAULT_SIZE, Ut as ValidGcVideoServiceOptions, V as LIMIT_TREND_PAGINATION_DEFAULT_SIZE, Vt as ValidGcDesiredContentOptions, W as LIMIT_USER_PAGINATION_MAX_SIZE, Wt as ValidJobRoleGroup, X as ERROR_MESSAGE_ROBOT, Xt as WebSafeFontSans, Y as ERROR_MESSAGE_ONE_PROJECT_STATUS, Yt as WebSafeFontMono, Z as ERROR_MESSAGE_URL_NO_QUERY_PARAMS, Zt as WebSafeFontSerif, _ as LIMIT_CLIENT_PAGINATION_MAX_SIZE, _t as LIMIT_MAX_UTM_SOURCE, a as REGEX_NANP_PHONE, an as ClientProjectStatusOptions, at as LIMIT_MAX_PASSWORD, b as LIMIT_CLIENT_REPORT_PAGINATION_DEFAULT_SIZE, bt as LIMIT_MIN_DESTINATION, c as LIMIT_BLOG_POST_PAGINATION_DEFAULT_SIZE, ct as LIMIT_MAX_PROVIDER, d as LIMIT_CATEGORIES_MAX_SIZE, dt as LIMIT_MAX_UTM_CAMPAIGN, en as ReportCommentReason, et as LIMIT_LONG_STRING_MAX_LENGTH, f as LIMIT_CLIENT_CONTENT_PILLAR_PAGINATION_DEFAULT_SIZE, ft as LIMIT_MAX_UTM_CONTENT, g as LIMIT_CLIENT_PAGINATION_DEFAULT_SIZE, gt as LIMIT_MAX_UTM_MEDIUM, h as LIMIT_CLIENT_MEDIA_PLATFORM_PAGINATION_MAX_SIZE, ht as LIMIT_MAX_UTM_KEY, i as REGEX_BRAND_COLOR_SLUG, in as ClientProjectPhaseSelectOptions, it as LIMIT_MAX_FRAGMENT, j as LIMIT_PRODUCT_HIGHLIGHT_PAGINATION_MAX_SIZE, jt as LIMIT_MIN_UTM_CREATIVE_FORMAT, k as LIMIT_PAGINATION_MAX_SIZE, kt as LIMIT_MIN_UTM_CAMPAIGN, l as LIMIT_BLOG_POST_PAGINATION_MAX_SIZE, lt as LIMIT_MAX_QUERY, m as LIMIT_CLIENT_MEDIA_PLATFORM_PAGINATION_DEFAULT_SIZE, mt as LIMIT_MAX_UTM_ID, n as ERROR_MESSAGE_REGEX_URL_SLUG, nn as IsValidClientClassificationSelectOptions, nt as LIMIT_MAX_DOMAIN, o as REGEX_URL_SLUG, ot as LIMIT_MAX_PATH, p as LIMIT_CLIENT_CONTENT_PILLAR_PAGINATION_MAX_SIZE, pt as LIMIT_MAX_UTM_CREATIVE_FORMAT, q as ERROR_MESSAGE_COMMA_SEPPARATED_URLS, qt as WebSafeFont, r as ERROR_MESSAGE_REGEX_UTM_VALUE, rn as ClientProjectPhaseOptions, rt as LIMIT_MAX_EMAIL, s as REGEX_UTM_VALUE, st as LIMIT_MAX_PHONE, t as ERROR_MESSAGE_REGEX_PHONE, tn as ReportCommentReasonOptions, tt as LIMIT_MAX_DESTINATION, u as LIMIT_CATEGORIES_DEFAULT_SIZE, ut as LIMIT_MAX_USERNAME, v as LIMIT_CLIENT_PROJECT_PAGINATION_DEFAULT_SIZE, vt as LIMIT_MAX_UTM_TERM, w as LIMIT_CLIENT_USER_PAGINATION_DEFAULT_SIZE_LIMIT, wt as LIMIT_MIN_PASSWORD, x as LIMIT_CLIENT_REPORT_PAGINATION_MAX_SIZE, xt as LIMIT_MIN_DOMAIN, y as LIMIT_CLIENT_PROJECT_PAGINATION_MAX_SIZE, yt as LIMIT_MEDIUM_STRING_MAX_LENGTH, z as LIMIT_TEAM_MEMBER_PAGINATION_DEFAULT_SIZE, zt as LIMIT_VAL_10 } from "./index-DOR_It7I.mjs";
|
|
2
|
-
import { $ as TeamworkProjectHealthSelectSortOptions, $a as SlideshowComponentSlideSettings, $i as CareersPageDocument, $n as SCreateContentPillarDocument, $o as RichTextBlock, $r as SUpdateClientContentPillarDocument, $t as QuerySortEntities, A as SAuthRawAccessToken, Aa as ClientProjectDocument, Ai as TeamworkResponseMetaProjectStats, An as VStringMinMaxRegex, Ao as ComponentBlockVideo, Ar as ClientReportSortKeys, As as StrapiTextColorOptions, At as SUpdateMondayWorkspaceDocumentRequest, B as SUpdateUserAccount, Ba as TrendDocument, Bi as TeamworkCustomField, Bn as SConnectManyEntityRelation, Bo as ComponentBlockBrandLogos, Br as SCreateClientProjectDocument, Bt as SCreateMediaCreativeFormatDocument, C as QuerySortUsers, Ca as UtmTrackingLinkDocument, Ci as TeamworkTaskResponseMeta, Cn as VString, Co as ComponentBlockPullQuote, Cr as SVerifyClientUserDocument, Cs as StrapiGapSizes, Ct as SUpdateNewsletterSignupDocument, D as UserSortKeys, Da as PermissionDocument, Di as TeamworkProjectResponse, Dn as VStringMax, Do as BlockFullscreenContentType, Dr as SCreateClientStyleguideDocument, Ds as StrapiLinkRel, Dt as QueryStrapiSearchMondayWorkspaces, E as SCreateUserDocument, Ea as RoleType, Ei as TeamworkProject, En as VStringLongNullable, Eo as BlockFullscreenContent, Er as QueryStrapiSearchClientStyleguide, Es as StrapiLinkReferrerPolicy, Et as QuerySortMondayWorkspaces, F as SRequestConfirmEmail, Fa as BlogPostBlock, Fi as TeamworkTagsResponse, Fn as VStringSlug, Fo as BlockContact, Fr as SUpdateClientReportDocumentRequest, Fs as CLIENT_ENTITY_SCOPES, Ft as SUpdateMediaPlatformDocument, G as QueryStrapiPaginatedUrlRedirects, Ga as UtmOption, Gi as TeamworkRelatedMeta, Gn as SSetManyEntityRelation, Go as ComponentSeoMeta, Gr as QueryStrapiSearchClientMediaPlatforms, Gt as QueryStrapiSearchMediaContentTypes, H as SUpdateUserAccountLastName, Ha as CategoryDocument, Hi as TeamworkCompany, Hn as SDisconnectManyEntityRelation, Ho as ComponentBlockAnnouncementBar, Hr as SUpdateClientProjectDocumentRequest, Ht as SUpdateMediaCreativeFormatDocumentRequest, I as SResetUserPassword, Ia as BlogPostDocument, Ii as TeamworkProjectUpdate, In as VStringUrl, Io as ComponentBlockContact, Ir as ClientProjectSortKeys, Is as ClientEntityActions, It as SUpdateMediaPlatformDocumentRequest, J as SUpdateTrendsLikes, Ja as Slideshow, Ji as UtmMetaPageDocument, Jn as VRelationManyQuery, Jo as OpenGraph, Jr as SUpdateClientMediaPlatformDocumentRequest, Jt as SUpdateMediaContentTypeDocumentRequest, K as QueryStrapiUrlRedirectsByFrom, Ka as UtmSourceKey, Ki as TeamworkResponseMeta, Kn as SSetOneEntityRelation, Ko as MetaSocial, Kr as SCreateClientMediaPlatformDocument, Kt as SCreateMediaContentTypeDocument, L as SUserToken, La as TeamMemberDocument, Li as TeamworkProjectTaskStat, Ln as VStringUrlNoUtm, Lo as BlockButtonGroup, Lr as QuerySortClientProjects, Ls as ClientEntityKey, Lt as MediaCreativeFormatSortKeys, M as SForgotUserPassword, Ma as MediaPlatformDocument, Mi as TeamworkTag, Mn as VStringPhoneNullable, Mo as ComponentBlockFaq, Mr as QueryStrapiSearchClientReports, Ms as BaseDocument, Mt as QuerySortMediaPlatforms, N as SLoginUser, Na as MediaContentTypeDocument, Ni as TeamworkTagResponse, Nn as VStringShort, No as BlockCtaLink, Nr as SCreateClientReportDocument, Ns as CLIENT_ENTITY_KEYS, Nt as QueryStrapiSearchMediaPlatforms, O as SAuthConnectProviderConfirmation, Oa as ClientStyleguideDocument, Oi as TeamworkProjectResponseMeta, On as VStringMaxRegex, Oo as ComponentBlockFullscreenContent, Or as SUpdateClientStyleguideDocument, Os as StrapiLinkTarget, Ot as SCreateMondayWorkspaceDocument, P as SRegisterUser, Pa as MediaCreativeFormatDocument, Pi as TeamworkTagResponseMeta, Pn as VStringShortNullable, Po as ComponentBlockCtaLink, Pr as SUpdateClientReportDocument, Ps as CLIENT_ENTITY_PERMISSIONS, Pt as SCreateMediaPlatformDocument, Q as TeamworkProjectHealthProjectStatusOptions, Qa as SlideshowComponentProps, Qi as FAQPageDocument, Qn as QueryStrapiSearchContentPillars, Qo as ComponentSharedRichTextBlock, Qr as SCreateClientContentPillarDocument, Qt as EntitySortKeys, R as SReadUserAccountByDocumentId, Ra as TeamMemberGroup, Ri as TeamworkProjectCustomField, Rn as VStringUrlNullable, Ro as ComponentBlockButtonGroup, Rr as QueryStrapiSearchClientProjects, Rs as ClientEntityScope, Rt as QuerySortMediaCreativeFormat, S as SUtmLinkBuilderTableFormInput, Sa as UserDocument, Si as TeamworkTaskResponse, Sn as VSize, So as BlockPullQuote, Sr as SUpdateClientUserDocumentRequest, Ss as StrapiDirection, St as SCreateNewsletterSignupDocument, T as QueryStrapiUsersByIdentifier, Ta as RoleDocument, Ti as TeamworkTasksResponse, Tn as VStringLong, To as ComponentBlockGraphicImage, Tr as QuerySortClientStyleguides, Ts as StrapiIconPosition, Tt as MondayWorkspaceSortKeys, U as SUpdateUserAccountPreferredName, Ua as ComponentUtmOption, Ui as TeamworkActivePages, Un as SDisconnectOneEntityRelation, Uo as ComponentMetaSocial, Ur as ClientMediaPlatformSortKeys, Ut as MediaContentTypeSortKeys, V as SUpdateUserAccountFirstName, Va as TagDocument, Vi as TeamworkCurrency, Vn as SConnectOneEntityRelation, Vo as BlockAnnouncementBar, Vr as SUpdateClientProjectDocument, Vt as SUpdateMediaCreativeFormatDocument, W as QuerySortUrlRedirects, Wa as UtmClassificationKey, Wi as TeamworkLockdown, Wn as SEntityRelation, Wo as ComponentOpenGraph, Wr as QuerySortClientMediaPlatforms, Wt as QuerySortMediaContentType, X as QueryStrapiSearchTeamworkProjectHealth, Xa as SlideContent, Xi as PolicyPageDocument, Xn as ContentPillarSortKeys, Xo as ComponentSharedQuestionAnswer, Xr as QuerySortClientContentPillars, Xt as SUpdateLeadDocument, Y as QuerySortTeamworkProjectHealth, Ya as ComponentSlideContent, Yi as TeamPageDocument, Yn as VRelationOne, Yo as SeoMeta, Yr as ClientContentPillarSortKeys, Yt as SCreateLeadDocument, Z as TeamworkProjectHealthProjectStatus, Za as SlideType, Zi as LandingPageDocument, Zn as QuerySortContentPillars, Zo as SharedQuestionAnswer, Zr as QueryStrapiSearchClientContentPillars, Zt as SUpdateLeadRequest, _ as SUpdateUtmTrackingLinkDocumentRequest, _a as ClientUserDocument, _i as TeamworkTasklistResponse, _n as SUpdateGCFlyTourSnapDocument, _o as ComponentBrandStyleguideColor, _r as ClientUserSortKeys, _s as MediaFormat, _t as SUpdateResumeInfo, a as isStrapiAttributeError, aa as NewsletterSignupDocument, ai as SUpdateCategoryDocument, an as QueryStrapiBySlug, ao as SliderOrigin, ar as QueryStrapiCommentsInHeirarchy, as as SharedLink, at as QueryStrapiSearchTags, b as SUtmLinkBuilderPartCampaignDateValue, ba as UserAuthorizationLoginResponse, bi as TeamworkTask, bn as VNumberNullable, bo as BlockSectionTitle, br as SQueryListClientUserDocuments, bs as FormSelectInputOption, bt as checkIsValidUrlList, c as dateToday, ca as CommentReportDocument, ci as QuerySortBlogPosts, cn as QuerySortGCFlyTours, co as ComponentFormSelect, cr as SReportCommentDocument, cs as StrapiAttributeErrorResponse, ct as SUpdateTagDocumentRequest, d as SCreateUtmTrackingLinkDocument, da as ClientDocument, di as canAssignPermission, dn as SUpdateGCFlyTourDocument, do as ComponentFormDownload, dr as ClientSortKeys, ds as StrapiErrorResult, dt as SCreateStrapiMediaUploadDocument, ea as BlogPageDocument, ei as SUpdateClientContentPillarDocumentRequest, en as QueryStrapiByDocumentId, eo as ComponentSlideshowSettings, er as SUpdateContentPillarDocument, es as RichTextBlockChildren, et as TeamworkProjectHealthSortKey, f as SCreateUtmTrackingLinkDocumentRequest, fa as ProductHighlightDocument, fi as hasPermission, fn as SUpdateGCFlyTourDocumentRequest, fo as FormDownload, fr as QuerySortClients, fs as StrapiListResponse, ft as SUpdateStrapiMediaFileInfo, g as SUpdateUtmTrackingLinkDocument, ga as GCFlyTourSnapDocument, gi as TeamworkTasklist, gn as SCreateGCFlyTourSnapDocument, go as BrandStyleguideColor, gr as SUpdateClientDocumentRequest, gs as StrapiSingleResponse, gt as SCreateResumeInfoDocument, h as SReadUtmTrackingLinkDocumentByUrl, ha as GCFlyTourDocument, hi as RolesWithPermissions, hn as QueryStrapiSearchGCFlyTourSnaps, ho as ComponentBrandStyleguideFont, hr as SUpdateClientDocument, hs as StrapiResponseMetaWithPagination, ht as SCreateResumeInfo, i as validateAndClean, ia as ResumeDocument, ii as SCreateCategoryDocument, in as QueryStrapiByPhone, io as SliderBreakpoint, ir as QueryStrapiCommentsFlat, is as ComponentSharedLink, it as QuerySortTags, j as SChangePassword, ja as ClientMediaPlatformDocument, ji as TeamworkUserAccount, jn as VStringPhone, jo as BlockFaq, jr as QuerySortClientReports, js as StrapiThemeOptions, jt as MediaPlatformSortKeys, k as SAuthConnectProviderRedirectSearch, ka as ClientReportDocument, ki as TeamworkProjectsResponse, kn as VStringMinMax, ko as BlockVideoEmbed, kr as SUpdateClientStyleguideDocumentRequest, ks as StrapiLinkType, kt as SUpdateMondayWorkspaceDocument, l as QuerySortUtmTrackingLinks, la as ClientContentPillarDocument, li as QueryStrapiSearchBlogPosts, ln as QueryStrapiSearchGCFlyTours, lo as FormSelect, lr as SUpdateCommentDocument, ls as StrapiErrorDetail, lt as TagSortKeys, m as SFormCreateMultipleUtmTrackingLinkDocuments, ma as MondayWorkspaceDocument, mi as Permissions, mn as QuerySortGCFlyTourSnaps, mo as BrandStyleguideFont, mr as SCreateClientDocument, ms as StrapiResponseMeta, mt as SCreateResume, n as isValidationSuccess, na as UrlRedirectQueryParams, ni as QuerySortCategories, nn as QueryStrapiById, no as SlideshowSettings, nr as QueryFilterStrapiComments, ns as ComponentSharedButton, nt as QueryStrapiSearchTeamMembers, o as isStrapiStandardError, oa as LeadDocument, oi as SUpdateCategoryDocumentRequest, on as QueryStrapiPaginated, oo as SliderSettings, or as SCreateCommentDocument, os as StrapiAttributeErrorDetail, ot as SCreateTagDocument, p as SCreateUtmTrackingLinkParts, pa as ProductDocument, pi as LCRUDActions, pn as GCFlyTourSnapSortKeys, po as FormDownloadKeys, pr as QueryStrapiSearchClients, ps as StrapiPagination, pt as SharpSpringSignUpToDownload, q as UrlRedirectSortKeys, qa as ComponentSlideshow, qi as TeamworkResponseMetaPagination, qn as VRelationMany, qo as MetaSocialNetwork, qr as SUpdateClientMediaPlatformDocument, qt as SUpdateMediaContentTypeDocument, r as omitUndefined, ra as UrlRedirectStatusCode, ri as QueryStrapiSearchCategories, rn as QueryStrapiByName, ro as ComponentSliderSettings, rr as QuerySortStrapiComments, rs as SharedButton, rt as TeamMemberSortKeys, s as datePlusDays, sa as CommentDocument, si as BlogPostSortKeys, sn as GCFlyTourSortKeys, so as SliderSpacing, sr as SDeleteCommentDocument, ss as StrapiAttributeErrorKey, st as SUpdateTagDocument, t as isValidationFailure, ta as UrlRedirectDocument, ti as CategorySortKeys, tn as QueryStrapiByEmail, to as SlideshowMode, tr as SUpdateContentPillarDocumentRequest, ts as SharedRichTextBlock, tt as QuerySortTeamMembers, u as QueryStrapiSearchUtmTrackingLinks, ua as ContentPillarDocument, ui as QueryStrapiSearchBlogPostsBySlug, un as SCreateGCFlyTourDocument, uo as FormUID, ur as StrapiCommentSortKeys, us as StrapiErrorResponse, ut as SCreateMultipleStrapiMediaUploadDocument, v as UtmTrackingLinkSortKeys, va as ClientUserDocumentStatus, vi as TeamworkTasklistResponseMeta, vn as SUpdateGCFlyTourSnapDocumentRequest, vo as BlockTextDetails, vr as QuerySortClientUsers, vs as MediaFormats, vt as SUpdateResumeInfoDocument, w as QueryStrapiUsers, wa as UserAccountDocument, wi as TeamworkTaskUserPermissions, wn as VStringEmail, wo as BlockGraphicImage, wr as ClientStyleguideSortKeys, ws as StrapiIconName, wt as SUpdateNewsletterSignupRequest, x as SUtmLinkBuilderTableForm, xa as UserAuthorizationSuccessResponse, xi as TeamworkTaskCard, xn as VPage, xo as ComponentBlockSectionTitle, xr as SUpdateClientUserDocument, xs as StrapiBgColorOptions, xt as SCreateNewsletterSignup, y as SUtmLinkBuilderPartCampaignDateOptions, ya as AuthorizedUserDocument, yi as TeamworkTasklistsResponse, yn as VIntegerNullable, yo as ComponentBlockTextDetails, yr as SCreateClientUserDocument, ys as MediaUploadDocument, yt as SUpdateResumeInfoRequest, z as SReadUserAccountById, za as TeamMemberTier, zi as TeamworkProjectCategory, zn as VStringUrlUtm, zo as BlockBrandLogos, zr as SAssociateClientToClientProjectDocument, zs as ROLE_PERMISSIONS, zt as QueryStrapiSearchMediaCreativeFormats } from "./index-CFwPiPyQ.mjs";
|
|
2
|
+
import { $ as TeamworkProjectHealthSelectSortOptions, $a as SlideshowComponentSlideSettings, $i as CareersPageDocument, $n as SCreateContentPillarDocument, $o as RichTextBlock, $r as SUpdateClientContentPillarDocument, $t as QuerySortGCFlyTours, A as SAuthRawAccessToken, Aa as ClientProjectDocument, Ai as TeamworkResponseMetaProjectStats, An as VStringUrlUtm, Ao as ComponentBlockVideo, Ar as ClientReportSortKeys, As as StrapiTextColorOptions, At as SUpdateMondayWorkspaceDocumentRequest, B as SUpdateUserAccount, Ba as TrendDocument, Bi as TeamworkCustomField, Bn as VRelationOne, Bo as ComponentBlockBrandLogos, Br as SCreateClientProjectDocument, Bt as SCreateMediaCreativeFormatDocument, C as QuerySortUsers, Ca as UtmTrackingLinkDocument, Ci as TeamworkTaskResponseMeta, Cn as VStringPhoneNullable, Co as ComponentBlockPullQuote, Cr as SVerifyClientUserDocument, Cs as StrapiGapSizes, Ct as SUpdateNewsletterSignupDocument, D as UserSortKeys, Da as PermissionDocument, Di as TeamworkProjectResponse, Dn as VStringUrl, Do as BlockFullscreenContentType, Dr as SCreateClientStyleguideDocument, Ds as StrapiLinkRel, Dt as QueryStrapiSearchMondayWorkspaces, E as SCreateUserDocument, Ea as RoleType, Ei as TeamworkProject, En as VStringSlug, Eo as BlockFullscreenContent, Er as QueryStrapiSearchClientStyleguide, Es as StrapiLinkReferrerPolicy, Et as QuerySortMondayWorkspaces, F as SRequestConfirmEmail, Fa as BlogPostBlock, Fi as TeamworkTagsResponse, Fn as SEntityRelation, Fo as BlockContact, Fr as SUpdateClientReportDocumentRequest, Fs as CLIENT_ENTITY_SCOPES, Ft as SUpdateMediaPlatformDocument, G as QueryStrapiPaginatedUrlRedirects, Ga as UtmOption, Gi as TeamworkRelatedMeta, Gn as QueryStrapiById, Go as ComponentSeoMeta, Gr as QueryStrapiSearchClientMediaPlatforms, Gt as QueryStrapiSearchMediaContentTypes, H as SUpdateUserAccountLastName, Ha as CategoryDocument, Hi as TeamworkCompany, Hn as QuerySortEntities, Ho as ComponentBlockAnnouncementBar, Hr as SUpdateClientProjectDocumentRequest, Ht as SUpdateMediaCreativeFormatDocumentRequest, I as SResetUserPassword, Ia as BlogPostDocument, Ii as TeamworkProjectUpdate, In as SSetManyEntityRelation, Io as ComponentBlockContact, Ir as ClientProjectSortKeys, Is as ClientEntityActions, It as SUpdateMediaPlatformDocumentRequest, J as SUpdateTrendsLikes, Ja as Slideshow, Ji as UtmMetaPageDocument, Jn as QueryStrapiBySlug, Jo as OpenGraph, Jr as SUpdateClientMediaPlatformDocumentRequest, Jt as SUpdateMediaContentTypeDocumentRequest, K as QueryStrapiUrlRedirectsByFrom, Ka as UtmSourceKey, Ki as TeamworkResponseMeta, Kn as QueryStrapiByName, Ko as MetaSocial, Kr as SCreateClientMediaPlatformDocument, Kt as SCreateMediaContentTypeDocument, L as SUserToken, La as TeamMemberDocument, Li as TeamworkProjectTaskStat, Ln as SSetOneEntityRelation, Lo as BlockButtonGroup, Lr as QuerySortClientProjects, Ls as ClientEntityKey, Lt as MediaCreativeFormatSortKeys, M as SForgotUserPassword, Ma as MediaPlatformDocument, Mi as TeamworkTag, Mn as SConnectOneEntityRelation, Mo as ComponentBlockFaq, Mr as QueryStrapiSearchClientReports, Ms as BaseDocument, Mt as QuerySortMediaPlatforms, N as SLoginUser, Na as MediaContentTypeDocument, Ni as TeamworkTagResponse, Nn as SDisconnectManyEntityRelation, No as BlockCtaLink, Nr as SCreateClientReportDocument, Ns as CLIENT_ENTITY_KEYS, Nt as QueryStrapiSearchMediaPlatforms, O as SAuthConnectProviderConfirmation, Oa as ClientStyleguideDocument, Oi as TeamworkProjectResponseMeta, On as VStringUrlNoUtm, Oo as ComponentBlockFullscreenContent, Or as SUpdateClientStyleguideDocument, Os as StrapiLinkTarget, Ot as SCreateMondayWorkspaceDocument, P as SRegisterUser, Pa as MediaCreativeFormatDocument, Pi as TeamworkTagResponseMeta, Pn as SDisconnectOneEntityRelation, Po as ComponentBlockCtaLink, Pr as SUpdateClientReportDocument, Ps as CLIENT_ENTITY_PERMISSIONS, Pt as SCreateMediaPlatformDocument, Q as TeamworkProjectHealthProjectStatusOptions, Qa as SlideshowComponentProps, Qi as FAQPageDocument, Qn as QueryStrapiSearchContentPillars, Qo as ComponentSharedRichTextBlock, Qr as SCreateClientContentPillarDocument, Qt as GCFlyTourSortKeys, R as SReadUserAccountByDocumentId, Ra as TeamMemberGroup, Ri as TeamworkProjectCustomField, Rn as VRelationMany, Ro as ComponentBlockButtonGroup, Rr as QueryStrapiSearchClientProjects, Rs as ClientEntityScope, Rt as QuerySortMediaCreativeFormat, S as SUtmLinkBuilderTableFormInput, Sa as UserDocument, Si as TeamworkTaskResponse, Sn as VStringPhone, So as BlockPullQuote, Sr as SUpdateClientUserDocumentRequest, Ss as StrapiDirection, St as SCreateNewsletterSignupDocument, T as QueryStrapiUsersByIdentifier, Ta as RoleDocument, Ti as TeamworkTasksResponse, Tn as VStringShortNullable, To as ComponentBlockGraphicImage, Tr as QuerySortClientStyleguides, Ts as StrapiIconPosition, Tt as MondayWorkspaceSortKeys, U as SUpdateUserAccountPreferredName, Ua as ComponentUtmOption, Ui as TeamworkActivePages, Un as QueryStrapiByDocumentId, Uo as ComponentMetaSocial, Ur as ClientMediaPlatformSortKeys, Ut as MediaContentTypeSortKeys, V as SUpdateUserAccountFirstName, Va as TagDocument, Vi as TeamworkCurrency, Vn as EntitySortKeys, Vo as BlockAnnouncementBar, Vr as SUpdateClientProjectDocument, Vt as SUpdateMediaCreativeFormatDocument, W as QuerySortUrlRedirects, Wa as UtmClassificationKey, Wi as TeamworkLockdown, Wn as QueryStrapiByEmail, Wo as ComponentOpenGraph, Wr as QuerySortClientMediaPlatforms, Wt as QuerySortMediaContentType, X as QueryStrapiSearchTeamworkProjectHealth, Xa as SlideContent, Xi as PolicyPageDocument, Xn as ContentPillarSortKeys, Xo as ComponentSharedQuestionAnswer, Xr as QuerySortClientContentPillars, Xt as SUpdateLeadDocument, Y as QuerySortTeamworkProjectHealth, Ya as ComponentSlideContent, Yi as TeamPageDocument, Yn as QueryStrapiPaginated, Yo as SeoMeta, Yr as ClientContentPillarSortKeys, Yt as SCreateLeadDocument, Z as TeamworkProjectHealthProjectStatus, Za as SlideType, Zi as LandingPageDocument, Zn as QuerySortContentPillars, Zo as SharedQuestionAnswer, Zr as QueryStrapiSearchClientContentPillars, Zt as SUpdateLeadRequest, _ as SUpdateUtmTrackingLinkDocumentRequest, _a as ClientUserDocument, _i as TeamworkTasklistResponse, _n as VStringLongNullable, _o as ComponentBrandStyleguideColor, _r as ClientUserSortKeys, _s as MediaFormat, _t as SUpdateResumeInfo, a as isStrapiAttributeError, aa as NewsletterSignupDocument, ai as SUpdateCategoryDocument, an as QuerySortGCFlyTourSnaps, ao as SliderOrigin, ar as QueryStrapiCommentsInHeirarchy, as as SharedLink, at as QueryStrapiSearchTags, b as SUtmLinkBuilderPartCampaignDateValue, ba as UserAuthorizationLoginResponse, bi as TeamworkTask, bn as VStringMinMax, bo as BlockSectionTitle, br as SQueryListClientUserDocuments, bs as FormSelectInputOption, bt as checkIsValidUrlList, c as dateToday, ca as CommentReportDocument, ci as QuerySortBlogPosts, cn as SUpdateGCFlyTourSnapDocument, co as ComponentFormSelect, cr as SReportCommentDocument, cs as StrapiAttributeErrorResponse, ct as SUpdateTagDocumentRequest, d as SCreateUtmTrackingLinkDocument, da as ClientDocument, di as canAssignPermission, dn as VNumberNullable, do as ComponentFormDownload, dr as ClientSortKeys, ds as StrapiErrorResult, dt as SCreateStrapiMediaUploadDocument, ea as BlogPageDocument, ei as SUpdateClientContentPillarDocumentRequest, en as QueryStrapiSearchGCFlyTours, eo as ComponentSlideshowSettings, er as SUpdateContentPillarDocument, es as RichTextBlockChildren, et as TeamworkProjectHealthSortKey, f as SCreateUtmTrackingLinkDocumentRequest, fa as ProductHighlightDocument, fi as hasPermission, fn as VPage, fo as FormDownload, fr as QuerySortClients, fs as StrapiListResponse, ft as SUpdateStrapiMediaFileInfo, g as SUpdateUtmTrackingLinkDocument, ga as GCFlyTourSnapDocument, gi as TeamworkTasklist, gn as VStringLong, go as BrandStyleguideColor, gr as SUpdateClientDocumentRequest, gs as StrapiSingleResponse, gt as SCreateResumeInfoDocument, h as SReadUtmTrackingLinkDocumentByUrl, ha as GCFlyTourDocument, hi as RolesWithPermissions, hn as VStringEmail, ho as ComponentBrandStyleguideFont, hr as SUpdateClientDocument, hs as StrapiResponseMetaWithPagination, ht as SCreateResumeInfo, i as validateAndClean, ia as ResumeDocument, ii as SCreateCategoryDocument, in as GCFlyTourSnapSortKeys, io as SliderBreakpoint, ir as QueryStrapiCommentsFlat, is as ComponentSharedLink, it as QuerySortTags, j as SChangePassword, ja as ClientMediaPlatformDocument, ji as TeamworkUserAccount, jn as SConnectManyEntityRelation, jo as BlockFaq, jr as QuerySortClientReports, js as StrapiThemeOptions, jt as MediaPlatformSortKeys, k as SAuthConnectProviderRedirectSearch, ka as ClientReportDocument, ki as TeamworkProjectsResponse, kn as VStringUrlNullable, ko as BlockVideoEmbed, kr as SUpdateClientStyleguideDocumentRequest, ks as StrapiLinkType, kt as SUpdateMondayWorkspaceDocument, l as QuerySortUtmTrackingLinks, la as ClientContentPillarDocument, li as QueryStrapiSearchBlogPosts, ln as SUpdateGCFlyTourSnapDocumentRequest, lo as FormSelect, lr as SUpdateCommentDocument, ls as StrapiErrorDetail, lt as TagSortKeys, m as SFormCreateMultipleUtmTrackingLinkDocuments, ma as MondayWorkspaceDocument, mi as Permissions, mn as VString, mo as BrandStyleguideFont, mr as SCreateClientDocument, ms as StrapiResponseMeta, mt as SCreateResume, n as isValidationSuccess, na as UrlRedirectQueryParams, ni as QuerySortCategories, nn as SUpdateGCFlyTourDocument, no as SlideshowSettings, nr as QueryFilterStrapiComments, ns as ComponentSharedButton, nt as QueryStrapiSearchTeamMembers, o as isStrapiStandardError, oa as LeadDocument, oi as SUpdateCategoryDocumentRequest, on as QueryStrapiSearchGCFlyTourSnaps, oo as SliderSettings, or as SCreateCommentDocument, os as StrapiAttributeErrorDetail, ot as SCreateTagDocument, p as SCreateUtmTrackingLinkParts, pa as ProductDocument, pi as LCRUDActions, pn as VSize, po as FormDownloadKeys, pr as QueryStrapiSearchClients, ps as StrapiPagination, pt as SharpSpringSignUpToDownload, q as UrlRedirectSortKeys, qa as ComponentSlideshow, qi as TeamworkResponseMetaPagination, qn as QueryStrapiByPhone, qo as MetaSocialNetwork, qr as SUpdateClientMediaPlatformDocument, qt as SUpdateMediaContentTypeDocument, r as omitUndefined, ra as UrlRedirectStatusCode, ri as QueryStrapiSearchCategories, rn as SUpdateGCFlyTourDocumentRequest, ro as ComponentSliderSettings, rr as QuerySortStrapiComments, rs as SharedButton, rt as TeamMemberSortKeys, s as datePlusDays, sa as CommentDocument, si as BlogPostSortKeys, sn as SCreateGCFlyTourSnapDocument, so as SliderSpacing, sr as SDeleteCommentDocument, ss as StrapiAttributeErrorKey, st as SUpdateTagDocument, t as isValidationFailure, ta as UrlRedirectDocument, ti as CategorySortKeys, tn as SCreateGCFlyTourDocument, to as SlideshowMode, tr as SUpdateContentPillarDocumentRequest, ts as SharedRichTextBlock, tt as QuerySortTeamMembers, u as QueryStrapiSearchUtmTrackingLinks, ua as ContentPillarDocument, ui as QueryStrapiSearchBlogPostsBySlug, un as VIntegerNullable, uo as FormUID, ur as StrapiCommentSortKeys, us as StrapiErrorResponse, ut as SCreateMultipleStrapiMediaUploadDocument, v as UtmTrackingLinkSortKeys, va as ClientUserDocumentStatus, vi as TeamworkTasklistResponseMeta, vn as VStringMax, vo as BlockTextDetails, vr as QuerySortClientUsers, vs as MediaFormats, vt as SUpdateResumeInfoDocument, w as QueryStrapiUsers, wa as UserAccountDocument, wi as TeamworkTaskUserPermissions, wn as VStringShort, wo as BlockGraphicImage, wr as ClientStyleguideSortKeys, ws as StrapiIconName, wt as SUpdateNewsletterSignupRequest, x as SUtmLinkBuilderTableForm, xa as UserAuthorizationSuccessResponse, xi as TeamworkTaskCard, xn as VStringMinMaxRegex, xo as ComponentBlockSectionTitle, xr as SUpdateClientUserDocument, xs as StrapiBgColorOptions, xt as SCreateNewsletterSignup, y as SUtmLinkBuilderPartCampaignDateOptions, ya as AuthorizedUserDocument, yi as TeamworkTasklistsResponse, yn as VStringMaxRegex, yo as ComponentBlockTextDetails, yr as SCreateClientUserDocument, ys as MediaUploadDocument, yt as SUpdateResumeInfoRequest, z as SReadUserAccountById, za as TeamMemberTier, zi as TeamworkProjectCategory, zn as VRelationManyQuery, zo as BlockBrandLogos, zr as SAssociateClientToClientProjectDocument, zs as ROLE_PERMISSIONS, zt as QueryStrapiSearchMediaCreativeFormats } from "./index-BrsTvGFm.mjs";
|
|
3
3
|
export { AuthorizedUserDocument, BaseDocument, BlockAnnouncementBar, BlockBrandLogos, BlockButtonGroup, BlockContact, BlockCtaLink, BlockFaq, BlockFullscreenContent, BlockFullscreenContentType, BlockGraphicImage, BlockPullQuote, BlockSectionTitle, BlockTextDetails, BlockVideoEmbed, BlogPageDocument, BlogPostBlock, BlogPostDocument, BlogPostSortKeys, BrandStyleguideColor, BrandStyleguideFont, CLIENT_ENTITY_KEYS, CLIENT_ENTITY_PERMISSIONS, CLIENT_ENTITY_SCOPES, CareersPageDocument, CategoryDocument, CategorySortKeys, ClientContentPillarDocument, ClientContentPillarSortKeys, ClientDocument, ClientEntityActions, ClientEntityKey, ClientEntityScope, ClientMediaPlatformDocument, ClientMediaPlatformSortKeys, ClientProjectDocument, ClientProjectPhaseOptions, ClientProjectPhaseSelectOptions, ClientProjectSortKeys, ClientProjectStatusOptions, ClientReportDocument, ClientReportSortKeys, ClientSortKeys, ClientStyleguideDocument, ClientStyleguideSortKeys, ClientUserDocument, ClientUserDocumentStatus, ClientUserSortKeys, CommentApprovalStatus, CommentApprovalStatusOptions, 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, ContentPillarSortKeys, ERROR_MESSAGE_COMMA_SEPPARATED_URLS, ERROR_MESSAGE_INVALID_URL, ERROR_MESSAGE_ONE_PROJECT_STATUS, ERROR_MESSAGE_REGEX_PHONE, ERROR_MESSAGE_REGEX_URL_SLUG, ERROR_MESSAGE_REGEX_UTM_VALUE, ERROR_MESSAGE_ROBOT, ERROR_MESSAGE_URL_NO_QUERY_PARAMS, ERROR_MESSAGE_URL_PREFIX, ERROR_MESSAGE_UTM_URL, EntitySortKeys, FAQPageDocument, FormDownload, FormDownloadKeys, FormSelect, FormSelectInputOption, FormUID, GCFlyTourDocument, GCFlyTourSnapDocument, GCFlyTourSnapSortKeys, GCFlyTourSortKeys, IsValidClientClassificationSelectOptions, LCRUDActions, 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_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_MONDAY_WORKSPACE_PAGINATION_DEFAULT_SIZE, LIMIT_MONDAY_WORKSPACE_PAGINATION_MAX_SIZE, 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_SHORT_STRING_MAX_LENGTH, 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, LIMIT_VAL_10, LIMIT_VAL_100, LandingPageDocument, LeadDocument, MediaContentTypeDocument, MediaContentTypeSortKeys, MediaCreativeFormatDocument, MediaCreativeFormatSortKeys, MediaFormat, MediaFormats, MediaPlatformDocument, MediaPlatformSortKeys, MediaUploadDocument, MetaSocial, MetaSocialNetwork, MondayWorkspaceDocument, MondayWorkspaceSortKeys, NewsletterSignupDocument, OpenGraph, PermissionDocument, Permissions, PolicyPageDocument, ProductDocument, ProductHighlightDocument, QueryFilterStrapiComments, QuerySortBlogPosts, QuerySortCategories, QuerySortClientContentPillars, QuerySortClientMediaPlatforms, QuerySortClientProjects, QuerySortClientReports, QuerySortClientStyleguides, QuerySortClientUsers, QuerySortClients, QuerySortContentPillars, QuerySortEntities, QuerySortGCFlyTourSnaps, QuerySortGCFlyTours, QuerySortMediaContentType, QuerySortMediaCreativeFormat, QuerySortMediaPlatforms, QuerySortMondayWorkspaces, QuerySortStrapiComments, QuerySortTags, QuerySortTeamMembers, QuerySortTeamworkProjectHealth, QuerySortUrlRedirects, QuerySortUsers, QuerySortUtmTrackingLinks, QueryStrapiByDocumentId, QueryStrapiByEmail, QueryStrapiById, QueryStrapiByName, QueryStrapiByPhone, QueryStrapiBySlug, QueryStrapiCommentsFlat, QueryStrapiCommentsInHeirarchy, QueryStrapiPaginated, QueryStrapiPaginatedUrlRedirects, QueryStrapiSearchBlogPosts, QueryStrapiSearchBlogPostsBySlug, QueryStrapiSearchCategories, QueryStrapiSearchClientContentPillars, QueryStrapiSearchClientMediaPlatforms, QueryStrapiSearchClientProjects, QueryStrapiSearchClientReports, QueryStrapiSearchClientStyleguide, QueryStrapiSearchClients, QueryStrapiSearchContentPillars, QueryStrapiSearchGCFlyTourSnaps, QueryStrapiSearchGCFlyTours, QueryStrapiSearchMediaContentTypes, QueryStrapiSearchMediaCreativeFormats, QueryStrapiSearchMediaPlatforms, QueryStrapiSearchMondayWorkspaces, QueryStrapiSearchTags, QueryStrapiSearchTeamMembers, QueryStrapiSearchTeamworkProjectHealth, QueryStrapiSearchUtmTrackingLinks, QueryStrapiUrlRedirectsByFrom, QueryStrapiUsers, QueryStrapiUsersByIdentifier, REGEX_BRAND_COLOR_SLUG, REGEX_NANP_PHONE, REGEX_URL_SLUG, REGEX_UTM_VALUE, ROLE_PERMISSIONS, ReportCommentReason, ReportCommentReasonOptions, ResumeDocument, RichTextBlock, RichTextBlockChildren, RoleDocument, RoleType, RolesWithPermissions, SAssociateClientToClientProjectDocument, SAuthConnectProviderConfirmation, SAuthConnectProviderRedirectSearch, SAuthRawAccessToken, SChangePassword, SConnectManyEntityRelation, SConnectOneEntityRelation, SCreateCategoryDocument, SCreateClientContentPillarDocument, SCreateClientDocument, SCreateClientMediaPlatformDocument, SCreateClientProjectDocument, SCreateClientReportDocument, SCreateClientStyleguideDocument, SCreateClientUserDocument, SCreateCommentDocument, SCreateContentPillarDocument, SCreateGCFlyTourDocument, SCreateGCFlyTourSnapDocument, SCreateLeadDocument, SCreateMediaContentTypeDocument, SCreateMediaCreativeFormatDocument, SCreateMediaPlatformDocument, SCreateMondayWorkspaceDocument, SCreateMultipleStrapiMediaUploadDocument, SCreateNewsletterSignup, SCreateNewsletterSignupDocument, SCreateResume, SCreateResumeInfo, SCreateResumeInfoDocument, SCreateStrapiMediaUploadDocument, SCreateTagDocument, SCreateUserDocument, SCreateUtmTrackingLinkDocument, SCreateUtmTrackingLinkDocumentRequest, SCreateUtmTrackingLinkParts, SDeleteCommentDocument, SDisconnectManyEntityRelation, SDisconnectOneEntityRelation, SEntityRelation, SForgotUserPassword, SFormCreateMultipleUtmTrackingLinkDocuments, SLoginUser, SQueryListClientUserDocuments, SReadUserAccountByDocumentId, SReadUserAccountById, SReadUtmTrackingLinkDocumentByUrl, SRegisterUser, SReportCommentDocument, SRequestConfirmEmail, SResetUserPassword, SSetManyEntityRelation, SSetOneEntityRelation, SUpdateCategoryDocument, SUpdateCategoryDocumentRequest, SUpdateClientContentPillarDocument, SUpdateClientContentPillarDocumentRequest, SUpdateClientDocument, SUpdateClientDocumentRequest, SUpdateClientMediaPlatformDocument, SUpdateClientMediaPlatformDocumentRequest, SUpdateClientProjectDocument, SUpdateClientProjectDocumentRequest, SUpdateClientReportDocument, SUpdateClientReportDocumentRequest, SUpdateClientStyleguideDocument, SUpdateClientStyleguideDocumentRequest, SUpdateClientUserDocument, SUpdateClientUserDocumentRequest, SUpdateCommentDocument, SUpdateContentPillarDocument, SUpdateContentPillarDocumentRequest, SUpdateGCFlyTourDocument, SUpdateGCFlyTourDocumentRequest, SUpdateGCFlyTourSnapDocument, SUpdateGCFlyTourSnapDocumentRequest, SUpdateLeadDocument, SUpdateLeadRequest, SUpdateMediaContentTypeDocument, SUpdateMediaContentTypeDocumentRequest, SUpdateMediaCreativeFormatDocument, SUpdateMediaCreativeFormatDocumentRequest, SUpdateMediaPlatformDocument, SUpdateMediaPlatformDocumentRequest, SUpdateMondayWorkspaceDocument, SUpdateMondayWorkspaceDocumentRequest, SUpdateNewsletterSignupDocument, SUpdateNewsletterSignupRequest, SUpdateResumeInfo, SUpdateResumeInfoDocument, SUpdateResumeInfoRequest, SUpdateStrapiMediaFileInfo, SUpdateTagDocument, SUpdateTagDocumentRequest, SUpdateTrendsLikes, SUpdateUserAccount, SUpdateUserAccountFirstName, SUpdateUserAccountLastName, SUpdateUserAccountPreferredName, SUpdateUtmTrackingLinkDocument, SUpdateUtmTrackingLinkDocumentRequest, SUserToken, SUtmLinkBuilderPartCampaignDateOptions, SUtmLinkBuilderPartCampaignDateValue, SUtmLinkBuilderTableForm, SUtmLinkBuilderTableFormInput, SVerifyClientUserDocument, SeoMeta, SharedButton, SharedLink, SharedQuestionAnswer, SharedRichTextBlock, SharpSpringSignUpToDownload, SlideContent, SlideType, SliderBreakpoint, SliderOrigin, SliderSettings, SliderSpacing, Slideshow, SlideshowComponentProps, SlideshowComponentSlideSettings, SlideshowMode, SlideshowSettings, StrapiAttributeErrorDetail, StrapiAttributeErrorKey, StrapiAttributeErrorResponse, StrapiBgColorOptions, StrapiCommentSortKeys, StrapiDirection, StrapiErrorDetail, StrapiErrorResponse, StrapiErrorResult, StrapiGapSizes, StrapiIconName, StrapiIconPosition, StrapiLinkReferrerPolicy, StrapiLinkRel, StrapiLinkTarget, StrapiLinkType, StrapiListResponse, StrapiPagination, StrapiResponseMeta, StrapiResponseMetaWithPagination, StrapiSingleResponse, StrapiTextColorOptions, StrapiThemeOptions, TagDocument, TagSortKeys, TeamMemberDocument, TeamMemberGroup, TeamMemberSortKeys, TeamMemberTier, TeamPageDocument, TeamworkActivePages, TeamworkCompany, TeamworkCurrency, TeamworkCustomField, TeamworkLockdown, TeamworkProject, TeamworkProjectCategory, TeamworkProjectCustomField, TeamworkProjectHealthProjectStatus, TeamworkProjectHealthProjectStatusOptions, TeamworkProjectHealthSelectSortOptions, TeamworkProjectHealthSortKey, 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, UrlRedirectSortKeys, UrlRedirectStatusCode, UserAccountDocument, UserAuthorizationLoginResponse, UserAuthorizationSuccessResponse, UserDocument, UserSortKeys, UtmClassificationKey, UtmMetaPageDocument, UtmOption, UtmSourceKey, UtmTrackingLinkDocument, UtmTrackingLinkSortKeys, VIntegerNullable, VNumberNullable, VPage, VRelationMany, VRelationManyQuery, VRelationOne, VSize, VString, VStringEmail, VStringLong, VStringLongNullable, VStringMax, VStringMaxRegex, VStringMinMax, VStringMinMaxRegex, VStringPhone, VStringPhoneNullable, VStringShort, VStringShortNullable, VStringSlug, VStringUrl, VStringUrlNoUtm, VStringUrlNullable, VStringUrlUtm, ValidGcDesiredContentOptions, ValidGcServiceOptions, ValidGcVideoServiceOptions, ValidJobRoleGroup, ValidNumberOfEmployeeOptions, ValidRatingRange5, WebSafeFont, WebSafeFontDisplay, WebSafeFontMono, WebSafeFontSans, WebSafeFontSerif, canAssignPermission, checkIsValidUrlList, datePlusDays, dateToday, hasPermission, isStrapiAttributeError, isStrapiStandardError, isValidationFailure, isValidationSuccess, omitUndefined, validateAndClean };
|
package/dist/permissions.cjs
CHANGED
|
@@ -733,9 +733,9 @@ function hasPermission(user, permissions, resource, action, data) {
|
|
|
733
733
|
if (typeof permission === "boolean") return permission;
|
|
734
734
|
return permission(user, permissions, data);
|
|
735
735
|
}
|
|
736
|
-
function canAssignPermission(
|
|
737
|
-
if (!
|
|
738
|
-
const permission = ROLE_PERMISSIONS[
|
|
736
|
+
function canAssignPermission(userRole, resource, action) {
|
|
737
|
+
if (!userRole) return false;
|
|
738
|
+
const permission = ROLE_PERMISSIONS[userRole][resource]?.[action];
|
|
739
739
|
if (permission == null) return false;
|
|
740
740
|
if (typeof permission === "boolean") return permission;
|
|
741
741
|
if (typeof permission === "function") return true;
|
package/dist/permissions.cjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
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 user: AuthorizedUserDocument | null,\n resource: Resource,\n action: Permissions[Resource][\"action\"]\n): boolean {\n if (!user) return false\n const permission = (ROLE_PERMISSIONS as RolesWithPermissions)[\n user.role.type as RoleType\n ][resource]?.[action]\n if (permission == null) return false\n if (typeof permission === \"boolean\") return permission\n if (typeof permission === \"function\") return true\n return false\n}\n"],"mappings":"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"}
|
|
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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"}
|
package/dist/permissions.d.cts
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { Fs as CLIENT_ENTITY_SCOPES, Is as ClientEntityActions, Ls as ClientEntityKey, Ns as CLIENT_ENTITY_KEYS, Ps as CLIENT_ENTITY_PERMISSIONS, Rs as ClientEntityScope, di as canAssignPermission, fi as hasPermission, hi as RolesWithPermissions, mi as Permissions, pi as LCRUDActions, zs as ROLE_PERMISSIONS } from "./index-
|
|
1
|
+
import { Fs as CLIENT_ENTITY_SCOPES, Is as ClientEntityActions, Ls as ClientEntityKey, Ns as CLIENT_ENTITY_KEYS, Ps as CLIENT_ENTITY_PERMISSIONS, Rs as ClientEntityScope, di as canAssignPermission, fi as hasPermission, hi as RolesWithPermissions, mi as Permissions, pi as LCRUDActions, zs as ROLE_PERMISSIONS } from "./index-DixG87wu.cjs";
|
|
2
2
|
export { CLIENT_ENTITY_KEYS, CLIENT_ENTITY_PERMISSIONS, CLIENT_ENTITY_SCOPES, ClientEntityActions, ClientEntityKey, ClientEntityScope, LCRUDActions, Permissions, ROLE_PERMISSIONS, RolesWithPermissions, canAssignPermission, hasPermission };
|
package/dist/permissions.d.mts
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { Fs as CLIENT_ENTITY_SCOPES, Is as ClientEntityActions, Ls as ClientEntityKey, Ns as CLIENT_ENTITY_KEYS, Ps as CLIENT_ENTITY_PERMISSIONS, Rs as ClientEntityScope, di as canAssignPermission, fi as hasPermission, hi as RolesWithPermissions, mi as Permissions, pi as LCRUDActions, zs as ROLE_PERMISSIONS } from "./index-
|
|
1
|
+
import { Fs as CLIENT_ENTITY_SCOPES, Is as ClientEntityActions, Ls as ClientEntityKey, Ns as CLIENT_ENTITY_KEYS, Ps as CLIENT_ENTITY_PERMISSIONS, Rs as ClientEntityScope, di as canAssignPermission, fi as hasPermission, hi as RolesWithPermissions, mi as Permissions, pi as LCRUDActions, zs as ROLE_PERMISSIONS } from "./index-BrsTvGFm.mjs";
|
|
2
2
|
export { CLIENT_ENTITY_KEYS, CLIENT_ENTITY_PERMISSIONS, CLIENT_ENTITY_SCOPES, ClientEntityActions, ClientEntityKey, ClientEntityScope, LCRUDActions, Permissions, ROLE_PERMISSIONS, RolesWithPermissions, canAssignPermission, hasPermission };
|
package/dist/permissions.mjs
CHANGED
|
@@ -732,9 +732,9 @@ function hasPermission(user, permissions, resource, action, data) {
|
|
|
732
732
|
if (typeof permission === "boolean") return permission;
|
|
733
733
|
return permission(user, permissions, data);
|
|
734
734
|
}
|
|
735
|
-
function canAssignPermission(
|
|
736
|
-
if (!
|
|
737
|
-
const permission = ROLE_PERMISSIONS[
|
|
735
|
+
function canAssignPermission(userRole, resource, action) {
|
|
736
|
+
if (!userRole) return false;
|
|
737
|
+
const permission = ROLE_PERMISSIONS[userRole][resource]?.[action];
|
|
738
738
|
if (permission == null) return false;
|
|
739
739
|
if (typeof permission === "boolean") return permission;
|
|
740
740
|
if (typeof permission === "function") return true;
|
package/dist/permissions.mjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
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 user: AuthorizedUserDocument | null,\n resource: Resource,\n action: Permissions[Resource][\"action\"]\n): boolean {\n if (!user) return false\n const permission = (ROLE_PERMISSIONS as RolesWithPermissions)[\n user.role.type as RoleType\n ][resource]?.[action]\n if (permission == null) return false\n if (typeof permission === \"boolean\") return permission\n if (typeof permission === \"function\") return true\n return false\n}\n"],"mappings":"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"}
|
|
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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"}
|