@dyrected/core 2.13.6 → 2.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/dist/{app-phLVsEOM.d.cts → app-Cmp5lFLJ.d.cts} +115 -2
- package/dist/{app-phLVsEOM.d.ts → app-Cmp5lFLJ.d.ts} +115 -2
- package/dist/index.cjs +64 -0
- package/dist/index.d.cts +56 -3
- package/dist/index.d.ts +56 -3
- package/dist/index.js +58 -0
- package/dist/server.cjs +97 -15
- package/dist/server.d.cts +100 -3
- package/dist/server.d.ts +100 -3
- package/dist/server.js +72 -14
- package/package.json +1 -1
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
|
|
2
|
-
export {
|
|
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 ArrayField, R as FieldType, S as BooleanField, T as AuthConfig, U as AccessPolicyResolver, V as DateField, X as DateTimeField, Y as EmailField, Z as IconField, _ as ImageField, $ as JoinField, a0 as JsonField, a1 as MultiSelectField, a2 as NumberField, a3 as ObjectField, a4 as RadioField, a5 as RelationshipField, a6 as RichTextField, a7 as RowField, a8 as SelectField, a9 as TextField, aa as TextareaField, ab as TimeField, ac as UrlField } from './app-Cmp5lFLJ.cjs';
|
|
2
|
+
export { ad as AIAction, ae as AIActionStatus, af as AIActionType, ag as AIAuditActionType, ah as AIAuditRecord, ai as AIChunk, aj as AIMessage, ak as AIPIIPattern, al as AIRateLimitResult, am as AIRateLimitStore, an as AIThread, ao as AIToolContext, ap as AIToolDefinition, aq as AI_ACTIONS_COLLECTION, ar as AI_AUDIT_COLLECTION, as as AI_CHUNKS_COLLECTION, at as AI_MESSAGES_COLLECTION, au as AI_THREADS_COLLECTION, av as AccessConfig, aw as AccessFunction, ax as AccessFunctionArgs, ay as AccessResult, az as AccessRule, aA as ActionConfig, aB as ActionConfigBase, aC as ActionConfigWithHandler, aD as ActionConfigWithMutation, aE as ActionContext, aF as ActionType, aG as AdminAuthAccessResolution, aH as AdminAuthClaimMapping, aI as AdminAuthMember, aJ as AdminAuthProvider, aK as AdminAuthProviderMembersConfig, aL as AdminAuthProvisioningMode, aM as AdminAuthResolveAccessArgs, aN as AdminAuthResolvedIdentity, aO as AdminConfig, aP as AdminDashboardComponentSlots, aQ as AdminIconName, aR as AggregateArgs, aS as AggregateCastType, aT as AggregateCollectionResult, aU as AggregateInput, aV as AggregateOperation, aW as AggregateResult, aX as BaseAdminAuthProvider, aY as BaseFieldAdmin, aZ as BlockVariant, a_ as BlocksField, a$ as BooleanFieldAdmin, b0 as BooleanFormat, b1 as CharacterLimitFieldAdmin, b2 as CharacterLimitFieldConfig, b3 as CollectionAfterChangeHook, b4 as CollectionAfterDeleteHook, b5 as CollectionAfterReadHook, b6 as CollectionAfterReadHookEntry, b7 as CollectionAfterTransitionHook, b8 as CollectionBeforeChangeHook, b9 as CollectionBeforeChangeHookEntry, ba as CollectionBeforeDeleteHook, bb as CollectionBeforeReadHook, bc as CollectionBeforeReadHookEntry, bd as CollectionBeforeTransitionHook, be as CollectionListComponentSlots, bf as CollectionRAGConfig, bg as CollectionSchemaResult, bh as CollectionSummaryResult, bi as CollectionViewComponentSlots, bj as CountOperation, bk as CustomAdminAuthProvider, bl as DatabaseAdapter, bm as DateFieldAdmin, bn as DateFormat, bo as DefaultValueContext, bp as DefineActionOptions, bq as DefineCalendarViewOptions, br as DefineCardsViewOptions, bs as DefineGanttViewOptions, bt as DefineKanbanViewOptions, bu as DefineTableViewOptions, bv as DefineViewBaseOptions, bw as DefineViewOptions, bx as DetailSpan, by as DisplayTone, bz as DisplayVariant, bA as DistinctCountOperation, bB as DistinctValuesOperation, bC as DynamicOptionItem, bD as DynamicOptionsConfig, bE as DynamicOptionsResolver, bF as DynamicOptionsResolverArgs, bG as DyrectedAIContext, bH as DyrectedLoggerConfig, bI as DyrectedObservabilityConfig, bJ as EmailFieldAdmin, bK as FieldAdminHooks, bL as FieldAdminOnChangeHook, bM as FieldAdminOnChangeHookArgs, bN as FieldAdminOptionsHook, bO as FieldAdminOptionsHookArgs, bP as FieldAdminOptionsHookResult, bQ as FieldAfterReadHook, bR as FieldAfterReadHookArgs, bS as FieldBase, bT as FieldBeforeChangeHook, bU as FieldBeforeChangeHookArgs, bV as FieldHook, bW as FieldHooks, bX as FileData, bY as GetDocumentResult, bZ as GlobalAfterChangeHook, b_ as GlobalAfterReadHook, b$ as GlobalAfterReadHookEntry, c0 as GlobalBeforeChangeHook, c1 as GlobalBeforeChangeHookEntry, c2 as GlobalBeforeReadHook, c3 as GlobalBeforeReadHookEntry, c4 as GlobalRAGConfig, c5 as GlobalSchemaResult, c6 as GlobalSummaryResult, c7 as HeadingLevel, c8 as HookFunction, c9 as IconFieldAdmin, ca as ImageService, cb as ImageTransformOptions, cc as InferAggregateResult, cd as JoinFieldAdmin, ce as JsonFieldAdmin, cf as JsonFormat, cg as LIFECYCLE_EVENT_NAMES, ch as LifecycleEventHandler, ci as LinkFormat, cj as MetricColor, ck as MultiSelectFieldAdmin, cl as NamedAccessPolicy, cm as NumberFieldAdmin, cn as NumberFormat, co as NumberLimitFieldAdmin, cp as NumberLimitFieldConfig, cq as NumericOperation, cr as OIDCAdminAuthProvider, cs as OptionFormat, ct as PaginatedResult, cu as PublicAdminAuthProvider, cv as QueryCollectionResult, cw as RAGSearchResult, cx as RadioFieldAdmin, cy as RateLimitConfig, cz as ReadonlyDatabaseAdapter, cA as RichTextFeature, cB as RichTextFieldConfig, cC as SelectFieldAdmin, cD as SqlWhereResult, cE as StorageAdapter, cF as TextFieldAdmin, cG as TextFormat, cH as TextareaFieldAdmin, cI as TrustProxyConfig, cJ as TypedField, cK as UploadConfig, cL as UrlFieldAdmin, cM as UrlLinkValue, cN as ViewActionFeatures, cO as ViewComponentSlots, cP as ViewConfig, cQ as ViewLayout, cR as ViewMetric, cS as ViewSubMetric, cT as WhereClause, cU as WhereOperator, cV as WhereOperatorName, cW as WordLimitFieldAdmin, cX as WordLimitFieldConfig, cY as WorkflowMetadata, cZ as WorkflowRole, c_ as WorkflowState, c$ as WorkflowTransitionContext, d0 as defineAction, d1 as defineCalendarView, d2 as defineCardsView, d3 as defineGanttView, d4 as defineKanbanView, d5 as defineTableView, d6 as defineView, d7 as isAICollection, d8 as parseMongoWhere, d9 as parseSqlWhere } from './app-Cmp5lFLJ.cjs';
|
|
3
3
|
import jexl from 'jexl';
|
|
4
4
|
import { Context } from 'hono';
|
|
5
5
|
export { z } from 'zod';
|
|
@@ -155,6 +155,48 @@ declare function getAdminRoleForCollection(collection?: CollectionConfig | null)
|
|
|
155
155
|
*/
|
|
156
156
|
declare function isUserAdmin(user: any, collection?: CollectionConfig | null): boolean;
|
|
157
157
|
|
|
158
|
+
/**
|
|
159
|
+
* User-facing errors for self-hosted server code (action handlers, hooks).
|
|
160
|
+
*
|
|
161
|
+
* Throw these instead of hand-rolling `{ statusCode }` onto a plain `Error`.
|
|
162
|
+
* The action pipeline reads `statusCode` for the HTTP status (defaulting to
|
|
163
|
+
* `500` when absent) and `message` for the response body — which is what the
|
|
164
|
+
* SDK surfaces and the admin shows in its failure toast. Write the message
|
|
165
|
+
* for the editor who will read it.
|
|
166
|
+
*
|
|
167
|
+
* @example
|
|
168
|
+
* ```ts
|
|
169
|
+
* import { ValidationError } from "@dyrected/core";
|
|
170
|
+
*
|
|
171
|
+
* handler: async ({ input }) => {
|
|
172
|
+
* if (!input.refundReason) {
|
|
173
|
+
* throw new ValidationError("Enter a refund reason so support can follow up.");
|
|
174
|
+
* }
|
|
175
|
+
* return { status: "refunded" };
|
|
176
|
+
* }
|
|
177
|
+
* ```
|
|
178
|
+
*/
|
|
179
|
+
declare class DyrectedError extends Error {
|
|
180
|
+
readonly statusCode: number;
|
|
181
|
+
constructor(message: string, statusCode?: number);
|
|
182
|
+
}
|
|
183
|
+
/** Bad input the editor can fix and retry. Answered with `400`. */
|
|
184
|
+
declare class ValidationError extends DyrectedError {
|
|
185
|
+
constructor(message: string);
|
|
186
|
+
}
|
|
187
|
+
/** The editor is not allowed to do this. Answered with `403`. */
|
|
188
|
+
declare class ForbiddenError extends DyrectedError {
|
|
189
|
+
constructor(message: string);
|
|
190
|
+
}
|
|
191
|
+
/** A referenced record does not exist. Answered with `404`. */
|
|
192
|
+
declare class NotFoundError extends DyrectedError {
|
|
193
|
+
constructor(message: string);
|
|
194
|
+
}
|
|
195
|
+
/** The current state conflicts with the requested change. Answered with `409`. */
|
|
196
|
+
declare class ConflictError extends DyrectedError {
|
|
197
|
+
constructor(message: string);
|
|
198
|
+
}
|
|
199
|
+
|
|
158
200
|
type SortDirection = 'ASC' | 'DESC';
|
|
159
201
|
interface SortClause {
|
|
160
202
|
field: string;
|
|
@@ -725,6 +767,17 @@ declare function displayCustom<TDoc = any>(name: string, options?: DetailCustomO
|
|
|
725
767
|
* Alias for `displayCustom` to render a custom component in a Detail View layout.
|
|
726
768
|
*/
|
|
727
769
|
declare function displayCustomComponent<TDoc = any>(name: string, options?: DetailCustomOptions<TDoc>): DetailCustom<TDoc>;
|
|
770
|
+
/**
|
|
771
|
+
* Renders a button for a named action (defined in `collection.actions`) at this
|
|
772
|
+
* position in a Detail View — the same action, dialog, and execution as the
|
|
773
|
+
* header toolbar, just placed inline.
|
|
774
|
+
*
|
|
775
|
+
* @example
|
|
776
|
+
* ```ts
|
|
777
|
+
* displayAction('markShipped', { variant: 'default', span: 4 })
|
|
778
|
+
* ```
|
|
779
|
+
*/
|
|
780
|
+
declare function displayAction(name: string, options?: DetailActionOptions): DetailAction;
|
|
728
781
|
/**
|
|
729
782
|
* Evaluates server-side computed functions and JEXL expressions from a detail schema
|
|
730
783
|
* and attaches them to `doc._meta.computed`.
|
|
@@ -1763,4 +1816,4 @@ declare function defineTab<const T extends readonly Field[]>(args: {
|
|
|
1763
1816
|
fields: T;
|
|
1764
1817
|
}): T;
|
|
1765
1818
|
|
|
1766
|
-
export { AIConfig, type AIErrorCode, AIPIIConfig, type AccessConditions, AccessPolicyResolver, AdminAuthConfig, ArrayField, AuthConfig, type AuthDocFields, AuthenticatedUser, BUILTIN_JEXL_HELPERS, BaseDocument, Block, BooleanField, CollectionConfig, ComputedHandler, type ConfigDiagnostic, ConfigValidationError, DateField, DateTimeField, type DeclarativeAccessSurface, type DeclarativeAccessValidationIssue, type DeclarativeAdminSurface, type DeclarativeAdminValidationIssue, DeclarativeHookExpression, type DeclarativeHookSurface, type DeclarativeHookValidationIssue, type DeclarativePreviewSurface, type DeclarativePreviewValidationIssue, DetailComputed, DetailComputedOptions, DetailCustom, DetailCustomOptions, DetailDivider, DetailDividerOptions, DetailField, DetailGrid, DetailGridOptions, DetailItem, DetailRepeat, DetailRepeatOptions, DetailSchema, DetailSection, DetailSectionOptions, DetailTab, DetailTabOptions, DetailTabs, DetailTabsOptions, DetailText, DetailTextOptions, DisplayFieldOptions, DyrectedAIError, DyrectedConfig, EmailField, type ExprFunction, type ExtractCollectionSlugs, Field, FieldConditionBuilder, FieldType, GlobalConfig, HookRequestContext, IconField, ImageField, type InferDocShape, JoinField, JsonField, LIFECYCLE_EVENTS_COLLECTION, LifecycleEvent, LifecycleEventName, MatchBuilder, MultiSelectField, NON_NEGOTIABLE_CREDENTIAL_FIELDS, 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, 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, displayComputed, displayCustom, displayCustomComponent, displayDivider, displayField, displayGrid, displayRepeat, displaySection, displayTab, displayTabs, displayText, endsWith, evaluateDetailComputed, evaluateJexl, evaluateJexlSync, executeFieldAfterRead, executeFieldBeforeChange, expr, first, floor, formatConfigDiagnostics, formatDate, formatJexlValue, generateDefaultDetailSchema, 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, normalizeConfig, normalizeDetailItem, now, numericFieldNames, parseSort, pow, publishedStateName, publishingWorkflow, readingTime, registerJexlHelpers, replace, resolveAdminAuthCollection, resolveAuthorizedSiteId, round, runCollectionHooks, sanitizeDocForAI, saveWorkflowDraft, simplePublishingWorkflow, slugify, sqrt, startsWith, sum, today, transitionWorkflow, trim, truncate, unique, upper, validateAdminConditionExpression, validateDeclarativeAccessExpression, validateDeclarativeHookExpression, validatePreviewUrlExpression, when, wordCount, workflowCapabilities };
|
|
1819
|
+
export { AIConfig, type AIErrorCode, AIPIIConfig, type AccessConditions, AccessPolicyResolver, AdminAuthConfig, ArrayField, AuthConfig, type AuthDocFields, AuthenticatedUser, BUILTIN_JEXL_HELPERS, BaseDocument, Block, BooleanField, 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, DyrectedAIError, DyrectedConfig, DyrectedError, EmailField, type ExprFunction, type ExtractCollectionSlugs, Field, FieldConditionBuilder, FieldType, ForbiddenError, GlobalConfig, HookRequestContext, IconField, ImageField, type InferDocShape, JoinField, JsonField, LIFECYCLE_EVENTS_COLLECTION, LifecycleEvent, LifecycleEventName, MatchBuilder, MultiSelectField, 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, 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, normalizeConfig, normalizeDetailItem, now, numericFieldNames, parseSort, pow, publishedStateName, publishingWorkflow, readingTime, registerJexlHelpers, replace, resolveAdminAuthCollection, resolveAuthorizedSiteId, round, runCollectionHooks, sanitizeDocForAI, saveWorkflowDraft, simplePublishingWorkflow, slugify, sqrt, startsWith, sum, today, transitionWorkflow, trim, truncate, unique, upper, 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
|
|
2
|
-
export {
|
|
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 ArrayField, R as FieldType, S as BooleanField, T as AuthConfig, U as AccessPolicyResolver, V as DateField, X as DateTimeField, Y as EmailField, Z as IconField, _ as ImageField, $ as JoinField, a0 as JsonField, a1 as MultiSelectField, a2 as NumberField, a3 as ObjectField, a4 as RadioField, a5 as RelationshipField, a6 as RichTextField, a7 as RowField, a8 as SelectField, a9 as TextField, aa as TextareaField, ab as TimeField, ac as UrlField } from './app-Cmp5lFLJ.js';
|
|
2
|
+
export { ad as AIAction, ae as AIActionStatus, af as AIActionType, ag as AIAuditActionType, ah as AIAuditRecord, ai as AIChunk, aj as AIMessage, ak as AIPIIPattern, al as AIRateLimitResult, am as AIRateLimitStore, an as AIThread, ao as AIToolContext, ap as AIToolDefinition, aq as AI_ACTIONS_COLLECTION, ar as AI_AUDIT_COLLECTION, as as AI_CHUNKS_COLLECTION, at as AI_MESSAGES_COLLECTION, au as AI_THREADS_COLLECTION, av as AccessConfig, aw as AccessFunction, ax as AccessFunctionArgs, ay as AccessResult, az as AccessRule, aA as ActionConfig, aB as ActionConfigBase, aC as ActionConfigWithHandler, aD as ActionConfigWithMutation, aE as ActionContext, aF as ActionType, aG as AdminAuthAccessResolution, aH as AdminAuthClaimMapping, aI as AdminAuthMember, aJ as AdminAuthProvider, aK as AdminAuthProviderMembersConfig, aL as AdminAuthProvisioningMode, aM as AdminAuthResolveAccessArgs, aN as AdminAuthResolvedIdentity, aO as AdminConfig, aP as AdminDashboardComponentSlots, aQ as AdminIconName, aR as AggregateArgs, aS as AggregateCastType, aT as AggregateCollectionResult, aU as AggregateInput, aV as AggregateOperation, aW as AggregateResult, aX as BaseAdminAuthProvider, aY as BaseFieldAdmin, aZ as BlockVariant, a_ as BlocksField, a$ as BooleanFieldAdmin, b0 as BooleanFormat, b1 as CharacterLimitFieldAdmin, b2 as CharacterLimitFieldConfig, b3 as CollectionAfterChangeHook, b4 as CollectionAfterDeleteHook, b5 as CollectionAfterReadHook, b6 as CollectionAfterReadHookEntry, b7 as CollectionAfterTransitionHook, b8 as CollectionBeforeChangeHook, b9 as CollectionBeforeChangeHookEntry, ba as CollectionBeforeDeleteHook, bb as CollectionBeforeReadHook, bc as CollectionBeforeReadHookEntry, bd as CollectionBeforeTransitionHook, be as CollectionListComponentSlots, bf as CollectionRAGConfig, bg as CollectionSchemaResult, bh as CollectionSummaryResult, bi as CollectionViewComponentSlots, bj as CountOperation, bk as CustomAdminAuthProvider, bl as DatabaseAdapter, bm as DateFieldAdmin, bn as DateFormat, bo as DefaultValueContext, bp as DefineActionOptions, bq as DefineCalendarViewOptions, br as DefineCardsViewOptions, bs as DefineGanttViewOptions, bt as DefineKanbanViewOptions, bu as DefineTableViewOptions, bv as DefineViewBaseOptions, bw as DefineViewOptions, bx as DetailSpan, by as DisplayTone, bz as DisplayVariant, bA as DistinctCountOperation, bB as DistinctValuesOperation, bC as DynamicOptionItem, bD as DynamicOptionsConfig, bE as DynamicOptionsResolver, bF as DynamicOptionsResolverArgs, bG as DyrectedAIContext, bH as DyrectedLoggerConfig, bI as DyrectedObservabilityConfig, bJ as EmailFieldAdmin, bK as FieldAdminHooks, bL as FieldAdminOnChangeHook, bM as FieldAdminOnChangeHookArgs, bN as FieldAdminOptionsHook, bO as FieldAdminOptionsHookArgs, bP as FieldAdminOptionsHookResult, bQ as FieldAfterReadHook, bR as FieldAfterReadHookArgs, bS as FieldBase, bT as FieldBeforeChangeHook, bU as FieldBeforeChangeHookArgs, bV as FieldHook, bW as FieldHooks, bX as FileData, bY as GetDocumentResult, bZ as GlobalAfterChangeHook, b_ as GlobalAfterReadHook, b$ as GlobalAfterReadHookEntry, c0 as GlobalBeforeChangeHook, c1 as GlobalBeforeChangeHookEntry, c2 as GlobalBeforeReadHook, c3 as GlobalBeforeReadHookEntry, c4 as GlobalRAGConfig, c5 as GlobalSchemaResult, c6 as GlobalSummaryResult, c7 as HeadingLevel, c8 as HookFunction, c9 as IconFieldAdmin, ca as ImageService, cb as ImageTransformOptions, cc as InferAggregateResult, cd as JoinFieldAdmin, ce as JsonFieldAdmin, cf as JsonFormat, cg as LIFECYCLE_EVENT_NAMES, ch as LifecycleEventHandler, ci as LinkFormat, cj as MetricColor, ck as MultiSelectFieldAdmin, cl as NamedAccessPolicy, cm as NumberFieldAdmin, cn as NumberFormat, co as NumberLimitFieldAdmin, cp as NumberLimitFieldConfig, cq as NumericOperation, cr as OIDCAdminAuthProvider, cs as OptionFormat, ct as PaginatedResult, cu as PublicAdminAuthProvider, cv as QueryCollectionResult, cw as RAGSearchResult, cx as RadioFieldAdmin, cy as RateLimitConfig, cz as ReadonlyDatabaseAdapter, cA as RichTextFeature, cB as RichTextFieldConfig, cC as SelectFieldAdmin, cD as SqlWhereResult, cE as StorageAdapter, cF as TextFieldAdmin, cG as TextFormat, cH as TextareaFieldAdmin, cI as TrustProxyConfig, cJ as TypedField, cK as UploadConfig, cL as UrlFieldAdmin, cM as UrlLinkValue, cN as ViewActionFeatures, cO as ViewComponentSlots, cP as ViewConfig, cQ as ViewLayout, cR as ViewMetric, cS as ViewSubMetric, cT as WhereClause, cU as WhereOperator, cV as WhereOperatorName, cW as WordLimitFieldAdmin, cX as WordLimitFieldConfig, cY as WorkflowMetadata, cZ as WorkflowRole, c_ as WorkflowState, c$ as WorkflowTransitionContext, d0 as defineAction, d1 as defineCalendarView, d2 as defineCardsView, d3 as defineGanttView, d4 as defineKanbanView, d5 as defineTableView, d6 as defineView, d7 as isAICollection, d8 as parseMongoWhere, d9 as parseSqlWhere } from './app-Cmp5lFLJ.js';
|
|
3
3
|
import jexl from 'jexl';
|
|
4
4
|
import { Context } from 'hono';
|
|
5
5
|
export { z } from 'zod';
|
|
@@ -155,6 +155,48 @@ declare function getAdminRoleForCollection(collection?: CollectionConfig | null)
|
|
|
155
155
|
*/
|
|
156
156
|
declare function isUserAdmin(user: any, collection?: CollectionConfig | null): boolean;
|
|
157
157
|
|
|
158
|
+
/**
|
|
159
|
+
* User-facing errors for self-hosted server code (action handlers, hooks).
|
|
160
|
+
*
|
|
161
|
+
* Throw these instead of hand-rolling `{ statusCode }` onto a plain `Error`.
|
|
162
|
+
* The action pipeline reads `statusCode` for the HTTP status (defaulting to
|
|
163
|
+
* `500` when absent) and `message` for the response body — which is what the
|
|
164
|
+
* SDK surfaces and the admin shows in its failure toast. Write the message
|
|
165
|
+
* for the editor who will read it.
|
|
166
|
+
*
|
|
167
|
+
* @example
|
|
168
|
+
* ```ts
|
|
169
|
+
* import { ValidationError } from "@dyrected/core";
|
|
170
|
+
*
|
|
171
|
+
* handler: async ({ input }) => {
|
|
172
|
+
* if (!input.refundReason) {
|
|
173
|
+
* throw new ValidationError("Enter a refund reason so support can follow up.");
|
|
174
|
+
* }
|
|
175
|
+
* return { status: "refunded" };
|
|
176
|
+
* }
|
|
177
|
+
* ```
|
|
178
|
+
*/
|
|
179
|
+
declare class DyrectedError extends Error {
|
|
180
|
+
readonly statusCode: number;
|
|
181
|
+
constructor(message: string, statusCode?: number);
|
|
182
|
+
}
|
|
183
|
+
/** Bad input the editor can fix and retry. Answered with `400`. */
|
|
184
|
+
declare class ValidationError extends DyrectedError {
|
|
185
|
+
constructor(message: string);
|
|
186
|
+
}
|
|
187
|
+
/** The editor is not allowed to do this. Answered with `403`. */
|
|
188
|
+
declare class ForbiddenError extends DyrectedError {
|
|
189
|
+
constructor(message: string);
|
|
190
|
+
}
|
|
191
|
+
/** A referenced record does not exist. Answered with `404`. */
|
|
192
|
+
declare class NotFoundError extends DyrectedError {
|
|
193
|
+
constructor(message: string);
|
|
194
|
+
}
|
|
195
|
+
/** The current state conflicts with the requested change. Answered with `409`. */
|
|
196
|
+
declare class ConflictError extends DyrectedError {
|
|
197
|
+
constructor(message: string);
|
|
198
|
+
}
|
|
199
|
+
|
|
158
200
|
type SortDirection = 'ASC' | 'DESC';
|
|
159
201
|
interface SortClause {
|
|
160
202
|
field: string;
|
|
@@ -725,6 +767,17 @@ declare function displayCustom<TDoc = any>(name: string, options?: DetailCustomO
|
|
|
725
767
|
* Alias for `displayCustom` to render a custom component in a Detail View layout.
|
|
726
768
|
*/
|
|
727
769
|
declare function displayCustomComponent<TDoc = any>(name: string, options?: DetailCustomOptions<TDoc>): DetailCustom<TDoc>;
|
|
770
|
+
/**
|
|
771
|
+
* Renders a button for a named action (defined in `collection.actions`) at this
|
|
772
|
+
* position in a Detail View — the same action, dialog, and execution as the
|
|
773
|
+
* header toolbar, just placed inline.
|
|
774
|
+
*
|
|
775
|
+
* @example
|
|
776
|
+
* ```ts
|
|
777
|
+
* displayAction('markShipped', { variant: 'default', span: 4 })
|
|
778
|
+
* ```
|
|
779
|
+
*/
|
|
780
|
+
declare function displayAction(name: string, options?: DetailActionOptions): DetailAction;
|
|
728
781
|
/**
|
|
729
782
|
* Evaluates server-side computed functions and JEXL expressions from a detail schema
|
|
730
783
|
* and attaches them to `doc._meta.computed`.
|
|
@@ -1763,4 +1816,4 @@ declare function defineTab<const T extends readonly Field[]>(args: {
|
|
|
1763
1816
|
fields: T;
|
|
1764
1817
|
}): T;
|
|
1765
1818
|
|
|
1766
|
-
export { AIConfig, type AIErrorCode, AIPIIConfig, type AccessConditions, AccessPolicyResolver, AdminAuthConfig, ArrayField, AuthConfig, type AuthDocFields, AuthenticatedUser, BUILTIN_JEXL_HELPERS, BaseDocument, Block, BooleanField, CollectionConfig, ComputedHandler, type ConfigDiagnostic, ConfigValidationError, DateField, DateTimeField, type DeclarativeAccessSurface, type DeclarativeAccessValidationIssue, type DeclarativeAdminSurface, type DeclarativeAdminValidationIssue, DeclarativeHookExpression, type DeclarativeHookSurface, type DeclarativeHookValidationIssue, type DeclarativePreviewSurface, type DeclarativePreviewValidationIssue, DetailComputed, DetailComputedOptions, DetailCustom, DetailCustomOptions, DetailDivider, DetailDividerOptions, DetailField, DetailGrid, DetailGridOptions, DetailItem, DetailRepeat, DetailRepeatOptions, DetailSchema, DetailSection, DetailSectionOptions, DetailTab, DetailTabOptions, DetailTabs, DetailTabsOptions, DetailText, DetailTextOptions, DisplayFieldOptions, DyrectedAIError, DyrectedConfig, EmailField, type ExprFunction, type ExtractCollectionSlugs, Field, FieldConditionBuilder, FieldType, GlobalConfig, HookRequestContext, IconField, ImageField, type InferDocShape, JoinField, JsonField, LIFECYCLE_EVENTS_COLLECTION, LifecycleEvent, LifecycleEventName, MatchBuilder, MultiSelectField, NON_NEGOTIABLE_CREDENTIAL_FIELDS, 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, 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, displayComputed, displayCustom, displayCustomComponent, displayDivider, displayField, displayGrid, displayRepeat, displaySection, displayTab, displayTabs, displayText, endsWith, evaluateDetailComputed, evaluateJexl, evaluateJexlSync, executeFieldAfterRead, executeFieldBeforeChange, expr, first, floor, formatConfigDiagnostics, formatDate, formatJexlValue, generateDefaultDetailSchema, 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, normalizeConfig, normalizeDetailItem, now, numericFieldNames, parseSort, pow, publishedStateName, publishingWorkflow, readingTime, registerJexlHelpers, replace, resolveAdminAuthCollection, resolveAuthorizedSiteId, round, runCollectionHooks, sanitizeDocForAI, saveWorkflowDraft, simplePublishingWorkflow, slugify, sqrt, startsWith, sum, today, transitionWorkflow, trim, truncate, unique, upper, validateAdminConditionExpression, validateDeclarativeAccessExpression, validateDeclarativeHookExpression, validatePreviewUrlExpression, when, wordCount, workflowCapabilities };
|
|
1819
|
+
export { AIConfig, type AIErrorCode, AIPIIConfig, type AccessConditions, AccessPolicyResolver, AdminAuthConfig, ArrayField, AuthConfig, type AuthDocFields, AuthenticatedUser, BUILTIN_JEXL_HELPERS, BaseDocument, Block, BooleanField, 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, DyrectedAIError, DyrectedConfig, DyrectedError, EmailField, type ExprFunction, type ExtractCollectionSlugs, Field, FieldConditionBuilder, FieldType, ForbiddenError, GlobalConfig, HookRequestContext, IconField, ImageField, type InferDocShape, JoinField, JsonField, LIFECYCLE_EVENTS_COLLECTION, LifecycleEvent, LifecycleEventName, MatchBuilder, MultiSelectField, 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, 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, normalizeConfig, normalizeDetailItem, now, numericFieldNames, parseSort, pow, publishedStateName, publishingWorkflow, readingTime, registerJexlHelpers, replace, resolveAdminAuthCollection, resolveAuthorizedSiteId, round, runCollectionHooks, sanitizeDocForAI, saveWorkflowDraft, simplePublishingWorkflow, slugify, sqrt, startsWith, sum, today, transitionWorkflow, trim, truncate, unique, upper, validateAdminConditionExpression, validateDeclarativeAccessExpression, validateDeclarativeHookExpression, validatePreviewUrlExpression, when, wordCount, workflowCapabilities };
|
package/dist/index.js
CHANGED
|
@@ -3710,6 +3710,45 @@ function normalizeConfig(config) {
|
|
|
3710
3710
|
};
|
|
3711
3711
|
}
|
|
3712
3712
|
|
|
3713
|
+
// src/utils/errors.ts
|
|
3714
|
+
var DyrectedError = class _DyrectedError extends Error {
|
|
3715
|
+
statusCode;
|
|
3716
|
+
constructor(message, statusCode = 500) {
|
|
3717
|
+
super(message);
|
|
3718
|
+
this.name = "DyrectedError";
|
|
3719
|
+
this.statusCode = statusCode;
|
|
3720
|
+
Object.setPrototypeOf(this, _DyrectedError.prototype);
|
|
3721
|
+
}
|
|
3722
|
+
};
|
|
3723
|
+
var ValidationError = class _ValidationError extends DyrectedError {
|
|
3724
|
+
constructor(message) {
|
|
3725
|
+
super(message, 400);
|
|
3726
|
+
this.name = "ValidationError";
|
|
3727
|
+
Object.setPrototypeOf(this, _ValidationError.prototype);
|
|
3728
|
+
}
|
|
3729
|
+
};
|
|
3730
|
+
var ForbiddenError = class _ForbiddenError extends DyrectedError {
|
|
3731
|
+
constructor(message) {
|
|
3732
|
+
super(message, 403);
|
|
3733
|
+
this.name = "ForbiddenError";
|
|
3734
|
+
Object.setPrototypeOf(this, _ForbiddenError.prototype);
|
|
3735
|
+
}
|
|
3736
|
+
};
|
|
3737
|
+
var NotFoundError = class _NotFoundError extends DyrectedError {
|
|
3738
|
+
constructor(message) {
|
|
3739
|
+
super(message, 404);
|
|
3740
|
+
this.name = "NotFoundError";
|
|
3741
|
+
Object.setPrototypeOf(this, _NotFoundError.prototype);
|
|
3742
|
+
}
|
|
3743
|
+
};
|
|
3744
|
+
var ConflictError = class _ConflictError extends DyrectedError {
|
|
3745
|
+
constructor(message) {
|
|
3746
|
+
super(message, 409);
|
|
3747
|
+
this.name = "ConflictError";
|
|
3748
|
+
Object.setPrototypeOf(this, _ConflictError.prototype);
|
|
3749
|
+
}
|
|
3750
|
+
};
|
|
3751
|
+
|
|
3713
3752
|
// src/utils/parse-where.ts
|
|
3714
3753
|
function assertNever(op, context) {
|
|
3715
3754
|
throw new Error(`[dyrected/core] Unhandled where operator "${op}" in ${context}`);
|
|
@@ -5569,6 +5608,13 @@ function displayCustom(name, options) {
|
|
|
5569
5608
|
function displayCustomComponent(name, options) {
|
|
5570
5609
|
return displayCustom(name, options);
|
|
5571
5610
|
}
|
|
5611
|
+
function displayAction(name, options) {
|
|
5612
|
+
return {
|
|
5613
|
+
type: "action",
|
|
5614
|
+
name,
|
|
5615
|
+
options
|
|
5616
|
+
};
|
|
5617
|
+
}
|
|
5572
5618
|
async function evaluateDetailComputed(detail, doc, user, db) {
|
|
5573
5619
|
if (!doc || !detail || !Array.isArray(detail)) {
|
|
5574
5620
|
return doc;
|
|
@@ -5641,6 +5687,12 @@ function generateDefaultDetailSchema(schema) {
|
|
|
5641
5687
|
if (SENSITIVE_DETAIL_FIELDS.has(field.name)) continue;
|
|
5642
5688
|
if (field.hidden) continue;
|
|
5643
5689
|
if (field.admin?.hidden) continue;
|
|
5690
|
+
if (field.type === "join") {
|
|
5691
|
+
const joinColumns = field.admin?.columns;
|
|
5692
|
+
const repeatItems = Array.isArray(joinColumns) && joinColumns.length > 0 ? joinColumns.map((col) => displayField(col, { span: 12 })) : [displayComputed("Item", "doc.title || doc.name || doc.label || doc.slug || doc.id")];
|
|
5693
|
+
mainFields.push(displayRepeat(field.name, repeatItems, { span: 12, layout: "table" }));
|
|
5694
|
+
continue;
|
|
5695
|
+
}
|
|
5644
5696
|
const isSidebar = sidebarFieldTypes.has(field.type) && field.type !== "relationship" && !field.hasMany;
|
|
5645
5697
|
if (isSidebar && sidebarFields.length < 5) {
|
|
5646
5698
|
sidebarFields.push(
|
|
@@ -6382,13 +6434,18 @@ export {
|
|
|
6382
6434
|
AI_THREADS_COLLECTION,
|
|
6383
6435
|
BUILTIN_JEXL_HELPERS,
|
|
6384
6436
|
ConfigValidationError,
|
|
6437
|
+
ConflictError,
|
|
6385
6438
|
DyrectedAIError,
|
|
6439
|
+
DyrectedError,
|
|
6386
6440
|
FieldConditionBuilder,
|
|
6441
|
+
ForbiddenError,
|
|
6387
6442
|
LIFECYCLE_EVENTS_COLLECTION,
|
|
6388
6443
|
LIFECYCLE_EVENT_NAMES,
|
|
6389
6444
|
MatchBuilder,
|
|
6390
6445
|
NON_NEGOTIABLE_CREDENTIAL_FIELDS,
|
|
6446
|
+
NotFoundError,
|
|
6391
6447
|
PII_REGEX_PATTERNS,
|
|
6448
|
+
ValidationError,
|
|
6392
6449
|
WORKFLOW_HISTORY_COLLECTION,
|
|
6393
6450
|
abs,
|
|
6394
6451
|
addDays,
|
|
@@ -6455,6 +6512,7 @@ export {
|
|
|
6455
6512
|
diffDays,
|
|
6456
6513
|
dispatchLifecycleEvent,
|
|
6457
6514
|
dispatchPendingLifecycleEvents,
|
|
6515
|
+
displayAction,
|
|
6458
6516
|
displayComputed,
|
|
6459
6517
|
displayCustom,
|
|
6460
6518
|
displayCustomComponent,
|