@dyrected/core 2.18.1 → 2.20.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.
@@ -51,6 +51,8 @@ interface AuthenticatedUser {
51
51
 
52
52
  interface AccessFunctionArgs<TDoc extends object = Record<string, unknown>, TUser extends AuthenticatedUser = AuthenticatedUser> {
53
53
  user: TUser | undefined;
54
+ /** ID of the document being accessed, when the operation targets one. */
55
+ id?: string;
54
56
  doc?: TDoc;
55
57
  data?: Partial<TDoc>;
56
58
  req: HookRequestContext;
@@ -392,7 +394,7 @@ interface AggregateCollectionResult {
392
394
  collection: string;
393
395
  result: Record<string, unknown>;
394
396
  }
395
- type AIActionType = 'createDocument' | 'updateDocument' | 'deleteDocument' | 'updateGlobal';
397
+ type AIActionType = 'createDocument' | 'updateDocument' | 'deleteDocument' | 'updateGlobal' | 'restoreDocument';
396
398
  type AIActionStatus = 'pending' | 'approved' | 'rejected' | 'executed' | 'failed';
397
399
  interface AIAction {
398
400
  id: string;
@@ -1059,6 +1061,8 @@ interface DefineWorkspaceOptions {
1059
1061
  global?: string;
1060
1062
  /** Designates this item as the dashboard link. */
1061
1063
  dashboard?: boolean;
1064
+ /** Designates this item as the trash link. */
1065
+ trash?: boolean;
1062
1066
  /** Stable URL slug for standalone operational workspaces (`/:slug`). */
1063
1067
  slug?: string;
1064
1068
  /** Display label in the sidebar (defaults to collection/global label when applicable). */
@@ -1106,7 +1110,7 @@ declare function defineWorkspace(options: DefineWorkspaceOptions): DefineWorkspa
1106
1110
  */
1107
1111
  interface CompiledNavItem {
1108
1112
  id: string;
1109
- type: "workspace" | "collection" | "global" | "dashboard" | "link";
1113
+ type: "workspace" | "collection" | "global" | "dashboard" | "trash" | "link";
1110
1114
  slug: string;
1111
1115
  label: string;
1112
1116
  icon?: string;
@@ -1139,7 +1143,7 @@ interface CompiledNavTree {
1139
1143
  ungrouped: CompiledNavItem[];
1140
1144
  }
1141
1145
  interface PinnedNavItemRef {
1142
- type: "workspace" | "collection" | "global" | "link" | "dashboard";
1146
+ type: "workspace" | "collection" | "global" | "trash" | "link" | "dashboard";
1143
1147
  slug: string;
1144
1148
  view?: string;
1145
1149
  label?: string;
@@ -1341,7 +1345,7 @@ type CollectionBeforeCommitHook<TDoc extends object = Record<string, unknown>> =
1341
1345
  tx: DatabaseAdapter;
1342
1346
  }) => void | Promise<void>;
1343
1347
  /**
1344
- * Runs **before** a document is deleted from the database.
1348
+ * Runs **before** a document is deleted from the database or moved to trash.
1345
1349
  */
1346
1350
  type CollectionBeforeDeleteHook<TDoc extends object = Record<string, unknown>> = (args: {
1347
1351
  id: string;
@@ -1349,9 +1353,10 @@ type CollectionBeforeDeleteHook<TDoc extends object = Record<string, unknown>> =
1349
1353
  req: HookRequestContext;
1350
1354
  user?: AuthenticatedUser;
1351
1355
  db: ReadonlyDatabaseAdapter;
1356
+ mode?: "trash" | "permanent";
1352
1357
  }) => void | Promise<void>;
1353
1358
  /**
1354
- * Runs **after** a document has been deleted from the database.
1359
+ * Runs **after** a document has been permanently deleted from the database.
1355
1360
  */
1356
1361
  type CollectionAfterDeleteHook<TDoc extends object = Record<string, unknown>> = (args: {
1357
1362
  id: string;
@@ -1359,6 +1364,47 @@ type CollectionAfterDeleteHook<TDoc extends object = Record<string, unknown>> =
1359
1364
  req: HookRequestContext;
1360
1365
  user?: AuthenticatedUser;
1361
1366
  db: DatabaseAdapter;
1367
+ mode?: "permanent";
1368
+ }) => void | Promise<void>;
1369
+ /**
1370
+ * Runs **before** a document is moved to trash.
1371
+ */
1372
+ type CollectionBeforeTrashHook<TDoc extends object = Record<string, unknown>> = (args: {
1373
+ id: string;
1374
+ doc: TDoc;
1375
+ req: HookRequestContext;
1376
+ user?: AuthenticatedUser;
1377
+ db: ReadonlyDatabaseAdapter;
1378
+ }) => void | Promise<void>;
1379
+ /**
1380
+ * Runs **after** a document has been moved to trash.
1381
+ */
1382
+ type CollectionAfterTrashHook<TDoc extends object = Record<string, unknown>> = (args: {
1383
+ id: string;
1384
+ doc: TDoc;
1385
+ req: HookRequestContext;
1386
+ user?: AuthenticatedUser;
1387
+ db: DatabaseAdapter;
1388
+ }) => void | Promise<void>;
1389
+ /**
1390
+ * Runs **before** a trashed document is restored.
1391
+ */
1392
+ type CollectionBeforeRestoreHook<TDoc extends object = Record<string, unknown>> = (args: {
1393
+ id: string;
1394
+ doc: TDoc;
1395
+ req: HookRequestContext;
1396
+ user?: AuthenticatedUser;
1397
+ db: ReadonlyDatabaseAdapter;
1398
+ }) => void | Promise<void>;
1399
+ /**
1400
+ * Runs **after** a trashed document has been restored.
1401
+ */
1402
+ type CollectionAfterRestoreHook<TDoc extends object = Record<string, unknown>> = (args: {
1403
+ id: string;
1404
+ doc: TDoc;
1405
+ req: HookRequestContext;
1406
+ user?: AuthenticatedUser;
1407
+ db: DatabaseAdapter;
1362
1408
  }) => void | Promise<void>;
1363
1409
  /** @see {@link CollectionBeforeReadHook} */
1364
1410
  type GlobalBeforeReadHook = CollectionBeforeReadHook;
@@ -1970,6 +2016,100 @@ type DetailItem<TDoc = any> = DetailSection | DetailTabs | DetailGrid | DetailFi
1970
2016
  */
1971
2017
  type DetailSchema<TDoc = any> = DetailItem<TDoc>[];
1972
2018
 
2019
+ /**
2020
+ * Email template return value.
2021
+ *
2022
+ * Supports either direct HTML content or external provider template IDs with variables
2023
+ * (e.g. Seamailer, Postmark, SendGrid, Mailgun).
2024
+ */
2025
+ type EmailTemplateResult = {
2026
+ subject?: string;
2027
+ html: string;
2028
+ text?: string;
2029
+ } | {
2030
+ /**
2031
+ * External provider template identifier:
2032
+ * - Seamailer: numeric template ID (e.g. 821354)
2033
+ * - Postmark: template alias (e.g. 'welcome-user') or numeric ID
2034
+ * - SendGrid: template ID (e.g. 'd-1234567890abcdef')
2035
+ */
2036
+ template: string | number;
2037
+ variables: Record<string, unknown>;
2038
+ subject?: string;
2039
+ };
2040
+ /**
2041
+ * Contextual arguments passed into email template builders.
2042
+ */
2043
+ type EmailTemplateArgs<T = Record<string, unknown>> = T & {
2044
+ collection?: string;
2045
+ /** Readable singular name of the collection (falls back to plural, then a humanised slug). */
2046
+ collectionLabel?: string;
2047
+ /** The raw singular/plural labels configured on the collection. */
2048
+ collectionLabels?: {
2049
+ singular?: string;
2050
+ plural?: string;
2051
+ };
2052
+ siteName?: string;
2053
+ user?: Record<string, unknown>;
2054
+ };
2055
+ /**
2056
+ * The typed email payload passed to `config.email.send`.
2057
+ *
2058
+ * Supports both traditional HTML payloads and external provider template payloads.
2059
+ */
2060
+ type OutboundEmail = {
2061
+ to: string;
2062
+ from?: string;
2063
+ collection?: string;
2064
+ purpose?: "invite" | "resetPassword" | "welcome" | "passwordChanged" | string;
2065
+ user?: Record<string, unknown>;
2066
+ } & ({
2067
+ type?: "html";
2068
+ subject: string;
2069
+ html: string;
2070
+ text?: string;
2071
+ } | {
2072
+ type: "template";
2073
+ template: string | number;
2074
+ variables: Record<string, unknown>;
2075
+ subject?: string;
2076
+ });
2077
+ /**
2078
+ * Collection-level email configuration.
2079
+ */
2080
+ interface CollectionEmailConfig {
2081
+ /** Optional custom `from` address for emails sent by this collection. */
2082
+ from?: string;
2083
+ /** Collection-specific email templates. */
2084
+ templates?: {
2085
+ welcome?: (args: EmailTemplateArgs<{
2086
+ email: string;
2087
+ }>) => EmailTemplateResult;
2088
+ invite?: (args: EmailTemplateArgs<{
2089
+ token: string;
2090
+ url?: string;
2091
+ invitedByEmail?: string;
2092
+ data?: Record<string, unknown>;
2093
+ }>) => EmailTemplateResult;
2094
+ resetPassword?: (args: EmailTemplateArgs<{
2095
+ token: string;
2096
+ url?: string;
2097
+ }>) => EmailTemplateResult;
2098
+ passwordChanged?: (args: EmailTemplateArgs<{
2099
+ email: string;
2100
+ }>) => EmailTemplateResult;
2101
+ };
2102
+ }
2103
+
2104
+ /**
2105
+ * Trash and retention configuration for a collection.
2106
+ */
2107
+ interface TrashConfig {
2108
+ /** Days before automatic permanent deletion. `null` or omitted: never auto-purge. */
2109
+ retentionDays?: number | null;
2110
+ /** Show and allow "Delete forever" in API/UI. Default true. */
2111
+ allowPermanentDelete?: boolean;
2112
+ }
1973
2113
  /**
1974
2114
  * Configures account lockout behavior for an auth-enabled collection.
1975
2115
  *
@@ -2007,6 +2147,39 @@ interface AuthConfig {
2007
2147
  * Defaults to `'admin'`.
2008
2148
  */
2009
2149
  adminRole?: string;
2150
+ /**
2151
+ * How long invitation tokens remain valid for this collection.
2152
+ *
2153
+ * Accepts the same values as `jose`'s `setExpirationTime` (e.g. `'24h'`,
2154
+ * `'48h'`, `'7d'`, `'14d'`).
2155
+ *
2156
+ * Defaults to `'7d'`.
2157
+ */
2158
+ inviteExpiration?: string;
2159
+ /**
2160
+ * How long password reset tokens remain valid for this collection.
2161
+ *
2162
+ * Accepts the same values as `jose`'s `setExpirationTime` (e.g. `'15m'`,
2163
+ * `'30m'`, `'1h'`, `'2h'`).
2164
+ *
2165
+ * Defaults to `'1h'`.
2166
+ */
2167
+ resetPasswordExpiration?: string;
2168
+ /**
2169
+ * Dedicated action URLs for this auth collection.
2170
+ *
2171
+ * When configured, invite and password reset emails for this collection
2172
+ * use these URLs instead of falling back to `admin.adminUrl` or `/admin`.
2173
+ */
2174
+ urls?: {
2175
+ invite?: string;
2176
+ resetPassword?: string;
2177
+ login?: string;
2178
+ };
2179
+ /**
2180
+ * Collection-specific email templates and sender overrides.
2181
+ */
2182
+ email?: CollectionEmailConfig;
2010
2183
  }
2011
2184
  /**
2012
2185
  * Physical database index specification for a collection.
@@ -2221,6 +2394,12 @@ interface CollectionConfig<TDoc extends object = Record<string, unknown>> {
2221
2394
  * live content, and any authorized editor can publish or unpublish entries.
2222
2395
  */
2223
2396
  drafts?: boolean;
2397
+ /**
2398
+ * Trash & retention settings for this collection.
2399
+ * If `true` or an object, deleting a document moves it to trash rather than destroying it.
2400
+ * If `false`, hard deletes immediately.
2401
+ */
2402
+ trash?: boolean | TrashConfig;
2224
2403
  /**
2225
2404
  * Collection-level access control.
2226
2405
  *
@@ -2244,6 +2423,11 @@ interface CollectionConfig<TDoc extends object = Record<string, unknown>> {
2244
2423
  create?: AccessRule<TDoc>;
2245
2424
  update?: AccessRule<TDoc>;
2246
2425
  delete?: AccessRule<TDoc>;
2426
+ /**
2427
+ * Controls who can restore a trashed document in this collection.
2428
+ * Falls back to `delete` access if omitted.
2429
+ */
2430
+ restore?: AccessRule<TDoc>;
2247
2431
  /**
2248
2432
  * Controls who can read this collection's audit log (`GET /:slug/__audit`),
2249
2433
  * for collections with `audit` enabled. Falls back to the `read` rule when
@@ -2306,6 +2490,14 @@ interface CollectionConfig<TDoc extends object = Record<string, unknown>> {
2306
2490
  * already committed and will not be undone.
2307
2491
  */
2308
2492
  afterDelete?: CollectionAfterDeleteHook<TDoc>[];
2493
+ /** Runs before a document is moved to trash. Throw to cancel trashing. */
2494
+ beforeTrash?: CollectionBeforeTrashHook<TDoc>[];
2495
+ /** Runs after a document has been moved to trash. Side effects only. */
2496
+ afterTrash?: CollectionAfterTrashHook<TDoc>[];
2497
+ /** Runs before a trashed document is restored. Throw to cancel restoration. */
2498
+ beforeRestore?: CollectionBeforeRestoreHook<TDoc>[];
2499
+ /** Runs after a document has been restored from trash. Side effects only. */
2500
+ afterRestore?: CollectionAfterRestoreHook<TDoc>[];
2309
2501
  };
2310
2502
  /**
2311
2503
  * Admin UI configuration for this collection.
@@ -3966,42 +4158,50 @@ interface DyrectedConfig<TUser extends AuthenticatedUser = AuthenticatedUser> {
3966
4158
  email?: {
3967
4159
  /** The `From` address for all outbound emails. */
3968
4160
  from: string;
3969
- /** The send function. Wire in any email provider (Resend, SendGrid, SES, etc.). */
3970
- send: (args: {
3971
- to: string;
3972
- subject: string;
3973
- html: string;
3974
- }) => Promise<void>;
3975
- /** Override the default email templates. */
4161
+ /**
4162
+ * Whether admins can edit email templates via the Admin UI.
4163
+ * Defaults to true.
4164
+ */
4165
+ adminEditable?: boolean;
4166
+ /** The send function. Wire in any email provider (Resend, SendGrid, SES, Seamailer, Postmark, etc.). */
4167
+ send: (args: OutboundEmail) => Promise<void>;
4168
+ /** Global default email templates. */
3976
4169
  templates?: {
3977
- welcome?: (args: {
4170
+ welcome?: (args: EmailTemplateArgs<{
3978
4171
  email: string;
3979
- }) => {
3980
- subject?: string;
3981
- html: string;
3982
- };
3983
- invite?: (args: {
4172
+ }>) => EmailTemplateResult;
4173
+ invite?: (args: EmailTemplateArgs<{
3984
4174
  token: string;
3985
4175
  invitedByEmail?: string;
3986
4176
  url?: string;
3987
- }) => {
3988
- subject?: string;
3989
- html: string;
3990
- };
3991
- resetPassword?: (args: {
4177
+ data?: Record<string, unknown>;
4178
+ }>) => EmailTemplateResult;
4179
+ resetPassword?: (args: EmailTemplateArgs<{
3992
4180
  token: string;
3993
4181
  url?: string;
3994
- }) => {
3995
- subject?: string;
3996
- html: string;
3997
- };
3998
- passwordChanged?: (args: {
4182
+ }>) => EmailTemplateResult;
4183
+ passwordChanged?: (args: EmailTemplateArgs<{
3999
4184
  email: string;
4000
- }) => {
4001
- subject?: string;
4002
- html: string;
4003
- };
4185
+ }>) => EmailTemplateResult;
4004
4186
  };
4187
+ /**
4188
+ * Additional transactional email purposes beyond the built-in auth lifecycle events.
4189
+ * Each entry appears as a selectable option in the Admin UI email template editor,
4190
+ * allowing admins to manage and test templates for business domain events
4191
+ * (e.g. order confirmations, booking reminders, webhook notifications).
4192
+ *
4193
+ * @example
4194
+ * email: {
4195
+ * purposes: [
4196
+ * { label: "Order Confirmation", value: "order_confirmation" },
4197
+ * { label: "Booking Reminder", value: "booking_reminder" },
4198
+ * ],
4199
+ * }
4200
+ */
4201
+ purposes?: Array<{
4202
+ label: string;
4203
+ value: string;
4204
+ }>;
4005
4205
  };
4006
4206
  /**
4007
4207
  * Redis connection URL. Required for distributed caching of dynamic option
@@ -4061,6 +4261,25 @@ interface DyrectedConfig<TUser extends AuthenticatedUser = AuthenticatedUser> {
4061
4261
  * AI Assistant and LLM tools configuration.
4062
4262
  */
4063
4263
  ai?: AIConfig;
4264
+ /**
4265
+ * App-wide trash & retention configuration.
4266
+ */
4267
+ trash?: AppTrashConfig;
4268
+ }
4269
+ interface AppTrashConfig {
4270
+ /** Every non-system collection defaults to trash when true. */
4271
+ enabled?: boolean;
4272
+ /** Default retention period in days. `null` or omitted: keep until manually purged. */
4273
+ retentionDays?: number | null;
4274
+ /** When false, blocks immediate hard-delete across collections unless overridden. */
4275
+ allowPermanentDelete?: boolean;
4276
+ /** Background purge configuration. */
4277
+ purge?: {
4278
+ /** Cron schedule for automatic purge. Defaults to `"0 3 * * *"`. */
4279
+ cron?: string;
4280
+ /** Maximum number of records to purge per run. Defaults to 200. */
4281
+ batchSize?: number;
4282
+ };
4064
4283
  }
