@dyrected/core 2.16.0 → 2.17.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/dist/index.d.cts CHANGED
@@ -1,5 +1,5 @@
1
- import { F as Field, B as Block, C as CollectionConfig, D as DyrectedConfig, A as AdminAuthConfig, P as PublicAdminAuthConfig, G as GlobalConfig, a as DeclarativeHookExpression, W as WorkflowConfig, b as AuthenticatedUser, c as WorkflowTransition, L as LifecycleEventName, d as LifecycleEvent, e as BaseDocument, H as HookRequestContext, f as DetailActionOptions, g as DetailAction, h as DetailComputedOptions, i as ComputedHandler, j as DetailComputed, k as DetailCustomOptions, l as DetailCustom, m as DetailDividerOptions, n as DetailDivider, o as DisplayFieldOptions, p as DetailField, q as DetailItem, r as DetailGridOptions, s as DetailGrid, t as DetailRepeatOptions, u as DetailRepeat, v as DetailSectionOptions, w as DetailSection, x as DetailTabOptions, y as DetailTab, z as DetailTabsOptions, E as DetailTabs, I as DetailTextOptions, J as DetailText, K as DetailSchema, M as DyrectedContext, N as AIConfig, O as AIPIIConfig, Q as IdStrategy, R as ArrayField, S as FieldType, T as BooleanField, U as AuthConfig, V as AccessPolicyResolver, X as DateField, Y as DateTimeField, Z as EmailField, _ as IconField, $ as ImageField, a0 as JoinField, a1 as JsonField, a2 as MultiSelectField, a3 as NumberField, a4 as ObjectField, a5 as RadioField, a6 as RelationshipField, a7 as RichTextField, a8 as RowField, a9 as SelectField, aa as TextField, ab as TextareaField, ac as TimeField, ad as UrlField } from './app-KSDgfXsw.cjs';
2
- export { ae as AIAction, af as AIActionStatus, ag as AIActionType, ah as AIAuditActionType, ai as AIAuditRecord, aj as AIChunk, ak as AIMessage, al as AIPIIPattern, am as AIRateLimitResult, an as AIRateLimitStore, ao as AIThread, ap as AIToolContext, aq as AIToolDefinition, ar as AI_ACTIONS_COLLECTION, as as AI_AUDIT_COLLECTION, at as AI_CHUNKS_COLLECTION, au as AI_MESSAGES_COLLECTION, av as AI_THREADS_COLLECTION, aw as AccessConfig, ax as AccessFunction, ay as AccessFunctionArgs, az as AccessResult, aA as AccessRule, aB as ActionConfig, aC as ActionConfigBase, aD as ActionConfigWithHandler, aE as ActionConfigWithMutation, aF as ActionContext, aG as ActionType, aH as AdminAuthAccessResolution, aI as AdminAuthClaimMapping, aJ as AdminAuthMember, aK as AdminAuthProvider, aL as AdminAuthProviderMembersConfig, aM as AdminAuthProvisioningMode, aN as AdminAuthResolveAccessArgs, aO as AdminAuthResolvedIdentity, aP as AdminConfig, aQ as AdminDashboardComponentSlots, aR as AdminIconName, aS as AggregateArgs, aT as AggregateCastType, aU as AggregateCollectionResult, aV as AggregateInput, aW as AggregateOperation, aX as AggregateResult, aY as BaseAdminAuthProvider, aZ as BaseFieldAdmin, a_ as BlockVariant, a$ as BlocksField, b0 as BooleanFieldAdmin, b1 as BooleanFormat, b2 as CharacterLimitFieldAdmin, b3 as CharacterLimitFieldConfig, b4 as CollectionAfterChangeHook, b5 as CollectionAfterDeleteHook, b6 as CollectionAfterReadHook, b7 as CollectionAfterReadHookEntry, b8 as CollectionAfterTransitionHook, b9 as CollectionBeforeChangeHook, ba as CollectionBeforeChangeHookEntry, bb as CollectionBeforeDeleteHook, bc as CollectionBeforeReadHook, bd as CollectionBeforeReadHookEntry, be as CollectionBeforeTransitionHook, bf as CollectionIndex, bg as CollectionListComponentSlots, bh as CollectionRAGConfig, bi as CollectionSchemaResult, bj as CollectionSummaryResult, bk as CollectionViewComponentSlots, bl as CountOperation, bm as CustomAdminAuthProvider, bn as DatabaseAdapter, bo as DateFieldAdmin, bp as DateFormat, bq as DefaultValueContext, br as DefineActionOptions, bs as DefineCalendarViewOptions, bt as DefineCardsViewOptions, bu as DefineGanttViewOptions, bv as DefineKanbanViewOptions, bw as DefineTableViewOptions, bx as DefineViewBaseOptions, by as DefineViewOptions, bz as DetailSpan, bA as DisplayTone, bB as DisplayVariant, bC as DistinctCountOperation, bD as DistinctValuesOperation, bE as DynamicOptionItem, bF as DynamicOptionsConfig, bG as DynamicOptionsResolver, bH as DynamicOptionsResolverArgs, bI as DyrectedAIContext, bJ as DyrectedLoggerConfig, bK as DyrectedObservabilityConfig, bL as EmailFieldAdmin, bM as FieldAdminHooks, bN as FieldAdminOnChangeHook, bO as FieldAdminOnChangeHookArgs, bP as FieldAdminOptionsHook, bQ as FieldAdminOptionsHookArgs, bR as FieldAdminOptionsHookResult, bS as FieldAfterReadHook, bT as FieldAfterReadHookArgs, bU as FieldBase, bV as FieldBeforeChangeHook, bW as FieldBeforeChangeHookArgs, bX as FieldHook, bY as FieldHooks, bZ as FileData, b_ as GetDocumentResult, b$ as GlobalAfterChangeHook, c0 as GlobalAfterReadHook, c1 as GlobalAfterReadHookEntry, c2 as GlobalBeforeChangeHook, c3 as GlobalBeforeChangeHookEntry, c4 as GlobalBeforeReadHook, c5 as GlobalBeforeReadHookEntry, c6 as GlobalRAGConfig, c7 as GlobalSchemaResult, c8 as GlobalSummaryResult, c9 as HeadingLevel, ca as HookFunction, cb as IconFieldAdmin, cc as ImageService, cd as ImageTransformOptions, ce as InferAggregateResult, cf as JoinFieldAdmin, cg as JsonFieldAdmin, ch as JsonFormat, ci as LIFECYCLE_EVENT_NAMES, cj as LifecycleEventHandler, ck as LinkFormat, cl as MetricColor, cm as MultiSelectFieldAdmin, cn as NamedAccessPolicy, co as NumberFieldAdmin, cp as NumberFormat, cq as NumberLimitFieldAdmin, cr as NumberLimitFieldConfig, cs as NumericOperation, ct as NumericUpdateOperator, cu as OIDCAdminAuthProvider, cv as OptionFormat, cw as PaginatedResult, cx as PublicAdminAuthProvider, cy as QueryCollectionResult, cz as RAGSearchResult, cA as RadioFieldAdmin, cB as RateLimitConfig, cC as ReadonlyDatabaseAdapter, cD as RichTextFeature, cE as RichTextFieldConfig, cF as SelectFieldAdmin, cG as SqlWhereResult, cH as StorageAdapter, cI as TextFieldAdmin, cJ as TextFormat, cK as TextareaFieldAdmin, cL as TrustProxyConfig, cM as TypedField, cN as UploadConfig, cO as UrlFieldAdmin, cP as UrlLinkValue, cQ as ViewActionFeatures, cR as ViewComponentSlots, cS as ViewConfig, cT as ViewLayout, cU as ViewMetric, cV as ViewSubMetric, cW as WhereClause, cX as WhereOperator, cY as WhereOperatorName, cZ as WordLimitFieldAdmin, c_ as WordLimitFieldConfig, c$ as WorkflowMetadata, d0 as WorkflowRole, d1 as WorkflowState, d2 as WorkflowTransitionContext, d3 as defineAction, d4 as defineCalendarView, d5 as defineCardsView, d6 as defineGanttView, d7 as defineKanbanView, d8 as defineTableView, d9 as defineView, da as isAICollection, db as parseMongoWhere, dc as parseSqlWhere } from './app-KSDgfXsw.cjs';
1
+ import { F as Field, B as Block, C as CollectionConfig, D as DyrectedConfig, A as AdminAuthConfig, P as PublicAdminAuthConfig, G as GlobalConfig, a as DeclarativeHookExpression, W as WorkflowConfig, b as AuthenticatedUser, c as WorkflowTransition, L as LifecycleEventName, d as LifecycleEvent, e as BaseDocument, H as HookRequestContext, f as DetailActionOptions, g as DetailAction, h as DetailComputedOptions, i as ComputedHandler, j as DetailComputed, k as DetailCustomOptions, l as DetailCustom, m as DetailDividerOptions, n as DetailDivider, o as DisplayFieldOptions, p as DetailField, q as DetailItem, r as DetailGridOptions, s as DetailGrid, t as DetailRepeatOptions, u as DetailRepeat, v as DetailSectionOptions, w as DetailSection, x as DetailTabOptions, y as DetailTab, z as DetailTabsOptions, E as DetailTabs, I as DetailTextOptions, J as DetailText, K as DetailSchema, M as DyrectedContext, N as AIConfig, O as AIPIIConfig, Q as IdStrategy, R as CompiledNavTree, S as CompiledNavItem, U as UserNavigationPreferences, T as DefineWorkspaceOptions, V as ArrayField, X as FieldType, Y as BooleanField, Z as AuthConfig, _ as AccessPolicyResolver, $ as DateField, a0 as DateTimeField, a1 as EmailField, a2 as IconField, a3 as ImageField, a4 as JoinField, a5 as JsonField, a6 as MultiSelectField, a7 as NumberField, a8 as ObjectField, a9 as RadioField, aa as RelationshipField, ab as RichTextField, ac as RowField, ad as SelectField, ae as TextField, af as TextareaField, ag as TimeField, ah as UrlField } from './app-CLdT_0se.cjs';
2
+ export { ai as AIAction, aj as AIActionStatus, ak as AIActionType, al as AIAuditActionType, am as AIAuditRecord, an as AIChunk, ao as AIMessage, ap as AIPIIPattern, aq as AIRateLimitResult, ar as AIRateLimitStore, as as AIThread, at as AIToolContext, au as AIToolDefinition, av as AI_ACTIONS_COLLECTION, aw as AI_AUDIT_COLLECTION, ax as AI_CHUNKS_COLLECTION, ay as AI_MESSAGES_COLLECTION, az as AI_THREADS_COLLECTION, aA as AccessConfig, aB as AccessFunction, aC as AccessFunctionArgs, aD as AccessResult, aE as AccessRule, aF as ActionConfig, aG as ActionConfigBase, aH as ActionConfigWithHandler, aI as ActionConfigWithMutation, aJ as ActionContext, aK as ActionType, aL as AdminAuthAccessResolution, aM as AdminAuthClaimMapping, aN as AdminAuthMember, aO as AdminAuthProvider, aP as AdminAuthProviderMembersConfig, aQ as AdminAuthProvisioningMode, aR as AdminAuthResolveAccessArgs, aS as AdminAuthResolvedIdentity, aT as AdminConfig, aU as AdminDashboardComponentSlots, aV as AdminIconName, aW as AggregateArgs, aX as AggregateCastType, aY as AggregateCollectionResult, aZ as AggregateInput, a_ as AggregateOperation, a$ as AggregateResult, b0 as BaseAdminAuthProvider, b1 as BaseFieldAdmin, b2 as BlockVariant, b3 as BlocksField, b4 as BooleanFieldAdmin, b5 as BooleanFormat, b6 as CURRENT_NAV_PREFERENCES_VERSION, b7 as CalendarViewConfig, b8 as CardsViewConfig, b9 as CharacterLimitFieldAdmin, ba as CharacterLimitFieldConfig, bb as CollectionAfterChangeHook, bc as CollectionAfterDeleteHook, bd as CollectionAfterReadHook, be as CollectionAfterReadHookEntry, bf as CollectionAfterTransitionHook, bg as CollectionBeforeChangeHook, bh as CollectionBeforeChangeHookEntry, bi as CollectionBeforeDeleteHook, bj as CollectionBeforeReadHook, bk as CollectionBeforeReadHookEntry, bl as CollectionBeforeTransitionHook, bm as CollectionIndex, bn as CollectionListComponentSlots, bo as CollectionRAGConfig, bp as CollectionSchemaResult, bq as CollectionSummaryResult, br as CollectionViewComponentSlots, bs as CompiledNavGroup, bt as CountOperation, bu as CustomAdminAuthProvider, bv as DEFAULT_USER_NAV_PREFERENCES, bw as DatabaseAdapter, bx as DateFieldAdmin, by as DateFormat, bz as DefaultValueContext, bA as DefineActionOptions, bB as DefineCalendarViewOptions, bC as DefineCardsViewOptions, bD as DefineGanttViewOptions, bE as DefineKanbanViewOptions, bF as DefineTableViewOptions, bG as DefineViewBaseOptions, bH as DefineViewOptions, bI as DetailSpan, bJ as DisplayTone, bK as DisplayVariant, bL as DistinctCountOperation, bM as DistinctValuesOperation, bN as DynamicOptionItem, bO as DynamicOptionsConfig, bP as DynamicOptionsResolver, bQ as DynamicOptionsResolverArgs, bR as DyrectedAIContext, bS as DyrectedLoggerConfig, bT as DyrectedObservabilityConfig, bU as EmailFieldAdmin, bV as FieldAdminHooks, bW as FieldAdminOnChangeHook, bX as FieldAdminOnChangeHookArgs, bY as FieldAdminOptionsHook, bZ as FieldAdminOptionsHookArgs, b_ as FieldAdminOptionsHookResult, b$ as FieldAfterReadHook, c0 as FieldAfterReadHookArgs, c1 as FieldBase, c2 as FieldBeforeChangeHook, c3 as FieldBeforeChangeHookArgs, c4 as FieldHook, c5 as FieldHooks, c6 as FileData, c7 as GanttViewConfig, c8 as GetDocumentResult, c9 as GlobalAfterChangeHook, ca as GlobalAfterReadHook, cb as GlobalAfterReadHookEntry, cc as GlobalBeforeChangeHook, cd as GlobalBeforeChangeHookEntry, ce as GlobalBeforeReadHook, cf as GlobalBeforeReadHookEntry, cg as GlobalRAGConfig, ch as GlobalSchemaResult, ci as GlobalSummaryResult, cj as HeadingLevel, ck as HookFunction, cl as IconFieldAdmin, cm as ImageService, cn as ImageTransformOptions, co as InferAggregateResult, cp as JoinFieldAdmin, cq as JsonFieldAdmin, cr as JsonFormat, cs as KanbanViewConfig, ct as LIFECYCLE_EVENT_NAMES, cu as LifecycleEventHandler, cv as LinkFormat, cw as MetricColor, cx as MultiSelectFieldAdmin, cy as NamedAccessPolicy, cz as NavBadgeConfig, cA as NavGroup, cB as NumberFieldAdmin, cC as NumberFormat, cD as NumberLimitFieldAdmin, cE as NumberLimitFieldConfig, cF as NumericOperation, cG as NumericUpdateOperator, cH as OIDCAdminAuthProvider, cI as OptionFormat, cJ as PaginatedResult, cK as PinnedNavItemRef, cL as PublicAdminAuthProvider, cM as QueryCollectionResult, cN as RAGSearchResult, cO as RadioFieldAdmin, cP as RateLimitConfig, cQ as ReadonlyDatabaseAdapter, cR as RichTextFeature, cS as RichTextFieldConfig, cT as SelectFieldAdmin, cU as SqlWhereResult, cV as StorageAdapter, cW as TableViewConfig, cX as TextFieldAdmin, cY as TextFormat, cZ as TextareaFieldAdmin, c_ as TrustProxyConfig, c$ as TypedField, d0 as UploadConfig, d1 as UrlFieldAdmin, d2 as UrlLinkValue, d3 as ViewActionFeatures, d4 as ViewComponentSlots, d5 as ViewConfig, d6 as ViewConfigBase, d7 as ViewLayout, d8 as ViewMetric, d9 as ViewSubMetric, da as WhereClause, db as WhereOperator, dc as WhereOperatorName, dd as WordLimitFieldAdmin, de as WordLimitFieldConfig, df as WorkflowMetadata, dg as WorkflowRole, dh as WorkflowState, di as WorkflowTransitionContext, dj as defineAction, dk as defineCalendarView, dl as defineCardsView, dm as defineGanttView, dn as defineKanbanView, dp as defineTableView, dq as defineView, dr as defineWorkspace, ds as isAICollection, dt as parseMongoWhere, du as parseSqlWhere } from './app-CLdT_0se.cjs';
3
3
  import jexl from 'jexl';
