@stndrds/schema 1.0.0-alpha.94 → 1.0.0-alpha.96
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/attributes-Btn-GLvC.d.ts +674 -0
- package/dist/attributes-CeDp1IMp.d.mts +674 -0
- package/dist/chunk-2TEWGEUI.js +212 -0
- package/dist/chunk-4RGFTMQR.mjs +8 -0
- package/dist/chunk-5TLM4QXO.mjs +8 -0
- package/dist/chunk-67PQMHQA.mjs +199 -0
- package/dist/chunk-6HHSX6LP.js +64 -0
- package/dist/chunk-AHPXNPJC.js +105 -0
- package/dist/chunk-BEN6TE7Y.js +11 -0
- package/dist/chunk-BH3RPSC5.js +22 -0
- package/dist/chunk-BIQ35DLC.mjs +78 -0
- package/dist/chunk-CKZHFJQT.js +16 -0
- package/dist/chunk-E6XO2STS.js +11 -11
- package/dist/chunk-EIWGW2ML.mjs +99 -0
- package/dist/chunk-EKG35CSO.mjs +1 -0
- package/dist/chunk-IMEPIVTR.js +217 -0
- package/dist/chunk-J4ORNCAH.js +10 -0
- package/dist/chunk-KC4F3HB7.js +32 -0
- package/dist/chunk-LHXE7LLD.js +28 -0
- package/dist/chunk-MD6XGXTU.mjs +18 -0
- package/dist/chunk-N47XKY4R.js +14 -0
- package/dist/chunk-NXXSNUDI.mjs +8 -0
- package/dist/chunk-PKG3E5MW.mjs +18 -0
- package/dist/chunk-PZT3CIHD.mjs +192 -0
- package/dist/chunk-QL3UGPUG.mjs +60 -0
- package/dist/chunk-QY65ZSBL.js +16 -0
- package/dist/chunk-R6JFUC32.js +2 -0
- package/dist/chunk-RDXQ4CYT.mjs +9 -0
- package/dist/chunk-S5VJ2FZE.js +12 -0
- package/dist/chunk-SVII65W7.mjs +14 -0
- package/dist/chunk-U7VN3RUE.mjs +25 -0
- package/dist/chunk-VCPYYLCS.js +83 -0
- package/dist/chunk-VD3P2A6Q.js +10 -0
- package/dist/chunk-VPEV3W34.mjs +10 -0
- package/dist/chunk-WGFQMQMV.mjs +14 -0
- package/dist/chunk-X6VDDXG7.mjs +12 -0
- package/dist/chunk-XAORXFAX.mjs +1 -10
- package/dist/chunk-XEOG24K6.mjs +8 -0
- package/dist/chunk-XK6XC3V4.js +10 -0
- package/dist/chunk-XZ5B5MTG.js +20 -0
- package/dist/chunk-YKHC2AW6.js +10 -0
- package/dist/chunk-Z2T7ONKU.js +20 -0
- package/dist/chunk-ZFL7DXAE.mjs +28 -0
- package/dist/chunk-ZM7W2ZCF.mjs +20 -0
- package/dist/{validators-BCw4Sn01.d.mts → index-CvXnHxD2.d.mts} +12 -1359
- package/dist/{validators-5XMwJOlV.d.ts → index-telccAkt.d.ts} +12 -1359
- package/dist/index.d.mts +1295 -474
- package/dist/index.d.ts +1295 -474
- package/dist/index.js +1400 -831
- package/dist/index.mjs +583 -571
- package/dist/types-B5Zhhoev.d.ts +39 -0
- package/dist/types-C6naks1H.d.mts +39 -0
- package/dist/utils.js +38 -20
- package/dist/utils.mjs +1 -20
- package/dist/validation/all.d.mts +23 -0
- package/dist/validation/all.d.ts +23 -0
- package/dist/validation/all.js +265 -0
- package/dist/validation/all.mjs +20 -0
- package/dist/validation/complex/currency.d.mts +15 -0
- package/dist/validation/complex/currency.d.ts +15 -0
- package/dist/validation/complex/currency.js +12 -0
- package/dist/validation/complex/currency.mjs +3 -0
- package/dist/validation/complex/file.d.mts +13 -0
- package/dist/validation/complex/file.d.ts +13 -0
- package/dist/validation/complex/file.js +12 -0
- package/dist/validation/complex/file.mjs +3 -0
- package/dist/validation/complex/location.d.mts +22 -0
- package/dist/validation/complex/location.d.ts +22 -0
- package/dist/validation/complex/location.js +12 -0
- package/dist/validation/complex/location.mjs +3 -0
- package/dist/validation/complex/phone.d.mts +22 -0
- package/dist/validation/complex/phone.d.ts +22 -0
- package/dist/validation/complex/phone.js +12 -0
- package/dist/validation/complex/phone.mjs +3 -0
- package/dist/validation/complex/relation.d.mts +25 -0
- package/dist/validation/complex/relation.d.ts +25 -0
- package/dist/validation/complex/relation.js +20 -0
- package/dist/validation/complex/relation.mjs +3 -0
- package/dist/validation/complex/richtext.d.mts +13 -0
- package/dist/validation/complex/richtext.d.ts +13 -0
- package/dist/validation/complex/richtext.js +12 -0
- package/dist/validation/complex/richtext.mjs +3 -0
- package/dist/validation/complex/select.d.mts +20 -0
- package/dist/validation/complex/select.d.ts +20 -0
- package/dist/validation/complex/select.js +20 -0
- package/dist/validation/complex/select.mjs +3 -0
- package/dist/validation/complex/user.d.mts +13 -0
- package/dist/validation/complex/user.d.ts +13 -0
- package/dist/validation/complex/user.js +12 -0
- package/dist/validation/complex/user.mjs +3 -0
- package/dist/validation/computed/formula.d.mts +14 -0
- package/dist/validation/computed/formula.d.ts +14 -0
- package/dist/validation/computed/formula.js +12 -0
- package/dist/validation/computed/formula.mjs +3 -0
- package/dist/validation/computed/rollup.d.mts +14 -0
- package/dist/validation/computed/rollup.d.ts +14 -0
- package/dist/validation/computed/rollup.js +12 -0
- package/dist/validation/computed/rollup.mjs +3 -0
- package/dist/validation/config/index.d.mts +421 -0
- package/dist/validation/config/index.d.ts +421 -0
- package/dist/validation/config/index.js +103 -0
- package/dist/validation/config/index.mjs +2 -0
- package/dist/validation/core/index.d.mts +85 -0
- package/dist/validation/core/index.d.ts +85 -0
- package/dist/validation/core/index.js +27 -0
- package/dist/validation/core/index.mjs +2 -0
- package/dist/validation/object/index.d.mts +6 -0
- package/dist/validation/object/index.d.ts +6 -0
- package/dist/validation/object/index.js +71 -0
- package/dist/validation/object/index.mjs +18 -0
- package/dist/validation/primitives/checkbox.d.mts +12 -0
- package/dist/validation/primitives/checkbox.d.ts +12 -0
- package/dist/validation/primitives/checkbox.js +12 -0
- package/dist/validation/primitives/checkbox.mjs +3 -0
- package/dist/validation/primitives/date.d.mts +12 -0
- package/dist/validation/primitives/date.d.ts +12 -0
- package/dist/validation/primitives/date.js +12 -0
- package/dist/validation/primitives/date.mjs +3 -0
- package/dist/validation/primitives/number.d.mts +12 -0
- package/dist/validation/primitives/number.d.ts +12 -0
- package/dist/validation/primitives/number.js +12 -0
- package/dist/validation/primitives/number.mjs +3 -0
- package/dist/validation/primitives/rating.d.mts +12 -0
- package/dist/validation/primitives/rating.d.ts +12 -0
- package/dist/validation/primitives/rating.js +12 -0
- package/dist/validation/primitives/rating.mjs +3 -0
- package/dist/validation/primitives/text.d.mts +17 -0
- package/dist/validation/primitives/text.d.ts +17 -0
- package/dist/validation/primitives/text.js +16 -0
- package/dist/validation/primitives/text.mjs +3 -0
- package/dist/validation/validators.d.mts +21 -2
- package/dist/validation/validators.d.ts +21 -2
- package/dist/validation/validators.js +265 -120
- package/dist/validation/validators.mjs +20 -120
- package/package.json +108 -5
- package/dist/chunk-4362R5F2.mjs +0 -780
- package/dist/chunk-7QUI6TSO.js +0 -780
package/dist/index.d.ts
CHANGED
|
@@ -1,9 +1,32 @@
|
|
|
1
|
-
import { S as SortRule, F as FilterState, W as WorkflowNode,
|
|
2
|
-
export {
|
|
1
|
+
import { S as SortRule, F as FilterState, W as WorkflowNode, l as FormNode, m as WorkflowNodeType, T as Timestamps, R as RelationFieldConfig, n as FlowHeadingRow, o as FlowSeparatorRow, p as FlowTextRow, q as FlowRelationListRow, r as WorkflowSlot, s as WorkflowTheme, t as RelationBufferMap, V as ViewType, u as ViewConfig, C as ConfigOverrides, w as WorkflowStatus, x as WorkflowLayout, y as WorkflowConfig, z as WorkflowDefinition, I as InstanceStatus, A as WorkflowExecutionContext, B as WorkflowTransition, P as PendingAction, D as CompletionStatus, O as ObjectRecord, M as MigrationDefinition, E as ObjectDefinition, G as DetailViewConfig, H as DetailViewDefinition, J as DetailViewLayout, K as SidePanelConfig, L as Field, N as AttributeGroupField, Q as FieldGroup, U as RelationGroup, X as Group, Y as TableTab, Z as CreateMode, _ as Tab, $ as ListViewConfig, a0 as ListViewDefinition, a1 as SlotMode, a2 as FlowFieldsRow, a3 as ConditionGroup, a4 as ConditionRule, a5 as ViewDefinition, a6 as ListViewTab } from './index-telccAkt.js';
|
|
2
|
+
export { a7 as AINode, a8 as ActivityTab, a9 as AdvancedFilterState, aa as AssignNode, ab as AssignmentMapping, ac as AssignmentSource, ad as BufferedRecord, ae as BuiltInTransform, af as CalendarViewConfig, ag as CalendarViewDefinition, ah as CanvasViewport, ai as CheckboxFilterOperator, aj as ConditionNode, ak as ConditionOperator, al as CurrencyFilterValue, am as CustomTab, an as DEFAULT_RETENTION_POLICY, ao as DEFAULT_THEME, ap as DateFilterOperator, aq as DisplayRecord, ar as DocumentsTab, as as EndNode, at as ExtendedFilterRule, au as FilterCombinator, av as FilterGroup, aw as FilterOperator, ax as FilterRule, ay as FilterValue, az as FlowDefinition, aA as FlowPage, aB as FlowRelation, aC as FlowRow, aD as FlowRowField, aE as FlowRowType, aF as FlowSlot, aG as FlowStatus, aH as FlowsTab, aI as FormDensity, aJ as FormFieldRef, aK as FormTab, aL as GalleryViewConfig, aM as GalleryViewDefinition, aN as GeneratedDocument, aO as InverseSource, aP as ListViewLayout, aQ as MigrationError, aR as MigrationPreview, aS as MultiselectFilterOperator, aT as NO_VALUE_OPERATORS, aU as NoValueOperator, aV as NodePosition, aW as NumberFilterOperator, aX as OPERATORS_BY_TYPE, aY as ObjectAttribute, aZ as PhoneFilterValue, a_ as QueryState, a$ as RESERVED_ATTRIBUTE_NAMES, b0 as RecordPatch, b1 as RelationBuffer, b2 as RelationFilterOperator, b3 as RelationQualifierPatch, b4 as RelationSource, b5 as RelativeDateValue, b6 as ReservedAttributeName, b7 as RetentionPolicy, b8 as RichtextTab, b9 as SYSTEM_FIELD_NAMES, ba as SchemaOperation, bb as SchemaTransform, bc as SelectFilterOperator, bd as SortDirection, be as StartNode, bf as SystemFieldName, bg as TabType, bh as TableSource, bi as TextFilterOperator, bj as ThemeColors, bk as ThemeLogo, bl as ThemeTypography, bm as TimelineViewConfig, bn as TimelineViewDefinition, bo as TransformSource, bp as ViewOperation, bq as ViewOverlay, br as ViewTransform, bs as WorkflowError, bt as WorkflowInstance, bu as and, bv as canResumeInstance, c as computeRecordStatus, a as createAttributeValidator, b as createDraftValidator, bw as createEmptyContext, d as createFormAttributeValidator, e as createObjectValidator, bx as createStartTransition, by as eq, bz as generateCssVariables, bA as getContextValue, g as getMissingRequiredAttributes, bB as getRollupFilterOperators, bC as inValues, bD as isAINode, bE as isActivityTab, bF as isAdvancedFormNode, bG as isAssignNode, bH as isCalendarView, bI as isConditionGroup, bJ as isConditionNode, bK as isConditionRule, bL as isCustomTab, bM as isDetailView, bN as isDocumentsTab, bO as isEndNode, bP as isFieldGroup, bQ as isFlowDefinition, bR as isFlowFieldsRow, bS as isFlowPublished, bT as isFlowRelationListRow, bU as isFlowsTab, bV as isFormNode, bW as isFormTab, bX as isGalleryView, bY as isInstanceTerminal, bZ as isInstanceWaiting, b_ as isInverseSourceTab, b$ as isLayoutRow, c0 as isListView, c1 as isNoValueOperator, i as isRecordComplete, c2 as isRelationGroup, c3 as isRelationSourceTab, c4 as isRichtextTab, c5 as isSimpleFormNode, c6 as isStartNode, c7 as isSystemFlow, c8 as isSystemWorkflow, c9 as isTableTab, ca as isTimelineView, cb as isWorkflowDefinition, cc as isWorkflowPublished, cd as mergeWithDefaults, ce as neq, cf as or, cg as setContextValue, v as validateAttribute, f as validateDraft, h as validateDraftOrThrow, j as validateObject, k as validateObjectOrThrow } from './index-telccAkt.js';
|
|
3
|
+
import { A as Attribute, j as AttributeType, k as LocationGranularity, l as Location, e as FormulaAttribute, f as RollupAttribute, d as StatusAttribute, c as SelectAttribute, b as MultiselectAttribute, m as Phone, n as Currency, D as DateAttribute, U as UserAttribute, o as DocumentAttribute, p as FeatureGate, i as TextAttribute, T as TextAreaAttribute, a as RichtextAttribute, q as RichtextFeature, N as NumberAttribute, g as CheckboxAttribute, P as PhoneAttribute, C as CurrencyAttribute, O as Option, L as LocationAttribute, F as FileAttribute, R as RelationAttribute, h as RatingAttribute, B as BilateralConfig, S as SingleRelationAttribute, M as MultiRelationAttribute, r as RelationTarget, s as FormulaReturnType, t as RollupFunction, u as FlagValueType, v as FeatureFlagDefinition, w as FlagLevel, x as FeatureFlagsRepository, y as StaticFlagDefault, z as ResolvedFlag } from './attributes-Btn-GLvC.js';
|
|
4
|
+
export { E as AttributeGroup, G as BaseAttribute, H as DateFormat, I as DateValue, J as FORBIDDEN_PROPERTY_TYPES, K as FeatureFlagsConfig, Q as FlagOverride, V as ForbiddenPropertyType, W as NON_SORTABLE_TYPES, X as NumberUnit, Y as OptionPropertyAttribute, Z as PropertyAttribute, _ as PropertySchema, $ as PropertyType, a0 as RELATION_TARGET_ANY, a1 as StatusGroup, a2 as hasOptions, a3 as inferInverseCardinality, a4 as isAttributeSortable, a5 as isBilateralRelation, a6 as isUniversalRelation } from './attributes-Btn-GLvC.js';
|
|
3
5
|
import { MimeType, IconName, CountryIso3, CurrencyCode, ColorId } from '@stndrds/constants';
|
|
4
6
|
import { Uuid, TenantId } from './utils.js';
|
|
5
7
|
export { UserId, asTenantId, asUserId, deepEqual, generateId, generatePrefixedId, generateTemplateName, indexBy, slugify } from './utils.js';
|
|
6
|
-
import { z } from 'zod';
|
|
8
|
+
import z$1, { z } from 'zod';
|
|
9
|
+
import { StandardSchemaV1 } from '@standard-schema/spec';
|
|
10
|
+
export { StandardSchemaV1 } from '@standard-schema/spec';
|
|
11
|
+
export { V as ValidationMessages, a as ValidationResult } from './types-B5Zhhoev.js';
|
|
12
|
+
export { DEFAULT_VALIDATION_MESSAGES, createRegexCache, formatZodErrors, getCachedRegex } from './validation/core/index.js';
|
|
13
|
+
export { createTextAreaValidator, createTextValidator } from './validation/primitives/text.js';
|
|
14
|
+
export { createNumberValidator } from './validation/primitives/number.js';
|
|
15
|
+
export { createCheckboxValidator } from './validation/primitives/checkbox.js';
|
|
16
|
+
export { createDateValidator } from './validation/primitives/date.js';
|
|
17
|
+
export { createRatingValidator } from './validation/primitives/rating.js';
|
|
18
|
+
export { createPhoneValidator } from './validation/complex/phone.js';
|
|
19
|
+
export { createCurrencyValidator } from './validation/complex/currency.js';
|
|
20
|
+
export { createLocationValidator } from './validation/complex/location.js';
|
|
21
|
+
export { createRichtextValidator } from './validation/complex/richtext.js';
|
|
22
|
+
export { createMultiselectValidator, createSelectValidator, createStatusValidator } from './validation/complex/select.js';
|
|
23
|
+
export { createFileValidator } from './validation/complex/file.js';
|
|
24
|
+
export { createUserValidator } from './validation/complex/user.js';
|
|
25
|
+
export { createMultiRelationValidator, createRelationValidator, createSingleRelationValidator } from './validation/complex/relation.js';
|
|
26
|
+
export { createFormulaValidator } from './validation/computed/formula.js';
|
|
27
|
+
export { createRollupValidator } from './validation/computed/rollup.js';
|
|
28
|
+
export { attributeConfigSchemas, checkboxConfigSchema, currencyConfigSchema, dateConfigSchema, documentConfigSchema, fileConfigSchema, formulaConfigSchema, getAttributeConfigSchema, locationConfigSchema, multiselectConfigSchema, numberConfigSchema, parseAttributeConfig, phoneConfigSchema, ratingConfigSchema, relationConfigSchema, richtextConfigSchema, rollupConfigSchema, safeParseAttributeConfig, selectConfigSchema, statusConfigSchema, textConfigSchema, textareaConfigSchema, userConfigSchema, validateAttributeConfig } from './validation/config/index.js';
|
|
29
|
+
import { JSONSchema7 } from 'json-schema';
|
|
7
30
|
|
|
8
31
|
/**
|
|
9
32
|
* Generic list options for pagination and sorting
|
|
@@ -229,6 +252,8 @@ interface UpdateFile {
|
|
|
229
252
|
allowedUsers?: Uuid[];
|
|
230
253
|
}
|
|
231
254
|
|
|
255
|
+
declare function registerBuiltInNodeTypes(): void;
|
|
256
|
+
|
|
232
257
|
/**
|
|
233
258
|
* Status of a workflow invitation
|
|
234
259
|
*/
|
|
@@ -740,18 +765,35 @@ declare const ConditionRuleSchema: z.ZodObject<{
|
|
|
740
765
|
}, z.core.$strip>;
|
|
741
766
|
/**
|
|
742
767
|
* Condition group schema (recursive)
|
|
768
|
+
*
|
|
769
|
+
* Uses Zod v4 getter pattern for recursive types instead of z.lazy().
|
|
770
|
+
* This provides cleaner code, better type inference, and improved performance.
|
|
743
771
|
*/
|
|
744
|
-
declare const ConditionGroupSchema: z.
|
|
745
|
-
operator:
|
|
746
|
-
|
|
747
|
-
|
|
748
|
-
operator: z.infer<typeof ConditionOperatorSchema>;
|
|
749
|
-
value: unknown;
|
|
750
|
-
} | {
|
|
751
|
-
operator: "and" | "or";
|
|
752
|
-
rules: unknown[];
|
|
772
|
+
declare const ConditionGroupSchema: z.ZodObject<{
|
|
773
|
+
operator: z.ZodEnum<{
|
|
774
|
+
and: "and";
|
|
775
|
+
or: "or";
|
|
753
776
|
}>;
|
|
754
|
-
|
|
777
|
+
rules: z.ZodArray<z.ZodUnion<readonly [z.ZodObject<{
|
|
778
|
+
field: z.ZodString;
|
|
779
|
+
operator: z.ZodEnum<{
|
|
780
|
+
contains: "contains";
|
|
781
|
+
eq: "eq";
|
|
782
|
+
neq: "neq";
|
|
783
|
+
lt: "lt";
|
|
784
|
+
gt: "gt";
|
|
785
|
+
lte: "lte";
|
|
786
|
+
gte: "gte";
|
|
787
|
+
startsWith: "startsWith";
|
|
788
|
+
endsWith: "endsWith";
|
|
789
|
+
isEmpty: "isEmpty";
|
|
790
|
+
isNotEmpty: "isNotEmpty";
|
|
791
|
+
in: "in";
|
|
792
|
+
notIn: "notIn";
|
|
793
|
+
}>;
|
|
794
|
+
value: z.ZodUnknown;
|
|
795
|
+
}, z.core.$strip>, z.ZodObject</*elided*/ any, z.core.$strip>]>>;
|
|
796
|
+
}, z.core.$strip>;
|
|
755
797
|
/**
|
|
756
798
|
* Start node schema
|
|
757
799
|
*/
|
|
@@ -876,27 +918,31 @@ declare const ConditionNodeSchema: z.ZodObject<{
|
|
|
876
918
|
type: z.ZodLiteral<"condition">;
|
|
877
919
|
id: z.ZodString;
|
|
878
920
|
label: z.ZodString;
|
|
879
|
-
condition: z.
|
|
880
|
-
operator:
|
|
881
|
-
|
|
882
|
-
|
|
883
|
-
operator: z.infer<typeof ConditionOperatorSchema>;
|
|
884
|
-
value: unknown;
|
|
885
|
-
} | {
|
|
886
|
-
operator: "and" | "or";
|
|
887
|
-
rules: unknown[];
|
|
921
|
+
condition: z.ZodObject<{
|
|
922
|
+
operator: z.ZodEnum<{
|
|
923
|
+
and: "and";
|
|
924
|
+
or: "or";
|
|
888
925
|
}>;
|
|
889
|
-
|
|
890
|
-
|
|
891
|
-
|
|
892
|
-
|
|
893
|
-
|
|
894
|
-
|
|
895
|
-
|
|
896
|
-
|
|
897
|
-
|
|
898
|
-
|
|
899
|
-
|
|
926
|
+
rules: z.ZodArray<z.ZodUnion<readonly [z.ZodObject<{
|
|
927
|
+
field: z.ZodString;
|
|
928
|
+
operator: z.ZodEnum<{
|
|
929
|
+
contains: "contains";
|
|
930
|
+
eq: "eq";
|
|
931
|
+
neq: "neq";
|
|
932
|
+
lt: "lt";
|
|
933
|
+
gt: "gt";
|
|
934
|
+
lte: "lte";
|
|
935
|
+
gte: "gte";
|
|
936
|
+
startsWith: "startsWith";
|
|
937
|
+
endsWith: "endsWith";
|
|
938
|
+
isEmpty: "isEmpty";
|
|
939
|
+
isNotEmpty: "isNotEmpty";
|
|
940
|
+
in: "in";
|
|
941
|
+
notIn: "notIn";
|
|
942
|
+
}>;
|
|
943
|
+
value: z.ZodUnknown;
|
|
944
|
+
}, z.core.$strip>, z.ZodObject</*elided*/ any, z.core.$strip>]>>;
|
|
945
|
+
}, z.core.$strip>;
|
|
900
946
|
onTrue: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
901
947
|
onFalse: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
902
948
|
}, z.core.$strip>;
|
|
@@ -1046,27 +1092,31 @@ declare const WorkflowNodeSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
|
|
|
1046
1092
|
type: z.ZodLiteral<"condition">;
|
|
1047
1093
|
id: z.ZodString;
|
|
1048
1094
|
label: z.ZodString;
|
|
1049
|
-
condition: z.
|
|
1050
|
-
operator:
|
|
1051
|
-
|
|
1052
|
-
|
|
1053
|
-
operator: z.infer<typeof ConditionOperatorSchema>;
|
|
1054
|
-
value: unknown;
|
|
1055
|
-
} | {
|
|
1056
|
-
operator: "and" | "or";
|
|
1057
|
-
rules: unknown[];
|
|
1058
|
-
}>;
|
|
1059
|
-
}, unknown, z.core.$ZodTypeInternals<{
|
|
1060
|
-
operator: "and" | "or";
|
|
1061
|
-
rules: Array<{
|
|
1062
|
-
field: string;
|
|
1063
|
-
operator: z.infer<typeof ConditionOperatorSchema>;
|
|
1064
|
-
value: unknown;
|
|
1065
|
-
} | {
|
|
1066
|
-
operator: "and" | "or";
|
|
1067
|
-
rules: unknown[];
|
|
1095
|
+
condition: z.ZodObject<{
|
|
1096
|
+
operator: z.ZodEnum<{
|
|
1097
|
+
and: "and";
|
|
1098
|
+
or: "or";
|
|
1068
1099
|
}>;
|
|
1069
|
-
|
|
1100
|
+
rules: z.ZodArray<z.ZodUnion<readonly [z.ZodObject<{
|
|
1101
|
+
field: z.ZodString;
|
|
1102
|
+
operator: z.ZodEnum<{
|
|
1103
|
+
contains: "contains";
|
|
1104
|
+
eq: "eq";
|
|
1105
|
+
neq: "neq";
|
|
1106
|
+
lt: "lt";
|
|
1107
|
+
gt: "gt";
|
|
1108
|
+
lte: "lte";
|
|
1109
|
+
gte: "gte";
|
|
1110
|
+
startsWith: "startsWith";
|
|
1111
|
+
endsWith: "endsWith";
|
|
1112
|
+
isEmpty: "isEmpty";
|
|
1113
|
+
isNotEmpty: "isNotEmpty";
|
|
1114
|
+
in: "in";
|
|
1115
|
+
notIn: "notIn";
|
|
1116
|
+
}>;
|
|
1117
|
+
value: z.ZodUnknown;
|
|
1118
|
+
}, z.core.$strip>, z.ZodObject</*elided*/ any, z.core.$strip>]>>;
|
|
1119
|
+
}, z.core.$strip>;
|
|
1070
1120
|
onTrue: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
1071
1121
|
onFalse: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
1072
1122
|
}, z.core.$strip>, z.ZodObject<{
|
|
@@ -1158,9 +1208,9 @@ declare const ShareStatusSchema: z.ZodEnum<{
|
|
|
1158
1208
|
* Workflow share schema (simplified from WorkflowParticipation)
|
|
1159
1209
|
*/
|
|
1160
1210
|
declare const WorkflowShareSchema: z.ZodObject<{
|
|
1161
|
-
id: z.
|
|
1162
|
-
instanceId: z.
|
|
1163
|
-
email: z.
|
|
1211
|
+
id: z.ZodUUID;
|
|
1212
|
+
instanceId: z.ZodUUID;
|
|
1213
|
+
email: z.ZodEmail;
|
|
1164
1214
|
name: z.ZodOptional<z.ZodString>;
|
|
1165
1215
|
phone: z.ZodOptional<z.ZodString>;
|
|
1166
1216
|
authMethod: z.ZodEnum<{
|
|
@@ -1186,8 +1236,8 @@ declare const WorkflowShareSchema: z.ZodObject<{
|
|
|
1186
1236
|
* Create share input schema
|
|
1187
1237
|
*/
|
|
1188
1238
|
declare const CreateShareInputSchema: z.ZodObject<{
|
|
1189
|
-
instanceId: z.
|
|
1190
|
-
email: z.
|
|
1239
|
+
instanceId: z.ZodUUID;
|
|
1240
|
+
email: z.ZodEmail;
|
|
1191
1241
|
name: z.ZodOptional<z.ZodString>;
|
|
1192
1242
|
phone: z.ZodOptional<z.ZodString>;
|
|
1193
1243
|
authMethod: z.ZodEnum<{
|
|
@@ -1242,7 +1292,7 @@ declare const ThemeColorsSchema: z.ZodObject<{
|
|
|
1242
1292
|
* Theme logo schema
|
|
1243
1293
|
*/
|
|
1244
1294
|
declare const ThemeLogoSchema: z.ZodObject<{
|
|
1245
|
-
url: z.
|
|
1295
|
+
url: z.ZodURL;
|
|
1246
1296
|
alt: z.ZodOptional<z.ZodString>;
|
|
1247
1297
|
maxHeight: z.ZodOptional<z.ZodNumber>;
|
|
1248
1298
|
}, z.core.$strip>;
|
|
@@ -1251,7 +1301,7 @@ declare const ThemeLogoSchema: z.ZodObject<{
|
|
|
1251
1301
|
*/
|
|
1252
1302
|
declare const WorkflowThemeSchema: z.ZodObject<{
|
|
1253
1303
|
logo: z.ZodOptional<z.ZodObject<{
|
|
1254
|
-
url: z.
|
|
1304
|
+
url: z.ZodURL;
|
|
1255
1305
|
alt: z.ZodOptional<z.ZodString>;
|
|
1256
1306
|
maxHeight: z.ZodOptional<z.ZodNumber>;
|
|
1257
1307
|
}, z.core.$strip>>;
|
|
@@ -1371,27 +1421,31 @@ declare const WorkflowDefinitionSchema: z.ZodObject<{
|
|
|
1371
1421
|
type: z.ZodLiteral<"condition">;
|
|
1372
1422
|
id: z.ZodString;
|
|
1373
1423
|
label: z.ZodString;
|
|
1374
|
-
condition: z.
|
|
1375
|
-
operator:
|
|
1376
|
-
|
|
1377
|
-
|
|
1378
|
-
operator: z.infer<typeof ConditionOperatorSchema>;
|
|
1379
|
-
value: unknown;
|
|
1380
|
-
} | {
|
|
1381
|
-
operator: "and" | "or";
|
|
1382
|
-
rules: unknown[];
|
|
1383
|
-
}>;
|
|
1384
|
-
}, unknown, z.core.$ZodTypeInternals<{
|
|
1385
|
-
operator: "and" | "or";
|
|
1386
|
-
rules: Array<{
|
|
1387
|
-
field: string;
|
|
1388
|
-
operator: z.infer<typeof ConditionOperatorSchema>;
|
|
1389
|
-
value: unknown;
|
|
1390
|
-
} | {
|
|
1391
|
-
operator: "and" | "or";
|
|
1392
|
-
rules: unknown[];
|
|
1424
|
+
condition: z.ZodObject<{
|
|
1425
|
+
operator: z.ZodEnum<{
|
|
1426
|
+
and: "and";
|
|
1427
|
+
or: "or";
|
|
1393
1428
|
}>;
|
|
1394
|
-
|
|
1429
|
+
rules: z.ZodArray<z.ZodUnion<readonly [z.ZodObject<{
|
|
1430
|
+
field: z.ZodString;
|
|
1431
|
+
operator: z.ZodEnum<{
|
|
1432
|
+
contains: "contains";
|
|
1433
|
+
eq: "eq";
|
|
1434
|
+
neq: "neq";
|
|
1435
|
+
lt: "lt";
|
|
1436
|
+
gt: "gt";
|
|
1437
|
+
lte: "lte";
|
|
1438
|
+
gte: "gte";
|
|
1439
|
+
startsWith: "startsWith";
|
|
1440
|
+
endsWith: "endsWith";
|
|
1441
|
+
isEmpty: "isEmpty";
|
|
1442
|
+
isNotEmpty: "isNotEmpty";
|
|
1443
|
+
in: "in";
|
|
1444
|
+
notIn: "notIn";
|
|
1445
|
+
}>;
|
|
1446
|
+
value: z.ZodUnknown;
|
|
1447
|
+
}, z.core.$strip>, z.ZodObject</*elided*/ any, z.core.$strip>]>>;
|
|
1448
|
+
}, z.core.$strip>;
|
|
1395
1449
|
onTrue: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
1396
1450
|
onFalse: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
1397
1451
|
}, z.core.$strip>, z.ZodObject<{
|
|
@@ -1454,7 +1508,7 @@ declare const WorkflowDefinitionSchema: z.ZodObject<{
|
|
|
1454
1508
|
}, z.core.$strip>>;
|
|
1455
1509
|
theme: z.ZodOptional<z.ZodObject<{
|
|
1456
1510
|
logo: z.ZodOptional<z.ZodObject<{
|
|
1457
|
-
url: z.
|
|
1511
|
+
url: z.ZodURL;
|
|
1458
1512
|
alt: z.ZodOptional<z.ZodString>;
|
|
1459
1513
|
maxHeight: z.ZodOptional<z.ZodNumber>;
|
|
1460
1514
|
}, z.core.$strip>>;
|
|
@@ -2729,154 +2783,431 @@ interface AICompactionSummary {
|
|
|
2729
2783
|
}
|
|
2730
2784
|
|
|
2731
2785
|
/**
|
|
2732
|
-
*
|
|
2733
|
-
*
|
|
2734
|
-
*
|
|
2735
|
-
*
|
|
2736
|
-
* Protection levels:
|
|
2737
|
-
* 1. Identity properties: NEVER modifiable (defines attribute structure)
|
|
2738
|
-
* 2. Behavior properties: Modifiable for custom attributes, PROTECTED for system attributes
|
|
2739
|
-
* 3. Presentation properties: ALWAYS modifiable (display only, no logic impact)
|
|
2740
|
-
*/
|
|
2741
|
-
/**
|
|
2742
|
-
* Identity properties - Never modifiable
|
|
2743
|
-
* These define the fundamental structure of the attribute.
|
|
2744
|
-
*/
|
|
2745
|
-
declare const IDENTITY_PROPERTIES: readonly ["name", "type"];
|
|
2746
|
-
/**
|
|
2747
|
-
* Behavior properties - Protected for system attributes
|
|
2748
|
-
* These affect business logic and data integrity.
|
|
2749
|
-
*/
|
|
2750
|
-
declare const BEHAVIOR_PROPERTIES: readonly ["required", "disabled", "hidden", "archived", "deprecated", "defaultValue", "config", "order", "unique"];
|
|
2751
|
-
/**
|
|
2752
|
-
* Presentation properties - Always modifiable
|
|
2753
|
-
* These only affect display, not logic.
|
|
2754
|
-
*/
|
|
2755
|
-
declare const PRESENTATION_PROPERTIES: readonly ["label", "description", "placeholder", "icon"];
|
|
2756
|
-
type IdentityProperty = (typeof IDENTITY_PROPERTIES)[number];
|
|
2757
|
-
type BehaviorProperty = (typeof BEHAVIOR_PROPERTIES)[number];
|
|
2758
|
-
type PresentationProperty = (typeof PRESENTATION_PROPERTIES)[number];
|
|
2759
|
-
/**
|
|
2760
|
-
* Check if a property is an identity property (never modifiable)
|
|
2761
|
-
*/
|
|
2762
|
-
declare function isIdentityProperty(property: string): property is IdentityProperty;
|
|
2763
|
-
/**
|
|
2764
|
-
* Check if a property is a behavior property (protected for system attributes)
|
|
2786
|
+
* Scope of a permission rule.
|
|
2787
|
+
* - `object`: Controls access to an entire object type (business data)
|
|
2788
|
+
* - `system`: Controls access to platform resources (people, workspace)
|
|
2765
2789
|
*/
|
|
2766
|
-
|
|
2790
|
+
type PermissionScope = "object" | "system";
|
|
2767
2791
|
/**
|
|
2768
|
-
*
|
|
2792
|
+
* Actions that can be performed on a resource.
|
|
2769
2793
|
*/
|
|
2770
|
-
|
|
2771
|
-
|
|
2794
|
+
type Action = "read" | "create" | "update" | "delete";
|
|
2772
2795
|
/**
|
|
2773
|
-
*
|
|
2796
|
+
* System resources that can be managed.
|
|
2797
|
+
* - `people`: User profiles, invitations, roles and permissions
|
|
2798
|
+
* - `workspace`: Object definitions, attributes, tenant settings, audit logs
|
|
2799
|
+
* - `architect`: Architect settings, templates, and configurations
|
|
2774
2800
|
*/
|
|
2775
|
-
type
|
|
2801
|
+
type SystemResource = "people" | "workspace" | "architect";
|
|
2776
2802
|
/**
|
|
2777
|
-
*
|
|
2803
|
+
* Preset access levels for simplified permission configuration.
|
|
2804
|
+
* - `full`: All CRUD actions
|
|
2805
|
+
* - `read-only`: Only read action
|
|
2806
|
+
* - `none`: No actions
|
|
2807
|
+
* - `custom`: Manual selection of individual actions
|
|
2778
2808
|
*/
|
|
2779
|
-
type
|
|
2809
|
+
type AccessLevel = "full" | "read-only" | "none" | "custom";
|
|
2810
|
+
declare const ALL_ACTIONS: Action[];
|
|
2780
2811
|
/**
|
|
2781
|
-
*
|
|
2812
|
+
* Derive an AccessLevel from a list of actions.
|
|
2782
2813
|
*/
|
|
2783
|
-
|
|
2814
|
+
declare function actionsToAccessLevel(actions: Action[]): AccessLevel;
|
|
2784
2815
|
/**
|
|
2785
|
-
*
|
|
2816
|
+
* Convert an AccessLevel preset to its corresponding actions.
|
|
2786
2817
|
*/
|
|
2787
|
-
|
|
2788
|
-
/** Field name that was changed */
|
|
2789
|
-
field: string;
|
|
2790
|
-
/** Previous value (undefined for new fields) */
|
|
2791
|
-
oldValue: unknown;
|
|
2792
|
-
/** New value (undefined for deleted fields) */
|
|
2793
|
-
newValue: unknown;
|
|
2794
|
-
}
|
|
2818
|
+
declare function accessLevelToActions(level: Exclude<AccessLevel, "custom">): Action[];
|
|
2795
2819
|
/**
|
|
2796
|
-
*
|
|
2820
|
+
* Role definition - Groups permissions together.
|
|
2821
|
+
*
|
|
2822
|
+
* Roles are tenant-scoped and can be system-defined (immutable) or custom.
|
|
2823
|
+
*
|
|
2824
|
+
* @example
|
|
2825
|
+
* ```typescript
|
|
2826
|
+
* const ownerRole: Role = {
|
|
2827
|
+
* id: "role-123",
|
|
2828
|
+
* tenantId: "tenant-456",
|
|
2829
|
+
* name: "owner",
|
|
2830
|
+
* label: "Owner",
|
|
2831
|
+
* description: "Full access to all platform features and data",
|
|
2832
|
+
* system: true,
|
|
2833
|
+
* createdAt: new Date(),
|
|
2834
|
+
* updatedAt: new Date(),
|
|
2835
|
+
* };
|
|
2836
|
+
* ```
|
|
2797
2837
|
*/
|
|
2798
|
-
interface
|
|
2838
|
+
interface Role extends Timestamps {
|
|
2799
2839
|
id: Uuid;
|
|
2800
2840
|
tenantId: Uuid;
|
|
2801
|
-
/**
|
|
2802
|
-
|
|
2803
|
-
|
|
2804
|
-
|
|
2805
|
-
|
|
2806
|
-
|
|
2807
|
-
|
|
2808
|
-
|
|
2809
|
-
|
|
2810
|
-
/**
|
|
2811
|
-
|
|
2812
|
-
|
|
2813
|
-
|
|
2814
|
-
/**
|
|
2815
|
-
|
|
2816
|
-
|
|
2817
|
-
|
|
2818
|
-
|
|
2819
|
-
createdAt: Date;
|
|
2820
|
-
}
|
|
2821
|
-
/**
|
|
2822
|
-
* Input for creating an audit log entry.
|
|
2823
|
-
* Tenant ID is automatically set from execution context.
|
|
2824
|
-
*/
|
|
2825
|
-
interface CreateAuditLogInput {
|
|
2826
|
-
actorId?: string;
|
|
2827
|
-
/** Denormalized actor email for display purposes. */
|
|
2828
|
-
actorEmail?: string;
|
|
2829
|
-
actorType?: AuditActorType;
|
|
2830
|
-
action: AuditAction;
|
|
2831
|
-
resourceType: AuditResourceType;
|
|
2832
|
-
resourceId: string;
|
|
2833
|
-
resourceLabel?: string;
|
|
2834
|
-
objectName?: string;
|
|
2835
|
-
objectId?: string;
|
|
2836
|
-
changes?: AuditChange[];
|
|
2837
|
-
metadata?: Record<string, unknown>;
|
|
2841
|
+
/**
|
|
2842
|
+
* Technical name (unique per tenant, used in code).
|
|
2843
|
+
* Examples: "owner", "member", "sales_manager"
|
|
2844
|
+
*/
|
|
2845
|
+
name: string;
|
|
2846
|
+
/**
|
|
2847
|
+
* Display name shown in UI.
|
|
2848
|
+
*/
|
|
2849
|
+
label: string;
|
|
2850
|
+
/**
|
|
2851
|
+
* Optional description of the role's purpose.
|
|
2852
|
+
*/
|
|
2853
|
+
description?: string;
|
|
2854
|
+
/**
|
|
2855
|
+
* If true, this role cannot be modified or deleted.
|
|
2856
|
+
* Used for built-in roles like "owner".
|
|
2857
|
+
*/
|
|
2858
|
+
system: boolean;
|
|
2838
2859
|
}
|
|
2839
2860
|
/**
|
|
2840
|
-
*
|
|
2861
|
+
* Permission definition - Grants specific actions on a target.
|
|
2862
|
+
*
|
|
2863
|
+
* A permission belongs to a role and defines what actions are allowed
|
|
2864
|
+
* on a specific target (object or system resource).
|
|
2865
|
+
*
|
|
2866
|
+
* @example
|
|
2867
|
+
* ```typescript
|
|
2868
|
+
* // Allow read and update on companies object
|
|
2869
|
+
* const permission: Permission = {
|
|
2870
|
+
* id: "perm-123",
|
|
2871
|
+
* roleId: "role-456",
|
|
2872
|
+
* scope: "object",
|
|
2873
|
+
* target: "companies",
|
|
2874
|
+
* actions: ["read", "update"],
|
|
2875
|
+
* createdAt: new Date(),
|
|
2876
|
+
* };
|
|
2877
|
+
*
|
|
2878
|
+
* // Wildcard permission for all objects
|
|
2879
|
+
* const wildcardPerm: Permission = {
|
|
2880
|
+
* id: "perm-789",
|
|
2881
|
+
* roleId: "role-456",
|
|
2882
|
+
* scope: "object",
|
|
2883
|
+
* target: "*",
|
|
2884
|
+
* actions: ["read", "create", "update", "delete"],
|
|
2885
|
+
* createdAt: new Date(),
|
|
2886
|
+
* };
|
|
2887
|
+
* ```
|
|
2841
2888
|
*/
|
|
2842
|
-
interface
|
|
2843
|
-
|
|
2844
|
-
|
|
2845
|
-
|
|
2846
|
-
|
|
2847
|
-
|
|
2848
|
-
|
|
2849
|
-
|
|
2850
|
-
|
|
2851
|
-
|
|
2852
|
-
|
|
2889
|
+
interface Permission {
|
|
2890
|
+
id: Uuid;
|
|
2891
|
+
roleId: Uuid;
|
|
2892
|
+
/**
|
|
2893
|
+
* Scope of this permission.
|
|
2894
|
+
*/
|
|
2895
|
+
scope: PermissionScope;
|
|
2896
|
+
/**
|
|
2897
|
+
* Target of the permission.
|
|
2898
|
+
* - For `object` scope: object name (e.g., "companies") or "*" for all
|
|
2899
|
+
* - For `system` scope: system resource (e.g., "people", "workspace") or "*" for all
|
|
2900
|
+
*/
|
|
2901
|
+
target: string;
|
|
2902
|
+
/**
|
|
2903
|
+
* Actions allowed on the target.
|
|
2904
|
+
*/
|
|
2905
|
+
actions: Action[];
|
|
2906
|
+
createdAt: Date;
|
|
2853
2907
|
}
|
|
2854
2908
|
/**
|
|
2855
|
-
*
|
|
2909
|
+
* Links a user profile to a role within a tenant.
|
|
2910
|
+
*
|
|
2911
|
+
* A user can have multiple roles, and their permissions are additive (union).
|
|
2912
|
+
*
|
|
2913
|
+
* Note: `userProfileId` references UserProfile.id from the user_profiles table,
|
|
2914
|
+
* NOT the auth provider ID (authId). This keeps permissions tied to the
|
|
2915
|
+
* application's user management, not the authentication layer.
|
|
2856
2916
|
*/
|
|
2857
|
-
interface
|
|
2917
|
+
interface UserRoleAssignment {
|
|
2918
|
+
id: Uuid;
|
|
2858
2919
|
/**
|
|
2859
|
-
*
|
|
2860
|
-
*
|
|
2861
|
-
*
|
|
2920
|
+
* User profile ID (UserProfile.id from user_profiles table).
|
|
2921
|
+
* This links to the application's user management system,
|
|
2922
|
+
* not the auth provider's user ID.
|
|
2862
2923
|
*/
|
|
2863
|
-
|
|
2924
|
+
userProfileId: Uuid;
|
|
2925
|
+
roleId: Uuid;
|
|
2926
|
+
tenantId: Uuid;
|
|
2864
2927
|
/**
|
|
2865
|
-
*
|
|
2866
|
-
* Logs are buffered and flushed when batch is full or after flushIntervalMs.
|
|
2867
|
-
* @default 10
|
|
2928
|
+
* When the role was assigned.
|
|
2868
2929
|
*/
|
|
2869
|
-
|
|
2930
|
+
assignedAt: Date;
|
|
2870
2931
|
/**
|
|
2871
|
-
*
|
|
2872
|
-
* @default 1000
|
|
2932
|
+
* User profile ID of who assigned this role (for audit trail).
|
|
2873
2933
|
*/
|
|
2874
|
-
|
|
2934
|
+
assignedBy?: Uuid;
|
|
2875
2935
|
}
|
|
2876
|
-
|
|
2936
|
+
/**
|
|
2937
|
+
* Computed permissions for a user.
|
|
2938
|
+
*
|
|
2939
|
+
* This is the merged result of all roles assigned to a user.
|
|
2940
|
+
* Returned by the API for permission checks.
|
|
2941
|
+
*/
|
|
2942
|
+
interface EffectivePermissions {
|
|
2943
|
+
/**
|
|
2944
|
+
* Object-level permissions.
|
|
2945
|
+
* Key is the object name, value is array of allowed actions.
|
|
2946
|
+
* Special key "*" means permission applies to all objects.
|
|
2947
|
+
*/
|
|
2948
|
+
objectPermissions: Record<string, Action[]>;
|
|
2949
|
+
/**
|
|
2950
|
+
* System-level permissions.
|
|
2951
|
+
* Key is the system resource (people, workspace), value is array of allowed actions.
|
|
2952
|
+
* Special key "*" means permission applies to all system resources.
|
|
2953
|
+
*/
|
|
2954
|
+
systemPermissions: Record<string, Action[]>;
|
|
2955
|
+
}
|
|
2956
|
+
/**
|
|
2957
|
+
* Permissions for a specific object.
|
|
2958
|
+
* Convenience type for frontend use.
|
|
2959
|
+
*/
|
|
2960
|
+
interface ObjectPermissions {
|
|
2961
|
+
canRead: boolean;
|
|
2962
|
+
canCreate: boolean;
|
|
2963
|
+
canUpdate: boolean;
|
|
2964
|
+
canDelete: boolean;
|
|
2965
|
+
}
|
|
2966
|
+
/**
|
|
2967
|
+
* Permissions for a specific system resource.
|
|
2968
|
+
* Convenience type for frontend use.
|
|
2969
|
+
*/
|
|
2970
|
+
interface SystemPermissions {
|
|
2971
|
+
canRead: boolean;
|
|
2972
|
+
canCreate: boolean;
|
|
2973
|
+
canUpdate: boolean;
|
|
2974
|
+
canDelete: boolean;
|
|
2975
|
+
}
|
|
2976
|
+
/**
|
|
2977
|
+
* Input for creating a new role.
|
|
2978
|
+
* TenantId is automatically set from TenantContext.
|
|
2979
|
+
*/
|
|
2980
|
+
interface CreateRoleInput {
|
|
2981
|
+
name: string;
|
|
2982
|
+
label: string;
|
|
2983
|
+
description?: string;
|
|
2984
|
+
}
|
|
2985
|
+
/**
|
|
2986
|
+
* Input for updating an existing role.
|
|
2987
|
+
*/
|
|
2988
|
+
interface UpdateRoleInput {
|
|
2989
|
+
label?: string;
|
|
2990
|
+
description?: string;
|
|
2991
|
+
}
|
|
2992
|
+
/**
|
|
2993
|
+
* Input for creating a permission.
|
|
2994
|
+
*/
|
|
2995
|
+
interface CreatePermissionInput {
|
|
2996
|
+
scope: PermissionScope;
|
|
2997
|
+
target: string;
|
|
2998
|
+
/**
|
|
2999
|
+
* Actions allowed on the target.
|
|
3000
|
+
*/
|
|
3001
|
+
actions: Action[];
|
|
3002
|
+
}
|
|
3003
|
+
/**
|
|
3004
|
+
* Input for assigning a role to a user.
|
|
3005
|
+
*/
|
|
3006
|
+
interface AssignRoleInput {
|
|
3007
|
+
/**
|
|
3008
|
+
* User profile ID (UserProfile.id).
|
|
3009
|
+
*/
|
|
3010
|
+
userProfileId: Uuid;
|
|
3011
|
+
roleId: Uuid;
|
|
3012
|
+
tenantId: Uuid;
|
|
3013
|
+
assignedBy?: Uuid;
|
|
3014
|
+
}
|
|
3015
|
+
|
|
3016
|
+
/**
|
|
3017
|
+
* A permission attached to an API key.
|
|
3018
|
+
* Same format as RBAC permissions — reuses PermissionScope, Action, and target.
|
|
3019
|
+
*/
|
|
3020
|
+
interface ApiKeyPermission {
|
|
3021
|
+
scope: PermissionScope;
|
|
3022
|
+
target: string;
|
|
3023
|
+
actions: Action[];
|
|
3024
|
+
}
|
|
3025
|
+
interface ApiKey {
|
|
3026
|
+
id: string;
|
|
3027
|
+
tenantId: string;
|
|
3028
|
+
userProfileId: string | null;
|
|
3029
|
+
name: string;
|
|
3030
|
+
prefix: string;
|
|
3031
|
+
permissions: ApiKeyPermission[];
|
|
3032
|
+
expiresAt: string | null;
|
|
3033
|
+
lastUsedAt: string | null;
|
|
3034
|
+
revokedAt: string | null;
|
|
3035
|
+
createdAt: string;
|
|
3036
|
+
createdBy: string;
|
|
3037
|
+
}
|
|
3038
|
+
/** Returned only at creation time — the only time the plaintext secret is available. */
|
|
3039
|
+
interface ApiKeyWithSecret extends ApiKey {
|
|
3040
|
+
secret: string;
|
|
3041
|
+
}
|
|
3042
|
+
/**
|
|
3043
|
+
* Returned by validateKey — provides everything downstream needs.
|
|
3044
|
+
* Permissions are already intersected with user RBAC for personal keys.
|
|
3045
|
+
*/
|
|
3046
|
+
interface ApiKeyAuthContext {
|
|
3047
|
+
tenantId: string;
|
|
3048
|
+
userId: string | null;
|
|
3049
|
+
keyId: string;
|
|
3050
|
+
permissions: ApiKeyPermission[];
|
|
3051
|
+
}
|
|
3052
|
+
interface CreateApiKeyInput {
|
|
3053
|
+
name: string;
|
|
3054
|
+
permissions: ApiKeyPermission[];
|
|
3055
|
+
expiresAt?: string;
|
|
3056
|
+
userProfileId?: string;
|
|
3057
|
+
}
|
|
3058
|
+
|
|
3059
|
+
/**
|
|
3060
|
+
* Attribute Property Protection
|
|
3061
|
+
*
|
|
3062
|
+
* Defines which properties can be modified based on attribute type (custom vs system).
|
|
3063
|
+
*
|
|
3064
|
+
* Protection levels:
|
|
3065
|
+
* 1. Identity properties: NEVER modifiable (defines attribute structure)
|
|
3066
|
+
* 2. Behavior properties: Modifiable for custom attributes, PROTECTED for system attributes
|
|
3067
|
+
* 3. Presentation properties: ALWAYS modifiable (display only, no logic impact)
|
|
3068
|
+
*/
|
|
3069
|
+
/**
|
|
3070
|
+
* Identity properties - Never modifiable
|
|
3071
|
+
* These define the fundamental structure of the attribute.
|
|
3072
|
+
*/
|
|
3073
|
+
declare const IDENTITY_PROPERTIES: readonly ["name", "type"];
|
|
3074
|
+
/**
|
|
3075
|
+
* Behavior properties - Protected for system attributes
|
|
3076
|
+
* These affect business logic and data integrity.
|
|
3077
|
+
*/
|
|
3078
|
+
declare const BEHAVIOR_PROPERTIES: readonly ["required", "disabled", "hidden", "archived", "deprecated", "defaultValue", "config", "order", "unique"];
|
|
3079
|
+
/**
|
|
3080
|
+
* Presentation properties - Always modifiable
|
|
3081
|
+
* These only affect display, not logic.
|
|
3082
|
+
*/
|
|
3083
|
+
declare const PRESENTATION_PROPERTIES: readonly ["label", "description", "placeholder", "icon"];
|
|
3084
|
+
type IdentityProperty = (typeof IDENTITY_PROPERTIES)[number];
|
|
3085
|
+
type BehaviorProperty = (typeof BEHAVIOR_PROPERTIES)[number];
|
|
3086
|
+
type PresentationProperty = (typeof PRESENTATION_PROPERTIES)[number];
|
|
3087
|
+
/**
|
|
3088
|
+
* Check if a property is an identity property (never modifiable)
|
|
3089
|
+
*/
|
|
3090
|
+
declare function isIdentityProperty(property: string): property is IdentityProperty;
|
|
3091
|
+
/**
|
|
3092
|
+
* Check if a property is a behavior property (protected for system attributes)
|
|
3093
|
+
*/
|
|
3094
|
+
declare function isBehaviorProperty(property: string): property is BehaviorProperty;
|
|
3095
|
+
/**
|
|
3096
|
+
* Check if a property is a presentation property (always modifiable)
|
|
3097
|
+
*/
|
|
3098
|
+
declare function isPresentationProperty(property: string): property is PresentationProperty;
|
|
3099
|
+
|
|
3100
|
+
/**
|
|
3101
|
+
* Type of resource that can be audited
|
|
3102
|
+
*/
|
|
3103
|
+
type AuditResourceType = "record" | "object" | "attribute" | "user" | "role" | "settings" | "file";
|
|
3104
|
+
/**
|
|
3105
|
+
* Actions that can be audited
|
|
3106
|
+
*/
|
|
3107
|
+
type AuditAction = "record.created" | "record.updated" | "record.deleted" | "record.restored" | "object.created" | "object.updated" | "object.deleted" | "attribute.created" | "attribute.updated" | "attribute.deleted" | "user.created" | "user.invited" | "user.updated" | "user.deleted" | "user.login" | "user.logout" | "role.created" | "role.updated" | "role.deleted" | "role.assigned" | "role.revoked" | "settings.updated" | "file.uploaded" | "file.updated" | "file.deleted";
|
|
3108
|
+
/**
|
|
3109
|
+
* Actor type - who performed the action
|
|
3110
|
+
*/
|
|
3111
|
+
type AuditActorType = "user" | "system";
|
|
3112
|
+
/**
|
|
3113
|
+
* Detail of a change on a field
|
|
3114
|
+
*/
|
|
3115
|
+
interface AuditChange {
|
|
3116
|
+
/** Field name that was changed */
|
|
3117
|
+
field: string;
|
|
3118
|
+
/** Previous value (undefined for new fields) */
|
|
3119
|
+
oldValue: unknown;
|
|
3120
|
+
/** New value (undefined for deleted fields) */
|
|
3121
|
+
newValue: unknown;
|
|
3122
|
+
}
|
|
3123
|
+
/**
|
|
3124
|
+
* Audit log entry - immutable record of an action
|
|
3125
|
+
*/
|
|
3126
|
+
interface AuditLogEntry {
|
|
3127
|
+
id: Uuid;
|
|
3128
|
+
tenantId: Uuid;
|
|
3129
|
+
/** User profile ID of the actor (null for system actions) */
|
|
3130
|
+
actorId?: string;
|
|
3131
|
+
/** Denormalized email for search (in case user is deleted) */
|
|
3132
|
+
actorEmail?: string;
|
|
3133
|
+
/** Type of actor */
|
|
3134
|
+
actorType: AuditActorType;
|
|
3135
|
+
action: AuditAction;
|
|
3136
|
+
resourceType: AuditResourceType;
|
|
3137
|
+
resourceId: Uuid;
|
|
3138
|
+
/** Human-readable label (record name, object label, etc.) */
|
|
3139
|
+
resourceLabel?: string;
|
|
3140
|
+
/** Object technical name (e.g., "companies", "contacts") */
|
|
3141
|
+
objectName?: string;
|
|
3142
|
+
/** Object UUID */
|
|
3143
|
+
objectId?: Uuid;
|
|
3144
|
+
changes?: AuditChange[];
|
|
3145
|
+
/** Extra context (IP, user-agent, requestId, etc.) */
|
|
3146
|
+
metadata?: Record<string, unknown>;
|
|
3147
|
+
createdAt: Date;
|
|
3148
|
+
}
|
|
3149
|
+
/**
|
|
3150
|
+
* Input for creating an audit log entry.
|
|
3151
|
+
* Tenant ID is automatically set from execution context.
|
|
3152
|
+
*/
|
|
3153
|
+
interface CreateAuditLogInput {
|
|
3154
|
+
actorId?: string;
|
|
3155
|
+
/** Denormalized actor email for display purposes. */
|
|
3156
|
+
actorEmail?: string;
|
|
3157
|
+
actorType?: AuditActorType;
|
|
3158
|
+
action: AuditAction;
|
|
3159
|
+
resourceType: AuditResourceType;
|
|
3160
|
+
resourceId: string;
|
|
3161
|
+
resourceLabel?: string;
|
|
3162
|
+
objectName?: string;
|
|
3163
|
+
objectId?: string;
|
|
3164
|
+
changes?: AuditChange[];
|
|
3165
|
+
metadata?: Record<string, unknown>;
|
|
3166
|
+
}
|
|
3167
|
+
/**
|
|
3168
|
+
* Options for listing audit logs
|
|
3169
|
+
*/
|
|
3170
|
+
interface AuditListOptions {
|
|
3171
|
+
limit?: number;
|
|
3172
|
+
offset?: number;
|
|
3173
|
+
action?: AuditAction | AuditAction[];
|
|
3174
|
+
resourceType?: AuditResourceType | AuditResourceType[];
|
|
3175
|
+
objectName?: string;
|
|
3176
|
+
actorId?: string;
|
|
3177
|
+
from?: Date;
|
|
3178
|
+
to?: Date;
|
|
3179
|
+
orderBy?: "createdAt";
|
|
3180
|
+
orderDirection?: "asc" | "desc";
|
|
3181
|
+
}
|
|
3182
|
+
/**
|
|
3183
|
+
* Options for AuditService
|
|
3184
|
+
*/
|
|
3185
|
+
interface AuditServiceOptions {
|
|
3186
|
+
/**
|
|
3187
|
+
* If true, audit logging is async (fire-and-forget).
|
|
3188
|
+
* Better performance but logs might be lost on crash.
|
|
3189
|
+
* @default false
|
|
3190
|
+
*/
|
|
3191
|
+
async?: boolean;
|
|
3192
|
+
/**
|
|
3193
|
+
* Batch size for async mode.
|
|
3194
|
+
* Logs are buffered and flushed when batch is full or after flushIntervalMs.
|
|
3195
|
+
* @default 10
|
|
3196
|
+
*/
|
|
3197
|
+
batchSize?: number;
|
|
3198
|
+
/**
|
|
3199
|
+
* Flush interval in ms for async mode.
|
|
3200
|
+
* @default 1000
|
|
3201
|
+
*/
|
|
3202
|
+
flushIntervalMs?: number;
|
|
3203
|
+
}
|
|
3204
|
+
|
|
2877
3205
|
type AgentRunStatus = "pending" | "running" | "completed" | "failed" | "cancelled" | "paused";
|
|
2878
|
-
type
|
|
2879
|
-
type
|
|
3206
|
+
type AgentSessionStatus = "active" | "completed" | "failed" | "cancelled" | "waiting_human" | "timeout" | "expired";
|
|
3207
|
+
type AgentSessionMode = "interactive" | "autonomous";
|
|
3208
|
+
type QuestionStatus = "pending" | "answered" | "timeout" | "cancelled";
|
|
3209
|
+
type TriggerEventType = "record.created" | "record.updated" | "record.deleted" | "record.field_changed" | "workflow.completed" | "agent.completed" | "webhook" | "schedule";
|
|
3210
|
+
type AgentTriggerType = Extract<TriggerEventType, "record.created" | "record.updated" | "record.deleted">;
|
|
2880
3211
|
type ProviderName = "anthropic" | "openai" | "google" | "mistral";
|
|
2881
3212
|
interface ModelDefinition {
|
|
2882
3213
|
provider: ProviderName;
|
|
@@ -2894,11 +3225,58 @@ interface AgentExecutionConfig {
|
|
|
2894
3225
|
timeoutMs: number;
|
|
2895
3226
|
costLimitUsd?: number;
|
|
2896
3227
|
}
|
|
3228
|
+
/**
|
|
3229
|
+
* Shared base config used by AgentDefinition, AgentInlineConfig, and AgentSession.
|
|
3230
|
+
*/
|
|
3231
|
+
interface AgentConfig {
|
|
3232
|
+
systemPrompt: string;
|
|
3233
|
+
model: ModelDefinition;
|
|
3234
|
+
tools?: string[];
|
|
3235
|
+
maxIterations?: number;
|
|
3236
|
+
timeoutMs?: number;
|
|
3237
|
+
canDelegate: boolean;
|
|
3238
|
+
maxDepth: number;
|
|
3239
|
+
maxTreeCostUsd?: number;
|
|
3240
|
+
canAskHuman?: boolean;
|
|
3241
|
+
critic?: CriticConfig;
|
|
3242
|
+
}
|
|
3243
|
+
/** @deprecated Use AgentConfig directly */
|
|
3244
|
+
type AgentInlineConfig = AgentConfig;
|
|
3245
|
+
interface CriticConfig {
|
|
3246
|
+
enabled: boolean;
|
|
3247
|
+
model?: ModelDefinition;
|
|
3248
|
+
systemPrompt?: string;
|
|
3249
|
+
maxRetries?: number;
|
|
3250
|
+
}
|
|
3251
|
+
/** @deprecated Use AgentTriggerDefinition for standalone triggers */
|
|
2897
3252
|
interface AgentTrigger {
|
|
2898
3253
|
type: AgentTriggerType;
|
|
2899
3254
|
objectId: string;
|
|
2900
3255
|
filter?: Record<string, unknown>;
|
|
2901
3256
|
}
|
|
3257
|
+
/**
|
|
3258
|
+
* Standalone trigger definition (replaces embedded AgentTrigger[]).
|
|
3259
|
+
* Triggers are now first-class entities with their own lifecycle.
|
|
3260
|
+
*/
|
|
3261
|
+
interface AgentTriggerDefinition {
|
|
3262
|
+
id: string;
|
|
3263
|
+
tenantId: string;
|
|
3264
|
+
definitionId: string;
|
|
3265
|
+
name?: string;
|
|
3266
|
+
eventType: TriggerEventType;
|
|
3267
|
+
objectId?: string;
|
|
3268
|
+
fieldPath?: string;
|
|
3269
|
+
workflowDefinitionId?: string;
|
|
3270
|
+
sourceAgentId?: string;
|
|
3271
|
+
webhookPath?: string;
|
|
3272
|
+
cronExpression?: string;
|
|
3273
|
+
timezone?: string;
|
|
3274
|
+
filter?: Record<string, unknown>;
|
|
3275
|
+
inputBuilder?: string;
|
|
3276
|
+
enabled: boolean;
|
|
3277
|
+
createdAt: Date;
|
|
3278
|
+
updatedAt: Date;
|
|
3279
|
+
}
|
|
2902
3280
|
interface AgentSchedule {
|
|
2903
3281
|
cron: string;
|
|
2904
3282
|
timezone?: string;
|
|
@@ -2906,6 +3284,11 @@ interface AgentSchedule {
|
|
|
2906
3284
|
input?: Record<string, unknown>;
|
|
2907
3285
|
inputBuilder?: string;
|
|
2908
3286
|
}
|
|
3287
|
+
interface TimeoutPolicy {
|
|
3288
|
+
timeoutMs: number;
|
|
3289
|
+
action: "cancel" | "auto_decide" | "escalate";
|
|
3290
|
+
fallbackValue?: unknown;
|
|
3291
|
+
}
|
|
2909
3292
|
interface AgentDefinition {
|
|
2910
3293
|
id: string;
|
|
2911
3294
|
tenantId: string;
|
|
@@ -2916,16 +3299,25 @@ interface AgentDefinition {
|
|
|
2916
3299
|
tools?: string[];
|
|
2917
3300
|
maxIterations?: number;
|
|
2918
3301
|
schedule?: AgentSchedule;
|
|
3302
|
+
/** @deprecated Use standalone AgentTriggerDefinition */
|
|
2919
3303
|
triggers?: AgentTrigger[];
|
|
2920
3304
|
config: AgentExecutionConfig;
|
|
2921
3305
|
createdBy: string;
|
|
2922
3306
|
createdAt: Date;
|
|
2923
3307
|
updatedAt: Date;
|
|
3308
|
+
deletedAt?: Date;
|
|
3309
|
+
canDelegate?: boolean;
|
|
3310
|
+
maxDepth?: number;
|
|
3311
|
+
maxTreeCostUsd?: number;
|
|
3312
|
+
critic?: CriticConfig;
|
|
3313
|
+
autoDecide?: boolean;
|
|
2924
3314
|
}
|
|
2925
3315
|
interface AgentRun {
|
|
2926
3316
|
id: string;
|
|
2927
|
-
definitionId
|
|
2928
|
-
|
|
3317
|
+
definitionId?: string;
|
|
3318
|
+
parentRunId?: string;
|
|
3319
|
+
depth: number;
|
|
3320
|
+
inlineConfig?: AgentInlineConfig;
|
|
2929
3321
|
tenantId: string;
|
|
2930
3322
|
createdBy?: string;
|
|
2931
3323
|
status: AgentRunStatus;
|
|
@@ -2937,25 +3329,101 @@ interface AgentRun {
|
|
|
2937
3329
|
input: number;
|
|
2938
3330
|
output: number;
|
|
2939
3331
|
};
|
|
2940
|
-
costUsd?: number;
|
|
2941
|
-
startedAt?: Date;
|
|
2942
|
-
completedAt?: Date;
|
|
3332
|
+
costUsd?: number;
|
|
3333
|
+
startedAt?: Date;
|
|
3334
|
+
completedAt?: Date;
|
|
3335
|
+
createdAt: Date;
|
|
3336
|
+
sessionId?: string;
|
|
3337
|
+
rootRunId?: string;
|
|
3338
|
+
triggerId?: string;
|
|
3339
|
+
treeCostUsd?: number;
|
|
3340
|
+
effectiveSystemPrompt?: string;
|
|
3341
|
+
conversationId?: string;
|
|
3342
|
+
}
|
|
3343
|
+
interface AgentSession {
|
|
3344
|
+
id: string;
|
|
3345
|
+
tenantId: string;
|
|
3346
|
+
mode: AgentSessionMode;
|
|
3347
|
+
status: AgentSessionStatus;
|
|
3348
|
+
definitionId?: string;
|
|
3349
|
+
inlineConfig?: AgentConfig;
|
|
3350
|
+
parentSessionId?: string;
|
|
3351
|
+
rootSessionId: string;
|
|
3352
|
+
depth: number;
|
|
3353
|
+
missionPrompt?: string;
|
|
3354
|
+
treeCostUsd: number;
|
|
3355
|
+
name?: string;
|
|
3356
|
+
metadata?: Record<string, unknown>;
|
|
3357
|
+
createdBy?: string;
|
|
3358
|
+
createdAt: Date;
|
|
3359
|
+
updatedAt: Date;
|
|
3360
|
+
completedAt?: Date;
|
|
3361
|
+
expiresAt?: Date;
|
|
3362
|
+
}
|
|
3363
|
+
/**
|
|
3364
|
+
* Persisted message in an agent session.
|
|
3365
|
+
* Unified type for both interactive and autonomous sessions.
|
|
3366
|
+
*/
|
|
3367
|
+
interface AgentSessionMessage {
|
|
3368
|
+
id: string;
|
|
3369
|
+
sessionId: string;
|
|
3370
|
+
tenantId?: string;
|
|
3371
|
+
runId?: string;
|
|
3372
|
+
role: "user" | "assistant" | "system" | "tool";
|
|
3373
|
+
content: string;
|
|
3374
|
+
toolCalls?: AgentToolCall[];
|
|
3375
|
+
tokenUsage?: {
|
|
3376
|
+
input: number;
|
|
3377
|
+
output: number;
|
|
3378
|
+
};
|
|
2943
3379
|
createdAt: Date;
|
|
2944
3380
|
}
|
|
2945
|
-
interface
|
|
3381
|
+
interface AgentToolCall {
|
|
2946
3382
|
id: string;
|
|
2947
|
-
|
|
3383
|
+
name: string;
|
|
3384
|
+
arguments: Record<string, unknown>;
|
|
3385
|
+
result?: unknown;
|
|
3386
|
+
error?: string;
|
|
3387
|
+
durationMs?: number;
|
|
3388
|
+
}
|
|
3389
|
+
interface AgentContextEntry {
|
|
3390
|
+
id: string;
|
|
3391
|
+
rootRunId: string;
|
|
3392
|
+
runId: string;
|
|
3393
|
+
namespace: string;
|
|
3394
|
+
key: string;
|
|
3395
|
+
value: unknown;
|
|
3396
|
+
createdAt: Date;
|
|
3397
|
+
updatedAt: Date;
|
|
3398
|
+
}
|
|
3399
|
+
/** @deprecated Use AgentContextEntry with namespace/key/value */
|
|
3400
|
+
interface AgentRunContextEntry {
|
|
3401
|
+
id: string;
|
|
3402
|
+
rootRunId: string;
|
|
3403
|
+
runId: string;
|
|
3404
|
+
depth: number;
|
|
3405
|
+
content: string;
|
|
3406
|
+
createdAt: Date;
|
|
3407
|
+
}
|
|
3408
|
+
interface AgentQuestion {
|
|
3409
|
+
id: string;
|
|
3410
|
+
runId: string;
|
|
3411
|
+
sessionId?: string;
|
|
2948
3412
|
tenantId: string;
|
|
2949
|
-
|
|
2950
|
-
|
|
2951
|
-
|
|
2952
|
-
|
|
2953
|
-
|
|
2954
|
-
|
|
2955
|
-
totalCostUsd: number;
|
|
2956
|
-
createdBy: string;
|
|
3413
|
+
question: string;
|
|
3414
|
+
options?: string[];
|
|
3415
|
+
metadata?: Record<string, unknown>;
|
|
3416
|
+
status: QuestionStatus;
|
|
3417
|
+
response?: QuestionResponse;
|
|
3418
|
+
timeoutPolicy?: TimeoutPolicy;
|
|
2957
3419
|
createdAt: Date;
|
|
2958
|
-
|
|
3420
|
+
answeredAt?: Date;
|
|
3421
|
+
expiresAt?: Date;
|
|
3422
|
+
}
|
|
3423
|
+
interface QuestionResponse {
|
|
3424
|
+
answer: unknown;
|
|
3425
|
+
answeredBy?: string;
|
|
3426
|
+
source: "user" | "auto_decide" | "timeout";
|
|
2959
3427
|
}
|
|
2960
3428
|
interface AgentEvent {
|
|
2961
3429
|
type: AgentTriggerType;
|
|
@@ -3506,7 +3974,7 @@ type CustomAttributeValue = Exclude<Attribute, FormulaAttribute | RollupAttribut
|
|
|
3506
3974
|
* Adds support for custom attributes (added via UI) to a record type
|
|
3507
3975
|
* Preserves autocompletion for known attributes while allowing additional properties
|
|
3508
3976
|
*/
|
|
3509
|
-
type WithCustomAttributes<T> = T & {
|
|
3977
|
+
type WithCustomAttributes$1<T> = T & {
|
|
3510
3978
|
[key: string]: CustomAttributeValue;
|
|
3511
3979
|
};
|
|
3512
3980
|
/**
|
|
@@ -3575,7 +4043,7 @@ type ExtractRecord<TBuilder> = TBuilder extends {
|
|
|
3575
4043
|
_types: {
|
|
3576
4044
|
record: infer R;
|
|
3577
4045
|
};
|
|
3578
|
-
} ? WithCustomAttributes<R> & RecordMetadata : never;
|
|
4046
|
+
} ? WithCustomAttributes$1<R> & RecordMetadata : never;
|
|
3579
4047
|
/**
|
|
3580
4048
|
* Extract the record type without custom attributes (strict mode)
|
|
3581
4049
|
* Use this when you only want the defined attributes
|
|
@@ -3595,7 +4063,7 @@ type ExtractRecordInput<TBuilder> = TBuilder extends {
|
|
|
3595
4063
|
_types: {
|
|
3596
4064
|
input: infer R;
|
|
3597
4065
|
};
|
|
3598
|
-
} ? Omit<WithCustomAttributes<R>, SystemFields> : never;
|
|
4066
|
+
} ? Omit<WithCustomAttributes$1<R>, SystemFields> : never;
|
|
3599
4067
|
/**
|
|
3600
4068
|
* Extract the input type without custom attributes (strict mode)
|
|
3601
4069
|
* Omits system fields (id, createdAt, updatedAt) as they are managed automatically.
|
|
@@ -3614,7 +4082,7 @@ type ExtractRecordUpdate<TBuilder> = TBuilder extends {
|
|
|
3614
4082
|
_types: {
|
|
3615
4083
|
update: infer R;
|
|
3616
4084
|
};
|
|
3617
|
-
} ? Omit<WithCustomAttributes<R>, SystemFields> : never;
|
|
4085
|
+
} ? Omit<WithCustomAttributes$1<R>, SystemFields> : never;
|
|
3618
4086
|
/**
|
|
3619
4087
|
* Extract the update type without custom attributes (strict mode)
|
|
3620
4088
|
* Omits system fields (id, createdAt, updatedAt) as they are managed automatically.
|
|
@@ -3664,258 +4132,27 @@ interface TypedObjectRecord<TValues extends Record<string, unknown>> extends Tim
|
|
|
3664
4132
|
* // id: string;
|
|
3665
4133
|
* // objectId: string;
|
|
3666
4134
|
* // label: string;
|
|
3667
|
-
* // completionStatus: CompletionStatus;
|
|
3668
|
-
* // values: { name: string; price?: number };
|
|
3669
|
-
* // metadata?: Record<string, unknown>;
|
|
3670
|
-
* // ...
|
|
3671
|
-
* // }
|
|
3672
|
-
* ```
|
|
3673
|
-
*/
|
|
3674
|
-
type ExtractObjectRecord<TBuilder> = TBuilder extends {
|
|
3675
|
-
_types: {
|
|
3676
|
-
record: infer R;
|
|
3677
|
-
};
|
|
3678
|
-
} ? TypedObjectRecord<R extends Record<string, unknown> ? R : Record<string, unknown>> : never;
|
|
3679
|
-
/**
|
|
3680
|
-
* Extract the raw ObjectRecord type with custom attribute support.
|
|
3681
|
-
* Same as ExtractObjectRecord but allows additional properties in `values`.
|
|
3682
|
-
*/
|
|
3683
|
-
type ExtractObjectRecordWithCustom<TBuilder> = TBuilder extends {
|
|
3684
|
-
_types: {
|
|
3685
|
-
record: infer R;
|
|
3686
|
-
};
|
|
3687
|
-
} ? TypedObjectRecord<R extends Record<string, unknown> ? WithCustomAttributes<R> : Record<string, CustomAttributeValue>> : never;
|
|
3688
|
-
|
|
3689
|
-
/**
|
|
3690
|
-
* Scope of a permission rule.
|
|
3691
|
-
* - `object`: Controls access to an entire object type (business data)
|
|
3692
|
-
* - `system`: Controls access to platform resources (people, workspace)
|
|
3693
|
-
*/
|
|
3694
|
-
type PermissionScope = "object" | "system";
|
|
3695
|
-
/**
|
|
3696
|
-
* Actions that can be performed on a resource.
|
|
3697
|
-
*/
|
|
3698
|
-
type Action = "read" | "create" | "update" | "delete";
|
|
3699
|
-
/**
|
|
3700
|
-
* System resources that can be managed.
|
|
3701
|
-
* - `people`: User profiles, invitations, roles and permissions
|
|
3702
|
-
* - `workspace`: Object definitions, attributes, tenant settings, audit logs
|
|
3703
|
-
* - `architect`: Architect settings, templates, and configurations
|
|
3704
|
-
*/
|
|
3705
|
-
type SystemResource = "people" | "workspace" | "architect";
|
|
3706
|
-
/**
|
|
3707
|
-
* Preset access levels for simplified permission configuration.
|
|
3708
|
-
* - `full`: All CRUD actions
|
|
3709
|
-
* - `read-only`: Only read action
|
|
3710
|
-
* - `none`: No actions
|
|
3711
|
-
* - `custom`: Manual selection of individual actions
|
|
3712
|
-
*/
|
|
3713
|
-
type AccessLevel = "full" | "read-only" | "none" | "custom";
|
|
3714
|
-
declare const ALL_ACTIONS: Action[];
|
|
3715
|
-
/**
|
|
3716
|
-
* Derive an AccessLevel from a list of actions.
|
|
3717
|
-
*/
|
|
3718
|
-
declare function actionsToAccessLevel(actions: Action[]): AccessLevel;
|
|
3719
|
-
/**
|
|
3720
|
-
* Convert an AccessLevel preset to its corresponding actions.
|
|
3721
|
-
*/
|
|
3722
|
-
declare function accessLevelToActions(level: Exclude<AccessLevel, "custom">): Action[];
|
|
3723
|
-
/**
|
|
3724
|
-
* Role definition - Groups permissions together.
|
|
3725
|
-
*
|
|
3726
|
-
* Roles are tenant-scoped and can be system-defined (immutable) or custom.
|
|
3727
|
-
*
|
|
3728
|
-
* @example
|
|
3729
|
-
* ```typescript
|
|
3730
|
-
* const ownerRole: Role = {
|
|
3731
|
-
* id: "role-123",
|
|
3732
|
-
* tenantId: "tenant-456",
|
|
3733
|
-
* name: "owner",
|
|
3734
|
-
* label: "Owner",
|
|
3735
|
-
* description: "Full access to all platform features and data",
|
|
3736
|
-
* system: true,
|
|
3737
|
-
* createdAt: new Date(),
|
|
3738
|
-
* updatedAt: new Date(),
|
|
3739
|
-
* };
|
|
3740
|
-
* ```
|
|
3741
|
-
*/
|
|
3742
|
-
interface Role extends Timestamps {
|
|
3743
|
-
id: Uuid;
|
|
3744
|
-
tenantId: Uuid;
|
|
3745
|
-
/**
|
|
3746
|
-
* Technical name (unique per tenant, used in code).
|
|
3747
|
-
* Examples: "owner", "member", "sales_manager"
|
|
3748
|
-
*/
|
|
3749
|
-
name: string;
|
|
3750
|
-
/**
|
|
3751
|
-
* Display name shown in UI.
|
|
3752
|
-
*/
|
|
3753
|
-
label: string;
|
|
3754
|
-
/**
|
|
3755
|
-
* Optional description of the role's purpose.
|
|
3756
|
-
*/
|
|
3757
|
-
description?: string;
|
|
3758
|
-
/**
|
|
3759
|
-
* If true, this role cannot be modified or deleted.
|
|
3760
|
-
* Used for built-in roles like "owner".
|
|
3761
|
-
*/
|
|
3762
|
-
system: boolean;
|
|
3763
|
-
}
|
|
3764
|
-
/**
|
|
3765
|
-
* Permission definition - Grants specific actions on a target.
|
|
3766
|
-
*
|
|
3767
|
-
* A permission belongs to a role and defines what actions are allowed
|
|
3768
|
-
* on a specific target (object or system resource).
|
|
3769
|
-
*
|
|
3770
|
-
* @example
|
|
3771
|
-
* ```typescript
|
|
3772
|
-
* // Allow read and update on companies object
|
|
3773
|
-
* const permission: Permission = {
|
|
3774
|
-
* id: "perm-123",
|
|
3775
|
-
* roleId: "role-456",
|
|
3776
|
-
* scope: "object",
|
|
3777
|
-
* target: "companies",
|
|
3778
|
-
* actions: ["read", "update"],
|
|
3779
|
-
* createdAt: new Date(),
|
|
3780
|
-
* };
|
|
3781
|
-
*
|
|
3782
|
-
* // Wildcard permission for all objects
|
|
3783
|
-
* const wildcardPerm: Permission = {
|
|
3784
|
-
* id: "perm-789",
|
|
3785
|
-
* roleId: "role-456",
|
|
3786
|
-
* scope: "object",
|
|
3787
|
-
* target: "*",
|
|
3788
|
-
* actions: ["read", "create", "update", "delete"],
|
|
3789
|
-
* createdAt: new Date(),
|
|
3790
|
-
* };
|
|
3791
|
-
* ```
|
|
3792
|
-
*/
|
|
3793
|
-
interface Permission {
|
|
3794
|
-
id: Uuid;
|
|
3795
|
-
roleId: Uuid;
|
|
3796
|
-
/**
|
|
3797
|
-
* Scope of this permission.
|
|
3798
|
-
*/
|
|
3799
|
-
scope: PermissionScope;
|
|
3800
|
-
/**
|
|
3801
|
-
* Target of the permission.
|
|
3802
|
-
* - For `object` scope: object name (e.g., "companies") or "*" for all
|
|
3803
|
-
* - For `system` scope: system resource (e.g., "people", "workspace") or "*" for all
|
|
3804
|
-
*/
|
|
3805
|
-
target: string;
|
|
3806
|
-
/**
|
|
3807
|
-
* Actions allowed on the target.
|
|
3808
|
-
*/
|
|
3809
|
-
actions: Action[];
|
|
3810
|
-
createdAt: Date;
|
|
3811
|
-
}
|
|
3812
|
-
/**
|
|
3813
|
-
* Links a user profile to a role within a tenant.
|
|
3814
|
-
*
|
|
3815
|
-
* A user can have multiple roles, and their permissions are additive (union).
|
|
3816
|
-
*
|
|
3817
|
-
* Note: `userProfileId` references UserProfile.id from the user_profiles table,
|
|
3818
|
-
* NOT the auth provider ID (authId). This keeps permissions tied to the
|
|
3819
|
-
* application's user management, not the authentication layer.
|
|
3820
|
-
*/
|
|
3821
|
-
interface UserRoleAssignment {
|
|
3822
|
-
id: Uuid;
|
|
3823
|
-
/**
|
|
3824
|
-
* User profile ID (UserProfile.id from user_profiles table).
|
|
3825
|
-
* This links to the application's user management system,
|
|
3826
|
-
* not the auth provider's user ID.
|
|
3827
|
-
*/
|
|
3828
|
-
userProfileId: Uuid;
|
|
3829
|
-
roleId: Uuid;
|
|
3830
|
-
tenantId: Uuid;
|
|
3831
|
-
/**
|
|
3832
|
-
* When the role was assigned.
|
|
3833
|
-
*/
|
|
3834
|
-
assignedAt: Date;
|
|
3835
|
-
/**
|
|
3836
|
-
* User profile ID of who assigned this role (for audit trail).
|
|
3837
|
-
*/
|
|
3838
|
-
assignedBy?: Uuid;
|
|
3839
|
-
}
|
|
3840
|
-
/**
|
|
3841
|
-
* Computed permissions for a user.
|
|
3842
|
-
*
|
|
3843
|
-
* This is the merged result of all roles assigned to a user.
|
|
3844
|
-
* Returned by the API for permission checks.
|
|
3845
|
-
*/
|
|
3846
|
-
interface EffectivePermissions {
|
|
3847
|
-
/**
|
|
3848
|
-
* Object-level permissions.
|
|
3849
|
-
* Key is the object name, value is array of allowed actions.
|
|
3850
|
-
* Special key "*" means permission applies to all objects.
|
|
3851
|
-
*/
|
|
3852
|
-
objectPermissions: Record<string, Action[]>;
|
|
3853
|
-
/**
|
|
3854
|
-
* System-level permissions.
|
|
3855
|
-
* Key is the system resource (people, workspace), value is array of allowed actions.
|
|
3856
|
-
* Special key "*" means permission applies to all system resources.
|
|
3857
|
-
*/
|
|
3858
|
-
systemPermissions: Record<string, Action[]>;
|
|
3859
|
-
}
|
|
3860
|
-
/**
|
|
3861
|
-
* Permissions for a specific object.
|
|
3862
|
-
* Convenience type for frontend use.
|
|
3863
|
-
*/
|
|
3864
|
-
interface ObjectPermissions {
|
|
3865
|
-
canRead: boolean;
|
|
3866
|
-
canCreate: boolean;
|
|
3867
|
-
canUpdate: boolean;
|
|
3868
|
-
canDelete: boolean;
|
|
3869
|
-
}
|
|
3870
|
-
/**
|
|
3871
|
-
* Permissions for a specific system resource.
|
|
3872
|
-
* Convenience type for frontend use.
|
|
3873
|
-
*/
|
|
3874
|
-
interface SystemPermissions {
|
|
3875
|
-
canRead: boolean;
|
|
3876
|
-
canCreate: boolean;
|
|
3877
|
-
canUpdate: boolean;
|
|
3878
|
-
canDelete: boolean;
|
|
3879
|
-
}
|
|
3880
|
-
/**
|
|
3881
|
-
* Input for creating a new role.
|
|
3882
|
-
* TenantId is automatically set from TenantContext.
|
|
3883
|
-
*/
|
|
3884
|
-
interface CreateRoleInput {
|
|
3885
|
-
name: string;
|
|
3886
|
-
label: string;
|
|
3887
|
-
description?: string;
|
|
3888
|
-
}
|
|
3889
|
-
/**
|
|
3890
|
-
* Input for updating an existing role.
|
|
3891
|
-
*/
|
|
3892
|
-
interface UpdateRoleInput {
|
|
3893
|
-
label?: string;
|
|
3894
|
-
description?: string;
|
|
3895
|
-
}
|
|
3896
|
-
/**
|
|
3897
|
-
* Input for creating a permission.
|
|
4135
|
+
* // completionStatus: CompletionStatus;
|
|
4136
|
+
* // values: { name: string; price?: number };
|
|
4137
|
+
* // metadata?: Record<string, unknown>;
|
|
4138
|
+
* // ...
|
|
4139
|
+
* // }
|
|
4140
|
+
* ```
|
|
3898
4141
|
*/
|
|
3899
|
-
|
|
3900
|
-
|
|
3901
|
-
|
|
3902
|
-
|
|
3903
|
-
|
|
3904
|
-
*/
|
|
3905
|
-
actions: Action[];
|
|
3906
|
-
}
|
|
4142
|
+
type ExtractObjectRecord<TBuilder> = TBuilder extends {
|
|
4143
|
+
_types: {
|
|
4144
|
+
record: infer R;
|
|
4145
|
+
};
|
|
4146
|
+
} ? TypedObjectRecord<R extends Record<string, unknown> ? R : Record<string, unknown>> : never;
|
|
3907
4147
|
/**
|
|
3908
|
-
*
|
|
4148
|
+
* Extract the raw ObjectRecord type with custom attribute support.
|
|
4149
|
+
* Same as ExtractObjectRecord but allows additional properties in `values`.
|
|
3909
4150
|
*/
|
|
3910
|
-
|
|
3911
|
-
|
|
3912
|
-
|
|
3913
|
-
|
|
3914
|
-
|
|
3915
|
-
roleId: Uuid;
|
|
3916
|
-
tenantId: Uuid;
|
|
3917
|
-
assignedBy?: Uuid;
|
|
3918
|
-
}
|
|
4151
|
+
type ExtractObjectRecordWithCustom<TBuilder> = TBuilder extends {
|
|
4152
|
+
_types: {
|
|
4153
|
+
record: infer R;
|
|
4154
|
+
};
|
|
4155
|
+
} ? TypedObjectRecord<R extends Record<string, unknown> ? WithCustomAttributes$1<R> : Record<string, CustomAttributeValue>> : never;
|
|
3919
4156
|
|
|
3920
4157
|
/**
|
|
3921
4158
|
* Context passed to policy methods
|
|
@@ -4481,6 +4718,51 @@ declare function parseRawPhoneInput(rawInput: string, countryIso3: CountryIso3):
|
|
|
4481
4718
|
*/
|
|
4482
4719
|
declare function applyRelationProps(label: string, props: Record<string, unknown> | undefined, propertyDefs: Attribute[] | undefined): string;
|
|
4483
4720
|
|
|
4721
|
+
/**
|
|
4722
|
+
* Valid simple pipe names (no arguments)
|
|
4723
|
+
*/
|
|
4724
|
+
declare const SIMPLE_PIPES: readonly ["UPPER", "LOWER", "capitalize", "trim"];
|
|
4725
|
+
/**
|
|
4726
|
+
* Valid pipe names that take arguments
|
|
4727
|
+
*/
|
|
4728
|
+
declare const PIPES_WITH_ARGS: readonly ["prefix", "suffix", "wrap", "default"];
|
|
4729
|
+
/**
|
|
4730
|
+
* All valid pipe names
|
|
4731
|
+
*/
|
|
4732
|
+
declare const ALL_PIPES: readonly ["UPPER", "LOWER", "capitalize", "trim", "prefix", "suffix", "wrap", "default"];
|
|
4733
|
+
type SimplePipe = (typeof SIMPLE_PIPES)[number];
|
|
4734
|
+
type PipeWithArgs = (typeof PIPES_WITH_ARGS)[number];
|
|
4735
|
+
type LabelPipe = (typeof ALL_PIPES)[number];
|
|
4736
|
+
/**
|
|
4737
|
+
* Zod schema for validating labelExpression templates.
|
|
4738
|
+
*
|
|
4739
|
+
* Validates the syntax of label expression templates used throughout the system.
|
|
4740
|
+
* Uses the existing `isLabelExpression` function for basic validation, then
|
|
4741
|
+
* performs additional checks for pipe validity.
|
|
4742
|
+
*
|
|
4743
|
+
* @example Valid expressions:
|
|
4744
|
+
* ```typescript
|
|
4745
|
+
* "{{ name }}"
|
|
4746
|
+
* "{{ firstName }} {{ lastName }}"
|
|
4747
|
+
* "{{ name | UPPER }}"
|
|
4748
|
+
* "{{ role | prefix:\", \" }}"
|
|
4749
|
+
* "{{ firstName || name }}"
|
|
4750
|
+
* "{{ user.firstName }}"
|
|
4751
|
+
* ```
|
|
4752
|
+
*/
|
|
4753
|
+
declare const labelExpressionSchema: z.ZodString;
|
|
4754
|
+
type LabelExpression = z.infer<typeof labelExpressionSchema>;
|
|
4755
|
+
/**
|
|
4756
|
+
* Validate a labelExpression and return detailed result
|
|
4757
|
+
*
|
|
4758
|
+
* @param expression - The labelExpression to validate
|
|
4759
|
+
* @returns Validation result with success status and extracted info
|
|
4760
|
+
*/
|
|
4761
|
+
declare function validateLabelExpression(expression: string): {
|
|
4762
|
+
success: boolean;
|
|
4763
|
+
error?: string;
|
|
4764
|
+
attributes?: string[];
|
|
4765
|
+
};
|
|
4484
4766
|
/**
|
|
4485
4767
|
* Default fallback value when expression resolves to empty string
|
|
4486
4768
|
*/
|
|
@@ -4605,6 +4887,8 @@ declare const SchemaErrorCode: {
|
|
|
4605
4887
|
readonly USER_PROFILE_NOT_FOUND: "SCHEMA_USER_PROFILE_NOT_FOUND";
|
|
4606
4888
|
readonly FILE_NOT_FOUND: "SCHEMA_FILE_NOT_FOUND";
|
|
4607
4889
|
readonly ROLE_NOT_FOUND: "SCHEMA_ROLE_NOT_FOUND";
|
|
4890
|
+
readonly MEMORY_NOT_FOUND: "SCHEMA_MEMORY_NOT_FOUND";
|
|
4891
|
+
readonly CONVERSATION_NOT_FOUND: "SCHEMA_CONVERSATION_NOT_FOUND";
|
|
4608
4892
|
readonly VALIDATION_FAILED: "SCHEMA_VALIDATION_FAILED";
|
|
4609
4893
|
readonly INVALID_ATTRIBUTE_NAME: "SCHEMA_INVALID_ATTRIBUTE_NAME";
|
|
4610
4894
|
readonly INVALID_OBJECT_NAME: "SCHEMA_INVALID_OBJECT_NAME";
|
|
@@ -4613,11 +4897,21 @@ declare const SchemaErrorCode: {
|
|
|
4613
4897
|
readonly PROTECTED_VIEW: "SCHEMA_PROTECTED_VIEW";
|
|
4614
4898
|
readonly PROTECTED_ROLE: "SCHEMA_PROTECTED_ROLE";
|
|
4615
4899
|
readonly FORBIDDEN: "SCHEMA_FORBIDDEN";
|
|
4900
|
+
readonly ACCESS_DENIED: "SCHEMA_ACCESS_DENIED";
|
|
4616
4901
|
readonly SYNC_FAILED: "SCHEMA_SYNC_FAILED";
|
|
4617
4902
|
readonly NOT_SYSTEM_OBJECT: "SCHEMA_NOT_SYSTEM_OBJECT";
|
|
4618
4903
|
readonly DUPLICATE_OBJECT: "SCHEMA_DUPLICATE_OBJECT";
|
|
4619
4904
|
readonly DUPLICATE_ATTRIBUTE: "SCHEMA_DUPLICATE_ATTRIBUTE";
|
|
4620
4905
|
readonly CONFLICT: "SCHEMA_CONFLICT";
|
|
4906
|
+
readonly STORAGE_UPLOAD_FAILED: "SCHEMA_STORAGE_UPLOAD_FAILED";
|
|
4907
|
+
readonly STORAGE_DOWNLOAD_FAILED: "SCHEMA_STORAGE_DOWNLOAD_FAILED";
|
|
4908
|
+
readonly STORAGE_DELETE_FAILED: "SCHEMA_STORAGE_DELETE_FAILED";
|
|
4909
|
+
readonly STORAGE_URL_FAILED: "SCHEMA_STORAGE_URL_FAILED";
|
|
4910
|
+
readonly REPOSITORY_CREATE_FAILED: "SCHEMA_REPOSITORY_CREATE_FAILED";
|
|
4911
|
+
readonly REPOSITORY_UPDATE_FAILED: "SCHEMA_REPOSITORY_UPDATE_FAILED";
|
|
4912
|
+
readonly REPOSITORY_DELETE_FAILED: "SCHEMA_REPOSITORY_DELETE_FAILED";
|
|
4913
|
+
readonly REPOSITORY_QUERY_FAILED: "SCHEMA_REPOSITORY_QUERY_FAILED";
|
|
4914
|
+
readonly NOT_IMPLEMENTED: "SCHEMA_NOT_IMPLEMENTED";
|
|
4621
4915
|
};
|
|
4622
4916
|
type SchemaErrorCode = (typeof SchemaErrorCode)[keyof typeof SchemaErrorCode];
|
|
4623
4917
|
/**
|
|
@@ -4777,6 +5071,76 @@ declare function isForbiddenError(error: unknown): error is ForbiddenError;
|
|
|
4777
5071
|
declare class ConcurrentModificationError extends SchemaError {
|
|
4778
5072
|
constructor(recordId: string);
|
|
4779
5073
|
}
|
|
5074
|
+
/**
|
|
5075
|
+
* Storage operation type for error context
|
|
5076
|
+
*/
|
|
5077
|
+
type StorageOperation = "upload" | "download" | "delete" | "signedUrl";
|
|
5078
|
+
/**
|
|
5079
|
+
* Error thrown when a storage operation fails
|
|
5080
|
+
*/
|
|
5081
|
+
declare class StorageError extends SchemaError {
|
|
5082
|
+
readonly operation: StorageOperation;
|
|
5083
|
+
readonly path?: string;
|
|
5084
|
+
readonly cause?: string;
|
|
5085
|
+
constructor(operation: StorageOperation, message: string, path?: string, cause?: string);
|
|
5086
|
+
}
|
|
5087
|
+
/**
|
|
5088
|
+
* Check if an error is a StorageError
|
|
5089
|
+
*/
|
|
5090
|
+
declare function isStorageError(error: unknown): error is StorageError;
|
|
5091
|
+
/**
|
|
5092
|
+
* Error thrown when access to a resource is denied (e.g., tenant path mismatch)
|
|
5093
|
+
*/
|
|
5094
|
+
declare class AccessDeniedError extends SchemaError {
|
|
5095
|
+
readonly resource: string;
|
|
5096
|
+
readonly reason?: string;
|
|
5097
|
+
constructor(resource: string, reason?: string);
|
|
5098
|
+
}
|
|
5099
|
+
/**
|
|
5100
|
+
* Check if an error is an AccessDeniedError
|
|
5101
|
+
*/
|
|
5102
|
+
declare function isAccessDeniedError(error: unknown): error is AccessDeniedError;
|
|
5103
|
+
/**
|
|
5104
|
+
* Repository operation type for error context
|
|
5105
|
+
*/
|
|
5106
|
+
type RepositoryOperation = "create" | "update" | "delete" | "query";
|
|
5107
|
+
/**
|
|
5108
|
+
* Error thrown when a repository operation fails
|
|
5109
|
+
*/
|
|
5110
|
+
declare class RepositoryError extends SchemaError {
|
|
5111
|
+
readonly operation: RepositoryOperation;
|
|
5112
|
+
readonly entity: string;
|
|
5113
|
+
readonly cause?: string;
|
|
5114
|
+
constructor(operation: RepositoryOperation, entity: string, message: string, cause?: string);
|
|
5115
|
+
}
|
|
5116
|
+
/**
|
|
5117
|
+
* Check if an error is a RepositoryError
|
|
5118
|
+
*/
|
|
5119
|
+
declare function isRepositoryError(error: unknown): error is RepositoryError;
|
|
5120
|
+
/**
|
|
5121
|
+
* Error thrown when a feature or method is not yet implemented
|
|
5122
|
+
*/
|
|
5123
|
+
declare class NotImplementedError extends SchemaError {
|
|
5124
|
+
readonly feature: string;
|
|
5125
|
+
readonly milestone?: string;
|
|
5126
|
+
constructor(feature: string, milestone?: string);
|
|
5127
|
+
}
|
|
5128
|
+
/**
|
|
5129
|
+
* Check if an error is a NotImplementedError
|
|
5130
|
+
*/
|
|
5131
|
+
declare function isNotImplementedError(error: unknown): error is NotImplementedError;
|
|
5132
|
+
/**
|
|
5133
|
+
* Memory entry not found error
|
|
5134
|
+
*/
|
|
5135
|
+
declare class MemoryNotFoundError extends NotFoundError {
|
|
5136
|
+
constructor(memoryId: string);
|
|
5137
|
+
}
|
|
5138
|
+
/**
|
|
5139
|
+
* Conversation not found error
|
|
5140
|
+
*/
|
|
5141
|
+
declare class ConversationNotFoundError extends NotFoundError {
|
|
5142
|
+
constructor(conversationId: string);
|
|
5143
|
+
}
|
|
4780
5144
|
|
|
4781
5145
|
/**
|
|
4782
5146
|
* Builder config with literal name type preservation
|
|
@@ -4787,11 +5151,54 @@ interface TypedBuilderConfig<TName extends string> extends BuilderConfig {
|
|
|
4787
5151
|
/**
|
|
4788
5152
|
* Base attribute builder
|
|
4789
5153
|
* Type tracking is done via the `_types` phantom property
|
|
5154
|
+
*
|
|
5155
|
+
* Implements Standard Schema v1 interface via the `~standard` property.
|
|
5156
|
+
* @see https://standardschema.dev/
|
|
4790
5157
|
*/
|
|
4791
|
-
declare abstract class BaseAttributeBuilder<TAttr extends Attribute> {
|
|
5158
|
+
declare abstract class BaseAttributeBuilder<TAttr extends Attribute> implements StandardSchemaV1<unknown, unknown> {
|
|
4792
5159
|
protected attr: Partial<TAttr>;
|
|
5160
|
+
/**
|
|
5161
|
+
* Standard Schema v1 interface implementation.
|
|
5162
|
+
*
|
|
5163
|
+
* This property enables interoperability with libraries that support
|
|
5164
|
+
* Standard Schema (React Hook Form, tRPC, etc.).
|
|
5165
|
+
*
|
|
5166
|
+
* @see https://standardschema.dev/
|
|
5167
|
+
*/
|
|
5168
|
+
get "~standard"(): StandardSchemaV1.Props<unknown, unknown>;
|
|
4793
5169
|
constructor(type: TAttr["type"], name: string, label: string);
|
|
4794
5170
|
protected setRequired(value: boolean): void;
|
|
5171
|
+
/**
|
|
5172
|
+
* Type-safe method to return this builder with a different TRequired phantom type.
|
|
5173
|
+
*
|
|
5174
|
+
* This method centralizes the type assertion needed when transitioning between
|
|
5175
|
+
* required states. The assertion is safe because:
|
|
5176
|
+
* 1. The runtime representation is unchanged (same instance)
|
|
5177
|
+
* 2. Only the phantom _types.required property differs
|
|
5178
|
+
* 3. The class structure and all methods remain identical
|
|
5179
|
+
*
|
|
5180
|
+
* Using a single protected method for this pattern:
|
|
5181
|
+
* - Reduces scattered unsafe casts throughout the codebase
|
|
5182
|
+
* - Documents the safety reasoning in one place
|
|
5183
|
+
* - Makes the type transition explicit and auditable
|
|
5184
|
+
*
|
|
5185
|
+
* @internal
|
|
5186
|
+
*/
|
|
5187
|
+
protected asRequiredState<TBuilder>(this: BaseAttributeBuilder<TAttr>): TBuilder;
|
|
5188
|
+
/**
|
|
5189
|
+
* Type-safe method to return this builder with different phantom type parameters.
|
|
5190
|
+
*
|
|
5191
|
+
* Used by builders with additional type parameters (like TOptions in Status/Select/Multiselect)
|
|
5192
|
+
* when those parameters need to change while preserving the builder instance.
|
|
5193
|
+
*
|
|
5194
|
+
* The assertion is safe because:
|
|
5195
|
+
* 1. The runtime representation is unchanged (same instance)
|
|
5196
|
+
* 2. Only phantom type parameters differ
|
|
5197
|
+
* 3. The class structure and all methods remain identical
|
|
5198
|
+
*
|
|
5199
|
+
* @internal
|
|
5200
|
+
*/
|
|
5201
|
+
protected asPhantomState<TBuilder>(this: BaseAttributeBuilder<TAttr>): TBuilder;
|
|
4795
5202
|
system(): this;
|
|
4796
5203
|
disabled(): this;
|
|
4797
5204
|
hidden(): this;
|
|
@@ -4834,6 +5241,25 @@ declare class TextAttributeBuilder<TName extends string, TRequired extends boole
|
|
|
4834
5241
|
attribute: TextAttribute;
|
|
4835
5242
|
required: TRequired;
|
|
4836
5243
|
};
|
|
5244
|
+
/**
|
|
5245
|
+
* Drizzle-style static type inference property.
|
|
5246
|
+
* Provides direct access to inferred types without utility type imports.
|
|
5247
|
+
*
|
|
5248
|
+
* @example
|
|
5249
|
+
* ```typescript
|
|
5250
|
+
* const nameAttr = text({ name: "name", label: "Name" }).required();
|
|
5251
|
+
*
|
|
5252
|
+
* // Zero-import type inference! ✨
|
|
5253
|
+
* type NameValue = typeof nameAttr.$infer.value; // string
|
|
5254
|
+
* type NameDef = typeof nameAttr.$infer.definition; // TextAttribute
|
|
5255
|
+
* ```
|
|
5256
|
+
*/
|
|
5257
|
+
readonly $infer: {
|
|
5258
|
+
/** The runtime value type for this attribute */
|
|
5259
|
+
value: string;
|
|
5260
|
+
/** The full attribute definition type */
|
|
5261
|
+
definition: TextAttribute;
|
|
5262
|
+
};
|
|
4837
5263
|
constructor(name: TName, label: string);
|
|
4838
5264
|
minLength(value: number): this;
|
|
4839
5265
|
maxLength(value: number): this;
|
|
@@ -4863,6 +5289,16 @@ declare class TextAreaAttributeBuilder<TName extends string, TRequired extends b
|
|
|
4863
5289
|
attribute: TextAreaAttribute;
|
|
4864
5290
|
required: TRequired;
|
|
4865
5291
|
};
|
|
5292
|
+
/**
|
|
5293
|
+
* Drizzle-style static type inference property.
|
|
5294
|
+
* @see TextAttributeBuilder.$infer for documentation
|
|
5295
|
+
*/
|
|
5296
|
+
readonly $infer: {
|
|
5297
|
+
/** The runtime value type for this attribute */
|
|
5298
|
+
value: string;
|
|
5299
|
+
/** The full attribute definition type */
|
|
5300
|
+
definition: TextAreaAttribute;
|
|
5301
|
+
};
|
|
4866
5302
|
constructor(name: TName, label: string);
|
|
4867
5303
|
required(): TextAreaAttributeBuilder<TName, true>;
|
|
4868
5304
|
optional(): TextAreaAttributeBuilder<TName, false>;
|
|
@@ -4877,6 +5313,16 @@ declare class RichtextAttributeBuilder<TName extends string, TRequired extends b
|
|
|
4877
5313
|
attribute: RichtextAttribute;
|
|
4878
5314
|
required: TRequired;
|
|
4879
5315
|
};
|
|
5316
|
+
/**
|
|
5317
|
+
* Drizzle-style static type inference property.
|
|
5318
|
+
* @see TextAttributeBuilder.$infer for documentation
|
|
5319
|
+
*/
|
|
5320
|
+
readonly $infer: {
|
|
5321
|
+
/** The runtime value type for this attribute (semantic markdown string) */
|
|
5322
|
+
value: string;
|
|
5323
|
+
/** The full attribute definition type */
|
|
5324
|
+
definition: RichtextAttribute;
|
|
5325
|
+
};
|
|
4880
5326
|
constructor(name: TName, label: string);
|
|
4881
5327
|
/**
|
|
4882
5328
|
* Set enabled features for the richtext editor
|
|
@@ -4924,6 +5370,16 @@ declare class NumberAttributeBuilder<TName extends string, TRequired extends boo
|
|
|
4924
5370
|
attribute: NumberAttribute;
|
|
4925
5371
|
required: TRequired;
|
|
4926
5372
|
};
|
|
5373
|
+
/**
|
|
5374
|
+
* Drizzle-style static type inference property.
|
|
5375
|
+
* @see TextAttributeBuilder.$infer for documentation
|
|
5376
|
+
*/
|
|
5377
|
+
readonly $infer: {
|
|
5378
|
+
/** The runtime value type for this attribute */
|
|
5379
|
+
value: number;
|
|
5380
|
+
/** The full attribute definition type */
|
|
5381
|
+
definition: NumberAttribute;
|
|
5382
|
+
};
|
|
4927
5383
|
constructor(name: TName, label: string);
|
|
4928
5384
|
min(value: number): this;
|
|
4929
5385
|
max(value: number): this;
|
|
@@ -4940,6 +5396,16 @@ declare class CheckboxAttributeBuilder<TName extends string, TRequired extends b
|
|
|
4940
5396
|
attribute: CheckboxAttribute;
|
|
4941
5397
|
required: TRequired;
|
|
4942
5398
|
};
|
|
5399
|
+
/**
|
|
5400
|
+
* Drizzle-style static type inference property.
|
|
5401
|
+
* @see TextAttributeBuilder.$infer for documentation
|
|
5402
|
+
*/
|
|
5403
|
+
readonly $infer: {
|
|
5404
|
+
/** The runtime value type for this attribute */
|
|
5405
|
+
value: boolean;
|
|
5406
|
+
/** The full attribute definition type */
|
|
5407
|
+
definition: CheckboxAttribute;
|
|
5408
|
+
};
|
|
4943
5409
|
constructor(name: TName, label: string);
|
|
4944
5410
|
required(): CheckboxAttributeBuilder<TName, true>;
|
|
4945
5411
|
optional(): CheckboxAttributeBuilder<TName, false>;
|
|
@@ -4951,6 +5417,16 @@ declare class DateAttributeBuilder<TName extends string, TRequired extends boole
|
|
|
4951
5417
|
attribute: DateAttribute;
|
|
4952
5418
|
required: TRequired;
|
|
4953
5419
|
};
|
|
5420
|
+
/**
|
|
5421
|
+
* Drizzle-style static type inference property.
|
|
5422
|
+
* @see TextAttributeBuilder.$infer for documentation
|
|
5423
|
+
*/
|
|
5424
|
+
readonly $infer: {
|
|
5425
|
+
/** The runtime value type for this attribute (ISO string or Date) */
|
|
5426
|
+
value: string | Date;
|
|
5427
|
+
/** The full attribute definition type */
|
|
5428
|
+
definition: DateAttribute;
|
|
5429
|
+
};
|
|
4954
5430
|
constructor(name: TName, label: string);
|
|
4955
5431
|
format(value: DateAttribute["dateFormat"]): this;
|
|
4956
5432
|
minDate(value: DateAttribute["minDate"]): this;
|
|
@@ -4965,6 +5441,16 @@ declare class PhoneAttributeBuilder<TName extends string, TRequired extends bool
|
|
|
4965
5441
|
attribute: PhoneAttribute;
|
|
4966
5442
|
required: TRequired;
|
|
4967
5443
|
};
|
|
5444
|
+
/**
|
|
5445
|
+
* Drizzle-style static type inference property.
|
|
5446
|
+
* @see TextAttributeBuilder.$infer for documentation
|
|
5447
|
+
*/
|
|
5448
|
+
readonly $infer: {
|
|
5449
|
+
/** The runtime value type for this attribute */
|
|
5450
|
+
value: Phone;
|
|
5451
|
+
/** The full attribute definition type */
|
|
5452
|
+
definition: PhoneAttribute;
|
|
5453
|
+
};
|
|
4968
5454
|
constructor(name: TName, label: string);
|
|
4969
5455
|
defaultCountry(value: CountryIso3): this;
|
|
4970
5456
|
required(): PhoneAttributeBuilder<TName, true>;
|
|
@@ -4977,6 +5463,16 @@ declare class CurrencyAttributeBuilder<TName extends string, TRequired extends b
|
|
|
4977
5463
|
attribute: CurrencyAttribute;
|
|
4978
5464
|
required: TRequired;
|
|
4979
5465
|
};
|
|
5466
|
+
/**
|
|
5467
|
+
* Drizzle-style static type inference property.
|
|
5468
|
+
* @see TextAttributeBuilder.$infer for documentation
|
|
5469
|
+
*/
|
|
5470
|
+
readonly $infer: {
|
|
5471
|
+
/** The runtime value type for this attribute */
|
|
5472
|
+
value: Currency;
|
|
5473
|
+
/** The full attribute definition type */
|
|
5474
|
+
definition: CurrencyAttribute;
|
|
5475
|
+
};
|
|
4980
5476
|
constructor(name: TName, label: string);
|
|
4981
5477
|
defaultCurrency(value: CurrencyCode): this;
|
|
4982
5478
|
allowedCurrencies(value: CurrencyCode[]): this;
|
|
@@ -4992,6 +5488,18 @@ declare class StatusAttributeBuilder<TName extends string, TOptions extends read
|
|
|
4992
5488
|
};
|
|
4993
5489
|
required: TRequired;
|
|
4994
5490
|
};
|
|
5491
|
+
/**
|
|
5492
|
+
* Drizzle-style static type inference property.
|
|
5493
|
+
* @see TextAttributeBuilder.$infer for documentation
|
|
5494
|
+
*/
|
|
5495
|
+
readonly $infer: {
|
|
5496
|
+
/** The runtime value type for this attribute (union of option values) */
|
|
5497
|
+
value: TOptions[number]["value"];
|
|
5498
|
+
/** The full attribute definition type */
|
|
5499
|
+
definition: StatusAttribute & {
|
|
5500
|
+
options: TOptions;
|
|
5501
|
+
};
|
|
5502
|
+
};
|
|
4995
5503
|
constructor(name: TName, label: string);
|
|
4996
5504
|
/**
|
|
4997
5505
|
* Set all options at once (preserves literal types for values)
|
|
@@ -5010,6 +5518,18 @@ declare class SelectAttributeBuilder<TName extends string, TOptions extends read
|
|
|
5010
5518
|
};
|
|
5011
5519
|
required: TRequired;
|
|
5012
5520
|
};
|
|
5521
|
+
/**
|
|
5522
|
+
* Drizzle-style static type inference property.
|
|
5523
|
+
* @see TextAttributeBuilder.$infer for documentation
|
|
5524
|
+
*/
|
|
5525
|
+
readonly $infer: {
|
|
5526
|
+
/** The runtime value type for this attribute (union of option values) */
|
|
5527
|
+
value: TOptions[number]["value"];
|
|
5528
|
+
/** The full attribute definition type */
|
|
5529
|
+
definition: SelectAttribute & {
|
|
5530
|
+
options: TOptions;
|
|
5531
|
+
};
|
|
5532
|
+
};
|
|
5013
5533
|
constructor(name: TName, label: string);
|
|
5014
5534
|
/**
|
|
5015
5535
|
* Set all options at once (preserves literal types for values)
|
|
@@ -5028,6 +5548,18 @@ declare class MultiselectAttributeBuilder<TName extends string, TOptions extends
|
|
|
5028
5548
|
};
|
|
5029
5549
|
required: TRequired;
|
|
5030
5550
|
};
|
|
5551
|
+
/**
|
|
5552
|
+
* Drizzle-style static type inference property.
|
|
5553
|
+
* @see TextAttributeBuilder.$infer for documentation
|
|
5554
|
+
*/
|
|
5555
|
+
readonly $infer: {
|
|
5556
|
+
/** The runtime value type for this attribute (array of option values) */
|
|
5557
|
+
value: TOptions[number]["value"][];
|
|
5558
|
+
/** The full attribute definition type */
|
|
5559
|
+
definition: MultiselectAttribute & {
|
|
5560
|
+
options: TOptions;
|
|
5561
|
+
};
|
|
5562
|
+
};
|
|
5031
5563
|
constructor(name: TName, label: string);
|
|
5032
5564
|
/**
|
|
5033
5565
|
* Set all options at once (preserves literal types for values)
|
|
@@ -5044,6 +5576,16 @@ declare class LocationAttributeBuilder<TName extends string, TRequired extends b
|
|
|
5044
5576
|
attribute: LocationAttribute;
|
|
5045
5577
|
required: TRequired;
|
|
5046
5578
|
};
|
|
5579
|
+
/**
|
|
5580
|
+
* Drizzle-style static type inference property.
|
|
5581
|
+
* @see TextAttributeBuilder.$infer for documentation
|
|
5582
|
+
*/
|
|
5583
|
+
readonly $infer: {
|
|
5584
|
+
/** The runtime value type for this attribute */
|
|
5585
|
+
value: Location;
|
|
5586
|
+
/** The full attribute definition type */
|
|
5587
|
+
definition: LocationAttribute;
|
|
5588
|
+
};
|
|
5047
5589
|
constructor(name: TName, label: string);
|
|
5048
5590
|
granularity(value: LocationAttribute["granularity"]): this;
|
|
5049
5591
|
enableAutocomplete(): this;
|
|
@@ -5061,6 +5603,16 @@ declare class FileAttributeBuilder<TName extends string, TRequired extends boole
|
|
|
5061
5603
|
attribute: FileAttribute;
|
|
5062
5604
|
required: TRequired;
|
|
5063
5605
|
};
|
|
5606
|
+
/**
|
|
5607
|
+
* Drizzle-style static type inference property.
|
|
5608
|
+
* @see TextAttributeBuilder.$infer for documentation
|
|
5609
|
+
*/
|
|
5610
|
+
readonly $infer: {
|
|
5611
|
+
/** The runtime value type for this attribute (file ID) */
|
|
5612
|
+
value: string;
|
|
5613
|
+
/** The full attribute definition type */
|
|
5614
|
+
definition: FileAttribute;
|
|
5615
|
+
};
|
|
5064
5616
|
constructor(name: TName, label: string);
|
|
5065
5617
|
maxFiles(value: number): this;
|
|
5066
5618
|
maxSize(bytes: number): this;
|
|
@@ -5079,6 +5631,16 @@ declare class UserAttributeBuilder<TName extends string, TRequired extends boole
|
|
|
5079
5631
|
attribute: UserAttribute;
|
|
5080
5632
|
required: TRequired;
|
|
5081
5633
|
};
|
|
5634
|
+
/**
|
|
5635
|
+
* Drizzle-style static type inference property.
|
|
5636
|
+
* @see TextAttributeBuilder.$infer for documentation
|
|
5637
|
+
*/
|
|
5638
|
+
readonly $infer: {
|
|
5639
|
+
/** The runtime value type for this attribute (user ID) */
|
|
5640
|
+
value: string;
|
|
5641
|
+
/** The full attribute definition type */
|
|
5642
|
+
definition: UserAttribute;
|
|
5643
|
+
};
|
|
5082
5644
|
constructor(name: TName, label: string);
|
|
5083
5645
|
allowedRoles(roles: string[]): this;
|
|
5084
5646
|
/**
|
|
@@ -5156,6 +5718,16 @@ declare class SingleRelationAttributeBuilder<TName extends string, TRequired ext
|
|
|
5156
5718
|
attribute: SingleRelationAttribute;
|
|
5157
5719
|
required: TRequired;
|
|
5158
5720
|
};
|
|
5721
|
+
/**
|
|
5722
|
+
* Drizzle-style static type inference property.
|
|
5723
|
+
* @see TextAttributeBuilder.$infer for documentation
|
|
5724
|
+
*/
|
|
5725
|
+
readonly $infer: {
|
|
5726
|
+
/** The runtime value type for this attribute (record ID) */
|
|
5727
|
+
value: string;
|
|
5728
|
+
/** The full attribute definition type */
|
|
5729
|
+
definition: SingleRelationAttribute;
|
|
5730
|
+
};
|
|
5159
5731
|
constructor(name: TName, label: string);
|
|
5160
5732
|
/**
|
|
5161
5733
|
* Convert to a multi-relation (cardinality: "many")
|
|
@@ -5173,6 +5745,16 @@ declare class MultiRelationAttributeBuilder<TName extends string, TRequired exte
|
|
|
5173
5745
|
attribute: MultiRelationAttribute;
|
|
5174
5746
|
required: TRequired;
|
|
5175
5747
|
};
|
|
5748
|
+
/**
|
|
5749
|
+
* Drizzle-style static type inference property.
|
|
5750
|
+
* @see TextAttributeBuilder.$infer for documentation
|
|
5751
|
+
*/
|
|
5752
|
+
readonly $infer: {
|
|
5753
|
+
/** The runtime value type for this attribute (array of record IDs) */
|
|
5754
|
+
value: string[];
|
|
5755
|
+
/** The full attribute definition type */
|
|
5756
|
+
definition: MultiRelationAttribute;
|
|
5757
|
+
};
|
|
5176
5758
|
constructor(name: TName, label: string, initOptions?: RelationBuilderInitOptions);
|
|
5177
5759
|
/**
|
|
5178
5760
|
* Set minimum number of relations required
|
|
@@ -5220,6 +5802,16 @@ declare class RatingAttributeBuilder<TName extends string, TRequired extends boo
|
|
|
5220
5802
|
attribute: RatingAttribute;
|
|
5221
5803
|
required: TRequired;
|
|
5222
5804
|
};
|
|
5805
|
+
/**
|
|
5806
|
+
* Drizzle-style static type inference property.
|
|
5807
|
+
* @see TextAttributeBuilder.$infer for documentation
|
|
5808
|
+
*/
|
|
5809
|
+
readonly $infer: {
|
|
5810
|
+
/** The runtime value type for this attribute */
|
|
5811
|
+
value: number;
|
|
5812
|
+
/** The full attribute definition type */
|
|
5813
|
+
definition: RatingAttribute;
|
|
5814
|
+
};
|
|
5223
5815
|
constructor(name: TName, label: string);
|
|
5224
5816
|
max(value: number): this;
|
|
5225
5817
|
iconType(value: RatingAttribute["iconType"]): this;
|
|
@@ -5238,6 +5830,16 @@ declare class FormulaAttributeBuilder<TName extends string> extends BaseAttribut
|
|
|
5238
5830
|
attribute: FormulaAttribute;
|
|
5239
5831
|
required: false;
|
|
5240
5832
|
};
|
|
5833
|
+
/**
|
|
5834
|
+
* Drizzle-style static type inference property.
|
|
5835
|
+
* @see TextAttributeBuilder.$infer for documentation
|
|
5836
|
+
*/
|
|
5837
|
+
readonly $infer: {
|
|
5838
|
+
/** The runtime value type for this attribute (computed, type depends on returnType) */
|
|
5839
|
+
value: unknown;
|
|
5840
|
+
/** The full attribute definition type */
|
|
5841
|
+
definition: FormulaAttribute;
|
|
5842
|
+
};
|
|
5241
5843
|
constructor(name: TName, label: string);
|
|
5242
5844
|
/**
|
|
5243
5845
|
* Set the formula expression
|
|
@@ -5286,6 +5888,16 @@ declare class RollupAttributeBuilder<TName extends string> extends BaseAttribute
|
|
|
5286
5888
|
attribute: RollupAttribute;
|
|
5287
5889
|
required: false;
|
|
5288
5890
|
};
|
|
5891
|
+
/**
|
|
5892
|
+
* Drizzle-style static type inference property.
|
|
5893
|
+
* @see TextAttributeBuilder.$infer for documentation
|
|
5894
|
+
*/
|
|
5895
|
+
readonly $infer: {
|
|
5896
|
+
/** The runtime value type for this attribute (aggregated, type depends on function) */
|
|
5897
|
+
value: unknown;
|
|
5898
|
+
/** The full attribute definition type */
|
|
5899
|
+
definition: RollupAttribute;
|
|
5900
|
+
};
|
|
5289
5901
|
constructor(name: TName, label: string);
|
|
5290
5902
|
/**
|
|
5291
5903
|
* Set the relation attribute to aggregate from
|
|
@@ -5388,6 +6000,16 @@ declare class DocumentAttributeBuilder<TName extends string, TRequired extends b
|
|
|
5388
6000
|
attribute: DocumentAttribute;
|
|
5389
6001
|
required: TRequired;
|
|
5390
6002
|
};
|
|
6003
|
+
/**
|
|
6004
|
+
* Drizzle-style static type inference property.
|
|
6005
|
+
* @see TextAttributeBuilder.$infer for documentation
|
|
6006
|
+
*/
|
|
6007
|
+
readonly $infer: {
|
|
6008
|
+
/** The runtime value type for this attribute (document ID or array of IDs) */
|
|
6009
|
+
value: string | string[];
|
|
6010
|
+
/** The full attribute definition type */
|
|
6011
|
+
definition: DocumentAttribute;
|
|
6012
|
+
};
|
|
5391
6013
|
constructor(name: TName, label: string);
|
|
5392
6014
|
/**
|
|
5393
6015
|
* Allow multiple documents.
|
|
@@ -5544,12 +6166,18 @@ type WithRequiredAttr<TRecord extends Record<string, unknown>, TName extends str
|
|
|
5544
6166
|
type WithOptionalAttr<TRecord extends Record<string, unknown>, TName extends string, TValue> = Flatten<Omit<TRecord, TName> & {
|
|
5545
6167
|
[K in TName]?: TValue;
|
|
5546
6168
|
}>;
|
|
6169
|
+
/**
|
|
6170
|
+
* Add support for custom attributes (added via UI) to a record type
|
|
6171
|
+
*/
|
|
6172
|
+
type WithCustomAttributes<T> = T & {
|
|
6173
|
+
[key: string]: CustomAttributeValue;
|
|
6174
|
+
};
|
|
5547
6175
|
/**
|
|
5548
6176
|
* Add an attribute to the accumulated record type
|
|
5549
6177
|
*/
|
|
5550
6178
|
type AddAttribute<TRecord extends Record<string, unknown>, TName extends string, TAttr extends Attribute, TRequired extends boolean> = TRequired extends true ? WithRequiredAttr<TRecord, TName, InferAttributeValue<TAttr>> : WithOptionalAttr<TRecord, TName, InferAttributeValue<TAttr>>;
|
|
5551
6179
|
/**
|
|
5552
|
-
* Fluent builder for creating ObjectDefinition with full type inference
|
|
6180
|
+
* Fluent builder for creating ObjectDefinition with full type inference.
|
|
5553
6181
|
*
|
|
5554
6182
|
* The generic parameter TRecord accumulates attribute types as you chain
|
|
5555
6183
|
* .attribute() calls, enabling full autocompletion on the inferred record type.
|
|
@@ -5557,6 +6185,9 @@ type AddAttribute<TRecord extends Record<string, unknown>, TName extends string,
|
|
|
5557
6185
|
* IMPORTANT: Every object MUST define a `labelExpression` to specify how records
|
|
5558
6186
|
* are displayed. Use `.labelExpression("{{ name }}")` to define the display template.
|
|
5559
6187
|
*
|
|
6188
|
+
* Implements Standard Schema v1 interface via the `~standard` property.
|
|
6189
|
+
* @see https://standardschema.dev/
|
|
6190
|
+
*
|
|
5560
6191
|
* @example
|
|
5561
6192
|
* ```typescript
|
|
5562
6193
|
* import { object, text, number, status } from "@stndrds/schema";
|
|
@@ -5564,7 +6195,7 @@ type AddAttribute<TRecord extends Record<string, unknown>, TName extends string,
|
|
|
5564
6195
|
*
|
|
5565
6196
|
* const PRODUCT = object({ name: "products", label: "Product" })
|
|
5566
6197
|
* .system()
|
|
5567
|
-
* .attribute(text({ name: "name", label: "Name" }).required())
|
|
6198
|
+
* .attribute(text({ name: "name", label: "Name" }).required())
|
|
5568
6199
|
* .attribute(number({ name: "price", label: "Price" }).decimal(2))
|
|
5569
6200
|
* .attribute(
|
|
5570
6201
|
* status({ name: "status", label: "Status" })
|
|
@@ -5578,9 +6209,12 @@ type AddAttribute<TRecord extends Record<string, unknown>, TName extends string,
|
|
|
5578
6209
|
* // Full autocompletion! ✨
|
|
5579
6210
|
* type ProductRecord = ExtractRecord<typeof PRODUCT>;
|
|
5580
6211
|
* // → { name: string; price?: number; status: string }
|
|
6212
|
+
*
|
|
6213
|
+
* // Standard Schema integration
|
|
6214
|
+
* const result = PRODUCT["~standard"].validate({ name: "Test", status: "active" });
|
|
5581
6215
|
* ```
|
|
5582
6216
|
*/
|
|
5583
|
-
declare class ObjectBuilder<TRecord extends Record<string, unknown> = {}> {
|
|
6217
|
+
declare class ObjectBuilder<TRecord extends Record<string, unknown> = {}> implements StandardSchemaV1<unknown, Record<string, unknown>> {
|
|
5584
6218
|
private obj;
|
|
5585
6219
|
private _labelExpression?;
|
|
5586
6220
|
private _pluralLabel?;
|
|
@@ -5596,6 +6230,41 @@ declare class ObjectBuilder<TRecord extends Record<string, unknown> = {}> {
|
|
|
5596
6230
|
[K in keyof TRecord]?: TRecord[K];
|
|
5597
6231
|
};
|
|
5598
6232
|
};
|
|
6233
|
+
/**
|
|
6234
|
+
* Drizzle-style static type inference property.
|
|
6235
|
+
* Provides direct access to inferred types without utility type imports.
|
|
6236
|
+
*
|
|
6237
|
+
* @example
|
|
6238
|
+
* ```typescript
|
|
6239
|
+
* const PRODUCT = object({ name: "products", label: "Product" })
|
|
6240
|
+
* .attribute(text({ name: "name", label: "Name" }).required())
|
|
6241
|
+
* .attribute(number({ name: "price", label: "Price" }));
|
|
6242
|
+
*
|
|
6243
|
+
* // Zero-import type inference! ✨
|
|
6244
|
+
* type ProductRecord = typeof PRODUCT.$infer.record;
|
|
6245
|
+
* type ProductCreate = typeof PRODUCT.$infer.create;
|
|
6246
|
+
* type ProductUpdate = typeof PRODUCT.$infer.update;
|
|
6247
|
+
* ```
|
|
6248
|
+
*/
|
|
6249
|
+
readonly $infer: {
|
|
6250
|
+
/** Full record type with custom attributes and metadata (same as ExtractRecord) */
|
|
6251
|
+
record: WithCustomAttributes<TRecord> & RecordMetadata;
|
|
6252
|
+
/** Input type for creating records, omits system fields (same as ExtractRecordInput) */
|
|
6253
|
+
create: Omit<WithCustomAttributes<TRecord>, SystemFields>;
|
|
6254
|
+
/** Partial type for updating records, omits system fields (same as ExtractRecordUpdate) */
|
|
6255
|
+
update: Omit<WithCustomAttributes<{
|
|
6256
|
+
[K in keyof TRecord]?: TRecord[K];
|
|
6257
|
+
}>, SystemFields>;
|
|
6258
|
+
};
|
|
6259
|
+
/**
|
|
6260
|
+
* Standard Schema v1 interface implementation.
|
|
6261
|
+
*
|
|
6262
|
+
* This property enables interoperability with libraries that support
|
|
6263
|
+
* Standard Schema (React Hook Form, tRPC, etc.).
|
|
6264
|
+
*
|
|
6265
|
+
* @see https://standardschema.dev/
|
|
6266
|
+
*/
|
|
6267
|
+
get "~standard"(): StandardSchemaV1.Props<unknown, Record<string, unknown>>;
|
|
5599
6268
|
constructor(config: BuilderConfig);
|
|
5600
6269
|
/**
|
|
5601
6270
|
* Set object description
|
|
@@ -6215,6 +6884,28 @@ declare class TabBuilder {
|
|
|
6215
6884
|
declare class DetailViewBuilder {
|
|
6216
6885
|
private data;
|
|
6217
6886
|
private _version;
|
|
6887
|
+
/**
|
|
6888
|
+
* Drizzle-style static type inference property.
|
|
6889
|
+
* Provides direct access to inferred types without utility type imports.
|
|
6890
|
+
*
|
|
6891
|
+
* @example
|
|
6892
|
+
* ```typescript
|
|
6893
|
+
* const COMPANY_VIEW = detailView("detail", "Company Detail")
|
|
6894
|
+
* .for("companies")
|
|
6895
|
+
* .tab("general", "Info").form(group("main", "Main").fields("name"))
|
|
6896
|
+
* .build();
|
|
6897
|
+
*
|
|
6898
|
+
* // Zero-import type inference! ✨
|
|
6899
|
+
* type ViewConfig = typeof COMPANY_VIEW.$infer.config;
|
|
6900
|
+
* type ViewDef = typeof COMPANY_VIEW.$infer.definition;
|
|
6901
|
+
* ```
|
|
6902
|
+
*/
|
|
6903
|
+
readonly $infer: {
|
|
6904
|
+
/** The view configuration type */
|
|
6905
|
+
config: DetailViewConfig;
|
|
6906
|
+
/** The full view definition type */
|
|
6907
|
+
definition: DetailViewDefinition;
|
|
6908
|
+
};
|
|
6218
6909
|
constructor(name: string, label: string);
|
|
6219
6910
|
/**
|
|
6220
6911
|
* Set view description
|
|
@@ -6376,6 +7067,28 @@ interface ListViewTabData {
|
|
|
6376
7067
|
declare class ListViewBuilder {
|
|
6377
7068
|
private data;
|
|
6378
7069
|
private _version;
|
|
7070
|
+
/**
|
|
7071
|
+
* Drizzle-style static type inference property.
|
|
7072
|
+
* Provides direct access to inferred types without utility type imports.
|
|
7073
|
+
*
|
|
7074
|
+
* @example
|
|
7075
|
+
* ```typescript
|
|
7076
|
+
* const CONTACTS_LIST = listView("default", "All Contacts")
|
|
7077
|
+
* .for("contacts")
|
|
7078
|
+
* .tab("all", "All").columns("name", "email").default()
|
|
7079
|
+
* .build();
|
|
7080
|
+
*
|
|
7081
|
+
* // Zero-import type inference! ✨
|
|
7082
|
+
* type ViewConfig = typeof CONTACTS_LIST.$infer.config;
|
|
7083
|
+
* type ViewDef = typeof CONTACTS_LIST.$infer.definition;
|
|
7084
|
+
* ```
|
|
7085
|
+
*/
|
|
7086
|
+
readonly $infer: {
|
|
7087
|
+
/** The view configuration type */
|
|
7088
|
+
config: ListViewConfig;
|
|
7089
|
+
/** The full view definition type */
|
|
7090
|
+
definition: ListViewDefinition;
|
|
7091
|
+
};
|
|
6379
7092
|
constructor(name: string, label: string);
|
|
6380
7093
|
/**
|
|
6381
7094
|
* Set view description
|
|
@@ -6952,6 +7665,29 @@ declare class WorkflowBuilder {
|
|
|
6952
7665
|
private data;
|
|
6953
7666
|
private startNodeId;
|
|
6954
7667
|
private nodeCount;
|
|
7668
|
+
/**
|
|
7669
|
+
* Drizzle-style static type inference property.
|
|
7670
|
+
* Provides direct access to inferred types without utility type imports.
|
|
7671
|
+
*
|
|
7672
|
+
* @example
|
|
7673
|
+
* ```typescript
|
|
7674
|
+
* const ONBOARDING = workflow("client-onboarding", "Onboarding")
|
|
7675
|
+
* .slot("client", "contacts", { label: "Client", mode: "create" })
|
|
7676
|
+
* .start("entry").next("form")
|
|
7677
|
+
* // ... nodes
|
|
7678
|
+
* .build();
|
|
7679
|
+
*
|
|
7680
|
+
* // Zero-import type inference! ✨
|
|
7681
|
+
* type Slots = typeof ONBOARDING.$infer.slots;
|
|
7682
|
+
* type WorkflowDef = typeof ONBOARDING.$infer.definition;
|
|
7683
|
+
* ```
|
|
7684
|
+
*/
|
|
7685
|
+
readonly $infer: {
|
|
7686
|
+
/** The workflow slots type */
|
|
7687
|
+
slots: WorkflowSlot[];
|
|
7688
|
+
/** The full workflow definition type */
|
|
7689
|
+
definition: WorkflowDefinition;
|
|
7690
|
+
};
|
|
6955
7691
|
constructor(name: string, label: string);
|
|
6956
7692
|
/**
|
|
6957
7693
|
* Set workflow description
|
|
@@ -7051,6 +7787,47 @@ declare class WorkflowBuilder {
|
|
|
7051
7787
|
*/
|
|
7052
7788
|
declare function workflow(name: string, label: string): WorkflowBuilder;
|
|
7053
7789
|
|
|
7790
|
+
/**
|
|
7791
|
+
* Standard Schema v1 integration for @stndrds/schema
|
|
7792
|
+
*
|
|
7793
|
+
* Standard Schema is a TypeScript interface designed by the Zod/Valibot/ArkType
|
|
7794
|
+
* creators to enable interoperability between validation libraries.
|
|
7795
|
+
*
|
|
7796
|
+
* @see https://standardschema.dev/
|
|
7797
|
+
*/
|
|
7798
|
+
|
|
7799
|
+
/**
|
|
7800
|
+
* Standard Schema vendor identifier
|
|
7801
|
+
*/
|
|
7802
|
+
declare const STANDARD_SCHEMA_VENDOR = "@stndrds/schema";
|
|
7803
|
+
|
|
7804
|
+
/**
|
|
7805
|
+
* Standard Schema issue type
|
|
7806
|
+
*/
|
|
7807
|
+
type StandardSchemaIssue = StandardSchemaV1.Issue;
|
|
7808
|
+
/**
|
|
7809
|
+
* Standard Schema result type
|
|
7810
|
+
*/
|
|
7811
|
+
type StandardSchemaResult<T> = StandardSchemaV1.Result<T>;
|
|
7812
|
+
/**
|
|
7813
|
+
* Standard Schema props type (the ~standard property value)
|
|
7814
|
+
*/
|
|
7815
|
+
type StandardSchemaProps<Input, Output> = StandardSchemaV1.Props<Input, Output>;
|
|
7816
|
+
/**
|
|
7817
|
+
* Create Standard Schema ~standard props from a Zod schema.
|
|
7818
|
+
*
|
|
7819
|
+
* Since Zod v4 already implements Standard Schema natively, we delegate
|
|
7820
|
+
* validation to Zod and wrap the result with our vendor identifier.
|
|
7821
|
+
*
|
|
7822
|
+
* @param zodSchema - The Zod schema to wrap
|
|
7823
|
+
* @returns Standard Schema v1 props
|
|
7824
|
+
*/
|
|
7825
|
+
declare function createStandardSchemaProps<T>(zodSchema: z$1.ZodType<T>): StandardSchemaV1.Props<unknown, T>;
|
|
7826
|
+
/**
|
|
7827
|
+
* Type guard to check if an object implements Standard Schema v1
|
|
7828
|
+
*/
|
|
7829
|
+
declare function isStandardSchema<T>(obj: unknown): obj is StandardSchemaV1<unknown, T>;
|
|
7830
|
+
|
|
7054
7831
|
/**
|
|
7055
7832
|
* Flag Builder Module
|
|
7056
7833
|
*
|
|
@@ -7850,4 +8627,48 @@ declare function resetViewToDefault(currentView: ViewDefinition, object: ObjectD
|
|
|
7850
8627
|
*/
|
|
7851
8628
|
declare function isViewCustomized(view: ViewDefinition, object: ObjectDefinition): boolean;
|
|
7852
8629
|
|
|
7853
|
-
export { type AIAvailableModel, type AIBatchQuestion, type AIBatchQuestionAnswer, type AIBatchQuestionOption, type AIChatMessage, type AIChatMessagePart, type AIChatMessagePartType, type AICompactionSummary, type AIConversation, type AIMemoryEntry, type AIMemoryType, type AIMessage, type AIMessageAttachment, type AIMessageRole, AINodeSchema, type AIProviderMetrics, type AIQuestion, type AIQuestionAnswer, type AIQuestionOption, type AIQuestionType, type AIThinkingLevel, type AITodoItem, type AITodoList, type AITodoStatus, type AIToolCall, type AIToolCallRecord, type AIToolCallStatus, type AIUsageMetrics, ALL_ACTIONS, ALL_SYSTEM_RESOURCES, type AccessLevel, type Action, ActivityTabConfig, type AddAttribute$1 as AddAttribute, type AgentContentPart, type AgentDashboard, type AgentDefinition, type AgentEvent, type AgentExecutionConfig, type AgentGroup, type AgentGroupStatus, type AgentMessage, type AgentRun, type AgentRunStatus, type AgentSchedule, type AgentTrigger, type AgentTriggerType, type AnyAttributeBuilder, AssignNodeSchema, type AssignRoleInput, AssignmentMappingSchema, AssignmentSourceSchema, Attribute, AttributeGroupField, AttributeInUseError, type AttributeMap, AttributeNotFoundError, type AttributeSchema, AttributeType, type AttributeUsage, type AuditAction, type AuditActorType, type AuditChange, type AuditListOptions, type AuditLogEntry, type AuditResourceType, type AuditServiceOptions, AuthMethodSchema, BEHAVIOR_PROPERTIES, type BehaviorProperty, BilateralConfig, type BilateralValidationError, type BilateralValidationResult, type BoundingBox, type BuilderConfig, type ChatFileAttachment, CheckboxAttribute, CompletionStatus, ConcurrentModificationError, ConditionGroup, ConditionGroupSchema, ConditionNodeSchema, ConditionOperatorSchema, ConditionRule, ConditionRuleSchema, ConfigOverrides, type CreateAIMessageInput, type CreateAuditLogInput, type CreateDBAttribute, type CreateDBObject, type CreateDBView, type CreateDBViewOverlay, type CreateDBWorkflow, type CreateDBWorkflowAccessGrant, type CreateDBWorkflowInstance, type CreateDBWorkflowInvitation, type CreateDocument, type CreateDocumentSlot, type CreateFile, type CreateGrantInput, type CreateInvitationInput, type CreateInvitationResult, CreateMode, type CreateObjectRecord, type CreatePermissionInput, type CreateProcessingJob, type CreateRoleInput, type CreateSandboxExecution, CreateShareInputSchema, type CreateSignatureInput, type CreateUserProfile, Currency, CurrencyAttribute, type CustomAttributeValue, CustomTabConfig, type DBAttribute, type DBObject, type DBView, type DBViewOverlay, type DBWorkflow, type DBWorkflowAccessGrant, type DBWorkflowInstance, type DBWorkflowInvitation, DEFAULT_LABEL_FALLBACK, DEFAULT_ROLES, DEFAULT_ROLE_DESCRIPTIONS, DEFAULT_ROLE_FOR_NEW_USERS, DEFAULT_ROLE_LABELS, DEFAULT_ROLE_PERMISSIONS, DateAttribute, type DefaultRoleName, type DefaultRolePermissionConfig, DetailViewBuilder, DetailViewDefinition, DetailViewLayout, type Document, DocumentAttribute, type DocumentData, type DocumentListOptions, type DocumentSlot, type DocumentStatus, DocumentsTabConfig, DuplicateError, EMPTY_VALUE_PLACEHOLDER, type EffectivePermissions, EndNodeSchema, type ExtractAttributeName, type ExtractAttributeRequired, type ExtractAttributes, type ExtractObjectRecord, type ExtractObjectRecordWithCustom, type ExtractRecord, type ExtractRecordInput, type ExtractRecordInputStrict, type ExtractRecordStrict, type ExtractRecordUpdate, type ExtractRecordUpdateStrict, FeatureFlagDefinition, FeatureFlagsRepository, FeatureGate, Field, FieldGroup, type File, FileAttribute, type FileListOptions, FileNotFoundError, type FileVisibility, FilterState, FlagLevel, FlagRegistry, type FlagResolutionContext, FlagService, type FlagServiceOptions, FlagValueType, FlowFieldsRow, FlowHeadingRow, FlowRelationListRow, FlowRowFieldSchema, FlowRowSchema, FlowSeparatorRow, FlowTextRow, FlowsTabConfig, ForbiddenError, type FormContextResponse, type FormFieldContext, FormFieldRefSchema, type FormFieldRow, type FormFieldsRow, FormNode, type FormNodeInfo, FormNodeSchema, FormulaAttribute, FormulaReturnType, type GenerateFallbackViewOptions, type GeocodingAdapter, type GeocodingAutocompleteParams, type GeocodingParams, type GeocodingSuggestion, type GlobalSearchGroupedOptions, type GlobalSearchGroupedResult, type GlobalSearchOptions, type GlobalSearchResultItem, Group, GroupBuilder, type GroupedWorkflowNodes, IDENTITY_PROPERTIES, type IdentityProperty, type IdentityVerificationAdapter, type InferAttributeValue, type InferRecord, type InferRecordFromSchema, type InferRecordInput, type InferRecordUpdate, type InferRecordWithRequirements, InstanceStatus, type InvitationStatus, type InviteUserInput, type ListOptions, ListViewBuilder, ListViewConfig, ListViewDefinition, ListViewTab, ListViewTabConfigBuilder, Location, LocationAttribute, LocationGranularity, type MentionEntityType, type MentionReference, type MentionedContext, type MentionedEntityContext, MigrationDefinition, type ModelDefinition, MultiRelationAttribute, MultiselectAttribute, NodePositionSchema, type NodeTypeDefinition, NoopGeocodingAdapter, NotFoundError, NotSystemObjectError, NumberAttribute, ObjectBuilder, ObjectDefinition, ObjectNotFoundError, type ObjectPermissions, ObjectRecord, ObjectReferencedError, type OcrAdapter, type OcrInput, type OcrOptions, type OcrPage, type OcrResult, type OcrTextBlock, type OperationResult, Option, PRESENTATION_PROPERTIES, PendingAction, type Permission, type PermissionScope, Phone, PhoneAttribute, type PhoneNormalizationResult, type PolicyContext, PolicyViolationError, type PresentationProperty, type ProcessingJob, type ProcessingJobStatus, type ProcessingJobType, type PropertyAttributeBuilder, ProtectedResourceError, ProtectedRoleError, type ProviderName, RatingAttribute, type ReadOnlyReason, type ReasoningPartData, type RecordMetadata, RecordNotFoundError, type RecordPolicy, type RecordReference, RecordReferencedError, RelationAttribute, RelationBufferMap, RelationFieldConfig, RelationGroup, RelationGroupBuilder, RelationTarget, type ResetViewOptions, ResolvedFlag, type ResumeWorkflowApiInput, type RetryPolicy, type ReverseGeocodingParams, RichtextAttribute, RichtextFeature, RichtextTabConfig, type Role, RoleNotFoundError, RollupAttribute, RollupFunction, SYSTEM_ATTRIBUTES, SYSTEM_RESOURCES, SYSTEM_RESOURCE_LABELS, type SandboxExecution, type SandboxExecutionInput, type SandboxExecutionResult, type SandboxExecutionStatus, type SandboxMode, type SandboxTrigger, SchemaError, SchemaErrorCode, type SearchOptions, SelectAttribute, ShareStatusSchema, SidePanelConfig, type SignatureAdapter, type SignaturePosition, type SignatureRequestResult, type SignatureStatus, type SignatureStatusResult, type SignerRequest, type SignerStatus, SingleRelationAttribute, SlotMode, SlotModeSchema, type SlotStatus, SortRule, StartNodeSchema, type StartWorkflowApiInput, StaticFlagDefault, StatusAttribute, type StorageProvider, SyncError, type SystemAttribute, type SystemAttributeName, type SystemFields, type SystemPermissions, type SystemResource, Tab, TabBuilder, TableTab, TableTabConfig, TenantId, TextAreaAttribute, TextAttribute, type TextPartData, ThemeColorsSchema, ThemeLogoSchema, type ThinkingPartData, Timestamps, type ToolPartData, type TypedAttribute, type TypedBuilderConfig, type TypedObjectRecord, USER_STATUSES, type UpdateDBAttribute, type UpdateDBObject, type UpdateDBView, type UpdateDBViewOverlay, type UpdateDBWorkflow, type UpdateDBWorkflowAccessGrant, type UpdateDBWorkflowInstance, type UpdateDBWorkflowInvitation, type UpdateDocument, type UpdateDocumentSlot, type UpdateFile, type UpdateProcessingJob, type UpdateRoleInput, type UpdateUserProfile, type UpsertDBAttribute, type UpsertDBObject, type UpsertDBView, UserAttribute, type UserProfile, UserProfileNotFoundError, type UserRoleAssignment, type UserStatus, Uuid, type ValidatedConditionGroup, type ValidatedWorkflowDefinition, type ValidatedWorkflowNode, ValidationError, type ValidationErrorDetail, type VerificationCheck, type VerificationResult, type VerifyInput, ViewBuilder, ViewConfig, ViewDefinition, ViewType, ViewportSchema, type WithCustomAttributes, WorkflowAIBuilder, type WorkflowAccessGrant, type WorkflowAccessMode, WorkflowAssignBuilder, WorkflowBuilder, WorkflowConditionBuilder, WorkflowConfig, WorkflowConfigSchema, WorkflowDefinition, WorkflowDefinitionSchema, WorkflowEndBuilder, type WorkflowEvent, type WorkflowEventType, WorkflowExecutionContext, WorkflowFormBuilder, WorkflowFormRowBuilder, type WorkflowGrantRevokedEvent, type WorkflowInstanceCancelledEvent, type WorkflowInstanceCompletedEvent, type WorkflowInstanceFailedEvent, type WorkflowInstanceStartedEvent, type WorkflowInvitation, type WorkflowInvitationAcceptedEvent, type WorkflowInvitationCreatedEvent, type WorkflowInvitationExpiredEvent, WorkflowLayout, WorkflowLayoutSchema, WorkflowNode, type WorkflowNodeCompletedEvent, type WorkflowNodeEnteredEvent, type WorkflowNodeFailedEvent, WorkflowNodeSchema, WorkflowNodeType, WorkflowShareSchema, WorkflowSimpleFormBuilder, WorkflowSlot, WorkflowSlotSchema, WorkflowStartBuilder, WorkflowStatus, WorkflowStatusSchema, WorkflowTheme, WorkflowThemeSchema, WorkflowTransition, type WorkflowZone, ZONE_CONFIG, ZONE_ORDER, accessLevelToActions, actionsToAccessLevel, applyRelationProps, assignNodeZones, booleanFlag, canAccessNode, checkbox, createFlagRegistry, createFlagService, currency, date, detailView, document, extractAttributeNames, file, flagRegistry, formatAttributeValue, formatPhoneForDisplay, formula, generateDefaultDetailView, generateDefaultListView, generateFallbackView, getActiveTab, getErrorMessage, getFormFieldRefs, getNodeOutputs, getNodeSlotIds, getSystemAttributeList, getZoneAllowedTypes, group, groupNodesByZone, hasProperties, isBehaviorProperty, isDefaultRole, isEmpty, isForbiddenError, isFormFieldsRow, isGrantExpired, isGrantRevoked, isGrantValid, isIdentityProperty, isInstanceEvent, isInvitationAccepted, isInvitationExpired, isInvitationOrGrantEvent, isInvitationValid, isLabelExpression, isNodeEvent, isNotEmpty, isNotFoundError, isPresentationProperty, isProtectedResourceError, isSchemaError, isSystemAttribute, isSystemAttributeObject, isTokenRevoked, isValidationError, isViewCustomized, jsonFlag, listView, location, multiselect, nodeTypeRegistry, normalizePhoneNumber, number, numberFlag, object, parseRawPhoneInput, phone, rating, registry, relation, relationGroup, renderLabelExpression, resetViewToDefault, richtext, rollup, select, setNodeNext, status, stringFlag, text, textarea, toUndefinedIfEmpty, user, validateNode, validatePhoneNumber, view, viewRegistry, workflow };
|
|
8630
|
+
/**
|
|
8631
|
+
* Convert an ObjectDefinition to JSON Schema.
|
|
8632
|
+
*
|
|
8633
|
+
* This enables runtime form generation from schema definitions.
|
|
8634
|
+
* The generated JSON Schema is compatible with libraries like:
|
|
8635
|
+
* - react-jsonschema-form
|
|
8636
|
+
* - ajv
|
|
8637
|
+
* - json-schema-form
|
|
8638
|
+
*
|
|
8639
|
+
* @param objectDef - The ObjectDefinition to convert
|
|
8640
|
+
* @returns A JSON Schema object representing the ObjectDefinition
|
|
8641
|
+
*
|
|
8642
|
+
* @example
|
|
8643
|
+
* ```typescript
|
|
8644
|
+
* const PRODUCT = object({ name: "products", label: "Product" })
|
|
8645
|
+
* .labelExpression("{{ name }}")
|
|
8646
|
+
* .attribute(text({ name: "name", label: "Name" }).required())
|
|
8647
|
+
* .attribute(number({ name: "price", label: "Price" }).min(0))
|
|
8648
|
+
* .build();
|
|
8649
|
+
*
|
|
8650
|
+
* const jsonSchema = objectToJSONSchema(PRODUCT);
|
|
8651
|
+
* // => {
|
|
8652
|
+
* // type: "object",
|
|
8653
|
+
* // title: "Product",
|
|
8654
|
+
* // properties: {
|
|
8655
|
+
* // name: { type: "string", title: "Name" },
|
|
8656
|
+
* // price: { type: "number", title: "Price", minimum: 0 }
|
|
8657
|
+
* // },
|
|
8658
|
+
* // required: ["name"]
|
|
8659
|
+
* // }
|
|
8660
|
+
* ```
|
|
8661
|
+
*/
|
|
8662
|
+
declare function objectToJSONSchema(objectDef: ObjectDefinition): JSONSchema7;
|
|
8663
|
+
/**
|
|
8664
|
+
* Convert an ObjectDefinition's Zod validator to JSON Schema using z.toJSONSchema().
|
|
8665
|
+
*
|
|
8666
|
+
* This is an alternative approach that uses Zod's native JSON Schema generation.
|
|
8667
|
+
* Use this when you need exact parity with Zod validation behavior.
|
|
8668
|
+
*
|
|
8669
|
+
* @param objectDef - The ObjectDefinition to convert
|
|
8670
|
+
* @returns A JSON Schema generated by Zod
|
|
8671
|
+
*/
|
|
8672
|
+
declare function objectValidatorToJSONSchema(objectDef: ObjectDefinition): JSONSchema7;
|
|
8673
|
+
|
|
8674
|
+
export { type AIAvailableModel, type AIBatchQuestion, type AIBatchQuestionAnswer, type AIBatchQuestionOption, type AIChatMessage, type AIChatMessagePart, type AIChatMessagePartType, type AICompactionSummary, type AIConversation, type AIMemoryEntry, type AIMemoryType, type AIMessage, type AIMessageAttachment, type AIMessageRole, AINodeSchema, type AIProviderMetrics, type AIQuestion, type AIQuestionAnswer, type AIQuestionOption, type AIQuestionType, type AIThinkingLevel, type AITodoItem, type AITodoList, type AITodoStatus, type AIToolCall, type AIToolCallRecord, type AIToolCallStatus, type AIUsageMetrics, ALL_ACTIONS, ALL_PIPES, ALL_SYSTEM_RESOURCES, AccessDeniedError, type AccessLevel, type Action, ActivityTabConfig, type AddAttribute$1 as AddAttribute, type AgentConfig, type AgentContentPart, type AgentContextEntry, type AgentDashboard, type AgentDefinition, type AgentEvent, type AgentExecutionConfig, type AgentInlineConfig, type AgentMessage, type AgentQuestion, type AgentRun, type AgentRunContextEntry, type AgentRunStatus, type AgentSchedule, type AgentSession, type AgentSessionMessage, type AgentSessionMode, type AgentSessionStatus, type AgentToolCall, type AgentTrigger, type AgentTriggerDefinition, type AgentTriggerType, type AnyAttributeBuilder, type ApiKey, type ApiKeyAuthContext, type ApiKeyPermission, type ApiKeyWithSecret, AssignNodeSchema, type AssignRoleInput, AssignmentMappingSchema, AssignmentSourceSchema, Attribute, AttributeGroupField, AttributeInUseError, type AttributeMap, AttributeNotFoundError, type AttributeSchema, AttributeType, type AttributeUsage, type AuditAction, type AuditActorType, type AuditChange, type AuditListOptions, type AuditLogEntry, type AuditResourceType, type AuditServiceOptions, AuthMethodSchema, BEHAVIOR_PROPERTIES, type BehaviorProperty, BilateralConfig, type BilateralValidationError, type BilateralValidationResult, type BoundingBox, type BuilderConfig, type ChatFileAttachment, CheckboxAttribute, CompletionStatus, ConcurrentModificationError, ConditionGroup, ConditionGroupSchema, ConditionNodeSchema, ConditionOperatorSchema, ConditionRule, ConditionRuleSchema, ConfigOverrides, ConversationNotFoundError, type CreateAIMessageInput, type CreateApiKeyInput, type CreateAuditLogInput, type CreateDBAttribute, type CreateDBObject, type CreateDBView, type CreateDBViewOverlay, type CreateDBWorkflow, type CreateDBWorkflowAccessGrant, type CreateDBWorkflowInstance, type CreateDBWorkflowInvitation, type CreateDocument, type CreateDocumentSlot, type CreateFile, type CreateGrantInput, type CreateInvitationInput, type CreateInvitationResult, CreateMode, type CreateObjectRecord, type CreatePermissionInput, type CreateProcessingJob, type CreateRoleInput, type CreateSandboxExecution, CreateShareInputSchema, type CreateSignatureInput, type CreateUserProfile, type CriticConfig, Currency, CurrencyAttribute, type CustomAttributeValue, CustomTabConfig, type DBAttribute, type DBObject, type DBView, type DBViewOverlay, type DBWorkflow, type DBWorkflowAccessGrant, type DBWorkflowInstance, type DBWorkflowInvitation, DEFAULT_LABEL_FALLBACK, DEFAULT_ROLES, DEFAULT_ROLE_DESCRIPTIONS, DEFAULT_ROLE_FOR_NEW_USERS, DEFAULT_ROLE_LABELS, DEFAULT_ROLE_PERMISSIONS, DateAttribute, type DefaultRoleName, type DefaultRolePermissionConfig, DetailViewBuilder, DetailViewConfig, DetailViewDefinition, DetailViewLayout, type Document, DocumentAttribute, type DocumentData, type DocumentListOptions, type DocumentSlot, type DocumentStatus, DocumentsTabConfig, DuplicateError, EMPTY_VALUE_PLACEHOLDER, type EffectivePermissions, EndNodeSchema, type ExtractAttributeName, type ExtractAttributeRequired, type ExtractAttributes, type ExtractObjectRecord, type ExtractObjectRecordWithCustom, type ExtractRecord, type ExtractRecordInput, type ExtractRecordInputStrict, type ExtractRecordStrict, type ExtractRecordUpdate, type ExtractRecordUpdateStrict, FeatureFlagDefinition, FeatureFlagsRepository, FeatureGate, Field, FieldGroup, type File, FileAttribute, type FileListOptions, FileNotFoundError, type FileVisibility, FilterState, FlagLevel, FlagRegistry, type FlagResolutionContext, FlagService, type FlagServiceOptions, FlagValueType, FlowFieldsRow, FlowHeadingRow, FlowRelationListRow, FlowRowFieldSchema, FlowRowSchema, FlowSeparatorRow, FlowTextRow, FlowsTabConfig, ForbiddenError, type FormContextResponse, type FormFieldContext, FormFieldRefSchema, type FormFieldRow, type FormFieldsRow, FormNode, type FormNodeInfo, FormNodeSchema, FormulaAttribute, FormulaReturnType, type GenerateFallbackViewOptions, type GeocodingAdapter, type GeocodingAutocompleteParams, type GeocodingParams, type GeocodingSuggestion, type GlobalSearchGroupedOptions, type GlobalSearchGroupedResult, type GlobalSearchOptions, type GlobalSearchResultItem, Group, GroupBuilder, type GroupedWorkflowNodes, IDENTITY_PROPERTIES, type IdentityProperty, type IdentityVerificationAdapter, type InferAttributeValue, type InferRecord, type InferRecordFromSchema, type InferRecordInput, type InferRecordUpdate, type InferRecordWithRequirements, InstanceStatus, type InvitationStatus, type InviteUserInput, type LabelExpression, type LabelPipe, type ListOptions, ListViewBuilder, ListViewConfig, ListViewDefinition, ListViewTab, ListViewTabConfigBuilder, Location, LocationAttribute, LocationGranularity, MemoryNotFoundError, type MentionEntityType, type MentionReference, type MentionedContext, type MentionedEntityContext, MigrationDefinition, type ModelDefinition, MultiRelationAttribute, MultiselectAttribute, NodePositionSchema, type NodeTypeDefinition, NoopGeocodingAdapter, NotFoundError, NotImplementedError, NotSystemObjectError, NumberAttribute, ObjectBuilder, ObjectDefinition, ObjectNotFoundError, type ObjectPermissions, ObjectRecord, ObjectReferencedError, type OcrAdapter, type OcrInput, type OcrOptions, type OcrPage, type OcrResult, type OcrTextBlock, type OperationResult, Option, PIPES_WITH_ARGS, PRESENTATION_PROPERTIES, PendingAction, type Permission, type PermissionScope, Phone, PhoneAttribute, type PhoneNormalizationResult, type PipeWithArgs, type PolicyContext, PolicyViolationError, type PresentationProperty, type ProcessingJob, type ProcessingJobStatus, type ProcessingJobType, type PropertyAttributeBuilder, ProtectedResourceError, ProtectedRoleError, type ProviderName, type QuestionResponse, type QuestionStatus, RatingAttribute, type ReadOnlyReason, type ReasoningPartData, type RecordMetadata, RecordNotFoundError, type RecordPolicy, type RecordReference, RecordReferencedError, RelationAttribute, RelationBufferMap, RelationFieldConfig, RelationGroup, RelationGroupBuilder, RelationTarget, RepositoryError, type RepositoryOperation, type ResetViewOptions, ResolvedFlag, type ResumeWorkflowApiInput, type RetryPolicy, type ReverseGeocodingParams, RichtextAttribute, RichtextFeature, RichtextTabConfig, type Role, RoleNotFoundError, RollupAttribute, RollupFunction, SIMPLE_PIPES, STANDARD_SCHEMA_VENDOR, SYSTEM_ATTRIBUTES, SYSTEM_RESOURCES, SYSTEM_RESOURCE_LABELS, type SandboxExecution, type SandboxExecutionInput, type SandboxExecutionResult, type SandboxExecutionStatus, type SandboxMode, type SandboxTrigger, SchemaError, SchemaErrorCode, type SearchOptions, SelectAttribute, ShareStatusSchema, SidePanelConfig, type SignatureAdapter, type SignaturePosition, type SignatureRequestResult, type SignatureStatus, type SignatureStatusResult, type SignerRequest, type SignerStatus, type SimplePipe, SingleRelationAttribute, SlotMode, SlotModeSchema, type SlotStatus, SortRule, type StandardSchemaIssue, type StandardSchemaProps, type StandardSchemaResult, StartNodeSchema, type StartWorkflowApiInput, StaticFlagDefault, StatusAttribute, StorageError, type StorageOperation, type StorageProvider, SyncError, type SystemAttribute, type SystemAttributeName, type SystemFields, type SystemPermissions, type SystemResource, Tab, TabBuilder, TableTab, TableTabConfig, TenantId, TextAreaAttribute, TextAttribute, type TextPartData, ThemeColorsSchema, ThemeLogoSchema, type ThinkingPartData, type TimeoutPolicy, Timestamps, type ToolPartData, type TriggerEventType, type TypedAttribute, type TypedBuilderConfig, type TypedObjectRecord, USER_STATUSES, type UpdateDBAttribute, type UpdateDBObject, type UpdateDBView, type UpdateDBViewOverlay, type UpdateDBWorkflow, type UpdateDBWorkflowAccessGrant, type UpdateDBWorkflowInstance, type UpdateDBWorkflowInvitation, type UpdateDocument, type UpdateDocumentSlot, type UpdateFile, type UpdateProcessingJob, type UpdateRoleInput, type UpdateUserProfile, type UpsertDBAttribute, type UpsertDBObject, type UpsertDBView, UserAttribute, type UserProfile, UserProfileNotFoundError, type UserRoleAssignment, type UserStatus, Uuid, type ValidatedConditionGroup, type ValidatedWorkflowDefinition, type ValidatedWorkflowNode, ValidationError, type ValidationErrorDetail, type VerificationCheck, type VerificationResult, type VerifyInput, ViewBuilder, ViewConfig, ViewDefinition, ViewType, ViewportSchema, type WithCustomAttributes$1 as WithCustomAttributes, WorkflowAIBuilder, type WorkflowAccessGrant, type WorkflowAccessMode, WorkflowAssignBuilder, WorkflowBuilder, WorkflowConditionBuilder, WorkflowConfig, WorkflowConfigSchema, WorkflowDefinition, WorkflowDefinitionSchema, WorkflowEndBuilder, type WorkflowEvent, type WorkflowEventType, WorkflowExecutionContext, WorkflowFormBuilder, WorkflowFormRowBuilder, type WorkflowGrantRevokedEvent, type WorkflowInstanceCancelledEvent, type WorkflowInstanceCompletedEvent, type WorkflowInstanceFailedEvent, type WorkflowInstanceStartedEvent, type WorkflowInvitation, type WorkflowInvitationAcceptedEvent, type WorkflowInvitationCreatedEvent, type WorkflowInvitationExpiredEvent, WorkflowLayout, WorkflowLayoutSchema, WorkflowNode, type WorkflowNodeCompletedEvent, type WorkflowNodeEnteredEvent, type WorkflowNodeFailedEvent, WorkflowNodeSchema, WorkflowNodeType, WorkflowShareSchema, WorkflowSimpleFormBuilder, WorkflowSlot, WorkflowSlotSchema, WorkflowStartBuilder, WorkflowStatus, WorkflowStatusSchema, WorkflowTheme, WorkflowThemeSchema, WorkflowTransition, type WorkflowZone, ZONE_CONFIG, ZONE_ORDER, accessLevelToActions, actionsToAccessLevel, applyRelationProps, assignNodeZones, booleanFlag, canAccessNode, checkbox, createFlagRegistry, createFlagService, createStandardSchemaProps, currency, date, detailView, document, extractAttributeNames, file, flagRegistry, formatAttributeValue, formatPhoneForDisplay, formula, generateDefaultDetailView, generateDefaultListView, generateFallbackView, getActiveTab, getErrorMessage, getFormFieldRefs, getNodeOutputs, getNodeSlotIds, getSystemAttributeList, getZoneAllowedTypes, group, groupNodesByZone, hasProperties, isAccessDeniedError, isBehaviorProperty, isDefaultRole, isEmpty, isForbiddenError, isFormFieldsRow, isGrantExpired, isGrantRevoked, isGrantValid, isIdentityProperty, isInstanceEvent, isInvitationAccepted, isInvitationExpired, isInvitationOrGrantEvent, isInvitationValid, isLabelExpression, isNodeEvent, isNotEmpty, isNotFoundError, isNotImplementedError, isPresentationProperty, isProtectedResourceError, isRepositoryError, isSchemaError, isStandardSchema, isStorageError, isSystemAttribute, isSystemAttributeObject, isTokenRevoked, isValidationError, isViewCustomized, jsonFlag, labelExpressionSchema, listView, location, multiselect, nodeTypeRegistry, normalizePhoneNumber, number, numberFlag, object, objectToJSONSchema, objectValidatorToJSONSchema, parseRawPhoneInput, phone, rating, registerBuiltInNodeTypes, registry, relation, relationGroup, renderLabelExpression, resetViewToDefault, richtext, rollup, select, setNodeNext, status, stringFlag, text, textarea, toUndefinedIfEmpty, user, validateLabelExpression, validateNode, validatePhoneNumber, view, viewRegistry, workflow };
|