@bison-lab/payload-core 3.13.0 → 3.15.0
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/README.md +57 -29
- package/dist/admin.d.mts +25 -5
- package/dist/admin.d.mts.map +1 -1
- package/dist/admin.mjs +437 -178
- package/dist/admin.mjs.map +1 -1
- package/dist/index.d.mts +93 -50
- package/dist/index.d.mts.map +1 -1
- package/dist/index.mjs +849 -725
- package/dist/index.mjs.map +1 -1
- package/package.json +3 -3
package/dist/index.d.mts
CHANGED
|
@@ -107,12 +107,10 @@ declare function truncateAtWord(text: string, max?: number): string;
|
|
|
107
107
|
//#endregion
|
|
108
108
|
//#region src/theme/global.d.ts
|
|
109
109
|
/**
|
|
110
|
-
*
|
|
111
|
-
*
|
|
112
|
-
*
|
|
113
|
-
*
|
|
114
|
-
* settings forms, not collaborative documents. No draft mode, no preview
|
|
115
|
-
* pane.
|
|
110
|
+
* One Theme Global. Colors, Typography, Appearance, and Identity are
|
|
111
|
+
* tabs on that document. Save writes the whole form — Payload hydrates
|
|
112
|
+
* every tab from the live row, so an untouched tab does not revert.
|
|
113
|
+
* Locking is off. No draft mode, no preview pane.
|
|
116
114
|
*/
|
|
117
115
|
declare function createTheme(options: CreateThemeOptions): GlobalConfig[];
|
|
118
116
|
//#endregion
|
|
@@ -294,8 +292,12 @@ declare const LOOK_FIELD = "@bison-lab/payload-core/admin#LookField";
|
|
|
294
292
|
declare const ROLES: readonly ["developer", "admin", "designer", "author"];
|
|
295
293
|
type Role = (typeof ROLES)[number];
|
|
296
294
|
declare const ROLE_LABELS: Record<Role, string>;
|
|
295
|
+
/** Capability aliases over feature grants. Brand is any Theme-group leaf. */
|
|
297
296
|
declare const CAPABILITIES: readonly ["content", "brand", "publish", "users"];
|
|
298
297
|
type Capability = (typeof CAPABILITIES)[number];
|
|
298
|
+
declare const THEME_FEATURE_SLUGS: readonly ["theme-colors", "theme-typography", "theme-appearance", "theme-identity", "brand-assets"];
|
|
299
|
+
declare const CAPABILITY_FEATURES: Record<Capability, readonly string[]>;
|
|
300
|
+
declare const DEFAULT_ROLE_GRANTS: Record<Role, readonly string[]>;
|
|
299
301
|
/**
|
|
300
302
|
* A site-defined row passed into `createRoles({ extras })`. The slug is the
|
|
301
303
|
* stored key; the label is what Settings → Roles and Users show.
|
|
@@ -303,19 +305,13 @@ type Capability = (typeof CAPABILITIES)[number];
|
|
|
303
305
|
interface RoleExtra {
|
|
304
306
|
role: string;
|
|
305
307
|
label: string;
|
|
306
|
-
|
|
307
|
-
brand: boolean;
|
|
308
|
-
publish: boolean;
|
|
309
|
-
users: boolean;
|
|
308
|
+
grants?: readonly string[];
|
|
310
309
|
}
|
|
311
310
|
interface RoleRow {
|
|
312
311
|
id?: string | null;
|
|
313
312
|
role: string;
|
|
314
313
|
label?: string | null;
|
|
315
|
-
|
|
316
|
-
brand: boolean;
|
|
317
|
-
publish: boolean;
|
|
318
|
-
users: boolean;
|
|
314
|
+
grants: string[];
|
|
319
315
|
}
|
|
320
316
|
interface RolesDoc {
|
|
321
317
|
roles?: RoleRow[] | null;
|
|
@@ -327,25 +323,33 @@ interface RolesDoc {
|
|
|
327
323
|
*/
|
|
328
324
|
type MaybeUser = {
|
|
329
325
|
id?: string | number;
|
|
330
|
-
roles?: readonly string[] | null;
|
|
326
|
+
roles?: readonly string[] | null; /** Feature slugs this login may use, stamped onto the JWT at read. */
|
|
327
|
+
allowedFeatures?: readonly string[] | null;
|
|
331
328
|
} | null | undefined;
|
|
332
329
|
declare function isRole(value: unknown): value is Role;
|
|
333
|
-
/** Lowercase slug: `
|
|
330
|
+
/** Lowercase slug from a letters-and-spaces name: `designer`, `the-designer`. */
|
|
334
331
|
declare function isRoleSlug(value: unknown): value is string;
|
|
332
|
+
/** Display name: letters and single spaces only. `The Greatest Designer`. */
|
|
333
|
+
declare function isRoleName(value: unknown): value is string;
|
|
334
|
+
/** Strip digits and punctuation as the name is typed. Trailing space stays. */
|
|
335
|
+
declare function sanitizeRoleNameInput(value: string): string;
|
|
336
|
+
/** Name → stored key. `The Greatest Designer` → `the-greatest-designer`. */
|
|
337
|
+
declare function slugifyRoleName(value: unknown): string;
|
|
335
338
|
declare function roleLabel(role: string, label?: string | null): string;
|
|
336
339
|
//#endregion
|
|
337
340
|
//#region src/roles/global.d.ts
|
|
338
341
|
interface CreateRolesOptions {
|
|
339
342
|
/**
|
|
340
343
|
* Extra catalogue rows after the seed four. Each is a slug, a display
|
|
341
|
-
* label, and default
|
|
344
|
+
* label, and default grants. A site that passes nothing still gets
|
|
342
345
|
* Developer / Admin / Designer / Author.
|
|
343
346
|
*/
|
|
344
347
|
extras?: readonly RoleExtra[];
|
|
345
348
|
}
|
|
346
349
|
/**
|
|
347
|
-
* Settings → Roles. Rank is the array order (Payload's drag handle).
|
|
348
|
-
* are
|
|
350
|
+
* Settings → Roles. Rank is the array order (Payload's drag handle).
|
|
351
|
+
* Ticks are released catalogue rows. Developer is implicit and shown
|
|
352
|
+
* only to a Developer, with every catalogue tick locked on.
|
|
349
353
|
*/
|
|
350
354
|
declare function createRoles({
|
|
351
355
|
extras
|
|
@@ -369,42 +373,50 @@ declare function seedRoles(payload: SeedRolesPayload, extras?: readonly RoleExtr
|
|
|
369
373
|
declare const ROLES_MATRIX_FIELD = "@bison-lab/payload-core/admin#RolesMatrixField";
|
|
370
374
|
declare const ROLES_ROW_LABEL = "@bison-lab/payload-core/admin#RolesRowLabel";
|
|
371
375
|
declare const ROLE_SLUG_FIELD = "@bison-lab/payload-core/admin#RoleSlugField";
|
|
376
|
+
declare const ROLE_NAME_FIELD = "@bison-lab/payload-core/admin#RoleNameField";
|
|
372
377
|
declare const ROLES_FIELD = "@bison-lab/payload-core/admin#RolesField";
|
|
378
|
+
declare const ROLES_GRANTS_FIELD = "@bison-lab/payload-core/admin#RolesGrantsField";
|
|
373
379
|
//#endregion
|
|
374
380
|
//#region src/features/types.d.ts
|
|
375
381
|
declare const FEATURES_SLUG = "features";
|
|
376
|
-
declare const
|
|
382
|
+
declare const FEATURE_GROUPS: readonly ["pages", "media", "theme", "users"];
|
|
383
|
+
type FeatureGroupId = (typeof FEATURE_GROUPS)[number];
|
|
384
|
+
declare const FEATURE_GROUP_LABELS: Record<FeatureGroupId, string>;
|
|
385
|
+
declare const PACKAGE_FEATURE_SLUGS: readonly ["content", "publish", "media", "theme-colors", "theme-typography", "theme-appearance", "theme-identity", "brand-assets", "users", "roles"];
|
|
377
386
|
type PackageFeatureSlug = (typeof PACKAGE_FEATURE_SLUGS)[number];
|
|
378
387
|
interface PackageFeature {
|
|
379
388
|
slug: PackageFeatureSlug;
|
|
380
389
|
label: string;
|
|
381
|
-
|
|
382
|
-
|
|
390
|
+
group: FeatureGroupId;
|
|
391
|
+
defaultReleased: boolean;
|
|
383
392
|
}
|
|
384
393
|
/**
|
|
385
|
-
* Package catalogue.
|
|
386
|
-
*
|
|
387
|
-
* Brand assets, Users → Users/Roles/Features).
|
|
394
|
+
* Package catalogue. Features itself is not a row — that screen is
|
|
395
|
+
* Developer-only in code. Empty Global falls back to these defaults.
|
|
388
396
|
*/
|
|
389
397
|
declare const PACKAGE_FEATURES: readonly PackageFeature[];
|
|
390
398
|
/** A site-only row. Other sites never see this slug. */
|
|
391
399
|
interface FeatureExtra {
|
|
392
400
|
slug: string;
|
|
393
401
|
label: string;
|
|
402
|
+
group?: FeatureGroupId;
|
|
403
|
+
defaultReleased?: boolean;
|
|
394
404
|
}
|
|
395
405
|
interface FeatureRow {
|
|
396
406
|
id?: string | null;
|
|
397
407
|
slug: string;
|
|
398
408
|
label?: string | null;
|
|
399
|
-
|
|
400
|
-
|
|
409
|
+
group?: string | null;
|
|
410
|
+
released: boolean;
|
|
401
411
|
}
|
|
402
412
|
interface FeaturesDoc {
|
|
403
413
|
features?: FeatureRow[] | null;
|
|
404
414
|
}
|
|
415
|
+
declare function isFeatureGroupId(value: unknown): value is FeatureGroupId;
|
|
405
416
|
declare function isPackageFeatureSlug(value: unknown): value is PackageFeatureSlug;
|
|
406
417
|
declare function isFeatureSlug(value: unknown): value is string;
|
|
407
|
-
|
|
418
|
+
/** @deprecated Locks are gone; the release switch is the valve. */
|
|
419
|
+
declare function isLockedFeature(_slug: string, _locked?: boolean | null): boolean;
|
|
408
420
|
//#endregion
|
|
409
421
|
//#region src/features/global.d.ts
|
|
410
422
|
interface CreateFeaturesOptions {
|
|
@@ -415,8 +427,9 @@ interface CreateFeaturesOptions {
|
|
|
415
427
|
extras?: readonly FeatureExtra[];
|
|
416
428
|
}
|
|
417
429
|
/**
|
|
418
|
-
* Settings → Features.
|
|
419
|
-
*
|
|
430
|
+
* Settings → Features. One release switch per catalogue row. Off hides
|
|
431
|
+
* the tick on Roles; Developer still has the feature. This screen is
|
|
432
|
+
* not itself a row.
|
|
420
433
|
*/
|
|
421
434
|
declare function createFeatures({
|
|
422
435
|
extras
|
|
@@ -454,6 +467,7 @@ declare function hasRole(user: MaybeUser, role: string): boolean;
|
|
|
454
467
|
/** Not a tick. True only when `developer` is stored on the row. */
|
|
455
468
|
declare function isDeveloper(user: MaybeUser): boolean;
|
|
456
469
|
declare function hasCapability(user: MaybeUser, capability: Capability, matrix?: readonly RoleRow[]): boolean;
|
|
470
|
+
declare function hasGrant(user: MaybeUser, slug: string, matrix?: readonly RoleRow[]): boolean;
|
|
457
471
|
/**
|
|
458
472
|
* Reads the saved Roles Global, falling back to the seed when the row is
|
|
459
473
|
* empty, missing, or unreadable. Always override-access so a Designer
|
|
@@ -463,18 +477,32 @@ declare function getRolesMatrix(req?: AccessArgs$1["req"], extras?: readonly Rol
|
|
|
463
477
|
declare const canManageContent: CapabilityPredicate;
|
|
464
478
|
declare const canManageBrand: CapabilityPredicate;
|
|
465
479
|
declare const canPublish: CapabilityPredicate;
|
|
466
|
-
/** Users
|
|
480
|
+
/** Users grant on any held role (Developer is implicit). */
|
|
467
481
|
declare const isAdmin: CapabilityPredicate;
|
|
468
|
-
/** This role id currently has the Users
|
|
482
|
+
/** This role id currently has the Users grant, or is Developer. */
|
|
469
483
|
declare function isPrivilegedRole(role: unknown, matrix?: readonly RoleRow[]): boolean;
|
|
470
484
|
declare function isAuthenticated(user: MaybeUser): boolean;
|
|
471
485
|
declare function isAuthenticated(args: AccessArgs$1): boolean;
|
|
472
486
|
declare const isAdminOrSelf: Access;
|
|
473
487
|
declare const authenticatedOrPublished: Access;
|
|
474
|
-
/**
|
|
488
|
+
/**
|
|
489
|
+
* API tab condition. Code-locked to the `developer` slug — not a Features
|
|
490
|
+
* row and not a Role tick a client can grant.
|
|
491
|
+
*/
|
|
475
492
|
declare function isDeveloperTab({
|
|
476
493
|
req
|
|
477
494
|
}: AccessArgs$1): boolean;
|
|
495
|
+
/** Access for chrome globals (Features, Better Editor settings). */
|
|
496
|
+
declare function developerOnlyAccess(): {
|
|
497
|
+
read: Access;
|
|
498
|
+
update: Access;
|
|
499
|
+
};
|
|
500
|
+
/** `admin.hidden`: hide unless the login is Developer. */
|
|
501
|
+
declare function hideUnlessDeveloper({
|
|
502
|
+
user
|
|
503
|
+
}: {
|
|
504
|
+
user?: MaybeUser;
|
|
505
|
+
}): boolean;
|
|
478
506
|
//#endregion
|
|
479
507
|
//#region src/features/access.d.ts
|
|
480
508
|
type AccessArgs = {
|
|
@@ -488,13 +516,14 @@ type FeaturePredicate = {
|
|
|
488
516
|
(args: AccessArgs): boolean | Promise<boolean>;
|
|
489
517
|
};
|
|
490
518
|
/**
|
|
491
|
-
* True when
|
|
492
|
-
*
|
|
519
|
+
* True when the feature is released and a held role is granted it.
|
|
520
|
+
* Developer is always allowed. An empty Global falls back to catalogue
|
|
521
|
+
* defaults. A group slug (`pages`, `theme`) is true when any child is.
|
|
493
522
|
*/
|
|
494
523
|
declare function hasFeature(user: MaybeUser, slug: string, features?: readonly FeatureRow[] | null, matrix?: readonly RoleRow[]): boolean;
|
|
495
524
|
/**
|
|
496
525
|
* Reads the saved Features Global. `null` means empty or unreadable — callers
|
|
497
|
-
* fall back to
|
|
526
|
+
* fall back to catalogue defaults. Always override-access.
|
|
498
527
|
*/
|
|
499
528
|
declare function getFeaturesMatrix(req?: AccessArgs["req"]): Promise<FeatureRow[] | null>;
|
|
500
529
|
/**
|
|
@@ -502,6 +531,12 @@ declare function getFeaturesMatrix(req?: AccessArgs["req"]): Promise<FeatureRow[
|
|
|
502
531
|
* async when given `req` so it can read both Globals.
|
|
503
532
|
*/
|
|
504
533
|
declare function canUseFeature(slug: string): FeaturePredicate;
|
|
534
|
+
/**
|
|
535
|
+
* Feature slugs (and group slugs) this login may use. Written onto the
|
|
536
|
+
* user at afterRead so `admin.hidden({ user })` can follow the saved
|
|
537
|
+
* Features and Roles Globals without a `req`.
|
|
538
|
+
*/
|
|
539
|
+
declare function allowedFeaturesForUser(user: MaybeUser, req?: AccessArgs["req"]): Promise<string[]>;
|
|
505
540
|
/** `admin.hidden`: hide when the login cannot use the feature. */
|
|
506
541
|
declare function hideUnlessFeature(slug: string): (args: {
|
|
507
542
|
user?: MaybeUser;
|
|
@@ -509,16 +544,16 @@ declare function hideUnlessFeature(slug: string): (args: {
|
|
|
509
544
|
}) => boolean | Promise<boolean>;
|
|
510
545
|
//#endregion
|
|
511
546
|
//#region src/features/matrix.d.ts
|
|
512
|
-
declare const MISSING_PACKAGE_FEATURES_MESSAGE = "Features must include
|
|
513
|
-
declare const LOCKED_FEATURE_MESSAGE = "Users, Roles, and Features cannot be turned off. Developer stays allowed on every row.";
|
|
547
|
+
declare const MISSING_PACKAGE_FEATURES_MESSAGE = "Features must include Content, Publish, Media, Theme screens, Brand assets, Users, and Roles.";
|
|
514
548
|
interface FeatureCatalogueEntry {
|
|
515
549
|
slug: string;
|
|
516
550
|
label: string;
|
|
517
|
-
|
|
518
|
-
|
|
551
|
+
group: FeatureGroupId;
|
|
552
|
+
defaultReleased: boolean;
|
|
519
553
|
}
|
|
520
554
|
declare function featureCatalogue(extras?: readonly FeatureExtra[]): FeatureCatalogueEntry[];
|
|
521
|
-
declare function defaultFeaturesFieldValue(extras?: readonly FeatureExtra[]
|
|
555
|
+
declare function defaultFeaturesFieldValue(extras?: readonly FeatureExtra[]): FeatureRow[];
|
|
556
|
+
declare function stampFeatureCatalogue(value: unknown, extras?: readonly FeatureExtra[]): FeatureRow[];
|
|
522
557
|
declare function parseFeaturesMatrix(value: unknown): {
|
|
523
558
|
ok: true;
|
|
524
559
|
rows: FeatureRow[];
|
|
@@ -526,7 +561,8 @@ declare function parseFeaturesMatrix(value: unknown): {
|
|
|
526
561
|
ok: false;
|
|
527
562
|
message: string;
|
|
528
563
|
};
|
|
529
|
-
declare function validateFeaturesMatrix(value: unknown, extras?: readonly FeatureExtra[]
|
|
564
|
+
declare function validateFeaturesMatrix(value: unknown, extras?: readonly FeatureExtra[]): true | string;
|
|
565
|
+
declare function featureGroupLabel(group: string): string;
|
|
530
566
|
//#endregion
|
|
531
567
|
//#region src/collections/pages.d.ts
|
|
532
568
|
interface PagesOptions {
|
|
@@ -658,16 +694,18 @@ declare const adminOnlyApiTab: () => payload.Plugin;
|
|
|
658
694
|
//#region src/roles/matrix.d.ts
|
|
659
695
|
declare const ROLES_SLUG = "roles";
|
|
660
696
|
declare const ROLES_GLOBAL_DESCRIPTION = "Who may do what. Drag to change rank.";
|
|
661
|
-
declare const ROLES_FIELD_DESCRIPTION = "Drag to change rank. Ticks are
|
|
697
|
+
declare const ROLES_FIELD_DESCRIPTION = "Drag to change rank. Ticks are features released on Features. Developer has the whole catalogue.";
|
|
662
698
|
/**
|
|
663
|
-
* Default rank and
|
|
664
|
-
*
|
|
699
|
+
* Default rank and grants. Developer is implicit (empty grants). Brand
|
|
700
|
+
* screens default to Designer.
|
|
665
701
|
*/
|
|
666
702
|
declare const DEFAULT_ROLE_MATRIX: readonly RoleRow[];
|
|
667
|
-
declare const DEVELOPER_DESCRIPTION = "Everything
|
|
668
|
-
declare const LAST_USERS_TICK_MESSAGE = "Keep Users
|
|
703
|
+
declare const DEVELOPER_DESCRIPTION = "Everything, including features not released for assignment.";
|
|
704
|
+
declare const LAST_USERS_TICK_MESSAGE = "Keep Users granted on at least one of Admin or Developer.";
|
|
669
705
|
declare const MISSING_SEED_ROLES_MESSAGE = "Roles must include Developer, Admin, Designer, and Author.";
|
|
670
706
|
declare const DUPLICATE_ROLE_SLUG_MESSAGE = "Each role needs a unique slug.";
|
|
707
|
+
declare const DUPLICATE_ROLE_NAME_MESSAGE = "Each role needs a unique name.";
|
|
708
|
+
declare const INVALID_ROLE_NAME_MESSAGE = "Use letters and spaces only.";
|
|
671
709
|
declare function seedRoleRows(extras?: readonly RoleExtra[]): RoleRow[];
|
|
672
710
|
declare function defaultRolesFieldValue(extras?: readonly RoleExtra[]): RoleRow[];
|
|
673
711
|
declare function parseRolesMatrix(value: unknown): {
|
|
@@ -677,6 +715,11 @@ declare function parseRolesMatrix(value: unknown): {
|
|
|
677
715
|
ok: false;
|
|
678
716
|
message: string;
|
|
679
717
|
};
|
|
718
|
+
/**
|
|
719
|
+
* Mint a slug from the name only when the row has none yet. An existing
|
|
720
|
+
* key — seed or custom — stays put so a rename cannot orphan users.
|
|
721
|
+
*/
|
|
722
|
+
declare function applyRoleSlugsFromNames(value: unknown): unknown;
|
|
680
723
|
declare function validateRolesMatrix(value: unknown): true | string;
|
|
681
724
|
/**
|
|
682
725
|
* Developer is exclusive. Admin does not swallow Designer: both store.
|
|
@@ -688,12 +731,12 @@ declare function roleSelectOptions(matrix?: readonly RoleRow[]): {
|
|
|
688
731
|
label: string;
|
|
689
732
|
value: string;
|
|
690
733
|
}[];
|
|
691
|
-
/**
|
|
734
|
+
/** Grant copy only. Developer names the unreleased catalogue; nothing about MCP or seed. */
|
|
692
735
|
declare function roleDescription(role: string, matrix?: readonly RoleRow[]): string;
|
|
693
736
|
/**
|
|
694
|
-
* Seed
|
|
737
|
+
* Seed grants and package labels come back; extra rows stay as they are.
|
|
695
738
|
*/
|
|
696
739
|
declare function resetRolesMatrix(current: unknown): RoleRow[];
|
|
697
740
|
//#endregion
|
|
698
|
-
export { BRAND_ASSETS_MIME_TYPES, BRAND_ASSETS_SLUG, CAPABILITIES, type Capability, type ColorTokenHit, type ColorUsage, type ColorUsagesOption, type CreateBrandAssetsOptions, type CreateFeaturesOptions, type CreateRolesOptions, type CreateThemeOptions, DEFAULT_ROLE_MATRIX, DESCRIPTION_LENGTH, DEVELOPER_DESCRIPTION, DUPLICATE_ROLE_SLUG_MESSAGE, type EditableTheme, FEATURES_MATRIX_FIELD, FEATURES_SLUG, type FeatureExtra, type FeatureRow, type FeaturesDoc, LAST_ADMIN_DELETE_MESSAGE, LAST_ADMIN_DEMOTE_MESSAGE, LAST_USERS_TICK_MESSAGE,
|
|
741
|
+
export { BRAND_ASSETS_MIME_TYPES, BRAND_ASSETS_SLUG, CAPABILITIES, CAPABILITY_FEATURES, type Capability, type ColorTokenHit, type ColorUsage, type ColorUsagesOption, type CreateBrandAssetsOptions, type CreateFeaturesOptions, type CreateRolesOptions, type CreateThemeOptions, DEFAULT_ROLE_GRANTS, DEFAULT_ROLE_MATRIX, DESCRIPTION_LENGTH, DEVELOPER_DESCRIPTION, DUPLICATE_ROLE_NAME_MESSAGE, DUPLICATE_ROLE_SLUG_MESSAGE, type EditableTheme, FEATURES_MATRIX_FIELD, FEATURES_SLUG, FEATURE_GROUPS, FEATURE_GROUP_LABELS, type FeatureExtra, type FeatureGroupId, type FeatureRow, type FeaturesDoc, INVALID_ROLE_NAME_MESSAGE, LAST_ADMIN_DELETE_MESSAGE, LAST_ADMIN_DEMOTE_MESSAGE, LAST_USERS_TICK_MESSAGE, LOOK_FIELD, type LookFieldMode, type LookFieldOptions, type LookOption, MISSING_PACKAGE_FEATURES_MESSAGE, MISSING_SEED_ROLES_MESSAGE, type MaybeUser, type MediaId, type MediaOptions, PACKAGE_FEATURES, PACKAGE_FEATURE_SLUGS, PAGE_EDITOR_SYSTEM_KEYS, type PackageFeature, type PackageFeatureSlug, type PageEditorSystemKey, type PagesOptions, ROLES, ROLES_FIELD, ROLES_FIELD_DESCRIPTION, ROLES_GLOBAL_DESCRIPTION, ROLES_GRANTS_FIELD, ROLES_MATRIX_FIELD, ROLES_ROW_LABEL, ROLES_SLUG, ROLE_LABELS, ROLE_NAME_FIELD, ROLE_SLUG_FIELD, type ResolvedThemeIdentity, type Role, type RoleExtra, type RoleRow, type RolesDoc, SHARE_IMAGE_SIZE, SYSTEM_COLOR_KEYS, type SeoDoc, type SeoImageDoc, type SeoImageSize, type SeoImageValue, type SeoMeta, type SeoPluginOptions, type SlugFieldOptions, type SystemColorKey, THEME_APPEARANCE_FIELD, THEME_APPEARANCE_SLUG, THEME_COLORS_SLUG, THEME_COLOR_FIELD, THEME_COLOR_SCALE_FIELD, THEME_CONTRAST_REPORT, THEME_DOCUMENT_CONTROLS, THEME_FEATURE_SLUGS, THEME_FONT_FIELD, THEME_GREY_SCALE_FIELD, THEME_IDENTITY_FALLBACK, THEME_IDENTITY_SLUG, THEME_LIBRARY_FIELD, THEME_PAIRING_FIELD, THEME_PREVIEW_BREAKPOINTS, THEME_PUBLISH_FIELD, THEME_SAVE_BUTTON, THEME_SECTION_HEADING, THEME_SLUG, THEME_TYPOGRAPHY_SLUG, type ThemeChild, type ThemeColorDoc, type ThemeDoc, type ThemeIdentityFallback, type ThemeLibraryColorDoc, type ThemeUploadDoc, type UsersOptions, adminOnlyApiTab, allowedFeaturesForUser, applyRoleSlugsFromNames, authenticatedOrPublished, canManageBrand, canManageContent, canPublish, canUseFeature, colorTokenField, createBrandAssets, createFeatures, createMedia, createPages, createRoles, createTheme, createUsers, defaultFeaturesFieldValue, defaultRolesFieldValue, deleteLibraryColor, developerOnlyAccess, documentTitle, featureCatalogue, featureGroupLabel, findColorTokens, findColorUsages, firstImageIn, getFeaturesMatrix, getRolesMatrix, hasCapability, hasFeature, hasGrant, hasRole, hideUnlessDeveloper, hideUnlessFeature, isAdmin, isAdminOrSelf, isAuthenticated, isDeveloper, isDeveloperTab, isFeatureGroupId, isFeatureSlug, isLockedFeature, isPackageFeatureSlug, isPrivilegedRole, isRole, isRoleName, isRoleSlug, lookField, noIndexField, normalizeSlug, normalizeStoredRoles, pageEditorLooks, pageEditorTokens, parseFeaturesMatrix, parseRolesMatrix, persistThemeChild, publishThemeChild, resetRolesMatrix, resolveThemeIdentity, rewriteColorToken, rewriteColorTokens, rewriteColorUsages, roleDescription, roleLabel, roleSelectOptions, sanitizeRoleNameInput, sanitizeSvg, seedFeatures, seedRoleRows, seedRoles, seedTheme, seoPlugin, slugField, slugifyRoleName, stampFeatureCatalogue, storedRoles, themeColorKeys, themeLibraryFromDoc, titleTemplate, truncateAtWord, validateFeaturesMatrix, validateRolesMatrix };
|
|
699
742
|
//# sourceMappingURL=index.d.mts.map
|
package/dist/index.d.mts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.mts","names":[],"sources":["../src/seo/plugin.ts","../src/seo/fields.ts","../src/seo/share-image.ts","../src/seo/text.ts","../src/theme/global.ts","../src/brand-assets/collection.ts","../src/brand-assets/sanitize.ts","../src/theme/seed.ts","../src/theme/color-usages.ts","../src/theme/preview.ts","../src/theme/publish.ts","../src/theme/fields.ts","../src/roles/types.ts","../src/roles/global.ts","../src/roles/seed.ts","../src/roles/fields.ts","../src/features/types.ts","../src/features/global.ts","../src/features/seed.ts","../src/features/fields.ts","../src/roles/access.ts","../src/features/access.ts","../src/features/matrix.ts","../src/collections/pages.ts","../src/collections/users.ts","../src/collections/media.ts","../src/fields/slug.ts","../src/plugins/admin-only-api-tab.ts","../src/roles/matrix.ts"],"mappings":";;;;;;;;;;;;AAoBA;UAAiB,MAAA;EACf,KAAA;AAAA;AAAA,UAGe,gBAAA,cAA8B,MAAA,GAAS,MAAA;EAAvC;EAEf,QAAA;EAF+B;;;;;;EAS/B,MAAA,GAAS,GAAA,EAAK,IAAA;EAeA;;;;;EATd,YAAA,IAAgB,GAAA,EAAK,IAAA;EAfiC;;;;;;EAsBtD,QAAA,IAAY,GAAA,EAAK,IAAA,KAAS,OAAA;EAPV;EAShB,WAAA,GAAc,cAAA;EAFG;EAIjB,iBAAA,GAAoB,oBAAA;AAAA;;;;;;;AAetB;;;;;;iBAAgB,SAAA,cAAuB,MAAA,GAAS,MAAA,CAAA,CAAA;EAC9C,QAAA;EACA,MAAA;EACA,YAAA;EACA,QAAA;EACA,WAAA;EACA;AAAA,GACC,gBAAA,CAAiB,IAAA,IAAQ,MAAA;;;;;;;iBA6BZ,YAAA,CACd,MAAA,WACA,KAAA,YACC,OAAA;;;;;;;;cCjGU,YAAA,EAAc,aAAA;;;;;;;;;;ADa3B;cEVa,gBAAA;;;;;;;;;cCTA,kBAAA;;;;;;AHmBb;iBGXgB,cAAA,CAAe,IAAA,UAAc,GAAA;;;;;;;;AHW7C
|
|
1
|
+
{"version":3,"file":"index.d.mts","names":[],"sources":["../src/seo/plugin.ts","../src/seo/fields.ts","../src/seo/share-image.ts","../src/seo/text.ts","../src/theme/global.ts","../src/brand-assets/collection.ts","../src/brand-assets/sanitize.ts","../src/theme/seed.ts","../src/theme/color-usages.ts","../src/theme/preview.ts","../src/theme/publish.ts","../src/theme/fields.ts","../src/roles/types.ts","../src/roles/global.ts","../src/roles/seed.ts","../src/roles/fields.ts","../src/features/types.ts","../src/features/global.ts","../src/features/seed.ts","../src/features/fields.ts","../src/roles/access.ts","../src/features/access.ts","../src/features/matrix.ts","../src/collections/pages.ts","../src/collections/users.ts","../src/collections/media.ts","../src/fields/slug.ts","../src/plugins/admin-only-api-tab.ts","../src/roles/matrix.ts"],"mappings":"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"}
|