4
4
  import { Context } from 'hono';
5
5
  export { z } from 'zod';
@@ -1393,6 +1393,63 @@ declare function generateDocumentId(collectionOrSlug?: string | {
1393
1393
  idGenerator?: (slug: string) => string;
1394
1394
  }): string;
1395
1395
 
1396
+ interface ReconciledNavTree extends CompiledNavTree {
1397
+ pinnedItems: CompiledNavItem[];
1398
+ }
1399
+ /**
1400
+ * Reconciles developer-defined navigation tree from code (`baseTree`)
1401
+ * with operator personal/role preferences (`prefs`), ensuring:
1402
+ * 1. Sparse delta merging (newly deployed code resources are never dropped).
1403
+ * 2. User-created custom groups and operational workspaces are injected.
1404
+ * 3. User visibility overrides (`hidden`) are respected.
1405
+ * 4. User ordering overrides (`groupOrder`, `itemOrder`) are applied.
1406
+ * 5. Pinned favorite shortcuts are extracted.
1407
+ * 6. Tombstone shielding: deleted collections/views don't crash the sidebar.
1408
+ */
1409
+ interface ReconcileNavigationOptions {
1410
+ /**
1411
+ * If true, hidden groups, items, and views are retained in the returned tree
1412
+ * (useful for customizers/editors that need to display and unhide them).
1413
+ * If false (default), hidden groups, items, and views are omitted.
1414
+ */
1415
+ includeHidden?: boolean;
1416
+ }
1417
+ declare function reconcileNavigation(baseTree: CompiledNavTree | null | undefined, prefs: UserNavigationPreferences | null | undefined, schemas?: {
1418
+ collections?: Array<any>;
1419
+ globals?: Array<any>;
1420
+ }, options?: ReconcileNavigationOptions): ReconciledNavTree;
1421
+
1422
+ /**
1423
+ * System route prefixes reserved by Dyrected.
1424
+ * Cannot be used as operational workspace slugs.
1425
+ */
1426
+ declare const RESERVED_NAVIGATION_SLUGS: Set<string>;
1427
+ /**
1428
+ * Validates that no navigation item uses a reserved system route slug.
1429
+ */
1430
+ declare function assertValidNavigationSlugs(navigation: DefineWorkspaceOptions[]): void;
1431
+ /**
1432
+ * Compile the complete admin navigation tree from DyrectedConfig.
1433
+ *
1434
+ * Implements a deterministic 5-step compilation pipeline:
1435
+ * 1. Discover all collections, globals, and media resources.
1436
+ * 2. Apply explicit navigation overrides from `config.admin.navigation`.
1437
+ * 3. Evaluate `before` and `after` anchors via relative splicing.
1438
+ * 4. Sort groups and items by `order` and `position: 'first' | 'last'`.
1439
+ * 5. Auto-merge unmentioned resources into fallback sections.
1440
+ */
1441
+ declare function compileNavigation(config: DyrectedConfig<any> | {
1442
+ collections?: readonly any[];
1443
+ globals?: readonly any[];
1444
+ admin?: {
1445
+ navigation?: DefineWorkspaceOptions[];
1446
+ };
1447
+ }): CompiledNavTree;
1448
+ /**
1449
+ * Filter compiled navigation based on user access rules.
1450
+ */
1451
+ declare function pruneNavigationForUser(tree: CompiledNavTree, user?: any): CompiledNavTree;
1452
+
1396
1453
  type TopLevelFieldName<TFields extends readonly Field[]> = Extract<TFields[number], {
1397
1454
  name: string;
1398
1455
  }>["name"];