4065
4284
 
4066
4285
  interface CollectionTokenPayload extends JWTPayload {
@@ -4071,8 +4290,11 @@ interface CollectionTokenPayload extends JWTPayload {
4071
4290
  purpose?: 'invite' | 'reset';
4072
4291
  providerId?: string;
4073
4292
  authSource?: 'local' | 'external';
4293
+ siteId?: string;
4074
4294
  }
4075
4295
  declare const DEFAULT_SESSION_EXPIRY = "7d";
4296
+ declare const DEFAULT_INVITE_EXPIRY = "48h";
4297
+ declare const DEFAULT_RESET_PASSWORD_EXPIRY = "2h";
4076
4298
  /**
4077
4299
  * Resolve the session JWT lifetime for an auth collection.
4078
4300
  *
@@ -4081,6 +4303,18 @@ declare const DEFAULT_SESSION_EXPIRY = "7d";
4081
4303
  * value) so existing behavior is unchanged.
4082
4304
  */
4083
4305
  declare function resolveSessionTokenExpiry(collection: CollectionConfig): string;
4306
+ /**
4307
+ * Resolve the invite JWT lifetime for an auth collection.
4308
+ *
4309
+ * Reads `auth.inviteExpiration` when configured, and falls back to `'48h'`.
4310
+ */
4311
+ declare function resolveInviteTokenExpiry(collection: CollectionConfig): string;
4312
+ /**
4313
+ * Resolve the reset password JWT lifetime for an auth collection.
4314
+ *
4315
+ * Reads `auth.resetPasswordExpiration` when configured, and falls back to `'2h'`.
4316
+ */
4317
+ declare function resolveResetPasswordTokenExpiry(collection: CollectionConfig): string;
4084
4318
  /**
4085
4319
  * Issue a signed JWT for a user document in an auth collection.
4086
4320
  */
@@ -4230,4 +4464,4 @@ interface DyrectedContext {
4230
4464
  */
4231
4465
  declare function createDyrectedApp(rawConfig: DyrectedConfig | any): Promise<Hono<DyrectedContext, hono_types.BlankSchema, "/">>;
4232
4466
 
4233
- export { type FieldType as $, type AdminAuthConfig as A, type Block as B, type CollectionConfig as C, type DyrectedConfig as D, type DetailTab as E, type Field as F, type GlobalConfig as G, type HookRequestContext as H, type DetailTabsOptions as I, type DetailTabs as J, type DetailTextOptions as K, type LifecycleEventName as L, type DetailText as M, type DetailSchema as N, type DyrectedContext as O, type PublicAdminAuthConfig as P, type AIConfig as Q, type AIPIIConfig as R, type IdStrategy as S, type TaskRunResult as T, type CompiledNavTree as U, type CompiledNavItem as V, type WorkflowConfig as W, type UserNavigationPreferences as X, type DefineWorkspaceOptions as Y, type ViewConfig as Z, type ArrayField as _, type DeclarativeHookExpression as a, type AggregateArgs as a$, type BooleanField as a0, type AuthConfig as a1, type AccessPolicyResolver as a2, type DateField as a3, type DateTimeField as a4, type EmailField as a5, type IconField as a6, type ImageField as a7, type JoinField as a8, type JsonField as a9, AI_ACTIONS_COLLECTION as aA, AI_AUDIT_COLLECTION as aB, AI_CHUNKS_COLLECTION as aC, AI_MESSAGES_COLLECTION as aD, AI_THREADS_COLLECTION as aE, type AccessConfig as aF, type AccessFunction as aG, type AccessFunctionArgs as aH, type AccessResult as aI, type AccessRule as aJ, type ActionConfig as aK, type ActionConfigBase as aL, type ActionConfigWithHandler as aM, type ActionConfigWithMutation as aN, type ActionContext as aO, type ActionType as aP, type AdminAuthAccessResolution as aQ, type AdminAuthClaimMapping as aR, type AdminAuthMember as aS, type AdminAuthProvider as aT, type AdminAuthProviderMembersConfig as aU, type AdminAuthProvisioningMode as aV, type AdminAuthResolveAccessArgs as aW, type AdminAuthResolvedIdentity as aX, type AdminConfig as aY, type AdminDashboardComponentSlots as aZ, type AdminIconName as a_, type MoneyField as aa, type MultiSelectField as ab, type NumberField as ac, type ObjectField as ad, type RadioField as ae, type RelationshipField as af, type RichTextField as ag, type RowField as ah, type SelectField as ai, type TextField as aj, type TextareaField as ak, type TimeField as al, type UrlField as am, type AIAction as an, type AIActionStatus as ao, type AIActionType as ap, type AIAuditActionType as aq, type AIAuditRecord as ar, type AIChunk as as, type AIMessage as at, type AIPIIPattern as au, type AIRateLimitResult as av, type AIRateLimitStore as aw, type AIThread as ax, type AIToolContext as ay, type AIToolDefinition as az, type AuthenticatedUser as b, type FieldAdminOnChangeHook as b$, type AggregateCastType as b0, type AggregateCollectionResult as b1, type AggregateInput as b2, type AggregateOperation as b3, type AggregateResult as b4, type BaseAdminAuthProvider as b5, type BaseFieldAdmin as b6, type BlockVariant as b7, type BlocksField as b8, type BooleanFieldAdmin as b9, type CustomAdminAuthProvider as bA, DEFAULT_USER_NAV_PREFERENCES as bB, type DateFieldAdmin as bC, type DateFormat as bD, type DefaultValueContext as bE, type DefineActionOptions as bF, type DefineCalendarViewOptions as bG, type DefineCardsViewOptions as bH, type DefineGanttViewOptions as bI, type DefineKanbanViewOptions as bJ, type DefineTableViewOptions as bK, type DefineViewBaseOptions as bL, type DefineViewOptions as bM, type DetailSpan as bN, type DisplayTone as bO, type DisplayVariant as bP, type DistinctCountOperation as bQ, type DistinctValuesOperation as bR, type DynamicOptionItem as bS, type DynamicOptionsConfig as bT, type DynamicOptionsResolver as bU, type DynamicOptionsResolverArgs as bV, type DyrectedAIContext as bW, type DyrectedLoggerConfig as bX, type DyrectedObservabilityConfig as bY, type EmailFieldAdmin as bZ, type FieldAdminHooks as b_, type BooleanFormat as ba, CURRENT_NAV_PREFERENCES_VERSION as bb, type CalendarViewConfig as bc, type CardsViewConfig as bd, type CharacterLimitFieldAdmin as be, type CharacterLimitFieldConfig as bf, type CollectionAfterChangeHook as bg, type CollectionAfterDeleteHook as bh, type CollectionAfterReadHook as bi, type CollectionAfterReadHookEntry as bj, type CollectionAfterTransitionHook as bk, type CollectionBeforeChangeHook as bl, type CollectionBeforeChangeHookEntry as bm, type CollectionBeforeCommitHook as bn, type CollectionBeforeDeleteHook as bo, type CollectionBeforeReadHook as bp, type CollectionBeforeReadHookEntry as bq, type CollectionBeforeTransitionHook as br, type CollectionIndex as bs, type CollectionListComponentSlots as bt, type CollectionRAGConfig as bu, type CollectionSchemaResult as bv, type CollectionSummaryResult as bw, type CollectionViewComponentSlots as bx, type CompiledNavGroup as by, type CountOperation as bz, type WorkflowTransition as c, type SqlWhereResult as c$, type FieldAdminOnChangeHookArgs as c0, type FieldAdminOptionsHook as c1, type FieldAdminOptionsHookArgs as c2, type FieldAdminOptionsHookResult as c3, type FieldAfterReadHook as c4, type FieldAfterReadHookArgs as c5, type FieldBase as c6, type FieldBeforeChangeHook as c7, type FieldBeforeChangeHookArgs as c8, type FieldHook as c9, type LinkFormat as cA, type MetricColor as cB, type MoneyFieldAdmin as cC, type MoneyFieldConfig as cD, type MultiSelectFieldAdmin as cE, type NamedAccessPolicy as cF, type NavBadgeConfig as cG, type NavGroup as cH, type NumberFieldAdmin as cI, type NumberFormat as cJ, type NumberLimitFieldAdmin as cK, type NumberLimitFieldConfig as cL, type NumericOperation as cM, type NumericUpdateOperator as cN, type OIDCAdminAuthProvider as cO, type OptionFormat as cP, type PaginatedResult as cQ, type PinnedNavItemRef as cR, type PublicAdminAuthProvider as cS, type QueryCollectionResult as cT, type RAGSearchResult as cU, type RadioFieldAdmin as cV, type RateLimitConfig as cW, type ReadonlyDatabaseAdapter as cX, type RichTextFeature as cY, type RichTextFieldConfig as cZ, type SelectFieldAdmin as c_, type FieldHooks as ca, type FileData as cb, type GanttViewConfig as cc, type GetDocumentResult as cd, type GlobalAfterChangeHook as ce, type GlobalAfterReadHook as cf, type GlobalAfterReadHookEntry as cg, type GlobalBeforeChangeHook as ch, type GlobalBeforeChangeHookEntry as ci, type GlobalBeforeReadHook as cj, type GlobalBeforeReadHookEntry as ck, type GlobalRAGConfig as cl, type GlobalSchemaResult as cm, type GlobalSummaryResult as cn, type HeadingLevel as co, type HookFunction as cp, type IconFieldAdmin as cq, type ImageService as cr, type ImageTransformOptions as cs, type InferAggregateResult as ct, type JoinFieldAdmin as cu, type JsonFieldAdmin as cv, type JsonFormat as cw, type KanbanViewConfig as cx, LIFECYCLE_EVENT_NAMES as cy, type LifecycleEventHandler as cz, type LifecycleEvent as d, renderPrometheusMetrics as d$, type StorageAdapter as d0, type TableViewConfig as d1, type TaskContext as d2, type TaskLogger as d3, type TaskRunStatus as d4, type TextFieldAdmin as d5, type TextFormat as d6, type TextareaFieldAdmin as d7, type TrustProxyConfig as d8, type TypedField as d9, defineKanbanView as dA, defineTableView as dB, defineView as dC, defineWorkspace as dD, isAICollection as dE, parseMongoWhere as dF, parseSqlWhere as dG, type CollectionTokenPayload as dH, DEFAULT_SESSION_EXPIRY as dI, type DyrectedObservabilityRuntime as dJ, type RequestBodyCapture as dK, type RequestTraceContext as dL, type ResolvedObservabilityConfig as dM, attachRequestMetrics as dN, bindObservabilityRuntime as dO, buildRequestLogger as dP, captureRequestBody as dQ, createDyrectedApp as dR, createObservabilityRuntime as dS, createRequestSpan as dT, decodeCollectionToken as dU, endRequestSpan as dV, getConfigLogger as dW, getObservabilityRuntime as dX, getRequestLogger as dY, redactBody as dZ, redactHeaders as d_, type UploadConfig as da, type UrlFieldAdmin as db, type UrlLinkValue as dc, type ViewActionFeatures as dd, type ViewComponentSlots as de, type ViewConfigBase as df, type ViewLayout as dg, type ViewMetric as dh, type ViewSubMetric as di, type WhereClause as dj, type WhereOperator as dk, type WhereOperatorName as dl, type WordLimitFieldAdmin as dm, type WordLimitFieldConfig as dn, type WorkflowMetadata as dp, type WorkflowOnTransitionContext as dq, type WorkflowOnTransitionHook as dr, type WorkflowRole as ds, type WorkflowState as dt, type WorkflowTransitionContext as du, coerceBooleanWhere as dv, defineAction as dw, defineCalendarView as dx, defineCardsView as dy, defineGanttView as dz, type DatabaseAdapter as e, resolveObservabilityConfig as e0, resolveSessionTokenExpiry as e1, shouldSampleRequest as e2, signCollectionToken as e3, verifyCollectionToken as e4, type BaseDocument as f, type TaskConfig as g, type DetailActionOptions as h, type DetailAction as i, type DetailComputedOptions as j, type ComputedHandler as k, type DetailComputed as l, type DetailCustomOptions as m, type DetailCustom as n, type DetailDividerOptions as o, type DetailDivider as p, type DisplayFieldOptions as q, type DetailField as r, type DetailItem as s, type DetailGridOptions as t, type DetailGrid as u, type DetailRepeatOptions as v, type DetailRepeat as w, type DetailSectionOptions as x, type DetailSection as y, type DetailTabOptions as z };
4467
+ export { type RelationshipField as $, type AdminAuthConfig as A, type Block as B, type CollectionConfig as C, type DyrectedConfig as D, type DetailTab as E, type Field as F, type GlobalConfig as G, type HookRequestContext as H, type DetailTabsOptions as I, type DetailTabs as J, type DetailTextOptions as K, type LifecycleEventName as L, type DetailText as M, type DetailSchema as N, type DyrectedContext as O, type PublicAdminAuthConfig as P, type AIConfig as Q, type AIPIIConfig as R, type IdStrategy as S, type TaskRunResult as T, type CompiledNavTree as U, type CompiledNavItem as V, type WorkflowConfig as W, type UserNavigationPreferences as X, type DefineWorkspaceOptions as Y, type ViewConfig as Z, type DateTimeField as _, type DeclarativeHookExpression as a, type AggregateArgs as a$, type SelectField as a0, type ArrayField as a1, type FieldType as a2, type BooleanField as a3, type AuthConfig as a4, type AccessPolicyResolver as a5, type DateField as a6, type TextField as a7, type EmailField as a8, type IconField as a9, AI_ACTIONS_COLLECTION as aA, AI_AUDIT_COLLECTION as aB, AI_CHUNKS_COLLECTION as aC, AI_MESSAGES_COLLECTION as aD, AI_THREADS_COLLECTION as aE, type AccessConfig as aF, type AccessFunction as aG, type AccessFunctionArgs as aH, type AccessResult as aI, type AccessRule as aJ, type ActionConfig as aK, type ActionConfigBase as aL, type ActionConfigWithHandler as aM, type ActionConfigWithMutation as aN, type ActionContext as aO, type ActionType as aP, type AdminAuthAccessResolution as aQ, type AdminAuthClaimMapping as aR, type AdminAuthMember as aS, type AdminAuthProvider as aT, type AdminAuthProviderMembersConfig as aU, type AdminAuthProvisioningMode as aV, type AdminAuthResolveAccessArgs as aW, type AdminAuthResolvedIdentity as aX, type AdminConfig as aY, type AdminDashboardComponentSlots as aZ, type AdminIconName as a_, type ImageField as aa, type JoinField as ab, type JsonField as ac, type MoneyField as ad, type MultiSelectField as ae, type NumberField as af, type ObjectField as ag, type RadioField as ah, type RichTextField as ai, type RowField as aj, type TextareaField as ak, type TimeField as al, type UrlField as am, type AIAction as an, type AIActionStatus as ao, type AIActionType as ap, type AIAuditActionType as aq, type AIAuditRecord as ar, type AIChunk as as, type AIMessage as at, type AIPIIPattern as au, type AIRateLimitResult as av, type AIRateLimitStore as aw, type AIThread as ax, type AIToolContext as ay, type AIToolDefinition as az, type AuthenticatedUser as b, type DynamicOptionsResolverArgs as b$, type AggregateCastType as b0, type AggregateCollectionResult as b1, type AggregateInput as b2, type AggregateOperation as b3, type AggregateResult as b4, type AppTrashConfig as b5, type BaseAdminAuthProvider as b6, type BaseFieldAdmin as b7, type BlockVariant as b8, type BlocksField as b9, type CollectionRAGConfig as bA, type CollectionSchemaResult as bB, type CollectionSummaryResult as bC, type CollectionViewComponentSlots as bD, type CompiledNavGroup as bE, type CountOperation as bF, type CustomAdminAuthProvider as bG, DEFAULT_USER_NAV_PREFERENCES as bH, type DateFieldAdmin as bI, type DateFormat as bJ, type DefaultValueContext as bK, type DefineActionOptions as bL, type DefineCalendarViewOptions as bM, type DefineCardsViewOptions as bN, type DefineGanttViewOptions as bO, type DefineKanbanViewOptions as bP, type DefineTableViewOptions as bQ, type DefineViewBaseOptions as bR, type DefineViewOptions as bS, type DetailSpan as bT, type DisplayTone as bU, type DisplayVariant as bV, type DistinctCountOperation as bW, type DistinctValuesOperation as bX, type DynamicOptionItem as bY, type DynamicOptionsConfig as bZ, type DynamicOptionsResolver as b_, type BooleanFieldAdmin as ba, type BooleanFormat as bb, CURRENT_NAV_PREFERENCES_VERSION as bc, type CalendarViewConfig as bd, type CardsViewConfig as be, type CharacterLimitFieldAdmin as bf, type CharacterLimitFieldConfig as bg, type CollectionAfterChangeHook as bh, type CollectionAfterDeleteHook as bi, type CollectionAfterReadHook as bj, type CollectionAfterReadHookEntry as bk, type CollectionAfterRestoreHook as bl, type CollectionAfterTransitionHook as bm, type CollectionAfterTrashHook as bn, type CollectionBeforeChangeHook as bo, type CollectionBeforeChangeHookEntry as bp, type CollectionBeforeCommitHook as bq, type CollectionBeforeDeleteHook as br, type CollectionBeforeReadHook as bs, type CollectionBeforeReadHookEntry as bt, type CollectionBeforeRestoreHook as bu, type CollectionBeforeTransitionHook as bv, type CollectionBeforeTrashHook as bw, type CollectionEmailConfig as bx, type CollectionIndex as by, type CollectionListComponentSlots as bz, type WorkflowTransition as c, type PublicAdminAuthProvider as c$, type DyrectedAIContext as c0, type DyrectedLoggerConfig as c1, type DyrectedObservabilityConfig as c2, type EmailFieldAdmin as c3, type EmailTemplateArgs as c4, type EmailTemplateResult as c5, type FieldAdminHooks as c6, type FieldAdminOnChangeHook as c7, type FieldAdminOnChangeHookArgs as c8, type FieldAdminOptionsHook as c9, type ImageTransformOptions as cA, type InferAggregateResult as cB, type JoinFieldAdmin as cC, type JsonFieldAdmin as cD, type JsonFormat as cE, type KanbanViewConfig as cF, LIFECYCLE_EVENT_NAMES as cG, type LifecycleEventHandler as cH, type LinkFormat as cI, type MetricColor as cJ, type MoneyFieldAdmin as cK, type MoneyFieldConfig as cL, type MultiSelectFieldAdmin as cM, type NamedAccessPolicy as cN, type NavBadgeConfig as cO, type NavGroup as cP, type NumberFieldAdmin as cQ, type NumberFormat as cR, type NumberLimitFieldAdmin as cS, type NumberLimitFieldConfig as cT, type NumericOperation as cU, type NumericUpdateOperator as cV, type OIDCAdminAuthProvider as cW, type OptionFormat as cX, type OutboundEmail as cY, type PaginatedResult as cZ, type PinnedNavItemRef as c_, type FieldAdminOptionsHookArgs as ca, type FieldAdminOptionsHookResult as cb, type FieldAfterReadHook as cc, type FieldAfterReadHookArgs as cd, type FieldBase as ce, type FieldBeforeChangeHook as cf, type FieldBeforeChangeHookArgs as cg, type FieldHook as ch, type FieldHooks as ci, type FileData as cj, type GanttViewConfig as ck, type GetDocumentResult as cl, type GlobalAfterChangeHook as cm, type GlobalAfterReadHook as cn, type GlobalAfterReadHookEntry as co, type GlobalBeforeChangeHook as cp, type GlobalBeforeChangeHookEntry as cq, type GlobalBeforeReadHook as cr, type GlobalBeforeReadHookEntry as cs, type GlobalRAGConfig as ct, type GlobalSchemaResult as cu, type GlobalSummaryResult as cv, type HeadingLevel as cw, type HookFunction as cx, type IconFieldAdmin as cy, type ImageService as cz, type LifecycleEvent as d, buildRequestLogger as d$, type QueryCollectionResult as d0, type RAGSearchResult as d1, type RadioFieldAdmin as d2, type RateLimitConfig as d3, type ReadonlyDatabaseAdapter as d4, type RichTextFeature as d5, type RichTextFieldConfig as d6, type SelectFieldAdmin as d7, type SqlWhereResult as d8, type StorageAdapter as d9, type WorkflowOnTransitionContext as dA, type WorkflowOnTransitionHook as dB, type WorkflowRole as dC, type WorkflowState as dD, type WorkflowTransitionContext as dE, coerceBooleanWhere as dF, defineAction as dG, defineCalendarView as dH, defineCardsView as dI, defineGanttView as dJ, defineKanbanView as dK, defineTableView as dL, defineView as dM, defineWorkspace as dN, isAICollection as dO, parseMongoWhere as dP, parseSqlWhere as dQ, type CollectionTokenPayload as dR, DEFAULT_INVITE_EXPIRY as dS, DEFAULT_RESET_PASSWORD_EXPIRY as dT, DEFAULT_SESSION_EXPIRY as dU, type DyrectedObservabilityRuntime as dV, type RequestBodyCapture as dW, type RequestTraceContext as dX, type ResolvedObservabilityConfig as dY, attachRequestMetrics as dZ, bindObservabilityRuntime as d_, type TableViewConfig as da, type TaskContext as db, type TaskLogger as dc, type TaskRunStatus as dd, type TextFieldAdmin as de, type TextFormat as df, type TextareaFieldAdmin as dg, type TrashConfig as dh, type TrustProxyConfig as di, type TypedField as dj, type UploadConfig as dk, type UrlFieldAdmin as dl, type UrlLinkValue as dm, type ViewActionFeatures as dn, type ViewComponentSlots as dp, type ViewConfigBase as dq, type ViewLayout as dr, type ViewMetric as ds, type ViewSubMetric as dt, type WhereClause as du, type WhereOperator as dv, type WhereOperatorName as dw, type WordLimitFieldAdmin as dx, type WordLimitFieldConfig as dy, type WorkflowMetadata as dz, type DatabaseAdapter as e, captureRequestBody as e0, createDyrectedApp as e1, createObservabilityRuntime as e2, createRequestSpan as e3, decodeCollectionToken as e4, endRequestSpan as e5, getConfigLogger as e6, getObservabilityRuntime as e7, getRequestLogger as e8, redactBody as e9, redactHeaders as ea, renderPrometheusMetrics as eb, resolveInviteTokenExpiry as ec, resolveObservabilityConfig as ed, resolveResetPasswordTokenExpiry as ee, resolveSessionTokenExpiry as ef, shouldSampleRequest as eg, signCollectionToken as eh, verifyCollectionToken as ei, type BaseDocument as f, type TaskConfig as g, type DetailActionOptions as h, type DetailAction as i, type DetailComputedOptions as j, type ComputedHandler as k, type DetailComputed as l, type DetailCustomOptions as m, type DetailCustom as n, type DetailDividerOptions as o, type DetailDivider as p, type DisplayFieldOptions as q, type DetailField as r, type DetailItem as s, type DetailGridOptions as t, type DetailGrid as u, type DetailRepeatOptions as v, type DetailRepeat as w, type DetailSectionOptions as x, type DetailSection as y, type DetailTabOptions as z };