@@ -1889,4 +1946,4 @@ declare function defineTab<const T extends readonly Field[]>(args: {
1889
1946
  fields: T;
1890
1947
  }): T;
1891
1948
 
1892
- export { AIConfig, type AIErrorCode, AIPIIConfig, type AccessConditions, AccessPolicyResolver, AdminAuthConfig, ArrayField, AuthConfig, type AuthDocFields, AuthenticatedUser, BASE62_ALPHABET, BUILTIN_JEXL_HELPERS, BaseDocument, Block, BooleanField, CROCKFORD_BASE32, CollectionConfig, ComputedHandler, type ConfigDiagnostic, ConfigValidationError, ConflictError, DateField, DateTimeField, type DeclarativeAccessSurface, type DeclarativeAccessValidationIssue, type DeclarativeAdminSurface, type DeclarativeAdminValidationIssue, DeclarativeHookExpression, type DeclarativeHookSurface, type DeclarativeHookValidationIssue, type DeclarativePreviewSurface, type DeclarativePreviewValidationIssue, DetailAction, DetailActionOptions, DetailComputed, DetailComputedOptions, DetailCustom, DetailCustomOptions, DetailDivider, DetailDividerOptions, DetailField, DetailGrid, DetailGridOptions, DetailItem, DetailRepeat, DetailRepeatOptions, DetailSchema, DetailSection, DetailSectionOptions, DetailTab, DetailTabOptions, DetailTabs, DetailTabsOptions, DetailText, DetailTextOptions, DisplayFieldOptions, DuplicateKeyError, DyrectedAIError, DyrectedConfig, DyrectedError, EmailField, type ExprFunction, type ExtractCollectionSlugs, Field, FieldConditionBuilder, FieldType, ForbiddenError, type GenerateIdOptions, GlobalConfig, HookRequestContext, IconField, IdStrategy, ImageField, type InferDocShape, JoinField, JsonField, LIFECYCLE_EVENTS_COLLECTION, LifecycleEvent, LifecycleEventName, MatchBuilder, MultiSelectField, NANOID_ALPHABET, NON_NEGOTIABLE_CREDENTIAL_FIELDS, NotFoundError, NumberField, ObjectField, PII_REGEX_PATTERNS, type Prettify, PublicAdminAuthConfig, type PublishingWorkflowOptions, RadioField, RelationshipField, RichTextField, RowField, type SanitizeDocForAIOptions, SelectField, type SortClause, type SortDirection, type SqlSortDialect, type SystemDocFields, TextField, TextareaField, TimeField, type UploadDocFields, UrlField, ValidationError, WORKFLOW_HISTORY_COLLECTION, type WhenFunction, WorkflowConfig, WorkflowTransition, abs, addDays, asCollection, assertValidAdminConditionsInConfig, assertValidDeclarativeAccessInConfig, assertValidDeclarativeHookExpression, assertValidDeclarativeHookResult, assertValidDeclarativeHooksInConfig, assertValidPreviewUrlsInConfig, availableWorkflowTransitions, buildSqlOrderBy, canViewWorkflowDraft, capitalize, ceil, clamp, coalesce, collectAdminConditionValidationIssues, collectConfigDiagnostics, collectDeclarativeAccessValidationIssues, collectDeclarativeHookValidationIssues, collectPreviewUrlValidationIssues, compact, count, createLifecycleEvent, createWorkflowDocument, defaultValue, defineArrayField, defineBlock, defineBlocksField, defineBooleanField, defineCollection, defineConfig, defineDateField, defineDateTimeField, defineEmailField, defineField, defineGlobal, defineIconField, defineImageField, defineJoinField, defineJsonField, defineMultiSelectField, defineNumberField, defineObjectField, definePublishingWorkflow, defineRadioField, defineRelationshipField, defineRichTextField, defineRowField, defineSelectField, defineTab, defineTextField, defineTextareaField, defineTimeField, defineUrlField, diffDays, dispatchLifecycleEvent, dispatchPendingLifecycleEvents, displayAction, displayComputed, displayCustom, displayCustomComponent, displayDivider, displayField, displayGrid, displayRepeat, displaySection, displayTab, displayTabs, displayText, endsWith, evaluateDetailComputed, evaluateJexl, evaluateJexlSync, executeFieldAfterRead, executeFieldBeforeChange, expr, first, floor, formatConfigDiagnostics, formatDate, formatJexlValue, generateDefaultDetailSchema, generateDocumentId, generateId, generateOpenApi, get, getAdminAuthCollection, getAdminRoleForCollection, getAllowedSitesForUser, getPublicAdminAuthConfig, includes, initializeWorkflowDocument, isConfigValidationError, isDetailItemVisible, isEmpty, isFuture, isPast, isSiteAuthorized, isUserAdmin, join, last, length, lower, maskEmail, maskPhone, maskTextPII, materializeWorkflowDocument, max, min, nanoid, normalizeConfig, normalizeDetailItem, now, numericFieldNames, parseSort, pow, prefixedId, publishedStateName, publishingWorkflow, readingTime, registerJexlHelpers, replace, resolveAdminAuthCollection, resolveAuthorizedSiteId, resolvePrefix, round, runCollectionHooks, sanitizeDocForAI, saveWorkflowDraft, simplePublishingWorkflow, slugify, sqrt, startsWith, sum, today, transitionWorkflow, trim, truncate, ulid, unique, upper, uuid, validateAdminConditionExpression, validateDeclarativeAccessExpression, validateDeclarativeHookExpression, validatePreviewUrlExpression, when, wordCount, workflowCapabilities };
1949
+ export { AIConfig, type AIErrorCode, AIPIIConfig, type AccessConditions, AccessPolicyResolver, AdminAuthConfig, ArrayField, AuthConfig, type AuthDocFields, AuthenticatedUser, BASE62_ALPHABET, BUILTIN_JEXL_HELPERS, BaseDocument, Block, BooleanField, CROCKFORD_BASE32, CollectionConfig, CompiledNavItem, CompiledNavTree, ComputedHandler, type ConfigDiagnostic, ConfigValidationError, ConflictError, DateField, DateTimeField, type DeclarativeAccessSurface, type DeclarativeAccessValidationIssue, type DeclarativeAdminSurface, type DeclarativeAdminValidationIssue, DeclarativeHookExpression, type DeclarativeHookSurface, type DeclarativeHookValidationIssue, type DeclarativePreviewSurface, type DeclarativePreviewValidationIssue, DefineWorkspaceOptions, DetailAction, DetailActionOptions, DetailComputed, DetailComputedOptions, DetailCustom, DetailCustomOptions, DetailDivider, DetailDividerOptions, DetailField, DetailGrid, DetailGridOptions, DetailItem, DetailRepeat, DetailRepeatOptions, DetailSchema, DetailSection, DetailSectionOptions, DetailTab, DetailTabOptions, DetailTabs, DetailTabsOptions, DetailText, DetailTextOptions, DisplayFieldOptions, DuplicateKeyError, DyrectedAIError, DyrectedConfig, DyrectedError, EmailField, type ExprFunction, type ExtractCollectionSlugs, Field, FieldConditionBuilder, FieldType, ForbiddenError, type GenerateIdOptions, GlobalConfig, HookRequestContext, IconField, IdStrategy, ImageField, type InferDocShape, JoinField, JsonField, LIFECYCLE_EVENTS_COLLECTION, LifecycleEvent, LifecycleEventName, MatchBuilder, MultiSelectField, NANOID_ALPHABET, NON_NEGOTIABLE_CREDENTIAL_FIELDS, NotFoundError, NumberField, ObjectField, PII_REGEX_PATTERNS, type Prettify, PublicAdminAuthConfig, type PublishingWorkflowOptions, RESERVED_NAVIGATION_SLUGS, RadioField, type ReconcileNavigationOptions, type ReconciledNavTree, RelationshipField, RichTextField, RowField, type SanitizeDocForAIOptions, SelectField, type SortClause, type SortDirection, type SqlSortDialect, type SystemDocFields, TextField, TextareaField, TimeField, type UploadDocFields, UrlField, UserNavigationPreferences, ValidationError, WORKFLOW_HISTORY_COLLECTION, type WhenFunction, WorkflowConfig, WorkflowTransition, abs, addDays, asCollection, assertValidAdminConditionsInConfig, assertValidDeclarativeAccessInConfig, assertValidDeclarativeHookExpression, assertValidDeclarativeHookResult, assertValidDeclarativeHooksInConfig, assertValidNavigationSlugs, assertValidPreviewUrlsInConfig, availableWorkflowTransitions, buildSqlOrderBy, canViewWorkflowDraft, capitalize, ceil, clamp, coalesce, collectAdminConditionValidationIssues, collectConfigDiagnostics, collectDeclarativeAccessValidationIssues, collectDeclarativeHookValidationIssues, collectPreviewUrlValidationIssues, compact, compileNavigation, count, createLifecycleEvent, createWorkflowDocument, defaultValue, defineArrayField, defineBlock, defineBlocksField, defineBooleanField, defineCollection, defineConfig, defineDateField, defineDateTimeField, defineEmailField, defineField, defineGlobal, defineIconField, defineImageField, defineJoinField, defineJsonField, defineMultiSelectField, defineNumberField, defineObjectField, definePublishingWorkflow, defineRadioField, defineRelationshipField, defineRichTextField, defineRowField, defineSelectField, defineTab, defineTextField, defineTextareaField, defineTimeField, defineUrlField, diffDays, dispatchLifecycleEvent, dispatchPendingLifecycleEvents, displayAction, displayComputed, displayCustom, displayCustomComponent, displayDivider, displayField, displayGrid, displayRepeat, displaySection, displayTab, displayTabs, displayText, endsWith, evaluateDetailComputed, evaluateJexl, evaluateJexlSync, executeFieldAfterRead, executeFieldBeforeChange, expr, first, floor, formatConfigDiagnostics, formatDate, formatJexlValue, generateDefaultDetailSchema, generateDocumentId, generateId, generateOpenApi, get, getAdminAuthCollection, getAdminRoleForCollection, getAllowedSitesForUser, getPublicAdminAuthConfig, includes, initializeWorkflowDocument, isConfigValidationError, isDetailItemVisible, isEmpty, isFuture, isPast, isSiteAuthorized, isUserAdmin, join, last, length, lower, maskEmail, maskPhone, maskTextPII, materializeWorkflowDocument, max, min, nanoid, normalizeConfig, normalizeDetailItem, now, numericFieldNames, parseSort, pow, prefixedId, pruneNavigationForUser, publishedStateName, publishingWorkflow, readingTime, reconcileNavigation, registerJexlHelpers, replace, resolveAdminAuthCollection, resolveAuthorizedSiteId, resolvePrefix, round, runCollectionHooks, sanitizeDocForAI, saveWorkflowDraft, simplePublishingWorkflow, slugify, sqrt, startsWith, sum, today, transitionWorkflow, trim, truncate, ulid, unique, upper, uuid, validateAdminConditionExpression, validateDeclarativeAccessExpression, validateDeclarativeHookExpression, validatePreviewUrlExpression, when, wordCount, workflowCapabilities };
package/dist/index.d.ts CHANGED
@@ -1,5 +1,5 @@
1
- import { F as Field, B as Block, C as CollectionConfig, D as DyrectedConfig, A as AdminAuthConfig, P as PublicAdminAuthConfig, G as GlobalConfig, a as DeclarativeHookExpression, W as WorkflowConfig, b as AuthenticatedUser, c as WorkflowTransition, L as LifecycleEventName, d as LifecycleEvent, e as BaseDocument, H as HookRequestContext, f as DetailActionOptions, g as DetailAction, h as DetailComputedOptions, i as ComputedHandler, j as DetailComputed, k as DetailCustomOptions, l as DetailCustom, m as DetailDividerOptions, n as DetailDivider, o as DisplayFieldOptions, p as DetailField, q as DetailItem, r as DetailGridOptions, s as DetailGrid, t as DetailRepeatOptions, u as DetailRepeat, v as DetailSectionOptions, w as DetailSection, x as DetailTabOptions, y as DetailTab, z as DetailTabsOptions, E as DetailTabs, I as DetailTextOptions, J as DetailText, K as DetailSchema, M as DyrectedContext, N as AIConfig, O as AIPIIConfig, Q as IdStrategy, R as ArrayField, S as FieldType, T as BooleanField, U as AuthConfig, V as AccessPolicyResolver, X as DateField, Y as DateTimeField, Z as EmailField, _ as IconField, $ as ImageField, a0 as JoinField, a1 as JsonField, a2 as MultiSelectField, a3 as NumberField, a4 as ObjectField, a5 as RadioField, a6 as RelationshipField, a7 as RichTextField, a8 as RowField, a9 as SelectField, aa as TextField, ab as TextareaField, ac as TimeField, ad as UrlField } from './app-KSDgfXsw.js';
2
- export { ae as AIAction, af as AIActionStatus, ag as AIActionType, ah as AIAuditActionType, ai as AIAuditRecord, aj as AIChunk, ak as AIMessage, al as AIPIIPattern, am as AIRateLimitResult, an as AIRateLimitStore, ao as AIThread, ap as AIToolContext, aq as AIToolDefinition, ar as AI_ACTIONS_COLLECTION, as as AI_AUDIT_COLLECTION, at as AI_CHUNKS_COLLECTION, au as AI_MESSAGES_COLLECTION, av as AI_THREADS_COLLECTION, aw as AccessConfig, ax as AccessFunction, ay as AccessFunctionArgs, az as AccessResult, aA as AccessRule, aB as ActionConfig, aC as ActionConfigBase, aD as ActionConfigWithHandler, aE as ActionConfigWithMutation, aF as ActionContext, aG as ActionType, aH as AdminAuthAccessResolution, aI as AdminAuthClaimMapping, aJ as AdminAuthMember, aK as AdminAuthProvider, aL as AdminAuthProviderMembersConfig, aM as AdminAuthProvisioningMode, aN as AdminAuthResolveAccessArgs, aO as AdminAuthResolvedIdentity, aP as AdminConfig, aQ as AdminDashboardComponentSlots, aR as AdminIconName, aS as AggregateArgs, aT as AggregateCastType, aU as AggregateCollectionResult, aV as AggregateInput, aW as AggregateOperation, aX as AggregateResult, aY as BaseAdminAuthProvider, aZ as BaseFieldAdmin, a_ as BlockVariant, a$ as BlocksField, b0 as BooleanFieldAdmin, b1 as BooleanFormat, b2 as CharacterLimitFieldAdmin, b3 as CharacterLimitFieldConfig, b4 as CollectionAfterChangeHook, b5 as CollectionAfterDeleteHook, b6 as CollectionAfterReadHook, b7 as CollectionAfterReadHookEntry, b8 as CollectionAfterTransitionHook, b9 as CollectionBeforeChangeHook, ba as CollectionBeforeChangeHookEntry, bb as CollectionBeforeDeleteHook, bc as CollectionBeforeReadHook, bd as CollectionBeforeReadHookEntry, be as CollectionBeforeTransitionHook, bf as CollectionIndex, bg as CollectionListComponentSlots, bh as CollectionRAGConfig, bi as CollectionSchemaResult, bj as CollectionSummaryResult, bk as CollectionViewComponentSlots, bl as CountOperation, bm as CustomAdminAuthProvider, bn as DatabaseAdapter, bo as DateFieldAdmin, bp as DateFormat, bq as DefaultValueContext, br as DefineActionOptions, bs as DefineCalendarViewOptions, bt as DefineCardsViewOptions, bu as DefineGanttViewOptions, bv as DefineKanbanViewOptions, bw as DefineTableViewOptions, bx as DefineViewBaseOptions, by as DefineViewOptions, bz as DetailSpan, bA as DisplayTone, bB as DisplayVariant, bC as DistinctCountOperation, bD as DistinctValuesOperation, bE as DynamicOptionItem, bF as DynamicOptionsConfig, bG as DynamicOptionsResolver, bH as DynamicOptionsResolverArgs, bI as DyrectedAIContext, bJ as DyrectedLoggerConfig, bK as DyrectedObservabilityConfig, bL as EmailFieldAdmin, bM as FieldAdminHooks, bN as FieldAdminOnChangeHook, bO as FieldAdminOnChangeHookArgs, bP as FieldAdminOptionsHook, bQ as FieldAdminOptionsHookArgs, bR as FieldAdminOptionsHookResult, bS as FieldAfterReadHook, bT as FieldAfterReadHookArgs, bU as FieldBase, bV as FieldBeforeChangeHook, bW as FieldBeforeChangeHookArgs, bX as FieldHook, bY as FieldHooks, bZ as FileData, b_ as GetDocumentResult, b$ as GlobalAfterChangeHook, c0 as GlobalAfterReadHook, c1 as GlobalAfterReadHookEntry, c2 as GlobalBeforeChangeHook, c3 as GlobalBeforeChangeHookEntry, c4 as GlobalBeforeReadHook, c5 as GlobalBeforeReadHookEntry, c6 as GlobalRAGConfig, c7 as GlobalSchemaResult, c8 as GlobalSummaryResult, c9 as HeadingLevel, ca as HookFunction, cb as IconFieldAdmin, cc as ImageService, cd as ImageTransformOptions, ce as InferAggregateResult, cf as JoinFieldAdmin, cg as JsonFieldAdmin, ch as JsonFormat, ci as LIFECYCLE_EVENT_NAMES, cj as LifecycleEventHandler, ck as LinkFormat, cl as MetricColor, cm as MultiSelectFieldAdmin, cn as NamedAccessPolicy, co as NumberFieldAdmin, cp as NumberFormat, cq as NumberLimitFieldAdmin, cr as NumberLimitFieldConfig, cs as NumericOperation, ct as NumericUpdateOperator, cu as OIDCAdminAuthProvider, cv as OptionFormat, cw as PaginatedResult, cx as PublicAdminAuthProvider, cy as QueryCollectionResult, cz as RAGSearchResult, cA as RadioFieldAdmin, cB as RateLimitConfig, cC as ReadonlyDatabaseAdapter, cD as RichTextFeature, cE as RichTextFieldConfig, cF as SelectFieldAdmin, cG as SqlWhereResult, cH as StorageAdapter, cI as TextFieldAdmin, cJ as TextFormat, cK as TextareaFieldAdmin, cL as TrustProxyConfig, cM as TypedField, cN as UploadConfig, cO as UrlFieldAdmin, cP as UrlLinkValue, cQ as ViewActionFeatures, cR as ViewComponentSlots, cS as ViewConfig, cT as ViewLayout, cU as ViewMetric, cV as ViewSubMetric, cW as WhereClause, cX as WhereOperator, cY as WhereOperatorName, cZ as WordLimitFieldAdmin, c_ as WordLimitFieldConfig, c$ as WorkflowMetadata, d0 as WorkflowRole, d1 as WorkflowState, d2 as WorkflowTransitionContext, d3 as defineAction, d4 as defineCalendarView, d5 as defineCardsView, d6 as defineGanttView, d7 as defineKanbanView, d8 as defineTableView, d9 as defineView, da as isAICollection, db as parseMongoWhere, dc as parseSqlWhere } from './app-KSDgfXsw.js';
1
+ import { F as Field, B as Block, C as CollectionConfig, D as DyrectedConfig, A as AdminAuthConfig, P as PublicAdminAuthConfig, G as GlobalConfig, a as DeclarativeHookExpression, W as WorkflowConfig, b as AuthenticatedUser, c as WorkflowTransition, L as LifecycleEventName, d as LifecycleEvent, e as BaseDocument, H as HookRequestContext, f as DetailActionOptions, g as DetailAction, h as DetailComputedOptions, i as ComputedHandler, j as DetailComputed, k as DetailCustomOptions, l as DetailCustom, m as DetailDividerOptions, n as DetailDivider, o as DisplayFieldOptions, p as DetailField, q as DetailItem, r as DetailGridOptions, s as DetailGrid, t as DetailRepeatOptions, u as DetailRepeat, v as DetailSectionOptions, w as DetailSection, x as DetailTabOptions, y as DetailTab, z as DetailTabsOptions, E as DetailTabs, I as DetailTextOptions, J as DetailText, K as DetailSchema, M as DyrectedContext, N as AIConfig, O as AIPIIConfig, Q as IdStrategy, R as CompiledNavTree, S as CompiledNavItem, U as UserNavigationPreferences, T as DefineWorkspaceOptions, V as ArrayField, X as FieldType, Y as BooleanField, Z as AuthConfig, _ as AccessPolicyResolver, $ as DateField, a0 as DateTimeField, a1 as EmailField, a2 as IconField, a3 as ImageField, a4 as JoinField, a5 as JsonField, a6 as MultiSelectField, a7 as NumberField, a8 as ObjectField, a9 as RadioField, aa as RelationshipField, ab as RichTextField, ac as RowField, ad as SelectField, ae as TextField, af as TextareaField, ag as TimeField, ah as UrlField } from './app-CLdT_0se.js';
2
+ export { ai as AIAction, aj as AIActionStatus, ak as AIActionType, al as AIAuditActionType, am as AIAuditRecord, an as AIChunk, ao as AIMessage, ap as AIPIIPattern, aq as AIRateLimitResult, ar as AIRateLimitStore, as as AIThread, at as AIToolContext, au as AIToolDefinition, av as AI_ACTIONS_COLLECTION, aw as AI_AUDIT_COLLECTION, ax as AI_CHUNKS_COLLECTION, ay as AI_MESSAGES_COLLECTION, az as AI_THREADS_COLLECTION, aA as AccessConfig, aB as AccessFunction, aC as AccessFunctionArgs, aD as AccessResult, aE as AccessRule, aF as ActionConfig, aG as ActionConfigBase, aH as ActionConfigWithHandler, aI as ActionConfigWithMutation, aJ as ActionContext, aK as ActionType, aL as AdminAuthAccessResolution, aM as AdminAuthClaimMapping, aN as AdminAuthMember, aO as AdminAuthProvider, aP as AdminAuthProviderMembersConfig, aQ as AdminAuthProvisioningMode, aR as AdminAuthResolveAccessArgs, aS as AdminAuthResolvedIdentity, aT as AdminConfig, aU as AdminDashboardComponentSlots, aV as AdminIconName, aW as AggregateArgs, aX as AggregateCastType, aY as AggregateCollectionResult, aZ as AggregateInput, a_ as AggregateOperation, a$ as AggregateResult, b0 as BaseAdminAuthProvider, b1 as BaseFieldAdmin, b2 as BlockVariant, b3 as BlocksField, b4 as BooleanFieldAdmin, b5 as BooleanFormat, b6 as CURRENT_NAV_PREFERENCES_VERSION, b7 as CalendarViewConfig, b8 as CardsViewConfig, b9 as CharacterLimitFieldAdmin, ba as CharacterLimitFieldConfig, bb as CollectionAfterChangeHook, bc as CollectionAfterDeleteHook, bd as CollectionAfterReadHook, be as CollectionAfterReadHookEntry, bf as CollectionAfterTransitionHook, bg as CollectionBeforeChangeHook, bh as CollectionBeforeChangeHookEntry, bi as CollectionBeforeDeleteHook, bj as CollectionBeforeReadHook, bk as CollectionBeforeReadHookEntry, bl as CollectionBeforeTransitionHook, bm as CollectionIndex, bn as CollectionListComponentSlots, bo as CollectionRAGConfig, bp as CollectionSchemaResult, bq as CollectionSummaryResult, br as CollectionViewComponentSlots, bs as CompiledNavGroup, bt as CountOperation, bu as CustomAdminAuthProvider, bv as DEFAULT_USER_NAV_PREFERENCES, bw as DatabaseAdapter, bx as DateFieldAdmin, by as DateFormat, bz as DefaultValueContext, bA as DefineActionOptions, bB as DefineCalendarViewOptions, bC as DefineCardsViewOptions, bD as DefineGanttViewOptions, bE as DefineKanbanViewOptions, bF as DefineTableViewOptions, bG as DefineViewBaseOptions, bH as DefineViewOptions, bI as DetailSpan, bJ as DisplayTone, bK as DisplayVariant, bL as DistinctCountOperation, bM as DistinctValuesOperation, bN as DynamicOptionItem, bO as DynamicOptionsConfig, bP as DynamicOptionsResolver, bQ as DynamicOptionsResolverArgs, bR as DyrectedAIContext, bS as DyrectedLoggerConfig, bT as DyrectedObservabilityConfig, bU as EmailFieldAdmin, bV as FieldAdminHooks, bW as FieldAdminOnChangeHook, bX as FieldAdminOnChangeHookArgs, bY as FieldAdminOptionsHook, bZ as FieldAdminOptionsHookArgs, b_ as FieldAdminOptionsHookResult, b$ as FieldAfterReadHook, c0 as FieldAfterReadHookArgs, c1 as FieldBase, c2 as FieldBeforeChangeHook, c3 as FieldBeforeChangeHookArgs, c4 as FieldHook, c5 as FieldHooks, c6 as FileData, c7 as GanttViewConfig, c8 as GetDocumentResult, c9 as GlobalAfterChangeHook, ca as GlobalAfterReadHook, cb as GlobalAfterReadHookEntry, cc as GlobalBeforeChangeHook, cd as GlobalBeforeChangeHookEntry, ce as GlobalBeforeReadHook, cf as GlobalBeforeReadHookEntry, cg as GlobalRAGConfig, ch as GlobalSchemaResult, ci as GlobalSummaryResult, cj as HeadingLevel, ck as HookFunction, cl as IconFieldAdmin, cm as ImageService, cn as ImageTransformOptions, co as InferAggregateResult, cp as JoinFieldAdmin, cq as JsonFieldAdmin, cr as JsonFormat, cs as KanbanViewConfig, ct as LIFECYCLE_EVENT_NAMES, cu as LifecycleEventHandler, cv as LinkFormat, cw as MetricColor, cx as MultiSelectFieldAdmin, cy as NamedAccessPolicy, cz as NavBadgeConfig, cA as NavGroup, cB as NumberFieldAdmin, cC as NumberFormat, cD as NumberLimitFieldAdmin, cE as NumberLimitFieldConfig, cF as NumericOperation, cG as NumericUpdateOperator, cH as OIDCAdminAuthProvider, cI as OptionFormat, cJ as PaginatedResult, cK as PinnedNavItemRef, cL as PublicAdminAuthProvider, cM as QueryCollectionResult, cN as RAGSearchResult, cO as RadioFieldAdmin, cP as RateLimitConfig, cQ as ReadonlyDatabaseAdapter, cR as RichTextFeature, cS as RichTextFieldConfig, cT as SelectFieldAdmin, cU as SqlWhereResult, cV as StorageAdapter, cW as TableViewConfig, cX as TextFieldAdmin, cY as TextFormat, cZ as TextareaFieldAdmin, c_ as TrustProxyConfig, c$ as TypedField, d0 as UploadConfig, d1 as UrlFieldAdmin, d2 as UrlLinkValue, d3 as ViewActionFeatures, d4 as ViewComponentSlots, d5 as ViewConfig, d6 as ViewConfigBase, d7 as ViewLayout, d8 as ViewMetric, d9 as ViewSubMetric, da as WhereClause, db as WhereOperator, dc as WhereOperatorName, dd as WordLimitFieldAdmin, de as WordLimitFieldConfig, df as WorkflowMetadata, dg as WorkflowRole, dh as WorkflowState, di as WorkflowTransitionContext, dj as defineAction, dk as defineCalendarView, dl as defineCardsView, dm as defineGanttView, dn as defineKanbanView, dp as defineTableView, dq as defineView, dr as defineWorkspace, ds as isAICollection, dt as parseMongoWhere, du as parseSqlWhere } from './app-CLdT_0se.js';
3
3
  import jexl from 'jexl';
4
4
  import { Context } from 'hono';
5
5
  export { z } from 'zod';
@@ -1393,6 +1393,63 @@ declare function generateDocumentId(collectionOrSlug?: string | {
1393
1393
  idGenerator?: (slug: string) => string;
1394
1394
  }): string;
1395
1395
 
1396
+ interface ReconciledNavTree extends CompiledNavTree {
1397
+ pinnedItems: CompiledNavItem[];
1398
+ }
1399
+ /**
1400
+ * Reconciles developer-defined navigation tree from code (`baseTree`)
1401
+ * with operator personal/role preferences (`prefs`), ensuring:
1402
+ * 1. Sparse delta merging (newly deployed code resources are never dropped).
1403
+ * 2. User-created custom groups and operational workspaces are injected.
1404
+ * 3. User visibility overrides (`hidden`) are respected.
1405
+ * 4. User ordering overrides (`groupOrder`, `itemOrder`) are applied.
1406
+ * 5. Pinned favorite shortcuts are extracted.
1407
+ * 6. Tombstone shielding: deleted collections/views don't crash the sidebar.
1408
+ */
1409
+ interface ReconcileNavigationOptions {
1410
+ /**
1411
+ * If true, hidden groups, items, and views are retained in the returned tree
1412
+ * (useful for customizers/editors that need to display and unhide them).
1413
+ * If false (default), hidden groups, items, and views are omitted.
1414
+ */
1415
+ includeHidden?: boolean;
1416
+ }
1417
+ declare function reconcileNavigation(baseTree: CompiledNavTree | null | undefined, prefs: UserNavigationPreferences | null | undefined, schemas?: {
1418
+ collections?: Array<any>;
1419
+ globals?: Array<any>;
1420
+ }, options?: ReconcileNavigationOptions): ReconciledNavTree;
1421
+
1422
+ /**
1423
+ * System route prefixes reserved by Dyrected.
1424
+ * Cannot be used as operational workspace slugs.
1425
+ */
1426
+ declare const RESERVED_NAVIGATION_SLUGS: Set<string>;
1427
+ /**
1428
+ * Validates that no navigation item uses a reserved system route slug.
1429
+ */
1430
+ declare function assertValidNavigationSlugs(navigation: DefineWorkspaceOptions[]): void;
1431
+ /**
1432
+ * Compile the complete admin navigation tree from DyrectedConfig.
1433
+ *
1434
+ * Implements a deterministic 5-step compilation pipeline:
1435
+ * 1. Discover all collections, globals, and media resources.
1436
+ * 2. Apply explicit navigation overrides from `config.admin.navigation`.
1437
+ * 3. Evaluate `before` and `after` anchors via relative splicing.
1438
+ * 4. Sort groups and items by `order` and `position: 'first' | 'last'`.
1439
+ * 5. Auto-merge unmentioned resources into fallback sections.
1440
+ */
1441
+ declare function compileNavigation(config: DyrectedConfig<any> | {
1442
+ collections?: readonly any[];
1443
+ globals?: readonly any[];
1444
+ admin?: {
1445
+ navigation?: DefineWorkspaceOptions[];
1446
+ };
1447
+ }): CompiledNavTree;
1448
+ /**
1449
+ * Filter compiled navigation based on user access rules.
1450
+ */
1451
+ declare function pruneNavigationForUser(tree: CompiledNavTree, user?: any): CompiledNavTree;
1452
+
1396
1453
  type TopLevelFieldName<TFields extends readonly Field[]> = Extract<TFields[number], {
1397
1454
  name: string;
1398
1455
  }>["name"];
@@ -1889,4 +1946,4 @@ declare function defineTab<const T extends readonly Field[]>(args: {
1889
1946
  fields: T;
1890
1947
  }): T;
1891
1948
 
1892
- export { AIConfig, type AIErrorCode, AIPIIConfig, type AccessConditions, AccessPolicyResolver, AdminAuthConfig, ArrayField, AuthConfig, type AuthDocFields, AuthenticatedUser, BASE62_ALPHABET, BUILTIN_JEXL_HELPERS, BaseDocument, Block, BooleanField, CROCKFORD_BASE32, CollectionConfig, ComputedHandler, type ConfigDiagnostic, ConfigValidationError, ConflictError, DateField, DateTimeField, type DeclarativeAccessSurface, type DeclarativeAccessValidationIssue, type DeclarativeAdminSurface, type DeclarativeAdminValidationIssue, DeclarativeHookExpression, type DeclarativeHookSurface, type DeclarativeHookValidationIssue, type DeclarativePreviewSurface, type DeclarativePreviewValidationIssue, DetailAction, DetailActionOptions, DetailComputed, DetailComputedOptions, DetailCustom, DetailCustomOptions, DetailDivider, DetailDividerOptions, DetailField, DetailGrid, DetailGridOptions, DetailItem, DetailRepeat, DetailRepeatOptions, DetailSchema, DetailSection, DetailSectionOptions, DetailTab, DetailTabOptions, DetailTabs, DetailTabsOptions, DetailText, DetailTextOptions, DisplayFieldOptions, DuplicateKeyError, DyrectedAIError, DyrectedConfig, DyrectedError, EmailField, type ExprFunction, type ExtractCollectionSlugs, Field, FieldConditionBuilder, FieldType, ForbiddenError, type GenerateIdOptions, GlobalConfig, HookRequestContext, IconField, IdStrategy, ImageField, type InferDocShape, JoinField, JsonField, LIFECYCLE_EVENTS_COLLECTION, LifecycleEvent, LifecycleEventName, MatchBuilder, MultiSelectField, NANOID_ALPHABET, NON_NEGOTIABLE_CREDENTIAL_FIELDS, NotFoundError, NumberField, ObjectField, PII_REGEX_PATTERNS, type Prettify, PublicAdminAuthConfig, type PublishingWorkflowOptions, RadioField, RelationshipField, RichTextField, RowField, type SanitizeDocForAIOptions, SelectField, type SortClause, type SortDirection, type SqlSortDialect, type SystemDocFields, TextField, TextareaField, TimeField, type UploadDocFields, UrlField, ValidationError, WORKFLOW_HISTORY_COLLECTION, type WhenFunction, WorkflowConfig, WorkflowTransition, abs, addDays, asCollection, assertValidAdminConditionsInConfig, assertValidDeclarativeAccessInConfig, assertValidDeclarativeHookExpression, assertValidDeclarativeHookResult, assertValidDeclarativeHooksInConfig, assertValidPreviewUrlsInConfig, availableWorkflowTransitions, buildSqlOrderBy, canViewWorkflowDraft, capitalize, ceil, clamp, coalesce, collectAdminConditionValidationIssues, collectConfigDiagnostics, collectDeclarativeAccessValidationIssues, collectDeclarativeHookValidationIssues, collectPreviewUrlValidationIssues, compact, count, createLifecycleEvent, createWorkflowDocument, defaultValue, defineArrayField, defineBlock, defineBlocksField, defineBooleanField, defineCollection, defineConfig, defineDateField, defineDateTimeField, defineEmailField, defineField, defineGlobal, defineIconField, defineImageField, defineJoinField, defineJsonField, defineMultiSelectField, defineNumberField, defineObjectField, definePublishingWorkflow, defineRadioField, defineRelationshipField, defineRichTextField, defineRowField, defineSelectField, defineTab, defineTextField, defineTextareaField, defineTimeField, defineUrlField, diffDays, dispatchLifecycleEvent, dispatchPendingLifecycleEvents, displayAction, displayComputed, displayCustom, displayCustomComponent, displayDivider, displayField, displayGrid, displayRepeat, displaySection, displayTab, displayTabs, displayText, endsWith, evaluateDetailComputed, evaluateJexl, evaluateJexlSync, executeFieldAfterRead, executeFieldBeforeChange, expr, first, floor, formatConfigDiagnostics, formatDate, formatJexlValue, generateDefaultDetailSchema, generateDocumentId, generateId, generateOpenApi, get, getAdminAuthCollection, getAdminRoleForCollection, getAllowedSitesForUser, getPublicAdminAuthConfig, includes, initializeWorkflowDocument, isConfigValidationError, isDetailItemVisible, isEmpty, isFuture, isPast, isSiteAuthorized, isUserAdmin, join, last, length, lower, maskEmail, maskPhone, maskTextPII, materializeWorkflowDocument, max, min, nanoid, normalizeConfig, normalizeDetailItem, now, numericFieldNames, parseSort, pow, prefixedId, publishedStateName, publishingWorkflow, readingTime, registerJexlHelpers, replace, resolveAdminAuthCollection, resolveAuthorizedSiteId, resolvePrefix, round, runCollectionHooks, sanitizeDocForAI, saveWorkflowDraft, simplePublishingWorkflow, slugify, sqrt, startsWith, sum, today, transitionWorkflow, trim, truncate, ulid, unique, upper, uuid, validateAdminConditionExpression, validateDeclarativeAccessExpression, validateDeclarativeHookExpression, validatePreviewUrlExpression, when, wordCount, workflowCapabilities };
1949
+ export { AIConfig, type AIErrorCode, AIPIIConfig, type AccessConditions, AccessPolicyResolver, AdminAuthConfig, ArrayField, AuthConfig, type AuthDocFields, AuthenticatedUser, BASE62_ALPHABET, BUILTIN_JEXL_HELPERS, BaseDocument, Block, BooleanField, CROCKFORD_BASE32, CollectionConfig, CompiledNavItem, CompiledNavTree, ComputedHandler, type ConfigDiagnostic, ConfigValidationError, ConflictError, DateField, DateTimeField, type DeclarativeAccessSurface, type DeclarativeAccessValidationIssue, type DeclarativeAdminSurface, type DeclarativeAdminValidationIssue, DeclarativeHookExpression, type DeclarativeHookSurface, type DeclarativeHookValidationIssue, type DeclarativePreviewSurface, type DeclarativePreviewValidationIssue, DefineWorkspaceOptions, DetailAction, DetailActionOptions, DetailComputed, DetailComputedOptions, DetailCustom, DetailCustomOptions, DetailDivider, DetailDividerOptions, DetailField, DetailGrid, DetailGridOptions, DetailItem, DetailRepeat, DetailRepeatOptions, DetailSchema, DetailSection, DetailSectionOptions, DetailTab, DetailTabOptions, DetailTabs, DetailTabsOptions, DetailText, DetailTextOptions, DisplayFieldOptions, DuplicateKeyError, DyrectedAIError, DyrectedConfig, DyrectedError, EmailField, type ExprFunction, type ExtractCollectionSlugs, Field, FieldConditionBuilder, FieldType, ForbiddenError, type GenerateIdOptions, GlobalConfig, HookRequestContext, IconField, IdStrategy, ImageField, type InferDocShape, JoinField, JsonField, LIFECYCLE_EVENTS_COLLECTION, LifecycleEvent, LifecycleEventName, MatchBuilder, MultiSelectField, NANOID_ALPHABET, NON_NEGOTIABLE_CREDENTIAL_FIELDS, NotFoundError, NumberField, ObjectField, PII_REGEX_PATTERNS, type Prettify, PublicAdminAuthConfig, type PublishingWorkflowOptions, RESERVED_NAVIGATION_SLUGS, RadioField, type ReconcileNavigationOptions, type ReconciledNavTree, RelationshipField, RichTextField, RowField, type SanitizeDocForAIOptions, SelectField, type SortClause, type SortDirection, type SqlSortDialect, type SystemDocFields, TextField, TextareaField, TimeField, type UploadDocFields, UrlField, UserNavigationPreferences, ValidationError, WORKFLOW_HISTORY_COLLECTION, type WhenFunction, WorkflowConfig, WorkflowTransition, abs, addDays, asCollection, assertValidAdminConditionsInConfig, assertValidDeclarativeAccessInConfig, assertValidDeclarativeHookExpression, assertValidDeclarativeHookResult, assertValidDeclarativeHooksInConfig, assertValidNavigationSlugs, assertValidPreviewUrlsInConfig, availableWorkflowTransitions, buildSqlOrderBy, canViewWorkflowDraft, capitalize, ceil, clamp, coalesce, collectAdminConditionValidationIssues, collectConfigDiagnostics, collectDeclarativeAccessValidationIssues, collectDeclarativeHookValidationIssues, collectPreviewUrlValidationIssues, compact, compileNavigation, count, createLifecycleEvent, createWorkflowDocument, defaultValue, defineArrayField, defineBlock, defineBlocksField, defineBooleanField, defineCollection, defineConfig, defineDateField, defineDateTimeField, defineEmailField, defineField, defineGlobal, defineIconField, defineImageField, defineJoinField, defineJsonField, defineMultiSelectField, defineNumberField, defineObjectField, definePublishingWorkflow, defineRadioField, defineRelationshipField, defineRichTextField, defineRowField, defineSelectField, defineTab, defineTextField, defineTextareaField, defineTimeField, defineUrlField, diffDays, dispatchLifecycleEvent, dispatchPendingLifecycleEvents, displayAction, displayComputed, displayCustom, displayCustomComponent, displayDivider, displayField, displayGrid, displayRepeat, displaySection, displayTab, displayTabs, displayText, endsWith, evaluateDetailComputed, evaluateJexl, evaluateJexlSync, executeFieldAfterRead, executeFieldBeforeChange, expr, first, floor, formatConfigDiagnostics, formatDate, formatJexlValue, generateDefaultDetailSchema, generateDocumentId, generateId, generateOpenApi, get, getAdminAuthCollection, getAdminRoleForCollection, getAllowedSitesForUser, getPublicAdminAuthConfig, includes, initializeWorkflowDocument, isConfigValidationError, isDetailItemVisible, isEmpty, isFuture, isPast, isSiteAuthorized, isUserAdmin, join, last, length, lower, maskEmail, maskPhone, maskTextPII, materializeWorkflowDocument, max, min, nanoid, normalizeConfig, normalizeDetailItem, now, numericFieldNames, parseSort, pow, prefixedId, pruneNavigationForUser, publishedStateName, publishingWorkflow, readingTime, reconcileNavigation, registerJexlHelpers, replace, resolveAdminAuthCollection, resolveAuthorizedSiteId, resolvePrefix, round, runCollectionHooks, sanitizeDocForAI, saveWorkflowDraft, simplePublishingWorkflow, slugify, sqrt, startsWith, sum, today, transitionWorkflow, trim, truncate, ulid, unique, upper, uuid, validateAdminConditionExpression, validateDeclarativeAccessExpression, validateDeclarativeHookExpression, validatePreviewUrlExpression, when, wordCount, workflowCapabilities };